ODF

Version 6 (Adrian Georgescu, 11/04/2014 12:58 pm)

1 1 Adrian Georgescu
h1. ODF integration
2 1 Adrian Georgescu
3 5 Adrian Georgescu
This documents layout the changes required to support a new type of stream for collaborative editing.
4 1 Adrian Georgescu
5 6 Adrian Georgescu
h2. SDK changes
6 1 Adrian Georgescu
7 6 Adrian Georgescu
h3. Signaling
8 6 Adrian Georgescu
9 1 Adrian Georgescu
There is no need to alter anything related to signalling.
10 1 Adrian Georgescu
11 6 Adrian Georgescu
h3. Media
12 1 Adrian Georgescu
13 2 Adrian Georgescu
A new MSRP media type can be created similar to file-transfer or screen sharing. See SIP SIMPLE Client SDK MSRP streams definition:
14 2 Adrian Georgescu
15 2 Adrian Georgescu
<pre>
16 1 Adrian Georgescu
sipsimple/streams/msrp.py
17 1 Adrian Georgescu
</pre>
18 1 Adrian Georgescu
19 6 Adrian Georgescu
h4. Example of a new type of stream
20 3 Adrian Georgescu
21 3 Adrian Georgescu
<pre>
22 3 Adrian Georgescu
class ODFStream(MSRPStreamBase):
23 3 Adrian Georgescu
    type = 'odf'
24 3 Adrian Georgescu
25 3 Adrian Georgescu
    media_type = 'odf'
26 3 Adrian Georgescu
    accept_types = ['application/odf+xml']
27 3 Adrian Georgescu
    accept_wrapped_types = ['*']
28 3 Adrian Georgescu
</pre>
29 1 Adrian Georgescu
30 3 Adrian Georgescu
Once established, the MSRP stream can cary back and forth payloads of the types specified in the stream definition. Is up to the end-points to handle the actual payloads and match various files shared through this mechanism over the same session. The SIP session id can be used to group together various flows within the same stream.
31 1 Adrian Georgescu
32 6 Adrian Georgescu
h3. Presence
33 1 Adrian Georgescu
34 1 Adrian Georgescu
The end-points supporting this feature will advertise this capability by publishing it using SIP SIMPLE Presence. For this the end-point capabilities must be extended to support off.
35 1 Adrian Georgescu
36 1 Adrian Georgescu
<pre>
37 1 Adrian Georgescu
sipsimple/payloads/caps.py
38 4 Adrian Georgescu
</pre>
39 6 Adrian Georgescu
40 6 Adrian Georgescu
h2. GUI changes
41 6 Adrian Georgescu
42 6 Adrian Georgescu
The GUI must handle sessions for incoming and outgoing media stream defined above by creating its own controller.