LINUX.ORG.RU
ФорумAdmin

asterisk отваливается 3g модем по неизвестной причине

 , ,


0

1

Проблема в том что при звонках на gsm 3g модем отваливается а потом снова поднимается, вопрос уже не рас данный задавался разными людьми на форумах, но не где решения не нашёл. Что имеем: дистрибутив AsteriskNOW, ядро 2.6.32-431.el6.i686, asterisk 1.8.32.1, chan-dongle-1.1.r10 собраный из исходников, freepbx-2.11.0.42, usb_modeswitch и usb_modeswitch-data в системе установлены. Модем: huawei e1750, модем от мегафона, симкарта тоже мегафоновская, модем разблокирован и активирован голосовой модуль, прошивка в модеме стоит вот такая от мтс «E1550_Russia_MTS_PatchDataCard1.0.0.3».

вот вывод lsusb:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0835:8500 Action Star Enterprise Co., Ltd
Bus 001 Device 004: ID 0835:8501 Action Star Enterprise Co., Ltd
Bus 001 Device 017: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Bus 001 Device 006: ID 0835:8500 Action Star Enterprise Co., Ltd
Bus 001 Device 007: ID 0835:8502 Action Star Enterprise Co., Ltd

При входящем звонке звонок доходит до sip телефона поднимается трубка и звук слышно 1с, отваливается модем, при исходящем вызове вызов доходит до модема и отваливается, на конечный телефон уже не доходит. При этом в логи сыплется вот это:

 == Starting Dongle/from-gsm-0100000003 at from-gsm,+79235340127,1 failed so falling back to exten 's'
    -- Executing [s@from-gsm:1] Set("Dongle/from-gsm-0100000003", "CALLERID(all)=+79515883626") in new stack
    -- Executing [s@from-gsm:2] Set("Dongle/from-gsm-0100000003", "CALLERID(num)=89515883626") in new stack
    -- Executing [s@from-gsm:3] Goto("Dongle/from-gsm-0100000003", "from-trunk,358711034357558,1") in new stack
    -- Goto (from-trunk,358711034357558,1)
    -- Executing [358711034357558@from-trunk:1] Set("Dongle/from-gsm-0100000003", "__FROM_DID=358711034357558") in new stack
    -- Executing [358711034357558@from-trunk:2] Gosub("Dongle/from-gsm-0100000003", "app-blacklist-check,s,1()") in new stack
    -- Executing [s@app-blacklist-check:1] GotoIf("Dongle/from-gsm-0100000003", "0?blacklisted") in new stack
    -- Executing [s@app-blacklist-check:2] Set("Dongle/from-gsm-0100000003", "CALLED_BLACKLIST=1") in new stack
    -- Executing [s@app-blacklist-check:3] Return("Dongle/from-gsm-0100000003", "") in new stack
    -- Executing [358711034357558@from-trunk:3] Set("Dongle/from-gsm-0100000003", "CDR(did)=358711034357558") in new stack
    -- Executing [358711034357558@from-trunk:4] ExecIf("Dongle/from-gsm-0100000003", "1 ?Set(CALLERID(name)=89515883626)") in new stack
    -- Executing [358711034357558@from-trunk:5] Set("Dongle/from-gsm-0100000003", "CHANNEL(musicclass)=default") in new stack
    -- Executing [358711034357558@from-trunk:6] Set("Dongle/from-gsm-0100000003", "__MOHCLASS=default") in new stack
    -- Executing [358711034357558@from-trunk:7] Set("Dongle/from-gsm-0100000003", "__CALLINGPRES_SV=allowed_not_screened") in new stack
    -- Executing [358711034357558@from-trunk:8] Set("Dongle/from-gsm-0100000003", "CALLERPRES()=allowed_not_screened") in new stack
    -- Executing [358711034357558@from-trunk:9] Goto("Dongle/from-gsm-0100000003", "from-did-direct,100,1") in new stack
    -- Goto (from-did-direct,100,1)
    -- Executing [100@from-did-direct:1] GotoIf("Dongle/from-gsm-0100000003", "1?ext-local,100,1") in new stack
    -- Goto (ext-local,100,1)
    -- Executing [100@ext-local:1] Set("Dongle/from-gsm-0100000003", "__RINGTIMER=15") in new stack
    -- Executing [100@ext-local:2] Macro("Dongle/from-gsm-0100000003", "exten-vm,novm,100,0,0,0") in new stack
    -- Executing [s@macro-exten-vm:1] Macro("Dongle/from-gsm-0100000003", "user-callerid,") in new stack
    -- Executing [s@macro-user-callerid:1] Set("Dongle/from-gsm-0100000003", "TOUCH_MONITOR=1417447515.16") in new stack
    -- Executing [s@macro-user-callerid:2] Set("Dongle/from-gsm-0100000003", "AMPUSER=89515883626") in new stack
    -- Executing [s@macro-user-callerid:3] GotoIf("Dongle/from-gsm-0100000003", "0?report") in new stack
    -- Executing [s@macro-user-callerid:4] ExecIf("Dongle/from-gsm-0100000003", "1?Set(REALCALLERIDNUM=89515883626)") in new stack
    -- Executing [s@macro-user-callerid:5] Set("Dongle/from-gsm-0100000003", "AMPUSER=") in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("Dongle/from-gsm-0100000003", "0?limit") in new stack
    -- Executing [s@macro-user-callerid:7] Set("Dongle/from-gsm-0100000003", "AMPUSERCIDNAME=") in new stack
    -- Executing [s@macro-user-callerid:8] GotoIf("Dongle/from-gsm-0100000003", "1?report") in new stack
    -- Goto (macro-user-callerid,s,16)
    -- Executing [s@macro-user-callerid:16] GotoIf("Dongle/from-gsm-0100000003", "0?continue") in new stack
    -- Executing [s@macro-user-callerid:17] ExecIf("Dongle/from-gsm-0100000003", "1?Set(__CALLEE_ACCOUNCODE=)") in new stack
    -- Executing [s@macro-user-callerid:18] Set("Dongle/from-gsm-0100000003", "__TTL=64") in new stack
    -- Executing [s@macro-user-callerid:19] GotoIf("Dongle/from-gsm-0100000003", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,30)
    -- Executing [s@macro-user-callerid:30] Set("Dongle/from-gsm-0100000003", "CALLERID(number)=89515883626") in new stack
    -- Executing [s@macro-user-callerid:31] Set("Dongle/from-gsm-0100000003", "CALLERID(name)=89515883626") in new stack
    -- Executing [s@macro-user-callerid:32] Set("Dongle/from-gsm-0100000003", "CDR(cnum)=89515883626") in new stack
    -- Executing [s@macro-user-callerid:33] Set("Dongle/from-gsm-0100000003", "CDR(cnam)=89515883626") in new stack
    -- Executing [s@macro-user-callerid:34] Set("Dongle/from-gsm-0100000003", "CHANNEL(language)=en") in new stack
    -- Executing [s@macro-exten-vm:2] Set("Dongle/from-gsm-0100000003", "RingGroupMethod=none") in new stack
    -- Executing [s@macro-exten-vm:3] Set("Dongle/from-gsm-0100000003", "__EXTTOCALL=100") in new stack
    -- Executing [s@macro-exten-vm:4] Set("Dongle/from-gsm-0100000003", "__PICKUPMARK=100") in new stack
    -- Executing [s@macro-exten-vm:5] Set("Dongle/from-gsm-0100000003", "RT=") in new stack
[2014-12-01 22:25:15] WARNING[22147]: chan_sip.c:20052 func_header_read: This function can only be used on SIP channels.
    -- Executing [s@macro-exten-vm:6] ExecIf("Dongle/from-gsm-0100000003", "0?Macro(vm,novm,DIRECTDIAL,)") in new stack
[2014-12-01 22:25:15] WARNING[22147]: chan_sip.c:20052 func_header_read: This function can only be used on SIP channels.
[2014-12-01 22:25:15] WARNING[22147]: chan_sip.c:20052 func_header_read: This function can only be used on SIP channels.
    -- Executing [s@macro-exten-vm:7] ExecIf("Dongle/from-gsm-0100000003", "0?MacroExit()") in new stack
[2014-12-01 22:25:15] WARNING[22147]: chan_sip.c:20052 func_header_read: This function can only be used on SIP channels.
    -- Executing [s@macro-exten-vm:8] Gosub("Dongle/from-gsm-0100000003", "sub-record-check,s,1(exten,100,)") in new stack
    -- Executing [s@sub-record-check:1] Set("Dongle/from-gsm-0100000003", "REC_POLICY_MODE_SAVE=") in new stack
    -- Executing [s@sub-record-check:2] GotoIf("Dongle/from-gsm-0100000003", "1?check") in new stack
    -- Goto (sub-record-check,s,7)
    -- Executing [s@sub-record-check:7] Set("Dongle/from-gsm-0100000003", "__MON_FMT=wav") in new stack
    -- Executing [s@sub-record-check:8] GotoIf("Dongle/from-gsm-0100000003", "1?next") in new stack
    -- Goto (sub-record-check,s,11)
    -- Executing [s@sub-record-check:11] ExecIf("Dongle/from-gsm-0100000003", "0?Return()") in new stack
    -- Executing [s@sub-record-check:12] ExecIf("Dongle/from-gsm-0100000003", "0?Set(__REC_POLICY_MODE=)") in new stack
    -- Executing [s@sub-record-check:13] GotoIf("Dongle/from-gsm-0100000003", "0?exten,1") in new stack
    -- Executing [s@sub-record-check:14] Set("Dongle/from-gsm-0100000003", "__REC_STATUS=INITIALIZED") in new stack
    -- Executing [s@sub-record-check:15] Set("Dongle/from-gsm-0100000003", "NOW=1417447515") in new stack
    -- Executing [s@sub-record-check:16] Set("Dongle/from-gsm-0100000003", "__DAY=01") in new stack
    -- Executing [s@sub-record-check:17] Set("Dongle/from-gsm-0100000003", "__MONTH=12") in new stack
    -- Executing [s@sub-record-check:18] Set("Dongle/from-gsm-0100000003", "__YEAR=2014") in new stack
    -- Executing [s@sub-record-check:19] Set("Dongle/from-gsm-0100000003", "__TIMESTR=20141201-222515") in new stack
    -- Executing [s@sub-record-check:20] Set("Dongle/from-gsm-0100000003", "__FROMEXTEN=89515883626") in new stack
    -- Executing [s@sub-record-check:21] Set("Dongle/from-gsm-0100000003", "__CALLFILENAME=exten-100-89515883626-20141201-222515-1417447515.16") in new stack
    -- Executing [s@sub-record-check:22] Goto("Dongle/from-gsm-0100000003", "exten,1") in new stack
    -- Goto (sub-record-check,exten,1)
    -- Executing [exten@sub-record-check:1] GotoIf("Dongle/from-gsm-0100000003", "0?callee") in new stack
    -- Executing [exten@sub-record-check:2] Set("Dongle/from-gsm-0100000003", "__REC_POLICY_MODE=dontcare") in new stack
    -- Executing [exten@sub-record-check:3] GotoIf("Dongle/from-gsm-0100000003", "1?caller") in new stack
    -- Goto (sub-record-check,exten,10)
    -- Executing [exten@sub-record-check:10] Set("Dongle/from-gsm-0100000003", "__REC_POLICY_MODE=") in new stack
    -- Executing [exten@sub-record-check:11] GosubIf("Dongle/from-gsm-0100000003", "0?record,1(exten,100,89515883626)") in new stack
    -- Executing [exten@sub-record-check:12] Return("Dongle/from-gsm-0100000003", "") in new stack
    -- Executing [s@macro-exten-vm:9] GotoIf("Dongle/from-gsm-0100000003", "1?macrodial") in new stack
    -- Goto (macro-exten-vm,s,15)
    -- Executing [s@macro-exten-vm:15] GosubIf("Dongle/from-gsm-0100000003", "0?clrheader,1()") in new stack
    -- Executing [s@macro-exten-vm:16] Macro("Dongle/from-gsm-0100000003", "dial-one,,Ttr,100") in new stack
    -- Executing [s@macro-dial-one:1] Set("Dongle/from-gsm-0100000003", "DEXTEN=100") in new stack
    -- Executing [s@macro-dial-one:2] Set("Dongle/from-gsm-0100000003", "DIALSTATUS_CW=") in new stack
    -- Executing [s@macro-dial-one:3] GosubIf("Dongle/from-gsm-0100000003", "0?screen,1()") in new stack
    -- Executing [s@macro-dial-one:4] GosubIf("Dongle/from-gsm-0100000003", "0?cf,1()") in new stack
    -- Executing [s@macro-dial-one:5] GotoIf("Dongle/from-gsm-0100000003", "1?skip1") in new stack
    -- Goto (macro-dial-one,s,8)
    -- Executing [s@macro-dial-one:8] GotoIf("Dongle/from-gsm-0100000003", "0?nodial") in new stack
    -- Executing [s@macro-dial-one:9] GotoIf("Dongle/from-gsm-0100000003", "0?continue") in new stack
    -- Executing [s@macro-dial-one:10] Set("Dongle/from-gsm-0100000003", "EXTHASCW=ENABLED") in new stack
    -- Executing [s@macro-dial-one:11] GotoIf("Dongle/from-gsm-0100000003", "0?next1:cwinusebusy") in new stack
    -- Goto (macro-dial-one,s,23)
    -- Executing [s@macro-dial-one:23] GotoIf("Dongle/from-gsm-0100000003", "1?next3:continue") in new stack
    -- Goto (macro-dial-one,s,24)
    -- Executing [s@macro-dial-one:24] ExecIf("Dongle/from-gsm-0100000003", "0?Set(DIALSTATUS_CW=BUSY)") in new stack
    -- Executing [s@macro-dial-one:25] GotoIf("Dongle/from-gsm-0100000003", "0?nodial") in new stack
    -- Executing [s@macro-dial-one:26] GosubIf("Dongle/from-gsm-0100000003", "1?dstring,1():dlocal,1()") in new stack
    -- Executing [dstring@macro-dial-one:1] Set("Dongle/from-gsm-0100000003", "DSTRING=") in new stack
    -- Executing [dstring@macro-dial-one:2] Set("Dongle/from-gsm-0100000003", "DEVICES=100") in new stack
    -- Executing [dstring@macro-dial-one:3] ExecIf("Dongle/from-gsm-0100000003", "0?Return()") in new stack
    -- Executing [dstring@macro-dial-one:4] ExecIf("Dongle/from-gsm-0100000003", "0?Set(DEVICES=00)") in new stack
    -- Executing [dstring@macro-dial-one:5] Set("Dongle/from-gsm-0100000003", "LOOPCNT=1") in new stack
    -- Executing [dstring@macro-dial-one:6] Set("Dongle/from-gsm-0100000003", "ITER=1") in new stack
    -- Executing [dstring@macro-dial-one:7] Set("Dongle/from-gsm-0100000003", "THISDIAL=SIP/100") in new stack
    -- Executing [dstring@macro-dial-one:8] GosubIf("Dongle/from-gsm-0100000003", "1?zap2dahdi,1()") in new stack
    -- Executing [zap2dahdi@macro-dial-one:1] ExecIf("Dongle/from-gsm-0100000003", "0?Return()") in new stack
    -- Executing [zap2dahdi@macro-dial-one:2] Set("Dongle/from-gsm-0100000003", "NEWDIAL=") in new stack
    -- Executing [zap2dahdi@macro-dial-one:3] Set("Dongle/from-gsm-0100000003", "LOOPCNT2=1") in new stack
    -- Executing [zap2dahdi@macro-dial-one:4] Set("Dongle/from-gsm-0100000003", "ITER2=1") in new stack
    -- Executing [zap2dahdi@macro-dial-one:5] Set("Dongle/from-gsm-0100000003", "THISPART2=SIP/100") in new stack
    -- Executing [zap2dahdi@macro-dial-one:6] ExecIf("Dongle/from-gsm-0100000003", "0?Set(THISPART2=DAHDI/100)") in new stack
    -- Executing [zap2dahdi@macro-dial-one:7] Set("Dongle/from-gsm-0100000003", "NEWDIAL=SIP/100&") in new stack
    -- Executing [zap2dahdi@macro-dial-one:8] Set("Dongle/from-gsm-0100000003", "ITER2=2") in new stack
    -- Executing [zap2dahdi@macro-dial-one:9] GotoIf("Dongle/from-gsm-0100000003", "0?begin2") in new stack
    -- Executing [zap2dahdi@macro-dial-one:10] Set("Dongle/from-gsm-0100000003", "THISDIAL=SIP/100") in new stack
    -- Executing [zap2dahdi@macro-dial-one:11] Return("Dongle/from-gsm-0100000003", "") in new stack
    -- Executing [dstring@macro-dial-one:9] Set("Dongle/from-gsm-0100000003", "DSTRING=SIP/100&") in new stack
    -- Executing [dstring@macro-dial-one:10] Set("Dongle/from-gsm-0100000003", "ITER=2") in new stack
    -- Executing [dstring@macro-dial-one:11] GotoIf("Dongle/from-gsm-0100000003", "0?begin") in new stack
    -- Executing [dstring@macro-dial-one:12] Set("Dongle/from-gsm-0100000003", "DSTRING=SIP/100") in new stack
    -- Executing [dstring@macro-dial-one:13] Return("Dongle/from-gsm-0100000003", "") in new stack
    -- Executing [s@macro-dial-one:27] GotoIf("Dongle/from-gsm-0100000003", "0?nodial") in new stack
    -- Executing [s@macro-dial-one:28] GotoIf("Dongle/from-gsm-0100000003", "0?skiptrace") in new stack
    -- Executing [s@macro-dial-one:29] GosubIf("Dongle/from-gsm-0100000003", "1?ctset,1():ctclear,1()") in new stack
    -- Executing [ctset@macro-dial-one:1] Set("Dongle/from-gsm-0100000003", "DB(CALLTRACE/100)=89515883626") in new stack
    -- Executing [ctset@macro-dial-one:2] Return("Dongle/from-gsm-0100000003", "") in new stack
    -- Executing [s@macro-dial-one:30] Set("Dongle/from-gsm-0100000003", "D_OPTIONS=Ttr") in new stack
    -- Executing [s@macro-dial-one:31] ExecIf("Dongle/from-gsm-0100000003", "0?SIPAddHeader(Alert-Info: )") in new stack
    -- Executing [s@macro-dial-one:32] ExecIf("Dongle/from-gsm-0100000003", "0?SIPAddHeader()") in new stack
    -- Executing [s@macro-dial-one:33] ExecIf("Dongle/from-gsm-0100000003", "1?Set(CHANNEL(musicclass)=default)") in new stack
    -- Executing [s@macro-dial-one:34] GosubIf("Dongle/from-gsm-0100000003", "0?qwait,1()") in new stack
    -- Executing [s@macro-dial-one:35] Set("Dongle/from-gsm-0100000003", "__CWIGNORE=") in new stack
    -- Executing [s@macro-dial-one:36] Set("Dongle/from-gsm-0100000003", "__KEEPCID=TRUE") in new stack
    -- Executing [s@macro-dial-one:37] GotoIf("Dongle/from-gsm-0100000003", "0?usegoto,1") in new stack
    -- Executing [s@macro-dial-one:38] GotoIf("Dongle/from-gsm-0100000003", "1?godial") in new stack
    -- Goto (macro-dial-one,s,42)
    -- Executing [s@macro-dial-one:42] Dial("Dongle/from-gsm-0100000003", "SIP/100,,Ttr") in new stack
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Called SIP/100
[2014-12-01 22:25:15] WARNING[22147]: channel.c:986 channel_indicate: [Dongle/from-gsm-0100000003] Don't know how to indicate condition 22
[2014-12-01 22:25:15] WARNING[22147]: channel.c:986 channel_indicate: [Dongle/from-gsm-0100000003] Don't know how to indicate condition 22
    -- SIP/100-0000000d is ringing
[2014-12-01 22:25:19] WARNING[22147]: channel.c:986 channel_indicate: [Dongle/from-gsm-0100000003] Don't know how to indicate condition 22
    -- SIP/100-0000000d answered Dongle/from-gsm-0100000003
[2014-12-01 22:25:25] ERROR[22121]: chan_dongle.c:411 do_monitor_phone: [from-gsm] Lost connection to Dongle
    -- [from-gsm] Dongle has disconnected
    -- Executing [h@macro-dial-one:1] Macro("Dongle/from-gsm-0100000003", "hangupcall,") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("Dongle/from-gsm-0100000003", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,3)
    -- Executing [s@macro-hangupcall:3] ExecIf("Dongle/from-gsm-0100000003", "0?Set(CDR(recordingfile)=)") in new stack
    -- Executing [s@macro-hangupcall:4] Hangup("Dongle/from-gsm-0100000003", "") in new stack
  == Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'Dongle/from-gsm-0100000003' in macro 'hangupcall'
  == Spawn extension (macro-dial-one, h, 1) exited non-zero on 'Dongle/from-gsm-0100000003'
  == Spawn extension (macro-dial-one, s, 42) exited non-zero on 'Dongle/from-gsm-0100000003' in macro 'dial-one'
  == Spawn extension (macro-exten-vm, s, 16) exited non-zero on 'Dongle/from-gsm-0100000003' in macro 'exten-vm'
  == Spawn extension (ext-local, 100, 2) exited non-zero on 'Dongle/from-gsm-0100000003'
    -- [from-gsm] IMEI 358711034357558 found on data_tty=/dev/ttyUSB2 audio_tty=/dev/ttyUSB1
    -- [from-gsm] Trying to connect on /dev/ttyUSB2...
    -- [from-gsm] Dongle has connected, initializing...
    -- [from-gsm] Dongle initialized and ready

Модем подключен через usb-концентратор поэтому проблема с питанием отпадает. Подскажите как мне с этим разобраться?

Посмотрите dmesg, в диалплане куча макросов, не думаю что будет много желающих читать эту простыню. Но

Lost connection to Dongle  — [from-gsm] Dongle has disconnected

Как бы намекает что проблема не в Asterisk

invokercd ★★★★ ()

Попробовать другой порт не думал? Юсб точно 2.0?

anonymous ()

Если голос работает в оффтопике, то проблема в прошивке.

В этом случае рекомендую найти и поставить 11.126.13.00.00. По крайней мере, у меня комбинация этой прошивки и chan_dongle r14 работает идеально.

Свежий chan_dongle, кстати, r42.

koi-sama ()

Для тех кто столкнётся с такой ошибкой, вот решение: 1) Скачайте прошивку для вашего huawei e1750, 11.126.13.00.00 ссылка на прошивку ниже: https://3ginfo.ru/downloads199.html 2) Во время прошивки устанавливайте на своем компьютере время в 2010 год, месяц я ставил сентябрь, иначе нормально не прошьется. 3) dongle я самый свежий не стал использовать взял такой же какой посоветовали: chan_dongle r14. Если это не поможет смотрите в сторону usb, во время разговора он начинает потреблять больше энергии и поэтому может отрубаться. Лучше использовать usb-конценраторы с блоком питания.

UnderTaket ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.