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

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

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

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

vgo
Сообщения: 122
Зарегистрирован: 23 апр 2015, 17:58

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

Сообщение vgo »

Я очень много чего не видел в этой жизни вообще и в Астериске (которым всего две недели занимаюсь) в частности.
awsswa
Сообщения: 2390
Зарегистрирован: 09 июн 2012, 10:52
Откуда: Россия, Пермь skype: yarick_perm

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

Сообщение awsswa »

Добавьте в конец вашего кода

exten => h,1,Noop( = время разговора = ${ANSWEREDTIME})
exten => h,n,System(mailx -s '${msubj}' -a /var/lib/asterisk/records/${fname}.wav lll@ququ.ru)
платный суппорт по мере возможностей
vgo
Сообщения: 122
Зарегистрирован: 23 апр 2015, 17:58

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

Сообщение 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) файл вообще не был отправлен.
ded
Сообщения: 15630
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

Ну, Вы же разберётесь? Ведь только две недели ещё?
Чуть почитать книгу о будущем телефонии, там таких примеров если и нету, то в интернете (и на этом форуме) точно есть.
Аватара пользователя
Wapo
Сообщения: 795
Зарегистрирован: 02 мар 2011, 17:53

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

Сообщение Wapo »

StopMixMonitor не пробовали делать?
vgo
Сообщения: 122
Зарегистрирован: 23 апр 2015, 17:58

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

Сообщение 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. Просто так написалось ))
Glukinho
Сообщения: 661
Зарегистрирован: 07 янв 2011, 20:05

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

Сообщение Glukinho »

Ну вы извращенец
vgo
Сообщения: 122
Зарегистрирован: 23 апр 2015, 17:58

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

Сообщение vgo »

Можете проще сделать? покажите.
Glukinho
Сообщения: 661
Зарегистрирован: 07 янв 2011, 20:05

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

Сообщение 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)
Думаю, все получится.

Второй вариант - присылать не файл, а ссылку на него.
vgo
Сообщения: 122
Зарегистрирован: 23 апр 2015, 17:58

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

Сообщение vgo »

Нет-нет, от использования ветки h в данном случае я отказываюсь по идейным соображениям )) Я же объяснил выше.
Распараллелить и потом синхронизировать процессы с помощью задержек - это неправильно.
"На это мы не можем пойтить"(С).

Кстати, я пробовал сделать задержку с помощью Wait. Это не сработало, интересно, почему?
Ну то есть следующая строка диалплана уже не запускалась вовсе.
Есть ли основания полагать, что /bin/sleep сработает лучше?

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

К тому же, весьма вероятно, что придется еще повозиться с письмом, так что не исключено, что скрипт станет из башевского каким-нибудь другим.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH