我正在为我的FastAGI使用Asterisk.Net库。我做RecordFileCommand,我知道它保存在var / lib / asterisk / sound目录中。我的问题是如何使用Asterisk.Net库获取录制的文件?
答案 0 :(得分:2)
我有一种感觉,你需要在库外寻找另一种方法来检索文件。
作为其他语言的开发人员,我可能会有一个脚本来处理我的文件,例如,您可以使用h
扩展名对文件进行后期处理。
在我展示的这个例子中,我使用system命令使用系统shell复制文件。我将存储受监视对话的文件复制到共享安装点。
如果您希望对离开主机的音频文件进行后期处理,那将是我的建议。
exten => _X.,1,Answer()
same => n,AGI(agi://10.0.0.8/yourApp)
same => n,MixMonitor(recording.ulaw)
same => n,Dial(SIP/example/8005551212)
exten => h,1,System(cp /var/spool/asterisk/monitor/recording.ulaw /mnt/shared)
答案 1 :(得分:0)
简单的答案是你做不到。
扩展者的答案,正如dougBTV指出的那样是使用另一种方法。
如果您希望在.net应用程序中立即执行此操作,最好的办法是使用SSH SharpSSH下载文件
请原谅vb.net:
Imports Tamir.SharpSsh.java.io
Imports Tamir.SharpSsh.jsch
'Connect to the SFTP server
jsch = New JSch()
session = jsch.getSession(user, host, port)
session.setPassword(password)
Dim config2 As Hashtable = New Hashtable()
config2.Add("StrictHostKeyChecking", "no")
session.setConfig(config2)
session.connect()
sftp = DirectCast(session.openChannel("sftp"), ChannelSftp)
sftp.connect()
sftp.get(sftpPath,localpath)
您也可以将文件流式传输到内存中。从那里你可以转换/存储文件等。