• 软交换freeswitch系统概要和源代码分析初步


    asterisk与freeswitch的比较:
    1:Asterisk是针对1百人以下的小型系统,相同的硬件配置下单系统最多并发200路,而根据国外爱好者测试freeswitch可达到2000-3000路sip通道(媒体流并发)。
    2:Asterisk用动态链表来管理每个打开的通道,这样在多线程中非常难于管理(需要频繁的锁定和解锁)。而freeswitch每个呼叫通道都会用一个线程来管理呼叫状态,大大减少了死锁发生的几率。
    3:Asterisk用DUNDi协议设计分布式系统。Fs使用外部数据库实现分布系统,做得更好,甚至可以一台服务器通过数据库注册到另一台服务器上。
    4:freeswitch支持很多操作系统如linux,windows,Max OS X, BSD ,Solaris (包括 32 and 64 位平台)。asterisk基本只支持linux/unix。


    基础知识需求
    C/c++编程, c#,socket编程 ,sip,XML(fs的配置,呼叫规则和数据都是通过xml保存的),脚本语言JavaScript,lua,pcre(perl)。数据库sqlite,mysql。
    系统编程知识:多进程线程同步(临界区,互斥量,信号灯,事件),APR,模块动态共享机制。

    系统分析初步:
       1:APR(系统集成的版本版本1.2.8,最新是1.3.8),分析其源代码的时候,需要掌握:内存池,事件机制,文件处理,进程和线程管理 。APR的主要目的是为应用提供一个可移植的、平台无关的层。它使用底层的、交叉平台的库来提供文件系统访问、网络编程、进程和线程管理以及共享内存等功 能。
    2: Freeswitch是个高度模块化的程序,对于windows版本,其模块在mod目录下,基本上为mod_***.dll的格式。mod_opal 是h323支持,mod_iax.dll是asterisk的协议IAX的支持模块。大部分模块可以在系统运行的时候动态加载和卸载。
    3:对freeswitch的控制都集中在conf目录下的那些xml文件。

    4:freeswitch运行的时候,其核心是以信号量和事件来驱动的,核心维持一些(3个)事件队列,分别有专门的线程对发生的事件进行处理。

    文章转载于网络,如有侵权,请原创留言;内容如有不妥,请各位园友提宝贵意见或建议。所有文章均处于编辑状态。。。。。。百度贴吧:流水小桥吧 如有问题,请点击页面左上角“给我写信”发邮件留言!
  • 相关阅读:
    制作USB系统盘
    01Mysql 配置方法
    Tec_010_怎样看K线图
    回顾5年内的央行加息历史
    推荐:微软下一代操作系统Windows 7版本详解
    关于USB启动盘制作
    Delphi Program test
    圣诞节 玩具
    敏捷宣言
    [转 TDD] 如何坚持TDD:使用者出现的问题以及解决方案
  • 原文地址:https://www.cnblogs.com/flyoung/p/5097937.html
Copyright © 2020-2023  润新知