Страница 1 из 1

FreePBX таймаут при disconnect

СообщениеДобавлено: 03 окт 2018, 14:18
Mitsumo
Приветствую, пошурстил по форуму да и собственно гугл толком ничего мне не показа. Есть такая проблема, даже это не проблемка больше, а хотелка. в FreePBX есть макрос в файле extensions_additionals.conf

Код: выделить все
[macro-exten-vm]
...


Путем анализа логов я понял, что вызывается он если делать сброс при звонке на абонента, во время hold, через ** (disconnect).

В нем есть такой кусок

Код: выделить все
exten => _s-!,1,GotoIf($["${IVR_RETVM}"="RETURN" & "${IVR_CONTEXT}"!=""]?exit,1)
exten => _s-!,n,Playtones(congestion)
exten => _s-!,n,Congestion(10)


Так вот, Congestion(10), это как раз таймаут 10 секунд, после перегруза звонка, то-есть отбоя, в CLI оно выглядит так:

Код: выделить все
Executing [s-CANCEL@macro-exten-vm:1] GotoIf("Local/138@from-internal-xfer-00000286;2", "0?exit,1") in new stack
    -- Executing [s-CANCEL@macro-exten-vm:2] PlayTones("Local/138@from-internal-xfer-00000286;2", "congestion") in new stack
[2018-10-03 17:10:13] WARNING[22566][C-0000040e]: translate.c:407 framein: no samples for ulawtolin
    -- Executing [s-CANCEL@macro-exten-vm:3] Congestion("Local/138@from-internal-xfer-00000286;2", "10") in new stack


Не совсем понял почему макрос видоизменятся в s-CANCEL, но суть в другом, я могу поменять таймаут там, но до первой перезагрузки или принятии изменения. Пробовал полностью весь кусок этого макроса, засунуть в файл extensions_override_freepbx.conf, так как в макросе есть инклюд к кастому и поменять таймаут, ничего не поменялось, вероятно он не видит или не хочет принимать или я делаю что-то не так.

Код: выделить все
[macro-exten-vm-custom]
exten => s,1,Macro(user-callerid,)
...

Так начинается в extensions_override_freepbx.con

Код: выделить все
[macro-exten-vm]
include => macro-exten-vm-custom
exten => s,1,Macro(user-callerid,)
...

Так оно в оригинале.
Как-то можно этот таймаут поменять? 10 секунд слишком долго для наших людей.

Re: FreePBX таймаут при disconnect

СообщениеДобавлено: 03 окт 2018, 15:23
ded
Ну, если так уж уверены в правильности изысканий - добавьте не весь этот макрос засунуть в файл extensions_override_freepbx.conf, а вот так
Код: выделить все
[macro-exten-vm](+)
exten => _s-!,1,GotoIf($["${IVR_RETVM}"="RETURN" & "${IVR_CONTEXT}"!=""]?exit,1)
exten => _s-!,n,Playtones(congestion)
exten => _s-!,n,Congestion(2)

Может сработает, а может нет. Если не сработает - надо весь макрос туда засовывать.

Re: FreePBX таймаут при disconnect

СообщениеДобавлено: 03 окт 2018, 15:27
april22
1- как вы и говорили - вынести в отдельный файл . и не забыть сделать dialplan reload
2 путь джедая . изменить прям в файле который генерит диалплан , но помните там есть некоторое количество засад в частности с хешем файла ... не правильно сделаете - все пропадет :-) тренируйтесь на кошках :-)

Re: FreePBX таймаут при disconnect

СообщениеДобавлено: 03 окт 2018, 19:34
BorisTheBlade
Засунуть в extensions_override_freepbx.conf и перезагрузить диалплан, ни разу с этим не было проблем.
Что-то вы где-то перемудрили, или я чего-то не понял
Код: выделить все
[macro-exten-vm]
exten => _s-!,1,GotoIf($["${IVR_RETVM}"="RETURN" & "${IVR_CONTEXT}"!=""]?exit,1)
exten => _s-!,n,Playtones(congestion)
exten => _s-!,n,Congestion(1)

Re: FreePBX таймаут при disconnect

СообщениеДобавлено: 04 окт 2018, 06:51
Mitsumo
april22 писал(а):1- как вы и говорили - вынести в отдельный файл . и не забыть сделать dialplan reload
2 путь джедая . изменить прям в файле который генерит диалплан , но помните там есть некоторое количество засад в частности с хешем файла ... не правильно сделаете - все пропадет :-) тренируйтесь на кошках :-)

1. В том то и проблема, что в отдельном не работает.
2. А где собственно файл который генерит диалплан? Я искал но не нашел :(

Re: FreePBX таймаут при disconnect

СообщениеДобавлено: 04 окт 2018, 06:53
Mitsumo
BorisTheBlade писал(а):Засунуть в extensions_override_freepbx.conf и перезагрузить диалплан, ни разу с этим не было проблем.
Что-то вы где-то перемудрили, или я чего-то не понял
Код: выделить все
[macro-exten-vm]
exten => _s-!,1,GotoIf($["${IVR_RETVM}"="RETURN" & "${IVR_CONTEXT}"!=""]?exit,1)
exten => _s-!,n,Playtones(congestion)
exten => _s-!,n,Congestion(1)


Я пробовал в extensions_override_freepbx.conf, но добавлял макрос [macro-exten-vm-custom], так как в оригинальном, там прописан инклуд.

Re: FreePBX таймаут при disconnect

СообщениеДобавлено: 04 окт 2018, 06:56
Mitsumo
ded писал(а):Ну, если так уж уверены в правильности изысканий - добавьте не весь этот макрос засунуть в файл extensions_override_freepbx.conf, а вот так
Код: выделить все
[macro-exten-vm](+)
exten => _s-!,1,GotoIf($["${IVR_RETVM}"="RETURN" & "${IVR_CONTEXT}"!=""]?exit,1)
exten => _s-!,n,Playtones(congestion)
exten => _s-!,n,Congestion(2)

Может сработает, а может нет. Если не сработает - надо весь макрос туда засовывать.

Так не вышло, после релоада через веб-морду возвращается значение в 10 секунд. Кстати вот это (+) что означает? Весь макрос я пробовал пихать.

Re: FreePBX таймаут при disconnect

СообщениеДобавлено: 04 окт 2018, 08:14
Mitsumo
Проблема решена, в общем по совету BorisTheBlade, прописал, но пришлось весь макрос туда переносить, а не часть скрипта. Теперь он подменяет полностью оригинальный макрос. Проблема в том, что я использовал [macro-exten-vm-custom], но сработало конечно же полной подменой макроса [macro-exten-vm]. И почему я сам до этого не догадался :) Спасибо за участие.