Hi,
it works!
Quite like before (parsing the old way), with one more debug line:
"SMPP[wams]: Partial SMPP v3.4, receipted_message_id present but not
message_state."
Thanks a lot.
Here is the debug log, in case you want to verify it is as you expected:
2009-04-01 09:21:31 [6724] [6] DEBUG: Optional parameter tag (0x0423)
2009-04-01 09:21:31 [6724] [6] DEBUG: Optional parameter length read as 3
2009-04-01 09:21:31 [6724] [6] DEBUG: Optional parameter tag (0x001e)
2009-04-01 09:21:31 [6724] [6] DEBUG: Optional parameter length read as 24
2009-04-01 09:21:31 [6724] [6] DEBUG: SMPP[wams]: Got PDU:
2009-04-01 09:21:31 [6724] [6] DEBUG: SMPP PDU 0x945b340 dump:
2009-04-01 09:21:31 [6724] [6] DEBUG: type_name: deliver_sm
2009-04-01 09:21:31 [6724] [6] DEBUG: command_id: 5 = 0x00000005
2009-04-01 09:21:31 [6724] [6] DEBUG: command_status: 0 = 0x00000000
2009-04-01 09:21:31 [6724] [6] DEBUG: sequence_number: 2 = 0x00000002
2009-04-01 09:21:31 [6724] [6] DEBUG: service_type: NULL
2009-04-01 09:21:31 [6724] [6] DEBUG: source_addr_ton: 0 = 0x00000000
2009-04-01 09:21:31 [6724] [6] DEBUG: source_addr_npi: 0 = 0x00000000
2009-04-01 09:21:31 [6724] [6] DEBUG: source_addr: "orig_phone"
2009-04-01 09:21:31 [6724] [6] DEBUG: dest_addr_ton: 0 = 0x00000000
2009-04-01 09:21:31 [6724] [6] DEBUG: dest_addr_npi: 0 = 0x00000000
2009-04-01 09:21:31 [6724] [6] DEBUG: destination_addr: "dest_phone"
2009-04-01 09:21:31 [6724] [6] DEBUG: esm_class: 4 = 0x00000004
2009-04-01 09:21:31 [6724] [6] DEBUG: protocol_id: 0 = 0x00000000
2009-04-01 09:21:31 [6724] [6] DEBUG: priority_flag: 0 = 0x00000000
2009-04-01 09:21:31 [6724] [6] DEBUG: schedule_delivery_time: NULL
2009-04-01 09:21:31 [6724] [6] DEBUG: validity_period: NULL
2009-04-01 09:21:31 [6724] [6] DEBUG: registered_delivery: 0 = 0x00000000
2009-04-01 09:21:31 [6724] [6] DEBUG: replace_if_present_flag: 0 = 0x00000000
2009-04-01 09:21:31 [6724] [6] DEBUG: data_coding: 0 = 0x00000000
2009-04-01 09:21:31 [6724] [6] DEBUG: sm_default_msg_id: 0 = 0x00000000
2009-04-01 09:21:31 [6724] [6] DEBUG: sm_length: 92 = 0x0000005c
2009-04-01 09:21:31 [6724] [6] DEBUG: short_message:
2009-04-01 09:21:31 [6724] [6] DEBUG: Octet string at 0x9459168:
2009-04-01 09:21:31 [6724] [6] DEBUG: len: 92
2009-04-01 09:21:31 [6724] [6] DEBUG: size: 93
2009-04-01 09:21:31 [6724] [6] DEBUG: immutable: 0
2009-04-01 09:21:31 [6724] [6] DEBUG: data: 69 64 3a 30 39 30 34 30 31 31
31 32 31 32 36 33 id:0904011121263
2009-04-01 09:21:31 [6724] [6] DEBUG: data: 33 36 30 38 32 35 39 35 30 36
20 73 75 62 6d 69 3608259506 submi
2009-04-01 09:21:31 [6724] [6] DEBUG: data: 74 20 64 61 74 65 3a 30 39 30
34 30 31 31 31 32 t date:090401112
2009-04-01 09:21:31 [6724] [6] DEBUG: data: 31 20 64 6f 6e 65 20 64 61 74
65 3a 30 39 30 34 1 done date:0904
2009-04-01 09:21:31 [6724] [6] DEBUG: data: 30 31 31 31 32 31 20 73 74 61
74 3a 44 45 4c 49 011121 stat:DELI
2009-04-01 09:21:31 [6724] [6] DEBUG: data: 56 52 44 20 65 72 72 3a 30 30
30 20 VRD err:000
2009-04-01 09:21:31 [6724] [6] DEBUG: Octet string dump ends.
2009-04-01 09:21:31 [6724] [6] DEBUG: network_error_code:
2009-04-01 09:21:31 [6724] [6] DEBUG: Octet string at 0x9459180:
2009-04-01 09:21:31 [6724] [6] DEBUG: len: 3
2009-04-01 09:21:31 [6724] [6] DEBUG: size: 4
2009-04-01 09:21:31 [6724] [6] DEBUG: immutable: 0
2009-04-01 09:21:31 [6724] [6] DEBUG: data: 03 00 00
...
2009-04-01 09:21:31 [6724] [6] DEBUG: Octet string dump ends.
2009-04-01 09:21:31 [6724] [6] DEBUG: receipted_message_id:
2009-04-01 09:21:31 [6724] [6] DEBUG: Octet string at 0x9454290:
2009-04-01 09:21:31 [6724] [6] DEBUG: len: 23
2009-04-01 09:21:31 [6724] [6] DEBUG: size: 24
2009-04-01 09:21:31 [6724] [6] DEBUG: immutable: 0
2009-04-01 09:21:31 [6724] [6] DEBUG: data: 30 39 30 34 30 31 31 31 32 31
32 36 33 33 36 30 0904011121263360
2009-04-01 09:21:31 [6724] [6] DEBUG: data: 38 32 35 39 35 30 36
8259506
2009-04-01 09:21:31 [6724] [6] DEBUG: Octet string dump ends.
2009-04-01 09:21:31 [6724] [6] DEBUG: SMPP PDU dump ends.
2009-04-01 09:21:31 [6724] [6] DEBUG: SMPP[wams] handle_pdu, got DLR
2009-04-01 09:21:31 [6724] [6] DEBUG: SMPP[wams]: Partial SMPP v3.4,
receipted_message_id present but not message_state.
2009-04-01 09:21:31 [6724] [6] DEBUG: SMPP[wams]: Couldnot parse DLR string
sscanf way,fallback to old way. Please report!
If you want me to do some specific tests, feel free to ask.
-
Hervé Nicol
Le mercredi 01 avril 2009 à 10:44 +0200, Alexander Malysh a écrit :
> Hi,
>
> please try current CVS, it should be fixed now.
>
> Thanks,
> Alex
>
> Am 01.04.2009 um 10:04 schrieb Hervé Nicol:
>
> >
> > Hello,
> >
> > I don't know much about TLVs, but from my understanding these are
> > optional parameters.
> > So, if I follow you, in this example kannel receives some
> > (network_error_code and receipted_message_id), but it's not enough for
> > determining the status.
> > If ever it does not receive any TLV, Kannel will parse the SMS for the
> > status, which will actually work.
> >
> > So, maybe a fallback to SMS parsing when TLV analysis fails would be a
> > workaround?
> >
> > Thanks for your interest.
> >
> > -
> > Hervé
> >
> >
> >
> > Le mardi 31 mars 2009 à 19:11 +0200, Alexander Malysh a écrit :
> >> Hi,
> >>
> >> seems your SMSC operator put only partial TLVs for DLRs.
> >> This is easy to fix... I will look into it...
> >>
> >> Am 31.03.2009 um 16:35 schrieb Hervé Nicol:
> >>
> >>>
> >>> Of course,
> >>>
> >>> here is a "DELIVRD" DLR PDU as shown in bearerbox.log :
> >>>
> >>> 2009-03-31 14:22:22.662338 [11214] [6] DEBUG: Optional parameter tag
> >>> (0x0423)
> >>> 2009-03-31 14:22:22.662377 [11214] [6] DEBUG: Optional parameter
> >>> length read as 3
> >>> 2009-03-31 14:22:22.662400 [11214] [6] DEBUG: Optional parameter tag
> >>> (0x001e)
> >>> 2009-03-31 14:22:22.662409 [11214] [6] DEBUG: Optional parameter
> >>> length read as 24
> >>> 2009-03-31 14:22:22.662419 [11214] [6] DEBUG: SMPP[wams]: Got PDU:
> >>> 2009-03-31 14:22:22.662429 [11214] [6] DEBUG: SMPP PDU 0x8ebf158
> >>> dump:
> >>> 2009-03-31 14:22:22.662437 [11214] [6] DEBUG: type_name:
> >>> deliver_sm
> >>> 2009-03-31 14:22:22.662445 [11214] [6] DEBUG: command_id: 5 =
> >>> 0x00000005
> >>> 2009-03-31 14:22:22.662453 [11214] [6] DEBUG: command_status: 0 =
> >>> 0x00000000
> >>> 2009-03-31 14:22:22.662461 [11214] [6] DEBUG: sequence_number: 2 =
> >>> 0x00000002
> >>> 2009-03-31 14:22:22.662469 [11214] [6] DEBUG: service_type: NULL
> >>> 2009-03-31 14:22:22.662477 [11214] [6] DEBUG: source_addr_ton: 0 =
> >>> 0x00000000
> >>> 2009-03-31 14:22:22.662484 [11214] [6] DEBUG: source_addr_npi: 0 =
> >>> 0x00000000
> >>> 2009-03-31 14:22:22.662492 [11214] [6] DEBUG: source_addr:
> >>> "dest_phone"
> >>> 2009-03-31 14:22:22.662500 [11214] [6] DEBUG: dest_addr_ton: 0 =
> >>> 0x00000000
> >>> 2009-03-31 14:22:22.662508 [11214] [6] DEBUG: dest_addr_npi: 0 =
> >>> 0x00000000
> >>> 2009-03-31 14:22:22.662516 [11214] [6] DEBUG: destination_addr:
> >>> "origin_phone"
> >>> 2009-03-31 14:22:22.662523 [11214] [6] DEBUG: esm_class: 4 =
> >>> 0x00000004
> >>> 2009-03-31 14:22:22.662536 [11214] [6] DEBUG: protocol_id: 0 =
> >>> 0x00000000
> >>> 2009-03-31 14:22:22.662548 [11214] [6] DEBUG: priority_flag: 0 =
> >>> 0x00000000
> >>> 2009-03-31 14:22:22.662555 [11214] [6] DEBUG:
> >>> schedule_delivery_time: NULL
> >>> 2009-03-31 14:22:22.662563 [11214] [6] DEBUG: validity_period:
> >>> NULL
> >>> 2009-03-31 14:22:22.662570 [11214] [6] DEBUG: registered_delivery:
> >>> 0 = 0x00000000
> >>> 2009-03-31 14:22:22.662596 [11214] [6] DEBUG:
> >>> replace_if_present_flag: 0 = 0x00000000
> >>> 2009-03-31 14:22:22.662604 [11214] [6] DEBUG: data_coding: 0 =
> >>> 0x00000000
> >>> 2009-03-31 14:22:22.662612 [11214] [6] DEBUG: sm_default_msg_id: 0
> >>> = 0x00000000
> >>> 2009-03-31 14:22:22.662620 [11214] [6] DEBUG: sm_length: 92 =
> >>> 0x0000005c
> >>> 2009-03-31 14:22:22.662627 [11214] [6] DEBUG: short_message:
> >>> 2009-03-31 14:22:22.662636 [11214] [6] DEBUG: Octet string at
> >>> 0x8ec28c0:
> >>> 2009-03-31 14:22:22.662644 [11214] [6] DEBUG: len: 92
> >>> 2009-03-31 14:22:22.662651 [11214] [6] DEBUG: size: 93
> >>> 2009-03-31 14:22:22.662659 [11214] [6] DEBUG: immutable: 0
> >>> 2009-03-31 14:22:22.662671 [11214] [6] DEBUG: data: 69 64 3a 30
> >>> 39 30 33 33 31 31 36 32 32 31 37 33 id:0903311622173
> >>> 2009-03-31 14:22:22.662682 [11214] [6] DEBUG: data: 33 36 30 38
> >>> 32 35 39 35 30 36 20 73 75 62 6d 69 3608259506 submi
> >>> 2009-03-31 14:22:22.662694 [11214] [6] DEBUG: data: 74 20 64 61
> >>> 74 65 3a 30 39 30 33 33 31 31 36 32 t date:090331162
> >>> 2009-03-31 14:22:22.662705 [11214] [6] DEBUG: data: 32 20 64 6f
> >>> 6e 65 20 64 61 74 65 3a 30 39 30 33 2 done date:0903
> >>> 2009-03-31 14:22:22.662717 [11214] [6] DEBUG: data: 33 31 31 36
> >>> 32 32 20 73 74 61 74 3a 44 45 4c 49 311622 stat:DELI
> >>> 2009-03-31 14:22:22.662727 [11214] [6] DEBUG: data: 56 52 44 20
> >>> 65 72 72 3a 30 30 30 20 VRD err:000
> >>> 2009-03-31 14:22:22.662735 [11214] [6] DEBUG: Octet string dump
> >>> ends.
> >>> 2009-03-31 14:22:22.662743 [11214] [6] DEBUG: network_error_code:
> >>> 2009-03-31 14:22:22.662751 [11214] [6] DEBUG: Octet string at
> >>> 0x8ec1858:
> >>> 2009-03-31 14:22:22.662758 [11214] [6] DEBUG: len: 3
> >>> 2009-03-31 14:22:22.662766 [11214] [6] DEBUG: size: 4
> >>> 2009-03-31 14:22:22.662773 [11214] [6] DEBUG: immutable: 0
> >>> 2009-03-31 14:22:22.662782 [11214] [6] DEBUG: data: 03 00
> >>> 00 ...
> >>> 2009-03-31 14:22:22.662790 [11214] [6] DEBUG: Octet string dump
> >>> ends.
> >>> 2009-03-31 14:22:22.662797 [11214] [6] DEBUG:
> >>> receipted_message_id:
> >>> 2009-03-31 14:22:22.662805 [11214] [6] DEBUG: Octet string at
> >>> 0x8ebf3c8:
> >>> 2009-03-31 14:22:22.662812 [11214] [6] DEBUG: len: 23
> >>> 2009-03-31 14:22:22.662820 [11214] [6] DEBUG: size: 24
> >>> 2009-03-31 14:22:22.662827 [11214] [6] DEBUG: immutable: 0
> >>> 2009-03-31 14:22:22.662838 [11214] [6] DEBUG: data: 30 39 30 33
> >>> 33 31 31 36 32 32 31 37 33 33 36 30 0903311622173360
> >>> 2009-03-31 14:22:22.662848 [11214] [6] DEBUG: data: 38 32 35 39
> >>> 35 30 36 8259506
> >>> 2009-03-31 14:22:22.662855 [11214] [6] DEBUG: Octet string dump
> >>> ends.
> >>> 2009-03-31 14:22:22.662863 [11214] [6] DEBUG: SMPP PDU dump ends.
> >>> 2009-03-31 14:22:22.662871 [11214] [6] DEBUG: SMPP[wams] handle_pdu,
> >>> got DLR
> >>> 2009-03-31 14:22:22.662879 [11214] [6] WARNING: SMPP[wams]: Got DLR
> >>> with unknown 'message_state' (-1).
> >>>
> >>>
> >>> Is this the kind of information you meant?
> >>>
> >>>
> >>> Regards,
> >>> --
> >>> Hervé
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> Le mardi 31 mars 2009 à 09:08 -0500, Alvaro Cornejo a écrit :
> >>>> Before diving into generate code, can you provide more info on
> >>>> "dlr
> >>>> does not work with SMPP" ??
> >>>>
> >>>> It might just be a parameter that needs to be adjusted.
> >>>>
> >>>> Alvaro
> >>>>
> >>>> |
> >>>> -----------------------------------------------------------------------------------------------------------------|
> >>>> Envíe y Reciba Datos y mensajes de Texto (SMS) hacia y desde
> >>>> cualquier
> >>>> celular y Nextel
> >>>> en el Perú, México y en mas de 180 paises. Use aplicaciones 2 vias
> >>>> via
> >>>> SMS y GPRS online
> >>>> Visitenos en www.perusms.NET www.smsglobal.com.mx y
> >>>> www.pravcom.com
> >>>>
> >>>>
> >>>>
> >>>> On Tue, Mar 31, 2009 at 8:39 AM, Hervé Nicol
> >>>> <[email protected]> wrote:
> >>>>>
> >>>>> Hello,
> >>>>>
> >>>>>
> >>>>> As I can see in the feature checklist
> >>>>> (
> >>>>> http://kannel.org/download/1.4.3/userguide-1.4.3/userguide.html#AEN2386
> >>>>> ), it seems that the DLR was not tested with CIMD2 nor with SMPP
> >>>>> protocols.
> >>>>>
> >>>>> I am glad to inform you that I was successfully receiving DLRs
> >>>>> with SMPP
> >>>>> until my SMS provider recently changed his SMSC.
> >>>>> As I was using Kannel 1.4.1, I tried 1.4.3 but behaves exactly the
> >>>>> same.
> >>>>>
> >>>>> I don't have a clear vision of my provider's architecture and
> >>>>> software,
> >>>>> so I can't say more than:
> >>>>> SMPP DLR works on some platforms, but not on all.
> >>>>>
> >>>>>
> >>>>> Currently my aim is to fix things as quickly as possible, so I
> >>>>> won't
> >>>>> investigate on why SMPP DLR won't work with the new config.
> >>>>> I tested a CIMD2 connexion, and DLR works nice. So I will go for
> >>>>> it as a
> >>>>> first step.
> >>>>> I just have one remark on these DLR: it seems that DLR_BUFFERED
> >>>>> status
> >>>>> is not supported with CIMD2.
> >>>>>
> >>>>> However, I wish I could retreive CIMD2 "062:" value as well as
> >>>>> "061:" in
> >>>>> %A dlr report. That should be the next step. But if one of you
> >>>>> have an
> >>>>> advice on this, I'd be happy to hear it.
> >>>>>
> >>>>>
> >>>>> Then, one more feature that I tested is the SMS validity.
> >>>>> It didn't work with SMPP on 1.4.1 but we had a hmoe-made patch.
> >>>>> But with CIMD2 it seems to work well.
> >>>>>
> >>>>>
> >>>>> Thank you for reading,
> >>>>> --
> >>>>> Hervé
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>
> >>>
> >>>
> >>
> >
> >
>