VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Переадресация пользователей

Проблемы Asterisk без вэб-оболочек и их решения

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

Ответить
medinet
Сообщения: 3
Зарегистрирован: 14 фев 2015, 23:10

Переадресация пользователей

Сообщение medinet »

Всем хорошего настроения!
Возможно, подобные темы были, но я не смог найти, прошу помощи у специалистов.

Суть в том, чтобы переадресовывать входящий вызов на другого оператора, если дефолтный занят или не залогинен.
Сейчас идет строка такая:

PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
exten = 51,n,Goto(dial_operator,1004,1)


[dial_operator]
exten = _[56]0XX,1,ResetCDR()
exten = _[56]0XX,n,Set(CALLFILENAME=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(num)}.wav)
exten = _[56]0XX,n,Set(CDR(filename)=${CALLFILENAME})
exten = _[56]0XX,n,Dial(SIP/${EXTEN},60,grtmM(monitor,${CALLFILENAME}))
exten = _[56]0XX,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?101)
exten = _[56]0XX,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?101)
exten = _[56]0XX,n,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?101)
exten = _[56]0XX,n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?101)
exten = _[56]0XX,n,GotoIf($["${DIALSTATUS}" = "CANCEL"]?101)
exten = _[56]0XX,n,GotoIf($["${DIALSTATUS}" = "DONTCALL"]?101)
exten = _[56]0XX,n,Hangup()
Я так понимаю, что идет привязка к диалстатусу, но цель - выставить очередность операторов, на которые пойдет переадресация в случае занятости предыдущих и в итоге, если все заняты/недоступны (1004, 1005, 1006, 1011 например), перекинуть на блок 101 (операторы заняты и т.д.). Я запутался, прошу помощи.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Переадресация пользователей

Сообщение ded »

Вы конструируете механизм, который давно уже создан. Это = очередь - Queue.
Почитайте книгу о будущем.
medinet
Сообщения: 3
Зарегистрирован: 14 фев 2015, 23:10

Re: Переадресация пользователей

Сообщение medinet »

Вы снова меня выручаете. Спасибо большое)
Не сообразил, как нужно поисковый запрос задать.
Аватара пользователя
tol_iwan
Сообщения: 273
Зарегистрирован: 11 апр 2014, 11:29
Откуда: Брянск
Контактная информация:

Re: Переадресация пользователей

Сообщение tol_iwan »

:-)
Тот случай, когда ответ помог мне понять вопрос...
medinet
Сообщения: 3
Зарегистрирован: 14 фев 2015, 23:10

Re: Переадресация пользователей

Сообщение medinet »

tol_iwan писал(а)::-)
Тот случай, когда ответ помог мне понять вопрос...
Вы абсолютно правы ) вопрос сформулировать я нормально не смог.


Пользуясь случаем, хочу спросить - вот первый оператор в очереди недоступен, или занят - можно ли вставлять туда строки вызова РНР интерпретатора с переменной с указанием статуса этого оператора?
Например:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
[managers]
strategy = linear
timeout = 20
joinempty=no
member => SIP/104
----
В случае, если оператор 104 не ответил, запускается строка типа "System(php /home/notice.php {статус оператора 104 - занят, недоступен, не ответил в течение таймаута})"
----
member => SIP/205
----
В случае, если оператор 205 не ответил, запускается строка типа "System(php /home/notice.php {статус оператора 205 - занят, недоступен, не ответил в течение таймаута})"
----
Или такие строки лучше ставить в extensions.conf и вставлять коды между очередями? Но статус оператора все равно нужно как-то получать(
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH