Добрый!
Пытаюсь реализовать следующую схему работы:
IP терминал -> Alcatel -> Asterisk -> PSTN
Alcatel и Asterisk (Ver. 11.14.1) находятся за NAT в одной сети. Cоздал транк, где 192.168.2.252 - IP Alcatel:
context=from-internal
host=192.168.2.252
insecure=very
type=friend
dtmfmode=rfc2833
disallow=all
allow=alaw&ulaw
nat=force_rport,comedia
directmedia=nonat
И хочу, чтобы IP терминалы, подключенные к Alcatel могли использовать внешние транки Астериск. Собственно, звонок проходит, но когда вызываемый абонент "поднимает" трубку, то происходит обрыв соединения. В логах следующее:
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [74951234567@from-internal:1] Macro("SIP/office.ru-msk-0000003c", "user-callerid,LIMIT,EXTERNAL,") in new stack
-- Executing [s@macro-user-callerid:1] Set("SIP/office.ru-msk-0000003c", "TOUCH_MONITOR=1418708088.60") in new stack
-- Executing [s@macro-user-callerid:2] Set("SIP/office.ru-msk-0000003c", "AMPUSER=103") in new stack
-- Executing [s@macro-user-callerid:3] GotoIf("SIP/office.ru-msk-0000003c", "0?report") in new stack
-- Executing [s@macro-user-callerid:4] ExecIf("SIP/office.ru-msk-0000003c", "1?Set(REALCALLERIDNUM=103)") in new stack
-- Executing [s@macro-user-callerid:5] Set("SIP/office.ru-msk-0000003c", "AMPUSER=") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("SIP/office.ru-msk-0000003c", "0?limit") in new stack
-- Executing [s@macro-user-callerid:7] Set("SIP/office.ru-msk-0000003c", "AMPUSERCIDNAME=") in new stack
-- Executing [s@macro-user-callerid:8] GotoIf("SIP/office.ru-msk-0000003c", "1?report") in new stack
-- Goto (macro-user-callerid,s,16)
-- Executing [s@macro-user-callerid:16] GotoIf("SIP/office.ru-msk-0000003c", "1?continue") in new stack
-- Goto (macro-user-callerid,s,30)
-- Executing [s@macro-user-callerid:30] Set("SIP/office.ru-msk-0000003c", "CALLERID(number)=103") in new stack
-- Executing [s@macro-user-callerid:31] Set("SIP/office.ru-msk-0000003c", "CALLERID(name)=Mikita Nichiporuk") in new stack
-- Executing [s@macro-user-callerid:32] Set("SIP/office.ru-msk-0000003c", "CDR(cnum)=103") in new stack
-- Executing [s@macro-user-callerid:33] Set("SIP/office.ru-msk-0000003c", "CDR(cnam)=Mikita Nichiporuk") in new stack
-- Executing [s@macro-user-callerid:34] Set("SIP/office.ru-msk-0000003c", "CHANNEL(language)=en") in new stack
-- Executing [74951234567@from-internal:2] ExecIf("SIP/office.ru-msk-0000003c", "0 ?Set(CDR(accountcode)=)") in new stack
-- Executing [74951234567@from-internal:3] Set("SIP/office.ru-msk-0000003c", "MOHCLASS=default") in new stack
-- Executing [74951234567@from-internal:4] Set("SIP/office.ru-msk-0000003c", "_NODEST=") in new stack
-- Executing [74951234567@from-internal:5] Gosub("SIP/office.ru-msk-0000003c", "sub-record-check,s,1(out,74951234567,)") in new stack
-- Executing [s@sub-record-check:1] Set("SIP/office.ru-msk-0000003c", "REC_POLICY_MODE_SAVE=") in new stack
-- Executing [s@sub-record-check:2] GotoIf("SIP/office.ru-msk-0000003c", "1?check") in new stack
-- Goto (sub-record-check,s,7)
-- Executing [s@sub-record-check:7] Set("SIP/office.ru-msk-0000003c", "__MON_FMT=wav") in new stack
-- Executing [s@sub-record-check:8] GotoIf("SIP/office.ru-msk-0000003c", "1?next") in new stack
-- Goto (sub-record-check,s,11)
-- Executing [s@sub-record-check:11] ExecIf("SIP/office.ru-msk-0000003c", "0?Return()") in new stack
-- Executing [s@sub-record-check:12] ExecIf("SIP/office.ru-msk-0000003c", "0?Set(__REC_POLICY_MODE=)") in new stack
-- Executing [s@sub-record-check:13] GotoIf("SIP/office.ru-msk-0000003c", "0?out,1") in new stack
-- Executing [s@sub-record-check:14] Set("SIP/office.ru-msk-0000003c", "__REC_STATUS=INITIALIZED") in new stack
-- Executing [s@sub-record-check:15] Set("SIP/office.ru-msk-0000003c", "NOW=1418708088") in new stack
-- Executing [s@sub-record-check:16] Set("SIP/office.ru-msk-0000003c", "__DAY=16") in new stack
-- Executing [s@sub-record-check:17] Set("SIP/office.ru-msk-0000003c", "__MONTH=12") in new stack
-- Executing [s@sub-record-check:18] Set("SIP/office.ru-msk-0000003c", "__YEAR=2014") in new stack
-- Executing [s@sub-record-check:19] Set("SIP/office.ru-msk-0000003c", "__TIMESTR=20141216-023448") in new stack
-- Executing [s@sub-record-check:20] Set("SIP/office.ru-msk-0000003c", "__FROMEXTEN=103") in new stack
-- Executing [s@sub-record-check:21] Set("SIP/office.ru-msk-0000003c", "__CALLFILENAME=out-74951234567-103-20141216-023448-1418708088.60") in new stack
-- Executing [s@sub-record-check:22] Goto("SIP/office.ru-msk-0000003c", "out,1") in new stack
-- Goto (sub-record-check,out,1)
-- Executing [out@sub-record-check:1] ExecIf("SIP/office.ru-msk-0000003c", "1?Set(__REC_POLICY_MODE=)") in new stack
-- Executing [out@sub-record-check:2] GosubIf("SIP/office.ru-msk-0000003c", "0?record,1(exten,74951234567,103)") in new stack
-- Executing [out@sub-record-check:3] Return("SIP/office.ru-msk-0000003c", "") in new stack
-- Executing [74951234567@from-internal:6] Macro("SIP/office.ru-msk-0000003c", "dialout-trunk,2,74951234567,,off") in new stack
-- Executing [s@macro-dialout-trunk:1] Set("SIP/office.ru-msk-0000003c", "DIAL_TRUNK=2") in new stack
-- Executing [s@macro-dialout-trunk:2] GosubIf("SIP/office.ru-msk-0000003c", "0?sub-pincheck,s,1()") in new stack
-- Executing [s@macro-dialout-trunk:3] GotoIf("SIP/office.ru-msk-0000003c", "0?disabletrunk,1") in new stack
-- Executing [s@macro-dialout-trunk:4] Set("SIP/office.ru-msk-0000003c", "DIAL_NUMBER=74951234567") in new stack
-- Executing [s@macro-dialout-trunk:5] Set("SIP/office.ru-msk-0000003c", "DIAL_TRUNK_OPTIONS=Ttr") in new stack
-- Executing [s@macro-dialout-trunk:6] Set("SIP/office.ru-msk-0000003c", "OUTBOUND_GROUP=OUT_2") in new stack
-- Executing [s@macro-dialout-trunk:7] GotoIf("SIP/office.ru-msk-0000003c", "1?nomax") in new stack
-- Goto (macro-dialout-trunk,s,9)
-- Executing [s@macro-dialout-trunk:9] GotoIf("SIP/office.ru-msk-0000003c", "0?skipoutcid") in new stack
-- Executing [s@macro-dialout-trunk:10] Set("SIP/office.ru-msk-0000003c", "DIAL_TRUNK_OPTIONS=Tt") in new stack
-- Executing [s@macro-dialout-trunk:11] Macro("SIP/office.ru-msk-0000003c", "outbound-callerid,2") in new stack
-- Executing [s@macro-outbound-callerid:1] ExecIf("SIP/office.ru-msk-0000003c", "0?Set(CALLERPRES()=)") in new stack
-- Executing [s@macro-outbound-callerid:2] ExecIf("SIP/office.ru-msk-0000003c", "0?Set(REALCALLERIDNUM=103)") in new stack
-- Executing [s@macro-outbound-callerid:3] GotoIf("SIP/office.ru-msk-0000003c", "1?normcid") in new stack
-- Goto (macro-outbound-callerid,s,6)
-- Executing [s@macro-outbound-callerid:6] Set("SIP/office.ru-msk-0000003c", "USEROUTCID=") in new stack
-- Executing [s@macro-outbound-callerid:7] Set("SIP/office.ru-msk-0000003c", "EMERGENCYCID=") in new stack
-- Executing [s@macro-outbound-callerid:8] Set("SIP/office.ru-msk-0000003c", "TRUNKOUTCID=") in new stack
-- Executing [s@macro-outbound-callerid:9] GotoIf("SIP/office.ru-msk-0000003c", "1?trunkcid") in new stack
-- Goto (macro-outbound-callerid,s,14)
-- Executing [s@macro-outbound-callerid:14] ExecIf("SIP/office.ru-msk-0000003c", "0?Set(CALLERID(all)=)") in new stack
-- Executing [s@macro-outbound-callerid:15] ExecIf("SIP/office.ru-msk-0000003c", "0?Set(CALLERID(all)=)") in new stack
-- Executing [s@macro-outbound-callerid:16] ExecIf("SIP/office.ru-msk-0000003c", "0?Set(CALLERID(all)=)") in new stack
-- Executing [s@macro-outbound-callerid:17] ExecIf("SIP/office.ru-msk-0000003c", "0?Set(CALLERPRES()=prohib_passed_screen)") in new stack
-- Executing [s@macro-outbound-callerid:18] Set("SIP/office.ru-msk-0000003c", "CDR(outbound_cnum)=103") in new stack
-- Executing [s@macro-outbound-callerid:19] Set("SIP/office.ru-msk-0000003c", "CDR(outbound_cnam)=Mikita Nichiporuk") in new stack
-- Executing [s@macro-dialout-trunk:12] GosubIf("SIP/office.ru-msk-0000003c", "0?sub-flp-2,s,1()") in new stack
-- Executing [s@macro-dialout-trunk:13] Set("SIP/office.ru-msk-0000003c", "OUTNUM=74951234567") in new stack
-- Executing [s@macro-dialout-trunk:14] Set("SIP/office.ru-msk-0000003c", "custom=SIP/PSTN") in new stack
-- Executing [s@macro-dialout-trunk:15] ExecIf("SIP/office.ru-msk-0000003c", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default)Tt)") in new stack
-- Executing [s@macro-dialout-trunk:16] ExecIf("SIP/office.ru-msk-0000003c", "0?Set(DIAL_TRUNK_OPTIONS=TtM(confirm))") in new stack
-- Executing [s@macro-dialout-trunk:17] Macro("SIP/office.ru-msk-0000003c", "dialout-trunk-predial-hook,") in new stack
-- Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("SIP/office.ru-msk-0000003c", "") in new stack
-- Executing [s@macro-dialout-trunk:18] GotoIf("SIP/office.ru-msk-0000003c", "0?bypass,1") in new stack
-- Executing [s@macro-dialout-trunk:19] ExecIf("SIP/office.ru-msk-0000003c", "0?Set(CONNECTEDLINE(num,i)=74951234567)") in new stack
-- Executing [s@macro-dialout-trunk:20] ExecIf("SIP/office.ru-msk-0000003c", "0?Set(CONNECTEDLINE(name,i)=CID:103)") in new stack
-- Executing [s@macro-dialout-trunk:21] GotoIf("SIP/office.ru-msk-0000003c", "0?customtrunk") in new stack
-- Executing [s@macro-dialout-trunk:22] Dial("SIP/office.ru-msk-0000003c", "SIP/PSTN/74951234567,300,Tt") in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Called SIP/PSTN/74951234567
-- SIP/PSTN-0000003d is ringing
-- SIP/PSTN-0000003d is ringing
-- SIP/PSTN-0000003d answered SIP/office.ru-msk-0000003c
> 0x7fd16002aea0 -- Probation passed - setting RTP source address to 192.168.2.252:32000
> 0x7fd1641b0770 -- Probation passed - setting RTP source address to 62.117.70.14:17726
-- Executing [h@macro-dialout-trunk:1] Macro("SIP/office.ru-msk-0000003c", "hangupcall,") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/office.ru-msk-0000003c", "1?theend") in new stack
-- Goto (macro-hangupcall,s,3)
-- Executing [s@macro-hangupcall:3] ExecIf("SIP/office.ru-msk-0000003c", "0?Set(CDR(recordingfile)=)") in new stack
-- Executing [s@macro-hangupcall:4] Hangup("SIP/office.ru-msk-0000003c", "") in new stack
== Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'SIP/office.ru-msk-0000003c' in macro 'hangupcall'
== Spawn extension (macro-dialout-trunk, h, 1) exited non-zero on 'SIP/office.ru-msk-0000003c'
== Spawn extension (macro-dialout-trunk, s, 22) exited non-zero on 'SIP/office.ru-msk-0000003c' in macro 'dialout-trunk'
== Spawn extension (from-internal, 74951234567, 6) exited non-zero on 'SIP/office.ru-msk-0000003c'
Если я все правильно понял, то Астериска после выполнения звонка пытается связать напрямую Alcatel (которая за NAT) и абонента, игнорируя nat=force_rport,comedia. Или я неправильно понял суть этой инструкции?
Задан: Dec 16 '14
Просмотрен: 389 раз
Обновлен: Dec 16 '14
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Откуда Вы это поняли?
zzuz (Dec 16 '14)editя неправильно понимаю это?
tuchka (Dec 16 '14)editТолько если объясните , что это за адрес - 192.168.2.252 ?
zzuz (Dec 16 '14)edit192.168.2.252 - адрес станции Алкатель, расположенной в той же сети, что и Астериск. В первом сообщении об этом написано. Или Вы пытаетесь навести меня на мысль, что смысл этих строк в указании адресов куда Астер пересылает RTP, являясь при этом посредником?
tuchka (Dec 16 '14)editсовершенно верно , поэтому вопрос нужно адресовать в сторону SIP/office.ru-msk .
zzuz (Dec 16 '14)editoffice.ru-msk - название танка между Алкатель и Аcтером, конфиг которого приведен выше. Что в нем неверно?
tuchka (Dec 16 '14)editналичие адреса 62.117.70.14 и отсутствие настроек SIP/PSTN .
zzuz (Dec 16 '14)editв конфиге или в логе? 62.117.70.14 - адрес провайдера. выложить настройки SIP/PSTN?
tuchka (Dec 16 '14)edit