概述

freeswitch是一款非常好用的开源VOIP软交换平台。

之前我们有介绍过使用fs拨打分机号的方法,其中代码流程是比较复杂的,所以单独开一章介绍。

fs拨打分机号,是使用send_dtmf接口实现,本节主要介绍接口是如何把DTMF码发送出去的,经过了哪些模块。

环境

centos:CentOS  release 7.0 (Final)或以上版本

freeswitch:v1.8.7

GCC:4.8.5

拨号计划

fs配置文件/usr/local/freeswitch/conf/dialplan/test.xml

<include>

<context name="ext_test">

<extension name="test" continue="false">

<condition field="destination_number" expression="^(\d+)$">

<action application="sched_hangup" data="+10"/>

<action application="send_dtmf" data="1234"/>

<action application="sleep" data="5000"/>

<action application="endless_playback" data="/usr/local/freeswitch/sounds/101-baidu-mp3.mp3"/>

</condition>

</extension>

</context>

</include>

源代码流程

图1,“FS CORE”是freeswitch的核心模块,“mod_dptools”和“mod_sofia”是fs的子模块。

因为dialplan中的流程是先“send_dtmf”,然后“sleep”,所以从上面的调用流程图中,可以看到流程起点都是从mod_dptools模块开始的。

总结

freeswitch核心模块的流程和子模块众多,模块之间的调用和注册回调函数比较复杂,流程多变。

梳理子模块功能代码流程有助于理解fs的整体架构。

空空如常

求真得真

最新文章

  1. 利用Python进行数据分析(10) pandas基础: 处理缺失数据
  2. web工程关于500错误
  3. Microsoft 2013 新技术学习笔记 三
  4. 【总结】IE和Firefox的Javascript兼容性总结(转)
  5. 疯狂java讲义——继承
  6. chrome 41 空格 &amp;nbsp;
  7. elecworks 报表----按线类型的电线清单
  8. EasyUI篇のDataGrid
  9. Hbuilder主页面控制子页面的方法
  10. [Unity] A* pathfinding project integrated with influence map
  11. EntityFrameWork连接多Db配置
  12. FFT\NTT总结
  13. rpc接口调用以太坊智能合约
  14. PHP拿到接口数据返回的json以及传参-----ajax 跨域请求 ---
  15. Windows Update Medic Service 拒绝访问
  16. 金三银四季来了!Java 面试题大放送,能答对70%就去BATJTMD试试~
  17. UOJ #76 【UR #6】懒癌
  18. poj3349 散列表(hash)
  19. IOS初级:SDWebImage
  20. 非常可乐(杭电hdu1495)bfs

热门文章

  1. 还在用em strong吗?快来试试 text-emphasis
  2. 【报错解决】Uncaught TypeError: Failed to execute &#39;readAsDataURL&#39; on &#39;FileReader&#39;: parameter 1 is not of type &#39;Blob&#39;.
  3. Apache Flink系列-④有状态函数
  4. 项目完成 - 基于Django3.x版本 - 开发部署小结
  5. 攻防世界-MISC:pure_color
  6. Django/MySql数据库基本操作&amp;ORM操作
  7. 开发一款让我们慢慢变好的微信小程序
  8. SmartDialog迁移至4.0:一份真诚的迁移说明
  9. Linux磁盘和文件系统知识总结
  10. 好客租房1-React基础目标