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 | }}} |