记录后的星号保存为.wav文件自动发送电子邮件,例如gmail

时间:2013-04-30 08:49:57

标签: email asterisk recording

首先我已完成录制并保存到'.wav'文件,并且我也完成了使用'postfix'通过电子邮件发送'.wav'的脚本,我的问题是当录制完成时自动发送电子邮件'.wav '提交给我的电子邮件,例如'gmail',

我该怎么办?
脚本是否应该指向extension.conf?
或 我是否需要设置一个可变的文件,即.wav文件的文件名将连接到我的脚本?

这是我的extesion.conf的示例脚本

  

[呼出]
  exten => S,1,回答()
  exten => S,如图2所示,背景(沉默/ 1)
  exten => S,3,ControlPlayback(在/ var /实例)
  exten => S,如图4所示,记录(在/ var /的 $ {callfile_name} $ {STRFTIME($ {EPOCH},GMT-8,%M%d%Y-%H%M)}。WAV,0,5,qxk
  exten =>秒,5,挂断()

这是使用'postfix'

通过电子邮件发送到我的Gmail的脚本
  

(printf“%s \ n”\\       “主题:Example_Subject”\\       “To:example_email@gmail.com”\\       “Content-Type:application / wav”\
      “Content-Disposition:attachment; filename = examplewav.wav ”\\       “Content-Transfer-Encoding:base64”\\       “”;    base64 examplewav.wav )| sendmail“example_email@gmail.com”

2 个答案:

答案 0 :(得分:1)

您可以将文件名设置为变量,并通过h扩展程序在挂断时执行sendmail。

[outbound]
exten => s,1,Answer()
exten => s,n,Background(silence/1)
exten => s,n,ControlPlayback(/var/example)
exten => s,n,Set(filename=${callfile_name}${STRFTIME(${EPOCH},GMT-8,%m%d%y-%H%M)}.wav)
exten => s,n,Record(/var/${filename},0,5,qxk)
exten => s,n,Hangup()
exten => h,1,System(/opt/scripts/wavmail.sh ${filename} example_email@gmail.com)

/opt/scripts/wavmail.sh(第一个参数是$ 1,第二个$ 2,......)

#!/usr/bin/env bash

(printf "%s\n" \
"Subject: Example_Subject" \
"To: $2" \
"Content-Type: application/wav" \
"Content-Disposition: attachment; filename=$(basename $1)" \
"Content-Transfer-Encoding: base64" \
""; base64 $1) | /usr/bin/sendmail "$2"

答案 1 :(得分:0)

推荐方式: 如果cdr有该字段,请在cdr info中保存有关发送此文件的位置并使用外部守护程序(使用队列)发送文件。这是最具可扩展性的方式。简单的方法 - 见pce的答案。