Well, that's a pretty good test you've done. I'll also make a similar
test on my network and show you the result, but since you have
evidence that the CMMS does work, I will re-introduce the CMMS command
in the library.

Thanks :)

On Aug 21, 10:56 pm, Pietro <[email protected]> wrote:
> I did the modifications in SendMessages.java in this way:
>
>         double a = System.nanoTime();
>         for(int i=0; i<5; i++) {
>             gateway.getATHandler().sendCustomATCommand("AT+CMMS=1\r");
>             srv.sendMessage(msg);
>             //System.out.println(msg);
>         }
>         System.out.println(System.nanoTime() - a);
>
> put a loop over srv.sendMessages(msg). see the code. Ran commented the
> gateway.getAT....... and results was:
>
> 2.736E10
> and took 55 seconds to receive all 5 messages in destination phone.
>
> Executing without comment, that is, using the CMMS command, the
> results was:
>
> 4.024E10
> and took 1 minute and 4 seconds to receive all 5 messages. There was
> some problems. The messages:
>
> Aug 21, 2009 3:04:10 PM org.smslib.helper.Logger logWarn
> WARNING: GTW: modem.com1: CMS Error 500: Retrying...
> Aug 21, 2009 3:04:28 PM org.smslib.helper.Logger logWarn
> WARNING: GTW: modem.com1: CMS Error 500: Retrying...
>
> Appear while running.
>
> If I change the code to put the command out of the loop in this way:
>
>         double a = System.nanoTime();
>         gateway.getATHandler().sendCustomATCommand("AT+CMMS=1\r");
>         for(int i=0; i<5; i++) {
>             srv.sendMessage(msg);
>             //System.out.println(msg);
>         }
>         System.out.println(System.nanoTime() - a);
>
> The values are:
>
> 1.442E10
>
> and the same 55 seconds.
>
> CMMS command must be used once before send any messages, and
> improvement is 2x.
> The reception time doesn't change but maybe is because there are
> limitations in receiving the messages by 1 phone.
>
> Any comments?.
>
> BTW, values are in nanoseconds and think they are: 27, 40 and 14
> seconds
>
> Pietro
>
> On Aug 22, 1:55 pm, Pietro <[email protected]> wrote:
>
>
>
> > The textual explanation in the manual is:
>
> > "3GPP TS 27.005, Section 3.5.6 /3/. Controls the continuity of the SMS
> > relay protocol link. If enabled (and
> > supported by the network), several consecutive messages can be sent
> > much faster as the link is kept
> > open."
>
> > Inhttp://doc.trolltech.com/qtopia4.2/modememulator-shortmessageservice....,
> > you can see:
>
> > "AT+CMMS More Messages to Send
>
> > The AT+CMMS command can be used to inform the modem that several SMS
> > messages will be sent in quick succession, and the link should be held
> > open for more efficient transmission."
>
> > A more detailed description is 
> > in:http://www.18ic.com/htm/interface/2006-3/2/2006_03_02_1_4.html
>
> > Where appear:
>
> > "3.5.6 More Messages to Send +CMMS $(TEI R97)$
> > Parameter Command Syntax
> > Command Possible response(s)
> > +CMMS=[<n>]
> > +CMMS? +CMMS: <n>
> > +CMMS=? +CMMS: (list of supported <n>s)
> > Description
> > Set command controls the continuity of SMS relay protocol link. When
> > feature is enabled (and supported by network)
> > multiple messages can be sent much faster as link is kept open.
> > Test command returns supported values as a compound value.
> > Defined Values
> > <n>:
> > 0 disable
> > 1 keep enabled until the time between the response of the latest
> > message send command (+CMGS, +CMSS, etc.) and
> > the next send command exceeds 1-5 seconds (the exact value is up to ME
> > implementation), then ME shall close
> > the link and TA switches <n> automatically back to 0
> > 2 enable (if the time between the response of the latest message send
> > command and the next send command
> > exceeds 1-5 seconds (the exact value is up to ME implementation), ME
> > shall close the link but TA shall not
> > switch automatically back to <n>=0)
> > Implementation
> > Optional."
>
> >  How it really works is a matter of interpretation. Based in a second
> > explanation in trolltech site, I assume command must be invoked before
> > you send the first message send. But y saw examples using the command
> > after each send operation. One of these is 
> > in:http://discussion.forum.nokia.com/forum/showthread.php?t=38201, where
> > the use is AT+CMMS=2 to keep the connection after sending each
> > message, but I think the usage is wrong.
>
> > The third reference sounds much more technical to me, and think is the
> > valid approach. Maybe I can modify your SendMesage.java program to
> > test if with CMMS, the sending process is faster. In you case, maybe
> > the usage before or after each message was not propper or your network
> > does not support the CMMS and no benefit from them.
>
> > That is all i know at the moment. If I have some new discovering, I
> > will tell you.
>
> > Pietro
>
> > On Aug 22, 1:08 am, Thanasis <[email protected]> wrote:
>
> > > You are correct. The CMMS command is supposed to keep the GSM link
> > > open during message sending in order to speed up things (due to less
> > > handshake per message). SMSLib used to use the CMMS command but it was
> > > removed some versions ago. From personal experience, using Nokia and
> > > Wavecom devices, I haven't seen any performance gain by using the CMMS
> > > command. I don't know if my implementation was right or wrong, but I
> > > didn't notice any speed improvements...
>
> > > If you want to add the CMMS command again, then the sendMessage()
> > > method is the correct method to modify. This will not affect the
> > > background sending though...
>
> > > A question from me: do you know the "scope" of the CMMS command? I
> > > mean, once you issue CMMS=1 for how long or until what action is the
> > > command in effect?
>
> > > On Aug 21, 5:29 am, Pietro <[email protected]> wrote:
>
> > > > I put the request, but investigated some more. You can write the
> > > > message to phone and after send the fist time, can execute several AT
> > > > +CMSS commands changing the destination number, but in a Nokia forum
> > > > the experts says AT+CMMS=1 command is much better because the
> > > > connection doesn't close waiting for the next message.
>
> > > > With that information, I saw the smslib 3.4.1 code to find where you
> > > > send several messages at time. I found you do it in AGateway class,
> > > > but because is generic gateway and the change only works in the
> > > > subclass ModemGateway, I must override  the method sendMessages in
> > > > ModemGateway in order to put the AT+CMMS=1 if there are more than 1
> > > > output message pending, and set it to 0 before sending the last
> > > > message.
>
> > > > Not all modems / networks support that command, and I must to use try-
> > > > catch sequence. Am I correct?. I know 3.4.2 is the last stable
> > > > version, but can't change it right now.
>
> > > > Thanks in advance
>
> > > > Pietro
>
> > > > On Aug 21, 12:59 am, Thanasis <[email protected]> wrote:
>
> > > > > Hello,
>
> > > > > > I can send the same message to some group of phones (1 by 1), or 
> > > > > > send
> > > > > > to a group of phones (I think SMSlib support this feature directly),
> > > > > > but my question is: what way goes faster?. Someone did some test?.
>
> > > > > As far as the speed, its the same thing. So pick the one that suits
> > > > > your style :)
>
> > > > > > Can SMSserver support group sending?
>
> > > > > Not at the moment (I mean, not out of the box), but you can file your
> > > > > enhancement request here:http://code.google.com/p/smslib/issues/list
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"SMSLib User Group" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/smslib?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to