Отправка записанных разговоров на e-mail
Задача: автоматически пересылать все записанные разговоры на почту.
Нативными средствами это вроде как сделать нельзя, но можно вызвать внешнюю программу.
Подскажите можно ли это реализовать и если да, то как. Если не затруднит, то подробней, а то пока совсем новичок.
_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
скажем для отсылки почты пользуемся sendEmail
exten => h,n,System(sendEmail -f -t -m -a )
Я честно сказать еще не попробовал, но беспокоит вот это "-a " тут видимо необходимо будет указать *.wav ? Но мне же необходимо удалить файл после отправки, а если я буду использовать постановочные знаки, то удалю все записи и те которые еще не отправились?
exten => s,1,Set(FILE=${CALLERID(num)}--${EXTEN}--${STRFTIME(${EPOCH},,%d:%m:%Y--%H:%M:%S)}.wav)
exten => s,n,MixMonitor(${FILE})
..
exten => h,n,System(sendEmail -f -t -m -a /var/spool/asterisk/monitor/${FILE})
exten => h,n,System(rm /var/spool/asterisk/monitor/${FILE})
куда я должен добавить эти строки? Настроено с использованием дефолтного контекста from-internal. При добавлении в custom_extension.conf в секцию from-internal или другие используемые в этом контексте (туда куда указывает строчка include =>), то ничего не происходит и судя по логам тоже ничего не происходит (ну т.е. до вызова sendEmail не доходит).
Подскажите, пожалуйста, еще чуть-чуть
http://xgu.ru/wiki/extensions.conf
Но помогите, пожалуйста, еще чуть чуть. Мне всего-то нужно настроить запись звонков на телефон техподдержки и больше Asterisk пока нигде использовать не планируется. А перечитать мегабайты документации для этого просто не хватает времени.
За запись, как я понял, отвечает секция [macro-record-enable] в файле extensions_additional.conf выглядит она так:
include => macro-record-enable-custom
exten => s,1,GotoIf($["${BLINDTRANSFER}" = ""]?check)
exten => s,n,ResetCDR(w)
exten => s,n,StopMixMonitor()
exten => s,n(check),AGI(recordingcheck,${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)},${UNIQUEID})
exten => s,n,MacroExit()
exten => s,1+998(record),MixMonitor(${MIXMON_DIR}${CALLFILENAME}.${MIXMON_FORMAT},,${MIXMON_POST})
я всячески пытался добавить туда записи указанные вами, но кроме изменения имени файла ничего не происходит.
в приложении кусок лога (может не тот кусок?)
при этом сама отправка почты той же самой командой из консоли работает нормально
2) Из вашего лога видно, что астериск вызывает системную команду
| Код: |
| Executing [sendEmail -f system@asterisk-02.law.spbgu -s mail.домен.ru:25 -t имя@домен.ru -u call record -m attach -a /var/spool/asterisk/monitor/*.wav)] |
Работает она или нет, это уже астериска не касается, он передел ОС что ей необходимо сделать, далее дело за ней. Проверьте, письмо пришло? Посмотрите /var/log/maillog на наличие ошибок.
А вообще я и sael приводили вам примеры, которые удобно использовать когда сис.админ вручную редактирует на сервере астериска его конфиги. Вы же, используете trixbox, тогда зачем вам лезть в конфиги, которые сочиняла система trixbox? Разве trixbox не позволяет решить эту задачу через с помощью его web управления?
Вы говорите что ручной ввод команды отправки письма из консоли работает, а когда передает эту же команду астериск, то она не работает. Одна из проблем в том, что вы совместили редактирование конфигов, часть делаете через систему trixbox, часть вручную. Лично мое мнение - это не правильно. Посмотрите внимательней на функционал trixbox`a, мне не верится в то, что он не позволяет этого сделать.
А еще, мне не понятно, почему системе передается команда sendEmail для отправки почты, если обычно используется sendmail. Ваша ОС знает команду sendEmail?
ах, вот еще:
посмотрите внимательно, какие вы используете скобки, когда задаете отправку письма. У вас [ ], может стоит использовать ( )?
| Цитата: |
| Ваша ОС знает команду sendEmail? |
| Цитата: |
| Работает она или нет, это уже астериска не касается, он передел ОС что ей необходимо сделать, далее дело за ней. Проверьте, письмо пришло? Посмотрите /var/log/maillog на наличие ошибок. |
Да, я добавлял пакет sendEmail. Вот эта строчка sendEmail -f system@asterisk-02.law.spbgu -s mail.домен.ru:25 -t имя@домен.ru -u call record -m attach -a /var/spool/asterisk/monitor/*.wav (с подставленными реальными доменом и именем почты) выполненная из терминала пересылает все файлы, письмо приходит.
trixbox был выбран совершенно случайно, как решение, которое должно было заработать из коробки. И в нем даже есть поле с надписью "Run after record:" но почему-то не работает(( Кстати, строчка лога, которую цитировал kernelt относится именно к этой опции (там была ошибка - лишняя закрывающая скобка в конце). [] добавились автоматически.
А вообще, вы скорее всего правы, и проблема именно в том что часть настроек сделана из webgui а часть я пытаюсь добавить в конфиг
Всем спасибо за помощь и терпение - проблема решена
не понимаю почему не идет отправка сообщения на почту. отправляю через мутт, т.к. просто. вручную через консоль файлики отпрвляются.
когда смотрю мейллог то он пустой.
| Код: |
| диалплан записи звонка + отправка сообщения exten => 9,1,Playback(en/beep) same => n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN}) same => n,Record(/home/asterisk/records/${fname}.wav,0,30,k) exten => h,n,System(echo "Call from ${CALLERID(number)}" | mutt -s "Call from ${CALLERID(number)}" -a /home/asterisk/records/${FILE} -- support@mail-mail.ru) exten => h,n,System(rm /home/asterisk/records/${FILE}) same=> n,Hangup() |
| Код: |
| exten => h,n,System(echo "Call from ${CALLERID(number)}" | mutt -s "Call from ${CALLERID(number)}" -a /usr/home/asterisk/records/${FILE} -- support@mail-mail.ru) exten => h,n,System(rm /usr/home/asterisk/records/${FILE}) |
что я делаю не так? понять не могу, может как то не так вызываю mutt в диалплане?
upd. попробовал вставить экстеншен в начало диалплана, всё срабатывает. также попрбовал вставить sendEmail после записи сообщения. не срабатывает.
т.е. после
| Код: |
| exten => 9,1,Playback(en/beep) same => n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN}) same => n,Record(/home/asterisk/records/${fname}.wav,0,30,k) |
не понимаю. прошу помощи.
| Код: |
| exten => 9,1,Playback(en/beep) |
и
| Код: |
| exten => h,n,System(echo "Call from ${CALLERID(number)}" |
| bdyl @ Вт Мар 03, 2015 11:07 писал(а): | ||
| прописал, эффект тот же. |
| Код: |
| exten => h,n,System(echo "Call from ${CALLERID(number)}" | mutt -s "Call from ${CALLERID(number)}" -a /usr/home/asterisk/records/${FILE} -- support@mail-mail.ru) exten => h,n,System(rm /usr/home/asterisk/records/${FILE}) |
что я делаю не так?
в каком же месте тут у вас полные пути ?
echo -> /bin/echo
mutt -> /usr/local/bin/mutt
rm -> /bin/rm
| bdyl писал(а): |
| понять не могу, может как то не так вызываю mutt в диалплане? |
ответ в CLI вашего Asterisk, где можно видеть что строка не отрабатывает
| bdyl писал(а): |
| не понимаю |
и не поймете, т.к. вы по прежнему игнорируете совет все же взять и открыть книжку, дабы понять наконец основы и что из себя представляет dialplan
+1 к _Pavel_
так же вообще не ясно зачем все это если есть штатный функционал -> voivemail
который и файлик запишет и на мыло пришлет
| _Pavel_ @ Вт Мар 03, 2015 14:23 писал(а): | ||||
| Найдите разницу кроме EXTEN и приложения между: |
| Код: |
| exten => 9,1,Playback(en/beep) |
и
| Код: |
| exten => h,n,System(echo "Call from ${CALLERID(number)}" |
9 и h? не совсем понимаю ваш вопрос. я сделал это так:
| Код: |
| exten => 9,1,Playback(en/beep) same => n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${ EXTEN}) same => n,Record(/home/asterisk/records/${fname}.wav,0,15,k) same => n,System(/bin/echo "record" | /usr/local/bin/mutt -s "Call from ${CALLER ID(number)}" -a /usr/home/asterisk/records/${FILE} -- support@mail-mail.ru) same => n,System(/bin/rm/usr/home/asterisk/records/${FILE}) |
в каком же месте тут у вас полные пути ?
echo -> /bin/echo
mutt -> /usr/local/bin/mutt
rm -> /bin/rm
так тоже делал, не помогло.
| Цитата: |
| ответ в CLI вашего Asterisk, где можно видеть что строка не отрабатывает |
в cli после сброса звонка после начала записи лишь Spawn extension и всё.
я не игнорировал совет прочесть про диалпланы, я это прочел, я не понимаю, может что я не так понял. может еще что прочесть.
| Цитата: |
| voivemail |
касательно voicemail - там еще более не понимаю как настроить, в плане везде маны где вроде как всё просто, но на деле настройка мта.
хотя сейчас мне этот вариант уже кажется более простым.
Последний раз редактировалось: bdyl (Чт Мар 05, 2015 08:02)
Разберитесь в логике работы астера.
1. Идет звонок и попадает на экстен 9
2. Начинается запись
3. Заканчивается запись и ... канал рвется
4. Астер ХОЧЕТ перейти в экстен h т.е. обработка ПОСЛЕ завершения звонка. Вот там то и отправляйте что нужно и куда
ЧИТАЙТЕ БОЛЬШЕ!!!!
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
| bdyl писал(а): |
| в cli после сброса звонка после начала записи лишь Spawn extension и всё. |
ну собственно это подтверждает то что я написал.
и тогда какого email вы ожидаете и чему удивляетесь ?
| bdyl писал(а): |
| я не игнорировал совет прочесть про диалпланы, я это прочел |
Раз так, то вопроса:
| bdyl писал(а): |
| не совсем понимаю ваш вопрос. |
Не должно было звучать. т.к. ответ очевиден.
Если не очевиден, то тогда необходимо прочесть ещё раз, до полного просветления.
А именно что означает:
| Цитата: |
| exten => бла-бла-бла,1,итд |
| Цитата: |
| exten => бла-бла-бла,n,итд |
| Цитата: |
| ну собственно это подтверждает то что я написал. и тогда какого email вы ожидаете и чему удивляетесь ? |
я спрашивал как исправить данную ситуацию.
если прождать запись звонка без сброса то файл не сохраняется, со сбросом все записывается.
а вот почему потом все прерывается не понимаю, ведь по диалплану отправка то проставлена сразу после записи.
| Цитата: |
| А именно что означает: Цитата: exten => бла-бла-бла,1,итд Цитата: exten => бла-бла-бла,n,итд |