asterisk架构

     从架构的角度看来,Asterisk是由许多不同的模块组成的。在设计基于Asterisk的系统时,这种模块化的特性,提供了几乎无限的灵活必。作为Asterisk系统管理员,你拥有选择加载模块的权利。你所加载的每一个模块,都提供了不同的系统功能。比如说,有的模块能够让你的Asterisk与模拟电话线路通信,有的模块则提供话务报告的功能。后续,我们还将讨论到各种模块的功能和类别。

 

Asterisk的整体框架

        在我们深入了解各种模块之前,让我们先退一步,看一下Asterisk的整体框架:

 

        当前,我们需要在上图中添加CELBridge模块,而把CLIManager模块移除(在新版本中,这些模块重整过)。

CORE模块是Asterisk地核心。PBX内核是必不可少的组件,内核除了话务桥接功能之外,还提供了读取配置文件和加载其它模块的功能。后续我们会详细说明内核的功能,现在只需要牢记,其它模块都和内核模块紧密相连。

        从后勤角度看来,这些模块通常都是以.so为扩展名的文件,这些文件存放在Asteriskmodules子目录中(通常是/usr/lib/asterisk/modules)。在Asterisk启动时,它会加载这些文件,把它们的功能添加到系统中。

 

再哆嗦一点
花点时间,看一下你系统里Asterisk的modules目录。你应该会看到各种各样的模块。一个典型的Asterisk系统所包含的模块数量,通常都超过150个!

        内核还包含了拨号计规则,这是任何Asterisk系统的执行逻辑。拨号规则包含一系列的操作说明,这些操作说明是Asterisk处理系统入呼和外呼的行为准则。

        Asterisk的模块中,内核部分的文件名是pbx_xxxxx.so

 

Asterisk的模块类型

通道驱动模块

       框架图的顶部,蓝色部分描述的就是通道驱动。通道驱动程序与Asterisk外部的设备通信,并为内核转换某种特定的信令或协议。

所有从外部呼入的呼叫,在抵达内核之前,都要经过某种通道驱动;所有外呼的呼叫,在抵达外围设备之前,也一定要经过某种通道驱动。

        例如:SIP通道驱动,用于与使用SIP协议的终端设备通信。它为内核转换SIP信令。这意味着Asterisk的内核是与信令无关的。因此,Asterisk不仅仅是SIP PBX,它是多协议的PBX

所有通道驱动都以 chan_xxxxx.so命名,比如说chan_sip.sochan_dahdi.so

拨号规则应用模块

           Application为系统提供呼叫相关的功能。这些应用可能是应答、播放提示音、挂机等功能。

应用模块为系统提供呼叫功能。这些应用,在拨号方案中按(草种)顺序脚本化。比如说,一个呼叫进入Asterisk拨号方案,可能会有一个应用作出应答;另一个应用从磁盘中读取一个文件,播放一段提示音;第三个应用,则让呼叫方在指定的语音信箱中留言。

有关拨号计划应用的更详细信息,请参考: Dialplan Fundamentals

         所有应用模块,都以app_xxxxx.so命名,比如说 app_voicemail.so

拨号规则功能模块

        从某种程度上来说,拨号规则的功能类似于应用,但是,它们不是作用于某个特定通道或呼叫,而是简单地检索或设置通道上的某个设定,或者执行文本操作。比如说,某个功能模块会检索呼叫的主叫ID信息,过滤某些文本,或为来电者设置一个超时时间。

         拨号规则功能模块,都以 func_xxxxx.so命名,比如说func_callerid.so

资源模块

        顾名思义,资源就是Asterisk需要用到的资源服务。常见资源如呼叫保持音乐、呼叫停泊等。

资源模块为Asterisk提供可以在呼叫过程中任意时刻调用的一些扩展功能,即使另一个应用正在某个通道上执行,也能够调用。资源模块典型应用于事件同步,比如说在呼叫置保持或挂起时播放音乐。

        资源模块以res_xxxxx.so命名,比如说 res_musiconhold.so

编解码模块

           一CODEC,就是某种音频或视频的编解码模块。通常用于压缩媒体,以减少带宽消耗。

        编解码模块都以codec_xxxxx.so命名,比如说codec_alaw.so codec_ulaw.so

        编解码模块提供媒体流的编码和解码算法。Asterisk在接收和发送媒体(音频和视频)时,都用到编解码模块。这个模块还完成不同编码算法间的转换工作。

        Asterisk提供了多种媒体格式的支持,包括:ADPCM, 32kbit/sG.711 alaw, 64kbit/sG.711 ulaw, 64kbit/sG.726, 32kbit/sG.726, 32kbit/sGSM, 13kbit/sLPC-10, 2.4kbit/s

        其它的如G.729AG.723.1,是需要专利许可的。

文件格式驱动模块

      这些模块让Asterisk能够支持的一系列文件格式。Asterisk利用文件模块从网络上获取媒体流(音频或视频),转换成文件,存储在磁盘中;或者反过来从磁盘中读取文件并转换为媒体流。这些模块常常关系到编解码模块,对于某种编解码来说,磁盘上可能存在多种可用的文件格式。

       文件格式模块以format_xxxxx.so命名,比如说 format_wav.soformat_xxxxx.so

呼叫详细记录(CDR)驱动

       CDR模块的用途是把呼叫详细记录按不同的格式要求存储。常用的存储机制包括CSV文件、关系型数据库(比如PostgreSQL)。通常每一通呼叫生成一条通话记录,记录内容包括主叫、被叫、通话时长等等。

       CDR模块都以cdr_xxxxx.so命名,比如说cdr_csv.so cdr_pgsql.so

呼叫事件日志(Call Event Log)驱动

         CELCDR类似,但它更侧重于记录在呼叫过程中,Asterisk内部发生了什么。

         CEL记录呼叫过程中发生的各种事件。正因如此,它通常记录了比CDR更详尽的事情。比如说CEL可能会记录下这样的内容:ALICE呼叫BOBBOB的电话在振铃20秒后,BOB的移动电话响铃了,再过15秒,呼叫转到BOB的语音信箱去了,然后ALICE留下一条25秒长的语音留言,然后挂机。系统还能够自定义需要记录的事件。

         CEL模块以cel_xxxxx.so命名,比如cel_custom.socel_adaptive_odbc.so

桥接模块

        从Asterisk..2开始,Asterisk引入了桥接呼叫的一种新方法。它依赖各种桥接模块,控制为呼叫参与者间的媒体流混频方式。新的桥接方式,是一种更灵活、更高效的设计。

        桥接模块以 bridge_xxxxx.so命名,比如bridge_simple.so bridge_multiplexed.so.

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

esp虚拟服务器,esp8266接入云服务器

esp8266接入云服务器 内容精选换一换公有云平台提供的云监控,可以对云耀云服务器的运行状态进行日常监控。您可以通过管理控制台,直观地查看云耀云服务器的各项监控指标。云耀云服务器正常运行。关机、故障、删除状态的云耀云服务器,无法在云…

EDM邮件营销时应该远离的8大不良做法

当我们进行EDM邮件营销时,应该远离一些不良做法。本文博主就为大家总结了8大不良做法,希望能对大家有所帮助。 1- 邮件内容只有图片而没有文字:垃圾邮件发送者为了避开反垃圾邮件系统的关键字检测,发明了用一个方法,就…

c++ primer 第六版 pdf_A3N630 塑壳断路器如何更换.pdf

太阳能单晶炉专用配套变压器,是我公司研发的生产太阳能单晶硅的单晶炉设备专用变压器,本产品作为太阳能单晶炉设备的配套产品,它将电网电源的三相380V电压转换成较低的三相交流50V电压,为加热提供电源,以得到设备加热所…

Asterisk 并发量到100后就出现拨打电话挂机问题

Asterisk 并发量到100后就出现拨打电话挂机问题,经过分析和研究,是由于Agi的并发量达到Asterisk-java默认的最大值100导致,无法创建新的socket连接处理Agi请求。 通过调整Agi的默认最大线程数到200,问题得到解决。但这个并不是问…

datareader对象直接转化为int_Integer、new Integer() 和 int 比较的面试题

作者:chenxiangxiang来源:https://www.cnblogs.com/cxxjohnson/p/10504840.html基本概念的区分:1、Integer 是 int 的包装类,int 则是 java 的一种基本数据类型2、Integer 变量必须实例化后才能使用,而int变量不需要3、…

【10】jQuery学习——入门jQuery选择器之表单选择器

这里我们要知道表单,但是在实际写jq的时候,用到貌似不是很多,所以这里我就直接转梦三秋网站上的课件啦。 当然等以后要用的时候,我们在拿出来研究下,毕竟表单这块,看起来真的很多,眼晕啊~~~ 选…

深度学习 用户画像_一文告诉你什么是用户画像

什么是用户画像用户画像,英文又叫 User Profile,我们经常看到在 PPT 中展现出高大上的用户画像,展现的方式是采用标签云的方式绘制一个人的形状,或者在一个人物形象旁边列出若干人口统计学属性,以此来表达“用户画像”…

个人推荐的SIP software Phone

开源免费的LinPhone,国内很多人基于他继续二次开发 http://www.linphone.org/ Zoiper 有免费的,有收费的,有SDK,支持SIP/IAX(没有NAT问题) 官方下载的免费版本里面就支持中文! 免费版本支持:for Window…

_Linux中功能强大的截图工具 - Flameshot

Flameshot 是一款功能强大但易于使用的屏幕截图软件,中文名称火焰截图。Flameshot 简单易用并有一个 CLI 版本,所以你也可以从命令行来进行截图。Flameshot 是一个Linux发行版中完全免费且开源的截图工具。通常Linux发行版中会默认自带一个截图工具&…

jquery动画 -- 1.加载指示器

该系列文章是我阅读《jQuery 1.4 Animation Techniques》后的总结,有兴趣的朋友可以去看原版书籍。 动画效果对于丰富网站的交互体验起到了不可或缺的作用,他可以让你的站点更酷,更吸引人。 什么时候使用动画: 1.当显示或隐藏页面…

centos7 安装redis_Redis6安装(上) - 单机单实例

首先下载新版的redis6并且上传到centos7:安装redis需要gcc的环境,和以往老版本不同,这里的gcc需要高一点的版本。 yum install gcc-c随后升级gcc版本 yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c…

SIP消息路由

本文通过一个完整的SIP呼叫实例解释SIP头部的一些常见字段,在对这些字段的解释的同时也阐述了SIP消息的路由过程。下图是呼叫的消息流示意图和所有的消息头部(因为SDP和消息路由无关,故在此省略): atlanta.com . . . biloxi.com . prox…

手机输入法带拼音声调_word中拼音横向设置

前言在word编辑文字的时候,可以加注拼音,这对于陌生文字辨别读音非常有帮助,但是插入的拼音都是在文字上方的,那如果我们想要横向插入拼音的话,应该怎么操作呢?今天小编就给大家分享,在word中拼…

WCF配置报错 在 ServiceModel 客户端配置部分中,找不到名称 和协定

<?xml version"1.0" encoding"utf-8" ?><configuration><system.serviceModel><client><endpoint address"net.tcp://192.168.6.101:8000/DataAccessService" binding"netTcpBinding" bindingConfigurat…

SIP基础协议总结

SIP协议是一个用于建立&#xff0c;更改和终止多媒体会话的应用层控制协议&#xff0c;大量借鉴了成熟的HTTP协议&#xff08;文本格式编码&#xff0c;Request消息中的method等&#xff09;&#xff0c;采用基于文本的UTF-8编码方式&#xff0c;可以承载与UDP或者TCP协议之上(…

怎么在安卓布局里设置滚动字体_Get新技能|如何在手机上设置文字版拼音?

首先明确一点&#xff1a;安卓手机里的汉字带上拼音&#xff0c;是需要安装拼音字体&#xff0c;而不是拼音输入法。大部分安卓手机里的汉字带上拼音&#xff0c;可按如下步骤操作&#xff1a;注&#xff1a;视频后小总结1.对于大部分现在的手机来说&#xff0c;已经提供了换字…

HTTP、TCP、UDP、Socket (转)

先来一个讲TCP、UDP和HTTP关系的1、TCP/IP是个协议组&#xff0c;可分为三个层次&#xff1a;网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。因此&#x…

Asterisk学习进阶

Asterisk学习进阶 介绍篇 抛开所有概念&#xff0c;首先从单词学起。估计很多人和我一样没有明白这个词是什么意思&#xff0c;或许猜测他还可能是一个组合词。其实它就是“*”&#xff0c;作为搞程序的我们看到这个东东想到的也许会是乘号&#xff0c;当然有另外一大帮人想到的…

windows 禁用ipv6服务_39.Dism++ Windows系统简洁优化

Dism的特点Dism无需任何Dism组件&#xff0c;即可兼容高低版本所有系统&#xff01;而微软Dism则需要3个版本。Dism是Dism的交集&#xff0c;提供完全的图形化操作&#xff0c;几乎支持Dism的所有功能以及大量Dism原本所不支持的功能。管理更新、驱动、功能、Appx、可选功能、服…

windows功能_有 20 多种功能的 Windows 原生日历替代软件

Win 10 出来这么久了&#xff0c;不知道还有多少在用 XP 或者 Win 7 的朋友呢&#xff1f;今天小美要推荐的软件&#xff0c;是专门针对 Win 10 的&#xff0c;没有升级系统的小伙伴可能就无法使用了~这是一款用来替换 Windows 10 任务栏原生时间日历的软件&#xff0c;名字叫「…