Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have configured kannel with smsc. The problem is I get delivery reports for some messages and for some others I get:

ERROR: SMPP[XXX]: got DLR but could not find message or was not interested in it id<2691146294> dst<98XXXXXXXXXX>, type<1>

here is my configuration:

group = core
admin-port = 13000
admin-password = 123456
status-password = 654321
admin-deny-ip = "*.*.*.*"
admin-allow-ip = ""
smsbox-port = 13001
box-deny-ip = "*.*.*.*"
box-allow-ip = ""
log-file = "/var/log/kannel/bearerbox.log"
log-level = 1
store-type = spool
store-location = "/var/lib/kannel"
store-dump-freq = 60
sms-incoming-queue-limit = 10000000
sms-outgoing-queue-limit = 10000000
sms-resend-freq = 10
sms-resend-retry = -1
access-log = "/var/log/kannel/bearerbox-access.log"

group = smsc
smsc = smpp
smsc-id = my-smsc
port = 5019
receive-port = 5019
system-type = VMA
smsc-username = XXX
smsc-password = XXX
throughput = 1
reconnect-delay = 10
msg-id-type = 0x01

group = smsbox
smsbox-id = my-smsbox
bearerbox-host =
sendsms-port = 13013
log-file = "/var/log/kannel/smsbox.log"
log-level = 1

group = smsbox-route
smsbox-id = my-smsbox
smsc-id = my-smsc

group = sendsms-user
username = username
password = password
concatenation = true
max-messages = 100

I'm sending each message with dlr-mask set to 3 and dlr-url like this:"

id is message id in database. can anyone help?

share|improve this question


"I am not a Kannel Guru, but I've seen it many times, could happen due to at least 4 reasons:

(1) You sent a message through a different connection with different SMSC ID, the callback DLR won't get a match e.g. The transmit connection uses a different SMSC ID than the receiver connection, because kannel matches the SMSC ID, too !!

(2) You sent a message without asking for DLR e.g. dlr_mask = 0, kannel then won't store a reference for the sent message. But the carrier sent you a DLR !! this case may happen because some carriers send you a DLR even if you don't ask for it.

(3) When you send a concatenated MT, kannel keeps a reference for the first part only and ignores the other parts, but some operators send you the DLRs for all the parts, the other parts won't find a match.

(4) This case is the most critical, some carriers send you the DLR before sending the ACK ! the DLR won't get a match because kannel didn't save the message reference yet ! it waits for the submit_sm_resp (ACK,NACK,...) before storing the reference in the store, Alex had a fix for this but it has performance penalties."

Well, i hope this help you :)

share|improve this answer

You kannel might not be able to process the dlr, as it might be busy. You can use mysql database for dlr storage, none of your dlr's get lost. refer

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.