RFC 3261摘录

Resiprocate 如何使用STUN 应网友要求,拖了个把月,谈谈Resiprocate 如何使用STUN。 阅读详情

 

·        If more than one Contact issent in a REGISTER request, the

registering UA intends toassociate all of the URIs in these Contact

header field values with theaddress-of-record present in the To

field. This list can beprioritized with the "q" parameter in the

Contact header field. The"q" parameter indicates a relative

preference for theparticular Contact header field value compared to

other bindings for thisaddress-of-record. Section 16.6 describes

how a proxy server uses thispreference indication.

---10.2.1.2Preferences among Contact Addresses

 

Contact的"q"参数如何理解?

 

 

·        Independent of the method,if a request outside of a dialog generates

   a non-2xx final response, any early dialogscreated through

   provisional responses to that request areterminated.  The mechanism

   for terminating confirmed dialogs is methodspecific.  In this

   specification, the BYE method terminates asession and the dialog

   associated with it.  See Section 15 for details.

          ---12.3 Termination of a Dialog

注:参考A UA MUST NOT send a BYE outside of a dialog理解,所以cancel结束早期会话的时候,需要再发送487 Request Terminated结束会话。

 

·        If the INVITE requestcontained an offer, and the UAS had not yet

sent an answer, the 2xx MUSTcontain an answer. If the INVITE did

not contain an offer, the2xx MUST contain an offer if the UAS had

not yet sent an offer.

---13.3.1.4The INVITE is Accepted

注:如何理解?

·        Therefore, it is necessary

to periodically pass theresponse directly to the transport until the

ACK arrives. The 2xxresponse is passed to the transport with an

interval that starts at T1seconds and doubles for each

retransmission until itreaches T2 seconds (T1 and T2 are defined in

Section 17). Responseretransmissions cease when an ACK request for

the response is received. Thisis independent of whatever transport

protocols are used to sendthe response.

 

If the server retransmitsthe 2xx response for 64*T1 seconds without

receiving an ACK, the dialogis confirmed, but the session SHOULD be

terminated. This isaccomplished with a BYE, as described in Section

15.

---13.3.1.4The INVITE is Accepted

看起来200 OK传输是可靠的

 

 

 

·        A stateful proxy has aserver

transaction associated withone or more client transactions by a

higher layer proxyprocessing component (see figure 3), known as a

proxy core. An incomingrequest is processed by a server

transaction. Requests fromthe server transaction are passed to a

proxy core. The proxy coredetermines where to route the request,

choosing one or morenext-hop locations. An outgoing request for

each next-hop location isprocessed by its own associated client

transaction. The proxy corecollects the responses from the client

transactions and uses themto send responses to the server

transaction.

 

A stateful proxy creates anew server transaction for each new

request received. Anyretransmissions of the request will then be

handled by that servertransaction per Section 17   

---16.2Stateful Proxy                                      

注:走UDP的重发机制,可以借鉴使用

 

 

·        when the user hangs up, itindicates a desire to

terminate the attempt toestablish a session, and to terminate any

sessions already created

---15Terminating a Session

session分两种:尚未建立的以及已经建立

 

·        Once the BYE is constructed,the UAC core creates a new non-INVITE

client transaction, andpasses it the BYE request. The UAC MUST

consider the sessionterminated (and therefore stop sending or

listening for media) as soonas the BYE request is passed to the

client transaction. If theresponse for the BYE is a 481

(Call/Transaction Does NotExist) or a 408 (Request Timeout) or no

response at all is receivedfor the BYE (that is, a timeout is

returned by the clienttransaction), the UAC MUST consider the

session and the dialogterminated.

 

This rule means that a BYEsent without tags by a UAC will be

Rejected(a 481  Call/Transaction Does Not Exist response

). This is a change from RFC2543, which allowed BYE

without tags.

---15.1.1 UACBehavior

 

·        SIP proxies are elementsthat route SIP requests to user agent

servers and SIP responses touser agent clients.

…...

Responses will route throughthe same set of proxies

traversed by the request inthe reverse order.

 

---16.1Overview

SIP Proxy概念

 

·        When

   a connection is opened by the transportlayer, this index is set to

   thedestination IP, port and transport.  Whenthe connection is

   accepted by the transport layer, this indexis set to the source IP

   address, port number, and transport.

 ---18 Transport

 

注: source IP针对UAC而言,而Destination IP针对UAS而言

 

·         Before a request is sent, the client transportMUST insert a value of

   the "sent-by" field into the Viaheader field.  This field contains

   an IP address or host name, and port.

18.1.1 SendingRequests

注:语气词MUST,然而我抓的包还没看到via 的"sent-by" field

 

·        When a tel URL (RFC 2806[9]) is converted to a SIP or SIPS URI, the

   entire telephone-subscriber portion of thetel URL, including any

   parameters, is placed into the userinfo partof the SIP or SIPS URI.

 

 Thus, tel:+358-555-1234567;postd=pp22 becomes

 

      sip:+358-555-1234567;postd=pp22@foo.com;user=phone

 

   or

     sips:+358-555-1234567;postd=pp22@foo.com;user=phone

 

   not

     sip:+358-555-1234567@foo.com;postd=pp22;user=phone

 

   or

 

     sips:+358-555-1234567@foo.com;postd=pp22;user=phone

19.1.6Relating SIP URIs and tel URLs

 

·        The CSeq header field servesto order transactions

   within a dialog, to provide a means touniquely identify

   transactions, and to differentiate betweennew requests and request

   retransmissions.  Two CSeq header fields are considered equalif the

   sequence number and the request method areidentical

---20.16 CSeq

注意:如果重发的话,CSeq不变

 

 

 

 

 

 

 

 

 

 

 

ReSIProcate之各工程功能简单介绍 1、basicCall,basicMessage,basicRegister,resip_test测试用的 2、db_static Sleepy Cat开发的Berkeley DB 3、dum为Dialog UsageManager的缩写,包含UAC 阅读详情

相关推荐

国央企创新负责人如何通过平台实现科研成果的快速识别与转化?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

sipP测试,UAS怎么主动发BYE消息

sipP是一款极佳的SIP性能测试工具,使用非常灵活。其提供的缺省场景UAS中,是被动接收BYE消息来结束SIP会话的。如果我们的测试模型是要由UAS来触发挂机,那应该怎么写呢? 思路:接收ACK时,加个action,用变量存储From、To和Contact里的值,用于BYE请求的构造。 直接上脚本: <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE scenario SYSTEM "si...

至虛極,守靜篤 1404

PotPlayer自用皮肤

自用 PotPlayer 皮肤,仅微调了字体大小与颜色,是按个人习惯调整,未做适配性调整。

RFC3261 sip协议------cancel请求

Cancel请求 Cancel请求是用来取消一个之前已经发送过得请求的,如果这个请求已经得到了应答,那么Cancel请求是失效的。所以Cancel请求一般都用是用来取消invite请求的,因为invite的请求得到最终应答的时间比较长。对于一个有状态的UAS来说,Cancel请求是点对点的,就是Cancel请求需要每个proxy服务器进行处理和应答。

yang19870913的专栏 5317

2-shell及常用命令-续.pdf

2-shell及常用命令-续.pdf

A-Level经济例题解析及练习Opportunity Cost

例题Question: Opportunity CostYou are selling your 1996 Mustang.&nbsp; You have already spent $1000 on repairs.&nbsp;At the last minute, the transmission dies.&nbsp; You can pay $600 to have it repaired, or sell the car “as is.”In each of the fol

Alevel3的博客 744

SIP简介

说明:以下内容来着之前下载的一份文档,现将概念部分摘录在BLog,如需要完整文档将放在文件中或留言。 SIP简介,第1部分:SIP初探 时间:2006-04-07作者:Emmanuel Proulx浏览次数: 21367 本文关键字:SIP,JAIN,RFC 3261signaling,WebLogic Communications Platform,会话...

weixin_30399871的博客 192

双目立体匹配算法:SGBM

SGBM(Semi-Global Block Matching)是一种用于计算双目视觉中视差(disparity)的半全局匹配算法,在OpenCV中的实现为semi-global block matching(SGBM)。它是基于全局匹配算法和局部匹配算法的优缺点,提出了一种折中的方法,既能保证视差图的质量,又能降低计算复杂度。

weixin_45303602的博客 9404

SIP学习笔记(1)----消息集合

最近在学习SIP,刚刚看了一个很好的开源工程 pjsip 很强大!  可是对 SIP 还不是很了解,特增加了一个学习计划:SIP学习 RFC 文档参见:http://www.ietf.org/rfc/rfc3261.txt SIP 也是类似 HTTP 的一个协议集合,在网上搜索了一下相关的信息,摘录如下: SIP消息的第一行包含消息的类型和所使用的SIP版本(2.

好久都没有更新博客喽,工作原因只能总结在内部机上:-( 1103

Windows server 2012R2安装Oracle11g

打开 开始——所有程序——Oracle-OraDb11g_home1——配置和移植工具——Database Configuration Assistant。打开 开始——所有程序——Oracle-OraDb11g_home1——配置和移植工具——Net Configuration Assistant。首先打开Oracle的安装位置找到下面的位置找到tnsnames.ora文件右键编辑。打开Oracle的安装位置找到下面的位置找到tnsnames.ora文件右键编辑。选择仅安装数据库软件。

qq_74770105的博客 3596

Lumerical官方案例、FDTD时域有限差分法仿真学习(三)——环形谐振器(Ring resonator)之第一部分

环形谐振器教程的第 1 部分使用 MODE 来设计和仿真环形谐振器。 自由光谱范围 (FSR) 和品质因数 (Q 因数) 是这种面向片上通信应用的基于绝缘体上硅 (SOI) 波导设计的关键性能指标。

weixin_45719141的博客 3万+

SIP 学习 (1)

最近在学习SIP,刚刚看了一个很好的开源工程 pjsip 很强大!  可是对 SIP 还不是很了解,特增加了一个学习计划:SIP学习   RFC 文档参见:http://www.ietf.org/rfc/rfc3261.txt SIP 也是类似 HTTP 的一个协议集合,在网上搜索了一下相关的信息,摘录如下:   SIP消息的第一行包含消息的类型和所使用的SIP版本(2.0)。在请求中,

4128

QMK键盘固件开发零基础教程(2025全新重制版)

《QMK键盘固件开发零基础教程(2025全新重制版)》是一套专为键盘爱好者和开发者设计的全面教程,旨在帮助用户从零基础快速掌握最新的QMK固件开发技术。教程基于2025年最新的QMK版本(0.19.8+),解决了旧版教程中的诸多问题,如概念不清、步骤缺失和代码过时等。新版教程提供了详细的图解、完整的项目源码以及从环境配置到高级功能开发的全流程指导。此外,教程还涵盖了2024年QMK生态的重大变革,包括键码系统的重构、编译工具链的更新以及Config文件格式的改变等。付费版教程额外提供独家内容,如新特性解析、

Despacito0o的博客 1121

pjsip项目概要及c语言面向对象方法实现

最近在学习SIP,刚刚看了一个很好的开源工程 pjsip 很强大!  可是对 SIP 还不是很了解,特增加了一个学习计划:SIP学习   RFC 文档参见:http://www.ietf.org/rfc/rfc3261.txt SIP 也是类似 HTTP 的一个协议集合,在网上搜索了一下相关的信息,摘录如下:   SIP消息的第一行包含消息的类型和所使用的SIP版本(

记录程序员的每一天 5131

RK3588 Android12 添加HDMI和喇叭声音通道切换选项

rk3588 android12系统默认接hdmi out时,声音会切换到hdmi out输出,主板声卡喇叭输出会没有声音输出。现在添加一个选项设置hdmi out时,声音可以保持主板声卡喇叭输出。

Android系统开发笔记 4163

一、OpenSM 架构部署及原理详解

OpenSM 是 InfiniBand 网络的核心组件,通过自动化的拓扑发现、路由计算和状态维护,确保网络的高效运行。部署时需关注配置文件参数、路由算法选择和高可用性设计,调试时可借助日志和诊断工具快速定位问题。

jundao1997的专栏 1130

ReSIProcate之编译、安装、配置、运行、测试proxy

我使用了vs2008编译器,下载的最新版本ReSIProcate 1.51,在windows 7下编译编译 Build->Configuration Manager钩掉basicCall,basicMessage,basicRegister,还有resip_test,接着Build Solution.我用vs2008编译,有一处错误,AresDns Line 158,Warni

soliddream66的专栏 9391

109. SAP ABAP 应用程序中的锁机制和工作原理介绍

SAP ABAP 系统中的锁概念,是 SAP ABAP 为了保证`数据一致性`而引入的一种保护机制。 像 SAP 这种复杂的企业级应用,系统中同一时间段的同一份数据,可能会有多个 Transaction(终端用户或者 API )同时进行读写操作。为了防止出现数据不一致,SAP ABAP 引入了锁机制。 这种锁机制并非数据库服务器层面的锁,而是在 SAP ABAP 应用服务器层面上工作,加锁和解锁都由专门的 ABAP Function Module 来完成。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1467

如何使用SIPp测试ReSIProcate的Proxy

花了两天时间阅读SIPp的文档,包括SIPp Reference Document,STSLabs User Manual。 颇有些说明书控的感觉,一切准备好了,开始进行了使用SIPp测试ReSIProcate的Proxy的实践,没想到颇为不顺,于是有了这篇博文,记录一下个人经验,以供后人借鉴。 一开始按照说明Run sipp with embedded server (uas

soliddream66的专栏 3295

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ReSIProcate如何建立调试环境

我觉得大家对ReSIProcate存在一个误区。大多数人接触ReSIProcate基于应用的目的,考虑采用ReSIProcate服务于应用的时候总是要问ReSIProcate支持不支持某种应用,比如支持不支持语音编码啦,支持不支持电话多方视频会议啦,支持不支持MFC啦......甚至于在问这些问题之前对ReSIProcate是什么一无所知。在将ReSIProcate考虑入应用的候选行列之前,总该先

soliddream66的专栏 3059

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

针对Sip Proxy的多路压力测试程序

本压力测试基于ReSIProcate 1.5版本的basicCall项目修改,并且在ReSIProcate 1.5的Proxy测试通过,理论上应该也能针对其它Proxy进行压力测试。 如何使用1、下载ReSIProcate 1.52、从http://www.pudn.com/downloads188/sourcecode/internet/tcp_ip/detail882742.h

soliddream66的专栏 2672

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

RFC 3261与Resiprocate对照参考

RFC 3261与Resiprocate对照参考

soliddream66的专栏 1671

ReSIProcate之header宏

Header宏defineHeader主要分布三处,分别是SipMessage.cxx defineHeader(_header, _name, _type, _rfc) Headers.hxx defineHeader(_enum, _name, _type, _rfc) Headers.cxx defineHeader(_enum, _name, _type, _refere

soliddream66的专栏 1489

Application Verifier添加repro之后产生的问题

Application Verifier添加repro之后产生的bug。刚启动载入dll的时候会有 LuaPriv: Attaching to process...-- LuaPriv initialized-- 提示LuaPriv附加到进程。运行时候暂停,除了主线程,其它线程的调用堆栈看不到源代码。 1、只要访问SipMessage的sdp部分的payload

soliddream66的专栏 1247
上一篇: Application Verifier添加repro之后产生的问题
下一篇: RFC 3261与Resiprocate对照参考
soliddream66
博客等级 码龄19年 93粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值