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

CallBack по освобождению очереди в Elastix

Добавлено: 22 авг 2014, 15:58
truthful-liar
Всем привет! Использую эластикс 2.4, поставили задачу сделать коллбек, да не простой.
В двух словах. Есть очередь из 3 внутренних абонентов. В очереди бывает по 6-8 ожидающих клиентов.
Сделал ИВР перед очередью с предложением нажать 1 для коллбека или ждать ответа (попадает в очередь).

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

Вопросы:
1. Можно как нить сделать так, чтобы коллбек отрабатывал тогда, когда очередь опустеет и появится свободный абонент?
2. Можно подредактировать коллбек так, чтобы он сначала набирал внутреннего абонента, а при ответе оного уже набирал клеента?

Спасибо за ответы! )

Re: CallBack по освобождению очереди в Elastix

Добавлено: 22 авг 2014, 16:22
ded
2. Можно

Re: CallBack по освобождению очереди в Elastix

Добавлено: 22 авг 2014, 16:25
truthful-liar
можно наколочку хотябы, куды копать?

Re: CallBack по освобождению очереди в Elastix

Добавлено: 22 авг 2014, 17:14
ded
В сторону конфигурации call файла. Смотрите примеры call файлов, там два плеча, сначала вызов одного, потом - второго.Поменять плечи - не проблема.

Re: CallBack по освобождению очереди в Elastix

Добавлено: 23 авг 2014, 12:40
truthful-liar
узнал, что в эластиксе дозвон осуществляется не колл-файлом, а командой Originate из скрипта /var/lib/asterisk/bin/callback.
почитал про эту команду. везде написано

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

Первое, совершается вызов по каналу, указанному в параметре Channel. Далее, после того как установлено соединение по этому каналу (на вызов ответили), будет запущена процедура исходящего вызова. 
и нигде ни слова о перемене последовательности.
Неужели не поменять порядок вызова?

Re: CallBack по освобождению очереди в Elastix

Добавлено: 23 авг 2014, 13:22
virus_net
Пишите в диалплане контекст, в нем какую угодно очередность набора чего угодно.
В call-файле или Originate используете channel Local и вызываете свой контекст.

Re: CallBack по освобождению очереди в Elastix

Добавлено: 23 авг 2014, 14:48
zzuz
1. Нужно написать скрипт , который будет в асинхронном режиме делать Originate на нужные контексты диаплана.
2.Первый контекст это ожидание в очереди .
3.Второй контекст - ожидание ответа оператором очереди на звонок. Тут используется цикл While() с нужной проверкой ответа.
4.В настройках команды Dial для внутренних звонков нужно выставить параметр U(sub-ext-answer) (sub-ext-answer контекст обработки ответа) , который будет проверять наличие канала звонка в очередь (потому как для всех отвеченных вызовов будет отрабатывать) . В этом же контексте нужно импортировать переменные из нужного канала , так как нужно не забывать , что каналы запущены отдельно.
5. Далее добавляем файлы с важной речью для операторов , о том что сейчас будет исходящий вызов. Также перед исходящем вызове не забываем поправить номер , так как он может определяться по разному в зависимости от провайдера.

В итоге имеем:
-скрипт с originate
-контекст для вхождения в очередь и ожидания ответа на звонок в очередь
-контекст проверки ответа на звонок оператором
-контекст проверки CID(num) звонящего и его правки