Hi, Have you read my response? Please read and reread until you understand. I cannot explain it any more clear.
BR, Nikos ----- Original Message ----- From: [email protected] To: Nikos Balkanas Cc: [email protected] Sent: Friday, January 01, 2010 1:49 PM Subject: Re: MySql Script for kannel for storing response from SMPP 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 To: [email protected] 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 > priority and message response&dlr-mask=31&priority=3 Where would you use such url? Thanks, Naryam --- On Wed, 12/30/09, Jovan Kostovski <[email protected]> wrote: From: Jovan Kostovski <[email protected]> Subject: Re: MySql Script for kannel for storing response from SMPP To: "[email protected]" <[email protected]> Cc: [email protected] Date: Wednesday, December 30, 2009, 10:35 AM On Wed, Dec 30, 2009 at 2:07 PM, [email protected] <[email protected]> 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 > 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
