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
