解决方法:

通过执行FreeSWITC的API命令,可以获取另一条信道的信息,如下:

show channels like 66903@ as xml

在该命令的返回值中抽取sent_callee_num,即为另一方的号码。

下面是具体的实现方法:

[plain] view plaincopy--根据一方号码获取另一条腿的UUID function getOtherLegUUID(api,num) local uuid; local res=api:executeString("show channels like "..num.."@ as xml") ----判断获取的channel信息是否为空 --fslog("debug","show channels res",res); --如果channel信息不为空 if res and string.len(res) >0 then local _,_, sendCalleeNum = string.find(res,"(.-)"); if sendCalleeNum then uuid = getUUIDByNum(api,sendCalleeNum); end end return uuid; end

2、如何向另一方号码发送dtmf?

解决方法:

该问题比较容易处理,只需要调用uuid_send_dtmf方法即可。前提条件是获取到那个信道的UUID。

具体代码

下面是完整的脚本代码,仅供参考:

[plain] view plaincopy--/****************************************************/ --脚本名称:send_dtmf_toleg.lua --脚本参数: -- argv[1] 当前通话的号码 -- argv[2] 待发送的dtmf信息 --脚本功能: -- 根据当前通话的号码,查出另一条腿的uuid,然后向该uuid发送dtmf --作者: 默言 2013-11-24 --/****************************************************/ --输出freeeswitch日志 function fslog(loglevel,logtitle, logbody) loglevel = loglevel or "debug"; logtitle = logtitle or ""; logbody = logbody or ""; freeswitch.consoleLog(loglevel, "\n" .. argv[0] .. " : " .. logtitle .. "{" .. logbody .. "}\n"); end --获取号码对应的uuid --参数:num, 待查询号码 --返回:号码对应的通道的uuid function getUUIDByNum(api, num) local uuid; local res=api:executeString("show channels like "..num.."@ as xml") if res then --使用正则表达式从字符串中截取uuid --'-'代表最短匹配 _,_,uuid = string.find(res,"(.-)") end fslog("debug","getUUID:" .. num, uuid); return uuid; end --根据一方号码获取另一条腿的UUID function getOtherLegUUID(api,num) local uuid; local res=api:executeString("show channels like "..num.."@ as xml") ----判断获取的channel信息是否为空 --fslog("debug","show channels res",res); --如果channel信息不为空 if res and string.len(res) >0 then local _,_, sendCalleeNum = string.find(res,"(.-)"); if sendCalleeNum then uuid = getUUIDByNum(api,sendCalleeNum); end end return uuid; end do local legNum=argv[1]; --待发送的dtmf信息 local dtmfs = argv[2]; fslog("debug","start to send dtmf, legnum",legNum); fslog("debug","need send dtmfs", dtmfs); if legNum and tonumber(legNum) then api=freeswitch.API(); uuid=getOtherLegUUID(api, legNum); if uuid then local cmd = "uuid_send_dtmf " .. uuid .. " " .. dtmfs; fslog("debug","send_dtmf cmd", cmd); api:executeString(cmd); else fslog("warning","cannot get another leg uuid",""); end else fslog("warning","invalid parameters",""); end end

android dtmf发送命令,如何向通话中的另一方发送DTMF相关推荐

  1. android给后台传递json,将服务中的JSON数据发送到Android中的UI

    要求是:我有一个后台服务,在该服务中,我正在执行REST调用以获取JSON数据.我想将JSON数据发送到UI并更新内容. 我可以使用的一种方法是,将整个JSON字符串存储在SharedPreferen ...

  2. java发送gmail_如何在Gmail中轻松通过电子邮件发送人群

    java发送gmail Mailing lists are an old tool in the email arsenal, but their implementation in Gmail is ...

  3. php curl发送post请求失败,PHP中的使用curl发送请求(GET请求和POST请求)

    使用CURL发送请求的基本流程 使用CURL的PHP扩展完成一个HTTP请求的发送一般有以下几个步骤: 1.初始化连接句柄: 2.设置CURL选项: 3.执行并获取结果: 4.释放VURL连接句柄. ...

  4. 电话卡插到终端服务器通话时长,通话中添加背景音的方法、终端及系统专利_专利查询 - 天眼查...

    1.一种通话中添加背景音的方法,其特征在于,包括以下步骤: 监听到来电或去电,以及开始通话时,向服务器发送获取用于本次通话中营造环境声音的音频数据的请求: 接收所述服务器反馈的对应于所述请求的至少一段 ...

  5. linux命令行发送串口_从命令行在Linux中发送电子邮件

    linux命令行发送串口 In this article, you will learn how to send emails using the popular mail commands. It' ...

  6. android 电话回音消除,android系统通话中回声消除的实现.pdf

    android系统通话中回声消除的实现.pdf 2011年第11期,第44卷 通 信 技 术 Vol.44,No.11,2011 总第239期 Communications Technology No ...

  7. linux中kill命令默认发出的信号,Linux信号发送命令之kill命令

    kill 作用:向进程发送信号.注意: kill命令只是用来向进程发送信号的,而不是直接杀死进程. kill命令的一般使用格式:kill [参数] 进程号进程号可用ps命令查看 kill的参数:-l ...

  8. android回声消除方案,android系统通话中回声消除的实现.doc

    总第 239 期Communications TechnologyNo.239,Totallyandroid 系统通话中回声消除的实现曾光, 侯嘉(苏州大学 电子信息学院,江苏 苏州 215001) ...

  9. Android 如何在通话中播放音乐/通话背景音

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

最新文章

  1. 制作静态链接库和动态链接库
  2. 编程问题之:x=xamp;(x-1)
  3. 接口测试01 - HTTP协议报文结构及示例
  4. 伪装qizhi software数字签名的下载者分析报告
  5. 汇编语言等号=伪指令
  6. oracle 加载数据戽_走进大数据丨 ETL - Load(数据加载)
  7. matlab中instr,MATLAB 串口通信
  8. python 2和Python3的常见区别及修改办法
  9. ​芯片大神,英特尔、AMD、特斯拉前首席芯片架构师 Jim Keller 加盟 AI 初创公司...
  10. fatal: unable to access ‘https://github.com/xxx/‘: Failed to connect to 127.0.0.1 port 7890: Connect
  11. Pod--初始化容器
  12. Flash:动画实例--flash文字变形
  13. windows无法完成格式化U盘的几种终极解决办法
  14. buuctf easyweb
  15. 英文论文写作必备网站
  16. 情感天地 - 自作诗词 - 《船夫奇恋曲》
  17. 慕学在线--2、开发准备及布署上线
  18. 被黑客攻击最多的产业是那些呢?
  19. 嵌入式工程师之数据结构day2
  20. 上海亚商投顾:科创50指数录得6连阳 芯片股掀涨停潮

热门文章

  1. java 定义map集合_Java中的Map集合
  2. 机器学习29:Sklearn库常用分类器及效果比较
  3. 单片机控制LCD1602显示屏动态显示字符串
  4. to B变道to C,优信二手车的下一阶段怎么跑?
  5. java中mymaps_解决mybatis报错Result Maps collection does not contain value for java.lang.Integer
  6. forest种树未能连接到服务器,The Forest 专用服务器设置向导
  7. RK3568平台开发系列讲解(环境篇)瑞芯微RK3568亮点介绍
  8. 微服务生态系统的4层模型
  9. python量化交易:筹码分布(2)
  10. 深入探索以太坊世界状态,Part-2