Hi,

just found a typo in my patch and changed it to:

            msg_escaped = msg_duplicate(msg);
            /* convert validity & deferred to minutes */
            if (msg_escaped->sms.validity != SMS_PARAM_UNDEFINED)
                msg_escaped->sms.validity = (msg_escaped->sms.validity - 
time(NULL))/60;
            if (msg_escaped->sms.deferred != SMS_PARAM_UNDEFINED)
                msg_escaped->sms.deferred = (msg_escaped->sms.deferred - 
time(NULL))/60;
            gw_sql_save_msg(msg_escaped, octstr_imm("MT"));

This should fix this issue.

Alex

Am 18.02.2013 um 09:57 schrieb Rene Kluwen <[email protected]>:

> In sqlbox, two different things happen.
>  
> 1.       Select rows from send_sms and send them to bearerbox (with validity 
> in minutes)
> 2.       Relay rows from smsbox to bearerbox and store them in sent_sms on 
> the fly. These messages have been processed by smsbox already and should not 
> be reprocessed.
>  
> I am not sure what exactly you did because I don’t have time to look at the 
> code now. But something is going very wrong here. Even without using sqlbox 
> we are getting invalid validity_period fields in smsc_smpp.
>  
> On a side note, I see now that opensmppbox never sends a validity field to 
> its connected entity, now I look at it. But that’s a different story.
>  
> == Rene
>  
> From: Alexander Malysh [mailto:[email protected]] On Behalf Of Alexander 
> Malysh
> Sent: maandag 18 februari 2013 9:29
> To: Rene Kluwen
> Cc: [email protected]
> Subject: Re: Validity perdiod
>  
> Hi Rene,
>  
> I converted validity & deferred to be unix timestamp internally, they were in 
> minutes before.
> Due to the fact that I didn't know how sqlbox works, I assumed that validity 
> & deferred in the
> sqlbox tables also stored in minutes therefore this conversion:
>             if validity set then (now - unix timestamp) / 60 -> minutes
>  
> the counter part is when selecting values from DB and sending to bearerbox:
>  
>             /* convert validity and deferred to unix timestamp */
>             if (msg->sms.validity != SMS_PARAM_UNDEFINED)
>                 msg->sms.validity = time(NULL) + msg->sms.validity * 60;
>             if (msg->sms.deferred != SMS_PARAM_UNDEFINED)
>                 msg->sms.deferred = time(NULL) + msg->sms.deferred * 60;
>  
> Alex
>  
> Am 16.02.2013 um 15:36 schrieb Rene Kluwen <[email protected]>:
> 
> 
> Also: in sqlbox.c (function smsbox_to_bearerbox()):
>  
>                /* convert validity & deferred to minutes */
>                 if (msg->sms.validity != SMS_PARAM_UNDEFINED)
>                     msg->sms.validity = (msg->sms.validity - time(NULL))/60;
>                 if (msg->sms.deferred != SMS_PARAM_UNDEFINED)
>                     msg->sms.deferred = (msg->sms.deferred - time(NULL))/60;
>  
> Isn’t this field encoded twice now? Once in smsbox and another time in sqlbox?
>  
> Alexander, you made this change. Please shed some light.
>  
> From: [email protected] [mailto:[email protected]] On Behalf Of 
> Rene Kluwen
> Sent: vrijdag 15 februari 2013 15:16
> To: [email protected]
> Subject: Validity perdiod
>  
> I came across an issue since svn version 4956 of smsbox.c, using smpp.
>  
> The logs show the following:
>  
> 2013-02-15 14:52:45 [3144] [7] DEBUG:   validity_period: "711110215159000+"
>  
> This was this afternoon at 14:52. The validity field of the sendsms interface 
> was not set.
>  
> How do I interpret this as “YYMMDDhhmmsstnnp”?
>  
> One of my clients needed to downgrade because of this issue.
>  
> == Rene

Reply via email to