I am working on a VoLTE/IMS scenario to transfer text messages as SMS over IP (+g.3gpp.smsip feature) between UE’s. This is a high-level view of the message flows between the endpoints (not showing CSCFs):
UE1 IP-SM-GW
|---- MESSAGE (SUBMIT) --------------->|
|<------------------- 202 ACCEPTED ----|
| |
|<-------- MESSAGE (SUBMIT_REPORT) ----|
|---- 200 OK ------------------------->|
|
UE2 |
| |
|<-------------- MESSAGE (DELIVER) ----|
|---- 200 OK ------------------------->|
The messages does get transferred from UE1 to UE2 successfully. Since this is GSM-style SMS, the OA (originating address) and DA (destination address) are specified using telephone numbers, not sip addresses. This is not a problem for the DA, since it is specified in the SUBMIT TPDU from the originating handset, but when the IP-SM-GW sends the DELIVER TPDU it needs to specify the OA so that the recipient knows who sent the SMS, and this was not provided in the MESSAGE with the SMS-SUBMIT.
According to 3GPP TS 24.341 (http://www.qtc.jp/3GPP/Specs/24341-b20.pdf):
"The IP-SM-GW will have to use an address of the SM-over-IP sender that the SC can process (i.e. an E.164 number). This address will come from a tel URI in a P-Asserted-Identity header (as defined in RFC 3325 [13]) placed in the SIP MESSAGE request by the P-CSCF or S-CSCF."
Looking at the MESSAGE request sent from the S-CSCF to the IP-SM-GW, it looks like neither the P-CSCF nor the S-CSCF is providing the tel address in a P-Asserted-Identity header:
MESSAGE tel:+3108012345680 SIP/2.0
Route: <sip:defaultapp@tas.core.ims1.test;lr>, <sip:iscmark@scscf.core.ims1.test:6060;lr;s=1;h=0;d=0;a=7369703a30303130333031323334353637383940696d732e6d6e633030332e6d63633030312e336770706e6574776f726b2e6f7267>
P-Served-User: <sip:001030123456789@ims.mnc003.mcc001.3gppnetwork.org>;sescase=orig;regstate=reg
f: <sip:001030123456789@ims.mnc003.mcc001.3gppnetwork.org>;tag=2703358633
t: <tel:+3108012345680>
CSeq: 555874977 MESSAGE
i: 2703358625_2324045032@2001:470:eb88:b021:27f:9507:589d:c201
Via: SIP/2.0/UDP [2001:470:EB88:150:0:0:0:22]:6060;branch=z9hG4bKb857.bd3345ba81ec10b1d11639d9c7414606.0;i=a
Via: SIP/2.0/TCP [2001:470:EB88:150:5054:FF:FE44:BFC9];branch=z9hG4bKb857.be53cc1c583b9c5f9dcebf3306f2b7c1.0
v: SIP/2.0/UDP [2001:470:eb88:b021:27f:9507:589d:c201]:8906;rport=8013;branch=z9hG4bK3552622488
Max-Forwards: 68
P-Access-Network-Info: 3GPP-E-UTRAN-FDD; utran-cell-id-3gpp=0010300030000001
c: application/vnd.3gpp.sms
Allow: MESSAGE
d: no-fork
User-Agent: Xiaomi_Redmi 3S_Android6.0.1_9
l: 27
P-Charging-Vector: icid-value=49565300000000511100004B01000000; icid-generated-at=2001:470:EB88:150:5054:FF:FE44:BFC9
P-Asserted-Identity: <sip:001030123456789@ims.mnc003.mcc001.3gppnetwork.org>
P-Visited-Network-ID: core.ims1.test
Message Body
GSM A-I/F RP - RP-DATA (MS to Network)
Message Type RP-DATA (MS to Network)
RP-Message Reference
RP-Message Reference: 0x05 (5)
RP-Originator Address
RP-Destination Address - (3108012345680)
RP-User Data
Length: 14
TPDU (not displayed)
GSM SMS TPDU (GSM 03.40) SMS-SUBMIT
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
..1. .... = TP-SRR: A status report is requested
...0 0... = TP-VPF: TP-VP field not present (0)
.... .0.. = TP-RD: Instruct SC to accept duplicates
.... ..01 = TP-MTI: SMS-SUBMIT (1)
TP-MR: 92
TP-Destination-Address - (8000)
TP-PID: 0
TP-DCS: 0
TP-User-Data-Length: (5) depends on Data-Coding-Scheme
TP-User-Data
SMS text: HELLO
Is this something that in configurable at the P-CSCF or the S-CSCF, or would it require now development?
Thanks,
Ron