DesignXMPP conference » History » Version 11
Saúl Ibarra Corretgé, 01/29/2013 10:29 PM
1 | 2 | Adrian Georgescu | h1. SIP-XMPP Multiparty Chat |
---|---|---|---|
2 | 3 | Adrian Georgescu | |
3 | This is done by bridging MUC functionality from XMPP with MSRP-Switch functionality using SIP. |
||
4 | |||
5 | 4 | Adrian Georgescu | * SIP users can create ad-hoc conference rooms using SylkServer MSRP chat and invite users from both SIP and XMPP domains |
6 | * XMPP users can create multiparty conferences using SylkServer MUC capability and invite users from both XMPP and SIP worlds |
||
7 | 5 | Saúl Ibarra Corretgé | |
8 | h2. Joining a conference |
||
9 | |||
10 | A conference room will be created if it doesn't exist previously. For joining a conference, an XMPP endpoint will send a presence stanza with the URI of the room. SylkServer handles conferences as part of the conference application, so it will create a new SIP session which will join the conference.Usually the SIP INVITE will loop in the proxy and enter SylkServer again, but this time the executed application will be "conference". |
||
11 | |||
12 | 9 | Saúl Ibarra Corretgé | The XMPP gateway application will receive SIP NOTIFY requests with "RFC 4575":https://tools.ietf.org/html/rfc4575 payload specifying the participants in the room, and this will be translated into presence stanza elements. Likewise, all MSRP messages received on the SIP session will be translated into _groupchat_ message stanzas. |
13 | 5 | Saúl Ibarra Corretgé | |
14 | 10 | Saúl Ibarra Corretgé | !{ 700px, center}xmppgw_muc_x2s.png! |
15 | |||
16 | 5 | Saúl Ibarra Corretgé | h2. Inviting new participants |
17 | |||
18 | 11 | Saúl Ibarra Corretgé | SylkServer allows for XMPP users to invite SIP endpoints or vice versa. This is accomplished in the same fashion as joining a conference: it takes place on the _conference_ application, which is based on SIP. Here is the sequence of actions which are performed for inviting a SIP or XMPP endpoint to a conference room, from an XMPP endpoints standpoint: |
19 | |||
20 | # A message stanza with the _invite_ element pointing to the desired user |
||
21 | # SylkServer sends a out of dialog REFER request towards the conference room URI and indicates the use that needs to be invited in a Refer-To header |
||
22 | # When the REFER request arrives back at SylkServer, it will create an outgoing SIP session towards the URI in the Refer-To header, it also indicates that the session comes from a conference server by adding the _isfocus_ contact header parameter |
||
23 | # If the invited user was a SIP endpoint, it will accept the session and join the conference |
||
24 | # If the invited user was a XMPP endpoint, the SIP INVITE will enter SylkServer yet again, but this time it will be handled by the XMPP gateway application |
||
25 | # The XMPP gateway application detects the INVITE as an invitation to join a conference because it contains a Referred-By header and the _isfocus_ contact header parameter |
||
26 | # SylkServer sends a message stanza to the invited user indicating who invited him |
||
27 | |||
28 |