录制后的星号保存到 .wav 文件自动电子邮件,例如 gmail [关闭]
Posted
技术标签:
【中文标题】录制后的星号保存到 .wav 文件自动电子邮件,例如 gmail [关闭]【英文标题】:Asterisk after recording save to .wav file automatic email e.g gmail [closed] 【发布时间】:2013-04-30 08:49:57 【问题描述】:首先我已经完成了录制并保存到“.wav”文件,并且我还完成了使用“postfix”通过电子邮件发送“.wav”的脚本,我的问题是录制完成后会自动通过电子邮件发送“.wav” '文件到我的电子邮件,例如'gmail',
我该怎么办? 脚本是否应该指向 extension.conf? 或 我是否需要设置一个 .wav 文件的文件名将连接到我的脚本的变量?
这是我的 extesion.conf 的示例脚本
[出站] exten => s,1,Answer() exten => s,2,Background(silence/1) exten => s,3,ControlPlayback(/var/example) exten => s,4,Record(/var/$callfile_name$STRFTIME($EPOCH,GMT-8,%m%d%y-%H%M).wav,0, 5,qxk) exten => s,5,Hangup()
这是使用“后缀”通过电子邮件发送到我的 gmail 的脚本
(printf "%s\n" \ “主题:Example_Subject”\ “收件人:example_email@gmail.com”\ “内容类型:应用程序/wav”\ "内容处置:附件;文件名=examplewav.wav" \ “内容传输编码:base64”\ ""; base64 examplewav.wav) |发送邮件“example_email@gmail.com”
【问题讨论】:
【参考方案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"
【讨论】:
嗨,'pce',电子邮件工作正常,但附件 .wav 文件大小始终为 0kb,我不明白你从哪里得到参数 '$1' 和 '$2' 谢谢 o 我明白了,只需添加这样的 .wav 文件路径,exten => h,1,System(/opt/scripts/wavmail.sh /var/$filename example_email@gmail .com)非常感谢【参考方案2】:推荐方式: 如果 cdr 具有该字段,则保存有关将此文件发送到何处并使用外部守护程序(使用队列)发送文件的 cdr 信息。这是最可扩展的方式。简单的方法 - 请参阅 pce 的答案。
【讨论】:
感谢@arheops 的提示以上是关于录制后的星号保存到 .wav 文件自动电子邮件,例如 gmail [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
将 PCM 录制的数据写入 .wav 文件(java android)
ExtAudioRecorder:“写入失败:EBADF(错误文件描述符)”将音频录制到 WAV 文件 - Android Studio