文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

“从零到一“基于Freeswitch二次开发:Freeswitch入门与网络架构 (一)

2023-09-16 19:46

关注

一. 简介与背景

    在当前的互联网时代,想必大家对于网络电话或者通过网络进行语音、视频的场景再熟悉不过了。基于IP的语音传输(英语:Voice over Internet Protocol,缩写为VoIP)是一种语音通话技术,经由网际协议(IP)来达成语音通话与多媒体会议,也就是经由互联网来进行通信。我们通俗称这种拨打电话的方式叫"网络电话"。

   VoIP走的是我们的TCP/IP网络,硬件设备如麦克风通过系统驱动将我们的声音转换为数字信号,简单理解,声音可以由一串0和1的数据构成,通过TCP/IP网络进行传输到对端,对端再将数字信号通过声卡还原为我们听到的声音,从而达到双方通信的目的。

   微信语音通话,其实本身就是VoIP的一种应用方式。我们日常语音聊天都可以通过微信客户端进行交流,很方便。我们选择使用微信语音通话最大的一个好处就是 省钱! 省钱! 省钱!  ,尽管使用过程中需要连接WIFI、使用移动蜂窝网络也会消耗成本,但是相比于双方拨打传统电话的场景要划算得太多。所以VoIP的一个优点就是: 省成本。 但是缺点,大家也会发现,要么双方都安装上相同的客户端,例如微信客户端,并且双方是好友,又例如Apple的Facetime通话,双方都是Apple手机并且知晓对方的AppleId,这样才能进行通话。

   我们传统电话的网络叫PSTN, (PSTN ( Public Switched Telephone Network )定义:公共交换电话网络,一种常用旧式电话系统。即我们日常生活中常用的电话网。工作原理 公共交换电话网络是一种全球语音通信电路交换网络,包括商业的和政府拥有的。).  PSTN网络和TCP/IP网络两者是完全不同的异构网络, 使用的协议、含义、介质都不尽相同。

   此时我们在思考一个问题, VoIP使用的TCP/IP网络可以和PSTN公共电话网可以做对接吗? 这样的话我们就可以通过VoIP经过TCP/IP网络也可以和PSTN公共电话网的手机/固话进行通讯了。答案是肯定的。 这种东西我们暂且称它为"语音网关"。 "语音网关"大家也能想到,这个东西肯定是运营商ISP(电信/移动/联通)才能做的, 因为PSTN网络只有运营商能够触及得到,并且本身网络这块也逃离不了运营商的管理,所以"语音网关"对于普通企业来说,只能依赖运营商提供,自己是开发不了的。

    既然"语音网关"我们个人/企业无法触及,只能跟运营商合作。拿到"语音网关"信息一般体现为ip+端口的形式。如果要和运营商的进行对接,你需要提供公司的ip+端口给运营商加入"白名单",之后才能进行对接。

    "语音网关"和普通开发者/企业无关, 那么如果我作为企业的开发者,那现在缺的是,有没有这么一种软件,最好是开源的,可以接受用户通过TCP/IP网络传递的语音信息,再将语音信息递给"语音网关", 这样就能实现VoIP和PSTN建立通话,  然后,我们只需要做应用层的业务开发即可。

     答案是肯定的。  IP PBX是一种基于IP的公司电话系统,还有类似IPPBX或者IP-PBX书写方式. 

IPPBX市面上常见的开源软件有如Freeswitch、Asterisk、FreePBX等.

二. Freeswitch介绍

    开源的IPPBX有那么多,除了Freeswitch,还有如Asterisk、FreePBX,为什么我们采用了Freeswitch呢?  其实,这个也不是拍脑袋决定的。 因为我们这个Freeswitch项目是"从零到一"的一个过程, 大家发现其实国内,包括国外对于这种开源软件的资料都少之又少。 毕竟这个赛道相对冷门一点,不像大家学个Nginx、PHP、Java这种相对比较广泛的技术一堆资料和教程。所以本篇博客记录下我们的实践过程,供大家参考。

   我们选择Freeswitch的理由:

      1.我们业务对接的第三方公司,通过sip抓包拿到对方的sip响应头信息得知对方使用的是Freeswitch。

      2.咨询过几个合作商的大拿,他们公司项目也是基于Freeswitch进行二次开发然后进行商业化。

      3.自身调研过这些开源项目的github,文档、资料,Freeswitch相关稳定成熟,并且对于二次开发相对友好。

三.网络架构图

     我们先粗略看下一个用户通过VoIP的客户端,是怎么和PSTN传统手机电话建立通讯的。

     用户通过VoIP客户端,通过sip协议与Freeswitch进行交互(验证账号、注册), 通过后,将主叫显示号码、被叫号码等信息传递给"语音网关", "语音网关"将TCP/IP网络和PSTN网络进行连接创建了这次通话,此时数据进入PSTN网络之后,找到被叫端手机号进行呼叫,被叫端响铃接听电话后,主叫和被叫就可以建立语音通话了。

    从TCP/IP网络到PSTN的过程我们叫这个动作成为"落地", 语音网关也成为"落地网关"或者成为"线路"。

    从上述的网络架构图,其实大家也能发现一些商业模式的存在。  首先,你可以和运营商合作做中间商,卖"线路"赚差价。一般运营商不会跟个人/体量较小的公司进行合作线路售卖的,所以如果你作为中间商的话,先和运营商合作买到"线路",再将"线路"进行产品包装,卖给需要"线路"的这些小公司或者没有这种线路能力的公司赚差价。阿里云的语音通信服务、华为通话服务以及一堆"线路"提供商的商业模式就是这样,从运营商拿到低价的通话分钟数,再高价卖出。 如果中间商你做不了,那么你做SAAS产品,例如电话销售、呼叫中心等等,可以自己基于Freeswitch开发自己的系统,通过VoIP的方式减少了自己的呼叫成本,也是一种商业模式,等等诸如此类. 

  理解本章对于后续有很大的帮助,因为这些东西是我们自己从零到一的思考,并没有任何人指导和辅助。 后续的整体网络逻辑都是如上图,只有理解上面的网络架构图才能更好地排查问题。

来源地址:https://blog.csdn.net/xyz_dream/article/details/130563754

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯