Hello Aldo,
We used the open source Sipp to simulate this Sip client.
In accordance with i2 architecture- NENA, the SIP client must send the
location information using two ways:
- Directly into your body using the PIDF-LO (RFC 4119) Location
Object (LO).
- Or by reference with Location Key (LK) through of new header in
SIP: Geolocation (RFC 5031), VPC uses this Key to obtain the location
information in consultation with the LIS (Location Information Server).
These informations should be got by User Agent caller running an LCP -
Location Convey Protocol. LCP can be implemented adapting the DHCP (RFC
4776 / RFC 6225) or via HELD protocol (RFC RFC 5985). The implementation
has to be done in UAC because of LIS with its LO information is located in
own ISP(Internet server provider) that the UA has access network, becoming
easier addressing this LIS.
In i2 specification the interface between call server (in case the
OpenSIPS) and LIS isn't expected, because of the difficulty of
implementing. The difficulty is in various factors such as privacy, device
identification and mainly because the call server (OpenSIPS) doesn't know
the address of appropriate LIS, It is required of a search algorithm of
this LIS in the source ISP (the RFC 5896/7216 describes this algorimos,
however this algorithm is not as trivial).
*In practice*, I can not provide any SIP client that has implemented the
LCP.
For testing we used the Sipp to simulate this Sip client using these
mentioned RFCs, is attached the XML scenario file that we used in Sipp,
with the new Geolocation header and with PIDF-LO in the body, the
OpenSIPS needs only one to handle the emergency call.
best regards
Evandro Villaron
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">
<!-- This program is free software; you can redistribute it and/or -->
<!-- modify it under the terms of the GNU General Public License as -->
<!-- published by the Free Software Foundation; either version 2 of the -->
<!-- License, or (at your option) any later version. -->
<!-- -->
<!-- This program is distributed in the hope that it will be useful, -->
<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of -->
<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
<!-- GNU General Public License for more details. -->
<!-- -->
<!-- You should have received a copy of the GNU General Public License -->
<!-- along with this program; if not, write to the -->
<!-- Free Software Foundation, Inc., -->
<!-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -->
<!-- -->
<!-- Sipp default 'uac' scenario. -->
<!-- -->
<scenario name="UAC with PIDF-LO">
<!-- In client mode (sipp placing calls), the Call-ID MUST be -->
<!-- generated by sipp. To do so, use [call_id] keyword. -->
<send retrans="5000">
<![CDATA[
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
From: 0 <sip:[email protected]:5062>;tag=3-[call_number]
To: sut <sip:[service]@[remote_ip]:[remote_port]>
Call-ID: [call_id]
CSeq: 1 INVITE
Contact: sip:sipp@[local_ip]:[local_port]
Max-Forwards: 70
Subject: Performance Test
Geolocation: <http:[email protected]>
Geolocation: <http:[email protected]>
Geolocation: <http:[email protected]>
Geolocation-Routing: yes
P-Asserted-Identity: <sip:[email protected]>
Accept: application/sdp, application/pidf+xml
Content-Type: multipart/mixed; boundary="boundary1"
Content-Length: 2000
--boundary1
Content-Type: application/sdp
v=0
o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
s=-
c=IN IP[media_ip_type] [media_ip]
t=0 0
m=audio [media_port] RTP/AVP 0
a=rtpmap:0 PCMU/8000
--boundary1
Content-Type: application/pidf+xml
Content-ID: <[email protected]>
<?xml version="1.0" encoding="UTF-8"?>
<presence>
xmlns="urn:ietf:params:xml:ns:pidf"
xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10"
xmlns:gbp="urn:ietf:params:xml:ns:pidf:geopriv10:basicPolicy"
xmlns:cl="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"
xmlns:gml="http://www.opengis.net/gml"
xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model"
entity="pres:[email protected]">
<dm:device id="target123-1">
<gp:geopriv>
<gp:location-info>
<gml:location>
<gml:Point srsName="urn:ogc:def:crs:EPSG::4326">
<gml:pos>32.86726 -97.16054</gml:pos>
</gml:Point>
</gml:location>
</gp:location-info>
<gp:usage-rules>
<gbp:retransmission-allowed>false
</gbp:retransmission-allowed>
<gbp:retention-expiry>2010-11-14T20:00:00Z
</gbp:retention-expiry>
</gp:usage-rules>
<gp:method>802.11</gp:method>
</gp:geopriv>
<dm:deviceID>mac:1234567890ab</dm:deviceID>
<dm:timestamp>2010-11-04T20:57:29Z</dm:timestamp>
</dm:device>
</presence>
--boundary1--
]]>
</send>
<recv response="100"
optional="true">
</recv>
<recv response="180" optional="true">
</recv>
<!-- By adding rrs="true" (Record Route Sets), the route sets -->
<!-- are saved and used for following messages sent. Useful to test -->
<!-- against stateful SIP proxies/B2BUAs. -->
<recv response="200" rtd="true">
</recv>
<!-- Packet lost can be simulated in any send/recv message by -->
<!-- by adding the 'lost = "10"'. Value can be [1-100] percent. -->
<!-- ROUTE HEADER WITH CALL SERVER(OPENSIPS) IP ADDRESS (i.e. 192.168.0.101) -->
<send>
<![CDATA[
ACK sip:[email protected]:[remote_port] SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
Route: <sip:[email protected];lr>
From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=3-[call_number]
To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]
Call-ID: [call_id]
CSeq: 1 ACK
Contact: sip:sipp@[local_ip]:[local_port]
Max-Forwards: 70
Subject: Performance Test
Content-Length: 0
]]>
</send>
<!-- This delay can be customized by the -d command-line option -->
<!-- or by adding a 'milliseconds = "value"' option here. -->
<pause milliseconds="2000"/>
<!-- The 'crlf' option inserts a blank line in the statistics report. -->
<!-- ROUTE HEADER WITH CALL SERVER(OPENSIPS) IP ADDRESS (i.e. 192.168.0.101) -->
<send retrans="5000">
<![CDATA[
BYE sip:[email protected]:[remote_port] SIP/2.0
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
Route: <sip:[email protected];lr>
From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=3-[call_number]
To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]
Call-ID: [call_id]
CSeq: 2 BYE
Contact: sip:sipp@[local_ip]:[local_port]
Max-Forwards: 70
Subject: Performance Test
Content-Length: 0
]]>
</send>
<recv response="200" >
</recv>
<!-- definition of the response time repartition table (unit is ms) -->
<ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
<!-- definition of the call length repartition table (unit is ms) -->
<CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
</scenario>
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users