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
- Get the Test Procedure and Log / Amarisoft TechAcademy
< 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
< 24.341 B.5 Signalling flows demonstrating successful UE originated SM submit procedure over IP >

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

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 |
|
|
UA <-- NW |
202 Accepted |
|
UA <-- NW |
|
|
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
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 |
|
|
UA --> NW |
200 OK |
|
UA --> NW |
|
|
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