Sip subscribe winfo

Version 14 (Adrian Georgescu, 03/14/2009 09:54 am)

1 8 Adrian Georgescu
== sip_subscribe_winfo ==
2 10 Adrian Georgescu
[[TOC(SipTesting*, sip_*, depth=2)]]
3 13 Adrian Georgescu
To use this script you must to have a valid [wiki:SipSettingsAPI configuration].
4 1 Adrian Georgescu
5 8 Adrian Georgescu
=== Description ===
6 1 Adrian Georgescu
7 14 Adrian Georgescu
[[Image(http://www.openxcap.org/chrome/site/SIMPLE-Winfo.png, align=right)]]
8 11 Adrian Georgescu
9 6 Adrian Georgescu
Watchers are defined as entities that request (i.e., subscribe to)
10 6 Adrian Georgescu
information about a resource, using the SIP event framework, RFC 3265. There
11 6 Adrian Georgescu
is fairly complex state associated with these subscriptions.  This state
12 6 Adrian Georgescu
includes the identity of the subscriber, the state of the subscription, and 
13 6 Adrian Georgescu
so on. The union of the state for all subscriptions to a particular resource
14 6 Adrian Georgescu
is called the watcher information for that resource.  This state is dynamic,
15 6 Adrian Georgescu
changing as subscribers come and go.  As a result, it is possible, and
16 6 Adrian Georgescu
indeed useful, to subscribe to the watcher information for a particular
17 6 Adrian Georgescu
resource. An important application of this is the ability for a user to find
18 6 Adrian Georgescu
out the set of subscribers to their presentity. This would allow the user to
19 6 Adrian Georgescu
provide an authorization decision for the subscription.
20 6 Adrian Georgescu
21 6 Adrian Georgescu
This script implements SUBSCRIBE for the watcher info event package and
22 6 Adrian Georgescu
manipulation of the pres-rules document that holds the presence policy of
23 6 Adrian Georgescu
the subscribing user.
24 3 Adrian Georgescu
25 2 Adrian Georgescu
Source code: [source:scripts/sip_subscribe_winfo.py scripts/sip_subscribe_winfo.py]
26 2 Adrian Georgescu
27 1 Adrian Georgescu
{{{
28 1 Adrian Georgescu
adigeo@ag-imac3:~$sip_subscribe_winfo -h
29 1 Adrian Georgescu
Usage: sip_subscribe_winfo [options]
30 1 Adrian Georgescu
31 1 Adrian Georgescu
This example script will use the specified SIP account to SUBSCRIBE to the
32 1 Adrian Georgescu
presence.winfo event of itself and request action to be taken when a new
33 1 Adrian Georgescu
watcher is in 'pending'/'waiting' state. The program will un-SUBSCRIBE and
34 1 Adrian Georgescu
quit when CTRL+D is pressed.
35 1 Adrian Georgescu
36 1 Adrian Georgescu
Options:
37 1 Adrian Georgescu
  -h, --help            show this help message and exit
38 1 Adrian Georgescu
  -a NAME, --account-name=NAME
39 1 Adrian Georgescu
                        The account name from which to read account settings.
40 1 Adrian Georgescu
                        Corresponds to section Account_NAME in the
41 1 Adrian Georgescu
                        configuration file. If not supplied, the section
42 1 Adrian Georgescu
                        Account will be read.
43 1 Adrian Georgescu
  --sip-address=SIP_ADDRESS
44 1 Adrian Georgescu
                        SIP address of the user in the form user@domain
45 1 Adrian Georgescu
  -p PASSWORD, --password=PASSWORD
46 1 Adrian Georgescu
                        Password to use to authenticate the local account.
47 1 Adrian Georgescu
                        This overrides the setting from the config file.
48 1 Adrian Georgescu
  -n DISPLAY_NAME, --display-name=DISPLAY_NAME
49 1 Adrian Georgescu
                        Display name to use for the local account. This
50 1 Adrian Georgescu
                        overrides the setting from the config file.
51 1 Adrian Georgescu
  -e EXPIRES, --expires=EXPIRES
52 1 Adrian Georgescu
                        "Expires" value to set in SUBSCRIBE. Default is 300
53 1 Adrian Georgescu
                        seconds.
54 1 Adrian Georgescu
  -o IP[:PORT], --outbound-proxy=IP[:PORT]
55 1 Adrian Georgescu
                        Outbound SIP proxy to use. By default a lookup of the
56 1 Adrian Georgescu
                        domain is performed based on SRV and A records. This
57 1 Adrian Georgescu
                        overrides the setting from the config file.
58 1 Adrian Georgescu
  -x XCAP_ROOT, --xcap-root=XCAP_ROOT
59 1 Adrian Georgescu
                        The XCAP root to use to access the pres-rules document
60 1 Adrian Georgescu
                        for authorizing subscriptions to presence.
61 1 Adrian Georgescu
  -s, --trace-sip       Dump the raw contents of incoming and outgoing SIP
62 1 Adrian Georgescu
                        messages (disabled by default).
63 1 Adrian Georgescu
  -l, --log-pjsip       Print PJSIP logging output (disabled by default).
64 1 Adrian Georgescu
}}}
65 1 Adrian Georgescu
66 1 Adrian Georgescu
=== Example ===
67 1 Adrian Georgescu
68 1 Adrian Georgescu
{{{
69 1 Adrian Georgescu
adigeo@ag-imac3:~/work/pypjua$sip_subscribe_winfo
70 1 Adrian Georgescu
Accounts available: 'alice', 'bob', 'ew', 'mrg', 'pbx', 'tf', 'umts', 'unet', default
71 1 Adrian Georgescu
Using default account: 31208005169@ag-projects.com
72 1 Adrian Georgescu
Resolved DNS SRV record "_sip._udp.ag-projects.com" --> proxy.sipthor.net:5060
73 1 Adrian Georgescu
Resolved DNS A record "proxy.sipthor.net" --> 85.17.186.7, 81.23.228.150, 81.23.228.129
74 1 Adrian Georgescu
Retrieving current presence rules from https://xcap.sipthor.net/xcap-root/
75 1 Adrian Georgescu
Allowed list:
76 1 Adrian Georgescu
	sip:2233350608@sip2sip.info
77 1 Adrian Georgescu
	sip:31208005163@ag-projects.com
78 1 Adrian Georgescu
	sip:31208005166@ag-projects.com
79 1 Adrian Georgescu
	sip:31208005167@ag-projects.com
80 1 Adrian Georgescu
	sip:adi@umts.ro
81 1 Adrian Georgescu
	sip:alice@example.com
82 1 Adrian Georgescu
	sip:ruud@umts.ro
83 1 Adrian Georgescu
	sip:317105169@eurovoice.ro
84 1 Adrian Georgescu
Blocked list:
85 1 Adrian Georgescu
Polite-blocked list:
86 1 Adrian Georgescu
Subscribing to "31208005169@ag-projects.com" for the presence.winfo event, at 81.23.228.129:5060
87 1 Adrian Georgescu
Received NOTIFY:
88 1 Adrian Georgescu
----
89 1 Adrian Georgescu
Active watchers:
90 1 Adrian Georgescu
Terminated watchers:
91 1 Adrian Georgescu
Pending watchers:
92 1 Adrian Georgescu
  sip:bob@example.com
93 1 Adrian Georgescu
Waiting watchers:
94 1 Adrian Georgescu
----
95 1 Adrian Georgescu
pending watcher sip:bob@example.com wants to subscribe to your presence information. Press (a) to allow, (d) to deny, (p) to polite block:
96 1 Adrian Georgescu
Watcher sip:bob@example.com is now allowed
97 1 Adrian Georgescu
98 1 Adrian Georgescu
}}}