カスタム パラメータまたはその他の方法を使用して、smpp ペイロード/pdu で追加のデータを送信することは可能ですか。言語 API は、Java、jsmpp、またはその他のいずれかです。可能であれば、例を共有してください。
1511 次
1 に答える
2
SMPP 仕様には、「5.3.2 SMPP オプション パラメータ タグの定義」という段落があります。ここには、PDU に追加できるすべてのオプション パラメータがあります。
以下は、sar_* オプションを submit_sm に設定して、それが長い submit_sm の一部であることを示す例です (この python lib: 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
とにかく、「ベンダー固有」のオプションを設定する必要があり、標準のオプション パラメータを使用しない場合は、クライアント側とサーバー側のライブラリに実装する必要があります。標準ライブラリで準備ができていないか、実装されていない可能性があります。
また、データを送信するためのメッセージ構造を定義することも考えられます (何をする必要があるかによって異なります...)。 delivery_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 に答える