LINUX.ORG.RU

Не работают входящие звонки с FXO DVG-6008s на FreePBX

 , ,


1

1

Всем привет, даже не знаю куда эту тему кидать.... писал на asteriskforum.ru но там молчат все.

Опишу схему подключения: в FXO шлюз DVG-6008s приходит одна городская линия. В настройках шлюза указан hotline 0600, идет перевод входящего звонка на FreePBX сервер. В FreePBX настроен соответствующий inbound route с DID номером 0600 так что при звонке включается IVR. DVG-6008s регистрируется на FreePBX как транк:

username=600
secret=******
host=dynamic
type=friend
qualify=yes
insecure=invite
disallow=all
allow=alaw&ulaw
nat=no
canreinvite=no
dtmfmode=rfc2833
context=from-pstn

настроек шлюза очень много всяких даже не знаю что сюда писать….

Теперь опишу проблему: Когда я совершаю звонок на FXO линию, например с своего сотового, вижу что звонок пришел на шлюз (использую утилиту SLmon) далее вижу что звонок ушел на FreePBX по номеру хотлайн. В FreePBX в консоле вижу что звонок пришел и идет проигрывание IVR. НО! В трубке гудки! Как будто идет дозвон. Такое ощущение, что FreePBX не сообщает DVG-6008s что он взял трубку и DVG-6008s продолжает звонить Smile

Иногда меня соединяет и я слышу IVR где то с середины, спустя минуту или полторы. Иногда сразу все работает. Но чаще вообще не соединяет.

Лог SLmon когда я не слышу IVR однако вижу что звонок пришел на FreePBX

14:06:04 [025281] 0: Fxo Ringing
14:06:04 [025282] 0: StopPlayTone()=0
14:06:04 [025282] 0: FxoHookOff
14:06:04 [025282] 0: SetFxoHookOff()=0, CallerId=
14:06:04 [025282] 0: ==17:WaitAnswerDeviceOk
14:06:04 [025282] 0: StopDeviceVoiceTone
14:06:04 [025282] 0: ==4:GetDtmf
14:06:04 [025283] 0: PlayDialTone(0)=0
14:06:06 [025302] 0: WarmLine with [0600]
14:06:06 [025302] 0: StopPlayTone()=0
14:06:06 [025302] 0: End Input Default Route [1]
14:06:06 [025302] 0: Line DialNum_New [0600]
14:06:06 [025302] 0: Call Proxy with [0600]
14:06:06 [025302] 0: ==7:Inviting
14:06:06 [025302] 0: VoIP CallOut, Invite <sip:0600@192.168.0.116;user=phone>
14:06:06 [025304] 9: 600=DIALING
14:06:06 [025304] 9: 600=PROCEEDING
14:06:06 [025305] 9: 600=CONNECTED
14:06:06 [025306] 0: Peer=192.168.0.116#12914, PT=8, RecvOnly=0
14:06:06 [025306] 0: StopPlayTone()=0
14:06:06 [025306] 0: StopDeviceVoiceTone
14:06:06 [025306] 0: to set 2833 pt, send=101, recv=101
14:06:06 [025306] 0: SetVoiceCoder(0)=0
14:06:06 [025306] 0: localip = 192.168.0.253 !!
14:06:06 [025306] 0: RTP[1,1], Peer=192.168.0.116#12914, PT=8/2/1, local=192.168.0.253#0
14:06:06 [025306] 0: SetTalkMode[1,1]
14:06:06 [025306] 0: ==14:Talking 

лог астериска в котором в это время проигрывается ivr

[root@localhost ~]# asterisk -rvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv | grep 600
       > [INSERT INTO cel (eventtype,eventtime,cid_name,cid_num,cid_ani,cid_rdnis,cid_dnid,exten,context,channame,appname,appdata,amaflags,accountcode,uniqueid,linkedid,peer,userdeftype,userfield) VALUES ('CHAN_START',{ts '2014-12-02 14:06:06'},'','600','','','','0600','from-pstn','SIP/600-0000692a','','',3,'','1417518366.45415','1417518366.45415','','','')]
    -- Executing [0600@from-pstn:1] Set("SIP/600-0000692a", "__FROM_DID=0600") in new stack
    -- Executing [0600@from-pstn:2] Set("SIP/600-0000692a", "CHANNEL(language)=ru") in new stack
    -- Executing [0600@from-pstn:3] Gosub("SIP/600-0000692a", "app-blacklist-check,s,1()") in new stack
    -- Executing [s@app-blacklist-check:1] GotoIf("SIP/600-0000692a", "0?blacklisted") in new stack
    -- Executing [s@app-blacklist-check:2] Set("SIP/600-0000692a", "CALLED_BLACKLIST=1") in new stack
    -- Executing [s@app-blacklist-check:3] Return("SIP/600-0000692a", "") in new stack
    -- Executing [0600@from-pstn:4] Set("SIP/600-0000692a", "CDR(did)=0600") in new stack
    -- Executing [0600@from-pstn:5] ExecIf("SIP/600-0000692a", "1 ?Set(CALLERID(name)=600)") in new stack
    -- Executing [0600@from-pstn:6] Set("SIP/600-0000692a", "CHANNEL(musicclass)=default") in new stack
    -- Executing [0600@from-pstn:7] Set("SIP/600-0000692a", "__MOHCLASS=default") in new stack
    -- Executing [0600@from-pstn:8] Set("SIP/600-0000692a", "__CALLINGPRES_SV=allowed_not_screened") in new stack
    -- Executing [0600@from-pstn:9] Set("SIP/600-0000692a", "CALLERPRES()=allowed_not_screened") in new stack
    -- Executing [0600@from-pstn:10] Goto("SIP/600-0000692a", "ivr-2,s,1") in new stack
    -- Executing [s@ivr-2:1] Set("SIP/600-0000692a", "TIMEOUT_LOOPCOUNT=0") in new stack
    -- Executing [s@ivr-2:2] Set("SIP/600-0000692a", "INVALID_LOOPCOUNT=0") in new stack
    -- Executing [s@ivr-2:3] Set("SIP/600-0000692a", "_IVR_CONTEXT_ivr-2=") in new stack
    -- Executing [s@ivr-2:4] Set("SIP/600-0000692a", "_IVR_CONTEXT=ivr-2") in new stack
    -- Executing [s@ivr-2:5] Set("SIP/600-0000692a", "__IVR_RETVM=") in new stack
    -- Executing [s@ivr-2:6] GotoIf("SIP/600-0000692a", "0?skip") in new stack
    -- Executing [s@ivr-2:7] Answer("SIP/600-0000692a", "") in new stack
       > [INSERT INTO cel (eventtype,eventtime,cid_name,cid_num,cid_ani,cid_rdnis,cid_dnid,exten,context,channame,appname,appdata,amaflags,accountcode,uniqueid,linkedid,peer,userdeftype,userfield) VALUES ('ANSWER',{ts '2014-12-02 14:06:06'},'600','600','600','','0600','s','ivr-2','SIP/600-0000692a','Answer','',3,'','1417518366.45415','1417518366.45415','','','')]
    -- Executing [s@ivr-2:8] Wait("SIP/600-0000692a", "1") in new stack
    -- Executing [s@ivr-2:9] Set("SIP/600-0000692a", "IVR_MSG=custom/ulngeneral") in new stack
    -- Executing [s@ivr-2:10] Set("SIP/600-0000692a", "TIMEOUT(digit)=3") in new stack
    -- Executing [s@ivr-2:11] ExecIf("SIP/600-0000692a", "1?Background(custom/ulngeneral)") in new stack
    -- <SIP/600-0000692a> Playing 'custom/ulngeneral.slin' (language 'ru')

Ну а в сотовом в это время длинные гудки как и писал ранее. Вместо вызова IVR в inbound route ставил вызов EXTENSION, результат: звонок приходит на софтфон, снимаю трубку ничего не слышу, просто тишина и пустота, на сотовом длинный гудок дозвона.

Регистрировать транки через френды плохая идея.

[2860356]
disallow=all
defaultuser=600
type=peer
secret=*******
qualify=yes
nat=no
insecure=invite,port
host=ipoffxo
fromuser=600
fromdomain=ipoffxo
canreinvite=no
allow=alaw,ulaw
context=from-trunk-sip-600

[to-internal-600]
defaultuser=600
type=user
secret=*******
context=from-trunk

context=from-trunk-sip-600 писать не надо, его фрипбх добавляет.

steemandlinux ★★★★★ ()

Еще также не забудь

register=600@ipoffxo:*******:600@ipoffxo:5060/600

Во freepbx register= писать не надо!

Первое и последнее 600 это номер, а :600@ipoffxo это акк.

steemandlinux ★★★★★ ()
Ответ на: комментарий от steemandlinux

с этими настройками шлюз вообще на freepbx не регистрируется. Делал все по манам, везде именно как type=friend и host=dynamic по логам звонки то нормально уходят с шлюза на freepbx значит делаю вывод что с моими настройками транка все впорядке.

Собственно почему вы решили что проблема в описании транка?

fordiego ()
Ответ на: комментарий от steemandlinux

)))) 10 раз проверил что б не слить в грепе ни че лишнего

fordiego ()
Ответ на: комментарий от Turbid

Потому что это общий контекст, что для FreePBX фатально. А во вторых это транки, а не клиенты.

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