Iam正在研究SMPP协议并尝试使用golang代码和 selenium smpp模拟器来实现一个简单的发送器。我找到了一个包" CodeMonkeyKevin / smpp34 "来自github。 但我无法设置" user_message_reference"可选参数。
我稍微修改过" SubmitSm"功能在" transmitter.go"文件通过添加这些行(就在写操作之前):
Char.uppercase
但这不起作用。
我提供了值 tag = 0516 (int等效于0x0204 user_message_reference) length = 02 和 value =" 91" 。
在回复中我可以看到" tag = 516,len = 2,value = 0x3931 "在SMSC模拟器中,值字段对我来说似乎不合适;还有" message_id "在响应中仍然通过在最后一个message_id
中添加1来继续其序列可以帮助我设置" user_message_reference" " submit_sm "的可选参数请求?
提前致谢。
答案 0 :(得分:0)
您没有在transmitter.go
中编辑该功能在submit_sm之后设置你的tlv字段
例如
pdu, err := trx.Smpp.SubmitSm("+254720000000",
pdu.GetField("source_addr").String(), msg, &smpp.Params{})
pdu.SetTLVField(0x0501, 1, []byte{2}) #eg a ussd_service_op
如果您使用的是kevin的软件包,这是添加tlv值的正确方法 见https://github.com/CodeMonkeyKevin/smpp34/issues/9 Additional parameters