Kucherow писал(а):Казалось бы все просто, создаем в queues.conf очередь, в dialplan использует queue() при записи в самобытную cdr выдираем параметры специфичные для queue и все работает. Но вот приходит руководство и говорит, что если у пользователя включен автоматический перевод звонка(который тоже сделан средствами dialplan, т.к. руководство отказывается давать пользователям права рулить такими делами на аппаратах), то звонки приходящие пользователю из очередей должны подчиняться этим правилам. По сути если звонок пришел в очередь, то надо определить какие в ней есть участники и отправить в кусок dialplan где обрабатываются переадресации данных номеров. И тут все вроде просто, берем Member=>Local/ и кидаем куда нам надо, НО в таком случае появляется еще один канал и самаписная cdr рассыпается(ну как рассыпается появляется две записи вместо одной, причем нельзя просто забить на одну т.к. они друг друга дополняют). Да вероятно проблема в дизайне и что то нужно с этим делать, но вот что? Использовать встроенную cdr не вариант, она абсолютно нечитаемая, коробочные решения тоже - все прекрасно работает без них, не читая дубликатов записей. Может есть способ у Local/ оставлять id канала из которого они были вызваны? Или есть альтернатива app_queue?
А у вас все пользователи в очереди? Каким образом, если не секрет, вы автоматом их в ней размещаете? У нас реализовано через Login-Logout для пользователей кол-центра, остальным очереди без надобности.
Код: Выделить всё
include => agent-functions
; Login Operator
exten => 54,1,Set(QUEUEDST=callcenter);
exten => 54,n,Goto(login,1);
; Logout Operator
exten => 56,1,Set(QUEUEDST=callcenter);
exten => 56,n,Goto(logout,1);
; Pause Operator
exten => 52,1,Goto(pause,1);
; UnPause Operator
exten => 58,1,Goto(unpause,1);