首先我已完成录制并保存到'.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”
答案 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的答案。