Перевел свой офисный астериск с extensions.conf на более продвинутый extensions.ael
Вывел запись разговоров в макрос:
macro recording (calling,called) {
if ("${RECORDING}" = "1"){
Set(fname=${UNIQUEID}-${STRFTIME(${EPOCH},,%Y-%m-%d-%H_%M)}-${calling}-${called});
MixMonitor(имя_файла.wav,b);
}
}
Вызываю так:
context incoming_noselect {
s => {
&recording(${CALLERID(number)},${EXTEN});
Dial(SIP/provider/399999,,m(moh_abon));
}
}
То есть понятно да? Я вызываю макрос с MixMonitor с опцией "
b" - писать файл только при установленном соединении.
А в итоге обнаруживаю, что в файл пишется даже эта самая музыка ожидания - m(moh_abon), хотя трубку еще не сняли.
Но самое замечательное, что если я MixMonitor тупо вырежу из макроса, и вставлю его вместо
&recording(${CALLERID(number)},${EXTEN});, то есть не вызову макрос, а выполню его содержимое напрямую в екстеншене, то запись отрабатывает как надо, и Music on hold не пишется, и запись начинается только с момента поднятия трубки.
Возможно я как-то не так макрос вызываю?
С AEL синтаксисом работаю впервые. До этого все делал на extensions.conf.