Hi,
This is a well-known limitation of certain non-SMPP SMScs. DLR mechanism is
common for all. SMPP SMScs provide unique ID/SMSc in ts, which never
faulters. However, some of them do not provide a destination.
Sometime ago a patch was submitted to include destination number in dlr
matching. Current matching uses only ts and smsc-id. Patch was never
commited due to previous clash.
Solution would be:
1) Make dlrs match with destination configurable per smsc.
2) Make more intelligent logic, that uses destination if available, else
matches as it does now (preferable).
I can look into (2) as soon as I have some free time.
BR,
Nikos
----- Original Message -----
From: Konstantin Vayner
To: Kannel Users
Sent: Monday, June 14, 2010 11:04 AM
Subject: DLR matches wrong message
Hi everyone,
I'm using emi/ucp smsc under kannel 1.4.3. Here's smsc group configuration
(sensitive information masked):
group = smscΒ
smsc = emi
smsc-id = ucp_smsc
log-file = "/var/log/kannel/ucp_smsc.log"
log-level = 0
host = 1.2.3.4
port = 1234
smsc-username = "678"
smsc-password = XYZPWZYX
keepalive = 50
idle-timeout = 60
source-addr-autodetect = yes
allowed-smsc-id = ucp_smsc
flow-control = 1
throughput = 8
The problem is: messages sent on same timestamp mix up in DLRs even though
they are sent to different destinations. E.g. sending to X and Y at the same
time makes kannel send both DLRs to a dlr-url supplied for X.
Here's the log:
2010-06-13 11:15:33 [8444] [16] DEBUG: EMI2[ucp_smsc]: emi2 parsing packet:
< 04/00043/R/51/A//0541234567:130610111626/43 >
2010-06-13 11:15:33 [8444] [16] DEBUG: DLR[internal]: Adding DLR
smsc=ucp_smsc, ts=130610111626, src=031111111, dst=0541234567, mask=31,
boxc=
2010-06-13 11:15:33 [8444] [16] DEBUG: SMSC[ucp_smsc]: creating DLR message
2010-06-13 11:15:33 [8444] [16] DEBUG: SMSC[ucp_smsc]: DLR =
http://127.0.0.1/imsc/interfaces/kannel_http/dlr.php?msg_id=32490951&dlr=%d&reason=%A
2010-06-13 11:15:33 [8444] [16] DEBUG: EMI2[ucp_smsc]: Got packet from the
main socket
2010-06-13 11:15:33 [8444] [16] DEBUG: EMI2[ucp_smsc]: emi2 parsing packet:
<
73/00239/O/53/678/0541234567/////////////130610111626/1/107/130610111626/3//4D65737361676520666F7220303534343937363830352C2077697468206964656E74696669636174696F6E2031303036313331313136323620686173206265656E206275666665726564/////////////F4
>
2010-06-13 11:15:33 [8444] [16] DEBUG: DLR[internal]: Looking for DLR
smsc=ucp_smsc, ts=130610111626, dst=0541234567, type=4
2010-06-13 11:15:33 [8444] [16] DEBUG: DLR[internal]: created DLR message
for URL
<http://127.0.0.1/imsc/interfaces/kannel_http/dlr.php?msg_id=32490951&dlr=%d&reason=%A>
2010-06-13 11:15:33 [8444] [16] DEBUG: DLR[internal]: DLR not destroyed,
still waiting for other delivery report
2010-06-13 11:15:33 [8444] [16] DEBUG: EMI2[ucp_smsc]: emi2 sending packet:
< 73/00020/R/53/A///A0 >
2010-06-13 11:15:33 [8444] [16] DEBUG: EMI2[ucp_smsc]: emi2 sending packet:
<
05/00376/O/51/0549988770/036532407//1//7///////1306102100//////4/1072/005400530054002D0042005A003A000A05D905EA05E805EA002005E405D905E705D305D505E005D505EA000A05D105E105DA000A0032002C003400330036002C003000350036002E00320032002005E905D7000A00310033002F00300036002000310031003A00310033002000680074007400700073003A002F002F007700770077002E0070////1//////0106050003030201020108///3F
>
2010-06-13 11:15:33 [8444] [16] DEBUG: EMI2[ucp_smsc]: Got packet from the
main socket
2010-06-13 11:15:33 [8444] [16] DEBUG: EMI2[ucp_smsc]: emi2 parsing packet:
< 05/00043/R/51/A//0549988770:130610111626/46 >
2010-06-13 11:15:33 [8444] [16] DEBUG: DLR[internal]: Adding DLR
smsc=ucp_smsc, ts=130610111626, src=032222222, dst=0549988770, mask=31,
boxc=
2010-06-13 11:15:33 [8444] [16] DEBUG: EMI2[ucp_smsc]: emi2 sending packet:
<
06/00182/O/51/0549988770/036532407///////////1306102100//////4/0304/006100790070006F0061006C0069006D002E0063006F002E0069006C002F00620061006E006B////1//////0106050003030202020108///B4
>
2010-06-13 11:15:33 [8444] [16] DEBUG: EMI2[ucp_smsc]: Got packet from the
main socket
2010-06-13 11:15:33 [8444] [16] DEBUG: EMI2[ucp_smsc]: emi2 parsing packet:
< 06/00043/R/51/A//0549988770:130610111627/48 >
2010-06-13 11:15:33 [8444] [16] DEBUG: SMSC[ucp_smsc]: creating DLR message
2010-06-13 11:15:33 [8444] [16] DEBUG: SMSC[ucp_smsc]: DLR =
http://127.0.0.1/imsc/interfaces/kannel_http/dlr.php?msg_id=32490499&dlr=%d&reason=%A
**this one is still correct**
... and then, a few seconds later ...
2010-06-13 11:15:46 [8444] [16] DEBUG: EMI2[ucp_smsc]: emi2 parsing packet:
<
89/00295/O/53/678/0549988770/////////////130610111626/0/000/130610111638/3//4D65737361676520666F7220303534343937333538352C2077697468206964656E74696669636174696F6E2031303036313331313136323620686173206265656E2064656C697665726564206F6E20323031302D30362D31332061742031313A31363A33382E/////////////A0
>
2010-06-13 11:15:46 [8444] [16] DEBUG: DLR[internal]: Looking for DLR
smsc=ucp_smsc, ts=130610111626, dst=0549988770, type=1
2010-06-13 11:15:46 [8444] [16] DEBUG: DLR[internal]: created DLR message
for URL
<http://127.0.0.1/imsc/interfaces/kannel_http/dlr.php?msg_id=32490951&dlr=%d&reason=%A>
**this one went out to a dlr-url of wrong message**