IMS

 

 

 

 

SMS over IMS

 

Overall sequence of SMS over IMS is very simple. Just send a message and wait for delivery report (this delivery report is optional).

 

Comments from the initial post (Just to give you an idea on how the technology evolve) :

But when you are going into details especially for troubleshooting, there are a lot of small things you have to think of. I came across many troubleshooting case, but I haven't found any general rules that would clear out all of your problems. (It may be becauseIMS service is still in early phase as of now (Oct 2013), specification (RFC, 3GPP) is not so clear and the interpretation of those specification by the IMS stack developers seems to vary a lot.)

So my approach on this topic is to introduce various cases as much as possible so that you can absorbe the generic pattern.

 

Comments as of Feb 2017 :

Now pretty much everything is cleary defined in 3GPP specification 24.341 (Refer to the latest version of 24.341)

 

Followings are the list of example, I will go through in this page.

 

 

 

SIP Specification on SMS

 

 

< Capability indcation in REGISTER >

 

IR 92 2.2.1 SIP Registration Procedures says :

If a UE support SMS over IP, it should include a tag to indicate the capablity of SMS over IP as stated in 24.341 5.3.2.2 as below.

 

On sending a REGISTER request, the SM-over-IP receiver shall indicate its capability to receive traditional short messages over IMS network by including a "+g.3gpp.smsip" parameter into the Contact header according to RFC 3840

 

In RFC 3840, 5. Computing Capabilities

  • in order to identify them as feature parameters (as opposed to parameters for another SIP extension), they are encoded with a leading "+" sign in the Contact header field
  •  

    Example :

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

      Expires: 600000

      Authorization: Digest ....

      CSeq: 1 REGISTER

      Max-Forwards: 70

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

      f: <sip:310410123456789@test.3gpp.com>;tag=1148585218

      i: 229717043

      k: pathsec-agree

      l: 0

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

      t: <sip:310410123456789@test.3gpp.com>

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

 

 

< MO SMS Signal Flow >

 

 

< 24.341 B.5 Signalling flows demonstrating successful UE originated SM submit procedure over IP >

 

 

< MT SMS Signal Flow >

 

< 24.341 B.6 Signalling flows demonstrating successful UE terminated SM deliver procedure over IP >

 

 

 

MO SMS - Example 1

 

Following is an example of MO SMS over IMS. If you want to get the detailed description of the specification, refer to 34.229 18.1 Mobile Originating SMS

 

Direction

Message

UA --> NW

Request : MESSAGE <URI> | (RP) RP-DATA (MS to Network)

UA <-- NW

202 Accepted

UA <-- NW

Request : MESSAGE <URI> | (RP) RP-ACK (Network to MS)

UA --> NW

200 OK

 

NOTE : If you want to see the contents of full log with Amarisoft Log viewer, go to LogAnalysis section and click on 'Sample Log' in this tutorial of Amarisoft TechAcademy.

 

 

Request: MESSAGE tel:19037029920;phone-context=TestIMS.com | (RP) RP-DATA (MS to Network)

    MESSAGE tel:19037029920;phone-context=TestIMS.com SIP/2.0

    f: "Test" <sip:+11234567890@test.3gpp.com>;tag=834037901

    t: <tel:19037029920;phone-context=TestIMS.com>

    CSeq: 834037887 MESSAGE

    i: 834037887_2367153256@2001:0:0:1::1

    v: SIP/2.0/UDP [2001:0:0:1::1]:5060;branch=z9hG4bK253093091

    Max-Forwards: 70

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

    c: application/vnd.3gpp.sms

    Allow: MESSAGE

    Request-Disposition: no-fork

    User-Agent: Test User Agent

    l: 28

     

    v: SIP/2.0/UDP [2001:0:0:1::1]:5060;branch=z9hG4bK253093091

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

    c: application/vnd.3gpp.sms

    Allow: MESSAGE

    Request-Disposition: no-fork

    User-Agent: Test User Agent

     

    Message Body

      GSM A-I/F RP - RP-DATA (MS to Network)

      RP-Message Reference

        RP-Message Reference: 0x05 (5)

      RP-Origination Address

        Length: 0

      RP-Destination Address - (19037029920)

        0... .... = TP-RP: TP Reply Path parameter is not set in this SMS SUBMIT/DELIVER

        .0.. .... = TP-UDHI: The TP UD field contains only the short message

        ..0. .... = TP-SRR: A status report is not requested

        ...1 0... = TP-VPF: TP-VP field present - relative format (2)

        .... .0.. = TP-RD: Instruct SC to accept duplicates

        .... ..01 = TP-MTI: SMS-SUBMIT (1) // This is indication of MO-SMS

      TP-MR: 88

      TP-Destination-Address - (555)

        Length: 3 address digits

        1... .... :  No extension

        .000 .... :  Type of number: (0) Unknown

        .... 0001 :  Numbering plan: (1) ISDN/telephone (E.164/E.163)

        TP-DA Digits: 555

      TP-PID: 0

        00.. .... :  defines formatting for subsequent bits

        ..0. .... :  no telematic interworking, but SME-to-SME protocol

        ...0 0000 :  the SM-AL protocol being used between the SME and the MS (0)

      TP-DCS: 0

        00.. .... = Coding Group Bits: General Data Coding indication (0)

        Special case, GSM 7 bit default alphabet

      TP-Validity-Period: 24 hours 0 minutes

      TP-User-Data-Length: (12) depends on Data-Coding-Scheme

      TP-User-Data

        SMS text: MO SMS Test

 

 

Request: MESSAGE sip:+11234567890@test.3gpp.com | (RP) RP-ACK (Network to MS)

    MESSAGE sip:+11234567890@test.3gpp.com SIP/2.0

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

    Via: SIP/2.0/UDP [2001:0:0:1::2]:60393;branch=z9hG4bK00476613

    Max-Forwards: 69

    From: <sip:1111@test.3gpp.com>;tag=00476613

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

    Call-ID: 20131016-151124@[2001:0:0:1::2]:60393

    CSeq: 1 MESSAGE

    Request-Disposition: fork, parallel

    Accept-Contact: *;+g.3gpp.smsip;require;explicit // This indicate that this SIP message is a SMS message

    Content-Type: application/vnd.3gpp.sms  // This indicates that the SMS is in 3GPP format (not 3GPP2 format)

    In-Reply-To: 834037887_2367153256@2001:0:0:1::1

    P-Called-Party-ID: <sip:+11234567890@test.3gpp.com>

    Content-Length: 13

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

     

    Message Body

      GSM A-I/F RP - RP-ACK (Network to MS)

        RP-Message Reference

          RP-Message Reference: 0x05 (5)

        RP-User Data

          Element ID: 0x41

          Length: 9

        TPDU (not displayed)

      GSM SMS TPDU (GSM 03.40) SMS-SUBMIT REPORT

        .0.. .... = TP-UDHI: The TP UD field contains only the short message

        .... ..01 = TP-MTI: SMS-SUBMIT REPORT (1)

        TP-Parameter-Indicator

          0... .... :  No extension

          .000 0... :  Reserved

          .... .0.. :  TP-UDL not present

          .... ..0. :  TP-DCS not present

          .... ...0 :  TP-PID not present

        TP-Service-Centre-Time-Stamp

          Year 33, Month 13, Day 03

          Hour 13, Minutes 63, Seconds 13

          Timezone: GMT + 13 hours 15 minutes

 

 

 

MT SMS - Example 1

 

Following is an example of MT SMS over IMS. If you want to get the detailed description of the specification, refer to 34.229 18.2 Mobile Terminating SMS

 

Direction

Message

UA <-- NW

Request : MESSAGE <URI> | (RP) RP-DATA (Network to MS)

UA --> NW

200 OK

UA --> NW

Request : MESSAGE <URI> | (RP) RP-ACK (MS to Network)

UA <-- NW

202 Accepted

 

NOTE : If you want to see the contents of full log with Amarisoft Log viewer, go to LogAnalysis section and click on 'Sample Log' in this tutorial of Amarisoft TechAcademy.

 

 

Request: MESSAGE sip:+11234567890@test.3gpp.com | (RP) RP-DATA (Network to MS)

    MESSAGE sip:+11234567890@test.3gpp.com SIP/2.0

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

    Via: SIP/2.0/UDP [2001:0:0:1::2]:60393;branch=z9hG4bK0047D4EC

    Max-Forwards: 69

    From: <sip:1111@test.3gpp.com>;tag=0047D4EC

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

    Call-ID: 20131016-151152@[2001:0:0:1::2]:60393

    CSeq: 1 MESSAGE

    Request-Disposition: no-fork

    Accept-Contact: *;+g.3gpp.smsip;require;explicit // This indicate that this SIP message is a SMS message

    Content-Type: application/vnd.3gpp.sms // This indicates that the SMS is in 3GPP format (not 3GPP2 format)

    Content-Transfer-Encoding: binary

    P-Called-Party-ID: <sip:+11234567890@test.3gpp.com>

    Content-Length: 41

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

     

    Message Body

      GSM A-I/F RP - RP-DATA (Network to MS)

      RP-Message Reference

      RP-Origination Address - (999999)

        Length: 4

        1... .... = Extension: No Extension

        .000 .... = Type of number: unknown (0x00)

        .... 0001 = Numbering plan identification: ISDN/Telephony Numbering (Rec ITU-T E.164) (0x01)

        BCD Digits: 999999

      RP-Destination Address

      RP-User Data

       

      GSM SMS TPDU (GSM 03.40) SMS-DELIVER

        0... .... = TP-RP: TP Reply Path parameter is not set in this SMS SUBMIT/DELIVER

        .0.. .... = TP-UDHI: The TP UD field contains only the short message

        ..0. .... = TP-SRI: A status report shall not be returned to the SME

        .... .1.. = TP-MMS: No more messages are waiting for the MS in this SC

        .... ..00 = TP-MTI: SMS-DELIVER (0) // This is indication of MT-SMS

      TP-Originating-Address - (1234567890)

        Length: 10 address digits

        1... .... :  No extension

        .000 .... :  Type of number: (0) Unknown

        .... 0001 :  Numbering plan: (1) ISDN/telephone (E.164/E.163)

        TP-OA Digits: 1234567890

      TP-PID: 0

        00.. .... :  defines formatting for subsequent bits

        ..0. .... :  no telematic interworking, but SME-to-SME protocol

        ...0 0000 :  the SM-AL protocol being used between the SME and the MS (0)

      TP-DCS: 0

        00.. .... = Coding Group Bits: General Data Coding indication (0)

        Special case, GSM 7 bit default alphabet

      TP-Service-Centre-Time-Stamp

        Year 13, Month 10, Day 16

        Hour 15, Minutes 11, Seconds 29

        Timezone: GMT + 5 hours 0 minutes

      TP-User-Data

        SMS text: this is a mt sms test message

 

 

Request: MESSAGE sip:1111@test.3gpp.com;phone-context=TestIMS.com | (RP) RP-ACK (MS to Network)

    MESSAGE sip:1111@test.3gpp.com;phone-context=TestIMS.com SIP/2.0

    f: "Test" <sip:+11234567890@test.3gpp.com>;tag=834066458

    t: <sip:1111@test.3gpp.com;phone-context=TestIMS.com>

    CSeq: 834066445 MESSAGE

    i: 834066446_2367161720@2001:0:0:1::1

    v: SIP/2.0/UDP [2001:0:0:1::1]:5060;branch=z9hG4bK502862226

    Max-Forwards: 70

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

    c: application/vnd.3gpp.sms

    Allow: MESSAGE

    Request-Disposition: no-fork

    User-Agent: Test User Agent

    l: 6

     

    Message Body

      GSM A-I/F RP - RP-ACK (MS to Network)

      RP-Message Reference

        RP-Message Reference: 0x00 (0)

      RP-User Data

        Element ID: 0x41

        Length: 2

        TPDU (not displayed)

      GSM SMS TPDU (GSM 03.40) SMS-DELIVER REPORT

        .0.. .... = TP-UDHI: The TP UD field contains only the short message

        .... .0.. = TP-MMS: More messages are waiting for the MS in this SC

        .... ..00 = TP-MTI: SMS-DELIVER REPORT (0)

      TP-Parameter-Indicator

        0... .... :  No extension

        .000 0... :  Reserved

        .... .0.. :  TP-UDL not present

        .... ..0. :  TP-DCS not present

        .... ...0 :  TP-PID not present