SIP中3个很重要的概念,就是dialog, session和transaction。
以下是我学习中对这三个概念的心得,贴出来和大家探讨。
dialog的建立是收到UAS的响应(To tag)时开始建立的。收到180响应时建立的
dialog叫做早期对话(early dialog),收到2XX的应答开始才是真正的dialog建立。
session 是媒体交换之后才建立的。具体而言就是通过offer/answer方式交换sdp的媒体。
session的建立可以使INVITE-200 也可以是200-ACK。这要看媒体的交换发生的时间。
具体来说,INVITE 中的消息体用sdp语言来描述自己可处理的媒体类型,200OK中
带回UAS端可处理的媒体类型。这个时候媒体交换就算是完成了。也就是session建立起
来了。
dialog是end-point对end-point的关系。而transaction 是hop by hop的关系。dialog通过
From tag, To tag(应该说local tag, remote tag--这两个tag随着UAC和UAS而不同。)以及
Call-ID 来判别。而transaction是一个SIP entity和下一个SIP entity之间请求和应答关系,(无状态代理服务器不再此列)
是通过对Via里的branch来判别的。
Transaction:维护hop to hop状态,包括一个请求和其触发的所有响应,包括若干暂时响应和一个最终响应。生命周期从请求产生到收到最终响应。
Dialog:维护peer to peer状态,目前只有invite和subscribe请求会触发dialog。其生命周期贯穿一个端到端会话的始终。
分享到:
相关推荐
- **Session**:在SIP中,一个Session可以由多个Dialog组成,表示一次完整的通信过程。 **2.4 SIP服务器运行模式** SIP服务器可以有两种主要的运行模式: 1. **作为SIP Proxy Server**:这是最常见的选择。在这种...
SIP协议中的基本概念包括Transaction、Dialog和Session三个层次。 **Transaction**是SIP中最基础的概念之一,它指的是客户端向服务器发送的第一个请求直到服务器回应最后一个非1xx状态码响应之间的整个过程。...
仅实现了交易(transaction)层次的解析,缺乏对呼叫(call)、会话(session)和对话(dialog)等更高层次过程的支持;同时,它并未内置多线程并发处理机制,限制了其处理能力。 为了解决Osip2的这些问题,eXosip...
PJSIP是一个开源的SIP(Session Initiation Protocol)库,用于实现VoIP和其他基于IP的通信服务。本文将深入探讨PJSIP架构中的关键组件和设计模式,特别是在描述的"活动图1"中涉及的哈希算法。 首先,我们要理解...
oSIP (Open Session Initiation Protocol) 是一个开源的、实现SIP (Session Initiation Protocol) 标准的软件栈,广泛应用于VoIP (Voice over Internet Protocol) 和多媒体通信系统中。SIP是一种应用层控制协议,...
每个SIP事务都有对应的状态机,如ICT(Initial Client Transaction)、NICT(Non-Initial Client Transaction)、IST(Initial Server Transaction)和NIST(Non-Initial Server Transaction)。 - ICT状态机:用于...
7. **Transaction and Dialog**:SIP事务处理单个请求-响应对,而对话跟踪两个实体之间的长期交互。SipServlet API提供了对这些概念的支持,帮助开发者正确地管理SIP流程。 在实际开发中,`sipservlet-1.0-fcs`可能...
osip2的一个不足是其上层API封装不够完善,导致使用时可能较为复杂,特别是对于更高层次的协议过程,如call、session、dialog的处理。 **2.osip2协议栈体系结构** osip2协议栈主要由以下几个组件构成: 1. **解析...
You can specify the filter in the options dialog You also can enter the filter expression directly at the top of the File Browser All windows shell functions are now available from the popup menu. ...
You can specify the filter in the options dialog You also can enter the filter expression directly at the top of the File Browser All windows shell functions are now available from the popup menu. ...
3. 填完 bdcdata 以后,用 call transaction ‘XXXX’ using bdc…… 这个命令来真正的 commit 动作或者 call function 'BDC_INSERT' 在建立一个 session。 4. 并把执行的结果返回给 messtab 这个 Internal Table ...
parser负责解析SIP消息,message处理消息的构建和操作,transaction和dialog分别对应SIP事务和对话的管理,而stack则包含了整个SIP堆栈的初始化和操作。 在Linux环境下编译: 1. 首先,解压libosip2-5.0.0.tar.gz...
SIP(Session Initiation Protocol,会话初始化协议)是一种用于创建、修改和终止多媒体通信会话的信令协议,广泛应用于VoIP、视频会议、即时消息等应用场景。在中国科技网NPN技术培训教材中,SIP体系架构是重要的...
6. **Transaction和Dialog**:在SIP中,Transaction是请求和响应之间的对应关系,而Dialog则是两个SIP实体之间的一系列相关事务,通常对应于一个具体的通信会话。 7. **事件订阅和通知**:SIP支持发布/订阅模型,...
- **符合SIP基本协议处理机制**:扩展应该遵守SIP的事务(Transaction)、对话(Dialog)和会话(Session)模型,以及相关的语法和时序规则。 - **增加消息头和参数**:通过增加新的消息头字段或者扩展已有字段的...
MjSip是一个Java语言实现的SIP(Session Initiation Protocol)协议栈,适用于初学者进行SIP相关应用和服务的开发。它遵循RFC3261标准,提供了一个灵活且层次化的架构,允许开发者轻松创建SIP基础应用。MjSip的核心...