Thanks, Alex, for the clarification.

I didn't actually get to see the code you mentioned, just the defines in dlr.h. 
Being so close to the actual values, I assumed there was no outbound 
translation. I have some issues with some SMPP SMScs not sending DLRs when 
requesting dlr-mask 63 (3F). I will have to investigate further with the 
packets.

BR,
Nikos
  ----- Original Message ----- 
  From: Alejandro Guerrieri 
  To: Nikos Balkanas 
  Cc: [email protected] 
  Sent: Sunday, January 17, 2010 11:37 PM
  Subject: Re: DLRs &SMPP 5.0 compatibility


  I think you're misreading the code. The mask values are not passed to the 
SMPP driver as-is, but are just a way to tell the driver what to send/request. 
In this case, the 0x20 value means that kannel should ask for intermediate 
dlrs. This is not necessarily only for SMPP, other drivers might implement it 
as well, using their respective values.


  Check on gw/smsc/smsc_smpp.c, 16 (0x10) is used over the SMPP bind if the 
mask has 0x20 in it:


      if (DLR_IS_INTERMEDIATE(msg->sms.dlr_mask))
          pdu->u.submit_sm.registered_delivery += 16;


  Kannel's dlr-mask values doesn't necessarily match the values being sent over 
the wire. In fact, values may differ from driver to driver, so even if it could 
match for SMPP, might not for other drivers anyway.


  Regards,


  Alex


  2010/1/15 Nikos Balkanas <[email protected]>

    Hi,

    There seems to be an incompatibility between kannel's DLR implementation 
and SMPP 5.0 spec. For example in the spec, Intermediate DLRs are defined as 
0x10 (p 130), whereas in kannel Intermediate DLRs have the value 0x20, and so 
forth. Why this discrepancy? Some SMScs claim that it is out of spec to use 
dlr-mask 63 and don't send DLRs in such cases.

    BR,
    Nikos

Reply via email to