IMS  

 

 

 

Codec Selection/Change during Call  

Codec selection/configuration for VoLTE / Video Call is performed by SDP (SDP Offer/Answer) during the call setup or during the call. Initial codec selection is done during Call setup process and Codec change can be done during the call. In the following sequence as an example, SDP procedure at step 1,3 is for initial codec selection. SDP procedure at step 13, 14 is for changing codec. SDP procedure 3,5,6,7 is to establish QoS for Precondition. For the detailed interpretation of Codec Related parameters, refer to SDP page. For QoS related parameters, refer to Precondition page.

No

Direction

Message

Comments

1

UA1 --> Proxy/UA2

INVITE/SDP1

SDP : Codec

2

UA1 <-- Proxy/UA2

100 Trying

  

3

UA1 <-- Proxy/UA2

183 Session Progress/SDP2

SDP : Codec, QoS

4

UA1 --> Proxy/UA2

PRACK

 

5

UA1 <-- Proxy/UA2

200 OK/SDP3 (for PRACK)

SDP : Codec, QoS

6

UA1 --> Proxy/UA2

UPDATE/SDP4

SDP : Codec, QoS

7

UA1 <-- Proxy/UA2

200 OK/SDP5 (for UPDATE)

SDP : Codec, QoS

8

UA1 <-- Proxy/UA2

180 Ringing

 

9

UA1 <-- Proxy/UA2

PRACK

 

10

UA1 --> Proxy/UA2

200 OK(for PRACK)

 

11

UA1 <-- Proxy/UA2

200 OK(for INVITE)

 

12

UA1 --> Proxy/UA2

ACK

 

13

UA1 <-- Proxy/UA2

INVITE/SDP

SDP : Codec

14

UA1 --> Proxy/UA2

200 OK/SDP

SDP : Codec, QoS

Some highlights of the sample procedure shown above with focus on Codec Selection/Changes are as follows :

  • Initial Codec Selection (INVITE/SDP1): The call is initiated by User Agent 1 (UA1) sending an INVITE request to a proxy or User Agent 2 (UA2) with a session description protocol (SDP) offer (SDP1). This SDP contains a list of supported codecs from which the receiving party can choose.
  • Trying (100 Trying): The proxy or UA2 sends a provisional response (100 Trying) to UA1, indicating that the INVITE has been received and that it is attempting to process it.
  • Session Progress (183 Session Progress/SDP2): UA2 responds with another provisional response (183 Session Progress) that includes an SDP answer (SDP2). This SDP answer includes the selected codec that UA2 agrees to use, based on its capabilities and preferences.
  • PRACK (PRACK/SDP3): UA1 acknowledges the session progress by sending a PRACK request with another SDP (SDP3), which is typically used for reliable provisional acknowledgment in SIP. This might contain further negotiation or confirmation of the codec selection.
  • OK for PRACK (200 OK/SDP4): UA2 sends a 200 OK response to the PRACK, which includes an SDP (SDP4). This SDP confirms the codec selection or might be used for further negotiations if needed.
  • UPDATE (UPDATE/SDP5): At some point during the call, UA1 decides to update the session, possibly to change the codec. It sends an UPDATE request with an SDP (SDP5) that includes the new codec choices.
  • Ringing (180 Ringing): While the call setup is ongoing, UA2 sends a 180 Ringing response to indicate that the call is being alerted at the recipient's end.
  • OK for UPDATE (200 OK/SDP6): UA2 sends a 200 OK response to the UPDATE request, which includes an SDP (SDP6) to confirm the codec change.
  • Finalization of the Call Setup:
    • UA2 sends a 200 OK response to the original INVITE, including an SDP that finalizes the codec selection for the call setup.
    • UA1 acknowledges the final codec selection with an ACK message.
    • UA2 confirms with a 200 OK response.
  • Codec Change during Call (INVITE/SDP): During the call, if there is a need to change the codec again (due to network conditions, user request, etc.), UA1 can send another INVITE with a new SDP that proposes the change.
  • Confirmation of Codec Change:
    • UA2 sends a 200 OK response with an SDP that confirms the new codec selection.
    • UA1 acknowledges this selection with an ACK message.

(1) INVITE

INVITE sip:0123456789;phone-context=test.net@test.net;user=phone SIP/2.0

    Allow: INVITE,ACK,OPTIONS,CANCEL,BYE,UPDATE,INFO,REFER,NOTIFY,MESSAGE,PRACK

    P-Preferred-Identity: <sip:310410123456789@test.net>

    User-Agent: TEST IMS CLIENT 4.0

    P-Preferred-Service: urn:urn-7:3gpp-service.ims.icsi.mmtel

    CSeq: 1 INVITE

    Max-Forwards: 70

    P-Access-Network-Info: 3GPP-E-UTRAN-FDD;utran-cell-id-3gpp=31041000010000000

    Route: <sip:[2001:0:0:2::2]:5060;lr>

    a: *;+g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel"

    c: application/sdp

    f: <sip:310410123456789@test.net>;tag=2763466811

    i: 2270680280

    k: 100rel,timer,precondition

    l: 733

    m: <sip:310410123456789@[2001:0:0:2::1]:5060;transport=UDP>;+g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel"

    t: <sip:0123456789;phone-context=test.net@test.net;user=phone>

    v: SIP/2.0/TCP [2001:0:0:2::1]:5060;branch=z9hG4bK932432170smg;transport=TCP

     

    v=0

    o=TEST-IMS-UE 1234562 0 IN IP6 2001:0:0:2::1

    s=SS VOIP

    c=IN IP6 2001:0:0:2::1

    t=0 0

    m=audio 50000 RTP/AVP 116 107 97 115 111 110

    b=AS:49

    a=rtpmap:116 AMR-WB/16000

    a=fmtp:116 mode-change-capability=2; max-red=0

    a=rtpmap:107 AMR-WB/16000

    a=fmtp:107 octet-align=1;mode-change-capability=2; max-red=0

    a=rtpmap:97 AMR/8000

    a=fmtp:97 mode-change-capability=2; max-red=0

    a=rtpmap:115 AMR/8000

    a=fmtp

The a=rtpmap and a=fmtp lines describe the specific audio codecs and their parameters that are being offered for the call, including their payload type identifiers, codec names, clock rates, and any additional codec-specific parameters. These details are crucial for the receiving party to understand what codecs and capabilities the sender supports, enabling them to choose a compatible codec for the session.

Followings are the comments for each lines

  • v=0: This indicates the version of the SDP in use, which is 0 (the only version currently defined).
  • o=-: The origin ("o=") line contains a username, session ID, session version, network type, address type, and unicast address of the session originator. Here, the username is represented by a hyphen, indicating that it's not specified, and the rest of the line includes numerical identifiers and the network address.
  • s=SS VOIP: The session name ("s=") field. It's set to "SS VOIP," which could be an arbitrary name for the session.
  • c=IN IP6 2001:0:0:2::1: The connection information ("c=") line, indicating the type of network ("IN" for the internet), address type (IP6 for IPv6), and the IP address of the machine where the media should be sent.
  • t=0 0: The time ("t=") line indicates the session is active at all times (the zeros represent "not specified" or "always on").
  • m=audio 50000 RTP/AVP 116 107 97 115 111 110: This line describes the media type ("m="), which is audio, the port number (50000), the transport protocol (RTP/AVP), and the list of codec identifiers in order of preference.
  • b=AS:49: The bandwidth ("b=") line specifies the bandwidth to be used by the media in kilobits per second; here, it's set to 49 kbps.
  • a=rtpmap: The attribute ("a=") lines describe the Real-time Transport Protocol (RTP) payload types for the codecs. Each codec is mapped to a payload type number, which is then used in the RTP packets to identify the codec being used.
  • a=fmtp: These lines provide format-specific parameters for the codecs listed in the rtpmap lines.
  • a=fmtp:116 mode-change-capability=2; max-red=0: Specifies parameters for payload type 116, which may relate to mode change capabilities and redundancy.
  • a=fmtp:107 octet-align=1; mode-change-capability=2; max-red=0: Specifies the alignment and mode change capability for payload type 107.
  • a=fmtp:97 mode-change-capability=2; max-red=0: Specifies mode change capability for payload type 97.
  • a=fmtp:115 AMR/8000: Specifies parameters for payload type 115, which seems to be using Adaptive Multi-Rate (AMR) codec at a sampling rate of 8000 Hz.
  • NOTE : Refer to this note for the details of mode-change-capability

(2) 100 Trying

SIP/2.0 100 Trying

    Via: SIP/2.0/TCP [2001:0:0:2::1]:5060;branch=z9hG4bK932432170smg;transport=TCP

    Max-Forwards: 70

    From: <sip:310410123456789@test.net>;tag=2763466811

    To: <sip:0123456789;phone-context=test.net@test.net;user=phone>

    Call-ID: 2270680280

    CSeq: 1 INVITE

    Content-Length: 0

(3) 183 Session Progress

SIP/2.0 183 Session Progress

    Max-Forwards: 70

    Via: SIP/2.0/TCP [2001:0:0:2::1]:5060;branch=z9hG4bK932432170smg;transport=TCP

    From: <sip:310410123456789@test.net>;tag=2763466811

    To: <sip:0123456789;phone-context=test.net@test.net;user=phone>;tag=1111111111

    Call-ID: 2270680280

    CSeq: 1 INVITE

    Contact: <sip:0123456789@[2001:0:0:2::2]:65094;transport=tcp>

    Record-Route: <sip:[2001:0:0:2::2];lr>

    Content-Type: application/sdp

    Require: precondition

    Require: 100rel

    RSeq: 1

    Content-Length: 763

    Privacy: none

    P-Asserted-Identity: <sip:0123456789>;phone-context=test.net@test.net;user=phone

     

    v=0

    o=anritsu 1 1 IN IP6 2001:0:0:2::2

    s=SS VOIP

    c=IN IP6 2001:0:0:2::2

    t=0 0

    m=audio 60000 RTP/AVP 116 107 97 115 111 110

    b=AS:49

    a=rtpmap:116 AMR-WB/16000

    a=fmtp:116 mode-change-capability=2; max-red=0

    a=rtpmap:107 AMR-WB/16000

    a=fmtp:107 octet-align=1;mode-change-capability=2; max-red=0

    a=rtpmap:97 AMR/8000

    a=fmtp:97 mode-change-capability=2; max-red=0

    a=rtpmap:115 AMR/8000

    a=fmtp:115 octet-align=1;mode-change-capability=2; max-red=0

    a=rtpmap:111 telephone-event/16000

    a=fmtp:111 0-15

    a=rtpmap:110 telephone-event/8000

    a=fmtp:110 0-15

    a=curr:qos local none     

    a=curr:qos remote none

    a=des:qos mandatory local sendrecv

    a=des:qos mandatory remote sendrecv

    a=sendrecv

    a=ptime:20

    a=maxptime:240

    a=conf:qos remote sendrecv

    a=rtcp:60001

The SDP part of the 183 Session Progress message outlines the proposed media session details from the answering party, which include the codecs being considered, the media type, and other session parameters. This is not the final acceptance of the session parameters but an indication of what the answering party can support.

This SDP information is used by the parties to negotiate the audio settings for the call. The 183 message, in particular, does not establish the call but indicates progress toward call establishment and can be used to trigger early media like ringback tones.

  • v=0: Version of the SDP, which is 0.
  • o=anritsu 1 1 IN IP6 2001:0:0:2::2: The session originator and identifier line, specifying the username, session id, version, network type, address type, and address.
  • s=SS VOIP: The session name for this communication, arbitrarily named "SS VOIP."
  • c=IN IP6 2001:0:0:2::2: Connection information, detailing the network and address type (IPv6), as well as the address itself.
  • t=0 0: Timing for the session, with both values as 0 indicating the session is active immediately and indefinitely.
  • m=audio 60000 RTP/AVP 116 107 97 115 111 110: Media description for an audio stream, specifying the media type (audio), port number (60000), transport protocol (RTP/AVP), and a list of supported codec payload types.
  • b=AS:49: The suggested bandwidth for the application-specific (AS) media stream in kilobits per second (49 kbps).
  • a=rtpmap: Attributes mapping RTP payload types to their corresponding codecs.
  • a=fmtp: Format parameters for the codecs:
    • a=fmtp:116 mode-change-capability=2; max-red=0: Parameters for codec with payload type 116, specifying its mode change capabilities and redundancy settings.
    • a=fmtp:107 mode-change-capability=2; max-red=0: Similar parameters for payload type 107.
    • a=fmtp:97 mode-change-capability=2; max-red=0: Similar parameters for payload type 97.
    • a=fmtp:115 AMR/8000: Parameters for the AMR codec at 8000 Hz for payload type 115.
  • a=fmtp:115 octet-align=1; mode-change-capability=2; max-red=0: Additional parameters for payload type 115, including octet alignment and mode change capability.
  • a=fmtp:11 telephone-event/16000: Parameters for payload type 11, which is used for DTMF tones (telephone-event) at a frequency of 16000 Hz.
  • a=curr:qos local none: Current QoS setting for the local end is unspecified (none).
  • a=des:qos mandatory local sendrecv: Desired QoS is set to mandatory for sending and receiving at the local end.
  • a=conf:qos mandatory remote sendrecv: Configured QoS is mandatory for the remote end to send and receive.
  • a=ptime:20: Preferred packetization time is 20 milliseconds.
  • a=maxptime:240: Maximum packetization time is set to 240 milliseconds

(4) PRACK

PRACK sip:0123456789@[2001:0:0:2::2]:65094;transport=UDP SIP/2.0

    RAck: 1 1 INVITE

    CSeq: 2 PRACK

    Max-Forwards: 70

    P-Access-Network-Info: 3GPP-E-UTRAN-FDD;utran-cell-id-3gpp=31041000010000000

    Route: <sip:[2001:0:0:2::2];lr>

    f: <sip:310410123456789@test.net>;tag=2763466811

    i: 2270680280

    k: precondition

    l: 0

    t: <sip:0123456789;phone-context=test.net@test.net;user=phone>;tag=1111111111

    v: SIP/2.0/UDP [2001:0:0:2::1]:5060;branch=z9hG4bK367193557smg;transport=UDP

(5) 200 OK

SIP/2.0 200 OK

    Max-Forwards: 70

    Via: SIP/2.0/TCP [2001:0:0:2::1]:5060;branch=z9hG4bK1835967788smg;transport=TCP

    From: <sip:310410123456789@test.net>;tag=2763466811

    To: <sip:0123456789;phone-context=test.net@test.net;user=phone>;tag=1111111111

    Call-ID: 2270680280

    CSeq: 3 UPDATE

    Allow: INVITE, ACK, CANCEL, BYE, PRACK, MESSAGE

    Contact: <sip:0123456789@[2001:0:0:2::2]:65094;transport=tcp>

    Record-Route: <sip:[2001:0:0:2::2];lr>

    Content-Type: application/sdp

    Content-Length: 743

    Privacy: none

     

    v=0

    o=anritsu 1 2 IN IP6 2001:0:0:2::2

    s=SS VOIP

    c=IN IP6 2001:0:0:2::2

    t=0 0

    m=audio 60000 RTP/AVP 116 107 97 115 111 110

    b=AS:49

    a=rtpmap:116 AMR-WB/16000

    a=fmtp:116 mode-change-capability=2; max-red=0

    a=rtpmap:107 AMR-WB/16000

    a=fmtp:107 octet-align=1;mode-change-capability=2; max-red=0

    a=rtpmap:97 AMR/8000

    a=fmtp:97 mode-change-capability=2; max-red=0

    a=rtpmap:115 AMR/8000

    a=fmtp:115 octet-align=1;mode-change-capability=2; max-red=0

    a=rtpmap:111 telephone-event/16000

    a=fmtp:111 0-15

    a=rtpmap:110 telephone-event/8000

    a=fmtp:110 0-15

    a=curr:qos local sendrecv   

    a=curr:qos remote sendrecv  

    a=des:qos mandatory local sendrecv

    a=des:qos mandatory remote sendrecv

    a=sendrecv

    a=ptime:20

    a=maxptime:240

    a=rtcp:60001

The SDP part of the 200 OK response message contains the session description, which confirms the media and codec configurations that the answering party is willing to use for the call. It includes information about the supported codecs, their settings, and network details.

This SDP data reflects the answering party's agreement to the codec selection, including codec types, network parameters, and quality of service settings. The mode-change-capability parameter, as explained earlier, signifies the ability of certain codecs to change modes during the call, such as switching between different bitrates or quality levels.

  • v=0: Version of the SDP, which is 0.
  • o=anritsu 1 2 IN IP6 2001:0:0:2::2: The originator of the session, a username "anritsu", session ID "1", session version "2", network type "IN" (Internet), address type "IP6" (IPv6), and the IP address "2001:0:0:2::2".
  • s=SS VOIP: Session name, here labeled as "SS VOIP".
  • c=IN IP6 2001:0:0:2::2: Connection information indicating the network type, address type, and IP address for the media stream.
  • t=0 0: Timing of the session, indicating it is always active.
  • m=audio 60000 RTP/AVP 116 107 97 115 111 110: Media description for an audio stream, indicating the media type, port number, transport protocol, and the list of supported codecs by their RTP payload type numbers.
  • b=AS:49: Bandwidth information, suggesting a maximum of 49 kbps is available for the audio stream.
  • a=rtpmap: Attributes that map RTP payload types to specific codecs and their properties.
  • a=fmtp: Attributes that specify format parameters for the given RTP payload types:
    • a=fmtp:116 mode-change-capability=2; max-red=0: For payload type 116, mode change capability is enabled, and maximum redundancy is 0.
    • a=fmtp:107 mode-change-capability=2; max-red=0: For payload type 107, mode change capability is enabled, and maximum redundancy is 0.
    • a=fmtp:97 mode-change-capability=2; max-red=0: For payload type 97, mode change capability is enabled, and maximum redundancy is 0.
    • a=fmtp:115 AMR/8000: For payload type 115, Adaptive Multi-Rate codec with 8000 Hz rate.
  • a=fmtp:115 octet-align=1; mode-change-capability=2; max-red=0: For payload type 115, octet alignment is enabled, mode change capability is enabled, and maximum redundancy is 0.
  • a=fmtp:111 telephone-event/16000: For payload type 11, DTMF tones are supported at 16000 Hz.
  • a=curr:qos local sendrecv: Current QoS parameters for local sending and receiving.
  • a=des:qos mandatory remote sendrecv: Desired QoS parameters, mandatorily requiring remote sending and receiving capabilities.
  • a=conf:qos mandatory local sendrecv: Configured QoS parameters, mandatorily required for local sending and receiving.
  • a=ptime:20: Packetization time is 20 milliseconds.
  • a=maxptime:240: Maximum packetization time is 240 milliseconds.

(6) UPDATE

SIUPDATE sip:0123456789@[2001:0:0:2::2]:65094;transport=TCP SIP/2.0

    Proxy-Require: sec-agree

    Security-Verify:

    CSeq: 3 UPDATE

    Max-Forwards: 70

    P-Access-Network-Info: 3GPP-E-UTRAN-FDD;utran-cell-id-3gpp=31041000010000000

    Route: <sip:[2001:0:0:2::2];lr>

    c: application/sdp

    f: <sip:310410123456789@test.net>;tag=2763466811

    i: 2270680280

    l: 738

    m: <sip:310410123456789@[2001:0:0:2::1]:5060;transport=UDP>

    t: <sip:0123456789;phone-context=test.net@test.net;user=phone>;tag=1111111111

    v: SIP/2.0/TCP [2001:0:0:2::1]:5060;branch=z9hG4bK1835967788smg;transport=TCP

     

    v=0

    o=TEST-IMS-UE 1234562 1 IN IP6 2001:0:0:2::1

    s=SS VOIP

    c=IN IP6 2001:0:0:2::1

    t=0 0

    m=audio 50000 RTP/AVP 116 107 97 115 111 110

    b=AS:49

    a=rtpmap:116 AMR-WB/16000

    a=fmtp:116 mode-change-capability=2; max-red=0

    a=rtpmap:107 AMR-WB/16000

    a=fmtp:107 octet-align=1;mode-change-capability=2; max-red=0

    a=rtpmap:97 AMR/8000

    a=fmtp:97 mode-change-capability=2; max-red=0

    a=rtpmap:115 AMR/8000

    a=fmtp:115 octet-align=1;mode-change-capability=2; max-red=0

    a=rtpmap:111 telephone-event/16000

    a=fmtp:111 0-15

    a=rtpmap:110 telephone-event/8000

    a=fmtp:110 0-15

    a=curr:qos local sendrecv

    a=curr:qos remote none

    a=des:qos mandatory local sendrecv

    a=des:qos mandatory remote sendrecv

    a=sendrecv

    a=ptime:20

    a=maxptime:240

The SDP part of the UPDATE message contains a session description similar to that in an INVITE message, which proposes changes to the media session parameters. It lists the media type, the transport protocol, the formats available, and specific attributes for each format, including codec properties and Quality of Service (QoS) settings.

Each fmtp line corresponds to a particular codec and contains codec-specific parameters. The mode-change-capability parameter indicates whether the codec can change modes during the session, and max-red is likely related to the maximum amount of redundancy that can be used with the codec, which is typically a feature used for error resilience.

  • v=0: SDP version, which is always 0.
  • o=-: Session originator and session identifier line, typically includes a username, session ID, session version, network type, IP address type, and the actual IP address.
  • s=SS VOIP: The session name or title.
  • c=IN IP6: Connection information indicating the network type (Internet) and address type (IPv6).
  • t=0 0: Timing of the session, which is set to be always active.
  • m=audio 50000 RTP/AVP: Media description specifying the media type (audio), the port number (50000), and the transport protocol (RTP/AVP).
  • b=AS:49: Bandwidth information for the session, suggesting that the session has an application-specific maximum of 49 kbps.
  • a=rtpmap: Attributes mapping RTP payload types to their corresponding codec.
  • a=fmtp: Format parameters for each codec:
    • a=fmtp:116: Format-specific parameters for payload type 116.
    • a=fmtp:107: Format-specific parameters for payload type 107.
    • a=fmtp:97: Format-specific parameters for payload type 97.
    • a=fmtp:115: Format-specific parameters for payload type 115.
  • a=fmtp:110: Format-specific parameters for telephone events (DTMF tones) at 8000 Hz.
  • a=curr:qos local sendrecv: Current QoS settings for local sending and receiving.
  • a=des:qos mandatory local sendrecv: Desired QoS is mandatory for local sending and receiving.
  • a=conf:qos mandatory remote sendrecv: Configured QoS is mandatory for remote sending and receiving.
  • a=ptime:20: Packetization time, the duration of time (in milliseconds) represented by the media in a packet.
  • a=maxptime:240: Maximum allowable packetization time.

(7) 200 OK

SIP/2.0 200 OK

    Max-Forwards: 70

    Via: SIP/2.0/TCP [2001:0:0:2::1]:5060;branch=z9hG4bK1835967788smg;transport=TCP

    From: <sip:310410123456789@test.net>;tag=2763466811

    To: <sip:0123456789;phone-context=test.net@test.net;user=phone>;tag=1111111111

    Call-ID: 2270680280

    CSeq: 3 UPDATE

    Allow: INVITE, ACK, CANCEL, BYE, PRACK, MESSAGE

    Contact: <sip:0123456789@[2001:0:0:2::2]:65094;transport=tcp>

    Record-Route: <sip:[2001:0:0:2::2];lr>

    Content-Type: application/sdp

    Content-Length: 743

    Privacy: none

     

    v=0

    o=anritsu 1 2 IN IP6 2001:0:0:2::2

    s=SS VOIP

    c=IN IP6 2001:0:0:2::2

    t=0 0

    m=audio 60000 RTP/AVP 116 107 97 115 111 110

    b=AS:49

    a=rtpmap:116 AMR-WB/16000

    a=fmtp:116 mode-change-capability=2; max-red=0

    a=rtpmap:107 AMR-WB/16000

    a=fmtp:107 octet-align=1;mode-change-capability=2; max-red=0

    a=rtpmap:97 AMR/8000

    a=fmtp:97 mode-change-capability=2; max-red=0

    a=rtpmap:115 AMR/8000

    a=fmtp:115 octet-align=1;mode-change-capability=2; max-red=0

    a=rtpmap:111 telephone-event/16000

    a=fmtp:111 0-15

    a=rtpmap:110 telephone-event/8000

    a=fmtp:110 0-15

    a=curr:qos local sendrecv   

    a=curr:qos remote sendrecv

    a=des:qos mandatory local sendrecv

    a=des:qos mandatory remote sendrecv

    a=sendrecv

    a=ptime:20

    a=maxptime:240

    a=rtcp:60001

The SDP part of the 200 OK message confirms the media session details. This includes the chosen codecs, media type, network details, and other parameters necessary for establishing the media stream between the calling parties.

The presence of mode-change-capability=2 in the fmtp attributes suggests the codecs can change modes dynamically during the call. The max-red=0 attribute likely indicates that there's no redundancy in the packet stream (redundancy can be used for error correction). The curr, des, and conf attributes related to QoS suggest the level of service quality that is currently in place, desired, and configured for both local and remote ends.

  • v=0: SDP version, which is 0.
  • o=-: Originator of the session with a session identifier and version, followed by network and address type (IPv6 here), and the address.
  • s=SS VOIP: Session name, described here as "SS VOIP."
  • c=IN IP6: Connection information, specifying that the connection uses the Internet (IN) and IPv6 address type.
  • t=0 0: Timing for the session, indicating the session is active immediately and for an unspecified duration.
  • m=audio 60000 RTP/AVP: Media description line for audio, specifying the port number (60000) and transport protocol (RTP/AVP), followed by the list of supported codec payload types.
  • b=AS:49: Bandwidth information for the audio stream, suggesting an application-specific limit of 49 kbps.
  • a=rtpmap: This attribute maps RTP payload types to their corresponding audio codecs.
  • a=fmtp: Format parameters for each codec:
    • a=fmtp:116: Parameters for codec with payload type 116, including mode change capability.
    • a=fmtp:107: Parameters for codec with payload type 107.
    • a=fmtp:97: Parameters for codec with payload type 97.
    • a=fmtp:115: Parameters for codec with payload type 115.
  • a=fmtp:111: Parameters for telephone event payloads, specifying the use of 16000 Hz for payload type 11.
  • a=curr:qos local sendrecv: Current QoS settings for local sending and receiving.
  • a=des:qos mandatory local sendrecv: Desired QoS setting is mandatory for local send and receive operations.
  • a=conf:qos mandatory remote sendrecv: Configured QoS setting is mandatory for remote send and receive operations.
  • a=ptime:20: Preferred packetization time, which is 20 milliseconds.
  • a=maxptime:240: Maximum packetization time allowed, which is 240 milliseconds.

(8) 180 Ringing

SIP/2.0 180 Ringing

    Max-Forwards: 70

    Via: SIP/2.0/TCP [2001:0:0:2::1]:5060;branch=z9hG4bK932432170smg;transport=TCP

    From: <sip:310410123456789@test.net>;tag=2763466811

    To: <sip:0123456789;phone-context=test.net@test.net;user=phone>;tag=1111111111

    Call-ID: 2270680280

    CSeq: 1 INVITE

    Contact: <sip:0123456789@[2001:0:0:2::2]:65094;transport=tcp>

    Record-Route: <sip:[2001:0:0:2::2];lr>

    Require: 100rel

    RSeq: 2

    Content-Length: 0

    Privacy: none

    P-Asserted-Identity: <sip:0123456789>;phone-context=test.net@test.net;user=phone

(9) PRACK

PRACK sip:0123456789@[2001:0:0:2::2]:65094;transport=UDP SIP/2.0

    RAck: 2 1 INVITE

    CSeq: 4 PRACK

    Max-Forwards: 70

    P-Access-Network-Info: 3GPP-E-UTRAN-FDD;utran-cell-id-3gpp=31041000010000000

    Route: <sip:[2001:0:0:2::2];lr>

    f: <sip:310410123456789@test.net>;tag=2763466811

    i: 2270680280

    l: 0

    t: <sip:0123456789;phone-context=test.net@test.net;user=phone>;tag=1111111111

    v: SIP/2.0/UDP [2001:0:0:2::1]:5060;branch=z9hG4bK589904351smg;transport=UDP

(10) 200 OK

SIP/2.0 200 OK

    Max-Forwards: 70

    Via: SIP/2.0/UDP [2001:0:0:2::1]:5060;branch=z9hG4bK589904351smg;transport=UDP

    From: <sip:310410123456789@test.net>;tag=2763466811

    To: <sip:0123456789;phone-context=test.net@test.net;user=phone>;tag=1111111111

    Call-ID: 2270680280

    CSeq: 4 PRACK

    Allow: INVITE, ACK, CANCEL, BYE, PRACK, MESSAGE

    Contact: <sip:0123456789@[2001:0:0:2::2]:65487;transport=udp>

    Record-Route: <sip:[2001:0:0:2::2];lr>

    Supported: 100rel

    Content-Length: 0

    Privacy: none

(11) 200 OK

SIP/2.0 200 OK

    Max-Forwards: 70

    Via: SIP/2.0/TCP [2001:0:0:2::1]:5060;branch=z9hG4bK932432170smg;transport=TCP

    From: <sip:310410123456789@test.net>;tag=2763466811

    To: <sip:0123456789;phone-context=test.net@test.net;user=phone>;tag=1111111111

    Call-ID: 2270680280

    CSeq: 1 INVITE

    Allow: INVITE, ACK, CANCEL, BYE, PRACK, MESSAGE

    Contact: <sip:0123456789@[2001:0:0:2::2]:65487;transport=udp>

    Record-Route: <sip:[2001:0:0:2::2];lr>

    Content-Length: 0

    Privacy: none

    P-Asserted-Identity: <sip:0123456789>;phone-context=test.net@test.net;user=phone

(12) ACK

ACK sip:0123456789@[2001:0:0:2::2]:65487;transport=UDP SIP/2.0

    CSeq: 1 ACK

    Max-Forwards: 70

    Route: <sip:[2001:0:0:2::2];lr>

    f: <sip:310410123456789@test.net>;tag=2763466811

    i: 2270680280

    l: 0

    m: <sip:310410123456789@[2001:0:0:2::1]:5060;transport=UDP>;+g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel"

    t: <sip:0123456789;phone-context=test.net@test.net;user=phone>;tag=1111111111

    v: SIP/2.0/UDP [2001:0:0:2::1]:5060;branch=z9hG4bK2949521758smg;transport=UDP

(13) INVITE

INVITE sip:001010123456789@[2001::1:25d:73ef:d7ee:ad23]:39011 SIP/2.0

    Via: SIP/2.0/UDP [2001:0:0:1::2]:62462;branch=z9hG4bK5825015f2daa40b18bc8d008c64830b916;transport=udp

    Via: SIP/2.0/UDP [2001:0:0:1::2]:50463;branch=z9hG4bK043306db200a4a35af2ad3f9b2f1bf7254d664d3

    Max-Forwards: 69

    Call-ID: 18059017b-44ecee05@2001::1:25d:73ef:d7ee:ad23

    CSeq: 2 INVITE

    To: <sip:001010123456789@ims.mnc01.mcc001.3gppnetwork.org>;tag=544671805901a7-13d68399

    From: <sip:0123456789@msg.lab.t-mobile.com;user=phone>;tag=1111111111

    Allow: ACK, BYE, CANCEL, INVITE, PRACK, UPDATE

    Privacy: none

    User-Agent: Anritsu-VirtualUA/5fc2f47

    Content-Type: application/sdp

    Content-Length: 230

    Contact: <sip:0123456789@[2001:0:0:1::2]:50463;transport=udp>;+g.3gpp.icsi-ref="urn:urn-7:3gpp-service.ims.icsi.mmtel";video;+g.3gpp.srvcc-alerting

    P-Asserted-Identity: <sip:0123456789@msg.lab.t-mobile.com;user=phone>

    Record-Route: <sip:[2001:0:0:1::2]:62462;lr>

     

    v=0

    o=anritsu 754 350784 IN IP6 2001:0:0:1::2

    s=-

    i=A VOIP Session

    c=IN IP6 2001:0:0:1::2

    t=0 0

    m=audio 60000 RTP/AVP 97

    a=ptime:20

    a=maxptime:240

    a=rtcp:60001

    a=sendrecv

    a=rtpmap:97 AMR-WB/16000

    a=fmtp:97 mode-set=7

The SIP INVITE message is used to initiate a call or a session between two parties. It includes the request line, headers, and the Session Description Protocol (SDP) payload. The SDP part specifies the media capabilities, such as supported codecs and network information, that the initiator of the call is offering.

  • v=0: This denotes the version of the SDP, which is 0.
  • o=-: The session originator line includes a session ID and a version number, followed by network type, address type (IP6 for IPv6), and the IP address.
  • s=VoIP Session: This is the session name, which is labeled as "VoIP Session."
  • c=IN IP6: The connection information specifies that the session uses the Internet (IN) and IPv6.
  • t=0 0: The time the session is active, with both values as 0 indicating the session is active immediately and indefinitely.
  • m=audio 60001 RTP/AVP: The media description for an audio session, specifying the media type (audio), port number (60001), and transport protocol (RTP/AVP).
  • a=ptime:20: This specifies the packetization time as 20 milliseconds, which is the interval at which audio samples are captured and packaged into RTP packets.
  • a=maxptime:240: This specifies the maximum packetization time as 240 milliseconds, which is the maximum interval for audio capture for a single packet.
  • a=rtpmap:97 AMR-WB/16000: This line maps the RTP payload type 97 to the AMR-WB codec at a sampling rate of 16000 Hz.
  • a=fmtp:97 octet-align=1: This is a format parameter for the AMR-WB codec, indicating that the codec's data is octet-aligned.
  • a=sendrecv: This indicates that the session is capable of sending and receiving media.
  • a=rtcp:60001: This specifies the RTCP (Real-time Transport Control Protocol) port, which is the same as the RTP port, suggesting that RTCP packets are multiplexed over the same port as RTP packets.

(14) 200 OK

SIP/2.0 200 OK

    Via: SIP/2.0/UDP [2001:0:0:1::2]:62462;branch=z9hG4bK5825015f2daa40b18bc8d008c64830b916;transport=udp,SIP/2.0/UDP [2001:0:0:1::2]:50463;branch=z9hG4bK043306db200a4a35af2ad3f9b2f1bf7254d664d3

    Record-Route: <sip:[2001:0:0:1::2]:62462;lr>

    Call-ID: 18059017b-44ecee05@2001::1:25d:73ef:d7ee:ad23

    CSeq: 2 INVITE

    From: <sip:0123456789@msg.lab.t-mobile.com;user=phone>;tag=1111111111

    To: <sip:001010123456789@ims.mnc01.mcc001.3gppnetwork.org>;tag=544671805901a7-13d68399

    Contact: <sip:001010123456789@[2001::1:25d:73ef:d7ee:ad23]:39011;ob>;+g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel";video;+g.3gpp.srvcc-alerting;+sip.instance="<urn:gsma:imei:35910506-000422-0>"

    Allow: INVITE,BYE,CANCEL,ACK,PRACK,UPDATE,INFO,REFER,NOTIFY,MESSAGE

    P-Preferred-Identity: <sip:001010123456789@ims.mnc01.mcc001.3gppnetwork.org>

    P-Access-Network-Info: 3GPP-E-UTRAN-FDD;utran-cell-id-3gpp=0010100000000000

    Supported: timer

    Server: T-Mobile VoLTE-ePDG-RCS-IR94 LG-IMS-client/4.0.0 H81110t

    Content-Length: 439

    Content-Type: application/sdp

     

    v=0

    o=sip:001010123456789@ims.mnc01.mcc001.3gppnetwork.org 3671104685 3671104686 IN IP6 2001:0:0:1::11

    s=-

    c=IN IP6 2001:0:0:1::11

    t=0 0

    m=audio 50010 RTP/AVP 97

    b=AS:48

    b=RS:0

    b=RR:1200

    a=rtpmap:97 AMR-WB/16000

    a=fmtp:97 mode-set=7

    a=curr:qos local sendrecv

    a=curr:qos remote sendrecv

    a=des:qos optional local sendrecv

    a=des:qos mandatory remote sendrecv

    a=conf:qos remote sendrecv

    a=sendrecv

    a=ptime:20

    a=maxptime:240

The SIP INVITE message is used to initiate a call or a session between two parties. It includes the request line, headers, and the Session Description Protocol (SDP) payload. The SDP part specifies the media capabilities, such as supported codecs and network information, that the initiator of the call is offering.

  • v=0: This denotes the version of the SDP, which is 0.
  • o=-: The session originator line includes a session ID and a version number, followed by network type, address type (IP6 for IPv6), and the IP address.
  • s=VoIP Session: This is the session name, which is labeled as "VoIP Session."
  • c=IN IP6: The connection information specifies that the session uses the Internet (IN) and IPv6.
  • t=0 0: The time the session is active, with both values as 0 indicating the session is active immediately and indefinitely.
  • m=audio 60001 RTP/AVP: The media description for an audio session, specifying the media type (audio), port number (60001), and transport protocol (RTP/AVP).
  • a=ptime:20: This specifies the packetization time as 20 milliseconds, which is the interval at which audio samples are captured and packaged into RTP packets.
  • a=maxptime:240: This specifies the maximum packetization time as 240 milliseconds, which is the maximum interval for audio capture for a single packet.
  • a=rtpmap:97 AMR-WB/16000: This line maps the RTP payload type 97 to the AMR-WB codec at a sampling rate of 16000 Hz.
  • a=fmtp:97 octet-align=1: This is a format parameter for the AMR-WB codec, indicating that the codec's data is octet-aligned.
  • a=sendrecv: This indicates that the session is capable of sending and receiving media.
  • a=rtcp:60001: This specifies the RTCP (Real-time Transport Control Protocol) port, which is the same as the RTP port, suggesting that RTCP packets are multiplexed over the same port as RTP packets.