BGS5T - Cannot manage CSD incoming call from Java Midlet | Thales IoT Developer Community
January 16, 2015 - 1:28pm, 3505 views
Hello,
I am porting a java Midlet from TC65T to BGS5T, and I have a problem with CSD incoming calls.
Our Midlet manages incoming CSD calls with a class called CSDListener that implements ATCommandListener, where we implemented, among others, this method:
public void RINGChanged(boolean arg0) {
if (arg0 == true) {
String response;
response = atc.execCommandCSD("ATA");
...
}
}
Then we register CSDListener with ATCommand.addListener() this way:
...
commandCSD = new ATCommand(true);
csdListener = new CSDListener();
commandCSD.addListener(csdListener);
...
But when I start a CSD connection from a TC65T to the BGS5T, this method is never called, no way to catch the incoming call.
The SIM cards we are using are enabled for CSD connections. Indeed, if I substitute the BGS5T with a TC65T with the same SIM card and the same software the CSD call works very well.
I tried to call the BGS5T without the midlet running, and I saw the RINGs arriving on the serial interface, so the module effectively can receive the call.
I tried to check the at^scfg configuration about 'Ringline' parameters but I noticed something strange:
The At command documentation (bgs5_atc_ext.pdf) show these commands among others:
^SCFG: "URC/Ringline", (list of supported <urcRinglineCfg>s)
^SCFG: "URC/Ringline/ActiveTime", (list of supported <urcRinglineDuration>s)
But they are not present in my BGS5T when I type at^scfg?, they are not known by the module.
May someone help me, please?
Thank you very much!
We are using these settings:
ati
Cinterion
BGS5
REVISION 01.100
ats0?
000
at&v
ACTIVE PROFILE:
E1 Q0 V1 X0 &C1 &D65535 &S0 \Q3
S0:000 S3:013 S4:010 S5:008 S6:000 S7:060 S8:000 S10:002
+CBST: 71,0,1
+CRLP: 61,61,78,6
+CR: 0
+CRC: 0
+CMGF: 0
+CNMI: 1,0,0,0,0
+CMEE: 0
+CSMS: 0,1,1,1
+CREG: 0,1
+CLIP: 0,2
+COPS: 0,0,"I TIM",0
+CGSMS: 1
at^scfg?
^SCFG: "Call/ECC","0"
^SCFG: "Gpio/****/ASC1","std"
^SCFG: "Gpio/****/DAI","gpio"
^SCFG: "Gpio/****/DCD0","std"
^SCFG: "Gpio/****/DSR0","std"
^SCFG: "Gpio/****/DTR0","std"
^SCFG: "Gpio/****/FSR","gpio"
^SCFG: "Gpio/****/PULSE","gpio"
^SCFG: "Gpio/****/PWM","gpio"
^SCFG: "Gpio/****/RING0","std"
^SCFG: "Gpio/****/SPI","rsv"
^SCFG: "Gpio/****/SYNC","std"
^SCFG: "GPRS/AutoAttach","enabled"
^SCFG: "Ident/Manufacturer","Cinterion"
^SCFG: "Ident/Product","BGS5"
^SCFG: "MEopMode/SoR","on"
^SCFG: "MEShutdown/Fso","0"
^SCFG: "Radio/OutputPowerReduction","4"
^SCFG: "Serial/Interface/Allocation","1","1"
^SCFG: "Serial/USB/DDD","0","0","0409","1E2D","0059","Cinterion Wireless Modules","Cinterion BGx USB Com Port",""
^SCFG: "Tcp/IRT","3"
^SCFG: "Tcp/MR","10"
^SCFG: "Tcp/OT","6000"
^SCFG: "Tcp/WithURCs","on"
^SCFG: "Trace/Syslog/Otap","0"
^SCFG: "Userware/Autostart","0"
^SCFG: "Userware/Autostart/Delay","5"
^SCFG: "Userware/Passwd",
^SCFG: "Userware/Stdout","null",,,,"off"
^SCFG: "Userware/Watchdog","0"
^SCFG: "Radio/Band","15"
Hello Nicola,
Please enable autostart first:
AT^SCFG="Userware/Autostart","","1"
It should be enabled because there is a factory MIDlet on the module which implements some of the functionalities and it will not start automatically if this is disabled. This may be the reason of your problems.
Please check also ATI1 command - it gives more detailed information than ATI.
According to answering calls you can also catch the "RING" URC using the ATEvent(String Event) callback method instead of RINGChanged(boolean SignalState).
Regards,
Bartek
Hello Bartek,
thank you very much for the reply.
I tried the two solutions you proposed, but unfortunately nothing seems to change.
In my midlet I put a write log inside the two callbacks RINGChanged() and ATEvent() of ATCommandListener, just to check if they are called on an incoming csd call. I enabled autostart and I installed my midlet in autostart ****, then I restarted the device and I called the module and checked the logs, but nothing happened.
I also checked ati1:
ati1
Cinterion
BGS5
REVISION 01.100
A-REVISION 00.000.02
OK
At this purpose, are there any new available releases of BGS5 firmware newer than mine?
Thank you very much for your attention
Regards
Nicola
Hello Nicola,
It seems that you have the latest firmware.
It's very strange that you are not catching any URC's.
Please check if the factory JRC MIDlet is running on your module. The response should be like below:
at^sjam=5
^SJAM: "a:/JRC-1.50.1.jad","Java Remote Control MIDlet Suite","Cinterion","1.50.1","1"
OK
If JRC is OK I'd check if the application is able to catch any other URC. For example issue the command at+cops=2 on start and check it the listener is able to catch the +COPS URC when the module registers to the network.
If the JRC MIDlet is not running (maybe it's been uninstalled) you may not receive URC's in MIDlet. If this is the case you will need to install it or do firmware update which should also install the JRC.
Best regards,
Bartek
Hello Bartek,
I am sorry for the delay in replying.
My BGS5 module don't have the factory jrc midlet, this is the problem, as you suggested. It is been uninstalled in some way. I tried with another module, where the midlet is present, and everything is working fine.
Thank you very much for your support!
Nicola