Incorrect handling of 3G modem failures

Hello!

I’m currently developing large project with mobile hotspots using 3G and Sattelite uplinks.
I run test on RB/411UAHR + SierraWireles MC8790V on the ROS 5.12

Sometimes modem stop responding. At this moment we have folowing AT!GSTATUS information:

Current Time:  96166            Temperature: 29
Bootup Time:   0                Mode:        ONLINE         
System mode:   WCDMA            PS state:    Attached     
WCDMA band:    IMT2000          GSM band:    Unknown    
WCDMA channel: 10687            GSM channel: 65535
GMM (PS) state:REGISTERED       NORMAL SERVICE 
MM (CS) state: IDLE             NORMAL SERVICE 

WCDMA L1 State:L1M_PCH_SLEEP    RRC State:   DISCONNECTED   
RX level (dBm):-89

RRC State: DISCONNECTED - points to problem either modem freeze or network operator failure.

Also we see

 /interface ppp-client monitor ppp-out1 
  status: dialing...

status: dialing… - incorect state, because

/interface print

shows that ppp-out1 is up

The last

/interface ppp-client info ppp-out1 
             status: ready
         pin-status: no password required
      functionality: full
       manufacturer: Sierra Wireless, Incorporated
              model: MC8790V
           revision: K2_0_7_35AP C:/WS/FW/K2_0_7_35AP/MSM6290/SRC 2010/03/04 17:37:08
      serial-number: 353626021324749
   current-operator: MegaFon RUS
  access-technology: 3G
     signal-strengh: -73 dBm
   frame-error-rate: n/a

Normal operation status: call in progress, not ready as printed above.

Despite the fact that the error caused by the modem, Mikrotik has wrong desition about PPP interface is up.
So no action like restart interface or routing changes are performed. Actualy we can do AT!GRESET
or just enable/disable interface to begin work correctly.

I think the algorithm of ROS need to be changed for better handling errors of modem.
I made supout.rif and ready to help on any needed tests.

Is your ppp-out client set to dial-on-demand=yes (which is default behavior)? If so, the ppp-out interface will always spoof “running” status.
Disable dial on demand, and it should show the correct interface status.

hedele, thank you about this idea, my ppp client has dial-on-demand=yes .
Ok, pppd always spoof running status. Why does it not hang up and redial?

I made test with DoD=off option, result the same.

Mikrotik incorrect handles this situation:

WCDMA L1 State:L1M_PCH_SLEEP    RRC State:   DISCONNECTED

Mikrotik is trying to hung up the line:

Feb/02/2012 11:07:52 async,debug usb2:4: sent +++
Feb/02/2012 11:07:54 async,debug usb2:4: sent ATH
Feb/02/2012 11:07:56 async,debug usb2:4: sent +++
Feb/02/2012 11:07:59 async,debug usb2:4: sent ATH
Feb/02/2012 11:08:01 async,debug usb2:4: sent +++
Feb/02/2012 11:08:03 async,debug usb2:4: sent ATH
Feb/02/2012 11:08:05 async,debug usb2:4: sent +++
Feb/02/2012 11:08:07 async,debug usb2:4: sent ATH

But it have to restart the modem!
It’s very easy to make simple configuration option “Try to restart modem after” 100 “redial attempts” and sent AT!GRESET command to modem.

Another way is to add Interface->PPP->“Disconnect command” options ( as the “Dial Command”) to make possible change default ATH to AT!GRESET if needed.

I found complains about 3G card “freezing” started from 2010 year. I’ts seems to be no progress exept “USB power restart” hardware option.

Could anyone make advise how to resolve this issue with Mikrotik support?

I’m going to try couple of board and couple of different 3G cards. I think ROS is fine to my project, exept this problem.
But I need very stable platform for hundreds instalations at large distance.

Mikrotik sent ATH command if caught en error in connection.
Modern 3G Modem do nothing when recieve ATH command, just reply OK.

For huawei modems works AT+CHUP

For Siera Wireless nor ATH, or AT+CHUP works, only AT!GRESET actualy restart connection, and sometimes interface enable only can helps.

hello sir,
I have same problem with huge number of SIERRA MC8775 .

it’s very easy to make simple configuration option “Try to restart modem after” 100 “redial attempts” and sent AT!GRESET command to modem.

would you please tell me how can I count the redial attempts ?