| < draft-saintandre-sip-xmpp-media-00.txt | draft-saintandre-sip-xmpp-media-01.txt > | |||
|---|---|---|---|---|
| Network Working Group P. Saint-Andre | Network Working Group P. Saint-Andre | |||
| Internet-Draft XMPP Standards Foundation | Internet-Draft Cisco | |||
| Intended status: Informational January 4, 2008 | Intended status: Informational March 8, 2009 | |||
| Expires: July 7, 2008 | Expires: September 9, 2009 | |||
| Interworking between the Session Initiation Protocol (SIP) and the | Interworking between the Session Initiation Protocol (SIP) and the | |||
| Extensible Messaging and Presence Protocol (XMPP): Media Sessions | Extensible Messaging and Presence Protocol (XMPP): Media Sessions | |||
| draft-saintandre-sip-xmpp-media-00 | draft-saintandre-sip-xmpp-media-01 | |||
| Status of this Memo | Status of this Memo | |||
| By submitting this Internet-Draft, each author represents that any | This Internet-Draft is submitted to IETF in full conformance with the | |||
| applicable patent or other IPR claims of which he or she is aware | provisions of BCP 78 and BCP 79. | |||
| have been or will be disclosed, and any of which he or she becomes | ||||
| aware will be disclosed, in accordance with Section 6 of BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| other groups may also distribute working documents as Internet- | other groups may also distribute working documents as Internet- | |||
| Drafts. | Drafts. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on July 7, 2008. | This Internet-Draft will expire on September 9, 2009. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The IETF Trust (2008). | Copyright (c) 2009 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | ||||
| This document is subject to BCP 78 and the IETF Trust's Legal | ||||
| Provisions Relating to IETF Documents in effect on the date of | ||||
| publication of this document (http://trustee.ietf.org/license-info). | ||||
| Please review these documents carefully, as they describe your rights | ||||
| and restrictions with respect to this document. | ||||
| Abstract | Abstract | |||
| This document defines a bi-directional protocol mapping for use by | This document defines a bi-directional protocol mapping for use by | |||
| gateways that enable the exchange of media signalling messages | gateways that enable the exchange of media signalling messages | |||
| between systems that implement the Jingle extensions to the | between systems that implement the Jingle extensions to the | |||
| Extensible Messaging and Presence Protocol (XMPP) and those that | Extensible Messaging and Presence Protocol (XMPP) and those that | |||
| implement the Session Initiation Protocol (SIP). | implement the Session Initiation Protocol (SIP). | |||
| Table of Contents | Table of Contents | |||
| skipping to change at page 2, line 18 ¶ | skipping to change at page 3, line 4 ¶ | |||
| 2. Jingle to SIP . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Jingle to SIP . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2.2. Syntax Mappings . . . . . . . . . . . . . . . . . . . . . 4 | 2.2. Syntax Mappings . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.3. Sample Scenarios . . . . . . . . . . . . . . . . . . . . . 8 | 2.3. Sample Scenarios . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 3. SIP to Jingle . . . . . . . . . . . . . . . . . . . . . . . . 14 | 3. SIP to Jingle . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 4. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | |||
| 5. References . . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 5. References . . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 5.1. Normative References . . . . . . . . . . . . . . . . . . . 15 | 5.1. Normative References . . . . . . . . . . . . . . . . . . . 15 | |||
| 5.2. Informative References . . . . . . . . . . . . . . . . . . 16 | 5.2. Informative References . . . . . . . . . . . . . . . . . . 16 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 16 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| Intellectual Property and Copyright Statements . . . . . . . . . . 17 | ||||
| 1. Introduction | 1. Introduction | |||
| The Session Initiation Protocol [SIP] is a widely-deployed technology | The Session Initiation Protocol [SIP] is a widely-deployed technology | |||
| for the management of media sessions (such as voice calls) over the | for the management of media sessions (such as voice calls) over the | |||
| Internet. SIP itself provides a signalling channel (typically via | Internet. SIP itself provides a signalling channel (typically via | |||
| the User Datagram Protocol [UDP]), over which two or more parties can | the User Datagram Protocol [UDP]), over which two or more parties can | |||
| exchange messages for the purpose of negotiating a media session that | exchange messages for the purpose of negotiating a media session that | |||
| uses a dedicated media channel such as the Real-time Transport | uses a dedicated media channel such as the Real-time Transport | |||
| Protocol [RTP]. | Protocol [RTP]. | |||
| skipping to change at page 5, line 6 ¶ | skipping to change at page 5, line 6 ¶ | |||
| 2.2.1. Generic Jingle Syntax | 2.2.1. Generic Jingle Syntax | |||
| Jingle is designed in a modular fashion, so that session description | Jingle is designed in a modular fashion, so that session description | |||
| data is generally carried in a payload within the generic Jingle | data is generally carried in a payload within the generic Jingle | |||
| elements, i.e., the <jingle/> element and its <content/> child. The | elements, i.e., the <jingle/> element and its <content/> child. The | |||
| following example illustrates this structure, where the XMPP stanza | following example illustrates this structure, where the XMPP stanza | |||
| is a request to initiate an audio session using RTP over a raw UDP | is a request to initiate an audio session using RTP over a raw UDP | |||
| transport. | transport. | |||
| <iq from='romeo@example.net/v3rsch1kk3l1jk' | <iq from='romeo@example.net/v3rsch1kk3l1jk' | |||
| id='jingle1' | id='ne91v36s' | |||
| to='juliet@example.com/t3hr0zny' | to='juliet@example.com/t3hr0zny' | |||
| type='set'> | type='set'> | |||
| <jingle xmlns='urn:xmpp:jingle' | <jingle xmlns='urn:xmpp:jingle:1' | |||
| action='session-initiate' | action='session-initiate' | |||
| initiator='romeo@example.net/v3rsch1kk3l1jk' | initiator='romeo@example.net/v3rsch1kk3l1jk' | |||
| responder='juliet@example.com/t3hr0zny' | ||||
| sid='a73sjjvkla37jfea'> | sid='a73sjjvkla37jfea'> | |||
| <content creator='initiator' | <content creator='initiator' | |||
| media='audio' | ||||
| name='this-is-the-audio-content' | name='this-is-the-audio-content' | |||
| profile='RTP/AVP' | ||||
| senders='both'> | senders='both'> | |||
| <description xmlns='urn:xmpp:jingle:app:audio-rtp'> | <description xmlns='urn:xmpp:jingle:app:rtp:1'> | |||
| <payload-type id='96' name='speex' clockrate='16000'/> | <payload-type id='96' name='speex' clockrate='16000'/> | |||
| <payload-type id='97' name='speex' clockrate='8000'/> | <payload-type id='97' name='speex' clockrate='8000'/> | |||
| <payload-type id='18' name='G729'/> | <payload-type id='18' name='G729'/> | |||
| <payload-type channels='2' | <payload-type channels='2' | |||
| clockrate='16000' | clockrate='16000' | |||
| id='103' | id='103' | |||
| name='L16'/> | name='L16'/> | |||
| <payload-type id='98' name='x-ISAC' clockrate='8000'/> | <payload-type id='98' name='x-ISAC' clockrate='8000'/> | |||
| </description> | </description> | |||
| <transport xmlns='urn:xmpp:jingle:transport:raw-udp'> | <transport xmlns='urn:xmpp:jingle:transport:raw-udp'> | |||
| <candidate ip='10.1.1.104' port='13540' generation='0'/> | <candidate ip='10.1.1.104' port='13540' generation='0'/> | |||
| </transport> | </transport> | |||
| </content> | </content> | |||
| </jingle> | </jingle> | |||
| </iq> | </iq> | |||
| In the foregoing example, the syntax and semantics of the <jingle/> | In the foregoing example, the syntax and semantics of the <jingle/> | |||
| and <content/> elements are defined in [JINGLE], the syntax and | and <content/> elements are defined in [JINGLE], the syntax and | |||
| semantics of the <description/> element are defined in | semantics of the <description/> element are defined in [JINGLE-RTP], | |||
| [JINGLE-AUDIO], and the syntax and semantics of the <transport/> | and the syntax and semantics of the <transport/> element are defined | |||
| element are defined in [JINGLE-UDP]. Other <description/> elements | in [JINGLE-UDP]. Other <description/> elements are defined in | |||
| are defined in specifications for the appropriate application types | specifications for the appropriate application types (see for example | |||
| (see for example [JINGLE-VIDEO]) and other <transport/> elements are | [JINGLE-RTP]) and other <transport/> elements are defined in the | |||
| defined in the specifications for appropriate transport methods (see | specifications for appropriate transport methods (see for example | |||
| for example [JINGLE-ICE], which defines an XMPP profile of [ICE]). | [JINGLE-ICE], which defines an XMPP profile of [ICE]). | |||
| At the core Jingle layer, the following mappings are defined. | At the core Jingle layer, the following mappings are defined. | |||
| +--------------------------------+--------------------------------+ | +--------------------------------+--------------------------------+ | |||
| | Jingle | SIP | | | Jingle | SIP | | |||
| +--------------------------------+--------------------------------+ | +--------------------------------+--------------------------------+ | |||
| | <jingle/> 'action' | [ see next table ] | | | <jingle/> 'action' | [ see next table ] | | |||
| +--------------------------------+--------------------------------+ | +--------------------------------+--------------------------------+ | |||
| | <jingle/> 'initiator' | [ no mapping ] | | | <jingle/> 'initiator' | [ no mapping ] | | |||
| +--------------------------------+--------------------------------+ | +--------------------------------+--------------------------------+ | |||
| skipping to change at page 7, line 32 ¶ | skipping to change at page 7, line 32 ¶ | |||
| | session-initiate | INVITE request | | | session-initiate | INVITE request | | |||
| +-------------------+-----------------+ | +-------------------+-----------------+ | |||
| | session-terminate | BYE | | | session-terminate | BYE | | |||
| +-------------------+-----------------+ | +-------------------+-----------------+ | |||
| | transport-info | [varies] | | | transport-info | [varies] | | |||
| +-------------------+-----------------+ | +-------------------+-----------------+ | |||
| 2.2.2. Audio Application Format | 2.2.2. Audio Application Format | |||
| A Jingle application format for audio exchange via RTP is specified | A Jingle application format for audio exchange via RTP is specified | |||
| in [JINGLE-AUDIO]. This application format effectively maps to the | in [JINGLE-RTP]. This application format effectively maps to the | |||
| "RTP/AVP" profile specified in [RTP-AVP], where the media type is | "RTP/AVP" profile specified in [RTP-AVP], where the media type is | |||
| "audio" and the specific mappings to SDP syntax are provided in | "audio" and the specific mappings to SDP syntax are provided in | |||
| [JINGLE-AUDIO]. | [JINGLE-RTP]. | |||
| 2.2.3. Video Application Format | 2.2.3. Video Application Format | |||
| A Jingle application format for video exchange via RTP is specified | A Jingle application format for video exchange via RTP is specified | |||
| in [JINGLE-VIDEO]. This application format effectively maps to the | in [JINGLE-RTP]. This application format effectively maps to the | |||
| "RTP/AVP" profile specified in [RTP-AVP], where the media type is | "RTP/AVP" profile specified in [RTP-AVP], where the media type is | |||
| "audio" and the specific mappings to SDP syntax are provided in | "audio" and the specific mappings to SDP syntax are provided in | |||
| [JINGLE-VIDEO]. | [JINGLE-RTP]. | |||
| 2.2.4. Raw UDP Transport Method | 2.2.4. Raw UDP Transport Method | |||
| A basic Jingle transport method for exchanging media over UDP is | A basic Jingle transport method for exchanging media over UDP is | |||
| specified in [JINGLE-UDP]. This transport method involves the | specified in [JINGLE-UDP]. This transport method involves the | |||
| negotiation of an IP address and port only, and does not provide NAT | negotiation of an IP address and port only, and does not provide NAT | |||
| traversal. The Jingle 'ip' attribute maps to the connection-address | traversal. The Jingle 'ip' attribute maps to the connection-address | |||
| parameter of the SDP c= line and the 'port' attribute maps to the | parameter of the SDP c= line and the 'port' attribute maps to the | |||
| port parameter of the SDP m= line. | port parameter of the SDP m= line. | |||
| skipping to change at page 10, line 6 ¶ | skipping to change at page 10, line 6 ¶ | |||
| | | 200 OK | | | | 200 OK | | |||
| | |---------------------->| | | |---------------------->| | |||
| | | | | | | | | |||
| The packet flow is as follows. | The packet flow is as follows. | |||
| First the XMPP user sends a Jingle session-initiation request to the | First the XMPP user sends a Jingle session-initiation request to the | |||
| SIP user. | SIP user. | |||
| <iq from='juliet@example.com/t3hr0zny' | <iq from='juliet@example.com/t3hr0zny' | |||
| id='jingle1' | id='hu2s61f4' | |||
| from='romeo@example.net/v3rsch1kk3l1jk' | from='romeo@example.net/v3rsch1kk3l1jk' | |||
| type='set'> | type='set'> | |||
| <jingle xmlns='urn:xmpp:jingle' | <jingle xmlns='urn:xmpp:jingle:1' | |||
| action='session-initiate' | action='session-initiate' | |||
| initiator='juliet@example.com/t3hr0zny' | initiator='juliet@example.com/t3hr0zny' | |||
| sid='a73sjjvkla37jfea'> | sid='a73sjjvkla37jfea'> | |||
| <content creator='initiator' | <content creator='initiator' | |||
| name='this-is-the-audio-content' | media='audio' | |||
| profile='RTP/AVP'> | name='this-is-the-audio-content'> | |||
| <description xmlns='urn:xmpp:jingle:app:audio-rtp'> | <description xmlns='urn:xmpp:jingle:app:rtp:1'> | |||
| <payload-type id='96' name='speex' clockrate='16000'/> | <payload-type id='96' name='speex' clockrate='16000'/> | |||
| <payload-type id='97' name='speex' clockrate='8000'/> | <payload-type id='97' name='speex' clockrate='8000'/> | |||
| <payload-type id='18' name='G729'/> | <payload-type id='18' name='G729'/> | |||
| </description> | </description> | |||
| <transport xmlns='urn:xmpp:jingle:transport:raw-udp'> | <transport xmlns='urn:xmpp:jingle:transport:raw-udp'> | |||
| <candidate ip='192.0.2.101' port='49172' generation='0'/> | <candidate ip='192.0.2.101' port='49172' generation='0'/> | |||
| </transport> | </transport> | |||
| </content> | </content> | |||
| </jingle> | </jingle> | |||
| </iq> | </iq> | |||
| The gateway returns an XMPP IQ-result to the initiator on behalf of | The gateway returns an XMPP IQ-result to the initiator on behalf of | |||
| the responder. | the responder. | |||
| <iq from='juliet@example.com/t3hr0zny' | <iq from='juliet@example.com/t3hr0zny' | |||
| id='accept1' | id='hu2s61f4' | |||
| to='romeo@example.net/v3rsch1kk3l1jk' | to='romeo@example.net/v3rsch1kk3l1jk' | |||
| type='result'/> | type='result'/> | |||
| The gateway transforms the Jingle session-initiate action into a SIP | The gateway transforms the Jingle session-initiate action into a SIP | |||
| INVITE. | INVITE. | |||
| INVITE sip:romeo@example.net SIP/2.0 | INVITE sip:romeo@example.net SIP/2.0 | |||
| Via: SIP/2.0/TCP client.example.com:5060;branch=z9hG4bK74bf9 | Via: SIP/2.0/TCP client.example.com:5060;branch=z9hG4bK74bf9 | |||
| Max-Forwards: 70 | Max-Forwards: 70 | |||
| From: Juliet Capulet <sip:juliet@example.com>;tag=t3hr0zny | From: Juliet Capulet <sip:juliet@example.com>;tag=t3hr0zny | |||
| skipping to change at page 11, line 41 ¶ | skipping to change at page 11, line 41 ¶ | |||
| From: Juliet Capulet <sip:juliet@example.com>;tag=t3hr0zny | From: Juliet Capulet <sip:juliet@example.com>;tag=t3hr0zny | |||
| To: Romeo Montague <sip:romeo@example.net>;tag=v3rsch1kk3l1jk | To: Romeo Montague <sip:romeo@example.net>;tag=v3rsch1kk3l1jk | |||
| Call-ID: 3848276298220188511@example.com | Call-ID: 3848276298220188511@example.com | |||
| CSeq: 1 INVITE | CSeq: 1 INVITE | |||
| Contact: <sip:romeo@client.example.net;transport=tcp> | Contact: <sip:romeo@client.example.net;transport=tcp> | |||
| Content-Length: 0 | Content-Length: 0 | |||
| The gateway transforms the ringing message into XMPP syntax. | The gateway transforms the ringing message into XMPP syntax. | |||
| <iq from='romeo@montague.net/v3rsch1kk3l1jk' | <iq from='romeo@montague.net/v3rsch1kk3l1jk' | |||
| id='ringing1' | id='ol3ba71g' | |||
| to='juliet@example.com/t3hr0zny' | to='juliet@example.com/t3hr0zny' | |||
| type='set'> | type='set'> | |||
| <jingle xmlns='urn:xmpp:jingle' | <jingle xmlns='urn:xmpp:jingle:1' | |||
| action='session-info' | action='session-info' | |||
| initiator='juliet@example.com/t3hr0zny' | initiator='juliet@example.com/t3hr0zny' | |||
| sid='a73sjjvkla37jfea'> | sid='a73sjjvkla37jfea'> | |||
| <ringing xmlns='urn:xmpp:jingle:app:audio-rtp-info'/> | <ringing xmlns='urn:xmpp:jingle:app:rtp:1-info'/> | |||
| </jingle> | </jingle> | |||
| </iq> | </iq> | |||
| The initiator returns an IQ-result acknowledging receipt of the | The initiator returns an IQ-result acknowledging receipt of the | |||
| ringing message, which is used only by the gateway and not | ringing message, which is used only by the gateway and not | |||
| transformed into SIP syntax. | transformed into SIP syntax. | |||
| <iq from='juliet@example.com/t3hr0zny' | <iq from='juliet@example.com/t3hr0zny' | |||
| id='ringing1' | id='ol3ba71g' | |||
| to='romeo@example.net/v3rsch1kk3l1jk' | to='romeo@example.net/v3rsch1kk3l1jk' | |||
| type='result'/> | type='result'/> | |||
| The responder sends a SIP 200 OK to the initiator. | The responder sends a SIP 200 OK to the initiator. | |||
| SIP/2.0 200 OK | SIP/2.0 200 OK | |||
| Via: SIP/2.0/TCP client.example.com:5060;branch=z9hG4bK74bf9 | Via: SIP/2.0/TCP client.example.com:5060;branch=z9hG4bK74bf9 | |||
| ;received=192.0.2.101 | ;received=192.0.2.101 | |||
| From: Juliet Capulet <sip:juliet@example.com>;tag=t3hr0zny | From: Juliet Capulet <sip:juliet@example.com>;tag=t3hr0zny | |||
| To: Romeo Montague <sip:romeo@example.net>;tag=v3rsch1kk3l1jk | To: Romeo Montague <sip:romeo@example.net>;tag=v3rsch1kk3l1jk | |||
| skipping to change at page 13, line 6 ¶ | skipping to change at page 13, line 6 ¶ | |||
| c=IN IP4 192.0.2.201 | c=IN IP4 192.0.2.201 | |||
| t=0 0 | t=0 0 | |||
| m=audio 3456 RTP/AVP 0 | m=audio 3456 RTP/AVP 0 | |||
| a=rtpmap:97 SPEEX/8000 | a=rtpmap:97 SPEEX/8000 | |||
| a=rtpmap:18 G729/8000 | a=rtpmap:18 G729/8000 | |||
| The gateway transforms the 200 OK into a Jingle session-accept | The gateway transforms the 200 OK into a Jingle session-accept | |||
| action. | action. | |||
| <iq from='romeo@example.net/v3rsch1kk3l1jk' | <iq from='romeo@example.net/v3rsch1kk3l1jk' | |||
| id='accept1' | id='pd1bf839' | |||
| to='juliet@example.com/t3hr0zny' | to='juliet@example.com/t3hr0zny' | |||
| type='set'> | type='set'> | |||
| <jingle xmlns='urn:xmpp:jingle' | <jingle xmlns='urn:xmpp:jingle:1' | |||
| action='session-accept' | action='session-accept' | |||
| initiator='juliet@example.com/t3hr0zny' | initiator='juliet@example.com/t3hr0zny' | |||
| responder='romeo@example.net/v3rsch1kk3l1jk' | responder='romeo@example.net/v3rsch1kk3l1jk' | |||
| sid='a73sjjvkla37jfea'> | sid='a73sjjvkla37jfea'> | |||
| <content creator='initiator' | <content creator='initiator' | |||
| name='this-is-the-audio-content' | media='audio' | |||
| profile='RTP/AVP'> | name='this-is-the-audio-content'> | |||
| <description xmlns='urn:xmpp:jingle:app:audio-rtp'> | <description xmlns='urn:xmpp:jingle:app:rtp:1'> | |||
| <payload-type id='97' name='speex' clockrate='8000'/> | <payload-type id='97' name='speex' clockrate='8000'/> | |||
| <payload-type id='18' name='G729'/> | <payload-type id='18' name='G729'/> | |||
| <payload-type id='0' name='PCMU' clockrate='8000'/> | <payload-type id='0' name='PCMU' clockrate='8000'/> | |||
| </description> | </description> | |||
| <transport xmlns='urn:xmpp:jingle:transport:raw-udp'> | <transport xmlns='urn:xmpp:jingle:transport:raw-udp'> | |||
| <candidate ip='192.0.2.101' port='49172' generation='0'/> | <candidate ip='192.0.2.101' port='49172' generation='0'/> | |||
| </transport> | </transport> | |||
| </content> | </content> | |||
| </jingle> | </jingle> | |||
| </iq> | </iq> | |||
| If the payload types and transport candidate can be successfully used | If the payload types and transport candidate can be successfully used | |||
| by both parties, then the initiator acknowledges the session-accept | by both parties, then the initiator acknowledges the session-accept | |||
| action. | action. | |||
| <iq from='romeo@example.net/v3rsch1kk3l1jk' | <iq from='romeo@example.net/v3rsch1kk3l1jk' | |||
| id='accept1' | id='pd1bf839' | |||
| to='juliet@example.com/t3hr0zny' | to='juliet@example.com/t3hr0zny' | |||
| type='result'/> | type='result'/> | |||
| The parties now begin to exchange media. In this case they would | The parties now begin to exchange media. In this case they would | |||
| exchange audio using the Speex codec at a clockrate of 8000 since | exchange audio using the Speex codec at a clockrate of 8000 since | |||
| that is the highest-priority codec for the responder (as determined | that is the highest-priority codec for the responder (as determined | |||
| by the XML order of the <payloadtype/> children). | by the XML order of the <payloadtype/> children). | |||
| The parties may continue the session as long as desired. | The parties may continue the session as long as desired. | |||
| skipping to change at page 14, line 17 ¶ | skipping to change at page 14, line 17 ¶ | |||
| Max-Forwards: 70 | Max-Forwards: 70 | |||
| From: Romeo Montague <sip:romeo@example.net>;tag=8321234356 | From: Romeo Montague <sip:romeo@example.net>;tag=8321234356 | |||
| To: Juliet Capulet <sip:juliet@example.com>;tag=9fxced76sl | To: Juliet Capulet <sip:juliet@example.com>;tag=9fxced76sl | |||
| Call-ID: 3848276298220188511@example.com | Call-ID: 3848276298220188511@example.com | |||
| CSeq: 1 BYE | CSeq: 1 BYE | |||
| Content-Length: 0 | Content-Length: 0 | |||
| The gateway transforms the SIP BYE into XMPP syntax. | The gateway transforms the SIP BYE into XMPP syntax. | |||
| <iq from='romeo@example.net/v3rsch1kk3l1jk' | <iq from='romeo@example.net/v3rsch1kk3l1jk' | |||
| id='term1' | id='rv301b47' | |||
| to='juliet@example.com/t3hr0zny' | to='juliet@example.com/t3hr0zny' | |||
| type='set'> | type='set'> | |||
| <jingle xmlns='urn:xmpp:jingle' | <jingle xmlns='urn:xmpp:jingle:1' | |||
| action='session-terminate' | action='session-terminate' | |||
| initiator='juliet@example.com/t3hr0zny' | initiator='juliet@example.com/t3hr0zny' | |||
| reasoncode='no-error' | reasoncode='no-error' | |||
| sid='a73sjjvkla37jfea'/> | sid='a73sjjvkla37jfea'/> | |||
| </iq> | </iq> | |||
| The initiator returns an IQ-result acknowledging receipt of the | The initiator returns an IQ-result acknowledging receipt of the | |||
| session termination, which is used only by the gateway and not | session termination, which is used only by the gateway and not | |||
| transformed into SIP syntax. | transformed into SIP syntax. | |||
| <iq from='romeo@example.net/v3rsch1kk3l1jk' | <iq from='romeo@example.net/v3rsch1kk3l1jk' | |||
| id='term1' | id='rv301b47' | |||
| to='juliet@example.com/t3hr0zny' | to='juliet@example.com/t3hr0zny' | |||
| type='result'/> | type='result'/> | |||
| 3. SIP to Jingle | 3. SIP to Jingle | |||
| To follow. | To follow. | |||
| 4. Security Considerations | 4. Security Considerations | |||
| Detailed security considerations for session management are given for | Detailed security considerations for session management are given for | |||
| skipping to change at page 15, line 14 ¶ | skipping to change at page 15, line 14 ¶ | |||
| 5.1. Normative References | 5.1. Normative References | |||
| [ICE] Rosenberg, J., "Interactive Connectivity Establishment | [ICE] Rosenberg, J., "Interactive Connectivity Establishment | |||
| (ICE): A Protocol for Network Address Translator (NAT) | (ICE): A Protocol for Network Address Translator (NAT) | |||
| Traversal for Offer/Answer Protocols", | Traversal for Offer/Answer Protocols", | |||
| draft-ietf-mmusic-ice-19 (work in progress), October 2007. | draft-ietf-mmusic-ice-19 (work in progress), October 2007. | |||
| [JINGLE] Ludwig, S., Beda, J., Saint-Andre, P., McQueen, R., Egan, | [JINGLE] Ludwig, S., Beda, J., Saint-Andre, P., McQueen, R., Egan, | |||
| S., and J. Hildebrand, "Jingle", XSF XEP 0166, June 2007. | S., and J. Hildebrand, "Jingle", XSF XEP 0166, June 2007. | |||
| [JINGLE-AUDIO] | [JINGLE-RTP] | |||
| Ludwig, S., Saint-Andre, P., Egan, S., and R. McQueen, | Ludwig, S., Saint-Andre, P., Egan, S., and R. McQueen, | |||
| "Jingle Audio via RTP", XSF XEP 0167, November 2007. | "Jingle RTP Sessions", XSF XEP 0167, February 2009. | |||
| [JINGLE-ICE] | [JINGLE-ICE] | |||
| Beda, J., Ludwig, S., Saint-Andre, P., Hildebrand, J., and | Beda, J., Ludwig, S., Saint-Andre, P., Hildebrand, J., and | |||
| S. Egan, "Jingle ICE-UDP Transport Method", XSF XEP 0176, | S. Egan, "Jingle ICE-UDP Transport Method", XSF XEP 0176, | |||
| November 2007. | February 2009. | |||
| [JINGLE-UDP] | [JINGLE-UDP] | |||
| Beda, J., Saint-Andre, P., Ludwig, S., Hildebrand, J., and | Beda, J., Saint-Andre, P., Ludwig, S., Hildebrand, J., and | |||
| S. Egan, "Jingle Raw UDP Transport", XSF XEP 0177, | S. Egan, "Jingle Raw UDP Transport", XSF XEP 0177, | |||
| November 2007. | February 2009. | |||
| [JINGLE-VIDEO] | ||||
| Saint-Andre, P. and M. Chen, "Jingle Video via RTP", XSF | ||||
| XEP 0180, November 2007. | ||||
| [RTP-AVP] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and | [RTP-AVP] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and | |||
| Video Conferences with Minimal Control", STD 65, RFC 3551, | Video Conferences with Minimal Control", STD 65, RFC 3551, | |||
| July 2003. | July 2003. | |||
| [SDP] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session | [SDP] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session | |||
| Description Protocol", RFC 4566, July 2006. | Description Protocol", RFC 4566, July 2006. | |||
| [SIP] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, | [SIP] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, | |||
| A., Peterson, J., Sparks, R., Handley, M., and E. | A., Peterson, J., Sparks, R., Handley, M., and E. | |||
| Schooler, "SIP: Session Initiation Protocol", RFC 3261, | Schooler, "SIP: Session Initiation Protocol", RFC 3261, | |||
| June 2002. | June 2002. | |||
| [SIP-XMPP] | [SIP-XMPP] | |||
| Saint-Andre, P., Houri, A., and J. Hildebrand, | Saint-Andre, P., Houri, A., and J. Hildebrand, | |||
| "Interworking between the Session Initiation Protocol | "Interworking between the Session Initiation Protocol | |||
| (SIP) and the Extensible Messaging and Presence Protocol | (SIP) and the Extensible Messaging and Presence Protocol | |||
| (XMPP): Core", draft-saintandre-sip-xmpp-core-00 (work in | (XMPP): Core", draft-saintandre-sip-xmpp-core-01 (work in | |||
| progress), January 2008. | progress), March 2009. | |||
| [TERMS] Bradner, S., "Key words for use in RFCs to Indicate | [TERMS] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [XMPP] Saint-Andre, P., "Extensible Messaging and Presence | [XMPP] Saint-Andre, P., "Extensible Messaging and Presence | |||
| Protocol (XMPP): Core", RFC 3920, October 2004. | Protocol (XMPP): Core", RFC 3920, October 2004. | |||
| 5.2. Informative References | 5.2. Informative References | |||
| [HTTP] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., | [HTTP] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., | |||
| skipping to change at page 16, line 28 ¶ | skipping to change at page 16, line 24 ¶ | |||
| [TCP] Postel, J., "Transmission Control Protocol", STD 7, | [TCP] Postel, J., "Transmission Control Protocol", STD 7, | |||
| RFC 793, September 1981. | RFC 793, September 1981. | |||
| [UDP] Postel, J., "User Datagram Protocol", STD 6, RFC 768, | [UDP] Postel, J., "User Datagram Protocol", STD 6, RFC 768, | |||
| August 1980. | August 1980. | |||
| Author's Address | Author's Address | |||
| Peter Saint-Andre | Peter Saint-Andre | |||
| XMPP Standards Foundation | Cisco | |||
| P.O. Box 1641 | ||||
| Denver, CO 80201 | ||||
| USA | ||||
| Email: stpeter@jabber.org | ||||
| URI: https://stpeter.im/ | ||||
| Full Copyright Statement | ||||
| Copyright (C) The IETF Trust (2008). | ||||
| This document is subject to the rights, licenses and restrictions | ||||
| contained in BCP 78, and except as set forth therein, the authors | ||||
| retain all their rights. | ||||
| This document and the information contained herein are provided on an | ||||
| "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | ||||
| OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND | ||||
| THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS | ||||
| OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF | ||||
| THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | ||||
| WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | ||||
| Intellectual Property | ||||
| The IETF takes no position regarding the validity or scope of any | ||||
| Intellectual Property Rights or other rights that might be claimed to | ||||
| pertain to the implementation or use of the technology described in | ||||
| this document or the extent to which any license under such rights | ||||
| might or might not be available; nor does it represent that it has | ||||
| made any independent effort to identify any such rights. Information | ||||
| on the procedures with respect to rights in RFC documents can be | ||||
| found in BCP 78 and BCP 79. | ||||
| Copies of IPR disclosures made to the IETF Secretariat and any | ||||
| assurances of licenses to be made available, or the result of an | ||||
| attempt made to obtain a general license or permission for the use of | ||||
| such proprietary rights by implementers or users of this | ||||
| specification can be obtained from the IETF on-line IPR repository at | ||||
| http://www.ietf.org/ipr. | ||||
| The IETF invites any interested party to bring to its attention any | ||||
| copyrights, patents or patent applications, or other proprietary | ||||
| rights that may cover technology that may be required to implement | ||||
| this standard. Please address the information to the IETF at | ||||
| ietf-ipr@ietf.org. | ||||
| Acknowledgment | ||||
| Funding for the RFC Editor function is provided by the IETF | Email: psaintan@cisco.com | |||
| Administrative Support Activity (IASA). | ||||
| End of changes. 39 change blocks. | ||||
| 105 lines changed or deleted | 56 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||