Запись информации в 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 на предмет установки там канальных переменных, но честно говоря либо что то упустил, либо кроме как переменных относящихся к очередям там ничего установить нельзя.
Заранее спасибо.