首先我已经完成了记录并保存到'.wav'文件,我也完成了使用'后缀'发送'.wav'的脚本,我的问题是当记录完成时自动将'.wav'文件发送到我的电子邮件,例如'gmail',
我该怎么办?
脚本应该指向extension.conf吗?
或我是否需要设置一个变量,.wav文件的文件名将连接到我的脚本?
下面是我的extension .conf
(出站)
=> 1, 1,Answer()
Background(silence/1)
扩展=> s,3,ControlPlayback(/var/example)
exten => s 4记录(/var/ $ {callfile_name} $ {STRFTIME(${时代}却y % m % d % - % H % m)} . wav, 0, 5, qxk )
=> s,5,Hangup()
这是使用'postfix'向我的gmail发送电子邮件的脚本
(printf "%sn"
"主题:Example_Subject"
"To: example_email@gmail.com"
"Content-Type: application/wav"
"附加项:附件;文件名= examplewav.wav "
"Content-Transfer-Encoding: base64"
";base64 examplewave .wav) | sendmail "example_email@gmail.com"
您可以将文件名设置为一个变量,并通过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 "%sn"
"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"
推荐方式:在话单中保存有关发送该文件的位置的信息,如果话单中有该字段,则使用外部守护进程(使用队列)发送文件。这是最具扩展性的方式。简单的方法-看看pce的答案。