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

У asterisk есть альтернативная реализация очередей?

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

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

Kucherow
Сообщения: 52
Зарегистрирован: 30 мар 2015, 12:31

У asterisk есть альтернативная реализация очередей?

Сообщение Kucherow »

Казалось бы все просто, создаем в queues.conf очередь, в dialplan использует queue() при записи в самобытную cdr выдираем параметры специфичные для queue и все работает. Но вот приходит руководство и говорит, что если у пользователя включен автоматический перевод звонка(который тоже сделан средствами dialplan, т.к. руководство отказывается давать пользователям права рулить такими делами на аппаратах), то звонки приходящие пользователю из очередей должны подчиняться этим правилам. По сути если звонок пришел в очередь, то надо определить какие в ней есть участники и отправить в кусок dialplan где обрабатываются переадресации данных номеров. И тут все вроде просто, берем Member=>Local/ и кидаем куда нам надо, НО в таком случае появляется еще один канал и самаписная cdr рассыпается(ну как рассыпается появляется две записи вместо одной, причем нельзя просто забить на одну т.к. они друг друга дополняют). Да вероятно проблема в дизайне и что то нужно с этим делать, но вот что? Использовать встроенную cdr не вариант, она абсолютно нечитаемая, коробочные решения тоже - все прекрасно работает без них, не читая дубликатов записей. Может есть способ у Local/ оставлять id канала из которого они были вызваны? Или есть альтернатива app_queue?
Samael28
Сообщения: 1057
Зарегистрирован: 08 янв 2011, 18:32
Откуда: Киев
Контактная информация:

Re: У asterisk есть альтернативная реализация очередей?

Сообщение Samael28 »

Kucherow писал(а):Может есть способ у Local/ оставлять id канала из которого они были вызваны?
http://www.voip-info.org/wiki/view/Asterisk+variables
Inheritance of Channel Variables
Prepending a single _ character to a variables name in Set will cause that variable to be inherited by channels created by the main channel. eg. when using Dial(Local/...); once inherited these variables will not be further inherited. Prepending two _ characters will cause them to be inherited indefinitely.

Note that for retrieval purposes these variable names do not include the underscores.

[TestInherit]
exten => 100,1,Set(__FOO=5)
exten => 100,2,Dial(Local/test@TestInherit)
exten => test,1,NoOp(${FOO})

will result in FOO being inherited. Without the underscores, the new local channel would start with a clean slate.
Мой профайл на Upwork
ded
Сообщения: 15622
Зарегистрирован: 26 авг 2010, 19:00

Re: У asterisk есть альтернативная реализация очередей?

Сообщение ded »

Kucherow писал(а): По сути если звонок пришел в очередь, то надо определить какие в ней есть участники и отправить в кусок dialplan где обрабатываются переадресации данных номеров.
Используйте только динамических агентов (Members), и тогда если звонок пришел в очередь, то в ней будут только те, кто зарегистрировался как агент динамически. Без переадресации.
1g0r
Сообщения: 126
Зарегистрирован: 25 ноя 2013, 16:56

Re: У asterisk есть альтернативная реализация очередей?

Сообщение 1g0r »

Я стесняюсь спросить...
А нельзя ли в том куске диалплана, где ставится переадресация, во время ее установки ставить на паузу агента и добавлять нового агента в очередь с новым номером.
Так конечно придется учесть это в статистике, но это не проблема...
Kucherow
Сообщения: 52
Зарегистрирован: 30 мар 2015, 12:31

Re: У asterisk есть альтернативная реализация очередей?

Сообщение Kucherow »

Samael28 писал(а):
Kucherow писал(а):Может есть способ у Local/ оставлять id канала из которого они были вызваны?
http://www.voip-info.org/wiki/view/Asterisk+variables
Inheritance of Channel Variables
Prepending a single _ character to a variables name in Set will cause that variable to be inherited by channels created by the main channel. eg. when using Dial(Local/...); once inherited these variables will not be further inherited. Prepending two _ characters will cause them to be inherited indefinitely.

Note that for retrieval purposes these variable names do not include the underscores.

[TestInherit]
exten => 100,1,Set(__FOO=5)
exten => 100,2,Dial(Local/test@TestInherit)
exten => test,1,NoOp(${FOO})

will result in FOO being inherited. Without the underscores, the new local channel would start with a clean slate.
У меня сейчас сделано через наследование, но это такой костыль на самом деле...
Kucherow
Сообщения: 52
Зарегистрирован: 30 мар 2015, 12:31

Re: У asterisk есть альтернативная реализация очередей?

Сообщение Kucherow »

ded писал(а):
Kucherow писал(а): По сути если звонок пришел в очередь, то надо определить какие в ней есть участники и отправить в кусок dialplan где обрабатываются переадресации данных номеров.
Используйте только динамических агентов (Members), и тогда если звонок пришел в очередь, то в ней будут только те, кто зарегистрировался как агент динамически. Без переадресации.
Это конечно интересно(не пробовал так), но получается что людям придется заводить/выводить себя из мемберов руками?
Kucherow
Сообщения: 52
Зарегистрирован: 30 мар 2015, 12:31

Re: У asterisk есть альтернативная реализация очередей?

Сообщение Kucherow »

1g0r писал(а):Я стесняюсь спросить...
А нельзя ли в том куске диалплана, где ставится переадресация, во время ее установки ставить на паузу агента и добавлять нового агента в очередь с новым номером.
Так конечно придется учесть это в статистике, но это не проблема...
Я ищу способ упростить, а это еще больше запутает, но не пробовал так буду иметь в виду)
Аватара пользователя
tol_iwan
Сообщения: 273
Зарегистрирован: 11 апр 2014, 11:29
Откуда: Брянск
Контактная информация:

Re: У asterisk есть альтернативная реализация очередей?

Сообщение tol_iwan »

Kucherow писал(а):Может есть способ у Local/ оставлять id канала из которого они были вызваны?
Использование "/n" не то?
Kucherow
Сообщения: 52
Зарегистрирован: 30 мар 2015, 12:31

Re: У asterisk есть альтернативная реализация очередей?

Сообщение Kucherow »

Я так до конца не понял зачем нужен этот /n, но пробовал с ним и без него - результат одинаковый.
ded
Сообщения: 15622
Зарегистрирован: 26 авг 2010, 19:00

Re: У asterisk есть альтернативная реализация очередей?

Сообщение ded »

/n - конец строки (перевод каретки)
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH