wdoekes / asterisk-chan-dongle

chan_dongle channel driver for Huawei UMTS cards, works with Asterisk 14+
Other
300 stars 105 forks source link

ATA command timeout probably very small. #50

Closed mthqwork closed 6 years ago

mthqwork commented 6 years ago

Dear devs!

I almost cannot get this think to work. Almost, cause a dirty fix will make it to work, but anyway. I got this in my log:

-- [dongle0] Dongle initialized and ready -- Executing [701234@test:1] Answer("Dongle/dongle0-0100000003", "") in new stack -- Executing [701234@test:2] Wait("Dongle/dongle0-0100000003", "2") in new stack [Feb 20 20:36:12] ERROR[6603]: chan_dongle.c:445 do_monitor_phone: [dongle0] timedout while waiting 'OK' in response to 'ATA' == Spawn extension (test, 701234, 2) exited non-zero on 'Dongle/dongle0-0100000003' -- [dongle0] Dongle has disconnected -- [dongle0] Trying to connect on /dev/ttyUSB2... -- [dongle0] Dongle has connected, initializing... -- [dongle0] Dongle initialized and ready The module instantly drops "timeout" here, and other party just hears nothing, modem just holds the call until other party hangs up. Seriously it just looks like it does not have any timeout set, just instantly times out. So, I thought i would play a bit with it, and increased the "ATQ_CMD_TIMEOUT_2S" variable from 2 to 5. Looks like now it's okay, other party hears the music on hold, and call does not drop / modem does not resets.

I have E3131A modem (same as E303), 3 tty interfaces, tried some firmwares but it does the same thing. Mobile Partner works ok. With the nasty hack this works okay too.

I would appreciate any ideas about this.

wdoekes commented 6 years ago

Sounds sane, some devices may be slow. I don't know what the docs say about this, but I find 60s on the internet as a hardcoded timeout. 2s seems a little low then.

This commit should fix things. Thanks for the report/suggestions!