Asterisk是一个开源的软件包,通常运行在Linux操作系统平台上。Asterisk可以用三种协议来实现VoIP,同时可以与目前电话使用的标准硬件进行交互通信,Asterisk在实现VoIP时,不需要任何附加硬件,本文所采用的也是这种使用方式。但是,如果企业没有与VoIP语音网关运营商建立合作关系,想要自己构建这样的一个平台,那么要和数字电话设备与模拟电话设备进行交互通信,Asterisk需要一个PCI硬件的支持,这个硬件生产商中最著名的是Digium平台提供的。

Asterisk 的结构基本上是十分简单,但是它不同于大多数的电话产品。基本上,Asterisk担任的是一个中间件的功能,它连接了底层的电话技术和上层的电话应用。所以,Asterisk 具有很大的柔韧性,特殊的API接口都围绕着PBX核心系统。这个核心处理着PBX内部之间的相互联系。每一部分都是清晰来自于协议、编码或内部电话使用的硬件接口的抽象。这些抽象的接口使Asterisk可以与任何的硬件和技术以及将来的硬件和软件技术完美的结合。从下图可以看出,Asterisk由内部核心和外围动态可加载模块组成。内部核心由以下六个部分组成:PBX交换核心模块(PBX Switching Core)、调度和I/O管理模块(Scheduler and I/O Manager)、应用调用模块(Application Launcher)、编解码转换模块(Codec Translator)、动态模块加载器模块(Dynamic Module Loader)和CDR生成模块(CDR Core) 。

2 Asterisk二次开发概述

Asterisk是一个开源的PBX架构;但它并不是一个成品。通常情况下,由于企业应用的多样性,很难有一个成型的PBX产品可以满足企业的各种需求。传统的PBX成品,要么功能和灵活性不足,要么配置和维护复杂;而且都具有一个致命的缺点,那就是开放性、可扩展性。

Asterisk具有传统PBX无法比拟的优点,那就是其灵活性,可扩展能力;Asterisk的扩展能力是通过开放相应的架构和接口来实现的。这就意味着Asterisk是一个组件而不是一个成型的产品,Asterisk的核心提供了一个基本的可运行环境,而外围相应的能力则可以通过加载和配置相关的插件和模块来实现。

Asterisk是一个开源的PBX架构;但它并不是一个成品。Asterisk的扩展能力是通过开放相应的架构和接口来实现的。这就意味着Asterisk是一个组件而不是一个成型的产品,Asterisk的核心提供了一个基本的可运行环境,而外围相应的能力则可以通过加载和配置相关的插件和模块来实现。

因此,使用Asterisk,一定会面临二次开发问题,这些二次开发主要围绕以下几个方面:

(1)内部核心模块

①开发扩展编解码能力模块

②开发扩展相应的通道模块

(2)外围动态可加载模块

①开发应用部分

②开发外围管理部分

一般来说,Asterisk使用者很少需要去开发编解码能力模块和通道模块等内部核心模块;而需要开发最多的情况则是外围动态可加载模块,即外围管理部分和应用开发,本文也是指这些方面的开发。

最新文章

  1. Java提高篇——理解String 及 String.intern() 在实际中的应用
  2. SQL与Mongodb聚合的对应关系(举例说明)
  3. 从零开始学习jQuery (二) 万能的选择器
  4. 60-chmod 修改文件的权限
  5. Android的R.java文件
  6. Condition的await-signal流程详解(转)
  7. Linux系统编程@多线程编程(二)
  8. 重构16-Encapsulate Conditional(封装条件)
  9. Corner case
  10. 备忘--简单比较SPSS、RapidMiner、KNIME以及Kettle四款数据分析工具
  11. 【Cocos2d-x JavaScript Binding】
  12. 微信小程序登录流程及解析用户openid session_key,获取用户信息
  13. 2019.03.11 COGS2652 秘术(天文密葬法)(分数规划+长链剖分)
  14. Btrfs管理及应用
  15. debezium sql server 集成
  16. css 规则中两个类连在一起是什么意思?
  17. 常用 Git 命令清单【转】
  18. parent.relativePath' points at wrong local POM
  19. Discuz3.3精仿小米风格整站模板制作——1、新建模板方案
  20. c3p0、dbcp、proxool、BoneCP比较

热门文章

  1. Asp.Net 应用程序在IIS发布后无法连接oracle数据库问题的解决方法
  2. 英语-汉语600句-会见:Making an Appointment/约会
  3. vue 路由 URL传参
  4. 科普 | 编译 V8 源码
  5. Linux下ps -ef和ps aux的区别及格式详解-转
  6. mysql 对数据库操作的常用sql语句
  7. Luogu P4503 [CTSC2014]企鹅QQ(字符串哈希)
  8. 安装ubuntn16.04重启后出现grub secure界面
  9. springmvc框架通过web.xml配置404 500错误导向页
  10. tumblr arch information