Hi Again,
Looking at: gw/smsc/smsc_smpp.c line 1494 or there abouts, it looks like
I am actually not geting the message_id in the submit_sm_responce, and
that is causing the problem.
2008-10-24 16:12:02 [31918] [20] DEBUG: SMPP PDU 0xa1811578 dump:
2008-10-24 16:12:02 [31918] [20] DEBUG: type_name: submit_sm_resp
2008-10-24 16:12:02 [31918] [20] DEBUG: command_id: 2147483652 =
0x80000004
2008-10-24 16:12:02 [31918] [20] DEBUG: command_status: 0 = 0x00000000
2008-10-24 16:12:02 [31918] [20] DEBUG: sequence_number: 32966 =
0x000080c6
2008-10-24 16:12:02 [31918] [20] DEBUG: message_id:
2008-10-24 16:12:02 [31918] [20] DEBUG: Octet string at 0xa1811048:
2008-10-24 16:12:02 [31918] [20] DEBUG: len: 29
2008-10-24 16:12:02 [31918] [20] DEBUG: size: 30
2008-10-24 16:12:02 [31918] [20] DEBUG: immutable: 0
2008-10-24 16:12:02 [31918] [20] DEBUG: data: 30 31 2f 30 30 2f 37
38 38 31 38 31 33 63 2f 31 01/00/7881813c/1
2008-10-24 16:12:02 [31918] [20] DEBUG: data: 31 33 30 36 39 34 34
37 39 36 30 31 39 1306944796019
2008-10-24 16:12:02 [31918] [20] DEBUG: Octet string dump ends.
2008-10-24 16:12:02 [31918] [20] DEBUG: SMPP PDU dump ends.
The code there:
/* check if msg_id is C string, decimal or hex for this
SMSC */
if (smpp->smpp_msg_id_type == -1) {
/* the default, C string */
tmp =
octstr_duplicate(pdu->u.submit_sm_resp.message_id);
} else {
if ((smpp->smpp_msg_id_type & 0x01) ||
(!octstr_check_range(pdu->u.submit_sm_resp.message_id, 0,
octstr_len(pdu->u.submit_sm_resp.message_id), gw_isdigit))) {
tmp = octstr_format("%lu", strtoll( /* hex */
octstr_get_cstr(pdu->u.submit_sm_resp.message_id), NULL, 16));
} else {
tmp = octstr_format("%lu", strtoll( /* decimal */
octstr_get_cstr(pdu->u.submit_sm_resp.message_id), NULL, 10));
}
}
/* SMSC ACK.. now we have the message id. */
if (DLR_IS_ENABLED_DEVICE(msg->sms.dlr_mask))
dlr_add(smpp->conn->id, tmp, msg);
octstr_destroy(tmp);
bb_smscconn_sent(smpp->conn, msg, NULL);
--(*pending_submits);
But how to get this.
Kyriacos
Kyriacos Sakkas wrote:
> Hi,
>
> Where/how is the "ts" field populated?
>
>
> from gw/dlr.c line 337
> dlr->timestamp = (ts ? octstr_duplicate(ts) : octstr_create(""));
>
>
>
> Kyriacos
>
>
> Kyriacos Sakkas wrote:
>
>> Hi,
>>
>> It looks like the Operator returns :
>>
>> 01/00/7881813c/1
>>
>> or similar and only the the first digit/s before the / are used by kannel.
>>
>> any comments ?
>>
>>
>> Kyriacos
>>
>>
>> Kyriacos Sakkas wrote:
>>
>>
>>> Kyriacos Sakkas wrote:
>>>
>>>
>>>
>>>> Hi,
>>>>
>>>> Lately I have been having a problem, where I receive a DLR but the DLR
>>>> URL might not be called for several hours. At some point the URL is
>>>> called but the delay can be very large, and appears to be random.
>>>>
>>>>
>>>> Kyriacos
>>>>
>>>>
>>>>
>>>>
>>>>
>>> It will seem that field ts in the DB gets set to 1 for multiple
>>> messages, and when latter the SELECT is run, it does not return a unique
>>> value:
>>>
>>> 2008-10-24 16:12:02 [31918] [20] DEBUG: SMPP[Vod54445]: Got PDU:
>>> 2008-10-24 16:12:02 [31918] [20] DEBUG: SMPP PDU 0xa1811578 dump:
>>> 2008-10-24 16:12:02 [31918] [20] DEBUG: type_name: submit_sm_resp
>>> 2008-10-24 16:12:02 [31918] [20] DEBUG: command_id: 2147483652 =
>>> 0x80000004
>>> 2008-10-24 16:12:02 [31918] [20] DEBUG: command_status: 0 = 0x00000000
>>> 2008-10-24 16:12:02 [31918] [20] DEBUG: sequence_number: 32966 =
>>> 0x000080c6
>>> 2008-10-24 16:12:02 [31918] [20] DEBUG: message_id:
>>> 2008-10-24 16:12:02 [31918] [20] DEBUG: Octet string at 0xa1811048:
>>> 2008-10-24 16:12:02 [31918] [20] DEBUG: len: 29
>>> 2008-10-24 16:12:02 [31918] [20] DEBUG: size: 30
>>> 2008-10-24 16:12:02 [31918] [20] DEBUG: immutable: 0
>>> 2008-10-24 16:12:02 [31918] [20] DEBUG: data: 30 31 2f 30 30 2f 37
>>> 38 38 31 38 31 33 63 2f 31 01/00/7881813c/1
>>> 2008-10-24 16:12:02 [31918] [20] DEBUG: data: 31 33 30 36 39 34 34
>>> 37 39 36 30 31 39 1306944796019
>>> 2008-10-24 16:12:02 [31918] [20] DEBUG: Octet string dump ends.
>>> 2008-10-24 16:12:02 [31918] [20] DEBUG: SMPP PDU dump ends.
>>> 2008-10-24 16:12:02 [31918] [20] DEBUG: DLR[mysql]: Adding DLR
>>> smsc=Vod54445, ts=1, src=54445, dst=306944796019, mask=31, boxc=smsc2
>>> 2008-10-24 16:12:02 [31918] [20] DEBUG: sql: INSERT INTO dlr (smsc, ts,
>>> source, destination, service, url, mask, boxc, status) VALUES
>>> ('Vod54445', '1', '54445
>>> ', '306944796019', 'Test Froup',
>>> 'http://10.10.3.21/GRMT/dlr.php?msgid=224012&smsc-id=%i&status=%d&answer=%A&to=%P&from=%p&ts=%t',
>>> '31', 'smsc2', '0');
>>>
>>>
>>>
>>>
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: SMPP[Vod54445]: Got PDU:
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: SMPP PDU 0xa1811900 dump:
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: type_name: deliver_sm
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: command_id: 5 = 0x00000005
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: command_status: 0 = 0x00000000
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: sequence_number: 1131 = 0x0000046b
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: service_type: NULL
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: source_addr_ton: 1 = 0x00000001
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: source_addr_npi: 1 = 0x00000001
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: source_addr: "306944796019"
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: dest_addr_ton: 3 = 0x00000003
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: dest_addr_npi: 9 = 0x00000009
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: destination_addr: "54445"
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: esm_class: 4 = 0x00000004
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: protocol_id: 0 = 0x00000000
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: priority_flag: 0 = 0x00000000
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: schedule_delivery_time: NULL
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: validity_period: NULL
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: registered_delivery: 0 =
>>> 0x00000000
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: replace_if_present_flag: 0 =
>>> 0x00000000
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: data_coding: 1 = 0x00000001
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: sm_default_msg_id: 0 = 0x00000000
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: sm_length: 100 = 0x00000064
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: short_message:
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: Octet string at 0xa1810a08:
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: len: 100
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: size: 101
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: immutable: 0
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: data: 69 64 3a 32 30 32 31
>>> 37 35 33 31 34 38 20 73 75 id:2021753148 su
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: data: 62 3a 30 30 31 20 64
>>> 6c 76 72 64 3a 30 30 31 20 b:001 dlvrd:001
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: data: 73 75 62 6d 69 74 20
>>> 64 61 74 65 3a 30 38 31 30 submit date:0810
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: data: 32 34 31 36 31 32 30
>>> 32 20 64 6f 6e 65 20 64 61 24161202 done da
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: data: 74 65 3a 30 38 31 30
>>> 32 34 31 36 31 32 31 34 20 te:081024161214
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: data: 73 74 61 74 3a 44 45
>>> 4c 49 56 52 44 20 65 72 72 stat:DELIVRD err
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: data: 3a 30 30
>>> 30 :000
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: Octet string dump ends.
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: message_state: 2 = 0x00000002
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: receipted_message_id:
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: Octet string at 0xa18113a0:
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: len: 29
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: size: 30
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: immutable: 0
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: data: 30 31 2f 30 30 2f 37
>>> 38 38 31 38 31 33 63 2f 31 01/00/7881813c/1
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: data: 31 33 30 36 39 34 34
>>> 37 39 36 30 31 39 1306944796019
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: Octet string dump ends.
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: SMPP PDU dump ends.
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: SMPP[Vod54445] handle_pdu, got DLR
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: DLR[mysql]: Looking for DLR
>>> smsc=Vod54445, ts=1, dst=306944796019, type=1
>>> 2008-10-24 16:12:14 [31918] [20] DEBUG: sql: SELECT mask, service, url,
>>> source, destination, boxc FROM dlr WHERE smsc='Vod54445' AND ts='1';
>>>
>>>
>>>
>>>
>>
>>
>
>
>
--
Kyriacos Sakkas
Development Team
Netsmart
Tel: + 357 22 452565
Fax: + 357 22 452566
Email: [EMAIL PROTECTED]
http://www.netsmart.com.cy
Taking Business to a New Level!
** Confidentiality Notice: The information contained in this email
message may be privileged, confidential and protected from disclosure.
If you are not the intended recipient, any dissemination, distribution,
or copying of this email message is strictly prohibited.
If you think that you have received this email message in error, please
email the sender at [EMAIL PROTECTED] **