Реализация отчета о доставке в Каннель

Я настроил Kannel в Ubuntu Server 14.04.3 LTS. Сейчас я могу отправить сообщения, но мне еще предстоит выяснить, как реализовать отчет о доставке. Для этого у меня есть следующая конфигурация kannel, где я определил тип хранилища и группу соединений mysql и свойства соединения с mysql.

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? Это сделано каналом, или мы должны сделать это через скрипт?

Я попытался передать dlr-mask и dlr-url в URL-адрес sendms, но ничего не произошло.

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

Прежде всего, я не понимаю, как «Я бы«сообщения обрабатывается. Насколько я понимаю, kannel должен вставлять каждую информацию об отправке в базу данных, а затем статус сообщения должен возвращаться в соответствии с идентификатором в базе данных. Но в таблице нет такого поля как Я бы.

Я застрял на пару дней с этой проблемой, поскольку у Руководства пользователя нет исчерпывающих указаний, и на форумах kannel нет хороших тем по этому вопросу. Просьба сообщить мне подробную процедуру реализации отчета о доставке.

2

Решение

Вы должны написать свой собственный скрипт (dlr.php) для обработки ответа DLR и сохранить статус, об идентификаторе, который вы можете сгенерировать, используя метку времени или автоинкремент.
Наконец ваш запрос на отправку смс должен выглядеть примерно так

 $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);

С уважением
Горки

0

Другие решения

Самый стабильный способ получить и сохранить отчеты DLR и MO, MT в базу данных — это использовать дополнительный модуль дополнения под названием SQLBOX. Вы также можете отправить SMS, вставив его в таблицу SQLBOX. Вы можете найти исходный код в дополнении. каталог под основным проектом kannel

0

По вопросам рекламы [email protected]