Delphi使用Asterisk AMI接口给分机播放系统录音
查找资料
在上一篇“Delphi调用Asterisk系统AMI接口取得来电号码”成功连接上Asterisk AMI接口取得来电号码,我们来测试用AMI来做点其它,比如说当系统出现故障后,给分机发送一个报警提醒,要怎么实现呢?
经过查找资料我们发现在/var/lib/asterisk/agi-bin/phpagi-asmanager.php有ami接口的代码使用样例,虽然这里是php,但参数还是类似的,有一定的参考作用,但这个是封装过的,这时我们可以在asterisk的wiki上查查资料
https://wiki.asterisk.org/wiki/dosearchsite.action?where=AST&spaceSearch=true&queryString=Originate
测试给分机播放产品1介绍
procedure TF_Server_AsteriskAMI_Main.Btn_PlaybackClick(Sender: TObject);
var
s: string;
begin
//给分机播放产品1介绍
s := 'Action:Originate' + #13#10
+ 'Channel:pjsip/1001' + #13#10
+ 'Exten:1003' + #13#10
+ 'Context:from-internal' + #13#10
+ 'Priority:1' + #13#10
+ 'Timeout:30000' + #13#10
+ 'CallerID:9119' + #13#10
+ 'Variable:NULL' + #13#10
+ 'Account:NULL' + #13#10
+ 'Application:Playback' + #13#10
+ 'Data:custom/cp1' + #13#10
+ #13#10;
Cs_AMI.Socket.SendText(s);
end;
调用成功
测试分机通话
procedure TF_Server_AsteriskAMI_Main.BtnDialClick(Sender: TObject);
var
s: string;
begin
//分机通话
s := 'Action:Originate' + #13#10
+ 'Channel:pjsip/1001' + #13#10
+ 'Exten:1009' + #13#10
+ 'Context:from-internal' + #13#10
+ 'Priority:1' + #13#10
+ 'Timeout:30000' + #13#10
+ 'CallerID:1001' + #13#10
+ 'Variable:NULL' + #13#10
+ 'Account:NULL' + #13#10
+ 'Application:Dial' + #13#10
+ 'Data:pjsip/1009' + #13#10
+ #13#10;
Cs_AMI.Socket.SendText(s);
end;
标签:AMI,10,13,分机,Asterisk,NULL,Delphi
From: https://blog.51cto.com/u_12668715/6957119