我正在尝试使用 query_sm 查询通过 perl Net:SMPP 模块发送的 SMS 的状态。
我按如下方式填充了 submit_sm PDU:
$resp_pdu1 = $smpp->submit_sm(
destination_addr => '12345678910',
short_message => 'test message',
source_addr_ton => 0x05,
source_addr_npi => 0x00,
source_addr => 'testing',
dest_addr_ton => 0x02,
dest_addr_npi => 0x01,
data_coding => 0x00,
esm_class => 0x00,
) or die;
我将 submit_sm_rsp PDU 中返回的消息 ID 传递给我的 query_sm PDU:
$msg_id = $resp_pdu1->{message_id};
print $msg_id;print "\n";
$resp_pdu2 = $smpp->query_sm(
message_id => $msg_id,
source_addr_ton => 0x05,
source_addr_npi => 0x00,
source_addr => 'testing',
) or die;
我的 perl 脚本运行时没有任何错误,并且消息被 MS 接收,绑定和解除绑定到 SMSC 时没有错误。检查 SMPP 数据包的wireshark 转储在 query_sm_rsp 中显示“消息 ID 无效”,错误代码为0x0C。我已经检查过,提交给 query_sm PDU 的 submit_sm_rsp 返回的 message_id 是相同的。关于我为什么会收到此错误的任何提示?