Иногда требуется записывать разговоры на сервере Asterisk. Существует команда Monitor, которая записывает два файла (набирающего и набираемого). Но здесь мы рассмотрим MixMonitor, который пишет все в один файл.
Использовать так:
MixMonitor(имя_файла.расширение,параметры,команда)
Вот перечень параметров, используемых в MixMonitor:
a – Разговор дописывается в конец файла, перезаписи файла при этом не происходит.
b – Разговор сохраняется, только если канал соединен. Сюда не относятся конференции или звуковые файлы, воспроизводимые для каждой соединенной стороны.
v(x) – Громкость прослушивания меняется в x раз (диапазон от –4 до 4).
V(x) – Громкость речи меняется в x раз (диапазон от –4 до 4).
W(x) – Громкость прослушивания и речи меняется в x раз (диапазон от –4 до 4).
Пример простейшей записи:
exten => 1000,1,MixMonitor(/home/records/1000.wav)
В имени файла можно использовать глобальные переменные. Чтобы в имени файла указать дату и номера телефонов, сделаем так:
exten => 1000,1,MixMonitor(/home/records/${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}_${CALLERID(num)}_${CALLERID(dnid)}.wav)
Ну и последнее на сегодня – это сохранение записей MixMonitor в mp3 формате. Конечно, это будет немного нагружать процессор, однако, мы сэкономим дисковое пространство раза в 3! На сервере должен стоять lame для конвертирования. После записи, выполняется команда в системе, которая конвертирует запись и удаляет исходник в wav. Выглядит это так:
exten => 1000,1,MixMonitor(/home/records/${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}_${CALLERID(num)}_${CALLERID(dnid)}.wav,,/usr/local/bin/lame --preset standard /home/records/${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}_${CALLERID(num)}_${CALLERID(dnid)}.wav /home/records/${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}_${CALLERID(num)}_${CALLERID(dnid)}.mp3 && rm -f /home/records/${UNIQUEID}_${CALLERID(num)}_${CALLERID(dnid)}.wav)
Теперь мы можем записывать разговоры на Asterisk! Не забывайте о конфиденциальности данных и законе 🙂