PJSIP开发手册之Dialog Invite会话和Usage(十二)

第十二章 Dialog Invite会话和Usage

介绍

Dialog invite会话是一个高层的invite会话管理,它可以被应用用来管理invite会话(包括SDP管理)。这个invite会话封装了抽象的基本Dialog,因此应该不需要使用基本Dialog的API,当它使用invite会话API时。

一个Dialog INVITE会话是可以基于每个对话被应用创建的。Dialog INVITE会话被Dialog INVITE usage管理。Dialog INVITE usage将事件从这个Dialog转发到相应的INVITE会话,并且也处理交叉Dialog。

DialogINVITE会话和usage在单独的静态库中实现,即pjsip-ua库。应用必须包括<pjsip-ua/sip_inv.h>来使用Dialog INVITE会话/usage功能。或者应用可以只包括一个单独的头文件<pjsip-ua.h>来获得pjsip-ua库中的所有功能。

术语

DialogINVITE会话是一个在一个Dialog中的INVITE会话。如果应用决定使用高层的INVITE会话管理,它需要为每一个Dialog创建唯一一个Dialog INVITE会话实例。

DialogINVITE usage是一个注册到endpoint的PJSIP模块。当一个Dialog有Dialog INVITE session时,这个模块需要作为Dialog usage注册到特定的Dialog。这将在INVITE会话创建的时候自动实现。

特性

DialogINVITE会话提供下面的特性:

  • 会话进度报告(例如,会话progressing,connected,confirmed,disconnected)
  • 自动认证处理(例如,接收到401/407响应后重试这个请求)
  • SDP offer和answer处理
  • 高层的交叉处理
  • 会话超时(即Expires头部域)
  • 会话扩展,像会话定时器,和可靠的临时响应

INVITE会话状态

DialogINVITE usage提供回调函数来通知应用会话的进度。对于电话应用这是非常有用的,因为通常会话的状态和电话拨打的状态相关。

一个INVITE会话的进度如下状态图所示。


每个状态的描述如下:

PJSIP_INV_STATE_NULL

会话第一次被创建时的状态。在状态时,没有消息已经被发送或接收。

PJSIP_INV_STATE_CALLING

第一个INVITE消息发送后,在收到任何临时响应之前的会话状态。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值