flapflapjack
@flapflapjack
на треть я прав

Почему в запись попадает music_on_hold при использовании опции b?

Перевел свой офисный астериск с 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.
  • Вопрос задан
  • 120 просмотров
Решения вопроса 2
@dronmaxman
VoIP Administrator
Перезагрузку dialplan делаешь через ael reload?

Лучше делать так, тогда запись разговора начнется после поднятия трубки.

Dial(SIP/provider/399999,,U(moh_abon));
Ответ написан
flapflapjack
@flapflapjack Автор вопроса
на треть я прав
Вопрос снимается. Не знаю что произошло, просто сделал core reload, и все стало работать как надо. Видимо где-то была ошибка, которую я потом неосознанно исправил, читая свой код, и внося правки.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы