Страница 2 из 2
Re: CONGESTION не отрабатывается при переадресации
Добавлено: 23 янв 2015, 01:04
ded
Логику исполнения/прохождения вызова можно запутать в тупик, и это никакой не баг. На любом языке программирования (каким по сути является также и исполнение диалплана), можно создать стоп или бесконечный цикл, вольно или не вольно.
Между строкой
"Caller ID first try is "89101234567" <89101234567> 89101234567") in new stack
и
"Caller ID second try is "" <> ") in new stack
у вас в консоли можно видеть исполнение вашего вызова, последовательное исполнение всех макросов и переходов. Зачем же Вы не распутываете этот узел, а сюда пишете?
Re: CONGESTION не отрабатывается при переадресации
Добавлено: 23 янв 2015, 11:38
gaspaarr
Вот на этом этапе теряется CALLERID.
-- Executing [continue@macro-dialout-trunk:1] NoOp("SIP/PROV-0000007b", "TRUNK Dial failed due to CONGESTION HANGUPCAUSE: 34 - failing through to other trunks") in new stack
-- Executing [continue@macro-dialout-trunk:2] Set("SIP/PROV-0000007b", "CALLERID(number)=") in new stack
Чьи это макросы? Кто формирует команду? Мне все таки кажется, что freepbx не настолько глубоко лезет в дела asterisk'а
Re: CONGESTION не отрабатывается при переадресации
Добавлено: 23 янв 2015, 12:11
ded
Это макросы freePBX.
На втором шаге затирается текущее значение CALLERID(number) командой
Set("SIP/PROV-0000007b", "CALLERID(number)=")
Вот кусок этого макроса (он у вас тоже есть) с метки continue. Шаги отличаются немного, я взял с другой версии, но это не важно.
Код: Выделить всё
'continue' => 1. GotoIf($["${OUTFAIL_${ARG1}}" = ""]?noreport) [pbx_config]
2. AGI(${OUTFAIL_${ARG1}}) [pbx_config]
[noreport] 3. Noop(TRUNK Dial failed due to ${DIALSTATUS} HANGUPCAUSE: ${HANGUPCAUSE} - failing through to other trunks) [pbx_config]
4. Set(CALLERID(number)=${AMPUSER}) [pbx_config]
Тут видно, что при событии TRUNK Dial failed со статусом HANGUPCAUSE в переменную CALLERID(number) передаётся содержи мое переменной ${AMPUSER}
Если там пусто, то это, конечно, может быть баг, но я сильно-сильно сомневаюсь. Вижу просто чьи то руки/действия.
Если люди не понимают логику freePBX, как настроить через вэб интерфейс все тонкости, указать на транке нужный Caller ID, то начинают ругать "дебильный интерфейс, или переписывать под себя макрос macro-dialout-trunk, это тоже можно сделать в рамках гибкости freePBX, но только всё это не правильно.
Объяснять "как надо сделать правильно" через форум затратно по времени в 3-4 раза, чем просто молча сделать "как надо". И в 10-20 раз менее эффективно, потому что люди ленятся искать, ленятся копаться в закрученых пружинках, проще написать на форуме "Что, неужели никто не знает почему это так у меня происходит?"
Re: CONGESTION не отрабатывается при переадресации
Добавлено: 23 янв 2015, 14:21
gaspaarr
Я в макросы вообще не лазил, все настроено через вэб морду freepbx.
На транках настроен жестко свой CallerID, никакой другой туда не подставляется.
Проблема в процедуре обработки вызова, приходит вызов с номера 123, система видит, что это 123, отправляет его в соотв. исходящий маршрут, первый транк из маршрута дает отбой, система должна попробовать второй транк, но не делает этого, т.к. уже не видит, что звонок был с номера 123.
Подскажите имя скрипта который это делает? Посмотрю, что там прописано...
Re: CONGESTION не отрабатывается при переадресации
Добавлено: 23 янв 2015, 15:34
ded
ded писал(а):у вас в консоли можно видеть исполнение вашего вызова, последовательное исполнение всех макросов и переходов.
Согласно
Код: Выделить всё
'continue' => 1. GotoIf($["${OUTFAIL_${ARG1}}" = ""]?noreport) [pbx_config]
2. AGI(${OUTFAIL_${ARG1}}) [pbx_config]
[noreport] 3. Noop(TRUNK Dial failed due to ${DIALSTATUS} HANGUPCAUSE: ${HANGUPCAUSE} - failing through to other trunks) [pbx_config]
4. Set(CALLERID(number)=${AMPUSER}) [pbx_config]
у вас перепрыгивается шаг 2. AGI(${OUTFAIL_${ARG1}}) потому что проверка
GotoIf($["${OUTFAIL_${ARG1}}" = ""]?noreport) получила пусто, и исполнение перешло на метку [noreport]
3. Noop(TRUNK Dial failed due to ${DIALSTATUS} HANGUPCAUSE: ${HANGUPCAUSE} - failing through to other trunks)
не известно, как у вас через вэб интерфейс организован перебор транков, но вот по исполнению диалплана будет обработка исходящего через второй транк, обрабатывается это в AGI(${OUTFAIL_${ARG1}})
ded писал(а):Объяснять "как надо сделать правильно" через форум затратно по времени в 3-4 раза, чем просто молча сделать "как надо".
Re: CONGESTION не отрабатывается при переадресации
Добавлено: 23 янв 2015, 17:40
gaspaarr
Можете путь и имя скрипта этого указать?