SipPayloadsApi

Version 22 (Adrian Georgescu, 08/07/2012 08:47 pm)

1 19 Adrian Georgescu
h1. Payloads API
2 1 Adrian Georgescu
3 20 Adrian Georgescu
These applications provide functionality that are required for implementing a feature-rich SIP SIMPLE client. These applications are used for parsing and generating bodies carried using PUBLISH, SUBSCRIBE and NOTIFY methods designed for asynchronous event notifications, to convey in near real-time, information between SIP end-points.
4 18 Adrian Georgescu
5 20 Adrian Georgescu
An example of such information is presence, which in its basic form it provides user availability information based on end-user choice.  In its advanced form, presence can provide rich state information including but not limited to user mood, geo-location, environment, noise level and the type of communication desired.  The information can be disseminated based on a granular policy which allows end-users to decide who has access to which part of the published information.
6 1 Adrian Georgescu
7 21 Adrian Georgescu
h2. Address Book
8 1 Adrian Georgescu
9 21 Adrian Georgescu
source:sipsimple/addressbook.py
10 21 Adrian Georgescu
11 18 Adrian Georgescu
High-level implementation of an addressbook stored in XCAP documents.  The
12 18 Adrian Georgescu
contacts, groups and their attributes are stored in resource lists and OMA
13 18 Adrian Georgescu
extensions described in OMA-TS-Presence_SIMPLE_XDM are used for describing
14 18 Adrian Georgescu
policy and RLS services by references to resource lists.  Multiple client
15 1 Adrian Georgescu
instances can synchronize this addressbook using XCAP-diff event package.
16 1 Adrian Georgescu
17 21 Adrian Georgescu
h2. Watcher Info 
18 1 Adrian Georgescu
19 1 Adrian Georgescu
Described in RFC3857 and RFC3858.
20 1 Adrian Georgescu
21 21 Adrian Georgescu
source:sipsimple/payloads/watcherinfo.py 
22 21 Adrian Georgescu
23 18 Adrian Georgescu
Parses NOTIFY body for presence.winfo event. Used for keeping track of
24 18 Adrian Georgescu
watchers that subscribed to our presentity.  Based on this information the
25 18 Adrian Georgescu
the user can manage its presence policy.  To retrieve this information the
26 1 Adrian Georgescu
SIP client must subscribe to its own address for event presence.winfo.
27 1 Adrian Georgescu
28 21 Adrian Georgescu
h2. Resource Lists
29 1 Adrian Georgescu
30 1 Adrian Georgescu
Described in RFC4826.
31 18 Adrian Georgescu
32 21 Adrian Georgescu
source:sipsimple/payloads/resourcelists.py
33 21 Adrian Georgescu
34 18 Adrian Georgescu
Parses and generates XML documents for constructing resource lists
35 18 Adrian Georgescu
documents.  Used for server side storage of presence related buddy lists
36 18 Adrian Georgescu
using XCAP protocol.  The SIP clients maintain the resource-lists on the
37 1 Adrian Georgescu
XCAP server which provides persisten storage and aggregation point for
38 18 Adrian Georgescu
multiple devices.
39 1 Adrian Georgescu
40 1 Adrian Georgescu
41 21 Adrian Georgescu
h2. RLS Services
42 1 Adrian Georgescu
43 21 Adrian Georgescu
Described in RFC4826.
44 21 Adrian Georgescu
45 21 Adrian Georgescu
source:sipsimple/payloads/rlsservices.py
46 21 Adrian Georgescu
47 18 Adrian Georgescu
Parses and generates XML documents for constructing rls-services documents. 
48 18 Adrian Georgescu
Used for delegating presence related works to the server.  The client build
49 18 Adrian Georgescu
rls-services lists with buddies and instructs the server to subscribe to the
50 1 Adrian Georgescu
sip uris indicated in the lists.  This way the client can save bandwidth as
51 18 Adrian Georgescu
the server performs the signalling for subscription and collection of
52 1 Adrian Georgescu
notifications and provides consolidated answer to the sip user agent.
53 1 Adrian Georgescu
54 1 Adrian Georgescu
55 21 Adrian Georgescu
h2. RLS Notifications
56 1 Adrian Georgescu
57 1 Adrian Georgescu
 * source:sipsimple/payloads/rlmi.py
58 21 Adrian Georgescu
 * source:sipsimple/payloads/rlsnotify.py 
59 21 Adrian Georgescu
60 22 Adrian Georgescu
Described in RFC4482
61 1 Adrian Georgescu
62 1 Adrian Georgescu
Document handling for NOTIFY body for Resource Lists Contact Information.
63 21 Adrian Georgescu
64 22 Adrian Georgescu
h2. Policy
65 1 Adrian Georgescu
66 22 Adrian Georgescu
Described in RFC4745
67 22 Adrian Georgescu
68 1 Adrian Georgescu
source:sipsimple/policy.py
69 1 Adrian Georgescu
70 21 Adrian Georgescu
Generic data types to be used in policy applications.
71 21 Adrian Georgescu
72 22 Adrian Georgescu
h2. Presence Rules
73 18 Adrian Georgescu
74 22 Adrian Georgescu
Described in RFC5025.
75 15 Adrian Georgescu
76 22 Adrian Georgescu
source:sipsimple/presrules.py
77 22 Adrian Georgescu
78 1 Adrian Georgescu
Parses and generates authorization rules in XML format for presence or other
79 1 Adrian Georgescu
applications.  Authorization rules are stored on the XCAP server.  The
80 1 Adrian Georgescu
presence rules are generated either based on user initiative or as a
81 1 Adrian Georgescu
response to a new subscription signaled by a change in the watcherinfo
82 18 Adrian Georgescu
application.
83 18 Adrian Georgescu
84 18 Adrian Georgescu
85 22 Adrian Georgescu
h2. OMA Policy
86 1 Adrian Georgescu
87 22 Adrian Georgescu
source:sipsimple/omapolicy.py
88 22 Adrian Georgescu
89 22 Adrian Georgescu
Described in OMA-TS-Presence_SIMPLE_XDM-V1_1
90 22 Adrian Georgescu
91 18 Adrian Georgescu
Conditions extension handling according to OMA-TS-Presence_SIMPLE_XDM-V1_1. 
92 18 Adrian Georgescu
This module provides an extension to common policy defined in RFC4745 to
93 18 Adrian Georgescu
support condition extensions defined by OMA.
94 1 Adrian Georgescu
95 22 Adrian Georgescu
h2. Presence Content
96 15 Adrian Georgescu
97 22 Adrian Georgescu
source:sipsimple/payloads/prescontent.py
98 18 Adrian Georgescu
99 22 Adrian Georgescu
Described in OMA-TS-Presence_SIMPLE_XDM-V1_1
100 22 Adrian Georgescu
101 15 Adrian Georgescu
Generates presence content application documents according to OMA TS
102 18 Adrian Georgescu
Presence SIMPLE Content.
103 1 Adrian Georgescu
104 22 Adrian Georgescu
h2. XCAP Directory
105 8 Adrian Georgescu
106 22 Adrian Georgescu
source:sipsimple/payloads/directory.py (OMA Core Specifications)
107 1 Adrian Georgescu
108 18 Adrian Georgescu
Parses xcap-directory messages according to OMA TS XDM Core.
109 8 Adrian Georgescu
110 22 Adrian Georgescu
source:sipsimple/payloads/dialoginfo.py
111 1 Adrian Georgescu
112 22 Adrian Georgescu
Described in RFC4235.
113 1 Adrian Georgescu
114 18 Adrian Georgescu
Parses and produces dialog-info messages according to RFC4235.
115 1 Adrian Georgescu
116 1 Adrian Georgescu
117 22 Adrian Georgescu
h2. Dialog Rules
118 18 Adrian Georgescu
119 22 Adrian Georgescu
source:sipsimple/payloads/dialogrules.py
120 22 Adrian Georgescu
121 18 Adrian Georgescu
Parses and produces Dialog Authorization Rules documents. As there is no RFC
122 15 Adrian Georgescu
for this, common-policy format from RFC 4745 is used.  Subscription Handling
123 11 Adrian Georgescu
has been taken from RFC 5025.
124 11 Adrian Georgescu
125 22 Adrian Georgescu
h2. PIDF
126 1 Adrian Georgescu
127 22 Adrian Georgescu
source:sipsimple/payloads/pidf.py
128 18 Adrian Georgescu
129 22 Adrian Georgescu
Described in RFC3863 and RFC3379.
130 22 Adrian Georgescu
131 18 Adrian Georgescu
This module provides classes to parse and generate PIDF documents, and also
132 18 Adrian Georgescu
uses the XML Application extensibility API to allow extensions to PIDF. It
133 1 Adrian Georgescu
is used to parse NOTIFY body for presence event and generates rich presence
134 1 Adrian Georgescu
state information for use with PUBLISH. Used to generate own presence
135 18 Adrian Georgescu
information and to parse the state of buddy lists entries we have subscribed
136 1 Adrian Georgescu
to. A SIP client typically instantiates a new pidf object for itself and for
137 1 Adrian Georgescu
each buddy it SUBSCRIBEs to and update each object when a NOTIFY is
138 1 Adrian Georgescu
received. The list of buddys is maintained using resourcelists application.
139 1 Adrian Georgescu
140 22 Adrian Georgescu
h2. RPIDF
141 1 Adrian Georgescu
142 22 Adrian Georgescu
source:sipsimple/payloads/rpid.py
143 18 Adrian Georgescu
144 22 Adrian Georgescu
Described in RFC4480.
145 22 Adrian Georgescu
146 1 Adrian Georgescu
This module provides an extension to PIDF to support rich presence.
147 1 Adrian Georgescu
148 22 Adrian Georgescu
h2. Presence Data Model
149 1 Adrian Georgescu
150 22 Adrian Georgescu
source:sipsimple/payloads/presdm.py.
151 11 Adrian Georgescu
152 22 Adrian Georgescu
Described in RFC4479.
153 11 Adrian Georgescu
154 22 Adrian Georgescu
This module provides an extension to the PIDF to support the data module defined in RFC4479.
155 1 Adrian Georgescu
156 22 Adrian Georgescu
157 22 Adrian Georgescu
h2. CIPID
158 22 Adrian Georgescu
159 22 Adrian Georgescu
source:sipsimple/payloads/cipid.py
160 22 Adrian Georgescu
161 22 Adrian Georgescu
Described in RFC4482.
162 1 Adrian Georgescu
 
163 1 Adrian Georgescu
This module provides an extension to PIDF to provide person related information.
164 1 Adrian Georgescu
165 22 Adrian Georgescu
h2. Endpoint Capabilities
166 18 Adrian Georgescu
167 22 Adrian Georgescu
source:sipsimple/payloads/caps.py
168 11 Adrian Georgescu
169 22 Adrian Georgescu
Described in RFC5196.
170 22 Adrian Georgescu
171 18 Adrian Georgescu
This module provides capabilities application: displays OPTIONS request-like information
172 11 Adrian Georgescu
as an extension to the PIDF.
173 11 Adrian Georgescu
174 22 Adrian Georgescu
h2. XCAP capabilities
175 11 Adrian Georgescu
176 22 Adrian Georgescu
source:sipsimple/payloads/xcapcaps.py
177 18 Adrian Georgescu
178 22 Adrian Georgescu
Described in RFC4825.
179 22 Adrian Georgescu
180 18 Adrian Georgescu
Support for parsing and building xcap-caps documents, as defined by RFC4825.
181 11 Adrian Georgescu
182 22 Adrian Georgescu
h2. XCAP Diff
183 15 Adrian Georgescu
184 22 Adrian Georgescu
source:sipsimple/payloads/xcapdiff.py
185 22 Adrian Georgescu
186 22 Adrian Georgescu
Described in RFC5874.
187 18 Adrian Georgescu
188 18 Adrian Georgescu
Parses NOTIFY body for xcap-diff event. Used to detect changes in XCAP
189 15 Adrian Georgescu
documents changed by other device configured for the same presentity.
190 11 Adrian Georgescu
191 18 Adrian Georgescu
192 11 Adrian Georgescu
iscomposing.py (RFC3994)
193 18 Adrian Georgescu
194 18 Adrian Georgescu
This module parses and generates isComposing messages according to RFC3994. It's used
195 18 Adrian Georgescu
mainly in chat environments to indicate the other party that the user is actually
196 11 Adrian Georgescu
typing a message.
197 11 Adrian Georgescu
198 18 Adrian Georgescu
199 11 Adrian Georgescu
conference.py (RFC4575)
200 18 Adrian Georgescu
201 18 Adrian Georgescu
This module implements conference-info payload parsing and generating for
202 11 Adrian Georgescu
describing information about conference participants and related resources.
203 15 Adrian Georgescu
204 18 Adrian Georgescu
205 1 Adrian Georgescu
messagesummary.py (RFC3842)
206 18 Adrian Georgescu
207 18 Adrian Georgescu
This module implements a parser and generator for message-summary payload,
208 1 Adrian Georgescu
which is used to indicate missed calls or voice mail recordings.