Skip to content

Instantly share code, notes, and snippets.

@itsazzad
Created July 16, 2017 12:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save itsazzad/38a1c7c664bf1843448124ae29906ca9 to your computer and use it in GitHub Desktop.
Save itsazzad/38a1c7c664bf1843448124ae29906ca9 to your computer and use it in GitHub Desktop.
XEP-0167: Jingle RTP Sessions
5. Negotiating a Jingle RTP Session 11.1 Responder is Busy 11.2 Jingle Audio via RTP, Negotiated with ICE-UDP 11.3 Jingle Audio via SRTP, Negotiated with ICE-UDP 11.4 Jingle Audio and Video via RTP, Negotiated with ICE-UDP
Initiator                    Responder
  |                             |
  |   session-initiate          |
  |---------------------------->|
  |   ack                       |
  |<----------------------------|
  |   session-accept            |
  |<----------------------------|
  |   ack                       |
  |---------------------------->|
  |   [optional further         |
  |    negotiation]             |
  |<--------------------------->|
  |   AUDIO (RTP)               |
  |<===========================>|
  |                             |
            
Romeo                         Juliet
  |                             |
  |  session-initiate           |
  |---------------------------->|
  |  ack                        |
  |<----------------------------|
  |  terminate                  |
  |  (reason = busy)            |
  |<----------------------------|
  |  ack                        |
  |---------------------------->|
  |                             |
            
Romeo                         Juliet
  |                             |
  |  session-initiate           |
  |---------------------------->|
  |  ack                        |
  |<----------------------------|
  |  session-info (ringing)     |
  |<----------------------------|
  |  ack                        |
  |---------------------------->|
  |  session-accept             |
  |<----------------------------|
  |  ack                        |
  |---------------------------->|
  |  [optional transport and    |
  |   application negotiation]  |
  |<--------------------------->|
  |  STUN connectivity checks   |
  |<===========================>|
  |  AUDIO (RTP)                |
  |<===========================>|
  |  session-terminate          |
  |<----------------------------|
  |  ack                        |
  |---------------------------->|
  |                             |
            
Romeo                         Juliet
  |                             |
  |  session-initiate           |
  |  (with keying material)     |
  |---------------------------->|
  |  ack                        |
  |<----------------------------|
  |  session-info (ringing)     |
  |<----------------------------|
  |  ack                        |
  |---------------------------->|
  |  session-accept             |
  |<----------------------------|
  |  ack                        |
  |---------------------------->|
  |  [optional transport and    |
  |   application negotiation]  |
  |<--------------------------->|
  |  STUN connectivity checks   |
  |<===========================>|
  |  AUDIO (RTP)                |
  |<===========================>|
  |  session-terminate          |
  |<----------------------------|
  |  ack                        |
  |---------------------------->|
  |                             |
            
Romeo                         Juliet
  |                             |
  |  session-initiate           |
  |---------------------------->|
  |  ack                        |
  |<----------------------------|
  |  session-info (ringing)     |
  |<----------------------------|
  |  ack                        |
  |---------------------------->|
  |  session-accept             |
  |<----------------------------|
  |  ack                        |
  |---------------------------->|
  |  [optional transport and    |
  |   application negotiation]  |
  |<--------------------------->|
  |  STUN connectivity checks   |
  |<===========================>|
  |  AUDIO (RTP)                |
  |<===========================>|
  |  content-add for video      |
  |---------------------------->|
  |  ack                        |
  |<----------------------------|
  |  content-modify for video   |
  |<----------------------------|
  |  ack                        |
  |---------------------------->|
  |  content-accept for video   |
  |<----------------------------|
  |  ack                        |
  |---------------------------->|
  |  [optional transport and    |
  |   application negotiation]  |
  |<--------------------------->|
  |  STUN connectivity checks   |
  |<===========================>|
  |  AUDIO + VIDEO (RTP)        |
  |<===========================>|
  |  content-modify for video   |
  |<----------------------------|
  |  ack                        |
  |---------------------------->|
  |  session-terminate          |
  |<----------------------------|
  |  ack                        |
  |---------------------------->|
  |                             |
            
5. Negotiating a Jingle RTP Session 11.1 Responder is Busy 11.2 Jingle Audio via RTP, Negotiated with ICE-UDP 11.3 Jingle Audio via SRTP, Negotiated with ICE-UDP 11.4 Jingle Audio and Video via RTP, Negotiated with ICE-UDP
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment