毕设之 asterisk

 1。Asterisk 体系结构

Asterisk 系统的体系结构非常明晰,他不同于传统的PSTN 交换机,更多的时候,Asterisk 被当做一个连通电话的中间件,Asterisk 的可扩展性使其可以应用的各个领域,基于Asterisk的产品如 trixbox , freeries等,图3.1Asterisk的内核结构。

Asterisk 内核包含了五个必要的核心操作模块和四个可加载的应用接口,它们共同组成了Asterisk的完整结构,五个核心模块分别是:PBX核心模块、动态加载器模块、实时调度和I/O管理器、编解码转换模块和应用启动器模块,四个扩展客家在接口分别是:编码转换接口、Asterisk通道接口(SIP,IAX)、扩展应用接口(AGI,AMI),文件格式接口。

 

                          3.1  Asterisk 内核结构

 

Asterisk基于模块化设计的,通过模块的动态加载实现设定的功能,用户可通过动态加载需要的模块。每当Asterisk启动,动态模块加载器就会加载模块的驱动程序。这些模块包括通道驱动、文件格式、会话记录、编解码器、应用启动器等。

 Asterisk 启动后,其PBX核心即启动一个monitor线程监听通道消息,接受并处理通道上的会话请求,这些请求包括会话的初始或通道(Channel)的拆除等。通道接口负责管理会话呼入者的连接状态,无论VOIP连接、PRI连接还是ISDN连接,通道接口会给每一个呼叫的绘画建立一个信道,然后根据需要将这些信达澳彼此相连接,具体的连接细节都将由Asterisk的内核完成。

扩展应用接口允许各式各样的任务模块运行在Asterisk平台上:电话会议、语音信箱、在线数据交换等等。通过这些接口,开发人员可以在电话呼叫的任意阶段与Asterisk交互,可以编写全新的电话应用程序,例如,笔者在开发过程中实现话务员自动报号功能时即在坐席与客户接通时执行一个AGI接口程序,实现向客户报告话务员编号功能。

2  Asterisk内核初始化流程

Asterisk的模块初始化工作由Asterisk 负责,包括系统的启动、初始化各个模块等工作,其中 main()函数是系统的入口,这里负责初始化文件日志系统、设置RTP/RTCP端口、信令通道的初始话(SIP)等, main()函数通过调用load_modules()函数加载各个模块并且注册各个app的入口函数,load_pbx()函数负责加载Asterisk内嵌的函数,它通过读取全局数组builtins中每个app的信息,然后调用ast_register_application注册app的各个入口函数,模块初始化流程如图 3-2 所示。

 

    

                 3.2 Asterisk 模块初始化流程

 

3  Asterisk 呼叫流程

每一个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值