首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Kannel执行交付报告

在Kannel执行交付报告
EN

Stack Overflow用户
提问于 2015-08-14 13:01:23
回答 2查看 4.2K关注 0票数 2

我已经在UbuntuServer14.04.3LTS中配置了Kannel。我现在能够传递信息,但我还没有弄清楚如何实现交付报告。为此,我有以下kannel配置,其中定义了存储类型和mysql连接组以及mysql的连接属性。

代码语言:javascript
复制
include = "/etc/kannel/modems.conf"

group = core
admin-port = 13000
smsbox-port = 13001
admin-password = 12345
admin-deny-ip = “*.*.*.*”
admin-allow-ip = “127.0.0.1″
box-deny-ip = “*.*.*.*”
box-allow-ip = “127.0.0.1″
log-file = /var/log/kannel/bearerbox.log
log-level = 0
dlr-storage = mysql

group = smsc
smsc = at
smsc-id = GSM
my-number = xxxxxxxxxxxx
modemtype = auto
device = /dev/ttyUSB0

group = smsbox
bearerbox-host = 127.0.0.1
sendsms-port = 13013
global-sender =13013
log-file = /var/log/kannel/smsbox.log
log-level = 0

group = smsbox-route
smsbox-id = smsbox
smsc-id = GSM

group = sendsms-user
username = user
password = user
concatenation= true
max-messages = 10
user-deny-ip = “*.*.*.*”
user-allow-ip = “127.0.0.1;”
dlr-url = "http://127.0.0.1/dlr.php"

group = sms-service
keyword = default
catch-all = yes
accepted-smsc = usb1-modem
max-messages = 0
get-url = http://localhost/sms?phone=%p&text=%a

group = mysql-connection
id = mydlr
host = localhost
port = 3306
username = root
password = 00000
database = dlr
max-connections = 1

group = dlr-db
id = mydlr
table = dlr
field-smsc = smsc
field-timestamp = ts
field-destination = destination
field-source = source
field-service = service
field-url = url
field-mask = mask
field-status = status
field-boxc-id = boxc

现在我的问题是:

  1. 如何写入数据库表dlr?这是由kannel完成的还是我们必须通过脚本完成的?

我试着在sendsms url中传递dlr-掩码和dlr-url,但是什么也没发生。

代码语言:javascript
复制
http://127.0.0.1:13013/cgi-bin/sendsms?username=user&password=user&to=xxxxxxxx&text=hello&dlr-mask=31&dlr-url=http%3A%2F%2F127.0.0.1%2Fdlr.php%3FmyId%3D123456%26type%3D%25d

最重要的是,我不明白如何处理消息的"id“。根据我的理解,我认为kannel应该将每个发送信息插入数据库,然后根据数据库中的id返回消息的状态。但是在表中没有像id这样的字段。

我在这个问题上被困了几天,因为用户指南没有详尽的说明,kannel论坛在这方面也没有任何好的线索。请以详细的程序指导我执行交货报告。

EN

回答 2

Stack Overflow用户

发布于 2016-04-14 05:26:07

您必须编写自己的脚本(dlr.php)来处理DLR回答并保存状态,关于您可以使用时间戳或自动增量生成它的id。最后,您的发送sms请求应该如下所示

代码语言:javascript
复制
 $dlrURL="http://www.xxxxx.com:/dlr.php?dlr=%d&answer=%A&to=%p&ts=%T&smsID=$yourOwnID";

    /* Build Kannel Request */
    $request  = "http://localhost:13013/cgi-bin/sendsms?";
    $request .= "smsc="      ."smppgw1";
    $request .= "&username=" ."someuser";
    $request .= "&password=" ."somepass";
    $request .= "&from="     .$fromNumber;
    $request .= "&to="       .trim($somenumber);
    $request .= "&text="     .urlencode($in_msg);
    $request .= "&dlr-mask=31&dlr-url="     .urlencode($dlrURL);

看待GOrki

票数 0
EN

Stack Overflow用户

发布于 2018-06-25 05:32:48

获取和存储DLR reorts和MO、MT报表到数据库的最稳定的方法是使用一个名为SQLBOX的附加addon框,也可以通过将它插入SMS box发送短消息,table.You可以在kannel主项目下的addon目录中找到源代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32010774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档