0

カスタム パラメータまたはその他の方法を使用して、smpp ペイロード/pdu で追加のデータを送信することは可能ですか。言語 API は、Java、jsmpp、またはその他のいずれかです。可能であれば、例を共有してください。

4

1 に答える 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 に答える