Страница 2 из 3
Re: Длительность разговора в заголовке
Добавлено: 28 апр 2015, 15:45
vgo
Я очень много чего не видел в этой жизни вообще и в Астериске (которым всего две недели занимаюсь) в частности.
Re: Длительность разговора в заголовке
Добавлено: 28 апр 2015, 16:07
awsswa
Добавьте в конец вашего кода
exten => h,1,Noop( = время разговора = ${ANSWEREDTIME})
exten => h,n,System(mailx -s '${msubj}' -a /var/lib/asterisk/records/${fname}.wav
lll@ququ.ru)
Re: Длительность разговора в заголовке
Добавлено: 28 апр 2015, 16:35
vgo
Нет, счастье не настало (((
Код: Выделить всё
exten => 1209,1,Set(dialto=FirstLine)
exten => 1209,2,Answer()
exten => 1209,n,Set(fname=${STRFTIME(${EPOCH},,%Y.%m.%d_%H-%M)}-${CALLERID(number)}-${EXTEN})
exten => 1209,n,MixMonitor(/var/lib/asterisk/records/${fname}.wav)
exten => 1209,n,Playback(/var/lib/asterisk/sounds/gr)
exten => 1209,n,Dial(OOH323/PBX/603)
exten => h,1,Set(msubj=Call from ${CALLERID(number)} to ${dialto}, (${ANSWEREDTIME}) ${STRFTIME(${EPOCH},,%H:%M %d.%m.%Y)})
exten => h,n,Wait(5)
exten => h,n,System(echo 'Listen it:'| mailx -s '${msubj}' -a /var/lib/asterisk/records/${fname}.wav lll@ququ.ru)
1. Без строчки Wait(5) сработало, но слишком рано. Файл пришел без последних скольких-то там килобайт и не воспроизводился.
2. Со строчкой Wait(5) файл вообще не был отправлен.
Re: Длительность разговора в заголовке
Добавлено: 28 апр 2015, 16:53
ded
Ну, Вы же разберётесь? Ведь только две недели ещё?
Чуть почитать книгу о будущем телефонии, там таких примеров если и нету, то в интернете (и на этом форуме) точно есть.
Re: Длительность разговора в заголовке
Добавлено: 28 апр 2015, 16:57
Wapo
StopMixMonitor не пробовали делать?
Re: Длительность разговора в заголовке
Добавлено: 29 апр 2015, 09:36
vgo
Итого отчитываюсь ))
1. За информацию по h - спасибо, не знал, буду знать. Но этот вариант решения данной задачи полагаю неправильным: сначала распараллеливаться, потом бороться с этим распараллеливанием и назад синхронизироваться... фууу...
2. Для решения задачи извлекаю информацию из cdr-csv/Master. Попутно отсеиваются звонки, не дошедшие до разговора с оператором.
Вот кусок диалплана:
Код: Выделить всё
exten => 1209,1,Set(dialto=FirstLine)
exten => 1209,2,Answer()
exten => 1209,n,Set(fname=${STRFTIME(${EPOCH},,%Y.%m.%d_%H-%M)}-${CALLERID(number)}-${EXTEN})
exten => 1209,n,Set(uniqid=${UNIQUEID})
exten => 1209,n,MixMonitor(/var/lib/asterisk/records/${fname}.wav,,/usr/lib64/asterisk/srec '${dialto}' '${fname}' '${uniqid}')
exten => 1209,n,Playback(/var/lib/asterisk/sounds/gr)
exten => 1209,n,Dial(OOH323/PBX/603)
Кстати, странность: пришлось ввести переменную uniqid потому что когда ${UNIQUEID} стояло в конце вызова MixMonitor, оно почему-то не срабатывало, третий параметр просто не формировался.
Ну и скриптик
Код: Выделить всё
#!/bin/bash
#
x=`cut -d, -f 14,17,2,10,8 < /var/log/asterisk/cdr-csv/Master.csv | egrep \"Dial\".+\"$3\"`
if [ "$x" != "" ]
then
who=$(cut -d, -f1 <<< $x)
whn=$(cut -d, -f3 <<< $x)
dur=$(cut -d, -f4 <<< $x)
echo 'Dialog' | mailx -s "Dial $who to $1 dur $dur sec at $whn" -a /var/lib/asterisk/records/$2.wav lll@ququ.ru
fi
Не то, чтобы очень красиво, мешают кавычки и хорошо бы писать по-русски, но это поправимо в будущем ))
Вроде как работает.
PS. Порядок полей в первой команде cut может вводить в заблуждение. На самом деле в выходной строке поля упорядочены по возрастанию номеров, т.е., 2,8,10,14,17. Просто так написалось ))
Re: Длительность разговора в заголовке
Добавлено: 29 апр 2015, 10:23
Glukinho
Ну вы извращенец
Re: Длительность разговора в заголовке
Добавлено: 29 апр 2015, 10:24
vgo
Можете проще сделать? покажите.
Re: Длительность разговора в заголовке
Добавлено: 29 апр 2015, 10:42
Glukinho
Замените
вот здесь:
exten => h,1,StopMixmonitor
exten => h,n,Set(msubj=Call from ${CALLERID(number)} to ${dialto}, (${ANSWEREDTIME}) ${STRFTIME(${EPOCH},,%H:%M %d.%m.%Y)})
exten => h,n,System(/bin/sleep 5)
exten => h,n,System(echo 'Listen it:'| mailx -s '${msubj}' -a /var/lib/asterisk/records/${fname}.wav
lll@ququ.ru)
Думаю, все получится.
Второй вариант - присылать не файл, а ссылку на него.
Re: Длительность разговора в заголовке
Добавлено: 29 апр 2015, 10:59
vgo
Нет-нет, от использования ветки h в данном случае я отказываюсь по идейным соображениям )) Я же объяснил выше.
Распараллелить и потом синхронизировать процессы с помощью задержек - это неправильно.
"На это мы не можем пойтить"(С).
Кстати, я пробовал сделать задержку с помощью Wait. Это не сработало, интересно, почему?
Ну то есть следующая строка диалплана уже не запускалась вовсе.
Есть ли основания полагать, что /bin/sleep сработает лучше?
Эх, если бы можно было бы рассылать ссылку на запись, я бы эти две недели занимался бы более другими делами.
Надо рассылать именно запись разговора.
К тому же, весьма вероятно, что придется еще повозиться с письмом, так что не исключено, что скрипт станет из башевского каким-нибудь другим.