首页 > 其他分享 >Delphi使用Asterisk AMI接口给分机播放系统录音

Delphi使用Asterisk AMI接口给分机播放系统录音

时间:2023-08-04 10:07:29浏览次数:46  
标签:AMI 10 13 分机 Asterisk NULL Delphi

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

Delphi使用Asterisk AMI接口给分机播放系统录音_Delphi

Delphi使用Asterisk AMI接口给分机播放系统录音_Asterisk_02

测试给分机播放产品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;

调用成功

Delphi使用Asterisk AMI接口给分机播放系统录音_AMI_03

测试分机通话


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;

Delphi使用Asterisk AMI接口给分机播放系统录音_呼叫中心_04

标签:AMI,10,13,分机,Asterisk,NULL,Delphi
From: https://blog.51cto.com/u_12668715/6957119

相关文章

  • FreePBX使用AMI接口给分机来电播放系统录音
    FreePBX使用AMI接口给分机来电播放系统录音这里可以预先制作好一段语音文件,将其上传到FreePBX系统录音中,通过AMI接口Playback给分机来电播放系统录音制作用于播放的语音文件准备好需要播放的语音文件,下面将准备的文本”欢迎您的来电,这是是xxx公司,这里能找到您需要的产品....“,我......
  • 2023牛客暑期多校5 I The Yakumo Family
    题意RanfeelsboringathomeandwantstoproposeamathproblemwithYukariandChen!So,here'sTheYakumoFamilyProblem:Givenanintegerarraya,trytocalculatethevalueofthefollowingequationmodulo\(998244353\):\[\sum_{1\lel_1\le......
  • amix vim vimrc 3.6 [_vimrc x64 vim (WorkPlace)]配置
    """"""""""""""""""""""""""""""""""""""""""&qu......
  • C++虚函数、static_cast、dynamic_cast
        C++虚函数:当一个类中拥有至少一个虚函数,那么编译器就会构建出一个虚函数表来指示这些函数的地址,假如继承该类的子类定义并实现了一个同名并具有同样函数签名的方法重写了基类中的方法,那么虚函数表会将该函数指向新的地址。    此时多态性就体现出来了:当我们将基......
  • Gym103687K Dynamic Reachability
    一个很奇妙的题。回想起之前打的一场模拟赛,有一道题的部分问题是要维护动态图两两联通性的。可能不太一样,但是他有一个离线的思想,将没有修改过的边提前拎出来,把已知的联通性先求了,再用线段树分治一类的可撤销做法维护剩下边的修改。但是这样维护的复杂度跟修改次数相关非常大,如果......
  • Delphi轻松读写NDEF文本、智能海报、应用控制等NFC标签
        NDEF全称NFCdataexchangeformat即nfc数据交换格式,是一种标准化的数据格式,可用于在任何兼容的NFC设备与另一个NFC设备或标签之间交换信息。数据格式由NDEF消息和NDEF记录组成。    NDEF信息可以写到不同类型的NFC芯片中,如NFC_Forum_Type2类的Ntag2x、FM1......
  • 使用Delphi编写DLL劫持内存补丁
    在有些破解程序时,不能暴力修改程序,修改后,程序就不能正常运行,因为很多程序启动时有自我的校验,但是当程序加载到内存后,在内存中修改相应的地方就可以达到破解的效果。那么怎样在不破坏程序的前提下,达到修改程序呢?当一个可执行文件运行时,Windows加载器将可执行模块映射到进程的地址......
  • Delphi 的 DBGrid 中的下拉列表和查找字段编程方法
    数据网格是非常流行的数据输入和显示形式,像大家熟悉的Excel、VFP 中的功能强大的BROWS 等,为广大程序员乐于采用。在用 Delphi 开发数据库应用系统时,利用数据网格DBGrid 输入数据时,有些字段只允许某几个固定的字符串,像档案案卷的保管期限,只有“永久”、“长期”和“短期”三种......
  • Delphi中的Sender:TObject对象解析
     Delphi中的Sender:TObject1、Sender介绍Sender的类型是Tobject,是Tobject的派生类。Sender是一个TObject类型的参数,它告诉Delphi哪个控件接收这个事件并调用相应的处理过程。例如:procedureTForm1.Button1Click(Sender:TObject);begin//end;当点击BUTTON1时,会......
  • Delphi中URL的编码与解码;即urlencode的使用
    一、URL简介   URL是网页的地址,比如 ​​ ​http://www.shanhaiMy.com​​​。Web浏览器通过URL从web服务器请求页面。   由于URL字符串常常会包含非ASCII字符,URL在传输过程中,往往出现错误。因此,可以将非字符串字符,让一些特殊ASCII字符组合,代替非ASCII字符。这就......