使用get-url sms-service kannel编码消息内容

时间:2015-11-02 16:19:05

标签: encoding kannel

我使用kannel通过smpp链接向移动运营商交换消息。 对于MO消息,我设置了一个kannel SMS-SERVICE并设置如下的get-url:

group = sms-service
keyword = default
get-url = "http://xx.xx.xx.xx:8080/mo-messages/get?coding=%c&charset=%C&from=%p&to=%P&content=%a"
concatenation = true
forced-smsc = telecom
catch-all = true
max-messages = 0

当我发送" UCS2"消息到我的短信用手机,kannel向我的获取网址发送一个请求,其中包含正确的编码文本:

sent text in mobile : سلام@
and url requested by kannel : 
http://xx.xx.xx.xx:8080/mo-messages/get?coding=0&charset=UTF-8&from=xxxx&to=xxxx&content=%D8%B3%D9%84%D8%A7%D9%85%40
this is correct encoded @ in content : %40

但是当我发送" GSM ascci 7bit"消息,@在文本中没有正确的url编码。如下所示:

sent text in mobile : Hello@
and url requested by kannel : 
http://xx.xx.xx.xx:8080/mo-messages/get?coding=0&charset=UTF-8&from=xxxx&to=xxxx&content=Hello%C2%A1 
this is incorrect url encoded @ in content : %C2%A1

我通过wireshark捕获所有要求的Kannel URL。 我不能将这个urlencoded字符串转换为@与任何字符集。 kannel MO-RECODE功能对此没有影响,我测试了真假MO-RECODE。

我在Kannel 1.5.0上测试了它,在Centos x64 6.7上测试了Kannel 1.4.4

我找不到任何解决办法。

三江源

0 个答案:

没有答案