Re: PATCH: addressing an issue in smsc_at that makes the modem stop reporting incoming SMSes

Andrija Petrovic <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <[email protected]>
I am sorry for messing up with the tabs-spaces issue.
The file should be correct now.

 From Andreas Fink I have learned that there are problems in reading the 
patch when I attach it as an ASCII file. So, I'm sending it gzipped.

Best regards,
Andrija

Alexander Malysh wrote:
> 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
>>>
>>>  
>>>
>>>  
>>>
>>>  
>>>
>>>  
>>>
>>>  
>>>
>>>       
>
>
smsc_at.diff.gz (application/gzip, 2.6 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.