Asterisk: запись разговоров.

22nd Февраль 2011 | Метки: , , , ,
Опубликовал: Andrey [rtty] Shidakov

Astersisk Record
Запись разговоров в Asterisk весьма полезная вешь, например, можно проконтролировать, как общаются сотрудники компании с клиентами. Для реализации данного функционала в Asterisk существуют функции Monitor (записывает в разные файлы отдельно голос звонящего и принимающего звонок) и MixMontor (микширует голоса звонящего и принимающего звонок и записывает в один файл).

У себя я сделал так:
Добавил в extensions.ael в секцию global переменные:

globals {
    WAV=/var/log/asterisk/wav; //Временный каталог с WAV
    MP3=/usr/local/www/apache22/vhosts/asterisk.myhost.ru/mp3; //Куда выгружать mp3 файлы
    RECORDING=1; // Запись, 1 - включена.
}

Вот пример из моего конфига:

// Звонки на городские номера будут адресоваться через PSTN-GW.
context city-numbers {
       _XXXXXX => {
       if ("${RECORDING}" = "1"){
              Set(monopt=nice -n 19 /usr/local/bin/lame -b 16  --silent "${WAV}/${UNIQUEID}.wav"  "${MP3}/${UNIQUEID}.mp3" && rm -f "${WAV}/${UNIQUEID}.wav");.
              MixMonitor(${WAV}/${UNIQUEID}.wav,b,${monopt});
       };
              Dial(SIP/${EXTEN}@spa3102,,T);
       };
};

В примере выше: monopt задает комманду, выполняему после окончания записи, в данном случае выполняется комманда для конвертирования wav в mp3. Файл будет сохранен с именем ${UNIQUEID} (уникальный идентификатор звонка).
Прим. Lame должен быть установлен ( /usr/ports/audio/lame )

UPD: Продолжение: прикручиваем веб интерфейс для прослушивания звонков: http://nixadm.ru/archives/659

					
  1. Алексей
    9th Июнь 2012 в 21:24

    Подскажите пожалуйста
    [proba]
    exten => _7910XXXXXXX,1,Set(CALLFILENAME=${STRFTIME(${EPOCH},,%d-%m-%Y_%H:%M)}-${CALLERID(number)}-${EXTEN})
    exten => _7910XXXXXXX,2,Set(monopt=nice —n 19 /usr/bin/lame —b 16 —noshort —silent «/home/share/monitor/${CALLFILENAME}.wav» «/home/share/monitor/${CALLFILENAME}.mp3» && rm —f «/home/share/monitor/${CALLFILENAME}.wav»)
    exten => _7910XXXXXXX,3,MixMonitor(/home/share/monitor/${CALLFILENAME}.wav,b,${monopt})
    exten => _7910XXXXXXX,4,DIAL(${OUTSIP}/${EXTEN},20)
    exten => _7910XXXXXXX,n,Hangup()
    Пишет разговор, но в mp3 не переводит, но аналогичная строчка в консоли debian 6.0:
    lame -b 16 -h /home/share/monitor/201206091537-303-79108874449.wav /home/share/monitor/201206091537-303-791088744491.mp3
    работает без проблем, в чем может быть причина?
    Заранее спасибо

Вы должны авторизоваться для отправки комментария.