目前我们使用Kannel连接到SMSC并接收任何传入的短信。
安装程序成功将消息定向到我们的CGI Perl脚本。但是,目标地址(在这种情况下是短代码)是空的。我们在SMSC配置了几个短代码,因此我们需要知道通过哪个短代码发送的消息。
目前的配置如下:
group = sms-service
keyword =default
accept-x-kannel-headers=true
post-url= "http://127.0.0.1:8990/cgi-bin/test_shortcode.cgi?MSISDN=%p&MSG=%a&SC=%P"
max-messages =1
catch-all=yes
concatenation = 1
omit-empty = true
send-sender=true
param SC
收到空字符串。
检查SMSC日志文件和短代码实际上是作为destination_addr找到的:
2016-04-20 14:48:56 [20307] [6] DEBUG: dest_addr_ton: 0 = 0x00000000
2016-04-20 14:48:56 [20307] [6] DEBUG: dest_addr_npi: 1 = 0x00000001
2016-04-20 14:48:56 [20307] [6] DEBUG: destination_addr: "27626"
有关为什么会发生这种情况的任何想法,我们如何才能将短代码作为参数?
谢谢
答案 0 :(得分:1)
检查Kannel源后发现问题。原来Kannel将读取一系列用于发送短信的配置,这些设置将在MO进入时替换目的地号码。我找到的设置是:
- 我的数
- 全局发送器
- 伪造发送器
醇>
每个级别的设置都将覆盖前一个级别,即如果全部设置为3,则faked-sender
将生效。通过评论上述3,我们可以从%P
请求中的参数post-url
获取正确的短代码值。
只是发布这个以防万一它会帮助某人。