Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

отправка записанного разговора на email

1

Приветствую. Есть такая задачка. Необходимо сделать отправку записанного разговора на мыло. Т.е. человек принимает звонок (все пишется), в процессе разговора понимает, что хочет его получить на мыло и жмет какую-нибудь кнопочку. После окончания разговора приходит мыло с файликом. Пытаюсь это сделать через featuresapplicationmapcustom.conf конструкцией вида

sendrecord => *3,self/callee,Macro,sendrec

Но завис на самом главном - непосредственно реализации макроса :) Чую, что должно быть что-то вроде

exten => s,n,System(uuencode ${MIXMON_DIR}${CALLFILENAME}.${MIXMON_FORMAT} ${CALLFILENAME}.${MIXMON_FORMAT} | sendmail email@domain)

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

удалить закрыть спам изменить тег редактировать

спросил 2012-07-19 16:40:54 +0400

lash Gravatar lash
167 7 2 10

4 Ответа

1

у меня работает так: в features.conf rec => *3,self,Macro,apprecord

[macro-apprecord]

exten => s,1,GotoIf($["${XAD}" = "0" | "${XAD}" = ""]?startrec:stoprec)

exten => s,n(startrec),Playback(beep)

exten => s,n,Set(XAD=1)

exten => s,n,Set(date=${STRFTIME(${EPOCH},,%Y%m%d%H%M)})

exten => s,n,Set(FILENAME=/var/spool/asterisk/monitor/${date}-${FAXExten}.wav;)

exten => s,n,MixMonitor(${FILENAME},b,/var/lib/asterisk/agi-bin/sendmonitor.sh ${FILENAME} ПОЧТА@КУДАНАДО);

exten => s,n,MacroExit

exten => s,n(stoprec),StopMonitor

exten => s,n,Set(XAD=0)

exten => s,n,Playback(beep)

exten => s,n,MacroExit

sendmonitor.sh:

!/bin/bash

fname=dirname $1/basename $1 .wav.mp3;

nice -n 19 lame -b 16 -m m -q 9-resample $1 $fname ;

subj=basename $1

sendEmail -f ПОЧТА@ОТКОГО -t $2 -u $subj -a $fname

if [ -f "$fname" ]

then 

    rm $1;

fi

ссылка удалить спам редактировать

ответил 2012-07-23 12:07:01 +0400

Vasya Gravatar Vasya
71 1

Comments

О, то что надо. Спасибо.

lash ( 2012-07-26 13:17:08 +0400 )редактировать
0

Чтобы в конце разговора получить его на почту, он должен либо с самого начала писаться, либо с середины (с момента нажатия). Рассмотрим оба варианта.

  1. Все разговоры пишутся. После разговора проверяется флаг, отвечающий за отправку разговора на почту. При помощи featuremap можно выставлять этот флаг во время разговора. В конце разговора если не включена отправка на почту опционально удалять запись.

  2. Разговор пишется с момента посылки DTMF. Я не знаю, как активировать запись на существующем канале, поэтому буду изобретать, Например можно создать динамическую конференцию с записью, а потом тихо через channelredirect туда перенаправлять существующий разговор. Либо, вызывать AMI команду, активирующую запись на канале. Мне кажется, это более правильно.

У первого способа по сравнению со вторым есть плюс - весь разговор. Бывает такое, записать хочешь, пишешь, а поздно, главные слова уже были сказаны. Но есть и минус - хочешь записать кусок разговора, а пишешь весь. Значит, делать надо оба способа :-)

ссылка удалить спам редактировать

ответил 2012-07-20 09:58:04 +0400

litnimax Gravatar litnimax
1453 11 8 29
http://www.pbxware.ru/

Comments

Все разговоры пишутся по умолчанию. Получается человек говорит, а потом решает что эта запись нужна ему и на мыло (можно конечно его потом ручками в общем потоке выискивать, но это то). То, что в процессе надо выставить флаг, а потом его обработать я придумал :) Возникла загвоздка как бы без сильного руковмешательства это интегрировать в стандартный эластикс.

lash ( 2012-07-20 10:28:24 +0400 )редактировать

запись на канале делаеться через фичу monitor или через AMI вызов монитор.

meral ( 2012-07-20 10:50:32 +0400 )редактировать

> без сильного руковмешательства это интегрировать в стандартный эластикс. Я не знаток FreePbx, но думаю, там либо features.conf, либо featurescustom.conf, куда вписать надо свой макрос. А потом добавить его в extensionscustom.conf. IMHO вообще не вмешиваясь в freepbx.

litnimax ( 2012-07-20 11:49:57 +0400 )редактировать
0

вот так не?

sendrecord => *3,self/callee,System,/etc/asterisk/sendtoemail.sh ^{CDR(uniqueid)}

а в скрипте по uniqueid ищешь запись и посылаешь.

ссылка удалить спам редактировать

ответил 2012-07-19 22:33:54 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

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

lash ( 2012-07-20 10:25:30 +0400 )редактировать

ну да. если хотите в конце- метите его какойто меткой и потом послыаете по крону. вам же сказали, если вы недостаточно програмист наймите експерат.

meral ( 2012-07-20 10:49:54 +0400 )редактировать
0

Без рук не получится. Если не хочется лезть самому руками, найди, кто это сделает за деньги.

ссылка удалить спам редактировать

ответил 2012-07-19 17:39:10 +0400

amonra Gravatar amonra flag of Ukraine
2301 26 13 65
http://lantec.ua/

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку
2 закладки

подписаться на rss ленту новостей

Статистика

Задан: 2012-07-19 16:40:54 +0400

Просмотрен: 2,165 раз

Обновлен: Jul 23 '12

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.