AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Запись информации в cdr после выхода из очереди

Newbies/FAQ Forum 1 сообщений 19.03.2009 10:14 - 19.03.2009 10:14
#1 19.03.2009 10:14

Запись информации в cdr после выхода из очереди


Добрый день.


asterisk-1.6.0.6

Требуется добавить имя файла разговоров к cdr записи в поле userfield, при выходе из очереди, в случае если файл был создан. Если разговор по какой либо причине не состоялся, то файл не создается и запись с именем файла не нужно добавлять.

Вот как я пытаюсь это реализовать:

Code:

[main-menu1-stv]
exten => s,1,Background(cc/stv/main_menu1_stv_${CHANNEL(language)})
exten => s,2,WaitExten(4)
exten => s,3,Goto(s,1)

exten => 1,1,Queue(caostv,c)
exten => 1,2,Set(CDR(userfield)=${MONITOR_FILENAME})
exten => 1,3,Hangup()


вот что происходит:

1) если вызывающий абонент повесил трубку
Code:

-- Executing [s@main-menu1-stv:1] BackGround("SIP/192.168.250.60-17412120", "cc/stv/main_menu1_stv_ru") in new stack
-- Playing 'cc/stv/main_menu1_stv_ru.gsm' (language 'ru')
== CDR updated on SIP/192.168.250.60-17412120
-- Executing [1@main-menu1-stv:1] Queue("SIP/192.168.250.60-17412120", "caostv,c") in new stack
-- Started music on hold, class 'default', on SIP/192.168.250.60-17412120
== Using SIP RTP CoS mark 5
-- SIP/1509233-1740c100 is ringing
-- SIP/1509233-1740c100 answered SIP/192.168.250.60-17412120
-- Stopped music on hold on SIP/192.168.250.60-17412120


2) если трубку повесил оператор(агент)
Code:

-- Executing [s@main-menu1-stv:1] BackGround("SIP/192.168.250.60-17404a10", "cc/stv/main_menu1_stv_ru") in new stack
-- Playing 'cc/stv/main_menu1_stv_ru.gsm' (language 'ru')
== CDR updated on SIP/192.168.250.60-17404a10
-- Executing [1@main-menu1-stv:1] Queue("SIP/192.168.250.60-17404a10", "caostv,c") in new stack
-- Started music on hold, class 'default', on SIP/192.168.250.60-17404a10
== Using SIP RTP CoS mark 5
-- SIP/1509233-1740c350 is ringing
-- SIP/1509233-1740c350 answered SIP/192.168.250.60-17404a10
-- Stopped music on hold on SIP/192.168.250.60-17404a10
-- Executing [1@main-menu1-stv:2] Set("SIP/192.168.250.60-17404a10", "CDR(userfield)=anonymous_000070_0903191355") in new stack
-- Executing [1@main-menu1-stv:3] Hangup("SIP/192.168.250.60-17404a10", "") in new stack
== Spawn extension (main-menu1-stv, 1, 3) exited non-zero on 'SIP/192.168.250.60-17404a10'


В первом случае после Stopped music on hold ничего не происходит, но канал при этом перестает существовать.

Во втором случае вроде произошло как надо, толь ко вот поле userfield не добавляется в cdr.

Пробовал устанавливать поле userfield, до того как абонент переходит в очередь. Работает, поле добавляется. Да только это не совсем то что нужно. В этом случае это поле можно установить на канал в любом месте дайлплана и будет оно писаться для каждого. А мне необходимо только, если файл записался.

Подскажите пожалуйста, что здесь не так? Если это решение не верно то как его можно реализовать по другому или в каком направлении нужно копать?

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

Заранее спасибо.