Hi Nikos,
I am totally confused with MySql DLR part. :-(
Please find the attached kannel configuration. if any mistake please
tell me what is wrong.
what is the use of *dlr-storage = internal ?*
what is the use of *dlr**-storage = mysql ?*
I am using dlr-storage = mysql
I have created mysql table as below but when i push messages delivery
report is not getting stored in the table.
CREATE TABLE* dlr* (
*smsc* varchar(40),
* ts* varchar(40),
*destination* varchar(40),
*source* varchar(40),
*service* varchar(40),
*url *varchar(255),
*mask* int(10),
*status* int(10),
*boxc* varchar(40)
)
for this
I added dlr configuration in kannel as below
#--- mysql connection
group = mysql-connection
id = mydlr
host = localhost
port = 3306
username = root
password = xxxxx
database = kannel
max-connections = 1
#---- DLR table structure
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
**
*
Warm Regards,
Kiran Reddy
*
Nikos Balkanas wrote:
Hi,
DLRs are biding proof of receipt of an SMS. It is generated from the
SIM of the destination phone and propagated throughout the chain to
reach you. That's what you need to bill your customer.
As Jovan mentioned, kannel can process DLRs in memory or using an
external DB. This is just for internal processing by kannel and are
deleted after SMS delivery or failure. External DB is slower, but
preserves DLRs during a server crash, and are necessary if you load
balance among various bearerboxes. DLRs are recorded permanenetly in
access logs. Kannel gives the option of an additional HTTP API to
store them permanently into an externally defined storage. That's what
dlr-url does for you. Upon receipt of a DLR kannel will call the
dlr-url if defined. Mind you it is your responsibility to provide the
external webserver and database for the storage.
You can define default dlr-url in group sendsms-user (read user
guide). Or you can give it directly in the push URL (must be urlencoded).
There are various types of DLRs you can request from the SMSc, i.e.
SMS buffered, SMS accepted by SMSc, etc. dlr-mask specifies which of
these reports you want. To get all use 63 - in latest CVS. You can
give dlr-mask only in the push url of each message. You should read
User's guide to learn about the different DLR types and how are
defined in dlr-mask.
Hope this helps,
Happy New Year,
Nikos
----- Original Message -----
*From:* naryam smith <mailto:naryam...@yahoo.com>
*To:* users@kannel.org <mailto:users@kannel.org>
*Sent:* Friday, January 01, 2010 12:48 AM
*Subject:* Re: MySql Script for kannel for storing response from SMPP
Hi
I have the same problem as Kiran. I do not understand where to set
the dlr-url and dlr-mask and what are the formats of these
parameters. I could not understand from the documentation.
Also, from Debian (without gnome/kde or similar how do I access a
URL such as:
>
http://192.168.1.93:13013/cgi-bin/sendsms?username=kiran&password=kiran&to=919036971573&text=This+is+testfor
<http://192.168.1.93:13013/cgi-bin/sendsms?username=kiran&password=kiran&to=919036971573&text=This+is+testfor>
> priority and message response&dlr-mask=31&priority=3
Where would you use such url?
Thanks,
Naryam
--- On *Wed, 12/30/09, Jovan Kostovski /<chomb...@gmail.com>/* wrote:
From: Jovan Kostovski <chomb...@gmail.com>
Subject: Re: MySql Script for kannel for storing response from
SMPP
To: "kiran.re...@mpowerglobal.in" <kiran.re...@mpowerglobal.in>
Cc: users@kannel.org
Date: Wednesday, December 30, 2009, 10:35 AM
On Wed, Dec 30, 2009 at 2:07 PM, kiran.re...@mpowerglobal.in
</mc/compose?to=kiran.re...@mpowerglobal.in>
<kiran.re...@mpowerglobal.in
</mc/compose?to=kiran.re...@mpowerglobal.in>> wrote:
> Hi Jovan,
>
> I created Mysql tables a below.And also can any one please
check my kannel
> configuration if any mistake is there please let me know
what is wrong. I
> want to test message priority and message response (dlr-mask).
The dlr table is a temporary table used by Kannel to store dlr
data
for the message for which it hasn't received delivery status.
If you want to check the DRL statuses, you should define
dlr-url and
dlr-mask for the messages that you are sending.
>
> Database name kannel:
>
> CREATE TABLE dlr (
> smsc varchar(40),
> ts varchar(40),
> destination varchar(40),
> source varchar(40),
> service varchar(40),
> url varchar(255),
> mask int(10),
> status int(10),
> boxc varchar(40)
> )
The correct configuration for the dlr table which you have
created is:
#---- DLR table structure
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
> Send SMS URL
>
>
http://192.168.1.93:13013/cgi-bin/sendsms?username=kiran&password=kiran&to=919036971573&text=This+is+testfor
<http://192.168.1.93:13013/cgi-bin/sendsms?username=kiran&password=kiran&to=919036971573&text=This+is+testfor>
> priority and message response&dlr-mask=31&priority=3
The dlr-url is missing in the request.
This url is called when kannel receives the message status.
Set the
parameters of the dlr-url which you are interested in
and set some messageid. Check the userguide for details ;)
BR, Jovan
Database name kannel:
CREATE DATABASE kannel;
USE DATABASE kannel;
CREATE TABLE dlr (
smsc varchar(40),
ts varchar(40),
destination varchar(40),
source varchar(40),
service varchar(40),
url varchar(255),
mask int(10),
status int(10),
boxc varchar(40)
)
My Kannel.conf
#------ Kannel Box Admin Conf
group = core
admin-port = 13000
smsbox-port = 13001
admin-password = xxxxx
dlr-storage = mysql
log-file = "/var/log/kannel/bearerbox.log"
store-file = "/var/log/kannel/kannel.store"
access-log = "/var/log/kannel/access.log"
log-level = 0
#--- mysql connection
group = mysql-connection
id = mydlr
host = localhost
port = 3306
username = root
password = xxxxx
database = kannel
max-connections = 1
#---- DLR table structure
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
#---- This is connection to smpp simulater
#group = smsc
#smsc = smpp
#smsc-id = testsmsc
#host = <a href="http://test.host.com" target="_blank">test.host.com</a>
#port = 2775
#receive-port = 2775
#smsc-username = 'smppclient'
#smsc-password = password
#system-type = 'VMA'
#service-type = 'test'
#interface-version = 34
#address-range = ''
#msg-id-type = 0
group = smsc
smsc = fake
smsc-id = test
port = 13005
allowed-prefix = 07
log-file = "/var/log/kannel/fake.log"
log-level = 0
#connect-allow-ip = 127.0.0.1
group = smsbox
bearerbox-host = localhost
sendsms-port = 13013
global-sender = xxxxx
mo-recode=true
log-file = "/var/log/kannel/smsbox.log"
log-level = 0
access-log = "/var/log/kannel/access.log"
group = sendsms-user
username = xxxxx
password = xxxxx
dlr-url = "http://someurl?"
default-smsc = test
concatenation= true
max-messages = 3
forced-smsc = "test"
# SMS SERVICE 'default'
group = sms-service
keyword = nop
text = "You asked nothing and I did it!"
catch-all = true # Catch all incoming messages
# regarding the keyword. If you
# define other services, remove
# this line.
# SMS SERVICE for receiving sms messages
# If you're about to implement service to receive sms messages.
# group = sms-service
# keyword = yourkeyword
# get-url = http://server.domain/moodle/receivesms.php?q=%k&sender=%p&message=%a
Send SMS URL
http://192.168.1.93:13013/cgi-bin/sendsms?username=xxxxx&password=xxxxx&to=919xxxxxxxxxx&text=This
Txt message&dlr-mask=31&priority=3