Receiving SMS URC trouble Firmware version | Telit Cinterion IoT Developer Community
November 16, 2018 - 1:08pm, 4459 views
Hello,
I have trouble to receive SMS on one of my two EHS6 module. I used the same Java Midlets for both of my module you can find it here https://iot-developer.thalesgroup.com/tutorial/how-receive-sms-message .
For the module one all is working find, the JAVA API catch the urc and it’s written on the System.out Console.
The trouble appears on the second module with the same JAVA Midlets. The URC is not transmitted to the Java API and the Listener is never called.
The Autostart of the JRC is enabled of both of the module. Here are the following configurations of the two modules:
MODULE 1, the one which works:
AT^SJAM=5
16/11/2018 11:42:21.522 [RX] - AT^SJAM=5<CR>
<CR><LF>
^SJAM: "a:/JRC-1.56.40.jad","Java Remote Control MIDlet Suite","Cinterion","1.56.40",1<CR><LF>
^SJAM: "a:/TestSMS.jad","TestSMS MIDlet Suite","MIDlet Suite Vendor","1.0.0",0<CR><LF>
<CR><LF>
OK<CR><LF>
AT^SJAM=4
16/11/2018 11:41:41.449 [RX] - AT^SJAM=4<CR>
<CR><LF>
^SJAM: "a:/TestSMS.jad","TestSMS MIDlet Suite","MIDlet Suite Vendor","1.0.0",0,48055,0<CR><LF>
^SJAM: "a:/JRC-1.56.40.jad","Java Remote Control MIDlet Suite","Cinterion","1.56.40",1,753963,0<CR><LF>
<CR><LF>
OK<CR><LF>
ATI1
16/11/2018 11:42:47.979 [RX] - ATI1<CR>
<CR><LF>
Cinterion<CR><LF>
EHS6<CR><LF>
REVISION 03.001<CR><LF>
A-REVISION 00.000.31<CR><LF>
<CR><LF>
OK<CR><LF>
MODULE 2, the one which doesn’t works:
AT^SJAM=5
16/11/2018 11:33:00.370 [RX] - AT^SJAM=5<CR>
<CR><LF>
^SJAM: "a:/JRC-1.56.54.jad","Java Remote Control MIDlet Suite","Cinterion","1.56.54",1<CR><LF>
^SJAM: "a:/TestSMS.jad","TestSMS MIDlet Suite","MIDlet Suite Vendor","1.0.0",0<CR><LF>
<CR><LF>
OK<CR><LF>
AT^SJAM=4
16/11/2018 11:35:25.143 [RX] - AT^SJAM=4<CR>
<CR><LF>
^SJAM: "a:/TestSMS.jad","TestSMS MIDlet Suite","MIDlet Suite Vendor","1.0.0",0,48055,0<CR><LF>
^SJAM: "SLAE.jad","SL Agent Module Services","Gemalto M2M GmbH","2.1.1",0,422843,0<CR><LF>
^SJAM: "a:/JRC-1.56.54.jad","Java Remote Control MIDlet Suite","Cinterion","1.56.54",1,789491,0<CR><LF>
<CR><LF>
OK<CR><LF>
ATI1
16/11/2018 11:35:57.821 [RX] - ATI1<CR>
<CR><LF>
Cinterion<CR><LF>
EHS6<CR><LF>
REVISION 03.001<CR><LF>
A-REVISION 00.000.51<CR><LF>
<CR><LF>
OK<CR><LF>
I have read that a possible problem can be the JRC firmware version which is used to receive ATCommand URC. And in my case the version on each module is different!
Does someone know if the newest version JRC-1.56.54 has this kind of trouble?
Moreover one the module which doesn’t work there is the SLAE.jad file which is installed and I was wondering the use of this file?
Thanks for reading and have a nice day ! :)
Hello,
For each firmware version there is a dedicated JRC version. If incorrect JRC version is used there might be some incompatibility issues. However in your case there should not as you have probably not performed any firmware update.
In case of short messages in Java JRC must be working and the important thing is also 'at+cnmi=2,1' command which enables SMS notification URC's. These URC's can only come to one physical interface or virtual AT commands interpreter - so if you send it on some interface or ATCommand instance the URC's will be coming on this instance and will not on any other that might have been previously set.
SLAE is the preinstalled application that can be used to communicate the module with https://mods.gemalto.io platform. It's a special service for remote monitoring of the module's state, firmware or application update etc. By default it is not active.
I think that in your case the problem may be that SMS storage is full and that's why there are no URC's. Please check AT+CPMS? command.
Example:
at+cpms?
+CPMS: "SM",35,50,"SM",35,50,"SM",35,50
OK
In this case there are 35 messages in a storage that can fit maximum 50 messages.
If the storage is full you need to delete some messages one by one with AT+CMGD=<index> command.
Best regards,
Bartłomiej
Hello and thanks for your answer!
Actually I continue the project after someone else so I don’t know if a firmware update has been performed.
How can I know if my firmware version is going with the dedicate JRC version?
Moreover my SMS storage isn’t full:
19/11/2018 09:30:21.364 [RX] - AT+CPMS?<CR>
<CR><LF>
+CPMS: "SM",4,50,"SM",4,50,"SM",4,50<CR><LF>
<CR><LF>
OK<CR><LF>
And the CNMI command is set to 2,1. Here are the System.out stream :
TestSMS Constructor ...OK<CR><LF>
StartApp<CR><LF>
Module registered to the network<CR><LF>
at+cmgf=1<CR>
<CR><LF>
OK<CR><LF>
<CR><LF>
at+cnmi=2,1<CR>
<CR><LF>
OK<CR><LF>
Active SMS urc<CR><LF>
at+cnmi?<CR>
<CR><LF>
+CNMI: 2,1,0,0,0<CR><LF>
<CR><LF>
OK<CR><LF>
<CR><LF>
I don’t think the trouble is coming from my JAVA API as I use the same on two different modules and it works with one of them.
Thanks for your help and have a nice day!
Toum’s
Hello,
JRC-1.56.54 is the proper version for firmware A-REVISION 00.000.51.
Are the messages received by the module but there is no URC or are the messages not received at all?
If the messages are not received, please make sure that they are being sent to the right number. And please also check AT+CSMS? output.
You may also try to test with the other SIM card.
If the messages are coming but there's no URC please check AT^SRVCFG="SLAE","read","SensorLogic.config" output.
Regards,
Bartłomiej
Hello and thanks again for your answer !
There it's no URC, the messages are received (I can read them with the AT+CMGR command). I have already try with on other SIM card and had the same problem.
With the command you gave me I get :
19/11/2018 12:56:59.045 [TX] - AT^SRVCFG="SLAE","read","SensorLogic.config"<CR>
19/11/2018 12:57:00.745 [RX] - <CR><LF>
^SRVCFG: "SLAE","read","SL_PORTAL_PORT","17198"<CR><LF>
^SRVCFG: "SLAE","read","KEEP_ALIVE_RATE","120"<CR><LF>
^SRVCFG: "SLAE","read","CONNECTION_RATE_MIN","14400"<CR><LF>
^SRVCFG: "SLAE","read","OPERATING_MODE","POWER_SAVING"<CR><LF>
^SRVCFG: "SLAE","read","CONNECTION_RATE_***","14700"<CR><LF>
^SRVCFG: "SLAE","read","KEEP_ALIVE_TIMEOUT","10"<CR><LF>
^SRVCFG: "SLAE","read","DEVICE_ID"<CR><LF>
^SRVCFG: "SLAE","read","MESSAGE_BUFFER_SIZE","42"<CR><LF>
^SRVCFG: "SLAE","read","SL_PORTAL_TLS_CONNECTION","false"<CR><LF>
^SRVCFG: "SLAE","read","PERSISTENT_RETRIES_***","5"<CR><LF>
^SRVCFG: "SLAE","read","SEND_ENUMERATE","true"<CR><LF>
^SRVCFG: "SLAE","read","SMS_WAKEUP","false"<CR><LF>
^SRVCFG: "SLAE","read","SL_PORTAL_URL_BACKUP","dgw.sensorlogic.com"<CR><LF>
^SRVCFG: "SLAE","read","MESSAGE_BUFFER_HIGHER_WARNING_LEVEL","90"<CR><LF>
^SRVCFG: "SLAE","read","LOG_LEVEL","0"<CR><LF>
^SRVCFG: "SLAE","read","SL_PORTAL_URL","dgw.sensorlogic.com"<CR><LF>
^SRVCFG: "SLAE","read","PERSISTENT_RETRY_RATE","5"<CR><LF>
^SRVCFG: "SLAE","read","CONNECTION_RETRIES_***","5"<CR><LF>
^SRVCFG: "SLAE","read","SL_PORTAL_PORT_BACKUP","17198"<CR><LF>
^SRVCFG: "SLAE","read","MESSAGE_BUFFER_LOWER_WARNING_LEVEL","80"<CR><LF>
^SRVCFG: "SLAE","read","PERSISTENT_ALARMS","false"<CR><LF>
^SRVCFG: "SLAE","read","CONNECTION_RETRY_DELAY","30"<CR><LF>
^SRVCFG: "SLAE","read","POWER_SAVING_IDLE_TIMEOUT","60"<CR><LF>
^SRVCFG: "SLAE","read","CONNECTION_ALARM_DELAY_***","10"<CR><LF>
<CR><LF>
OK<CR><LF>
I can't find this command on the ATCommand documentation file, can you maybe tell me for what it is used ?
Regards,
Toum's
Could you check AT+CSMS? output also? It is possible that CSMS is set to 1 (Phase 2+) and then it is required to acknowledge each incoming message. If any message is not acknowledged with AT+CNMA command there are no further +CMT URC's sent by the module.
This AT^SRVCFG command reads one of the configuration files for SLAE application. It is possible that SLAE can also use incoming messages. In your case it's configured not to do that. Anyway the app is deactivated so this setting should not matter here. The question was just in case other hints would not help, to be even more sure that SLAE has nothing to do with it.
If AT+CSMS setting is not the case also please test this without Java MIDlet - just configure CNMI from any terminal and check if URC's are coming.
Regards,
Bartłomiej
Hello,
Here are the following answer to the different command :
19/11/2018 14:34:25.518 [RX] - AT+CSMS?<CR>
<CR><LF>
+CSMS: 0,1,1,1<CR><LF>
<CR><LF>
OK<CR><LF>
So the CSMS is configured in Phase 2 and that good I guess.
And for the second test, I put the channel in text Mode and I did as follow :
19/11/2018 14:31:34.978 [TX] - AT+CMGF=1<CR>
19/11/2018 14:31:35.011 [RX] - AT+CMGF=1<CR>
<CR><LF>
OK<CR><LF>
19/11/2018 14:32:31.467 [TX] - AT+CNMI=2,1<CR>
19/11/2018 14:32:31.502 [RX] - AT+CNMI=2,1<CR>
<CR><LF>
OK<CR><LF>
19/11/2018 14:32:35.619 [TX] - AT+CNMI?<CR>
19/11/2018 14:32:35.641 [RX] - AT+CNMI?<CR>
<CR><LF>
+CNMI: 2,1,0,0,0<CR><LF>
<CR><LF>
OK<CR><LF>
<CR><LF>
+CMTI: "SM",1<CR><LF>
I get the URC when I send a message. The problem appears only with the Java Midlet.
Moreover when I restart the modules the Java Midlet get the PBREADY urc
Regards,
Toum's
Hello,
The CSMS is configuration is fine (and it's the default setting).
If the messages are coming in both cases and +CMTI URC's are only not coming under Java for one of the firmware versions I suppose that there probably were some changes in Java libraries (located WTK folder) for the newer firmware. You may have WTK for the older firmware and it is working fine with A-REVISION 00.000.31 but it's not with A-REVISION 00.000.51.
I'd suggest to compile the application with the newer WTK and test again with A-REVISION 00.000.51 module.
If there isn't any purpose in using 2 firmware versions for development I'd suggest using the same firmware version and (dedicated Gemalto SDK) as it will be used for production devices. Currently the latest firmware for REVISION 03.001 modules is A-REVISION 00.000.55.
Best regards,
Bartłomiej
Hello,
The problem is solved ! I compile the application with the newer WTK and it works.
Thanks a lot for your help and your time !
Regards
Toum's