IMS  

 

 

 

UE Capability Information

In most of communication system, the parties participating in the communication exchange the information on what they are capable of. Sometimes they exchange these information as a mandatory part of initial setup and sometimes they provide these information in response to a special request from the other party.

If you are familiar with WCDMA or LTE, RRC Connection Setup Complete message (WCDMA) or UE Capability Information (LTE) are the special messages that carry those capability information.

We use similar mechanism in IMS and IMS based applications as well. In case of IMS/Application, there are several different mechanism (messages) in which a UE (UA) carry those capability information.

These information is very important for each parties in the communication to configure itself so that it can communicate with the other party. In addition, these information is very important if you are working on IMS testing as well because there are many cases where a test fails simply because the DUT does not support specific functions/features which is required for the test. For troubleshooting IMS testing, it is always good practice for you to check the details of UE capability before you start any deeper troubleshooting.

Followings are some of the messages (actually all the message that I know of) that may carry UE capability information.

Capability Information in REGISTER

In terms of capability related to mobile phone, you may figure it out indirectly from Contact header(e.g, sms over packet, volte,mms etc), but the capability of SIP functionality itself are spreaded across various headers.

REGISTER sip:test.3gpp.com SIP/2.0

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

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

    Expires: 600000

    Authorization: Digest username="001010123456789@test.3gpp.com",realm="TestIMS.com",

                        nonce="fn3iiH1LnWqCtFyPUD8qzYxfiiVavYAAmfcxByxmhBg=",algorithm=AKAv1-MD5,

                        uri="sip:test.3gpp.com",response="9f17517adee640b8895dda33b336f071",

                        qop=auth,nc=00000002,cnonce="dsf232sun2299674910xyx",

                        opaque="bbedd3dd5f884860b741b03d36b430ea"

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

    Contact: <sip:+11234567890@[2001:0:0:1::1]:5060>;

                 +g.3gpp.smsip;

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

                 +g.gsma.rcs.telephony="cs,volte";

                 +sip.instance="<urn:gsma:imei:99000493-686661-0>"

    From: <sip:+11234567890@test.3gpp.com>;tag=1334507655

    To: <sip:+11234567890@test.3gpp.com>

    Call-ID: 266901530@2001:0:0:1::1

    CSeq: 4 REGISTER

    Max-Forwards: 70

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

    Content-Length: 0

This is description of this message.

  • SIP Version and Request Type: REGISTER sip:test.3gpp.com SIP/2.0 indicates that the UA is using SIP (Session Initiation Protocol) version 2.0 for registering its contact information with a SIP server at test.3gpp.com.
  • Route Header: The Route header with sip:[2001:0:0:1::2]:5060;lr suggests that the UA is configured to use a specific route (an IPv6 address) to reach the SIP server, utilizing the SIP protocol over the default port 5060.
  • Allow Header: The Allow header lists the SIP methods that the UA supports: INVITE, ACK, OPTIONS, CANCEL, BYE, UPDATE, INFO, REFER, NOTIFY, MESSAGE, and PRACK. This indicates a wide range of capabilities for call setup, modification, and feature negotiation.
    • NOTE :  Refer to this tips for further details
  • Expires Header: Expires: 600000 tells us the registration is requested to be valid for 600,000 seconds, indicating the UA's preference for how long it should be considered registered before needing to re-register.
  • Authorization Header: This part includes credentials for authenticating with the SIP server, using the Digest authentication scheme with AKAv1-MD5 algorithm. It contains details like username, realm, nonce, URI, response, qop, nc, cnonce, and opaque, indicating a secure authentication process tailored for IMS (IP Multimedia Subsystem) environments.
  • P-Access-Network-Info Header: 3GPP-E-UTRAN-FDD;utran-cell-id-3gpp=0010100010000001 specifies the access network type and cell ID, indicating the UA is accessing the network via 3GPP E-UTRAN FDD (a 4G LTE network), which can be useful for services that adapt their behavior based on the access network.
  • Contact Header: This header includes the UA's SIP URI and additional parameters indicating support for 3GPP SMS over IP, MMTEL (Multimedia Telephony Service for IMS), and GSMA RCS (Rich Communication Services) features like telephony and VoLTE (Voice over LTE). The +sip.instance parameter with an urn:gsma:imei: value also suggests the device's IMEI is being used as a unique identifier, hinting at a mobile device.
  • From/To Headers: Both headers use the same SIP URI, indicating the UA is registering its own address. The tag parameter in the From header is used for dialog identification.
  • Call-ID, CSeq, Max-Forwards, and Via Headers: These provide call transaction identification, sequence numbering for request/response, maximum forwards to prevent looping, and the transport protocol and path used for the SIP message. The Via header specifically indicates the use of UDP as the transport protocol over IPv6.
  • Content-Length: Content-Length: 0 signifies that this REGISTER request carries no message body, which is typical for REGISTER requests that do not need to convey additional data beyond headers.

Capability Information in PUBLISH

This sample is a SIP (Session Initiation Protocol) PUBLISH request used for publishing the presence information of a user (in this case, sip:+339012341234@test-rcs.com) to a presence server. The presence information is used in many communication services, including Rich Communication Services (RCS), to let other users know the availability status and capabilities of this user.

This PUBLISH request is essentially informing the presence server of the user's available communication services, allowing other users or services to discover these capabilities and availability status in real-time.

The focus on this example is to show an example of presence related capability specified in xml format in the message body.

PUBLISH sip:+339012341234@test-rcs.com SIP/2.0

    Call-ID: xSh0yaUHAA@192.168.1.1

    CSeq: 1 PUBLISH

    From: <sip:+339012341234@test-rcs.com>;tag=xSh0yaUIAA

    To: <sip:+339012341234@test-rcs.com>

    Via: SIP/2.0/UDP 192.168.1.1:5060;branch=z9hG4bK84da5f074a2ba56ea1c0d63f7fa45a54383138;rport

    Max-Forwards: 70

    Route: <sip:192.168.1.2:5060;transport=udp;lr>

    Expires: 3600

    SIP-If-Match: ac63be7e9042439dad76da16904cf48d

    User-Agent: IM-client/OMA1.0 Test-RCS-client/2.5.13

    Event: presence

    Content-Type: application/pidf+xml

    Content-Length: 2122

     

    <presence

      xmlns="urn:ietf:params:xml:ns:pidf"

      xmlns:op="urn:oma:xml:prs:pidf:oma-pres"

      xmlns:opd="urn:oma:xml:pde:pidf:ext"

      xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model"

      xmlns:ci="urn:ietf:params:xml:ns:pidf:cipid"

      xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid"

      xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10"

      xmlns:gml="urn:opengis:specification:gml:schema-xsd:feature:v3.0"

      entity="sip:+339012341234@test-rcs.com">

      <tuple id="t1">

        <status><basic>open</basic></status>

        <op:service-description>

          <op:service-id>org.openmobilealliance:File-Transfer</op:service-id>

          <op:version>1.0</op:version>

        </op:service-description>

        <contact>sip:+339012341234@test-rcs.com</contact>

        <timestamp>2014-06-19T06:30:45.000Z</timestamp>

      </tuple>

      <tuple id="t2">

        <status><basic>open</basic></status>

        <op:service-description>

          <op:service-id>org.gsma.imageshare</op:service-id>

          <op:version>1.0</op:version>

        </op:service-description>

        <contact>sip:+339012341234@test-rcs.com</contact>

        <timestamp>2014-06-19T06:30:45.000Z</timestamp>

      </tuple>

      <tuple id="t3">

        <status><basic>open</basic></status>

        <op:service-description>

          <op:service-id>org.gsma.videoshare</op:service-id>

          <op:version>1.0</op:version>

        </op:service-description>

        <contact>sip:+339012341234@test-rcs.com</contact>

        <timestamp>2014-06-19T06:30:45.000Z</timestamp>

      </tuple>

      <tuple id="t4">

        <status><basic>open</basic></status>

        <op:service-description>

          <op:service-id>org.openmobilealliance:IM-session</op:service-id>

          <op:version>1.0</op:version>

        </op:service-description>

        <contact>sip:+339012341234@test-rcs.com</contact>

        <timestamp>2014-06-19T06:30:45.000Z</timestamp>

      </tuple>

      <tuple id="t5">

        <status><basic>open</basic></status>

        <op:service-description>

          <op:service-id>org.3gpp.cs-videotelephony</op:service-id>

          <op:version>1.0</op:version>

        </op:service-description>

        <contact>sip:+339012341234@test-rcs.com</contact>

        <timestamp>2014-06-19T06:30:45.000Z</timestamp>

      </tuple>

    </presence>

This is description of this message.

  • Request-Line: PUBLISH sip:+339012341234@test-rcs.com SIP/2.0 indicates that this is a PUBLISH method request, used to publish information to a SIP server. The request URI specifies the user's SIP URI.
  • Call-ID: A unique identifier for this SIP session, used to track and manage SIP messages within a dialog.
  • CSeq: The command sequence number (1 PUBLISH) indicates this is the first request in this SIP dialog, specifically a PUBLISH request.
    • NOTE :  Refer to this tips for further details
  • From and To Headers: Both headers contain the same SIP URI, indicating the publisher of the presence information.
  • Via Header: Specifies the transport protocol (UDP), the client's IP address and port, and a unique branch parameter used to identify the transaction.
  • Max-Forwards: Indicates the maximum number of SIP hops this request is allowed to make, helping to prevent looping.
  • Route Header: Specifies the next hop in the network that this request should be sent to, using the SIP URI of the next SIP entity.
  • Expires Header: The presence information is requested to be stored for 3600 seconds (1 hour) before it needs to be refreshed.
  • SIP-If-Match Header: This header might be used to update or modify existing published information, with ac63be7e9042439dad76da16904cf48d serving as an identifier for the previously published document to match against.
  • User-Agent: Identifies the client software making the request, in this case, an IM (Instant Messaging) client compliant with OMA (Open Mobile Alliance) standards, version 2.5.13.
  • Event Header: Specifies the type of event being published, which is presence in this case.
  • Content-Type: Indicates the MIME type of the message body, application/pidf+xml, which stands for Presence Information Data Format, a standard XML format for representing presence information.
  • Content-Length: Specifies the size of the message body in bytes (2122).
  • Message Body: Contains the presence information in PIDF (Presence Information Data Format) XML format. It defines multiple <tuple> elements, each representing a specific communication service (e.g., file transfer, image share, video share, IM session, and video telephony) that the user is available for. Each tuple includes a <status> element with a <basic> value of open, indicating availability, along with a <service-description> detailing the service ID and version. The interpretation of the first tuple is as follows.
    • The high level description of the first tuple is : this <tuple> element indicates that the user with the SIP URI sip:+339012341234@test-rcs.com is currently available (open) for file transfer services (org.openmobilealliance:File-Transfer) at version 1.0. The presence information was last updated on June 19, 2014, at 06:30:45 UTC. This structured format allows clients to discover and understand the user's available services and their current status in a standardized way, facilitating interoperable communication services.
    • <tuple id="t1">: This opening tag starts the definition of a tuple with an identifier id="t1". The id attribute is used to uniquely identify this tuple among others within the same presence document.
    • <status><basic>open</basic></status>: This part describes the user's availability status for the service defined in this tuple. The <basic> element with a value of open indicates that the user is available for communication regarding this specific service. In presence terminology, "open" typically means the user is available to communicate, whereas "closed" would indicate the opposite.
    • <op:service-description>: This element contains a detailed description of the service associated with this tuple. It is namespaced with op: to indicate that it uses extensions defined by the OMA (Open Mobile Alliance). Inside this element, you will find two important sub-elements:
    • <op:service-id>: Specifies the unique identifier of the service. In this case, org.openmobilealliance:File-Transfer indicates the service is file transfer, as defined by the Open Mobile Alliance standards.
    • <op:version>: Indicates the version of the service being used, which is 1.0 in this example. This can be important for compatibility and feature support considerations.
    • <contact>: Provides the contact URI (Uniform Resource Identifier) for this service, which is sip:+339012341234@test-rcs.com. This URI is how others can initiate communication with the user for this specific service (file transfer in this case).
    • <timestamp>: Marks the time when this presence information was last updated. The format is in ISO 8601 date and time format, 2014-06-19T06:30:45.000Z, indicating the year, month, day, hour, minute, second, and millisecond, with Z denoting Coordinated Universal Time (UTC). This timestamp is crucial for determining the freshness of the presence information.
    • </tuple>: The closing tag for this tuple element.

Capability Information in OPTION

The message  is a SIP (Session Initiation Protocol) OPTIONS request. SIP OPTIONS requests are used to query the capabilities of a server or another user agent (UA). This type of request can be sent to inquire about the methods, extensions, codecs, and other features supported by the recipient.

This OPTIONS request is a way for the sender to query the capabilities of the recipient at the specified address (sip:192.168.1.1:5060). It's a fundamental mechanism in SIP for feature discovery and understanding what types of communications are supported by another UA or server.

OPTIONS sip:192.168.1.1:5060;transport=udp SIP/2.0

    Via: SIP/2.0/UDP 192.168.1.2:51422;branch=z9hG4bKb7a8715cd9d04e019149483fac110beea0;rport;transport=udp

    Via: SIP/2.0/TCP 192.168.1.2:49755;branch=z9hG4bKec290e95eb714990adc88d84f09a6367;rport=49836

    Max-Forwards: 69

    From: <sip:+330123456789@sharetechnote-rcs.com>;tag=33ad62399bdc451d92591e2d9e29903a

    To: <sip:+339012341234@sharetechnote-rcs.com>

    Date: Thu, 19 Jun 2014 15:40:39 GMT

    Expires: 3600

    Contact: <sip:+330123456789@sharetechnote-rcs.com>;

    +g.3gpp.cs-voice;video;

    +g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-service.ims.icsi.oma.cpm.msg,

                            urn%3Aurn-7%3A3gpp-service.ims.icsi.oma.cpm.largemsg,

                            urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel";

    +g.3gpp.iari-ref="urn%3Aurn-7%3A3gpp-application.ims.iari.rcse.im,

                            urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.fullsfgroupchat,

                            urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.ftthumb,

                            urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.fthttp,

                            urn%3Aurn-7%3A3gpp-application.ims.iari.rcse.sp,

                            urn%3Aurn-7%3A3gpp-application.ims.iari.rcse.dp,

                            urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.geopull"

    CSeq: 1 OPTIONS

    Call-ID: 334cb0b603964d348a011fc8f87c82cd

    Content-Length: 0

    Record-Route: <sip:192.168.1.2;lr>

This is description of this message.

  • Request-Line: OPTIONS sip:192.168.1.1:5060;transport=udp SIP/2.0 specifies that this is an OPTIONS request sent to the SIP URI sip:192.168.1.1:5060 using UDP as the transport protocol. The SIP/2.0 denotes the version of the SIP protocol being used.
  • Via Headers: These headers provide information about the transport protocols and paths taken by the request. It includes:
    • The sender's transport protocol (UDP), IP address (192.168.1.2), and port number (51422), along with a unique branch parameter for transaction identification.
    • A second Via header indicates another path through TCP with a different port (49755), showcasing that the UA can support multiple transport protocols.
  • Max-Forwards: Max-Forwards: 69 indicates the maximum number of hops this request is allowed to make before reaching the destination. It helps prevent request loops in the network.
  • From and To Headers: The From header indicates the originator of the request, while the To header specifies the intended recipient. Both headers include SIP URIs and may include display names (not shown in this request).
  • Date: The Date header shows the time when the request was made, in this case, Thu, 19 Jun 2014 15:40:39 GMT.
  • Expires: Expires: 3600 suggests how long (in seconds) the recipient should consider the information in the OPTIONS request to be valid.
  • Contact Header: Provides the contact information of the sender, including their SIP URI and capabilities such as support for circuit-switched voice (+g.3gpp.cs-voice), video, and references to various IMS (IP Multimedia Subsystem) services and RCS (Rich Communication Services) features through icsi-ref and iari-ref URNs. These URNs indicate support for messaging, group chat, file transfer, social presence, and geolocation services.
  • CSeq: CSeq: 1 OPTIONS indicates this is the first request in a SIP transaction sequence and that the method used is OPTIONS.
    • NOTE :  Refer to this tips for further details
  • Call-ID: 334cb0b603964d348a011fc8f87c82cd serves as a unique identifier for this SIP session or dialog.
  • Content-Length: Content-Length: 0 signifies that there is no body in this SIP request, which is typical for OPTIONS requests as they generally do not require a body.
  • Record-Route: <sip:192.168.1.2;lr> indicates the route that subsequent requests should take when sent within the context of this transaction. The lr parameter specifies loose routing, which allows the SIP request to be forwarded through the listed servers without strictly adhering to the specified path.

Capability Information in NOTIFY

This message is a SIP (Session Initiation Protocol) SUBSCRIBE request, used for subscribing to an event notification service concerning the specified SIP URI. SIP SUBSCRIBE requests are part of the mechanism that allows a user agent (UA) to request notifications of changes in state (or events) from another UA or a server. These events could be related to presence information, call states, message summaries, etc. This SUBSCRIBE request, thus, is likely aimed at subscribing to presence information (or cancelling the subscription if the Expires header is considered) for the specified SIP URI. It includes detailed information about the subscriber's capabilities, preferred identity, and network information, as well as the desired privacy level for this operation.

SUBSCRIBE sip:+14448880000@one.sharetechnote.net SIP/2.0

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

    User-Agent: Samsung IMS 5.0

    Accept-Encoding: gzip

    Expires: 0

    Privacy: id

    Accept: application/pidf+xml,multipart/related,application/rlmi+xml

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

    CSeq: 1 SUBSCRIBE

    Max-Forwards: 70

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

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

    a: *;+g.oma.sip-im;explicit;require

    f: <sip:Anonymous@one.att.net>;tag=1750499527

    i: 1148937124@2001::1:4c16:9c0f:4986:9e6d

    l: 0

    m: <sip:310410123456789@[2001::1:4c16:9c0f:4986:9e6d]:5060>

    o: presence

    t: <sip:+14448880000@one.att.net>

    v: SIP/2.0/UDP [2001::1:4c16:9c0f:4986:9e6d]:5060;branch=z9hG4bK2869593858smg;transport=UDP

This is description of this message.

  • Request-Line: SUBSCRIBE sip:+14448880000@one.sharetechnote.net SIP/2.0 indicates that this is a SUBSCRIBE method aimed at the SIP URI sip:+14448880000@one.sharetechnote.net, using SIP version 2.0. This line specifies the intent to subscribe to events related to the specified SIP URI.
  • Allow Header: Lists the SIP methods supported by the user agent, indicating that it can handle a variety of SIP requests such as INVITE, ACK, OPTIONS, CANCEL, BYE, UPDATE, INFO, REFER, NOTIFY, MESSAGE, and PRACK.
  • User-Agent: Identifies the software making the request, in this case, "Samsung IMS 5.0", which is likely an IMS (IP Multimedia Subsystem) client on a Samsung device.
  • Accept-Encoding: Specifies the encoding mechanism (gzip) supported by the subscriber for the response.
  • Expires: An Expires: 0 header in a SUBSCRIBE request typically indicates a request to immediately terminate the subscription identified by the Call-ID.
  • Privacy: Privacy: id suggests that the request seeks to maintain the privacy of the identity of the subscriber.
  • Accept: Lists the content types that the subscriber is willing to accept in notifications, including application/pidf+xml for presence information, multipart/related for multipart message bodies, and application/rlmi+xml for resource list metadata.
  • P-Preferred-Identity: Indicates the preferred identity (<sip:310410123456789@one.att.net>) that the subscriber wishes to use for this request, which might differ from the 'From' identity.
  • CSeq: CSeq: 1 SUBSCRIBE shows this is the first request in a potential sequence of requests between this client and the server, using the SUBSCRIBE method.
    • NOTE :  Refer to this tips for further details
  • Max-Forwards: Max-Forwards: 70 is a limit on the number of hops a request can pass through before reaching its destination, used to avoid request loops.
  • P-Access-Network-Info: Provides details about the network the subscriber is using, indicating access via a 3GPP E-UTRAN FDD network with a specific cell ID.
  • Route: Specifies the route the request should take, here through an IPv6 address at port 5060, with loose routing (lr parameter).
  • a, f, i, l, m, o, t, v Headers: These headers are non-standard or abbreviated, and their interpretation depends on the context or specific implementation. Commonly,
    • f represents the 'From' header,
    • t the 'To' header,
    • i the 'Call-ID',
    • m the 'Contact',
    • l the 'Content-Length' (0 in this case, indicating no body),
    • v the 'Via' header (indicating transport details),
    • o could be a custom header or a shorthand for something like 'Event' indicating the type of subscription, which in this context is presence.

 

This is a SIP NOTIFY request. NOTIFY requests are used within the SIP event notification framework to inform subscribers about changes in the state of a resource to which they have previously subscribed. This specific NOTIFY message is being used to communicate presence information.

It is a way for the sender to inform the recipient about the current presence and capabilities of sip:+14448880000@one.sharetechnote.net, allowing for dynamic discovery of services and availability.

NOTIFY sip:310410123456789@[2001::1:4c16:9c0f:4986:9e6d]:5060;transport=udp SIP/2.0

    Max-Forwards: 69

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

    From: <tel:+14448880000>;tag=987654321

    To: <sip:310410123456789@[2001::1:4c16:9c0f:4986:9e6d]:5060>;tag=1750499527

    Event: presence

    Contact: <sip:[2001:0:0:1::2]:5060>

    Content-Type: application/pidf+xml

    Subscription-State: active;expires=3600

    CSeq: 1 NOTIFY

    Call-ID: 1148937124@2001::1:4c16:9c0f:4986:9e6d

    Content-Length: 2097

     

    <presence xmlns="urn:ietf:params:xml:ns:pidf"

                   xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid"

                   xmlns:op="urn:oma:xml:prs:pidf:oma-pres"

                   xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model"

                   xmlns:cipid="urn:ietf:params:xml:ns:pidf:cipid"

                   xmlns:caps="urn:ietf:params:xml:ns:pidf:caps"

                   entity="sip:+14448880000@one.sharetechnote.net">

    <tuple id="SessModeMessa">

      <status><basic>open</basic></status>

      <op:service-description>

        <op:service-id>org.openmobilealliance:ChatSession</op:service-id>

        <op:version>2.0</op:version>

        <op:description>Session Mode Messaging</op:description>

      </op:service-description>

      <contact>sip:+14448880000@one.sharetechnote.net</contact>

    </tuple>

    <tuple id="FileTransfer1">

      <status><basic>open</basic></status>

      <op:service-description>

      <op:service-id>org.openmobilealliance:File-Transfer</op:service-id>

        <op:version>1.0</op:version>

        <op:description>File Transfer</op:description>

      </op:service-description>

      <contact>sip:+14448880000@one.sharetechnote.net</contact>

    </tuple>

    <tuple id="DiscoveryPres">

      <status><basic>open</basic></status>

      <op:service-description>

        <op:service-id>org.3gpp.urn:urn-7:3gpp-application.ims.iari.rcse.dp</op:service-id>

        <op:version>1.0</op:version>

        <op:description>DiscoveryPresence</op:description>

      </op:service-description>

      <contact>sip:+14448880000@one.sharetechnote.net</contact>

    </tuple>

    <tuple id="StandaloneMsg">

      <status><basic>open</basic></status>

      <op:service-description>

        <op:service-id>org.openmobilealliance:StandaloneMsg</op:service-id>

        <op:version>2.0</op:version>

        <op:description>StandaloneMsg</op:description>

      </op:service-description>

      <contact>sip:+14448880000@one.sharetechnote.net</contact>

    </tuple>

    <tupleid="VOLTE15456546">

    <status><basic>open</basic></status>

    <caps:servcaps>

      <caps:audio>true</caps:audio>

      <caps:video>true</caps:video>

      <caps:duplex><caps:supported>

      <caps:full />

      </caps:supported>

      </caps:duplex>

    </caps:servcaps>

    <op:service-description>

      <op:service-id>org.3gpp.urn:urn-7:3gpp-service.ims.icsi.mmtel</op:service-id>

      <op:version>1.0</op:version>

      <op:description>IPVideoCall</op:description>

    </op:service-description>

    <contact>sip:+14448880000@one.sharetechnote.net</contact>

    </tuple>

    </presence>

This is description of this message.

  • Request-Line: NOTIFY sip:310410123456789@[2001::1:4c16:9c0f:4986:9e6d]:5060;transport=udp SIP/2.0 specifies that this is a NOTIFY method targeted at the SIP URI sip:310410123456789@[2001::1:4c16:9c0f:4986:9e6d]:5060 using UDP as the transport protocol, conforming to SIP version 2.0.
  • Max-Forwards: Max-Forwards: 69 limits the number of times the request can be forwarded by SIP proxies to prevent loops.
  • Via: This header shows the path the request has taken or should take through SIP proxies, including the protocol (UDP), the sender's IP address, port, and a unique branch parameter for transaction identification.
  • From and To Headers: Indicate the sender (From: <tel:+14448880000>) and recipient (To: <sip:310410123456789@[2001::1:4c16:9c0f:4986:9e6d]:5060>) of the NOTIFY request. The tag parameter in these headers helps in identifying the dialog.
  • Event: Specifies the type of event being notified about, which is presence in this case. This indicates that the notification contains presence information.
  • Contact: Provides the contact information of the sender, indicating where responses should be sent.
  • Content-Type: Content-Type: application/pidf+xml indicates the MIME type of the message body, which is PIDF (Presence Information Data Format) XML in this case, a standard format for representing presence information.
  • Subscription-State: active;expires=3600 indicates the current state of the subscription. Here, it's active, and the subscription is set to expire in 3600 seconds (1 hour).
  • CSeq: CSeq: 1 NOTIFY signifies this is the first NOTIFY request in this dialog.
    • NOTE :  Refer to this tips for further details
  • Call-ID: Provides a unique identifier for the call or dialog, helping in matching requests and responses.
  • Content-Length: Indicates the length of the message body, which contains the actual presence information.
  • Message Body: Contains presence information in PIDF XML format. It includes multiple <tuple> elements, each representing a specific service or capability associated with the entity (sip:+14448880000@one.sharetechnote.net). These tuples indicate that the entity is available (<status><basic>open</basic></status>) for various services like ChatSession, File-Transfer, DiscoveryPresence, StandaloneMsg, and IPVideoCall, along with specific service descriptions and versions.
    • Each <tuple> element contains a <status> element indicating the availability (open), a <service-description> with details about the service (including service ID, version, and description), and a <contact> element specifying the contact URI for the service. Additionally, the <caps:servcaps> element within the VOLTE15456546 tuple specifies capabilities like audio and video support, indicating that the entity supports audio and video in a full-duplex mode.
    • Following <tuple> is a segment of a PIDF (Presence Information Data Format) XML document, which is used to convey presence information in SIP (Session Initiation Protocol) environments. This particular <tuple> element describes the availability and service details for a specific communication capability of the entity identified by the contact URI sip:+14448880000@one.sharetechnote.net.

      This <tuple> element conveys that the entity with the SIP URI sip:+14448880000@one.sharetechnote.net is currently available for "Session Mode Messaging" as part of a chat session service (identified by "org.openmobilealliance:ChatSession") at version 2.0. This structured format allows clients and services within the SIP ecosystem to discover and understand the user's available communication services and their current availability status, facilitating interoperable and dynamic communication capabilities.

      • <tuple id="SessModeMessa">:This opening tag starts the definition of a tuple, which is a structured data element within the PIDF document. The id attribute, "SessModeMessa" in this case, serves as a unique identifier for this tuple within the document.
      • <status><basic>open</basic></status>:Inside the tuple, the <status> element specifies the current availability status for the service described by this tuple. The <basic> child element with the value "open" indicates that the service is currently available. In presence information, "open" typically means the user is willing and able to engage in communication, whereas "closed" would indicate they are not.
      • <op:service-description>:This element contains detailed information about the specific service being described in this tuple. It uses the namespace prefix op:, which is often associated with extensions defined by the Open Mobile Alliance (OMA) or other organizations for enriching the standard PIDF format with additional service-specific details.
      • <op:service-id>:Specifies the identifier of the service, in this case, "org.openmobilealliance:ChatSession". This identifier suggests that the service is related to chat sessions, conforming to standards or specifications set by the Open Mobile Alliance.
      • <op:version>:Indicates the version of the service, "2.0" here, which could be relevant for compatibility or feature support considerations.
      • <op:description>:Provides a human-readable description of the service, "Session Mode Messaging" in this instance, offering more context about what the service entails.
      • <contact>:Specifies the contact URI, sip:+14448880000@one.sharetechnote.net, which is the address through which the service described by this tuple can be accessed or initiated. This is the SIP URI of the entity whose presence information is being conveyed.
      • </tuple>:The closing tag for this tuple element.

Capability Information in INVITE

Theis message is a SIP INVITE request. INVITE requests are used in SIP to initiate a call or session between two parties. This particular INVITE request contains various headers that specify the details of the request and the session being initiated

This INVITE request is a complex SIP message that initiates a multimedia session, specifying the desired session parameters, supported features, and routing information, all of which are crucial for establishing and managing SIP-based communication sessions effectively.

INVITE sip:310410123456789@[2001::1:f8b5:503a:c5d0:2fea]:6000 SIP/2.0

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

    Via: SIP/2.0/UDP [2001:0:0:1::2]:62984;branch=z9hG4bK3a2fa06cd53440b7a93217d703d8792a963b2071

    Max-Forwards: 69

    Call-ID: bbae9438711d47d283895a10f920c2db

    CSeq: 11001 INVITE

    To: <sip:310410123456789@sharetechnote.net>

    From: <sip:0123456789@sharetechnote.net>;tag=1111111111

    Feature-Caps: +g.3gpp.srvcc-alerting

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

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

    User-Agent: Test-VirtualUA/95adfae

    Content-Type: application/sdp

    Content-Length: 456

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

    Privacy: none

    P-Asserted-Identity: <sip:0123456789@sharetechnote.net>

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

This is the description of this message :

  • Request-Line:INVITE sip:310410123456789@[2001::1:f8b5:503a:c5d0:2fea]:6000 SIP/2.0 initiates a session to the SIP URI sip:310410123456789@[2001::1:f8b5:503a:c5d0:2fea]:6000 using SIP version 2.0. The target is an IPv6 address at port 6000.
  • Via Headers: These headers provide information about the transport protocol and path the request has taken. The branch parameter contains a unique identifier for the transaction, ensuring that the request is properly routed and avoiding request loops.
  • Max-Forwards:Max-Forwards: 69 is used to limit the number of times the request can be forwarded by SIP proxies, helping to prevent infinite loops in request routing.
  • Call-ID:A globally unique identifier for this call or session, used to associate all requests and responses.
  • CSeq:CSeq: 11001 INVITE indicates the command sequence number of this INVITE request, showing it is part of a series of SIP messages within this call. The sequence number helps in ordering SIP messages within a dialog.
    • NOTE :  Refer to this tips for further details
  • To:The recipient of the call, identified by their SIP URI sip:310410123456789@sharetechnote.net.
  • From:The initiator of the call, identified by their SIP URI sip:0123456789@sharetechnote.net, with a tag parameter that uniquely identifies the leg of the call from the initiator's side.
  • Feature-Caps:Indicates support for specific features, in this case, +g.3gpp.srvcc-alerting, signaling capabilities related to Service Continuity (SRVCC) in a 3GPP environment.
  • Allow:Lists the SIP methods that the sender of the request supports, including ACK, BYE, CANCEL, INVITE, PRACK, and UPDATE.
    • NOTE :  Refer to this tips for further details
  • Accept-Contact:Specifies preferences for the call, indicating required support for the Multimedia Telephony service (mmtel) as defined by 3GPP IMS (IP Multimedia Subsystem) standards, and requiring explicit declaration.
  • User-Agent:Identifies the software used by the sender, Test-VirtualUA/95adfae in this case.
  • Content-Type:Indicates the type of the message body, application/sdp here, which means that the body of the request contains Session Description Protocol (SDP) information. SDP is used to describe multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation.
  • Content-Length:Specifies the length of the message body in bytes. The message body contains the SDP data describing the session to be initiated.
  • Contact:Provides a contact URI for the sender, including parameters indicating support for video and specific 3GPP IMS features.
  • Privacy:Indicates the privacy level of the call, none in this case, suggesting that no specific privacy mechanism is requested.
  • P-Asserted-Identity:Carries the identity of the user making the request, as asserted by the network. This header is often used in networks that support the IMS architecture to convey the user's identity.
  • Record-Route:Provides information on routing SIP responses back to the sender. The lr parameter indicates loose routing, which allows SIP messages to be routed through the proxies listed in the Record-Route header in reverse order.

Capability Information in 180 Ringing

The SIP message "SIP/2.0 180 Ringing" is a response code indicating that the INVITE request to initiate a call or session has been received by the UAS (User Agent Server) handling the called party, and the user being called is being alerted but has not yet answered.

The "180 Ringing" response plays a critical role in SIP call setups, providing feedback to the caller that the call is progressing and that the callee is being alerted. It's an intermediate response, and the call setup is not completed until a final response (e.g., 200 OK) is received, indicating that the callee has answered the call.

SIP/2.0 180 Ringing

    Max-Forwards: 70

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

    CSeq: 11001 INVITE

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

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

    f: <sip:0123456789@sharetechnote.net>;tag=1111111111

    i: bbae9438711d47d283895a10f920c2db

    l: 0

    m: <sip:310410123456789@[2001::1:f8b5:503a:c5d0:2fea]:6000>;+g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel";require;explicit;+g.3gpp.srvcc-alerting;mobility="mobile"

    t: <sip:310410123456789@sharetechnote.net>;tag=506663245

    v: SIP/2.0/UDP [2001:0:0:1::2]:62993;branch=z9hG4bKd7e3f6cf946a49618e8be0a37cc4a65b53;transport=udp,SIP/2.0/UDP [2001:0:0:1::2]:62984;branch=z9hG4bK3a2fa06cd53440b7a93217d703d8792a963b2071

This is the description of this message :

  • Status Line: SIP/2.0 180 Ringing indicates the response code (180) and the reason phrase ("Ringing"). This response is part of the SIP protocol version 2.0. The 180 Ringing response is an informational response, signifying that the call setup process is in progress but not yet completed.
  • Max-Forwards: Max-Forwards: 70 is included in the response for completeness, mirroring the request. It indicates the maximum number of hops the message can traverse. Although not typically manipulated by responses, its presence reflects the initial request parameters.
  • Allow:Lists the SIP methods (INVITE, ACK, CANCEL, BYE, UPDATE, INFO, REFER, NOTIFY, MESSAGE, PRACK) that the server supports. This informs the requester of the capabilities of the receiving UAS.
    • NOTE :  Refer to this tips for further details
  • CSeq:CSeq: 11001 INVITE shows the command sequence number and the method of the original request. It indicates that this response is part of the transaction initiated by the INVITE request with a sequence number of 11001.
  • Record-Route:<sip:[2001:0:0:1::2]:62993;lr> specifies the route that subsequent requests should take when sent within the context of this dialog. The lr parameter indicates loose routing, allowing SIP requests to be routed through the listed servers without strictly adhering to the specified path.
  • P-Access-Network-Info:Provides details about the network the request was sent from, indicating it was sent from a 3GPP E-UTRAN FDD network with a specific cell ID. This header is often used in mobile networks to convey additional context about the caller's network environment.
  • From (f):<sip:0123456789@sharetechnote.net>;tag=1111111111 indicates the originator of the request, with a unique tag added to identify the dialog from the caller's perspective.
  • Call-ID (i):bbae9438711d47d283895a10f920c2db is a globally unique identifier for this call or dialog, used to correlate requests and responses.
  • Content-Length (l): 0 indicates that there is no message body in this response.
  • Contact (m):Provides contact information for the called party, including capabilities and requirements specified for the session.
  • To (t):<sip:310410123456789@sharetechnote.net>;tag=506663245 indicates the recipient of the request, with a tag added by the UAS to uniquely identify the dialog from the recipient's side.
  • Via (v): Details the path(s) the request has taken and includes parameters for routing the response. The branch parameter contains a unique identifier to ensure that the response is routed back through the same path the request took.

Capability Information in 200 OK

The "SIP/2.0 200 OK" message is a successful response in the Session Initiation Protocol (SIP) indicating that the request (typically an INVITE for initiating a call) has been processed successfully by the recipient. This message is crucial in SIP dialogs, particularly in call setup, modification, and termination processes. This "200 OK" response is a key component in SIP interactions, signaling the successful setup, modification, or termination of a session and carrying necessary session parameters and capabilities for ongoing communication

SIP/2.0 200 OK

    Accept: application/sdp,application/3gpp-ims+xml

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

    Security-Verify: ipsec-3gpp;q=0.1;alg=hmac-md5-96;ealg=null;prot=esp;mod=trans;spi-c=2340907816;spi-s=1826487465;port-c=62992;port-s=62993

    Max-Forwards: 70

    User-Agent: Samsung IMS 5.0

    CSeq: 11001 INVITE

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

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

    c: application/sdp

    f: <sip:0123456789@sharetechnote.net>;tag=1111111111

    i: bbae9438711d47d283895a10f920c2db

    k: timer

    l: 375

    m: <sip:310410123456789@[2001::1:f8b5:503a:c5d0:2fea]:6000>;+g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel";require;explicit;+g.3gpp.mid-call;mobility="mobile"

    t: <sip:310410123456789@sharetechnote.net>;tag=506663245

    v: SIP/2.0/UDP [2001:0:0:1::2]:62993;branch=z9hG4bKd7e3f6cf946a49618e8be0a37cc4a65b53;transport=udp,SIP/2.0/UDP [2001:0:0:1::2]:62984;branch=z9hG4bK3a2fa06cd53440b7a93217d703d8792a963b2071

Below is an explanation of the key headers in this response:

  • Accept: Specifies the content types that the sender of the message is willing to accept. In this case, application/sdp for Session Description Protocol, which describes multimedia sessions, and application/3gpp-ims+xml for specific IMS (IP Multimedia Subsystem) services.
  • Allow: Lists the SIP methods (INVITE, ACK, CANCEL, BYE, UPDATE, INFO, REFER, NOTIFY, MESSAGE, PRACK) the sender supports, informing the recipient of the possible request types it can handle.
    • NOTE :  Refer to this tips for further details
  • Security-Verify: Indicates the security mechanisms supported by the sender, with parameters specifying the preferred quality of protection (q), algorithms for integrity (alg) and encryption (ealg), the protocol (prot), mode (mod), and SPI (Security Parameter Indexes) for both sending and receiving channels, as well as port numbers. This header is particularly relevant in securing SIP signaling in IMS networks.
  • Max-Forwards: Indicates the maximum number of times this message can be forwarded by proxies to prevent looping. The initial value is usually set to 70.
  • User-Agent: Identifies the software used by the sender, here "Samsung IMS 5.0," providing context about the device or service generating the response.
  • CSeq: Indicates the command sequence number of the SIP request this message is responding to, here acknowledging an INVITE request with sequence number 11001.
    • NOTE :  Refer to this tips for further details
  • Record-Route:Provides routing information for ensuring that subsequent requests within the dialog follow the same path. The lr parameter indicates loose routing.
  • P-Access-Network-Info:Conveys information about the network the sender is using, indicating access through a 3GPP E-UTRAN FDD network with a specific cell ID. This header is important for services that adapt their behavior based on the access network.
  • Content-Type (c): Specifies the type of the message body, in this case, application/sdp, indicating that the message includes an SDP payload describing the session parameters.
  • From (f): Indicates the originator of the request this response is associated with, including a tag that uniquely identifies the leg of the call from the initiator's perspective.
  • Call-ID (i): Provides a unique identifier for the call or dialog this message pertains to.
  • Supported (k): Lists the SIP extensions supported by the sender. The presence of "timer" suggests support for session timers, used to determine the freshness of the session.
  • Content-Length (l): Specifies the size of the SIP message body in bytes, indicating how much data follows the SIP headers.
  • Contact (m): Provides the contact information for the sender, including capabilities and parameters relevant to the session being established or modified.
  • To (t): Indicates the recipient of the request, with a tag added by the UAS to uniquely identify the dialog from the recipient's side.
  • Via (v): Lists the SIP proxies the message has traversed, including the transport protocol used and a unique branch parameter for each hop to ensure proper routing of responses.