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