First time here? Check out the FAQ!

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

отправка записанного разговора на 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)

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

спросил Jul 19 '12

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

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

ответил Jul 23 '12

Vasya Gravatar Vasya
71 1

Comments

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

lash (Jul 26 '12)edit
0

вот так не?

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

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

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

ответил Jul 19 '12

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

Comments

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

lash (Jul 20 '12)edit

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

meral (Jul 20 '12)edit
0

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

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

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

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

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

ответил Jul 20 '12

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

Comments

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

lash (Jul 20 '12)edit

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

meral (Jul 20 '12)edit

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

litnimax (Jul 20 '12)edit
0

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

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

ответил Jul 19 '12

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 ленту новостей

Статистика

Задан: Jul 19 '12

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

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

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