Re: PATCH: addressing an issue in smsc_at that makes the modem stop reporting incoming SMSes
Alexander Malysh <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi,
patch is OK and I'm willing to apply it BUT: you totally screwed
indentation. Please use only spaces and not tabs. If you or any other fix
indentation I will apply this patch to CVS.
Thanks again for your patch.
Andrija Petrovic wrote:
> OK,
>
> here's the patch with original text. Once we fix this modem issue, I'll
> propose another patch that will speed up the process of reading SMSes
> from the memory (AT+CMGL instead of AT+CMGR).
> Anyhow, I'm eager to provide my help/collaboration to make smsc_at work
> in a stable manner.
>
> ================================================
>
> The main goal of the patch is to follow a simple rule:
> "If the modem reports an error during SMS sending, don't retry the
> sending, but ask it what it's got to say"
>
> So, any loops related to SMS sending are removed:
>
> 1. loop in at2_send_messages has been removed. Messages will be sent one
> by one from the at2_device_thread main loop - while(!privdata->shutdown)
> 2. loop in at2_send_one_message has been removed, so the single SMS
> sending either succeeds or fails
>
> Consequences of the patch:
>
> 1. the define RETRY_SEND has been renamed to RETRY_WRITE (because it is
> also used in writing a line to the modem), there is no RETRY_SEND any more
> 2. the user needs to rely upon the sms-resend-retry mechanism - this
> works fine AFAIK. E.g. put sms-resend-retry = 5 in the conf file.
> Without such a line, kannel will not try to resend the SMS
>
> Best regards,
> Andrija
>
> P.S.
>
> Long story short, the problem is in forcing the modem to send an SMS -
> even if it reports an error.
>
> In the official Kannel version, there is a RETRY_SEND (equal to 3, in
> smsc_at.h) define that defines how many times an SMS sending process
> needs to be retried. It's purpose is illogical - having a complete and
> logical sms-resend-retry mechanism built in the Kannel logic.
>
> In the official Kannel version, if the software receives an error
> response while trying to send the SMS, it simply tries again in a loop
> (3 times, due to the value of RETRY_SEND). Such a behavior confuses the
> GSM modem - on the first forcible SMS sending retry.
>
> If the software should report unsuccessful SMS sending through
> bb_smscconn_send_failed(privdata->conn, msg,
> SMSCCONN_FAILED_TEMPORARILY, octstr_create("ERROR"));
>
> and let the modem "relax" (by asking it if there are new incoming SMS
> messages pending) when it receives an error response from the modem, I
> have seen that Siemens modems (TC 45, MC 39i) would never expose the
> notorious issue.
>
> I have never encountered the issue in the last 15 months - since I
> altered the logic within smsc_at.c. With the RETRY_SEND mechanism, I
> have had the issue more than once daily (I operate the GSM modems in a
> rather intense SMS traffic).
>
> Hope this comment will lead to a usable official version of smsc_at.c in
> the future.
>
>
> ===========================================
>
> Hillel wrote:
>>
>> Hi,
>>
>>
>>
>> Andreas is keen to install it, but wants it to be re-sent.
>>
>>
>>
>> Please put in the subject the word PATCH as otherwise it's not clear
>> which mail is the patch.
>>
>>
>>
>> thanks
>>
>>
>>
>> *From:* Andreas Fink [mailto:[email protected]]
>> *Sent:* 19 September 2007 11:48 AM
>> *To:* Hillel
>> *Subject:* Re: Feature request/wish for Kannel
>>
>>
>>
>> ok so you want me to go through houndreds of mails to find the patch?
>>
>>
>>
>>
>>
>> On 19.09.2007, at 10:24, Hillel wrote:
>>
>>
>>
>> Hi Andreas,
>>
>>
>>
>> I think you should read what Andrija Petrovic wrote as it seems there are
>>
>> problems with both AT+CNMI operation and AT+CMGR.
>>
>>
>>
>> Both patches seem to have been submitted but never implemented.
>>
>>
>>
>> Rgds
>>
>>
>>
>> From: Andrija Petrovic [mailto:[email protected]]
>>
>> Sent: 19 September 2007 10:09 AM
>>
>> To: [email protected] <mailto:[email protected]>
>>
>> Subject: Re: Feature request/wish for Kannel
>>
>>
>>
>> Hi,
>>
>>
>>
>> I'd better not answer directly to your direct question. Direct answer is
>>
>> "this patch has nothing to do with SIM card being filled up, but applying
>>
>> this patch will stop the SIM card from being filled up" :).
>>
>>
>>
>> A complete answer should take into account the mode of operation of the
>> AT
>>
>> modem.
>>
>>
>>
>> 1. If the mode of operation is AT+CNMI (waiting for new message
>>
>> notifications), there is no reason why the modem should fill up the SIM
>>
>> card. Of course - with the current (unstable) version of smsc_at the SIM
>>
>> card used to fill up. Therefore, when I started working with Kannel, SIM
>>
>> overfilling was my primary concern. It turned out that once the modem
>>
>> started working correctly, with no "freezing" due to SMS send
>> misbehavior,
>>
>> the SIM card never received a single SMS. All SMSes were consumed by the
>>
>> AT+CNMI mechanism (through +CMT notifications). When I say "never", that
>>
>> means 15 months on 3-4 modems synchronously, receiving up to 940
>> SMSes/day,
>>
>> with peaks up to 30 SMSes/minute. (the figure of 30 SMSes/minute may be
>>
>> another topic for discussion, due to the hard limit of 10 SMSes/minute
>> for
>>
>> sending...)
>>
>>
>>
>> 2. If the mode of operation is AT+CMGR (reading the SMSes that reached
>> the
>>
>> SIM card), my actual patch did not address this problem. This part of
>>
>> smsc_at will be a matter of my next patch. Mr Andreas Fink did not take
>>
>> advantage of the AT+CMGL command (listing all the SMSes in the SIM card).
>>
>> That command speeds up the process of reading the SMSes from the SIM
>> card by
>>
>> at least an order of magnitude. In May of 2006 I submitted a rather large
>>
>> patch that solved this problem, but the patch never made it to
>> submission.
>>
>> So, if you ask me, do not use the sim-buffering option for now.
>>
>>
>>
>>
>>
>> Best regards,
>>
>> Andrija Petrovic
>>
>>
>>
>> P.S. Just as a curiosity - what do you use Kannel for? What is the
>>
>> exploitation scenario? Please, do not answer if it is a business secret
>> or
>>
>> any type of confidential information.
>>
>>
>>
>>
>>
>> Hillel wrote:
>>
>> Hi,
>>
>>
>>
>> Will your patch fix the problem with the SIM card filling up and not
>> being
>>
>> cleared out and so new SMSs not being able to come in?
>>
>>
>>
>> Thanks
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> Andreas Fink
>>
>>
>>
>> Fink Consulting GmbH
>>
>> Global Networks Schweiz AG
>>
>> BebbiCell AG
>>
>>
>>
>> ---------------------------------------------------------------
>>
>> Tel: +41-61-6666330 Fax: +41-61-6666331 Mobile: +41-79-2457333
>>
>> Address: Clarastrasse 3, 4058 Basel, Switzerland
>>
>> E-Mail: [email protected] <mailto:[email protected]>
>>
>> www.finkconsulting.com www.global-networks.ch www.bebbicell
>> <http://www.bebbicell>.ch
>>
>> ---------------------------------------------------------------
>>
>> ICQ: 8239353 MSN: [email protected] <mailto:[email protected]> AIM: smsrelay
>> Skype: andreasfink
>>
>> Yahoo: finkconsulting SMS: +41792457333
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
--
Thanks,
Alex