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 -~----------~----~----~----~------~----~------~--~---
