Sip subscribe winfo

Version 16 (Adrian Georgescu, 03/31/2009 03:05 pm)

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