SIP协议&开源SIP服务器搭建和客户端安装

1. SIP

SIP 是一个应用层的控制协议,可以用来建立,修改,和终止多媒体会话,例如Internet电话

SIP在建立和维持终止多媒体会话协议上,支持五个方面:

1)   用户定位: 检查终端用户的位置,用于通讯。

2)   用户有效性:检查用户参与会话的意愿程度。

3)   用户能力:检查媒体和媒体的参数。

4)   建立会话: “ringing”,建立会话参数在呼叫方和被叫方。

5)       会话管理:包括发送和终止会话,修改会话参数,激活服务等等。

1.1 SIP基本组成要素

用户代理:SIP用户代理是一个SIP逻辑网络端点,用于创建、发送、接收SIP消息并管理一个SIP会话

代理服务器:SIP代理服务器(PROXY)在网络上位于SIP UAC和UAS之间,用于帮助UAC和UAS间的消息路由

注册服务器:SIP注册服务器用于接收SIP注册请求,并保存发送注册请求的UA的位置信息

重定向服务器:SIP 重定向服务器允许 SIP 代理服务器将 SIP 会话邀请信息定向到外部域


1.2 SIP 基本呼叫流程

1.2.1 注册流程


1.       用户首次试呼时,终端代理A向代理服务器发送REGISTER 注册请求。

2.       代理服务器通过后端认证/计费中心获知用户信息不在数据库中,便向终端代理回送401Unauthorized 质询信息,其中包含安全认证所需的令牌。

3.       终端代理提示用户输入其标识和密码后,根据安全认证令牌将其加密后,再次用REGISTER 消息报告给代理服务器。

4.       代理服务器将REGISTER消息中的用户信息解密,通过认证/计费中心验证其合法后,     将该用户信息登记到数据库中,并向终端代理A 返回成功响应消息200 OK。

1.2.2 注销流程


1.       终端向代理服务器送Register消息注销,其头中expire 字段置0。

2.       代理服务器收到后回送200OK 响应,并将数据库中的用户有关信息注销。

1.2.3 基本呼叫建立过程


1.       用户摘机发起一路呼叫,终端代理A 向该区域的代理服务器发起Invite 请求。

2.       代理服务器通过认证/计费中心确认用户认证已通过后,检查请求消息中的Via 头域中是否已包含其地址。若已包含,说明发生环回,返回指示错误的应答。如果没有问题,代理服务器在请求消息的Via 头域插入自身地址,并向Invite 消息的To 域所指示的被叫终端代理B 转送Invite 请求。

3.       代理服务器向终端代理A 送呼叫处理中的应答消息,100 Trying。

4.       终端代理B 向代理服务器送呼叫处理中的应答消息,100 Trying;

5.       终端代理B 指示被叫用户振铃,用户振铃后,向代理服务器发送180 Ringing 振铃信息。

6.       代理服务器向终端代理A 转发被叫用户振铃信息。

7.       被叫用户摘机,终端代理B 向代理服务器返回表示连接成功的应答(200 OK)。

8.       代理服务器向终端代理A 转发该成功指示(200 OK)。

9.       终端代理A 收到消息后,向代理服务器发ACK 消息进行确认。

10.   代理服务器将ACK 确认消息转发给终端代理B。

11.   主被叫用户之间建立通信连接,开始通话。

1.2.4 正常呼叫释放过程


1.       用户通话结束后,被叫用户挂机,终端代理B 向代理服务器发送Bye 消息。

2.       代理服务器转发Bye 消息至终端代理A,同时向认证/计费中心送用户通话的详细信息,请求计费。

3.       主叫用户挂机后,终端代理A向代理服务器发送确认挂断响应消息200 OK。

4.       代理服务器转发响应消息200OK。

1.2.5 被叫无应答流程一


1.       用户A 发起一路呼叫,终端代理A 向代理服务器发Invite 请求消息。

2.       代理服务器向被叫用户的终端代理B 转发该Invite 请求。

3.       代理服务器向终端代理A 回送100 Trying 响应,表示呼叫已在处理中。

4.       终端代理B向代理服务器回送100 Trying,告知代理服务器呼叫正在处理。

5.       被叫用户振铃,终端代理B 向代理服务器送180 Ring 响应。

6.       代理服务器向终端代理A 转发该响应消息。

7.       被叫久振铃无应答,终端代理A判断超时后,向代理服务器送Cancel 消息放弃该呼叫。

8.       代理服务器收到Cancel消息后,向终端代理A 回送200 OK 响应。

9.       代理服务器将Cancel 消息转发给终端代理B。

10.   终端代理B 向代理服务器回送200 OK 响应。

11.   终端代理B 向代理服务器送487 请求已撤销的响应消息。

12.   代理服务器收到后回送ACK确认。

13.   代理服务器向终端代理A 送487 请求已撤销消息。

14.   终端代理A 向代理服务器回送ACK 确认。

1.2.6 被叫无应答流程二



1.       用户A 发起一路呼叫,终端代理A 向代理服务器发Invite 请求消息。

2.       代理服务器向被叫用户的终端代理B 转发该Invite 请求。

3.       代理服务器向终端代理A 回送100 Trying 响应,表示呼叫已在处理中。

4.       终端代理B向代理服务器回送100 Trying,告知代理服务器呼叫正在处理。

5.       被叫用户振铃,终端代理B 向代理服务器送180 Ring 响应。

6.       代理服务器向终端代理A 转发该响应消息。

7.       被叫久振铃无应答,终端代理B判断超时后,向代理服务器送408 Request timeout 消息放弃该呼叫。

8.       代理服务器收到408Request timeout 消息后,转发该消息给终端代理A。

9.       代理服务器收到后回送ACK确认给终端代理B。

10.   终端代理A 向代理服务器回送ACK 确认。

1.3 代理服务器的路由

1.3.1 路由记录的一般过程

1)       proxy会检查Request-URI。如果它指向的是本proxy所负责的区域,那么proxy会用位置服务的结果来替换这个URI。否则,proxy不改变这个URI。

2)       proxy会检查Route头域的最上URI。如果这个URI指向这个proxy,这个proxy从Route头域中移除(这个路由节点已经到达)。

3)       proxy会转发请求到最上的Route头域值所标志的URI,或者Request-URI(如果没有Route头域)。

1.3.2 基本SIP四边形

本例子是一个基本的SIP四边传送,U1->P1->P2->U2,使用proxy来传送。下边是过程。

 

U1 发送:

INVITE sip:[email protected] SIP/2.0

Contact: sip:[email protected]

发给P1,P1是一个外发的proxy。P1并不管辖domain.com,所以它查找DNS并且发送请求到那里。它也增加一个Record-Route头域值:

INVITE sip:[email protected] SIP/2.0

Contact: sip:[email protected]

Record-Route: <sip:p1.example.com;lr>

 

P2收到这个请求。这是domain.com所以它查找位置服务器并且重写Request-URI。它也增加一个Record-Route头域值。请求中没有Route头域,所以它解析一个新的Request-URI来决定把请求发送到哪里。

INVITE sip:[email protected] SIP/2.0

Contact: sip:[email protected]

  • 6
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: SIP(会话发起协议)是一种网络通信协议,用于建立、修改和终止多媒体会话,如语音和视频通话。它是VoIP(互联网语音)系统中的核心协议之一。 SIP协议通过消息的方式进行通信,其中包括请求消息和响应消息。请求消息用于发起会话,而响应消息用于回答请求。SIP定义了一系列的请求方法,如INVITE(主动发起会话邀请)、ACK(确认请求消息)、CANCEL(取消会话)和BYE(终止会话)等。 SIP协议的核心概念是用户代理(User Agent)和服务器。用户代理可以是软件应用程序、硬件设备或者移动终端,用于发起和接受会话请求。服务器则负责处理请求,如注册、路由、转发和处理会话状态。 SIP协议具有灵活性和可扩展性。它支持各种媒体类型,并且可以适应不同网络环境。SIP协议还可以与其他应用层协议集成,如实时传输协议(RTP)用于传输音频和视频数据。 SIP协议在互联网通信中扮演着重要角色。它被广泛应用于VoIP系统、即时通信、视频会议、呼叫中心和远程协作等领域。通过使用SIP协议,用户可以简便地建立和管理多媒体会话,实现高效的通信体验。 总之,SIP协议是一种用于建立、修改和终止多媒体会话的通信协议。它具有灵活性和可扩展性,在互联网通信中发挥着重要作用。 ### 回答2: SIP(Session Initiation Protocol)是一种网络通信协议,用于建立、修改和终止多媒体会话。它被广泛用于IP电话、视频会议和即时消息等实时通信应用。 SIP协议的主要功能包括用户定位、用户身份验证、呼叫建立和信令传输等。它通过文本格式的消息交换来进行通讯,使用标准的HTTP样式请求和响应模型。 SIP协议的工作原理是基于会话的,它通过会话描述协议(SDP)来描述和交换会话信息。当一个SIP用户发起一个会话请求时,SIP服务器会根据用户的地址进行用户定位,找到用户所在的位置,并通过信令消息通知对方用户。一旦对方接受请求,会话就可以建立起来。 SIP协议还支持一些附加功能,如呼叫转移、呼叫等待和呼叫保持等。它还可以与其他协议集成,如H.323、H.248等,以实现更丰富的功能。 相比传统的电信协议SIP具有更高的灵活性和可扩展性。它可以在不同的网络环境下使用,如局域网、广域网和移动网络。此外,它还支持跨平台和跨设备的通信,使用户可以随时随地进行实时通信。 总之,SIP协议是一种用于实时通信的网络协议,它具有建立、修改和终止会话的功能。它采用文本格式的消息交换,通过会话描述协议来描述和交换会话信息。它是一种灵活、可扩展的协议,可以在不同的网络环境和设备上使用

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值