随笔分类 -  SIP

对SIP摘要认证方案的理解
摘要:一、口令认证常见机制基于口令认证的系统一般有以下几种口令验证方式:1、客户端以明文形式将用户名密码通过网络发送到服务器,服务器与已经保存在服务端的用户名密码进行比较,一致则通过验证;HTTP基本鉴别方案即采用这种方式,它不会对以明文方式在物理网络中传输的实体进行任何形式的保护,显然这不是安全的用户鉴... 阅读全文
posted @ 2014-10-11 17:17 顾文锦 阅读(2501) 评论(0) 推荐(0)
Sip协议中的严格路由和松路由
摘要:严格路由和松路由1、松路由的地址列表中并不列出一条完备而严格的路径,而是只给出路径中的某些关键点。在关键点之间可以通过路由器的自动路由选择功能进行路由,在数据包分片的时候也必须被复制。SIP消息中如果第一个Route头域中的参数中包含lr参数为松路由。2、严格路由要求数据包必须严格按照发送方规定的路径经过每一个路由器,这些路由器应该是一一相连的,每两个指定的路由器之间不能有其他未指定的路由器,且路由器的顺序是不能改变的。如果数据包在传输时无法直接到达下一跳指定的路由器,路由器就会丢弃该数据包,然后产生一个源路由失败的目的不可达的ICMP差错报文报告给发送方。SIP消息中如果第一个Route头域 阅读全文
posted @ 2012-12-06 14:12 顾文锦 阅读(1531) 评论(0) 推荐(0)
SIP服务器性能测试工具SIPp使用指导(转)
摘要:1 安装及概述:SIPp是一个测试SIP协议性能的工具软件。这是一个GPL的开放源码软件。它包含了一些基本的SipStone用户代理工作流程(UAC和UAS),并可使用INVITE和B YE建立和释放多个呼叫。它也可以读XML的场景文件,即描述任何性能测试的配置文件。它能动态显示测试运行的统计数据(呼叫速率、信号来回的延迟,以及消息统计)。周期性地把CSV统计数据转储,在多个套接字上的TCP和UDP,利用重新传输管理的多路复用。在场景定义文件中可以使用正规表达式,动态调整呼叫速率。SIPp可以用来测试许多真实的SIP设备,如SIP代理,B2BUAs,SIP媒体服务器,SIP/x网关,SIP P 阅读全文
posted @ 2012-07-10 15:00 顾文锦 阅读(7819) 评论(1) 推荐(2)
Sip协议栈-消息层的设计与实现
摘要:一个SIP消息既可以是一个从客户端到服务器端的请求,也可以是一个从服务器端到客户端的一个应答。一个消息由三部分组成:消息起始行、消息头、消息体。消息体分为XML格式的消息和SDP消息。消息编解码时采用延迟解析策略,即用到某个字段时再解析,提高响应速度。消息生成时,先将消息分解为三部分:消息起始行、消息头、消息体。如果用到某个具体的字段时,再对上述三部分进行解析。 下图描述了消息层的关键类的类图: 阅读全文
posted @ 2011-10-12 17:52 顾文锦 阅读(446) 评论(0) 推荐(0)
Sip协议栈-事务层的设计与实现
摘要:一个事务是客户发送的一个请求事务(通过通讯层)发送到一个服务器事务,连同服务器事务的所有的该请求的应答发送回客户端事务。事务层处理应用服务层的重发,匹配请求的应答,以及应用服务层的超时。任何一个用户代理客户端(user agent client UAC)完成的事情都是由一组事务构成的。通常一个SIP 事务由一个单个请求和这个请求的所有应答组成,这些应答包括了零个或者多个临时应答以及一个或者多个终结应答事务层包含两个事务库:客户端事务库和服务端事务库。每个事务都包含若干状态。其中Invite客户端事务包括Calling、Proceeding、Completed、Terminated四种状态;非I 阅读全文
posted @ 2011-10-12 17:43 顾文锦 阅读(1433) 评论(0) 推荐(0)
SIP 计时器的总结(转)
摘要:总结每个 SIP 计时器的缺省值,RFC 3261一节描述计时器及其含义。定时器 缺省值 节 含义T1 500 ms 17.1.1.1 经历来回时间(RTT)T2 4 秒 17.1.2.2 非 INVITE 请求和 INVITE 响应的最长重新传输时间间隔T4 5 秒 17.1.2.2 消息可保留在网络中的最长持续时间计时器 A 最初为 T1 17.1.1.2 INVITE 请求重新传输时间间隔(仅适用于 UDP)计时器 B 64*T1 17.1.1.2 INVITE 事务超时计时器计时器 D 大于 32 秒(对于 UDP) 17.1.1.2 响应重新传输的等待时间 0 秒(对于 TCP 和 阅读全文
posted @ 2011-09-09 17:49 顾文锦 阅读(671) 评论(0) 推荐(0)
一个Sip协议栈的实现方案
摘要:将Sip协议栈分为四层:事务用户层(TU)、事务层、传输层、消息编解码层。如下图所示:传输层采用异步Socket实现,为了防止内存碎片和提高处理速度使用了缓冲池和对象池;事务层使用.net的线程池对事务并行处理;消息编解码层采用延迟解析策略,即用到某个字段时再解析,提高响应速度。 阅读全文
posted @ 2011-06-20 19:52 顾文锦 阅读(1027) 评论(0) 推荐(0)
一个Sip会话的例子
摘要:本例子是一个基本的SIP四边传送,U1->P1->P2->U2,使用proxy来传送。摘自RFC3261。F1 INVITE Alice -> atlanta.com proxyINVITE sip:bob@biloxi.com SIP/2.0Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8Max-Forwards: 70To: Bob <sip:bob@biloxi.com>From: Alice <sip:alice@atlanta.com>;tag=1928301774Call- 阅读全文
posted @ 2011-06-16 08:49 顾文锦 阅读(1144) 评论(0) 推荐(1)
SIP消息头域的说明(转)
摘要:1 general-header类:为描述消息基本属性的通用头域,可用于请求消息或响应消息;通用头域的域名只有在协议版本改变时才可有效地扩展。不过,通信中的所有方均认为是“通用头域”的新的头域也可认为是通用头域。不被认可的头域作为实体头域。1.1Call-IDCall-ID通用头域唯一标识一个特定的请求或者一个特定客户的所有登记。来自同一个客户的所有的登记应该使用同样的Call-ID头值,至少是在同一个重新启动的循环中。注意到单个的多媒体会议会产生不同Call-ID的几个呼叫,例如,用户多次邀请一个单个的私人加入同一个会议。对于一个INVITE请求。主叫方用户代理服务器不应该警告用户,如果用户 阅读全文
posted @ 2011-06-10 09:40 顾文锦 阅读(2389) 评论(0) 推荐(0)