go - 无法在代码中设置 SMPP 可选参数

标签 go smpp

我正在研究 SMPP 协议(protocol)并尝试使用 golang 代码和 selenium smpp 模拟器 实现一个简单的发送器。我从 github 上找到了一个包“CodeMonkeyKevin/smpp34”。 但是我无法设置“user_message_reference”可选参数。

我通过添加这些行(就在写入操作之前)对“transmitter.go”文件中的“SubmitSm”函数进行了轻微修改:

err = p.SetTLVField(tag, length, []byte(value))
    if err != nil {
        fmt.Println("Set TLV failed")
        return 0, err
    }

但这行不通。

我提供了值 tag=0516(相当于 0x0204 user_message_reference 的整数)length=02value="91"

在响应中我可以在 SMSC 模拟器中看到“tag=516,len=2,value=0x3931”,值字段对我来说似乎不合适;响应中的“message_id”仍然通过在最后一个 message_id 上加 1 来继续其序列

有人可以帮助我将“user_message_reference”可选参数设置为“submit_sm”请求吗?

提前致谢。

最佳答案

你没有在变送器中编辑功能.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

关于go - 无法在代码中设置 SMPP 可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39615776/

相关文章:

java - 免费在线 SMPP 服务器

java - JSMPP - EnquireLinkTimer,长时间不活动后 session 终止

java - java通过SMPP协议(protocol)发送短信

python - 在 Python 中实现 SMPP

go - 遍历包含模板中多个结构 slice 的结构

go 测试用例未在主包中运行

go - 为什么 `go get` 在 Travis CI 构建中开始失败?

sql - golang正则表达式获取日志文件中的sql语句

smpp - 如何从 SMSC 发送 Deliver_sm 请求

Golang嵌套类在函数内