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

Переадресация по сменам

Добавлено: 04 фев 2016, 17:59
Agasfer
Здравствуйте, уважаемые знатоки)
Нужна помощь в реализации следующей логики работы Asterisk:
Есть 2 сотрудника, занимающихся техподдержкой пользователей. Они работают в смену 2 через 2.
На рабочем месте есть стационарный SIP телефон.
Нужно, чтобы при заступании на смену дежурный мог регистрировать свой номер сотового телефона для переадресации звонков, если его нет на месте, на его сотовый телефон.
Т.е. , например:
1. Пришел на работу с утра, позвонил со стационарного телефона на внутренний номер ХХХ, ввел свой идентификатор (например, 1 или 2) кнопкой на телефоне.
2. В Asteriske к идентификатору привязан номер сотового.
3. Если введен идентификатор (1) то входящие звонки на внутренний номер стационарного телефона при неответе на стационарном телефоне в течении 10 секунд, переадресуются на номер мобильного xxxxxxxxxx
4. Если введен идентификатор (2) то входящие звонки при неответе на стационарном телефоне в течении 10 секунд, переадресуются на номер мобильного yyyyyyyyyy
Номера мобильных постоянные, меняться в ближайшее время не будут. Внутренний номер так же постоянный.
С помощью чего можно реализовать такую логику, на что обратить внимание?

Re: Переадресация по сменам

Добавлено: 04 фев 2016, 18:53
ded
Принимать звонки в очередь, в которой разрешить динамических агентов. Которые добавляются в очередь как раз звонком с указанием сервисного кода:
Стандартная фича в менеджменте Queues на FreePBX.
Если нет FreePBX, то придётся вам вязать из соломки рукотворный велосипед на ту же тему.

Re: Переадресация по сменам

Добавлено: 08 фев 2016, 12:52
Agasfer
Спасибо за ответ. FreePBX нет. Гольная консоль)

Re: Переадресация по сменам

Добавлено: 08 фев 2016, 17:24
ded
ded писал(а): придётся вам вязать из соломки рукотворный велосипед на ту же тему.

Re: Переадресация по сменам

Добавлено: 08 фев 2016, 21:04
monstr
Что-то типа того:

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

[message]
exten => #**01/101,1,Set(DB(message/queueduty)=01)
exten => #**01/101,2,Playback(queue-thankyou)
exten => #**01/101,3,Hangup
exten => #**02/101,1,Set(DB(message/queueduty)=02)
exten => #**02/101,2,Playback(queue-thankyou)
exten => #**02/101,3,Hangup

[ivr]
exten => s,1,Answer
same => n,Playback(/usr/share/asterisk/ivr/queueduty)
same => n,GotoIf($[${DB(message/queueduty)} = 01]?queueduty01)
same => n,GotoIf($[${DB(message/queueduty)} = 02]?queueduty02)
same => n(queueduty01),NoOp
same => n,Queue(duty01,tn,,,15)
same => n,Dial(SIP/prov/79251234567)
same => n,Hangup
same => n(queueduty02),NoOp
same => n,Queue(duty02,tn,,,15)
same => n,Dial(SIP/prov/79252345678)
same => n,Hangup

Ну или так:

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

exten => s,1,Answer
same => n,Playback(/usr/share/asterisk/ivr/queueduty)
same => n,GotoIf($[${DB(message/queueduty)} = 01]?queueduty01)
same => n,GotoIf($[${DB(message/queueduty)} = 02]?queueduty02)
same => n(queueduty01),NoOp
same => n,Queue(duty01,t)
same => n,Hangup
same => n(queueduty02),NoOp
same => n,Queue(duty02,t)
same => n,Hangup
При этом в описании мемеров в очередях сделать так (возможно придётся использовать Local каналы):

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

[duty01]
member => SIP/101,1
member => SIP/prov/79251234567,2

[duty02]
member => SIP/101,1
member => SIP/prov/79252345678,2
Ну и настроить пенальти в queuerules.conf

Re: Переадресация по сменам

Добавлено: 09 фев 2016, 12:37
Agasfer
monstr , ded, большое спасибо за помощь. Буду думать)