sip conferencing reloaded
DESCRIPTION
Slides from the talk given at ITExpo East 2012TRANSCRIPT
Saúl Ibarra Corretgé
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
AG Projects
● SIP infrastructure for providers● SIPThor: horizontal scalability without user limit● Software projects:
● Blink● SIPSIMPLE SDK● SylkServer● MediaProxy● OpenXCAP● MSRPRelay
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
Current state of the art
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
Conferencing today
● Usually mere RTP mixers● Conference calls need a context● Lack of multiplexed information
● Different media types● Session information● Participants information● Shared resources
● There is sometimes a nice website with information
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
SylkServer
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
SylkServer
● Open Source SIP application server● Conferencing
● HD audio● Chat● File transfer● Screen sharing
http://sylkserver.com
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
SIP Chatserver
● Chat server using MSRP
● Ad-hoc rooms● Join using SIP
2009 2011 20122010
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
● SIP chatserver no longer worked with our latest APIs
● Needed a rewrite
2009 2011 20122010
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
Less than a week later...
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
SIP Chatserver Reloaded
● HD audio● Multiparty chat● Conference event
package
2009 2011 20122010
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
SylkServer 1.0.0
● HD audio conferencing● Multiparty chat● Participants information
2009 2011 20122010
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
Blink 0.24.0 + SylkServer 1.1.0● HD audio
conferencing● Multiparty chat● Participants
information● Add / remove
participants
2009 2011 20122010
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
Blink Pro 1.1.0 + SylkServer 1.2.0● HD audio
conferencing● Multiparty chat● Participants
information● Add / remove
participants● File transfers (push
and pull)
2009 2011 20122010
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
Blink Pro 1.6.0 + SylkServer 1.3.0● HD audio
conferencing● Multiparty chat● Participants
information● Add / remove
participants● File transfers (push
and pull)● Screensharing
2009 2011 20122010
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
How does it actually work?
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
MSRP
● Message Session Relay Protocol● Real IM (session based) for SIP● RFC 3428 (SIP MESSAGE) is not real IM● Very simple, just a couple of RFCs (4975 and 4976)● TLS is mandatory
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
MSRP
● MSRP allows us to negotiate a TCP connection between 2 SIP endpoints● Instant Messaging● File transfer (RFC 5547)● Screen sharing– VNC over MSRP (expired draft)– Stream images
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
MSRP
v=0
o=- 3519532764 3519532764 IN IP4 192.168.1.43
s=Blink Pro 1.1.2 (MacOSX)
c=IN IP4 192.168.1.43
t=0 0
m=message 2855 TCP/TLS/MSRP *
a=path:msrps://192.168.1.43:2855/fd5a5fbfe517e6c2ed76;tcp
a=accept-types:message/cpim text/* application/im-iscomposing+xml
a=accept-wrapped-types:*
a=setup:active
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
MSRP
v=0
o=- 3519533090 3519533090 IN IP4 192.168.1.43
s=Blink Pro 1.1.2 (MacOSX)
c=IN IP4 192.168.1.43
t=0 0
m=message 2855 TCP/TLS/MSRP *
a=path:msrps://192.168.1.43:2855/15be969db481aaa26f35;tcp
a=sendonly
a=accept-types:*
a=accept-wrapped-types:*
a=setup:active
a=file-selector:name:"clever_algorithms.pdf" type:application/pdf size:3133774 hash:sha1:87:F7:A7:5A:F5:48:0F:8A:DD:3F:D8:49:F0:86:51:93:A2:9B:89:19
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
A SIP conference server
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
Contact: <sip:[email protected]:5060>;isfocus
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
Conference event package
SUBSCRIBE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 192.168.1.43:60530;rport;branch=z9hG4bKPjEgakb...
Max-Forwards: 70
From: "Saúl" <sip:[email protected]>;tag=I3OcER0qmkv...
To: <sip:[email protected]>
Contact: <sip:[email protected]:60530>
Call-ID: cv8.LQxG4qjcDZSxOZKoOhQr0OF7lz-Z
CSeq: 26852 SUBSCRIBE
Event: conference
Expires: 3600
Accept: application/conference-info+xml
Allow-Events: conference, message-summary, presence, presence.winfo, xcap-diff, refer
User-Agent: Blink Pro 1.1.2 (MacOSX)
Content-Length: 0
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
RFC4575 payload
<conference-description> <display-text>Ad-hoc conference</display-text> <free-text>Hosted by SylkServer-1.2.1</free-text></conference-description><host-info> <web-page>http://sylkserver.com</web-page></host-info><conference-state> <user-count>1</user-count> <active>true</active></conference-state>
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
RFC4575 payload
<users state="full"> <user entity="sip:[email protected]" state="full"> <display-text>Saúl</display-text> <endpoint entity="sip:[email protected]:60530" state="full"> <display-text>Saúl</display-text> <status>connected</status> <joining-info><when>2011-07-13T23:39:07+02:00</when></joining-info> <media id="152141036"><type>message</type></media> </endpoint> </user></users>
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
RFC4575 payload
<agp-conf:resources>
<agp-conf:files>
<agp-conf:file name="fry.png" hash="sha1:E1:FA:5C:C2:0A:95:DC:3C:C0:7E:AD:F6:25:50:BB:62:D9:F5:B8:3B" size="177533" sender="Saul <sip:[email protected]>" status="OK"/>
</agp-conf:files>
</agp-conf:resources>
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
Adding / removing participants
REFER sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 192.168.99.36:65017;rport;branch=z9hG4bKPjjao...
Max-Forwards: 70
From: "Saúl" <sip:[email protected]>;tag=7HXkWbL...
To: <sip:[email protected]>
Contact: <sip:[email protected]:65017>
Call-ID: oiXv9JpNLp9f8GbRLDYw6dVrEnhU7On0
CSeq: 15438 REFER
Event: refer
Accept: message/sipfrag;version=2.0
Allow-Events: conference, message-summary, presence, presence.winfo, xcap-diff, refer
Refer-To: <[email protected]>;method=INVITE
Referred-By: sip:[email protected]
User-Agent: Blink Pro 1.3.0 (MacOSX)
Content-Length: 0
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
What about Asterisk?
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
Basic conference info with Asterisk (idea)
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
BYE
1. Everything should be a building block
2. Our customers need help
3. Use Open Standards
4. “Let's build it before we're too old to enjoy it”
Carl G. Fisher
5. “Skate to where the puck is going to be, not
where it has been”Wayne Gretzky
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
BYE sip:audience@itexpo SIP/2.0Via: SIP/2.0/UDP 192.168.99.23:49919;rport;branch=z9hG4bKPjDb30Dx0sH-ozn9QB.cCCboyU.atR97aMMax-Forwards: 70From: "saghul" <sip:[email protected]>;tag=UCpGKVZbQQx7BUKYtiuPEX668oa9jaU7To: <sip:audience@itexpo>;tag=as59aef35cCall-ID: DEWDfu63OACwYeQk7MrhmRhRq.1cqqisCSeq: 10633 BYERoute: <sip:81.23.228.129;lr;ftag=UCpGKVZbQQx7BUKYtiuPEX668oa9jaU7;did=641.a8a9c553>User-Agent: blink-0.20.2Content-Length: 0
@saghul
AG Projects SIP Conferencing ReloadedThe SIP Infrastructure Experts
References
● MSRP protocol (RFC4575, RFC4576)● MSRP file transfer (RFC5547)● MSRP switch (draft-ietf-simple-chat)● Conference event package (RFC4575)● A framework for conferencing with SIP (RFC4353)● Conferencing for User Agents (RFC4579)