目录

1. 什么是 SIP(session initiation protocol)会话初始协议

2. 什么是信令

3. SIP 相关术语

3.1 呼叫

3.2 事务

3.3 SIP URL (Uniform Resource Locators)

3.4 定位服务

3.5 代理服务器

3.6 重定向服务器

3.7 注册员

3.8 用户助理

4. SIP会话事务

5. SIP协议栈

6. SIP消息

6.1 请求消息

6.2 响应消息

6.3 消息结构

6.3.1 请求消息

6.3.2 响应消息

7. SIP监控域互联结构

8. 联网结构

8.1 级联结构

8.1.1 信令级联结构

8.1.2 媒体级联结构

8.2 互联结构

8.2.1 信令互联结构

8.2.2 媒体互联结构


学习openSIPS之前,需要先了解一下SIP协议,因为openSIPS是基于SIP协议的。下面内容转载于https://www.cnblogs.com/11sgXL/p/13553517.html ,略有修改(个人感觉这篇文章还是很详细的,应该也是英文翻译的,所以有些语义难以理解属于正常)。

1. 什么是 SIP(session initiation protocol)会话初始协议

SIP文档(rfc3261)

以下来自百度百科。

SIP(Session initialization Protocol,会话初始协议)是由IETF(Internet Engineering Task Force,因特网工程任务组)制定的多媒体通信协议。

SIP(Session Initiation Protocol)是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话。这些会话可以是Internet多媒体会议、IP电话或多媒体分发。会话的参与者可以通过组播(multicast)、网状单播(unicast)或两者的混合体进行通信。

SIP与负责语音质量的资源预留协议(RSVP)互操作。它还与若干个其他协议进行协作,包括负责定位的轻型目录访问协议(LDAP)、负责身份验证的远程身份验证拨入用户服务 (RADIUS) 以及负责实时传输的 RTP 等多个协议。

随着计算机科学技术的进步,基于分组交换技术的IP数据网络以其便捷性和廉价性,取代了基于电路交换的传统电话网在通信领域的核心地位。SIP协议作为应用层信令控制协议,为多种即时通信业务提供完整的会话创建和会话更改服务,由此,SIP协议的安全性对于即时通信的安全起着至关重要的作用。

2. 什么是信令

信令是控制电路的信号,是终端和终端、终端和网络之间传递的一种消息,专门用来控制电路,建立、管理、删除连接,以使用户能够正常通过这些连接进行通信。
允许程控交换、网络数据库、网络中其它“智能”节点交换下列有关信息:
呼叫建立、监控(Supervision)、拆除(Teardown)、分布式应用进程所需的信息(进程之间的询问/响应或用户到用户的数据)、网络管理信息。

信令通常需要在通信网络的不同环节(基站、移动台和移动控制交换中心等)之间传输,各环节进行分析处理并通过交互作用而形成一系列的操作和控制,其作用是保证用户信息的有效且可靠的传输

信令网关就是两个不同的网之间信令互通设备。

3. SIP 相关术语

3.1 呼叫

一个呼叫是由一个公共源端所邀请的在一个会议中的所有参加者组成,由一个全球唯一的Call-ID 进行标识。

3.2 事务

SIP是一个客户 /服务器协议。
客户和服务器之间的操作从第 1 个请求至最终响应为止的所有消息构成一个SIP事务 。
一个正常的呼叫一般包含三个事务。
其中,呼叫启动包含两个操作请求:邀请( Invite)和证实( ACK),前者需要回送响应,后者只是证实已收到最终响应,不需要回送响应。
呼叫终结包含一个操作请求:再见( Bye)。

3.3 SIP URL (Uniform Resource Locators)

为了能正确传送协议消息,SIP还需解决两个重要的问题。

  • 寻址,即采用什么样的地址形式标识终端用户;
  • 用户定位。

SIP沿用 WWW 技术解决这两个问题。

  1. SIP URL的一般结构为:
    SIP: 用户名:口令 @ 主机:端口;传送参数:用户参数;方法参数;生存期参数;服务器地址参数?头部名=头部值

SIP:需采用SIP协议和所指示的端系统通信
用户名:由任意字符组成,一般可取类似于E-mail用户名形式,也可以是电话号码
口令:可置于SIP URL中,但一般不建议,因为其安全性是有问题的
主机:主机域名或IPv4地址
端口:请求消息送往的端口号,其缺省值为5060,即公开的SIP端口号
传送参数:采用TCP还是UDP传送,缺省值为UDP
用户参数:SIP URL的一个特定功能是允许主机类型为IP电话网关,此时,用户名可以为一般的电话号码。因此,在域名后,增加了“用户参数”字段。该字段有两个可选值:IP和电话,其设定为“电话”时,标识用户名为电话号码,对应的端系统为IP电话网关。
方法参数:所用的方法(操作)
生存期参数:UDP多播数据包的寿命,仅当缠讼参数为UDP、服务器地址参数为多播地址时才能使用。
服务器地址参数:和该用户通信的服务器的地址,覆盖“主机”字段中的地址,通常为多播地址。
传送参数、生存期参数、服务器地址参数和方法参数均属于URL参数,只能在重定向地址,及Contact字段中才能使用。

  1. SIP URL (Uniform Resource Locators)
    用户定位:
    基于等级,SIP用户终端上电后即向等级服务器等级,SIP专门为此定义了一个“登记”(REGISTER)请求消息,并规定了登记操作过程。

3.4 定位服务

SIP重定位服务器或代理服务器用来获得被叫位置的一种服务, 可由定位服务器提供, 但 SIP协议不规定 SIP服务器如何请求定位服务。

3.5 代理服务器

一个逻辑网络实体代表客户端转发请求或者响应,可以同时作为客户端和服务器端。
代理服务器有三种形态: Stateless、 Stateful 和 CallStateful,其可以采用分支、循环等方式向多个地址尝试转发请求。
代理服务器的主要功能: 路由、 认证鉴权、 计费监控、 呼叫控制、 业务提供等。

3.6 重定向服务器

重定向服务器将请求中的目的地址映射为零个或多个新的地址,然后返回给客户端,客户端直接再次向这些新的地址发起请求。重定向服务器并不接收或者拒绝呼叫,主要完成路由功能,与注册过程配合可以支持 SIP终端的移动性。

3.7 注册员

注册员为接收注册请求的服务器,通常与 Proxy 或者 Redirect Server 共存。注册员需要将注册请求中的地址映射关系保存到数据库中,供后续的相关呼叫过程使用, 同时可以提供定位服务。

3.8 用户助理

用来发起或者接收请求的逻辑实体称为User Agent。

4. SIP会话事务

5. SIP协议栈

SIP是应用层的控制协议,用来建立、修改和终止多媒体会话。
SIP本身不提供服务,只是作为一个部件与其他协议一起组成完成的多媒体构架。

SIP 协议是 IETF 多媒体数据和控制体系结构的一部分,与其它协议相互合作。
例如:
RSVP( Resource ReServation Protocol )用于预约网络资源,
RTP( Real-time Transmit Protocol )用于传输实时数据并提供服务质量( QoS )反馈,
RTSP ( Real-Time Stream Protocol )用于控制实时媒体流的传输,
SAP( Session Announcement Protocol )用于通过组播发布多媒体会话,
SDP( Session Description Protocol )用于描述多媒体会话。
但是 SIP 协议的功能和实施并不依赖这些协议。[1]

6. SIP消息

SIP消息采用文本方式编码。
SIP消息包括请求消息和响应消息。请求消息—用于客户端为了激活按特定操作而发给服务器的SIP消息,包括INVITE,ACK,OPTIONS,BYE,CANCEL和REGISTER消息等。响应消息—用于对请求消息进行响应,指示呼叫的成功或失败状态。不同类的响应消息由状态码来区分。状态码包含三位整数,状态码的第一位用于定义响应类型,另外两位用于进一步对响应进行更加详细的说明。

6.1 请求消息

| 请求消息 | 消息含义 |
| ---- | ---- | ---- |
| INVITE | 发起会话请求,邀请用户加入一个会话,会话描述含于消息体中。对于两方呼叫来说,主叫方在会话描述中指示其能够接受的媒体类型及其参数。 被叫方必需在成功响应消息的消息体中指明其希望接受哪些媒体,还可以指示其行将发送的媒体。如果收到的是关于参加会议的邀请,被叫方可以根据 Call-ID或者会话描述中的标识确定用户已经加入该会议,并返回成功响应消息。 |
| ACK | 证实已收到对于 INVITE 请求的最终响应。该消息仅和 INVITE 消息配套使用。 |
| BYE | 释放已建立的呼叫 |
| CANCEL | 取消尚未完成的呼叫请求,对于已完成的请求(即已收到最终响应的请求)则没有影响。 |
| REGISTER| 向SIP网络服务器登记用户位置信息 → 即注册认证 |
| OPTIONS| 查询服务器的能力 |

6.2 响应消息

请求消息和响应消息都包括SIP头字段和SIP消息字段。
在SIP消息中加入SDP消息正文部分。

序号 状态码 消息功能
1xx 信息响应(呼叫进展响应)0 表示已经接受到请求消息,正在对其进行处理
100 试呼叫
180 振铃
181 呼叫正在前转
182 排队
2xx 成功响应 表示请求已经被成功接收、处理并被成功接受
200 OK
3xx 重定向响应 表示需要采取进一步动作,以完成该请求消息
300 多重选择
301 永久迁移
302 临时迁移
303 见其他
305 使用代理
380 代换服务
4xx 客户出错 表示请求消息中包含语法错误或者SIP服务器不能完成对该请求消息的处理
400 错误请求
401 无权
402 要求付款
403 禁止
404 没有发现
405 不允许的方法
406 不接受
407 要求代理权
408 请求超时
410 消失
413 请求实体太大
414 请求URI太大
415 不支持的媒体类型
416 不支持的URI方案
420 分机无人接听
421 要求转机
423 间隔太短
480 暂时无人接听
481 呼叫腿/事务不存在
482 相环探测
483 调频太高
484 地址不完整
485 不清楚
486 线路忙
487 中止请求
488 此处不接受
491 待处理请求
493 难以辨认
5xx 服务器出错 表示SIP服务器故障不能完成对正确消息的处理
500 内部服务器错误
501 没实现的
502 无效网关
503 不提供此服务
504 服务器超时
505 SIP版本不支持
513 消息太长
6xx 全局故障 表示请求不能在任何SIP服务器上实现
600 全忙
603 拒绝
604 都不存在
606 不接受

6.3 消息结构

请求消息和响应消息的格式,一般由起始行、若干个消息头和消息体构成。
SIP一般消息 = 起始行
                     *消息头
                     CELF(空行)
                    [消息体]

  • 起始行 = 请求行、状态行(SIP请求消息起始行是请求行(Request-Line),响应消息起始行是状态行(Status-Line))
  • 请求消息头至少包括 From, To, CSeq, Call-ID, Max-Forwards, Via六个头字段,它们是构建SIP消息基本单元
  • 消息体一般采用SDP(Session Description Protocol)协议,会话描述协议

6.3.1 请求消息

SIP 请求命令的格式,由起始行、消息头和消息体组成。通过换行符区分消息头中的每一条参数行。对于不同的请求消息,有些参数可选。

请求消息结构[2]

起始行 命令名称 对端UPI 版本
消息头 Call-ID: 本地标识@主机 Call-ID: call-973636852-4@191.169.150.101 用以唯一标识一个特定的邀请或标识某一客户的所有登记,每个会议呼叫都有自己的Call-ID
From:显示名;tag=xxxx From: <sip :1000@191.169.200.61> ;tag=1c17691 指示请求的发起者
To: 显示名;tag=xxxx To: < Sip :1000@191.169.200.61>
To: < sip :1001@191.169.200.61> ;tag=62beb3ca
指明请求的接收者
Cseq Cseq: 1 INVITE 命令序号,指明请求的接收者
Via: 发送协议 发送方;隐藏参数;生存期参数;多播地址参数;接收方标记,分支参数 Via: SIP /2.0/UDP softx3000.bell-telephone.com:5060
Via: SIP /2.0/UDP 10.0.0.1:5060;received=191.169.12.30
字段:Via: SIP /2.0/UDP191.169.1.116:5061;ttl=16;
maddr=191.169.10.20;branch=z9hG4bkbc427dad6
指示路由。可以防止请求消息传送产生环路,并确保响应和请求消息选择同样的路径,以保证通过防火墙或满足其它特定的选路要求。
Contact:地址;q参数;动作参数;时效参数;扩展属性 Contact: < Sip :66500002@191.169.1.110:5061> ;q=0.7;expires=3600 用于 INVITE 、ACK 和 REGISTER 请求以及成功响应、呼叫进展响应和重定向响应消息,其作用是给出其后和用户直接通信的地址。
Max-Forwards: 十进制整数 Max-Forwards: 70 定义一个请求到达其目的地址所允许经过的中转站的最大值。主要是为了出现环路时不会一直消耗代理服务器的资源。该字段的初始值为 70。
Allow: 十进制整数 Allow: INVITE, ACK, OPTIONS, CANCEL, BYE 给出代理服务器支持的所有请求消息类型列表。
Content-Length: 十进制整数 Content-Length: 349 表示消息体的大小,为十进制值。
Content-Type: 十进制整数 Content-Type: application/sdp 表示发送的消息体的媒体类型。
Supported Supported: 100rel SIP 协议中定义的 100 类临时响应消息的传输是不可靠的,100rel 扩展为 100 类响应消息的可靠传输提供了相应的机制。
User-Agent User-Agent: Softphone Beta1.5 包含有发起请求的用户终端的信息。
Expires Expires: 5 指定了消息(或消息内容)多长时间之后超时。
Accept-Language Accept-Language: en 表示原因短语、会话描述或应答消息中携带的状态应答内容的首选语言类型。
Authorization Authorization:认证方式 USERNAME, REALM, NONCE, RESPONSE,URI, CNONCE, ALGORITHM 包含某个终端的鉴权证书。
……
消息体 SDP 会话描述协议

Call-ID:主机应为全局定义域名和全局可选路IP地址,此时,本地标识由在“主机”范围内唯一的URI字符组成。
From:显示名为用户界面上显示的字符,若系统不予显示,应置为“匿名(Anonymous)”。tag是全局唯一的16进制数字串标记,中间可带连字符“-”。当两个共享同一个SIP地址的用户实例通相同的Call-ID发起呼叫邀请时,就需用此标记予以区分。
To:需要用标记来区分来自不同实例的响应。To字段汇总的标记是由每个实例至于响应消息中的。
Cesq:客户在请求中应加入此字段,由命名名称和一个十进制序号组成,由请求客户选定,在Call-ID范围内唯一确定。重发请求的序号保持不变。服务器将请求中的 Cseq 值复制到响应消息中,用于将请求和其触发的响应相关联。ACK 和 CANCEL 请求的 Cseq 值(十进制序号)和对应的 INVITE 请求相同,BYE 请求的 Cseq 序号应大于 INVITE 请求。服务器必须记忆相同 Call-ID 的INVITE 请求的最高序号,收到序号低于此值的 INVITE 请求应在给出响应后予以丢弃。
Via:发起请求的客户必须将其自身的主机名或网络地址插入请求的 Via 字段,如果未采用缺省端口号,还需插入此端口号。在请求前传过程中,每个代理服务器必须将其自身地址作为一个新的 Via 字段加在已有的 Via 字段之前。如果代理服务器收到一个请求,发现其自身地址位于 Via 头部中,则必须回送响应“检测到环路”。
当请求消息通过网络地址翻译点(如防火墙)时,请求的源地址和端口号可能被改变,此时 Via 字段就不能成为响应消息选路的依据。为了防止这一点,代理服务器应校验顶端 Via 字段,如果发现其值和代理服务器检测到的前站地址不符,则应在该 Via 字段中加入“ receive ”参数,如此修改后的字段称为“接收方标记 Via 头部字段”。
Via字段格式介绍:发送协议的格式为: 协议名 /协议版本 /传送层,协议名和传送层的缺省值分别为 SIP 和 UDP。· 发送方为通常的发送方主机和端口号。 ·隐藏参数就是关键词 hidden,如有此参数,表示该字段已由上游代理予以加密,以提供隐私服务。 ·多播地址参数和接收方标记的意义如前所述。 ·生存期参数与多播地址参数配用。 ·分支参数用于代理服务器并行分发请求时标记各个分支,当响应到达时,代理可判定是哪一分支的响应。
Contact:INVITE 和 ACK 请求中的 Contact 字段指示该请求发出的位置。它使被叫可以直接将请求(如 BYE 请求)发往该地址,而不必借助 Via 字段经由一系列代理服务器返回。
对 INVITE 请求的成功响应消息可包含 Contact 字段,它使其后 SIP 请求(如ACK 请求)可直接发往该字段给定的地址。该地址一般是被叫主机的地址,如果该主机位于防火墙之后,则为代理服务器地址。
对应于 INVITE 请求的呼叫进展响应消息中包含的 Contact 字段的含义和成功响应消息相同。但是, CANCEL 请求不能直接发往该地址,必须沿原请求发送的路径前传。
REGISTER 请求中的 Contact 字段指明用户可达位置。该请求还定义了通配Contact 字段“ *”,它只能和值为 0 的“失效”字段配用,表示去除某用户的所有登记。 Contact 字段也可设定“失效”参数(任选),给定登记的失效时间。如果没有设定该参数,则用“失效”字段值作为其缺省值。如果两者均无,则认为 SIP URI 的失效时间为 1 小时。
REGISTER 请求的成功响应消息中的 Contact 字段返回该用户当前可达的所有位置。
重定向响应消息,如用户临时迁移、永久迁移、地址模糊等消息中的 Contact字段给出供重试的其它可选地址,可用于对 BYE INVITE 和 OPTIONS 请求的响应消息。
Contact字段格式介绍:地址的表示形式和 To ,From 字段相同。q 参数,其取值范围为 [0,1],指示给定位置的相对优先级。数值越大,优先级越高。 ·动作参数仅用于REGISTER 请求。它表明希望服务器对其后至该客户的请求进行代理服务还是重定向服务。如果未含此参数,则执行动作取决于服务器的配置。 ·失效参数指明 URI 的有效时间,可用秒表示,也可用 SIP 日期表示。 ·扩展属性就是扩展名。
Max-Forward:请求每经过一个中转站,该值减 1。如果该值为 0 时该请求还没有到达其目的地址,服务器将回送“ 483” (Too Many Hops) 响应并终止这个请求。
Content-Length:应用程序使用该字段表示要发送的消息体的大小,而不考虑实体的媒体类型。如果使用基于流的协议(如 TCP 协议)作为传输协议,则必须使用此消息头字段。消息体的长度不包括用于分离消息头部和消息体的空白行。Content-Length值必须大于等于 0。如果消息中没有消息体,则 Content-Length 头字段值必须设为 0。
Content-Type:如果消息体不为空,则必须存在 Content-Type 头字段。 如果消息体为空且 Content-Type 头字段存在,则表示此类型的消息体长度为 0(如一个空的声音文件)。
Support:如果 UAC 支持该扩展, 则在发送的消息中增加Supported:100rel 头域和字段。
如果 UAS 支持该扩展,则在发送 100 类响应时增加 Require:100rel 头域和字段。 UAC 收到该响应消息后需要向 UAS 发送 PRACK 请求通知 UAS 已收到该临时响应。 UAS 向 UAC 发送对 PRACK 的 2XX 响应消息结束对该临时响应的确认过程。
如果某一 UA 想要在发送的临时响应消息中携带 SDP 消息体,那么 UAC 和 UAS都必须支持和使用 100rel 扩展以保证该消息的可靠传输。
Accept-Language:如果消息中没有 Accept-Language头字段,则服务器端认为客户端支持所有语言。
Authorization:终端收到认证请求消息后根据服务器端返回的信息和用户配置等信息采用特定的算法生成加密的 RESPONSE ,并且通过新的请求消息发送给服务器端。
服务器端在收到带有认证响应的新的请求消息后首先检查 NONCE 的正确性。如果 NONCE不是本地产生,则直接返回失败。否则如果 NONCE是本地产生,但是认证过程已经超时,则服务器端会重新产生 NONCE 并重新发起对用户的认证过程。其中老的 NONCE 会通过CNONCE参数返回。
NONCE验证通过后服务器端会根据 NONCE、用户名、密码(服务器端可以根据本地用户信息获取用户的密码) 、URI 等采用和终端相同的算法生成 RESPONSE ,并且对此 RESPONSE和请求消息中的 RESPONSE进行比较,如果二者一致则用户认证成功,否则认证失败。
Authorization字段格式: ·HTTP-DIGEST认证方式。 ·USERNAME:被认证的用户的用户名。 ·REALM:用于标识发起认证过程的域。 ·NONCE:由发起认证过程的实体产生的加密因子。
RESPONSE :终端在收到服务器的认证请求后根据服务器端产生的 NONCE、用户名、密码、URI 等信息经过一定的算法生成的一个字符串。该字符串中包含了经过加密后的用户密码。(在认证过程中处理用户密码之外其他信息都会通过 SIP消息以明文的方式在终端和服务器端进行传递。)
URI:发起的呼叫请求消息的 Request-URI。由于终端在收到认证请求后需要重新向服务器端发起请求 (其中带有认证响应信息) 。 该请求消息在经过网络服务器时某些字段包括 Request- URI 都有可能被修改。认证头域的 URI 参数用于传递终端发起请求时原始消息的Request-URI用于对认证信息进行认证,这样才能保证认证过程的正确性。
CNONCE:如果在服务器端超时后终端才向服务器返回了带有认证响应的新的请求消息,则服务器端需要重新产生 NONCE重新对用户进行认证。其中 NONCE中带有新的 NONCE,老的 NONCE会通过 CNONCE参数返回给终端。
ALGORITHM:用于传递生成 RESPONSE的算法。

6.3.2 响应消息

SIP 响应消息的格式,由起始行、消息头和消息体组成。通过换行符区分消息头中的每一行参数。对于不同的响应消息,有些参数可选。

响应消息结构

起始行 SIP/协议版本 状态码 描述性短语
消息头 Call-ID: 值
Form: 值
To: 值
Cseq: 值
Via: 值
Contact: 值
Max-Forwards: 值
Allow: 值
Content-Length: 值
Supported: 值
User-Agent: 值
Content-Type: 值
……
消息体 SDP

7. SIP监控域互联结构

控制协议网关在SIP监控域和非SIP监控域的设备之间进行网络传输协议、控制协议、设备地址的转换;
媒体网关是进行媒体传输协议、媒体数据编码格式的转换。

8. 联网结构

8.1 级联结构

8.1.1 信令级联结构

信令流逐级转发

8.1.2 媒体级联结构

8.2 互联结构

互联的系统平台及设备不应向对方的SIP端口发送应用无关消息,避免应用无关消息占用系统平台及设备的SIP消息处理资源。

8.2.1 信令互联结构

处于平级关系,共享对方SIP监控域的监控资源

8.2.2 媒体互联结构


  1. 这些协议后续会进行深入研究。 ↩︎

  2. 在SIP中,Call-ID、From、To三个字段标识一个呼叫分支。在代理服务器并行分发请求时,一个呼叫可能会有多个呼叫分支。由代理服务器并行分发的请求,其 Cseq 值相同。严格来说,Cseq 对于任何可由 BYE 或 CANCEL 请求取消的请求以及客户可连续发送多个具有相同 Call-ID请求的情况都是需要的,其作用是判定响应和请求的对应关系。 ↩︎

openSIPS(一):SIP简介相关推荐

  1. 【死磕opensips】sip协议解析

    [死磕opensips]sip协议解析 闲话 webrtc专栏 opensips专栏 开始 sip历史 什么是sip sip 会话协议流程 sip消息格式 请求行 状态行 消息头 结束 闲话 最近一直 ...

  2. opensips服务器(sip服务器)端搭建、安装过程,什么是Xshell,Xshell下载

    opensips服务器搭建的前提环境: Ubuntu虚拟机.xshell命令客户端,并且成功连接网络. 1. xshell xshell是一个安全终端模拟软件,该软件可在Windows界面下远端访问不 ...

  3. opensips简介

    1.引入 随着通信IP化的发展,IP传输的高带宽.低成本等优势使得越来越多的企业.电信运营商加快建设基于IP的各种通信应用.在通信协议IP化发展中,SIP协 议毫无争议地成为各大电信运营商构建其未来网 ...

  4. JAIN SIP API 简介

    2019独角兽企业重金招聘Python工程师标准>>> 摘要 本文介绍如何在 Java SE 上使用会话发起协议 (SIP) 开发客户端应用程序.文中展示 JAIN SIP API ...

  5. 安装opensips时创建MySQL表_Centos7.6安装opensips并实现通话成功

    先是使用opensips官方的docker尝试,好不容易装好了,软电话(sipphone)上注册不成功,主要是我docker又是装在VirtualBox的虚拟机里的,网络结构致使调试困难,直接新开一个 ...

  6. OpenSIPS介绍及模块||OpenSIPS介绍_安装_使用

    OpenSIPS介绍及模块架构 1.引入 随着通信IP化的发展,IP传输的高带宽.低成本等优势使得越来越多的企业.电信运营商加快建设基于IP的各种通信应用.在通信协议IP化发展中,SIP协议毫无争议地 ...

  7. How Does Linphone Toggle SIP Contact?

    Linphone client monitors the user's contact info, if changed use LibLinphone to synchronize the cont ...

  8. sip gw功能包括_全面解读SiP

    来源:原文来自"System in Package",作者Paul McLellan:部分内容转载自[EDA365,"超越摩尔之路--SiP简介"] SiP是组 ...

  9. OpenSIPS配置脚本结构

    OpenSIPs 的配置文件一般命名为opensips.cfg,它是一个自定义的类C风格的脚本.逻辑上,一般把脚本划分为三个部分: 全局变量 模块描述 路由逻辑 下面是一个简单的实例: ####### ...

  10. OpenSIPS的无状态及有状态路由

    从SIP消息路由的角度看,OpenSIPS既可以作为无状态代理,也可以作为有状态代理.区别仅仅是处理SIP信令的脚本中调用了什么函数而已. 在有状态模式下,OpenSIPS在内存中记录了SIP事务的状 ...

最新文章

  1. 小R SLAM机器人树莓派3b+ ROS kinetic 环境搭建笔记
  2. Python基础18-常用模块之os、sys、json、pickle、shelve、xml、re、logging、configparse、hashlib等
  3. python中的控制流
  4. LNMP构架概述及相关服务的搭建(附带搭建论坛实验)
  5. 100亿人口会挨饿吗?人工智能迎击全球粮食问题
  6. 如何用耳机翻页_游戏耳机的经典之作—罗技(G)Astro A40体验
  7. 6.824 2020 视频笔记五:Go Concurrency
  8. 【李宏毅2020 ML/DL】P20-21 Recurrent Neural Network | “Deep and structure is future.“
  9. 2.支付平台架构:业务、规划、设计与实现 --- 收银台系统
  10. 毕向东Java笔记(全部)
  11. 十年游戏建模师给想学次世代游戏建模同学的一些忠告,太受益了
  12. mysql 迁移 myd_mysql文件*.opt *.frm *.MYI *.MYD的迁移
  13. [建筑设计].TLF-SOFT-SOFTPLAN.V13.33.bin Flaresim
  14. Java输出4位数整数,输出这个数的千位,百位,十位,个位
  15. 不同性能测试工具的并发模式
  16. 分层测试(Layered Testing Approach)
  17. C—— warning: function returns address of local variable(函数参数返回错误)
  18. INS-06101nbsp;IPnbsp;ADRESSnbsp;OFnbsp;LOCALHOST
  19. 一加手机救砖资源-sahara通信失败 或者 checkHwid failed都是由于使用错了救砖包
  20. AIX环境:su 到实例用户下连库并执行Db2命令方法

热门文章

  1. mysql进销存表设计_ERP进销存-用户表 - 数据库设计 - 数据库表结构 - 果创云
  2. 74ls175四人抢答器电路图_用数字电路实现四人抢答器
  3. Adobe Photoshop CC 2014图文永久安装教程 1
  4. matlab dmc控制代码,动态控制矩阵(DMC)算法的浅析
  5. JavaScript:点击按钮打开/关闭网页
  6. Hutool PinyinException: No pinyin jar found Please add one of it to your project问题解决
  7. python写一个地球同步卫星图动态壁纸(第一部分)
  8. vue 调用移动录像_vue H5项目调用手机摄像头录像并上传
  9. 摄像头防水性能测试软件,手机摄像头防水测试/气密性检测方法分享
  10. java blocked_Java 线程状态之 BLOCKED