zoukankan      html  css  js  c++  java
  • FreeSWITCH 架构

    总体架构

    核心和多个外围模块组成。

    核心

    核心实现关键的数据结构、状态机、数据库等。核心代码提供Public API 调用核心功能。核心保持了最高程度的抽象,因为可以调用不同的功能、不同协议的模块。

    数据库(DB)

    FS核心使用内部队列、哈希存储数据外,还采用外部数据库来存储。提高性能、降低死所的风险。FreeSWITCH内置SQLite 作为数据存储。核心数据库存储位置/usr/local/freeswitch/db/core.db

    公共应用程序接口

    FS 在核心层实现了一些Public API ,这些API 可以被外围的模块调用。

    接口

    FS 层还提供了很多抽象的接口,供外围模块实现。

    事件

    FS 在内部也使用消息和事件机制进行进程间和模块间通信。

    在FS外部,可以通过Event Socket等接口订阅相关的事件  

    订阅事件的方法:

    /event plain ALL

    /event plain CHANNEL_ANSWER

    /event plain CUSTOM sofia::register

    终端(EndPoint)

    EndPoint  是终结FS的地方,他主要包含了不同呼叫控制协议的接口,比如:SIPTDM硬件H323以及Google Talk等。

    拨号计划

    主要功能是查找电话路由功能,系统默认是由mod_dialplan_xml提供,它是由xml描述的。

    聊天计划

    ChatPlan是对文本消息进行路由,如:SIP SIMPLE,SKYPE Message,XMPP Message等。它是在mod_sms中实现的。

    应用程序(Application, APP)

    FS 提供了许多App使复杂的任务变得简单,比如:mod_voicemail模块可以实现语音留言。mod_conference模块泽实现高质量的多方会议。是由mod_dptools提供。

    命令接口(FSAPI)

    FSAPI  是一种对对外的命令接口,原理输入一个字符串,该字符串由内部模块处理,然后输出一个具备一定格式的文本。

    XML 接口

    XML接口支持多种获取XML的方式,它可以从本地配置文件或数据库中读取,也可以通过HTTP 服务器中读取。

    编解码器

    FS 支持多种语音、视频的codec。

    语音识别及语音合成

    支持ASR和TTS合成

    格式、文件接口

    支持不同格式声音文件回放、录音。如果wav和mp3等。

    日志

    日志可以写到控制台、日志文件、系统日志以及远程的日志服务器。实现日志的模块:mod_console、mod_logfile、mod_syslog

    定时器

    实时语音通话需要非常准确的定时器,在FS中,可以使用软时钟或内核时钟。FS最理想的工作时钟频率是1000Hz,而某些Linux发行版或虚拟机的内核默认是100Hz或250Hz,在这种情况下,可以使用内核提供的时钟接口,或者重新编译内核调整时钟频率。

    嵌入式语言

    通过swig可以支持多种嵌入语言进行控制呼叫流程。

    事件套接字

    通过Event Socket可以控制呼叫流程,扩展FS功能。

     

  • 相关阅读:
    ASP.NET 表单验证 Part.2(实现表单验证)
    长工的买房故事
    软件界面交互和易用性改进总结[zz]
    访问hotmail邮箱的途径
    Google内部收集员工创意的方法[转载]
    Web2.0地图展望
    C++开源跨平台类库集
    庆祝lucky荣登早教网首页宝宝
    在那些打磨汉芯的日子里[转贴]
    在中国搞技术只能混碗饭吃,没有太大希望
  • 原文地址:https://www.cnblogs.com/damizhou/p/14130436.html
Copyright © 2011-2022 走看看