Openvox G410E+SIMCOM5215E Modem Crashes/Unreliable PS data

Openvox G410E + SIMCOM 5215E Modem Crashes/Unreliable (PS data problem)

Hi

Summary

I’m experiencing problems commissioning an Openvox G410e card (WCDMA voice and data card with asterisk dahdi/chan_extra integration) for operation in the UK. I see huge potential for this card as it makes asterisk mobile. However, I’m stuck. Can anyone help with the following problems/issues:

  1. Modem Crash/Unreliable PS Data Connection?
  2. Are there any G410E + SIMCOM 5215E Users With A Working System (Voice and Data)?
  3. Can anyone provide pointers on how I might fix this myself?

There a very few posts relating to this product and details are very sparce. The asterisk voice integration works OK but I’m frustrated to find I cant get PPP data to work. I’ve contacted Openvox & distributor who say they dont have the software resources to fix this problem at this time, and are offering a refund. I would very much like to get data to work, feel that its probably a small bug in chan_extra and that someone somewhere holds the key. I would very much appreciate any help on this. I’m prepared to buy you a card if you have the mojo to fix ppp data.

Details

Setup details:

Openvox card: card g410e with SIMCOM_SIM5215E module.
Host OS: Centos 5.6 with kernel and kernel-devel applied (as per manual instructions) to use kernel: 2.6.18-348.18.1.el5
kernel: 2.6.18-348.18.1.el5
chan_extra tarball used: chan-extra_2.0.7.tar.gz
dahdi-linux-complete version: dahdi-linux-complete-2.7.0.1+2.7.0.1.tar.gz
asterisk version: asterisk-1.8.23.1
Geographical: UK
SIM: T-Mobile/Virgin unlimited package (this sim has been tested and found working without problems with other modems)

=======================================================
Problem 1: Modem Crash/Unreliable PS Data Connection

I’ve been in contact with Openvox and they have reported that this is a known problem, have tested it on Elastix 2.4, found that it doesnt work and suspect its a chan_extra bug. However they say they dont have resources to fix it at this time, and wont give me a timescale for a fix. The following describes the details of the problem.

The ppp0 netdevice can be instantiated following the instructions in chan_extra-2.0.5 User Manual.pdf. Ping -I ppp0 google.com (after adding the allocated DNS server to resolv.conf by hand) initially receives ~20-30 responses. The ping runs for some time and then stops. minicom is then unable to establish communication with /dev/ttyGSM0 (whereas it could when prior to establishing the PS connection). It appears that the modem has crashed and needs to be power cycled to recover. This can be done by either a) restarting the machine or b) using the asterisk CLI gsm commands to power reset the modem, as described in the following:

After the problem arises, running asterisk and then performing a gsm show spans reports the following:

*CLI> gsm show spans

[0;37mGSM span 1: Power off, Provisioned, Down, Active, Multiplexer

The modem can be recovered using the following procedure:

*CLI> gsm power reset 1
*CLI> gsm power on 1
*CLI> gsm show spans

e[0;37mGSM span 1: Power on, Provisioned, Up, Active, Multiplexer

Details of driver build:

This is the procedure I used to build and install the card:

  • The G410E_User_Manual.pdf v2.2 says that Centos 5.6 is supported, so I started with Centos 5.6.
  • I followed the instructions in the manual which says to

    yum install kernel kernel-devel

  • this results in the kernel version being moved to 2.6.18-348.18.1.el5.
  • I used chan-extra_2.0.7.tar.gz because I want /dev/ttyGSM0 access so that I can establish a pppX interface for packet data.
  • I tried using dahdi-linux-complete-2.3.0.1+2.3.0 but this didnt work. asterisk reported the interface to be:

*CLI> gsm show spans
GSM span 1: Provisioned, Down, Active
*CLI>

  • I gave up using dahdi-linux-complete-2.3.0.1+2.3.0 and moved to a later version.
  • I tried using dahdi-linux-complete-2.7.0.1+2.7.0.0 and I managed to get this to work but I had to apply this patch:

bbs.openvox.cn/redirect.php?tid= … o=lastpost

4663
#elif (ASTERISK_VERSION_NUM >= 10820)
ast_devstate_changed_literal(ast_state_chan2dev(state), AST_DEVSTATE_NOT_CACHABLE, tmp->name);

6274
#elif (ASTERISK_VERSION_NUM >= 10820)
ast_devstate_changed_literal(ast_state_chan2dev(state), AST_DEVSTATE_NOT_CACHABLE, chn->name);

  • and I also had to install several gtk patches to get it to build.
  • using asterisk-1.8.23.1 I could get the card detected correctly:

*CLI> gsm show spans
GSM span 1: Power on, Provisioned, Up, Active, Multiplexer
*CLI>

  • and minicom can be used to establish a voice call (I couldnt test the media using this method):

OK
+CSQ: 4,99
+CSQ: 8,99
AT S7=45 S0=0 L1 V1 X4 &c1 E1 Q0
OK
at+cops?
+COPS: 0,0,“T-Mobile UK”,2
OK
atd ;
OK
+STIN: 21
VOICE CALL: BEGIN
ath
VOICE CALL: END: 000020
OK

  • The attached file (see at the end of this post) contains the terminal log from invoking the ./ppp-on script (which has been edited to use /dev/ttyGSM0, the device instantiated by the installation/detection process). The ppp session was terminated after ~(Connect time 9.4 minutes.) by using CTRL-C because (as mentioned above) the ping was failing to receive responses. However, when the script ppp-on was re-invoked, the connection could not be re-established again. minicom could not establish a terminal session with /dev/ttyGSM0, and the gsm power reset procedure described above had to be used to recover the modem.

======================================================
2. Are there any G410E + SIMCOM 5215E Users With A Working System (Voice and Data)?

It would be helpful to know:

  • What country/countries and mobile operator networks the G410e/SIMCOM_SIM5215E has demonstrated successful interoperability? If the product is known to work with Vodafone Italy then this would suggest it should work with Vodafone UK, for example.
  • what versions of the host OS/packages were used to build a working installation?
  1. Can anyone provide pointers on how I might fix this myself?
    ======================================================
    I would very much like to use my G410e with SIMCOM 5125e module for packet data with PPP. However, as described in Problem 1 in the email below I find that it doesnt work on Centos 5.6. Openvox have said they tested it on Elastix 2.4 and found that it also doesnt work. Can you help me fix it? I have linux kernel device drivers experience but little asterisk development.

Here are my questions:

  • which open source reference points did openvox use to implement chan_extra-2.0.7/src/opvxg4xx/base.c? base.c use the tty interface to mux/demux PPP hdlc tx/rx frames onto their modem. Does anyone know a similar kernel driver which muxes PPP frames using the same methodology but that works?
  • Has anyone ever seen Openvox G400/G410 PPP packet data working? If yes, what are the versions of OS/kernel/dahdi-linux-complete/chan-extra/asterisk that you used? I can then build this version and see if I can get it to work.
  • where should I look to find the problem? Any ideas what the problem might be? Perhaps issuing a bad command to the modem? Or a problem with locking?
  • do you have any pointers to documentation that explains how the dahdi/opvxg4xx interface works?
  • do you have any pointers to documentation that explains how the opnvxg4xx/tty interface works?

I would very much appreciate anyone contributing information to help resolve the problems.
Thanks for your help in advance.

Best Regards,
BR

===============================================
file mentioned above is pasted below for reference:

[root@tn1_pc2 ppp]# ./ppp-on
timeout set to 5 seconds
abort on (\nBUSY\r)
abort on (\nERROR\r)
abort on (\nNO ANSWER\r)
abort on (\nNO CARRIER\r)
abort on (\nNO DIALTONE\r)
timeout set to 2 seconds
send (AT^M)
timeout set to 2 seconds
expect (OK)

^M
OKOK
– got it

send (ATE0V1^M)
timeout set to 2 seconds
expect (OK)

^M

^M
OKOK
– got it

send (AT^M)
timeout set to 2 seconds
expect (OK)

^M

^M
OKOK
– got it

send (AT+CGDCONT=1,“IP”,“CMNET”^M)
timeout set to 2 seconds
expect (OK)

^M

^M
OKOK
– got it

send (ATS0=0^M)
timeout set to 2 seconds
expect (OK)

^M

^M
OKOK
– got it

send (AT^M)
timeout set to 2 seconds
expect (OK)

^M

^M
OKOK
– got it

send (ATE0V1^M)
timeout set to 5 seconds
expect (OK)

^M

^M
OKOK
– got it

send (AT^M)
timeout set to 5 seconds
expect (OK)

^M

^M
OKOK
– got it

send (AT+CGDCONT=1,“IP”,“CMNET”^M)
timeout set to 5 seconds
expect (OK)

^M

^M
OKOK
– got it

send (ATDT99#^M)
timeout set to 10 seconds
Waiting for connect…
expect (CONNECT)

^M

^M
CONNECTCONNECT
– got it

send (^M)
Connect Success!

Serial connection established.
Using interface ppp0
Connect: ppp0 <–> /dev/ttyGSM0
Could not determine remote IP address: defaulting to 10.64.64.64
local IP address 10.168.121.192
remote IP address 10.64.64.64
primary DNS address 149.254.230.7
secondary DNS address 149.254.199.126
Terminating on signal 2
Connect time 9.4 minutes.
Sent 40484 bytes, received 8117 bytes.
Connection terminated.
Modem hangup
[root@tn1_pc2 ppp]#
[root@tn1_pc2 ppp]# ./ppp-on
timeout set to 5 seconds
abort on (\nBUSY\r)
abort on (\nERROR\r)
abort on (\nNO ANSWER\r)
abort on (\nNO CARRIER\r)
abort on (\nNO DIALTONE\r)
timeout set to 2 seconds
send (AT^M)
timeout set to 2 seconds
expect (OK)
alarm
Failed
Connect script failed
[root@tn1_pc2 ppp]# ./ppp-on
timeout set to 5 seconds
abort on (\nBUSY\r)
abort on (\nERROR\r)
abort on (\nNO ANSWER\r)
abort on (\nNO CARRIER\r)
abort on (\nNO DIALTONE\r)
timeout set to 2 seconds
send (AT^M)
timeout set to 2 seconds
expect (OK)
alarm
Failed
Connect script failed
[root@tn1_pc2 ppp]#