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

Безусловная переадресация входящих сервисными кодами

Добавлено: 13 ноя 2020, 15:49
MrRomka
Всем привет. У нас Asterisk 16. Мы используем клиент Bria и в нем можно настроить, что бы программа безусловно футболила входящий вызов. Это работает замечательно. Всем нравится.
Теперь, если представить, что мобильный клиент пошел гулять в лес, в котором "4G то ловит, то не ловит" и даже, если входящий звонок придет, ему поговорить нормально точно не получится. В этом случае лучше остаться на переадресации, которую нужно установить на сервере. Дело в том, что Bria может совсем не ловить, и звонки переводить тоже не будет.
Но как ее поставить, находясь далеко от офиса? Руками в dialplan я конечно успешно правило добавляю и оно работает.
Если клиент не в сети в момент звонка - уходит звонок на его мобильный.

Вопрос такой: можно ли это прикрутить с помощью features.conf, что бы неким кодом править план на сервере?
Хочется, что бы юзер заранее открыл Bria, ввел код перевода, установил на сервере переадресацию на нужный номер и гуляет себе спокойно. Может хоть в Доминикану улететь. Мы будем не против.
Я про features.conf читал, но как мне показалось из примеров, переадресовать можно именно текущий разговор.
Может это вообще другими средствами делается?
Ткните пожалуйста в нужное место в мануале? Я способный, разберусь )
Заранее спасибо.

Re: Безусловная переадресация входящих сервисными кодами

Добавлено: 13 ноя 2020, 16:14
ded
MrRomka писал(а):Я про features.conf читал, но как мне показалось из примеров, переадресовать можно именно текущий разговор.
Может это вообще другими средствами делается?
Это называется трансфер. Если плохо - человек в лесу говорит - "секундочку!" и решёткой отправляет текущий разговор себе же на мобильный!

Если бы вы при вашем Астериске 16 (да даже старинном 1.8) использовали оболочку (FreePBXZ, то с радостью нашли бы огромный список features, которые люди уже все придумали и реализовали в ней. В частности, для переадресации -
Включить перенаправление всех вызовов - - *72
Отключить перенаправление всех вызовов - - *73

Астериск спросит голосом - "На какой номер переадресовывать?" и всё будет ОК.
А если настроить follow me, где вызов на мобильный будет идти после попытки вызова Bria, то и этих манипуляций не нужно будет, ни в лесу, ни в Доминикане.

Re: Безусловная переадресация входящих сервисными кодами

Добавлено: 13 ноя 2020, 16:19
BorisTheBlade
Вот так во фриипбх сделано -

Код: Выделить всё

[app-cf-on]
include => app-cf-on-custom
exten => lang-playback,1,GosubIf($[${DIALPLAN_EXISTS(app-cf-on,${CHANNEL(language)})}]?app-cf-on,${CHANNEL(language)},${ARG1}():app-cf-on,en,${ARG1}())
exten => lang-playback,n,Return()

exten => *72,1,Answer
exten => *72,n,Wait(1)
exten => *72,n,Macro(user-callerid,)
exten => *72,n,Set(fromext=${AMPUSER})
exten => *72,n,GotoIf($["${fromext}"!=""]?startread)
exten => *72,n,Playback(agent-loggedoff)
exten => *72,n,Macro(hangupcall,)
exten => *72,n(startread),Gosub(app-cf-on,lang-playback,1(hook_1))
exten => *72,n,GotoIf($["foo${toext}"="foo"]?startread)
exten => *72,n,Wait(1)
exten => *72,n,Set(DB(CF/${fromext})=${toext})
exten => *72,n,Set(STATE=BUSY)
exten => *72,n,Gosub(app-cf-on,sstate,1())
exten => *72,n,Gosub(app-cf-on,lang-playback,1(hook_2))
exten => *72,n,Macro(hangupcall,)

exten => sstate,1,Set(DEVICE_STATE(Custom:CF${fromext})=${STATE})
exten => sstate,n,Set(DEVICES=${DB(AMPUSER/${fromext}/device)})
exten => sstate,n,GotoIf($["${DEVICES}" = "" ]?return)
exten => sstate,n,Set(LOOPCNT=${FIELDQTY(DEVICES,&)})
exten => sstate,n,Set(ITER=1)
exten => sstate,n(begin),Set(DEVICE_STATE(Custom:DEVCF${CUT(DEVICES,&,${ITER})})=${STATE})
exten => sstate,n,Set(ITER=$[${ITER} + 1])
exten => sstate,n,GotoIf($[${ITER} <= ${LOOPCNT}]?begin)
exten => sstate,n(return),Return()

exten => en,1(hook_0),Read(fromext,call-fwd-unconditional&please-enter-your-extension-then-press-pound,,,,)
exten => en,n,Return()
exten => en,n(hook_1),Read(toext,agent-newlocation,,,,)
exten => en,n,Return()
exten => en,n(hook_2),Playback(call-fwd-unconditional&for&extension)
exten => en,n,SayDigits(${fromext})
exten => en,n,Playback(is-set-to)
exten => en,n,SayDigits(${toext})
exten => en,n,Return()
exten => en,n(hook_3),Playback(call-fwd-unconditional&for&extension)
exten => en,n,SayDigits(${fromext})
exten => en,n,Playback(is-set-to)
exten => en,n,SayDigits(${toext})
exten => en,n,Return()

ded, опередил :lol:

Re: Безусловная переадресация входящих сервисными кодами

Добавлено: 13 ноя 2020, 16:20
MrRomka
Я пытался поставить FreePBX 13 (кажется), на UBUNTU 20.04, но уткнулся в неработающий c ней php 1.4., а 1.3 там сразу не взлетает. В итоге пока только SSH. Думал, может ручками можно прикрутить?

Re: Безусловная переадресация входящих сервисными кодами

Добавлено: 13 ноя 2020, 16:33
MrRomka
BorisTheBlade писал(а):Вот так во фриипбх сделано -

Код: Выделить всё

[app-cf-on]
include => app-cf-on-custom
exten => lang-playback,1,GosubIf($[${DIALPLAN_EXISTS(app-cf-on,${CHANNEL(language)})}]?app-cf-on,${CHANNEL(language)},${ARG1}():app-cf-on,en,${ARG1}())
exten => lang-playback,n,Return()

exten => *72,1,Answer
exten => *72,n,Wait(1)
exten => *72,n,Macro(user-callerid,)
exten => *72,n,Set(fromext=${AMPUSER})
exten => *72,n,GotoIf($["${fromext}"!=""]?startread)
exten => *72,n,Playback(agent-loggedoff)
exten => *72,n,Macro(hangupcall,)
exten => *72,n(startread),Gosub(app-cf-on,lang-playback,1(hook_1))
exten => *72,n,GotoIf($["foo${toext}"="foo"]?startread)
exten => *72,n,Wait(1)
exten => *72,n,Set(DB(CF/${fromext})=${toext})
exten => *72,n,Set(STATE=BUSY)
exten => *72,n,Gosub(app-cf-on,sstate,1())
exten => *72,n,Gosub(app-cf-on,lang-playback,1(hook_2))
exten => *72,n,Macro(hangupcall,)

exten => sstate,1,Set(DEVICE_STATE(Custom:CF${fromext})=${STATE})
exten => sstate,n,Set(DEVICES=${DB(AMPUSER/${fromext}/device)})
exten => sstate,n,GotoIf($["${DEVICES}" = "" ]?return)
exten => sstate,n,Set(LOOPCNT=${FIELDQTY(DEVICES,&)})
exten => sstate,n,Set(ITER=1)
exten => sstate,n(begin),Set(DEVICE_STATE(Custom:DEVCF${CUT(DEVICES,&,${ITER})})=${STATE})
exten => sstate,n,Set(ITER=$[${ITER} + 1])
exten => sstate,n,GotoIf($[${ITER} <= ${LOOPCNT}]?begin)
exten => sstate,n(return),Return()

exten => en,1(hook_0),Read(fromext,call-fwd-unconditional&please-enter-your-extension-then-press-pound,,,,)
exten => en,n,Return()
exten => en,n(hook_1),Read(toext,agent-newlocation,,,,)
exten => en,n,Return()
exten => en,n(hook_2),Playback(call-fwd-unconditional&for&extension)
exten => en,n,SayDigits(${fromext})
exten => en,n,Playback(is-set-to)
exten => en,n,SayDigits(${toext})
exten => en,n,Return()
exten => en,n(hook_3),Playback(call-fwd-unconditional&for&extension)
exten => en,n,SayDigits(${fromext})
exten => en,n,Playback(is-set-to)
exten => en,n,SayDigits(${toext})
exten => en,n,Return()

ded, опередил :lol:
Попытаюсь в этом разобраться для начала.
Ded, BorisTheBlade, спасибо за оперативный ответ.

Re: Безусловная переадресация входящих сервисными кодами

Добавлено: 13 ноя 2020, 16:51
ded
BorisTheBlade писал(а):ded, опередил :lol:
Изображение

Re: Безусловная переадресация входящих сервисными кодами

Добавлено: 13 ноя 2020, 17:06
BorisTheBlade
run, MrRomka, run
У тебя оверквотинг а у ded-a пистолет :mrgreen: :mrgreen: :mrgreen:

Re: Безусловная переадресация входящих сервисными кодами

Добавлено: 13 ноя 2020, 18:04
MrRomka
Да, да. Он мне уже на екстеншены даже звонил )