首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Perl发出SIP调用并接收DTMF输入?

问如何从Perl发出SIP调用并接收DTMF输入?
EN

Stack Overflow用户
提问于 2012-05-02 06:04:11
回答 3查看 4.5K关注 0票数 2

在运行在Linux上的命令行Perl应用程序中,我需要打个电话(SIP),播放一个音频文件,然后等待并接收来自被调用方的DTMF输入。

我不能运行任何GUI应用程序,所以大多数Linux客户端都退出了竞争。

目前我正在使用pjsua,不幸的是,这有一些我想避免的问题。

实现这一目标的最佳方法是什么?

Linux有任何完全脚本的命令行SIP客户端吗?有什么正常的图书可以用吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-16 20:20:13

我强烈推荐FreeSWITCH。它实际上附带了Perl,因此您可以从您的Perl程序中与FreeSWITCH服务器对话,并发起调用、发送/接收DTMF、播放音频文件等等。

例如,有一种方法可以让FreeSWITCH在接到电话时调用您的Perl程序。

票数 1
EN

Stack Overflow用户

发布于 2012-05-02 07:25:43

不要在Perl中实现您自己的SIP客户机。这将是一个皮塔和浪费时间,因为有现成的实现。

例如,您可以为此使用星号。它的脚本功能非常灵活。它有一个伟大的社区,并有很好的文档-你可以在网上找到许多例子。

其他类似星号的解决方案是叶特和FreeSwitch。

在星号中,您基本上可以:

  1. 通过在假脱机目录中放置一个呼叫文件来启动调用。
  2. 将新的传出调用连接到一个特殊的“扩展”(基本上是一个脚本块):

示例拨号计划脚本:

代码语言:javascript
复制
[specialstuff]
exten => s,1,Wait(1)                  ; wait a second before playback
exten => s,2,Playback(yourfile.wav)   ; play your file
exten => s,3,AGI(yourscript.pl)       ; run your script with AGI interface
       ; in "yourscript.pl" you can wait for / receive DTMF and react on it

或者,您可以完全以星号实现DTMF内容。这被称为IVR (交互式语音应答)。网上有很多例子。

代码语言:javascript
复制
[specialstuff]
exten => s,1,Wait(1)                  ; wait a second before playback
exten => s,2,Playback(yourfile.wav)   ; play your file
exten => s,3,WaitExten(10)            ; wait 10 seconds for DTMF input

exten => 1,1,System(/your/script.pl one)   ; callee pressed DTMF 1
exten => 1,2,Playback(thanks)              ; give feedback

exten => 2,1,System(/your/script.pl two)   ; callee pressed DTMF 2
exten => 2,2,Playback(goodbye)             ; give feedback

exten => 3,1,System(/your/script.pl three) ; callee pressed DTMF 3
exten => 3,2,Playback(something)           ; give feedback
票数 1
EN

Stack Overflow用户

发布于 2012-05-02 08:12:57

大约一年前,我看过如何使用可用的CPAN模块来实现这样的SIP客户端。

然而,最后我决定使用SIPp。这不是完全直观的(我花了很多时间调试Wireshark中的调用流),但最终它完成了我需要做的所有事情,甚至更多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10408501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档