Re: DLR with SMPP and CIMD2, Validity with CIMD2

Hervé Nicol <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Organization Nexo
Message-ID <1238578253.6645.28.camel@hnicol-desktop>
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é
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>
> >>>
> >>>
> >>
> >
> >
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.