AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Отправка записанных разговоров на e-mail

Newbies/FAQ Forum 22 сообщений -
#1

Отправка записанных разговоров на e-mail


Используется trixbox с asterisk 1.8
Задача: автоматически пересылать все записанные разговоры на почту.
Нативными средствами это вроде как сделать нельзя, но можно вызвать внешнюю программу.
Подскажите можно ли это реализовать и если да, то как. Если не затруднит, то подробней, а то пока совсем новичок.
#2

записываете разговор как обычно, в h экстеншене отправляете файл.
_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
#3

Если поточнее то :
скажем для отсылки почты пользуемся sendEmail

exten => h,n,System(sendEmail -f -t -m -a )
#4

Спасибо за быстрые ответы!
Я честно сказать еще не попробовал, но беспокоит вот это "-a " тут видимо необходимо будет указать *.wav ? Но мне же необходимо удалить файл после отправки, а если я буду использовать постановочные знаки, то удалю все записи и те которые еще не отправились?
#5

exten => h,n,System(sendEmail -f -t -m -a && rm /путь/к/файлу)
Question
#6

Файл же будете как-то назвать при записи :

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})
#7

Эх, начинаю злоупотреблять отзывчивостью участников форума....
куда я должен добавить эти строки? Настроено с использованием дефолтного контекста from-internal. При добавлении в custom_extension.conf в секцию from-internal или другие используемые в этом контексте (туда куда указывает строчка include =>), то ничего не происходит и судя по логам тоже ничего не происходит (ну т.е. до вызова sendEmail не доходит).
Подскажите, пожалуйста, еще чуть-чуть Embarassed
#8

sael подробно описал ответ на ваш вопрос. Если вам из него, мало что (или ничего) не понятно, тогда книгу|документация в зубы и читать раздел про "план набора (dialplan)".
http://xgu.ru/wiki/extensions.conf
#9

kernelt, вы абсолютно правы! Сколько примеров не показывай, а без знания основ все будет в пустую. И sael отдельное спасибо за подробный ответ.
Но помогите, пожалуйста, еще чуть чуть. Мне всего-то нужно настроить запись звонков на телефон техподдержки и больше 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})

я всячески пытался добавить туда записи указанные вами, но кроме изменения имени файла ничего не происходит.
в приложении кусок лога (может не тот кусок?)
при этом сама отправка почты той же самой командой из консоли работает нормально
#10

1) основы раздела "план набора" читать на 15 минут, и еще 15 минут для понимания.
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?

ах, вот еще:
посмотрите внимательно, какие вы используете скобки, когда задаете отправку письма. У вас [ ], может стоит использовать ( )?
#11

Команду sendEmail давал я , в качестве примера команды отсылки писем , такой я пользуюсь у себя , правда написал что "предположим что для отправки почты ... " Smile
#12

Цитата:
Ваша ОС знает команду 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 а часть я пытаюсь добавить в конфиг
#13

блин, я просто дурень. Зациклившись на asterisk совсем не подумал что у пользователя asterisk в ОС может не быть нужных прав.
Всем спасибо за помощь и терпение - проблема решена
#14

дабы не плодить новую тему то напишу тут.
не понимаю почему не идет отправка сообщения на почту. отправляю через мутт, т.к. просто. вручную через консоль файлики отпрвляются.
когда смотрю мейллог то он пустой.
Код:
диалплан записи звонка + отправка сообщения
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()
#15

пропишите полные пути
#16

прописал, эффект тот же.
Код:

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)

не понимаю. прошу помощи.
#17

Найдите разницу кроме EXTEN и приложения между:
Код:
exten => 9,1,Playback(en/beep)

и
Код:
exten => h,n,System(echo "Call from ${CALLERID(number)}"
#18

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
который и файлик запишет и на мыло пришлет
#19

_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)
#20

Уважаемый!!!!!

Разберитесь в логике работы астера.
1. Идет звонок и попадает на экстен 9
2. Начинается запись
3. Заканчивается запись и ... канал рвется
4. Астер ХОЧЕТ перейти в экстен h т.е. обработка ПОСЛЕ завершения звонка. Вот там то и отправляйте что нужно и куда

ЧИТАЙТЕ БОЛЬШЕ!!!!

_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#21

bdyl писал(а):
в cli после сброса звонка после начала записи лишь Spawn extension и всё.

ну собственно это подтверждает то что я написал.
и тогда какого email вы ожидаете и чему удивляетесь ?

bdyl писал(а):
я не игнорировал совет прочесть про диалпланы, я это прочел

Раз так, то вопроса:
bdyl писал(а):
не совсем понимаю ваш вопрос.

Не должно было звучать. т.к. ответ очевиден.
Если не очевиден, то тогда необходимо прочесть ещё раз, до полного просветления.
А именно что означает:
Цитата:
exten => бла-бла-бла,1,итд

Цитата:
exten => бла-бла-бла,n,итд
#22

Цитата:
ну собственно это подтверждает то что я написал.
и тогда какого email вы ожидаете и чему удивляетесь ?

я спрашивал как исправить данную ситуацию.

если прождать запись звонка без сброса то файл не сохраняется, со сбросом все записывается.
а вот почему потом все прерывается не понимаю, ведь по диалплану отправка то проставлена сразу после записи.
Цитата:
А именно что означает:
Цитата:
exten => бла-бла-бла,1,итд

Цитата:
exten => бла-бла-бла,n,итд
а приоритет то причем? отправка сообщения в любом случае будет после записи звонка.