如何将SIP链路Message短信转为CDMA短信通过SIGTRAN链路发送

前言

近期遇到一个问题,将将SIP链路Message短信转为CDMA短信通过SIGTRAN链路发送。Message短信通过SIP链路送到业务处理平台,业务处理平台将该Message消息重新打包为CDMA短信体通过SIGTRAN链路发送出去。所以此解决方案的前提需要打通SIP链路及SIGTRAN链路。

   在这里插入图片描述

  下面将我的解决方案给网友分享下。

SIP Message 短信体介绍

SIP Message短信体与普通的SIP消息,不同的地方主要有两个,一是Content-Type;二是Message Body。其他基本都是相同的。

普通短信实例如下

在这里插入图片描述
真正的短信就藏在Message Body中,遵照GSM 03.04规范。
Session Initiation Protocol (MESSAGE)
Request-Line: MESSAGE sip:+8618911709510@bj.ims.mnc011.mcc460.3gppnetwork.org SIP/2.0
Method: MESSAGE
Request-URI: sip:+8618911709510@bj.ims.mnc011.mcc460.3gppnetwork.org
Request-URI User Part: +8618911709510
E.164 number (MSISDN): 8618911709510
Country Code: China (People’s Republic of) (86)
Request-URI Host Part: bj.ims.mnc011.mcc460.3gppnetwork.org
[Resent Packet: False]
Message Header
[Expert Info (Warning/Undecoded): Trailing stray characters]
[Trailing stray characters]
[Severity level: Warning]
[Group: Undecoded]
Via: SIP/2.0/UDP 192.168.46.135:5060;branch=z9hG4bK388395731j192.1.0.40235711
Transport: UDP
Sent-by Address: 192.168.46.135
Sent-by port: 5060
Branch: z9hG4bK388395731j192.1.0.40235711
From: sip:ipsm11bze.bj.bj.bj.ims.mnc011.mcc460.3gppnetwork.org;tag=hyjjxh192.1.0.0.68159442.118278645100
SIP from address: sip:ipsm11bze.bj.bj.bj.ims.mnc011.mcc460.3gppnetwork.org
SIP from address Host Part: ipsm11bze.bj.bj.bj.ims.mnc011.mcc460.3gppnetwork.org
SIP from tag: hyjjxh192.1.0.0.68159442.118278645100
Call-ID: 0190e69c00a900000d43_692035611j192.1.402357110@192.168.46.135
[Generated Call-ID: 0190e69c00a900000d43_692035611j192.1.402357110@192.168.46.135]
CSeq: 100 MESSAGE
Sequence Number: 100
Method: MESSAGE
Max-Forwards: 70
To: sip:+8618911709510@bj.ims.mnc011.mcc460.3gppnetwork.org
SIP to address: sip:+8618911709510@bj.ims.mnc011.mcc460.3gppnetwork.org
SIP to address User Part: +8618xxxxx
E.164 number (MSISDN): 861891ssssss0
Country Code: China (People’s Republic of) (86)
SIP to address Host Part: bj.ims.mnc011.mcc460.3gppnetwork.org
Route: sip:scscf14ahw.bj.bj.bj.ims.mnc011.mcc460.3gppnetwork.org:5060;lr
Route URI: sip:scscf14ahw.bj.bj.bj.ims.mnc011.mcc460.3gppnetwork.org:5060;lr
Route Host Part: scscf14ahw.bj.bj.bj.ims.mnc011.mcc460.3gppnetwork.org
Route Host Port: 5060
Route URI parameter: lr
P-Asserted-Identity: sip:ipsm11bze.bj.bj.bj.ims.mnc011.mcc460.3gppnetwork.org
SIP PAI Address: sip:ipsm11bze.bj.bj.bj.ims.mnc011.mcc460.3gppnetwork.org
SIP PAI Host Part: ipsm11bze.bj.bj.bj.ims.mnc011.mcc460.3gppnetwork.org
Request-Disposition: no-fork
Accept-Contact: *;+g.3gpp.smsip
Content-Length: 38
Content-Type: application/vnd.3gpp.sms
Message Body
GSM A-I/F RP - RP-DATA (Network to MS)
Message Type RP-DATA (Network to MS)
RP-Message Reference
RP-Message Reference: 0xad (173)
RP-Originator Address - (460030934101200)
Length: 9
1… … = Extension: No Extension
.001 … = Type of number: International Number (0x1)
… 0001 = Numbering plan identification: ISDN/Telephony Numbering (ITU-T Rec. E.164 / ITU-T Rec. E.163) (0x1)
Called Party BCD Number: 46xxxxxxxxx
RP-Destination Address
Length: 0
RP-User Data
Length: 24
TPDU (not displayed)
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
…1. … = TP-SRI: A status report shall be returned to the SME
… 0… = TP-LP: The message has not been forwarded and is not a spawned message
… .1… = TP-MMS: No more messages are waiting for the MS in this SC
… …00 = TP-MTI: SMS-DELIVER (0)
TP-Originating-Address - (xxxxxxx)
Length: 11 address digits
1… … = Extension: No extension
.010 … = Type of number: National (2)
… 0001 = Numbering plan: ISDN/telephone (E.164/E.163) (1)
TP-OA Digits: 1xxxxxx
TP-PID: 0
00… … = Defines formatting for subsequent bits: 0x0
…0. … = Telematic interworking: 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: 20
Month: 7
Day: 1
Hour: 14
Minutes: 54
Seconds: 20
Timezone: GMT + 8 hours 0 minutes
TP-User-Data-Length: (5) depends on Data-Coding-Scheme
TP-User-Data
SMS text: ààààà
Deliver的结构如下:在这里插入图片描述

短信状态报告示例如下:

SIP短信报告体如图所示:
在这里插入图片描述
RP-User Data Deliver Report的示例如下:
在这里插入图片描述
GDM 03.04解释如下:
在这里插入图片描述

SIGTRAN CDMA 短信体介绍

和SIP Message 一样,会介绍CDMA普通短信。普通的CDMA短信,采用SMS Deliver Point to Point消息承载。
在这里插入图片描述
ANSI Transaction Capabilities Application Part
queryWithPerm
identifier: 74d5194c
componentPortion: 1 item
ComponentPDU: invokeLast (9)
invokeLast
componentIDs: 01
operationCode: private (17)
private: 2357 SMS Delivery Point to Point
ANSI Mobile Application Part
sMSDeliveryPointToPoint
mobileIdentificationNumber - xxxxxx
BCD digits: xxxxxx
electronicSerialNumber:xxxxxx
sms-BearerData: 000310eec0010620136a5c5ea803061808071058040a0140
sms-NotificationIndicator: Notify when available (1)
sms-OriginalDestinationAddress - 8XXXXX
Type of Digits: Not Used (0)
00… … = Reserved: 0
…00 … = Screening indication: User provided, not screened (0)
… 0… = Reserved: False
… .0… = Number available indication: Number is available
… …0. = Presentation Indication: Presentation Allowed
… …1 = Nature of Number: International
0010 … = Numbering Plan: Telephony Numbering (ITU-T Rec. E.164,E.163) (2)
… 0001 = Encoding: BCD (1)
Number of Digits: 13
BCD digits: 8618964970195
sms-OriginalOriginatingAddress - 15338169221
Type of Digits: Not Used (0)
00… … = Reserved: 0
…00 … = Screening indication: User provided, not screened (0)
… 0… = Reserved: False
… .0… = Number available indication: Number is available
… …0. = Presentation Indication: Presentation Allowed
… …0 = Nature of Number: National
0010 … = Numbering Plan: Telephony Numbering (ITU-T Rec. E.164,E.163) (2)
… 0001 = Encoding: BCD (1)
Number of Digits: 11
BCD digits: 1xxxxxx
sms-TeleserviceIdentifier: 1002
ANSI IS-637-A (SMS) Teleservice Layer - CDMA Cellular Messaging Teleservice (4098)
Message Identifier
Teleservice Subparam ID: Message Identifier (0)
Length: 3
0001 … … … … … = Message Type: Deliver (mobile-terminated only) (1)
… 0000 1110 1110 1100 … = Message ID: 3820
… … … … … 0… = Header Indicator: The User Data field contains only the short message (0)
… … … … … .000 = Reserved: 0
User Data
Teleservice Subparam ID: User Data (1)
Length: 6
0010 0… … … = Encoding: UNICODE (4)
… .000 0001 0… = Number of fields: 2
Encoded user data: 测试
… .000 = Reserved bit(s): 0
Message Center Time Stamp
Teleservice Subparam ID: Message Center Time Stamp (3)
Length: 6
Timestamp (Year): 2018 (18)
Timestamp (Month): August (08)
Timestamp (Day): 7
Timestamp (Hours): 10
Timestamp (Minutes): 58
Timestamp (Seconds): 4
Reply Option
Teleservice Subparam ID: Reply Option (10)
Length: 1
0… … = User Acknowledgement Requested: No
.1… … = Delivery Acknowledgement Requested: Yes
…0. … = Read Acknowledgement Requested: No
…0 … = Delivery/Submit Report Requested: No
… 0000 = Reserved bit(s): 0

3GPP2 C.S0015-B中对于SMS Point-To-Point的定义:
在这里插入图片描述

CDMA短信响应格式如下

在这里插入图片描述
ANSI Transaction Capabilities Application Part
response
identifier: 74d5194c
componentPortion: 1 item
ComponentPDU: returnResultLast (10)
returnResultLast
componentID: 01
[private: 2357 SMS Delivery Point to Point]
ANSI Mobile Application Part
sMSDeliveryPointToPointRes

消息响应的如下:
在这里插入图片描述

Message短信转CDMA短信的流程

短信总体为将Message的Deliver消息转为CDMA的Point-TO-Point消息;将CDMA的响应消息转为Message消息的Deliver Report。
Message的字段有RP_Message_Reference、TP_Oriinator_Address、TP_Orinating_Address、TP_Destination_Address、TP_PID、TP_DCS、TP_Service_Center_Time_Stamp、TP_User_Data。
CDMA的Deliver的字段有mobileIdentificationNumber、destronicServerNumber、sms_NotificationIndicator、sms_OriginalDestionationAddress、sms_originalOriginatingAddress、sms_TeleserviceIdentifier。其中UserData与Message中的User_Data进行对应。

这种需要注意的GSM短信与CDMA短信的User_Data的转换方法,CMDA短信的USER_DATA有移位和对齐的操作。

总结

参照SIP及GSM规范将Message消息解码;参照CDMA规范将消息封装为SMS Point-to-Point消息,即可完成消息的转换。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醉心编码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值