---这章应该没翻译完,也没检查,先放着
Chapter 13:SIP-Specific Event Notification
13.1 Introduction
SIP事件指定通知的定义在RFC265“Session Initiation Protocol(SIP)-Specific Event Notification”。核心的协议是定义了两种SIP的方法来建立事件的订阅,如SUBSCRIBE和NOTIFY,但是也可以定义其他的方法来创建订阅(REFER)。
这章描述PJSIP在基本对话框架基础上来设计和实现创建基本和一般事件通知框架,并可以用来实现更高层的事件包,例如presence和call transfer(通过REFER)。
PISIP事件通知框架的实现打包作为一个静态库pjsip-simple,在pjsip目录下。为了它的功能,应用必须包含头文件<pjsip_simple.h> 并且链接pjsip_simple静态库。
这章描述了基本事件订阅框架。出席和呼叫转移将在下章描述。
13.1.1 Basic Concept
所有PJSIP事件通知会话的类型都在对象pjsip_evsub中。这个对象管理订阅的生命周期,并将传入的请求和响应转换为适当的回调调用。
PJSIP事件通知会话使用基本对话框架(10 UA)。因为基本对话框架的设计允许对话可被多会话共用,多个事件订阅会话可能使用同一个对话,它还可以与invite会话共享这个对话。
为了订阅一个事件通知,应用需要创建一个事件订阅对象,指定底层对话和回调来接收订阅事件。
对话或者应用都会有传入的订阅请求(比如SUBSCRIBE or REFER),这取决于请求时对话内还是外。应用必须检查请求中的事件ID,然后使用相应的API来处理订阅。比如,当传入的消息是REFER,应用通过调用pjsip_xfer_create_uas()来创建服务器订阅,当SUBSCRIBE请求中的Event id是“presence”,应用通过调用pjsip_pres_create_uas()创建服务器订阅。
13.1.2 Event Package