ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Не могу настроить перенаправление входящего звонка. Помогите

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Не могу настроить перенаправление входящего звонка. Помогите

Сообщение bauer » 27 апр 2011, 06:21

Здравствуйте!
Возникла необходимость перенаправить входящий звонок с внешней линии (городской телефон) на внутренний телефон.

Имеется карта 4-канальная AEX410 на VOIP сервере (серверов несколько).
На настраиваемом сервере в порты карты входят 3 линии:
1-внутренняя пара от АТС на 1 порту;
2-внутренняя пара от АТС на 4 порту;
3-пара внеш. линии(гор.тел.) на 3 порту.

Звонок должен поступать на 3 пару и направляться по протоколу IAX2 на другой сервер.

На данный момент на VOIP сервере настроена исходящая маршрутизация по протоколу IAX2. Установлен DAHDI.
Через FreePBX установил DID = 55555 на ZAP/3 и во входящей маршрутизации прописал направление для него на "Дополнительное назначение"(Misc Destination). В "Допонительном назначение" добавил номер согласно исходящей маршрутизации по IAX2 на другой сервер. В результате в логах пишет:
Channel | Source | Clid | Dst | Disposition
DAHDI/3-1 | 28 | 28 | 018 | NO ANSWER
Где 28 - номер исходящий, 018 - номер назначения
Если во входящей маршрутизации устанавливаю направление на DISA, то могу набирать номера и дозвон до адресата доходит.

Опыта пользования у меня в данном программном обеспечении одна неделя.
Как в начале мне показалось, данная операция (перевод звонка) должна быть не такой сложной и в итоге я уже около недели занимаюсь "внедрением" себя в Asterisk, но результата нет.
Сейчас бы я не беспокоил Вас своими вопросами, но неделя уже прошла, а сроки поджимают: до 29 апр. все должно работать, поэтому решил обратиться за помощью, если это возможно или хотя бы где мне копать. Мое предположение что в Extentions.conf что-то не идет.

Debug:
Код: выделить все
    -- Starting simple switch on 'DAHDI/3-1'
    -- Executing [s@from-zaptel:1] NoOp("DAHDI/3-1", "Entering from-zaptel with DID == ") in new stack
    -- Executing [s@from-zaptel:2] Ringing("DAHDI/3-1", "") in new stack
    -- Executing [s@from-zaptel:3] Set("DAHDI/3-1", "DID=s") in new stack
    -- Executing [s@from-zaptel:4] NoOp("DAHDI/3-1", "DID is now s") in new stack
    -- Executing [s@from-zaptel:5] GotoIf("DAHDI/3-1", "1?zapok:notzap") in new stack
    -- Goto (from-zaptel,s,8)
    -- Executing [s@from-zaptel:8] NoOp("DAHDI/3-1", "Is a Zaptel Channel") in new stack
    -- Executing [s@from-zaptel:9] Set("DAHDI/3-1", "CHAN=3-1") in new stack
    -- Executing [s@from-zaptel:10] Set("DAHDI/3-1", "CHAN=3") in new stack
    -- Executing [s@from-zaptel:11] Macro("DAHDI/3-1", "from-zaptel-3|s|1") in new stack
    -- Executing [s@macro-from-zaptel-3:1] NoOp("DAHDI/3-1", "Entering macro-from-zaptel-3 with DID = s and setting to: 55555") in new stack
    -- Executing [s@macro-from-zaptel-3:2] Set("DAHDI/3-1", "__FROM_DID=55555") in new stack
    -- Executing [s@macro-from-zaptel-3:3] Goto("DAHDI/3-1", "from-trunk|55555|1") in new stack
    -- Goto (from-trunk,55555,1)
  == Channel 'DAHDI/3-1' jumping out of macro 'from-zaptel-3'
    -- Executing [55555@from-trunk:1] NoOp("DAHDI/3-1", "Catch-All DID Match - Found 55555- You probably want a DID for this.") in new stack
    -- Executing [55555@from-trunk:2] Goto("DAHDI/3-1", "ext-did|s|1") in new stack
    -- Goto (ext-did,s,1)
    -- Executing [s@ext-did:1] Set("DAHDI/3-1", "__FROM_DID=s") in new stack
    -- Executing [s@ext-did:2] Gosub("DAHDI/3-1", "app-blacklist-check|s|1") in new stack
    -- Executing [s@app-blacklist-check:1] LookupBlacklist("DAHDI/3-1", "") in new stack
    -- Executing [s@app-blacklist-check:2] GotoIf("DAHDI/3-1", "0?blacklisted") in new stack
    -- Executing [s@app-blacklist-check:3] Return("DAHDI/3-1", "") in new stack
    -- Executing [s@ext-did:3] ExecIf("DAHDI/3-1", "1 |Set|CALLERID(name)=") in new stack
    -- Executing [s@ext-did:4] Set("DAHDI/3-1", "__CALLINGPRES_SV=allowed_not_screened") in new stack
    -- Executing [s@ext-did:5] SetCallerPres("DAHDI/3-1", "allowed_not_screened") in new stack
    -- Executing [s@ext-did:6] Goto("DAHDI/3-1", "ext-miscdests|2|1") in new stack
    -- Goto (ext-miscdests,2,1)
    -- Executing [2@ext-miscdests:1] NoOp("DAHDI/3-1", "MiscDest: tranzit") in new stack
    -- Executing [2@ext-miscdests:2] Goto("DAHDI/3-1", "from-internal|018|1") in new stack
    -- Goto (from-internal,018,1)
    -- Executing [018@from-internal:1] Macro("DAHDI/3-1", "user-callerid|SKIPTTL|") in new stack
    -- Executing [s@macro-user-callerid:1] Set("DAHDI/3-1", "AMPUSER=") in new stack
    -- Executing [s@macro-user-callerid:2] GotoIf("DAHDI/3-1", "0?report") in new stack
    -- Executing [s@macro-user-callerid:3] ExecIf("DAHDI/3-1", "1|Set|REALCALLERIDNUM=") in new stack
    -- Executing [s@macro-user-callerid:4] Set("DAHDI/3-1", "AMPUSER=") in new stack
    -- Executing [s@macro-user-callerid:5] Set("DAHDI/3-1", "AMPUSERCIDNAME=") in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("DAHDI/3-1", "1?report") in new stack
    -- Goto (macro-user-callerid,s,10)
    -- Executing [s@macro-user-callerid:10] GotoIf("DAHDI/3-1", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,19)
    -- Executing [s@macro-user-callerid:19] NoOp("DAHDI/3-1", "Using CallerID "" <>") in new stack
    -- Executing [018@from-internal:2] Set("DAHDI/3-1", "_NODEST=") in new stack
    -- Executing [018@from-internal:3] Macro("DAHDI/3-1", "record-enable||OUT|") in new stack
    -- Executing [s@macro-record-enable:1] GotoIf("DAHDI/3-1", "1?check") in new stack
    -- Goto (macro-record-enable,s,4)
    -- Executing [s@macro-record-enable:4] AGI("DAHDI/3-1", "recordingcheck|20110426-163756|1303814276.10") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
  recordingcheck|20110426-163756|1303814276.10: No AMPUSER db entry for . Not recording
    -- AGI Script recordingcheck completed, returning 0
    -- Executing [s@macro-record-enable:5] MacroExit("DAHDI/3-1", "") in new stack
    -- Executing [018@from-internal:4] Macro("DAHDI/3-1", "dialout-trunk|1|18||") in new stack
    -- Executing [s@macro-dialout-trunk:1] Set("DAHDI/3-1", "DIAL_TRUNK=1") in new stack
    -- Executing [s@macro-dialout-trunk:2] GosubIf("DAHDI/3-1", "0?sub-pincheck|s|1") in new stack
    -- Executing [s@macro-dialout-trunk:3] GotoIf("DAHDI/3-1", "0?disabletrunk|1") in new stack
    -- Executing [s@macro-dialout-trunk:4] Set("DAHDI/3-1", "DIAL_NUMBER=18") in new stack
    -- Executing [s@macro-dialout-trunk:5] Set("DAHDI/3-1", "DIAL_TRUNK_OPTIONS=tr") in new stack
    -- Executing [s@macro-dialout-trunk:6] Set("DAHDI/3-1", "OUTBOUND_GROUP=OUT_1") in new stack
    -- Executing [s@macro-dialout-trunk:7] GotoIf("DAHDI/3-1", "0?nomax") in new stack
    -- Executing [s@macro-dialout-trunk:8] GotoIf("DAHDI/3-1", "0?chanfull") in new stack
    -- Executing [s@macro-dialout-trunk:9] GotoIf("DAHDI/3-1", "0?skipoutcid") in new stack
    -- Executing [s@macro-dialout-trunk:10] Set("DAHDI/3-1", "DIAL_TRUNK_OPTIONS=") in new stack
    -- Executing [s@macro-dialout-trunk:11] Macro("DAHDI/3-1", "outbound-callerid|1") in new stack
    -- Executing [s@macro-outbound-callerid:1] ExecIf("DAHDI/3-1", "1|SetCallerPres|allowed_not_screened") in new stack
    -- Executing [s@macro-outbound-callerid:2] ExecIf("DAHDI/3-1", "1|Set|REALCALLERIDNUM=") in new stack
    -- Executing [s@macro-outbound-callerid:3] GotoIf("DAHDI/3-1", "1?normcid") in new stack
    -- Goto (macro-outbound-callerid,s,6)
    -- Executing [s@macro-outbound-callerid:6] Set("DAHDI/3-1", "USEROUTCID=") in new stack
    -- Executing [s@macro-outbound-callerid:7] Set("DAHDI/3-1", "EMERGENCYCID=") in new stack
    -- Executing [s@macro-outbound-callerid:8] Set("DAHDI/3-1", "TRUNKOUTCID=28") in new stack
    -- Executing [s@macro-outbound-callerid:9] GotoIf("DAHDI/3-1", "1?trunkcid") in new stack
    -- Goto (macro-outbound-callerid,s,12)
    -- Executing [s@macro-outbound-callerid:12] ExecIf("DAHDI/3-1", "1|Set|CALLERID(all)=28") in new stack
    -- Executing [s@macro-outbound-callerid:13] ExecIf("DAHDI/3-1", "0|Set|CALLERID(all)=") in new stack
    -- Executing [s@macro-outbound-callerid:14] ExecIf("DAHDI/3-1", "0|SetCallerPres|prohib_passed_screen") in new stack
    -- Executing [s@macro-dialout-trunk:12] ExecIf("DAHDI/3-1", "0|AGI|fixlocalprefix") in new stack
    -- Executing [s@macro-dialout-trunk:13] Set("DAHDI/3-1", "OUTNUM=18") in new stack
    -- Executing [s@macro-dialout-trunk:14] Set("DAHDI/3-1", "custom=DAHDI/1") in new stack
    -- Executing [s@macro-dialout-trunk:15] ExecIf("DAHDI/3-1", "0|Set|DIAL_TRUNK_OPTIONS=M(setmusic^)") in new stack
    -- Executing [s@macro-dialout-trunk:16] Macro("DAHDI/3-1", "dialout-trunk-predial-hook|") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("DAHDI/3-1", "") in new stack
    -- Executing [s@macro-dialout-trunk:17] GotoIf("DAHDI/3-1", "0?bypass|1") in new stack
    -- Executing [s@macro-dialout-trunk:18] GotoIf("DAHDI/3-1", "0?customtrunk") in new stack
    -- Executing [s@macro-dialout-trunk:19] Dial("DAHDI/3-1", "DAHDI/1/18|300|") in new stack
    -- Called 1/18
    -- Hungup 'DAHDI/1-1'
  == Spawn extension (macro-dialout-trunk, s, 19) exited non-zero on 'DAHDI/3-1' in macro 'dialout-trunk'
  == Spawn extension (from-internal, 018, 4) exited non-zero on 'DAHDI/3-1'
    -- Executing [h@macro-dialout-trunk:1] Macro("DAHDI/3-1", "hangupcall|") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("DAHDI/3-1", "1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,4)
    -- Executing [s@macro-hangupcall:4] GotoIf("DAHDI/3-1", "1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,7)
    -- Executing [s@macro-hangupcall:7] GotoIf("DAHDI/3-1", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,9)
    -- Executing [s@macro-hangupcall:9] Hangup("DAHDI/3-1", "") in new stack
  == Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'DAHDI/3-1' in macro 'hangupcall'
  == Spawn extension (macro-dialout-trunk, h, 1) exited non-zero on 'DAHDI/3-1'
    -- Hungup 'DAHDI/3-1'
bauer
 
Сообщений: 8
Зарегистрирован: 27 апр 2011, 06:14

Не могу настроить перенаправление входящего звонка. Помогите

Сообщение bauer » 27 апр 2011, 09:32

Также я заметил, что входящие звонки с других серверов по протоколу IAX2 воспринимают мое направление на 018 и звонят по назначению. Получается все звонки через АТС на 1 и 4 порт и на гор.номер - 3 порт карты AEX410 на сервере не обрабатываются как надо. Вопрос почему?
bauer
 
Сообщений: 8
Зарегистрирован: 27 апр 2011, 06:14

Re: Не могу настроить перенаправление входящего звонка. Помо

Сообщение ded » 27 апр 2011, 10:47

Ключевая проблема для понимания:
bauer писал(а):Опыта пользования у меня в данном программном обеспечении одна неделя.

Если Вы думали, что не имея опыта можно это всё самому понять/настроить за 3 дня (неделя, две недели), то это стратегическая ошибка.
1) Читать книги (типа Триксбокс без слёз)
2) Платные консультации
ded
 
Сообщений: 15821
Зарегистрирован: 26 авг 2010, 19:00

Re: Не могу настроить перенаправление входящего звонка. Помо

Сообщение vlego » 27 апр 2011, 12:25

vlego
 
Сообщений: 153
Зарегистрирован: 11 окт 2010, 13:54
Откуда: Moscow

Re: Не могу настроить перенаправление входящего звонка. Помо

Сообщение bauer » 27 апр 2011, 12:55

ded писал(а):Ключевая проблема для понимания:
bauer писал(а):Опыта пользования у меня в данном программном обеспечении одна неделя.

Если Вы думали, что не имея опыта можно это всё самому понять/настроить за 3 дня (неделя, две недели), то это стратегическая ошибка.


Думал ... прежде чем полез в Asterisk :) Учиться однозначно надо и буду. В данный момент решаю задачку с попутным самоучением. Обычно когда что то приспичивает - учишься быстрее.

vlego писал(а):bauer, http://www.pbxware.ru/products/digium/a ... manual.pdf
см page 46

Спасибо
bauer
 
Сообщений: 8
Зарегистрирован: 27 апр 2011, 06:14

Re: Не могу настроить перенаправление входящего звонка. Помо

Сообщение ded » 27 апр 2011, 13:22

bauer писал(а):3-пара внеш. линии(гор.тел.) на 3 порту.
Звонок должен поступать на 3 пару и направляться по протоколу IAX2 на другой сервер.

Разбейте задачу на подзадачи. Первая задача - принять звонок из города на внутренний номер 101 например.
Вторая задача - позвонить с внутреннего номера 101 на внутренний номер 018 (дурацкий внутренний диал план!).
Сделайте к примеру Add Extension => Custom extension (5018) => dial string IAX2/server2/018 и позвонить изнутри на 5018.
bauer писал(а):Через FreePBX установил DID = 55555 на ZAP/3 и во входящей маршрутизации прописал направление для него на "Дополнительное назначение"(Misc Destination).
А надо бы не = 55555, а = телефонному номеру этой линии, для этой цели этот модуль придуман. Иначе запутаетесь.
Прочитайте в книгах что такое контекст в Астериске.
Нормальное положение - когда внешние городские линии (транки) приходят во внешний контекст (from-pstn), а внутренние - во внутренний контекст (from-internal). Тогда звонки из мира в станцию рулятся модулем Входящая маршрутизация. По DID = телефонному номеру линии. Вот тогда после успешного выполнения 1-й и 2-й подзадачи маршрутизируем входящий DID = телефонному номеру 3-й линии на внутренний Custom extension 5018.

Цифры условные. Прокнокать ваш диалплан всех серверов - телепатически трудновыполнимая задача.
ded
 
Сообщений: 15821
Зарегистрирован: 26 авг 2010, 19:00

Re: Не могу настроить перенаправление входящего звонка. Помо

Сообщение bauer » 28 апр 2011, 09:33

ded писал(а):Разбейте задачу на подзадачи. Первая задача - принять звонок из города на внутренний номер 101 например.
Вторая задача - позвонить с внутреннего номера 101 на внутренний номер 018 (дурацкий внутренний диал план!).
Сделайте к примеру Add Extension => Custom extension (5018) => dial string IAX2/server2/018 и позвонить изнутри на 5018.


Дело в том, что номер 018 и есть внутренний телефон (Сервера1), то есть настраиваемого. И как раз 1 задача, которую вы мне посоветовали сейчас разбирается мной.

Попробовал направить гор. телефон(ZAP/3) на номер 1234 где проигрывается demo:
Код: выделить все
exten => 1234,1,Playback(demo-congrats)         ; extensions can dial 1234
exten => 1234,2,Hangup()

Работает.

Проблема, на мой взгляд, в успешном продолжении звонка на этом моменте (Лог):
Код: выделить все
     .......
    -- Executing [s@macro-dialout-trunk:19] Dial("DAHDI/3-1", "DAHDI/1/18|300|") in new stack
    -- Called 1/18
    -- Hungup 'DAHDI/1-1'


Тогда как вызов с Сервера2 по IAX2 с тем же перенаправлением действует:
Код: выделить все
     -- Executing [s@macro-dialout-trunk:19] Dial("IAX2/dopofficeuser-1148", "DAHDI/1/18|300|") in new stack
NOTICE[5121] app_dial.c: Hey! chan IAX2/dopofficeuser-1148's context='macro-dialout-trunk', and exten='s'
DEBUG[5121] chan_dahdi.c: Dialing '18'
DEBUG[5121] chan_dahdi.c: Deferring dialing... (res -1)
     -- Called 1/18
DEBUG[5121] chan_dahdi.c: Sent deferred digit string: T18w


После испытаний складывается ощущение, что поступивший звонок на гор. телефон "уничтожается" или что то подобное, при звонке
Dial("DAHDI/3-1", "DAHDI/1/18|300|"), а DAHDI/1/18 звонит, но при налаживании канала для DAHDI/3-1 понимает - что некого соединять тут. Но при этом в трубку шлется сигнал: Ringing("DAHDI/3-1", "")
bauer
 
Сообщений: 8
Зарегистрирован: 27 апр 2011, 06:14

Re: Не могу настроить перенаправление входящего звонка. Помо

Сообщение ded » 28 апр 2011, 10:05

ded писал(а):Сделайте к примеру Add Extension => Custom extension (5018) => dial string IAX2/server2/018 и позвонить изнутри на 5018.
ded
 
Сообщений: 15821
Зарегистрирован: 26 авг 2010, 19:00

Re: Не могу настроить перенаправление входящего звонка. Помо

Сообщение bauer » 28 апр 2011, 14:41

ded писал(а):Разбейте задачу на подзадачи. Первая задача - принять звонок из города на внутренний номер 101 например.
Вторая задача - позвонить с внутреннего номера 101 на внутренний номер 018 (дурацкий внутренний диал план!).
Сделайте к примеру Add Extension => Custom extension (5018) => dial string IAX2/server2/018 и позвонить изнутри на 5018.


Сделал Custom extension (5018) => только dial string сделал DAHDI/4/18|300|. Позвонил - вызов проходит. Также пробовал создавать IAX2/mainoffice1/xxxx|300|rD(xxxx) (где хххх - номер внутр. телефона сервера mainoffice1). Позвонил - вызов проходит.
Дальше попробовал Во Входящих вызовах в Elastix поставить назначение Extentions на 5018 - дозвона нет.
bauer
 
Сообщений: 8
Зарегистрирован: 27 апр 2011, 06:14

Re: Не могу настроить перенаправление входящего звонка. Помо

Сообщение bauer » 28 апр 2011, 15:21

Возможно, что то не в порядке с системными настройками оборудования? Подскажите пожалуйста на что нужно обратить внимание.
bauer
 
Сообщений: 8
Зарегистрирован: 27 апр 2011, 06:14

След.

Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH