ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SIP协议

2022-06-23 20:33:13  阅读:337  来源: 互联网

标签:协议 SIP 被叫 代理服务器 会话 主叫 服务器


SIP(Session Initiation Protocol)会话发起协议

SIP协议是由IETF提出的IP电话信令协议。基于文本的应用层控制协议,独立于底层协议,用于建立、修改和终止IP网上的双方或多方多媒体会话。(多媒体会话可以是多媒体会议、远程教学、因特网电话等各种应用)

SIP协议结构

image

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 协议的功能和实施并不依赖这些协议。

SIP协议的特点

  • 应用层协议, 独立于较低层次的传输协议
  • 基于文本的消息编码 使用UTF-8字符集,易于实现、调试方 便, 便于跟踪和手工操作具有多个层次的可实现性, 最小的实现非常简单。最完全的 实现相对复杂, 但能够完成非常多的功能通过代理、重定向功能支持用户的移动性。
  • 易实现,易扩展

VOIP

普通电话经电话网连到IP电话网关, 用电话号码呼叫
image

  • 传统电话网将IP网络视为其业务承载网
  • 发端IP网关鉴别主叫用户, 将被叫电话号码翻译成网关IP地址, 将呼叫 连接到最靠近被叫的网关, 完成语音编码和打包
  • 收端IP网关完成拆包、解码及反向地址翻译, 将呼叫连到被叫终端用户
  • 若主叫和被叫在同一个域内,可以利用域内代理服务器完成呼叫,若不在同一个服务器,则需要重定向服务和位置服务器的参与

SIP系统的组成

image

  • 用户代理(UA-终端用户设备):用于创建和管理SIP会话的移动电话、多媒体手持设备。用户代理客户机发出消息,代理服务对消息进行响应。
  • 注册服务器:包含域中所有用户代理的位置的数据库。在SIP通信中, 这些服务器会检索参与方的IP地址和其他相关信息,并将其发送到 SIP 代理服务器。
  • 代理服务器:接受 SIP UA 的会话请求并查询 SIP 注册服务器, 获取收件方 UA 的地址信息。然后, 将会话邀请转发给收件方 UA(如果它位于同一域 中)或代理服务器(如果 UA 位于另一域中)。
  • 重定向服务: 允许 SIP代理服务器将 SIP 会话邀请信息定向到外部域。SIP 重定向服务器可以与SIP 注册服务器和 SIP 代理服务器同在一个硬件上。
  • 位置服务器:配合代理服务器和重定向服务器提供可能的被叫用户的地址
    SIP用户代理(UA): 包括逻辑实体
  • User Agent Client (UAC), 用于发起一个呼叫请求
  • User Agent Server (UAS), 用于对呼叫请求进行回应
  • UA=UAC+UAS 一个UA, 既可以作为UAC发起呼叫, 也可以作为UAS接收呼叫, UAC和UAS是逻辑上的不同角色, 不是独立的物理实体

SIP网络服务器

  • 注册服务器:接收用户的注册请求, 记录终端的IP地址, 记录用户的当前位置信息, 是实现号码移动性的基础
  • ProxyServer 代理服务器:完成路由功能,将SIP用户请求发送到下一跳代理或用户
  • RedirectServer 重定向服务器:提供地址解析服务, 类似于DNS
  • LocationServer 位置服务器:配合代理服务器和重定向服务器提供可能的被叫用户的地址(或位置)

SIP通话流程

image

  1. 主叫发送呼叫请求,主叫所在的sip代理服务器中会识别主叫和被叫不在同一个域内
  2. sip代理服务会在sip重定向服务中查询被叫ip地址,sip重定向服务器可以利用sip位置服务器查询被叫ip地址
  3. sip重定向服务器将信息返回给sip代理服务器,提供被叫的ip地址
  4. 当主叫sip代理服务器收到sip重定向服务器发送来的ip地址时,将会话的邀请信息转发给被叫所在域的代理服务器
  5. 被叫所在域的代理服务器会向被叫发送会话邀请的信息,
  6. 被叫获得会话邀请信息时,经过分析接受呼叫,被叫向域中的代理服务器发送响应信息
  7. 被叫所在的代理服务器进而转发信息到主叫所在域的代理服务器
  8. 主叫所在的代理服务器在转发信息给主叫
  9. 然后主叫和被叫在协商好的通道上进行话音传输

VOIP通信需要的相关的协议

image

  1. 控制通道的建立
    sip是用户代理和注册服务器之间执行的协议
    端和端之间呼叫的建立和拆除
  2. 媒体通道的建立
    sdp协议,会话描述协议,控制媒体会话的信令,不控制媒体,只是建立通道拆除通道,协商媒体类型,带宽需求,
    控制通道,网络管理点,
  3. 通话
    实时协议rtp和实时传输控制协议rtcp

SIP的消息格式

请求UAC到UAS:INVITE、ACK、OPTIONS、BYE、 CANCEL、 REGISTER等。
响应UAS到UAC: 1XX、2XX、3XX、4XX、5XX、6XX等。
消息格式:

开始行 (请求行|状态行)
消息头域(主被叫号码信息)
空行 (CRLF)
[消息体] 消息体包含媒体信息, 采用SDP协议描述

SDP的消息是在传输的过程中都是夹带在sip消息中的

请求消息
  1. 呼叫控制请求
    INVITE 发起呼叫, 并对会话进行描述
    ACK 主叫确认收到被叫发送的对INVITE的确认响应
    BYE 释放连接, 可以由主叫方发出,也可以由被叫方发出
    CANCEL 主叫取消呼叫,在连接建立起来之前发送
  2. 注册请求
    REGISTER 在注册服务器上注册用户代理
  3. 能力查询请求
    OPTIONS 查询服务器的能力、
响应消息
  • 1XX:通知服务器或代理正在执行处理, 终端应该等待响应
    100:Trying
    180:Ringing
  • 2XX:请求成功
    200:OK
  • 3XX:重定向响应, 终端应向新地址发起新请求
  • 4XX:请求失败, 终端的请求被拒绝
  • 5XX:服务器内部错误造成请求不能被响应
  • 6XX : 全局错误, 所有末来的对该用户的请求都将失败

AOR与Contact地址

AOR的全称是Address-of-Record
AOR地址格式为SIP:user@domain
Contact地址格式为Contact: <sip:22018@10.8.22.4:5060>
AOR就是一个带域名的用户帐户,相当于一个用户的公网地址,它具有唯一性,表示用户本身的身份
Contact的具体的联系方式是这个终端的IP地址
一个AOR地址可以对应多个Contanct地址(一个SIP终端可以支持多种形式的物理终端)

SIP消息过程

image

  1. A向SIP server1发送INVITE消息,INVITE消息中会夹带着SDP消息
  2. SIP server1向SIP server2转发消息,
  3. SIP server2向B继续转发消息
  4. B会查看SDP消息,如果可以支持,则响应200,经过一系列转发到A
  5. A在响应ACK消息进行证实,确认媒体通道的建立
  6. 建立好之后,就可以在协商好的媒体通道上进行话音通信

消息体

  • 消息体主要是SDP会话描述协议
  • 用于描述这次会话的媒体信息
  • 话音流使用RTP/RTCP传输

跨域呼叫流程

image

SIP网络与PSTN网络互通

image

标签:协议,SIP,被叫,代理服务器,会话,主叫,服务器
来源: https://www.cnblogs.com/wangbingxin/p/16406550.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有