Sip subscribe rls

Version 19 (Adrian Georgescu, 04/14/2009 08:45 am)

1 10 Adrian Georgescu
== sip_subscribe_rls ==
2 14 Adrian Georgescu
[[TOC(SipTesting*, sip_*,xcap*, depth=2)]]
3 1 Adrian Georgescu
4 10 Adrian Georgescu
=== Description ===
5 1 Adrian Georgescu
6 8 Adrian Georgescu
A Resource List Server (RLS) services application is a Session Initiation Protocol (SIP) application whereby a server receives SUBSCRIBE requests for a resource, and generates subscriptions towards a resource list. The received NOTIFY messages are the  aggregated downstream to the original subscriber generating less traffic to the subscriber end-user device.
7 1 Adrian Georgescu
8 1 Adrian Georgescu
This script implements sending SUBSCRIBE to a RLS server and receiving NOTIFY messages from it.
9 17 Adrian Georgescu
10 17 Adrian Georgescu
[[Image(http://www.openxcap.org/chrome/site/SIMPLE-RLS-services.png)]]
11 6 Adrian Georgescu
12 2 Adrian Georgescu
Source code: [source:scripts/sip_subscribe_rls.py scripts/sip_subscribe_rls.py]
13 1 Adrian Georgescu
14 1 Adrian Georgescu
{{{
15 3 Adrian Georgescu
adigeo@ag-imac3:~$sip_subscribe_rls -h
16 3 Adrian Georgescu
Usage: sip_subscribe_rls [options] [target-user@target-domain.com]
17 1 Adrian Georgescu
18 1 Adrian Georgescu
This script will SUBSCRIBE to the presence event published by the specified
19 3 Adrian Georgescu
SIP target assuming it is a resource list handled by a RLS server. The RLS
20 3 Adrian Georgescu
server will then SUBSCRIBE in behalf of the account, collect NOTIFYs with the
21 3 Adrian Georgescu
presence information of the recipients and provide periodically aggregated
22 3 Adrian Georgescu
NOTIFYs back to the subscriber. If a target address is not specified, it will
23 3 Adrian Georgescu
subscribe to the account's own address. It will then interprete PIDF bodies
24 1 Adrian Georgescu
contained in NOTIFYs and display their meaning. The program will un-SUBSCRIBE
25 1 Adrian Georgescu
and quit when CTRL+D is pressed.
26 1 Adrian Georgescu
27 1 Adrian Georgescu
Options:
28 1 Adrian Georgescu
  -h, --help            show this help message and exit
29 1 Adrian Georgescu
  -a NAME, --account-name=NAME
30 1 Adrian Georgescu
                        The account name from which to read account settings.
31 1 Adrian Georgescu
                        Corresponds to section Account_NAME in the
32 1 Adrian Georgescu
                        configuration file. If not supplied, the section
33 1 Adrian Georgescu
                        Account will be read.
34 1 Adrian Georgescu
  --sip-address=SIP_ADDRESS
35 1 Adrian Georgescu
                        SIP address of the user in the form user@domain
36 1 Adrian Georgescu
  -p PASSWORD, --password=PASSWORD
37 1 Adrian Georgescu
                        Password to use to authenticate the local account.
38 1 Adrian Georgescu
                        This overrides the setting from the config file.
39 1 Adrian Georgescu
  -n DISPLAY_NAME, --display-name=DISPLAY_NAME
40 1 Adrian Georgescu
                        Display name to use for the local account. This
41 1 Adrian Georgescu
                        overrides the setting from the config file.
42 1 Adrian Georgescu
  -e EXPIRES, --expires=EXPIRES
43 1 Adrian Georgescu
                        "Expires" value to set in SUBSCRIBE. Default is 300
44 1 Adrian Georgescu
                        seconds.
45 1 Adrian Georgescu
  -o IP[:PORT], --outbound-proxy=IP[:PORT]
46 1 Adrian Georgescu
                        Outbound SIP proxy to use. By default a lookup of the
47 1 Adrian Georgescu
                        domain is performed based on SRV and A records. This
48 1 Adrian Georgescu
                        overrides the setting from the config file.
49 1 Adrian Georgescu
  -c CONTENT_TYPE, --content-type=CONTENT_TYPE
50 1 Adrian Georgescu
                        "Content-Type" the UA expects to receving in a NOTIFY
51 1 Adrian Georgescu
                        for this subscription. For the known events this does
52 1 Adrian Georgescu
                        not need to be specified, but may be overridden".
53 1 Adrian Georgescu
  -s, --trace-sip       Dump the raw contents of incoming and outgoing SIP
54 1 Adrian Georgescu
                        messages (disabled by default).
55 1 Adrian Georgescu
  -l, --log-pjsip       Print PJSIP logging output (disabled by default).
56 1 Adrian Georgescu
}}}
57 19 Adrian Georgescu
58 19 Adrian Georgescu
=== Example ===
59 19 Adrian Georgescu
60 19 Adrian Georgescu
{{{
61 19 Adrian Georgescu
adigeo@ag-imac3:~$sip_subscribe_rls 
62 19 Adrian Georgescu
Using account 31208005169@ag-projects.com
63 19 Adrian Georgescu
Subscribing to sip:31208005169-buddies@ag-projects.com for the presence event
64 19 Adrian Georgescu
Subscription succeeded at 81.23.228.150:5060;transport=udp
65 19 Adrian Georgescu
Received NOTIFY:
66 19 Adrian Georgescu
--kDhCK3ub5XA4X3gQoEF5Mugt
67 19 Adrian Georgescu
Content-Transfer-Encoding: binary
68 19 Adrian Georgescu
Content-ID: <1239691491.sip:31208005169-buddies@ag-projects.com.615954109>
69 19 Adrian Georgescu
Content-Type: application/rlmi+xml;charset="UTF-8r"
70 19 Adrian Georgescu
71 19 Adrian Georgescu
<?xml version="1.0"?>
72 19 Adrian Georgescu
<list uri="sip:31208005169-buddies@ag-projects.com" xmlns="urn:ietf:params:xml:ns:rlmi" version="1" fullState="true">
73 19 Adrian Georgescu
  <resource uri="sip:adi@umts.ro"/>
74 19 Adrian Georgescu
  <resource uri="sip:alice@ag-projects.com"/>
75 19 Adrian Georgescu
  <resource uri="sip:luci@umts.ro"/>
76 19 Adrian Georgescu
</list>
77 19 Adrian Georgescu
78 19 Adrian Georgescu
--kDhCK3ub5XA4X3gQoEF5Mugt--
79 19 Adrian Georgescu
80 19 Adrian Georgescu
81 19 Adrian Georgescu
Available control keys:
82 19 Adrian Georgescu
  t: toggle SIP trace on the console
83 19 Adrian Georgescu
  j: toggle PJSIP trace on the console
84 19 Adrian Georgescu
  n: toggle notifications trace on the console
85 19 Adrian Georgescu
  Ctrl-d: quit the program
86 19 Adrian Georgescu
  ?: display this help message
87 19 Adrian Georgescu
}}}