Asterisk Stasis消息总线(Message Bus)之ast_network_change_type分析之一

本文介绍了Asterisk 12版本引入的Stasis Message Bus,它用于处理Asterisk实时core和其他模块的事件。重点分析了`ast_network_change_type`,包括其定义、销毁、初始化和应用程序调用,并以chan_iax2和PJSIP为例说明网络更改事件如何影响模块行为,如触发IAX Endpoint的重新注册。
摘要由CSDN通过智能技术生成

一、概述

       Asterisk从12版本开始就引入了Stasis Message Bus。Stasis虽然是一个内部publish/subscribe message,但是它可以支持Asterisk实时core或者其他的模块的事件获取,如果有系统用户订阅了实时core或者其他模块的指定消息以后,它负责处理用户这些关注的事件。如果其他相关的资源需要进行实时处理时,可以对你模块进行订阅,或者要求推送这些信息,这样可以进一步确保信息的一致性。一些实时功能模块,例如CDR,AMI或者现在的新API接口ARI很多时候确实需要通过这些实时信息来处理模块本身的逻辑。比如,呼叫录音或者计费的问题。

二、ast_network_change_type分析

1、定义

STASIS_MESSAGE_TYPE_DEFN的宏为:

/*!

* \brief Boiler-plate messaging macro for defining public message types.

*

* \code

*    STASIS_MESSAGE_TYPE_DEFN(ast_foo_type,

*        .to_ami = foo_to_ami,

*        .to_json = foo_to_json,

*        .to_event = foo_to_event,

*        );

* \endcode

*

* \param name Name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值