概述

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的整体架构。

空空如常

求真得真

freeswitch拨打分机号源代码跟踪相关推荐

  1. i908/i908E手机如何拨打固定电话分机号

    俺用的是这个型号的手机. 着急间发现不能拨打分机号, 因为接通之后, 键盘会自动锁屏, 屏幕进入省电黑屏模式... Google了一下, 发现正确操作方法: 电话接通后手机会自动锁屏,如果需要继续使用 ...

  2. 蓝桥杯java第六届决赛第一题--分机号

    标题:分机号X老板脾气古怪,他们公司的电话分机号都是3位数,老板规定,所有号码必须是降序排列,且不能有重复的数位.比如:751,520,321 都满足要求,而,766,918,201 就不符合要求.现 ...

  3. 电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号)...

    ((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{ ...

  4. Powershell管理系列(四)Lync server 2013 批量启用语音及分配分机号

    有一个项目,我们要对现有的近4000个账号启用语音及设置分机号.网上看到一篇博文,描述如下,4000个账号一个一个去设置,确实挺麻烦的,其实我们可以换个思路.后面我们逐一讲述如何实现批量启用语音及设置 ...

  5. SFB 项目经验-29-批量-启用用户-启用企业语音-设置分机号(项目中)

    1.启用用户 #测试用户 Enable-CsUser -Identity SFBDemo01 -RegistrarPool SFBFEPool01.i-x-Cloud.com -SipAddress ...

  6. 【面试那点儿事】囧,分机号的故事

    入行也有十余年了,被面试和面别人,以及道听途说的面面观,也积累了不少故事,下午茶的时刻,给大家讲讲. 先说一个分机号的故事,这都已经是10年前小丫的故事了. 小丫是个仅有1年多工作经验的初级程序员,在 ...

  7. 正则表达式,固话和手机号码验证,支持验证分机号

    表达式:  ^(0\\d{2,3}-\\d{7,8}(-\\d{3,5}){0,1})|(((13[0-9])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8})$ 验证能验证 ...

  8. 35 - 用正则表达式分别提取电话号的区号、电话号和分机号

    如何搜索字符串中包含区号和分机号的第一个出现的电话号,并提取电话号中的区号.电话号和分机号.要求如下: 区号固定是3位数字 电话号至少是7位数字 分机号至少是3位数字 区号.电话号和分机号之间用连字符 ...

  9. 学习笔记(34):Python 面试100讲(基于Python3.x)-用正则表达式分别提取电话号的区号、电话号和分机号...

    立即学习:https://edu.csdn.net/course/play/26755/340147?utm_source=blogtoedu 提取电话号中的区号.电话号和分机号: m = re.se ...

  10. 固定电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号)

    学习了据说是在程序员眼里排名第三的难点:正则表达式 固定电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号) 区号+座机号码+分机号码:regexp="^(0[ ...

最新文章

  1. 【转】PendingIntent的总结
  2. 百度定位SDK实现获取当前经纬度及位置
  3. ASP程序实现网页伪静态页源代码
  4. Linux指令not found
  5. 计算机突然蓝屏无法启动_为什么计算机无法立即启动?
  6. 前端学习(3094):vue+element今日头条管理-反馈
  7. python怎么隐藏输入法,隐藏输入法和弹出输入法
  8. 网关屏蔽mac地址,linux下修改mac地址方法
  9. 【转载】RSA signatures with TPM2.0 and OpenSSL
  10. git学习(四)比较文件差异diff
  11. jQuery上传文件控件Uploadify使用
  12. 如何快速移除pdf密码?用这个工具就够了
  13. win10无法新建文件夹怎么办?(已解决)
  14. postgresql 数据库 update更新慢的原因(已解决)
  15. ATSC数字电视标准 1
  16. GRUB4DOS(十) 关于grldr.mbr和grldr
  17. E430 win7 下安装黑苹果系统
  18. laravel5.8整合JWT
  19. 在Ubuntu安装和使用Anbox完整说明(一种在Linux使用Android应用的方法)
  20. 美国通胀“爆表”要加息100点?

热门文章

  1. Java里面bean是什么意思_bean是什么意思?javaBean是什么?
  2. Linux XAMP is currently only availably as 32 bit application.
  3. 计算机视觉之目标检测(object detection)《1》
  4. 脑电情绪识别资源整理
  5. Carson带你学Android:手把手带你深入分析事件分发机制!
  6. Rectangling Panoramic Images via Warping算法要点分析
  7. 欢喜传媒2021年报:亏损收窄背后,影视行业静待春暖花开
  8. 马克飞象怎么转成html,马克飞象教程
  9. python15 文件操作
  10. 手机自带html怎么卸载,如何卸载手机自带软件,小编教你怎么卸载手机自带软件...