Страница 1 из 3

Длительность разговора в заголовке

Добавлено: 28 апр 2015, 13:22
vgo
Я делаю запись и рассылку разговора таким образом:

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

exten => 1209,1,Set(dialto=FirstLine)
exten => 1209,2,Answer()
exten => 1209,n,Set(fname=${STRFTIME(${EPOCH},,%Y.%m.%d_%H-%M)}-${CALLERID(n
umber)}-${EXTEN})
exten => 1209,n,Set(msubj=Call from ${CALLERID(number)} to ${dialto}, ${STRF
TIME(${EPOCH},,%H:%M %d.%m.%Y)})
exten => 1209,n,MixMonitor(/var/lib/asterisk/records/${fname}.wav,,echo 'Lis
ten it:'| mailx -s '${msubj}' -a /var/lib/asterisk/records/${fname}.wav lll@ququ.ru)
exten => 1209,n,Playback(/var/lib/asterisk/sounds/gr)
exten => 1209,n,Dial(OOH323/PBX/603)
(все имена и фамилии изменены) )))
Теперь от меня хотят, чтобы в теме письма указывалась и длительность разговора.
Но в момент вызова MixMonitor разговор только начался.
А после Dial уже выполнение диалплана заканчивается.
Можно, конечно, использовать и более сложную команду, сделать скрипт. Но как ей передать длительность?

Re: Длительность разговора в заголовке

Добавлено: 28 апр 2015, 14:36
TVMaker
Не надо сложную команду, оставьте миксмонитору только запись. А вот в следующем за ним экстене внешней командой сделайте парсинг готового wav-файла на предмет длительности и рассылку туда, куда надо.

Re: Длительность разговора в заголовке

Добавлено: 28 апр 2015, 14:45
awsswa
а так нельзя что-ли ?

Noop( = время разговора = ${ANSWEREDTIME})

Re: Длительность разговора в заголовке

Добавлено: 28 апр 2015, 14:51
ded
Можно отправлять на hangup
exten => h,1,System(mailx -s '${msubj}' -a /var/lib/asterisk/records/${fname}.wav lll@ququ.ru)

Re: Длительность разговора в заголовке

Добавлено: 28 апр 2015, 14:59
vgo
TVMaker писал(а):Не надо сложную команду, оставьте миксмонитору только запись. А вот в следующем за ним экстене внешней командой сделайте парсинг готового wav-файла на предмет длительности и рассылку туда, куда надо.
Следующий за миксмонитором экстен ничем не лучше, потому что разговор еще только начался.
Следующий за Dial экстен, по-моему, просто не выполняется никогда: разговор уже ушел.
Может, я конечно ошибся. Ну если скажете, что следующий за Dial экстен сработает в случае успешного дозвона, буду еще экспериментировать.

Собственно, тут как раз сложная команда и помогла бы: в скрипте можно написать парсинг wav-файла, а потом уже делать отсылку. Просто обидно, ведь система эту величину знает. А как парсить, это еще думать надо ))

Re: Длительность разговора в заголовке

Добавлено: 28 апр 2015, 15:04
TVMaker
Ахтыжблин, там второе плечо, оказывается. В таком случае искренне рекомендую поменять местами миксмонитор со следующим за ним плэйбэком, дабы не вносить погрешность в продолжительность разговора. Ну и дальше как посоветовал ded - отлавливайте в h по окончании разговора ваш wav файл, анализируйте и отправляйте бандеролью :)

Re: Длительность разговора в заголовке

Добавлено: 28 апр 2015, 15:05
vgo
ded писал(а):Можно отправлять на hangup
exten => h,1,System(mailx -s '${msubj}' -a /var/lib/asterisk/records/${fname}.wav lll@ququ.ru)
Спасибо, про hangup буду читать, в книжке вроде про это не написано?

Re: Длительность разговора в заголовке

Добавлено: 28 апр 2015, 15:06
vgo
awsswa писал(а):а так нельзя что-ли ?

Noop( = время разговора = ${ANSWEREDTIME})
Может и можно, вопрос в том, куда это воткнуть.

Re: Длительность разговора в заголовке

Добавлено: 28 апр 2015, 15:08
vgo
TVMaker писал(а):Ахтыжблин, там второе плечо, оказывается. В таком случае искренне рекомендую поменять местами миксмонитор со следующим за ним плэйбэком, дабы не вносить погрешность в продолжительность разговора. Ну и дальше как посоветовал ded - отлавливайте в h по окончании разговора ваш wav файл, анализируйте и отправляйте бандеролью :)
Что такое "второе плечо"?

Нет, менять миксмонитор с плейбэком не буду, пусть в записи будет, что предупреждали о записи.

По поводу h: там не будет путаницы при обработке одновременно нескольких вызовов?

Re: Длительность разговора в заголовке

Добавлено: 28 апр 2015, 15:29
Wapo

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

По поводу h: там не будет путаницы при обработке одновременно нескольких вызовов?
Интересно - вы когда-нить видели ПУТАНИЦУ в вызовах типа exten => _ХХХ,1,Dial(SIP/${EXTEN}) ? Так чего тогда беспокоиться?