Is it possible to send some extra data with smpp payload/pdu using custom paramters or any other way. Language API could be any java, jsmpp or any other. Kindly share an example if its possible.
问问题
1511 次
1 回答
2
在 SMPP 规范中,您有以下段落:“5.3.2 SMPP 可选参数标签定义”,您可以在其中找到可以添加到 PDU 的所有可选参数。
下面是将 sar_* 选项设置为 submit_sm 以指示它是长 submit_sm 的一部分的示例(使用此 python 库:https ://github.com/mozes/smpp.pdu ):
pdu = SubmitSM()
pdu.params['sar_total_segments'] = 3
pdu.params['sar_segment_seqnum'] = 1
pdu.params['sar_msg_ref_num'] = 56
无论如何,如果您需要设置“供应商特定”选项而不使用标准可选参数,则需要在客户端和服务器端的库中实现它,您可能不会发现它已准备好并在任何标准库中实现。
您可能还想定义一个消息结构来发送您的数据(这取决于您需要做什么......),例如,交付回执是通过具有特定消息格式的标准 Deliver_sm pdu 发送的,这里有一个方法来检查如果deliver_sm 内容表示送达回执或普通消息:
def isDeliveryReceipt(self, DeliverSM):
"""Check whether DeliverSM is a DLR or not, will return None if not
or a dict with the DLR elements"""
ret = None
# Example of DLR content
# id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done
# date:YYMMDDhhmm stat:DDDDDDD err:E text: . . . . . . . . .
pattern = r"^id:(?P<id>\d{10}) sub:(?P<sub>\d{3}) dlvrd:(?P<dlvrd>\d{3}) submit date:(?P<sdate>\d{10}) done date:(?P<ddate>\d{10}) stat:(?P<stat>\w{7}) err:(?P<err>\w{3}) text:(?P<text>.*)"
m = re.search(pattern, DeliverSM.params['short_message'], flags=re.IGNORECASE)
if m is not None:
ret = m.groupdict()
return ret
于 2012-12-19T21:45:47.853 回答