The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Net::Radio::Location::SUPL::Test - Run Test Use-Cases for SUPL

DESCRIPTION

This module implements state machine for handling SUPL packets.

The ASN.1 Compiler http://lionet.info/asn1c/compiler.html is used bleeding edge from the github repository found at git://github.com/vlm/asn1c.git. The used asn1 skeletons has some patches as patches/asn1c/ shows. It's recommended to apply them before regenerating C sources from the ASN.1 source files.

See Net::Radio::Location::SUPL::XS for details about the implemented SUPL capabilities.

Following documents has been used for implementation:

  • Open Mobile Alliance Secure UserPlace Location Architecture Candidate Version 1.0, 22th Jan 2007

    OMA-AD-SUPL-V1_0-20070122-C

METHODS

new

instantiates new Net::Radio::Location::SUPL::Test state machine

respond($pdu,@typenames)

Takes a given SUPL Protocol Data Unit (as instance of Net::Radio::Location::SUPL::XS::ULP_PDU_t) and the associated type names (eg. qw(suplposinit) or qw(suplpos assistanceDataAck)).

Given PDU is encoded, sent to H-SLP via open socket and in case of an SUPL END PDU, the connection is terminated. Some logging and error handling around encoding/sending completes the respond action.

prepare_supl_response($pdu)

Prepares a response SUPL PDU by copying SlpSessionId into a newly created SUPL PDU.

begin_ni_supl_seesion

Begins a network initiated SUPL session.

send_supl_rrlp_response($supl_pdu, $rrlp_resp_pdu, $resp_typename)

Sends out an RRLP PDU embedded in a SUPL POS packet.

Parameters:

$supl_pdu

SUPL PDU to be responded. Required to extract session id's for the answer PDU.

$rrlp_resp_pdu

Prepared RRLP PDU to embed into created SUPL POS message.

$resp_typename

Typename of the answer (eg. msrPositionResp)

handle_supl_pos_rrlp_packet

Handles the reaction of an incoming SUPL POS packet with an embedded RRLP PDU.

  • assistanceData will be acknowledged (assistanceDataAck)

  • msrPositionReq will be responded with configured coordinates until access to NMEA standard documents is available and the time is provided to implement GSM location extraction.

  • Everything else is responded with a protocolError.

handle_supl_pdu($pkt;$pdu)

Starts a new flow of network initiated SUPL.

trigger_read

Is called from the main-loop when the managed socket has incoming data.

get_read_trigger

Called by Net::Radio::Location::SUPL::MainLoop to add the managed socket to the list of file handles monitored for havind data to receive.

BUGS

Please report any bugs or feature requests to bug-supl-test at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=SUPL-Test. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

If you think you've found a bug then please read "How to Report Bugs Effectively" by Simon Tatham: http://www.chiark.greenend.org.uk/~sgtatham/bugs.html.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Net::Radio::Location::SUPL::Test

You can also look for information at:

Where can I go for help with a concrete version?

Bugs and feature requests are accepted against the latest version only. To get patches for earlier versions, you need to get an agreement with a developer of your choice - who may or not report the issue and a suggested fix upstream (depends on the license you have chosen).

Business support and maintenance

For business support you can contact Jens via his CPAN email address rehsackATcpan.org. Please keep in mind that business support is neither available for free nor are you eligible to receive any support based on the license distributed with this package.

ACKNOWLEDGEMENTS

AUTHOR

Jens Rehsack, <rehsack at cpan.org>

LICENSE AND COPYRIGHT

Copyright 2012 Jens Rehsack.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.