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

AsteriskNow (aster 11) DID в CDR как чтобы он был везде

Обо всем касательно FreePBX, MetPBX, TrixBox, Elastix, AstPBX и всех других дистрибутивов

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

Ответить
svd
Сообщения: 169
Зарегистрирован: 19 июл 2011, 08:13
Откуда: Красноярск
Контактная информация:

AsteriskNow (aster 11) DID в CDR как чтобы он был везде

Сообщение svd »

Дня доброго всем.

Для решения задачи учёта, разбираю CDR с Asterisk.
Во всех маршрутах звонок в конечном итоге попадает в очередь (одну или другую, это не принципиально), но вот что мешает.
Запись CDR в которой звонок "попадает в очередь" DID указан, далее идут 1-Н записей о вызове очередью агентов, в которых DID-пуст.

попробовал так в extension_custom.conf
[from-pstn-custom]
exten => _X.,1,Set(__ORIGINAL_DID33=${EXTEN})
exten => _X.,2,Set(CDR(DID)=${EXTEN})
exten => _X.,3,Set(CDR(accountcode)=${EXTEN})
exten => _X.,n,goto(ext-did,${EXTEN},1)

переменная канала ORIGINAL_DID33 при звонке очереди агентам сохраняется, я её читаю в другом месте потом.
пробовал добавить
[ext-queues-custom]
exten => _.,1,Set(CDR(DID)=${__ORIGINAL_DID33})
exten => _.,n,goto(ext-queues,${EXTEN},1)

но что-то пошло не так.
не понимаю как правильно сделать.
https://yadi.sk/i/y3qSm37bSDOM6Q
Изображение

может есть путь проще?
может есть какой то макрос который осуществляет запись в адаптив_одибиси и можно в него дописать это?
как правильно описать контекст [ext-queues-custom]?
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: AsteriskNow (aster 11) DID в CDR как чтобы он был везде

Сообщение ded »

Журнал CDR обычно пригоден для анализа работы офисной УАТС, и не годится для анализа работы Call center ввиду тех самых недостатков, о которых вы пишете. Поэтому в современных Астериск системах два журнала о статистике вызовов: CDR и CEL (Call event logger). Последний более точно отражает суть рабты агентов (операторов) в очередях, для его визуализации используются другие инструменты, например - AsterNIC.
svd
Сообщения: 169
Зарегистрирован: 19 июл 2011, 08:13
Откуда: Красноярск
Контактная информация:

Re: AsteriskNow (aster 11) DID в CDR как чтобы он был везде

Сообщение svd »

по CEL я учту, я видел что использует решение helloasterisk, про asternic спасибо. посмотрю его.

но есть ли мысли как подправить этот изъян?
может есть какой то макрос который осуществляет запись в адаптив_одибиси и можно в него дописать это?
как правильно описать контекст [ext-queues-custom]?

отдельно взятый заказ у меня выполнен на 99% за исключением информации о DID в принятых звонках.

я не до конца разобрался в какой момент и какой функцией вызывается сама запись в CDR. Я бы поправил этот кусок диалплана и записал бы значение примерно так
exten => _.,1,Set(CDR(DID)=${__ORIGINAL_DID33})

Или это в принципе не возможно подправить?
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: AsteriskNow (aster 11) DID в CDR как чтобы он был везде

Сообщение ded »

А у вас есть такая переменная - ${ORIGINAL_DID33} ?
Посмотрите прохождение вызова в CLI, он ныряет в разные макросы и subroutine, выпрыгивает и опять в другие макросы. Запись в CDR делается по окончании разговора, это как-бы завершённая транзакция, в ней уже изменять ничего нельзя, поля там readonly.
Поэтому модифицировать можно, в macro-hangup. Который дополняется, изменяется, и помещается в extensions_override_freepbx.conf
PROFIT!
svd
Сообщения: 169
Зарегистрирован: 19 июл 2011, 08:13
Откуда: Красноярск
Контактная информация:

Re: AsteriskNow (aster 11) DID в CDR как чтобы он был везде

Сообщение svd »

Знак "неравно" как пишется?
так?
<>

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

exten => s,1,GotoIf($["${CDR(recordingfile)}" = ""]?endmixmoncheck)
;ORIGINAL_DID33 write
exten => s,2,GotoIf($[CDR(DID)<>$__ORIGINAL_DID33]?4)
exten => s,3,Set(CDR(DID)=$__ORIGINAL_DID33)
exten => s,4,NooP($__ORIGINAL_DID33)
exten => s,5,Noop(============================================================)
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: AsteriskNow (aster 11) DID в CDR как чтобы он был везде

Сообщение ded »

$[CDR(DID) != $__ORIGINAL_DID33]?
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH