首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Freeswitch中是否有read的执行api?

在Freeswitch中,确实有read的执行API。read是Freeswitch中的一个应用模块,用于从用户输入中获取数据。它可以用于语音菜单、IVR系统、呼叫中心等场景中,通过播放音频提示用户输入,并将用户的输入结果返回给应用程序进行后续处理。

read的执行API是<action application="read" data="prompt.wav DTMF_INPUT 5"/>,其中prompt.wav是播放给用户的音频文件,DTMF_INPUT是指定用户输入的类型,可以是DTMF(双音多频)或SPEECH(语音),5是指定等待用户输入的最长时间(单位为秒)。

read的执行API可以通过Freeswitch的API调用,例如使用Freeswitch提供的mod_event_socket模块进行API调用。具体的调用方式可以参考Freeswitch的官方文档或相关开发文档。

在腾讯云中,推荐使用腾讯云通信(Tencent Cloud Communication)产品来实现类似的功能。腾讯云通信提供了语音通话、语音验证码、语音通知等功能,可以满足语音交互的需求。您可以通过腾讯云通信的API接口来实现类似的read功能,具体的接口和使用方法可以参考腾讯云通信的官方文档。

腾讯云通信产品介绍链接地址:腾讯云通信

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • mod_spidermonkey

    SpiderMonkey是第一款最早面世的JavaScript引擎,它是Mozilla使用的Javascript引擎。FreeSWITCH也使用了该引擎来在FreeSWITCH内部支持Javascript嵌入式语言。 FreeSWITCH中对Javascript脚本的支持是在mod_spidermonkey中实现的。通过该模块,可以使用Javascrip控制呼叫流程,如,你可以使用如下Dialplan将电话交给一个Javascript脚本处理: <action application=“javascript” data=“/tmp/test.js”/> 然后,创建如下js文件: session.answer(); session.sleep(1000); session.streamFile("/tmp/hello-js.wav"); session.hangup(); 在js脚本中,可以得到一个session对象(Object),然后就可以对该session进行操作了。一个session代表一路通话。从上面的js脚本中很容易看出,第一行用于对来话进行应答,进二行小睡一会(1000毫秒),第三行则播放一个 .wav 文件,第四行挂机。 是的,它等于以下Dialplan: <action application=“answer””/> <action application=“sleep” data=“1000”/> <action application=“playback” data=“/tmp/hello-js.wav”/> <action application=“hangup”/> 但是,大家都知道,在Dialplan中加入逻辑判断等功能都是有限的,但在Javascript中就不同了,你很容易写一些 if-else 之类的语句判断当前的场景进而执行不同的动作。关于这一点,我们在此就不举例子,有兴趣的可以自己研究一下。 除了SpiderMonkey外,另一个Javascript引敬是V8,这是一个在Google Chrome中以及 Node.js中使用的Javascript引擎,它提供了比SpiderMondey更好的性能。最近,FreeSWITCH中也实现了一个mod_v8模块。该模块除了与mod_spidermonkey有一些小小的差别外,在API上完全兼容。也就是说,上述的test.js脚本在mod_v8下也能正常运行。 由于mod_v8的出现,现在mod_spidermonkey已经不推荐使用了。从下列提交信息中,可以看出它已被移至源代码的 legacy目录中: b0bcc01 Deprecate mod_spidermonkeyWe consider mod_spidermonkey to be completely replaced by mod_v8 关于mod_v8,且听下回解说。 另外,如果大家想先看哪些模块,告诉我,我会优先写。 ---------------------------------------- FreeSWITCH-CN是什么? ---------------------------------------- FreeSWITCH-CN是FreeSWITCH中文社区,我们的官方网站是 http://www.freeswitch.org.cn 。FreeSWITCH-CN同时也是一个微信公共账号,可以通过点击本页最顶端的「FreeSWITCH中文社... 」,或在通迅录->订阅号中搜索「FreeSWITCH-CN」来订阅,也可以到官方网站上扫描二维码。当然,不管是新用户还是老用户,随时都可以输入m或1显示本账号的主菜单。 FreeSWITCH-CN的账号维护者是Seven Du,在此,他会分享多年的FreeSWITCH使用经验,分享一些对开源VoIP软件以及软件社区的思考,并隔三差五的解答一些粉丝关心的问题。Seven Du于2007年听说、2008年开始使用FreeSWITCH,2009年创办FreeSWITCH-CN中文社区,2011~2013连续三年参加了在美国芝加哥举办的ClueCon全球VoIP开发者大会,该会议是由FreeSWITCH核心团队主办的。 如果你在学习和使用FreeSWITCH的过程中,有什么有趣的故事,也欢迎与我分享。移动设备上打字不方便,如果想写长的留言可以发邮件到 wechat@freeswitch.org.cn 。

    02

    mod_portaudio

    前几天,儿子由于顽皮以及我的疏忽碰破了头,去医院缝了3针,所以,这两天心神有点不宁,如果写得不好,抱歉了。 好在我们家附近有一家新开的医院,环境看起来都很新,人也不多,服务也不错。包扎好了就没事了,大家也不用担心。只是这几天我得在家里陪着他。 在医院时,看到医院到处都是易拉宝,墙上也贴着宣传牌。不过,上面的英语都翻译的很搞笑,当时没顾得拍照,但记得有一项“亲民医院”之类的词翻译成了kiss。当然,见怪不怪,这种神翻译随处可见,网友也有诸多吐嘈。相信大部分都是用机器翻译的,甚至有的还有不伦不类的“Service not available”。 不明白,为什么这些制作标牌的广告公司这么没修养(没文化有情可原,你告诉人家啊)。当然,出现这些问题主要的原因也不能太怪广告公司,还是在于花钱做这些广告牌子的人。即使自己不认识英语,找个大学生帮忙看看花不了几个钱吧?要不,就直接回归拼音吧,我记得小时间的标志牌都是中文和拼音并排的,如“新华书店”上面就挂着“XIN HUA SHU DIAN”。 好了,不扯这些了,今天说说mod_portaudio。

    03

    mod_cluechoo

    今天,来说一说mod_cluechoo这个模块。在QQ群中看到好多朋友对此很好奇。 从名字看,不知道该模块是干什么的,而Wiki上对它的介绍也就只有一句话:mod_cluechoo implements Toyoda Masashi's famous Steam Locomotive (SL) command for FreeSWITCH。即,该模块在FreeSWITCH中实现了Toyoda Masashi的蒸汽机车命令。那么,该蒸汽机车又到底是什么东东呢?说来话长,可以看这里: http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/index_e.html 。在UNIX系统上有一个ls命令,但有时候容易输错,成了sl,便会提示命令错误。而该蒸汽机车实现了一个sl命令,即蒸汽机车(Steam Locomotive)的英文缩写。实际上,该程序只是一个小小的玩笑,没什么实际用处。 该程序主要上对SL的介绍是这样的:SL (Steam Locomotive) runs across your terminal when you type "sl" as you meant to type "ls". It's just a joke command, and not usefull at all. Put the binary to /usr/local/bin. 那么,在FreeSWITCH中怎么玩呢? 该模块是默认编译和加载的,在FreeSWITCH控制台上重新加载一下该模块,便可以从日志中看出一些信息: freeswitch> reload mod_cluechoo 2014-01-18 22:30:17.610597 [CONSOLE] switch_loadable_module.c:1464 Successfully Loaded [mod_cluechoo] 2014-01-18 22:30:17.610597 [NOTICE] switch_loadable_module.c:269 Adding Application 'cluechoo' 2014-01-18 22:30:17.610597 [NOTICE] switch_loadable_module.c:315 Adding API Function 'cluechoo' 从上面的日志中可以看出,该模块实现了一个cluechoo App,以及一个cluechoo API。如果对App和API是什么东东不了解的同学可以复习一下前几天发的文章(我发文章有时候也是有伏笔的,呵呵)。 接着在命令控制台上输入以下命令,便会看到一辆小火车开过: freeswitch> cluechoo 那么App怎么使用呢?构造如下的Dialplan,拨打cluechoo试一试。 <extension name="cluechoo"> <condition field="destination_number" expression="^cluechoo$"> <action application="answer" data=""/> <action application="cluechoo" data=""/> </condition> </extension> 到这里,如果还不明白的同学继续回去看前几天讲的API和App。有兴趣的同学也要以看一看其源代码实现,挺有趣的哟 :) 。 ---------------------------------------- 题图:Steam Locomotive 来自FreeSWITCH cluechoo ---------------------------------------- FreeSWITCH-CN是什么? FreeSWITCH-CN是FreeSWITCH中文社区,我们的官方网站是 http://www.freeswitch.org.cn 。FreeSWITCH-CN同时也是一个微信公共账号,可以通过点击本页最顶端的“FreeSWITCH中文社... ”,或在通迅录->订阅号中搜索“FreeSWITCH-CN”来订阅,也可以到官方网站上扫描二维码。当然,不管是新用户还是老用户,随时都可以输入m或1显示本账号的主菜单。 FreeSWITCH-CN的账号维护者是Seven Du,在此,他会分享多年的FreeSWITCH使用经验,分享一些对开源VoIP软件以及软件社区的思考,并隔三差五的解答一些粉丝关心的问题。Seven Du于2007年听说、2008年开始使用FreeSWITCH,2009年创办FreeSWITCH-CN中文社区,2

    03

    mod_skypopen

    mod_skypeopen是一个有意思的模块,它提供FreeSWITCH与Skype的互通。 Skype是世界上广泛使用的VoIP软件,不过,在被微软收购后表现不怎么样,最近又传出Skype将停止提供第三方API接口,也就是说FreeSWITCH将无法与新版的Skype互通。 不过,旧版的Skype好像不受影响,而且,不管以后FreeSWITCH是否能与Skype互通,mod_skypopen对我们都有借鉴意义。 mod_skypopen的前身是mod_skypiax,后来才改为此名。该模块实现的很有意思。Skype不是提供API吗?也就是说它允许外部的程序通过一定的API控制Skype(相当于通信信令)。所以,理论上讲,就可以将控制Skype的部分代码放到FreeSWITCH中,而仍然需要启动一个Skype实例登录到实际的Skype网络中与其它Skype进行通信。在Linux中,通过使用内核中的虚拟声卡,可以指定不同的Skype实例使用不同的虚拟声卡,而在FreeSWITCH中通过访问这些虚拟声卡读写音频数据(相当于媒体流),进而完成信令和媒体的交互。 最初的Skype一个Skype账号在一台主机上只允许登录一次,所以我们最初使用时,注册了20个Skype账号,在一台Linux服务器上启动了20个Skype实例,并分别用不同的账号注册上去。对于FreeSWITCH而言,这20个实例就相当于20条外线,我们的SIP账号就可以通过这20条“Skype”外线打电话到其它的Skype账号上。 有什么用呢?当初我们在做在线一对一英语口语教学的,美国的老师使用SIP客户端,而学员一般使用手机(SIP客户端在我国不怎么稳定)与老师对话。但问题是,有的学员手机信号不好,有的呢,千里迢迢漫游到北京去上学习班(但却买我们的网络口语教学课程),无法支付高昂的漫游费。而使用Skype就解决了这一问题。 后来,Skype允许在一台主机上用同一账号多次登录,所以,我们就用同一个Skype账号登录20个Skype实例,实现了类似模块中继线的功能——打出去对外显示一个号。 当然,该模块是跨平台的,在Windows上也可以使用,也支持多账号。当前闲着没事的时候,我也实现了Mac来台上的支持,只不过后来没有继续开发,也没有合并到主分支里去。 mod_skypopen也是一个Endpoint。 ---------------------------------------- 题图:Before I die 来自 Google ---------------------------------------- FreeSWITCH-CN是什么? FreeSWITCH-CN是FreeSWITCH中文社区,我们的官方网站是 http://www.freeswitch.org.cn 。FreeSWITCH-CN同时也是一个微信公共账号,可以通过点击本页最顶端的“FreeSWITCH中文社... ”,或在通迅录->订阅号中搜索“FreeSWITCH-CN”来订阅,也可以到官方网站上扫描二维码。当然,不管是新用户还是老用户,随时都可以输入m或1显示本账号的主菜单。 FreeSWITCH-CN的账号维护者是Seven Du,在此,他会分享多年的FreeSWITCH使用经验,分享一些对开源VoIP软件以及软件社区的思考,并隔三差五的解答一些粉丝关心的问题。Seven Du于2007年听说、2008年开始使用FreeSWITCH,2009年创办FreeSWITCH-CN中文社区,2011~2013连续三年参加了在美国芝加哥举办的ClueCon全球VoIP开发者大会,该会议是由FreeSWITCH核心团队主办的。 如果你在学习和使用FreeSWITCH的过程中,有什么有趣的故事,也欢迎与我分享。移动设备上打字不方便,如果想写长的留言可以发邮件到 wechat@freeswitch.org.cn 。

    02

    mod_lua和mod_v8

    这两个模块都是在FreeSWITCH支持使用嵌入式语言来控制呼叫流程的。我们在以前的文章中也曾不同程度地提到他们。 其中,mod_lua支持Lua语言,Lua是很有名的嵌入式语言,能非常好地嵌入其它语言的程序中。该模块有两个版本,最新的版本支持Lua 5.2,而支持Lua 5.1的版本现在已被移动到源代码的legacy目录中。 而mod_v8支持Javascript,由Google的v8库提供支持,v8库已被成功用于Chrome及node.js中,性能强劲。其实对Javascript的支持也有两个版本,另一个版本也在legacy目录中,叫做mod_spidermonkey。Spidermonkey是Firefox中的Javascript引擎。 Lua和Javascript两种语言有很多相似的地方,我们不必多说,先来看两个脚本: test.lua session:answer() session:sleep(1000) session:streamFile("/tmp/hello-lua.wav") session:hangup() test.js session.answer(); session.sleep(1000); session.streamFile("/tmp/hello-js.wav"); session.hangup(); 可以看出,两个脚本的内容和功能基本上一样。第一行,对当前呼叫进行应答;然后,小睡一会(以确定能正确的建立媒体流);接着,播放一个声音文件;最后,挂机。 可以分别使用如下Dialplan将来话路由到上述脚本: <action application=“lua” data=“/tmp/test.lua”/> 或 <action application=“javascript” data=“/tmp/test.js”/> 当然,两个脚本本质上是Lua或Javascript,因而你可以很容易地在脚本中加入条件判断、循环等,甚至也可以通过相关的API与数据库或其它系统交互。能实现什么样的程序,完全在于你的想象力,从现在起,就写个脚本练一练吧? ---------------------------------------- FreeSWITCH-CN是什么? ---------------------------------------- FreeSWITCH-CN是FreeSWITCH中文社区,我们的官方网站是 http://www.freeswitch.org.cn 。FreeSWITCH-CN同时也是一个微信公共账号,可以通过点击本页最顶端的「FreeSWITCH中文社... 」,或在通迅录->订阅号中搜索「FreeSWITCH-CN」来订阅,也可以到官方网站上扫描二维码。当然,不管是新用户还是老用户,随时都可以输入m或1显示本账号的主菜单。 FreeSWITCH-CN的账号维护者是Seven Du,在此,他会分享多年的FreeSWITCH使用经验,分享一些对开源VoIP软件以及软件社区的思考,并隔三差五的解答一些粉丝关心的问题。Seven Du于2007年听说、2008年开始使用FreeSWITCH,2009年创办FreeSWITCH-CN中文社区,2011~2013连续三年参加了在美国芝加哥举办的ClueCon全球VoIP开发者大会,该会议是由FreeSWITCH核心团队主办的。 如果你在学习和使用FreeSWITCH的过程中,有什么有趣的故事,也欢迎与我分享。移动设备上打字不方便,如果想写长的留言可以发邮件到 wechat@freeswitch.org.cn 。

    01
    领券