会话初始化 section123

概述

当一个UAC期望发起一个会话,它会制定一个INVITE请求。请求会被proxy转投,最终到达可以接受请求的UAS。UAS需要查询用户来判断是否接受请求,然后UAS可以通过回2响应接受请求。如果不接受,回3,4**,5或6响应。在返回最终响应前,UAS也可以发送1临时响应来告知UAC正在连接被叫用户。
UAC需要给收到的每个final响应回ACK。300-699的final response由事务层处理(遵循seciotn17的规则),2
的由UAC核心生成。
对一个INVITE的2响应建立了一个会话,同时创建了UA间的一个对话。因此如果因为INVITE fork(多路会话),收到不同远端UA的2,要见不同对话这些对话是同一个call的一部分。

UAC处理

INVITE中应该带一个Allow头域,指明对话中可以提出什么方法。
Supported头域在INVITE中列举了所有UAC明白的扩展(extension)
Accept头域,指明INVITE建立对话内发给UA的子请求和收到的响应,UA接受的content-type。特别用于指明支持的SDP
UAC可以带一个Expire头来限制邀请的有效期,如果有效期内没有收到响应,UAC应该发一个CANCEL消息
SIP使用offer/answer模型,发送的会话描述称为offer,其中指明期望的通信方式、方法参数和收answer的地址。另一个UA返回的会话描述称为ansrer,指明了接受的通信方式、应用方法的参数和收offere媒体流的地址。

UAS处理

被叫无法或不愿意通话,UAS回486.如果UAS清楚系统无法接受会话,UAS应当回600.但因为UAS不太额能知道,这个返回码不常用。UAS拒绝INVITE中包含的offer要回488,包含Warning头域。
如果接受INVITE请求,UAS core产生一个2**响应。建立一个对话。
如果INVITE中有offer,200OK中要带answer,如果没有,200OK中要带Offer.
一旦响应建立了,它会传到INVITE服务器事务层。一旦服务事务层会被销毁,一旦它收到了最终响应并将其传给传输层。所以在收到ACk前需要周期给传输层重传响应。重发从某个时间点T1开始每次重传间隔翻倍,直到T2秒。如果64*T1秒没有收到ACK,会话由BYE中止

Reference

[1].RFC 3261 SIP: Session Initiation Protocol

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值