Just for completeness should someone ever come across the same problem ,
i've done a quick hack(!) to dlr_find in smsc_smpp.c to make it work ;

if (octstr_ncompare(smpp->conn->id,octstr_imm("<smsc>"),6) == 0) {
       warning(0,"smsc id changed");
       dlrmsg = dlr_find(octstr_imm("<smsc>"),
           tmp, /* smsc message id */
             pdu->u.deliver_sm.destination_addr, /* destination */
             dlrstat);}

         else {
         octstr_destroy(msgid);
              }

This in case you send out sms's via an smpp connection called <smsc>
and you receive the DLR's via an smpp connection called <smsc_rec>
(see previous posts)

Tom

> **>Date: Tue, 1 Feb 2005 16:57:11 +0100 (CET)
> **>Subject: Re: smpp DLR problem
> **>From: <[EMAIL PROTECTED]>
> **>To: <[email protected]>
> **>In-Reply-To: <[EMAIL PROTECTED]>
> **>
> **>Hello Dave,
> **>
> **>thanks for your answer,
> **>
> **>Here is a dump of the smpp transactions, hopefully this will shed
> some **>more light on what's going wrong ;
> **>I'm wondering, maybe kannel does not find the right DLR because the
> DLR **>for the message sent via <smsc> is returned to kannel via
> <smsc-rec> **>.....?
> **>Thx,
>
> That is exactly the reason.  Kannel's dlr_find() function uses
> the smsc-id, timestamp (message-id in the case of SMPP), destination
> address, and interested DLR type to query for info from the
> dlr_entry structure.
>
> Since the smsc-id's are different, Kannel could not find the dlr_entry.
>
> See ya...
>
> d.c.






Reply via email to