Kannel - 从POST_URL获取短代码

时间:2016-04-20 07:09:58

标签: sms kannel

目前我们使用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"

有关为什么会发生这种情况的任何想法,我们如何才能将短代码作为参数?

谢谢

1 个答案:

答案 0 :(得分:1)

检查Kannel源后发现问题。原来Kannel将读取一系列用于发送短信的配置,这些设置将在MO进入时替换目的地号码。我找到的设置是:

  
      
  1. 我的数
  2.   
  3. 全局发送器
  4.   
  5. 伪造发送器
  6.   

每个级别的设置都将覆盖前一个级别,即如果全部设置为3,则faked-sender将生效。通过评论上述3,我们可以从%P请求中的参数post-url获取正确的短代码值。

只是发布这个以防万一它会帮助某人。