VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Monitor/Stopmonitor AMI

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Ответить
Menjoy
Сообщения: 65
Зарегистрирован: 13 фев 2012, 12:09

Monitor/Stopmonitor AMI

Сообщение Menjoy »

Здравствуйте.

Прочитал документацию, вижу что по команде Monitor записывается звуковая дорожка определенного канала, при звонке есть два канала - вызываемой и вызывающей стороны. Как я понимаю, записывать нужно два канала и затем их объединять, как это можно сделать через AMI? Или все же оптимальный способ делать это через диалплан?
Так или иначе, при записи разговора через AMI нет проблемы определить имя записи в папке, т.к. мы сами его задаем. А как определить имя записанного и микшированного файла в случае записи командой в диалплане? Сообщает ли Астериск о том, что был записан определенный звонок в AMI?

Параллельно разбираюсь сам.
Насколько вижу - оптимальный способ все же записывать через диалплан, только еще не ясно как формируется имя файла, хотелось бы его все же контролировать, чтобы не иметь проблем с принадлежностью статистики по звонку и записанного разговора.

p.s. Очень странно, что такое поле не предусмотрено в Cdr (хотя, видимо, можно использовать Userfield для таких целей).
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Monitor/Stopmonitor AMI

Сообщение Vlad1983 »

а что мешает добавить поле в таблицу cdr и писать в него имя файла Set(CDR(record)=блаблабла) ?
ЛС: @rostel
Dgoni_ev
Сообщения: 24
Зарегистрирован: 22 ноя 2010, 16:13
Откуда: г.Санкт-Петербург

Re: Monitor/Stopmonitor AMI

Сообщение Dgoni_ev »

Объединить можно с использование soxmix.
Конкретный пример записи звонков

Код: Выделить всё

exten => s,1,Verbose(========= START CALLERID=${CALLERID(num)} ========)
exten => s,n,Set(AON=${CALLERID(number)})
exten => s,n,Set(Time_Start=${EPOCH})
exten => s,n,Set(Date_Start=${STRFTIME(${Time_Start},,%d-%m-%Y)})
exten => s,n,Set(Time_Start_Format=${STRFTIME(${Time_Start},,%H:%M:%S)})
exten => s,n,Set(Name_File=${AON}-${Date_Start}_${Time_Start_Format})
exten => s,n,Answer()
exten => s,n,Wait(1)
exten => s,n,Playback(ru/RISONE-OFFICE/ru_dummy)

exten => s,n,GotoIfTime(09:00-20:56,*,*,*?daytime:nighttime)
; day - день
; night - ночь

exten => s,n(nighttime),Playback(ru/RISONE-OFFICE/s9_00_do_21)
exten => s,n,Hangup()

exten => s,n(daytime),Monitor(wav,/tmp/${Name_File})
exten => s,n,Playback(ru/RISONE-OFFICE/welcome)
Далее вызов попадает в очередь
и при отбое

Код: Выделить всё

exten => h,1,Verbose(!!! Hangup IVR HANGUPCAUSE=${HANGUPCAUSE} QUEUESTATUS=${QUEUESTATUS} !!!)
exten => h,n,StopMonitor()

exten => h,n,System(/mix_audio_file ${Name_File})
Код mix_audio_file

Код: Выделить всё

#!/bin/bash
Dir_source=/tmp
Dir_dest=$Dir_source/debit
File_name=$1

soxmix "$Dir_source/$File_name-in.wav" "/tmp/$File_name-out.wav" "/tmp/$File_name.wav"
rm -f "$Dir_source/$File_name-in.wav"
rm -f "$Dir_source/$File_name-out.wav"
gzip "$Dir_source/$File_name.wav"
mv $Dir_source/*.gz $Dir_dest/
Последний раз редактировалось Dgoni_ev 13 мар 2012, 14:04, всего редактировалось 1 раз.
Menjoy
Сообщения: 65
Зарегистрирован: 13 фев 2012, 12:09

Re: Monitor/Stopmonitor AMI

Сообщение Menjoy »

Этому мешает то, что я непосредственно не администрирую Астериск :(
А так, я бы с удовольствием. Поэтому и приходится искать обходные пути.

Dgoni_ev, спасибо за реализацию - попробую донести до админа.
Dgoni_ev
Сообщения: 24
Зарегистрирован: 22 ноя 2010, 16:13
Откуда: г.Санкт-Петербург

Re: Monitor/Stopmonitor AMI

Сообщение Dgoni_ev »

:shock:
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH