Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Связка Alcatel OXO и Asterisk (FreePBX) - обе за NAT

0

Добрый!

Пытаюсь реализовать следующую схему работы:

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. Или я неправильно понял суть этой инструкции?

удалить закрыть спам изменить тег редактировать

спросил 2014-12-16 10:04:20 +0400

tuchka Gravatar tuchka
1 1 3

обновил 2014-12-16 10:07:05 +0400

Comments

Откуда Вы это поняли?

zzuz ( 2014-12-16 10:29:11 +0400 )редактировать
   > 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

я неправильно понимаю это?

tuchka ( 2014-12-16 10:35:26 +0400 )редактировать

Только если объясните , что это за адрес - 192.168.2.252 ?

zzuz ( 2014-12-16 11:30:12 +0400 )редактировать

192.168.2.252 - адрес станции Алкатель, расположенной в той же сети, что и Астериск. В первом сообщении об этом написано. Или Вы пытаетесь навести меня на мысль, что смысл этих строк в указании адресов куда Астер пересылает RTP, являясь при этом посредником?

tuchka ( 2014-12-16 11:45:11 +0400 )редактировать

совершенно верно , поэтому вопрос нужно адресовать в сторону SIP/office.ru-msk .

zzuz ( 2014-12-16 11:56:43 +0400 )редактировать

office.ru-msk - название танка между Алкатель и Аcтером, конфиг которого приведен выше. Что в нем неверно?

tuchka ( 2014-12-16 12:00:34 +0400 )редактировать

наличие адреса 62.117.70.14 и отсутствие настроек SIP/PSTN .

zzuz ( 2014-12-16 12:20:31 +0400 )редактировать

в конфиге или в логе? 62.117.70.14 - адрес провайдера. выложить настройки SIP/PSTN?

tuchka ( 2014-12-16 12:58:14 +0400 )редактировать

Будьте первым, кто ответит на этот вопрос!

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2014-12-16 10:04:20 +0400

Просмотрен: 367 раз

Обновлен: Dec 16 '14

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.