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

CDR, userfield

Asterisk IP PBX 1 сообщений 27.10.2010 21:07 - 27.10.2010 21:07
#1 27.10.2010 21:07

CDR, userfield


Задача: по нажатию комбинации клавиш записать разговор, хранить в БД имя
записанного файла.

features.conf
Code:
[applicationmap]
recording => *5,peer,Macro,MacroRecord

extensions.conf
Code:
[macro-MacroRecord]
exten => s,1,Set(Rec-File=rec-${STRFTIME(${EPOCH},,%d-%m-%Y_%H-%M-%S)})
exten => s,n,Set(CDR(userfield)=${Rec-File}.gsm);
exten => s,n,MixMonitor(${Rec-File}.gsm)
...
[office]
exten => _xxx,1,Dial(${EXTEN})

Запись работает, файлы появляются, но поле userfield в БД пустое. Выяснил что Set(CDR(userfield)=...)
игнорируется после установки соединения (по крайней мере у меня). В таком виде:
Code:
[macro-MacroRecord]
exten => s,n,MixMonitor(${CDR(userfield)}.gsm)
...
[office]
exten => _xxx,1,Set(Rec-File=rec-${STRFTIME(${EPOCH},,%d-%m-%Y_%H-%M-%S)})
exten => _xxx,n,Set(CDR(userfield)=${Rec-File});
exten => _xxx,n,Dial(${EXTEN})
userfield заполняется. Но ведь неизвестно, будет ли разговор записан, а зачем мусор в БД хранить.

Вопрос: как во время разговора изменить это поле? Чтобы первый вариант работал.