I'm using the Asterisk.Net library for my FastAGI. I do RecordFileCommand and I know it was saved on the var/lib/asterisk/sound directory. My question is how to get the recorded file using the Asterisk.Net library?
问问题
1421 次
2 回答
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)
于 2013-06-10T12:21:36.347 回答
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)
您还可以将文件流式传输到内存中。从那里您可以转换/存储文件等。
于 2013-07-04T03:45:46.483 回答