SIP - 简介

九月, 2024

概述

会话初始协议 (SIP) 为安防产品系统集成提供了额外的接口。SIP是电信行业中广泛采用的标准,它为互联性和日常使用提供了更大的灵活性。系统集成商、开发人员和最终用户都要求采用开放、标准化的接口,以增加他们可以获得的价值,因为产品可以用于多种系统。支持SIP的安讯士产品旨在同时用于安防解决方案和通信解决方案。

设置SIP系统非常容易。然而,在复杂的网络拓扑情况下或当有安全需求和需要额外的通话处理功能时,需要使用SIP服务器和NAT穿透技术,安装者或技术人员方面需要更高的技术理解能力。

引言

会话初始协议 (SIP) 用于发起、保持和终止不同方之间的多媒体会话。这些会话通常包括音频,但有时也包括视频。SIP协议是互联网协议电话 (VoIP) 应用中使用的标准协议,是统一通信 (UC) 平台(参见第3节)。

SIP为连接、集成和控制您的安讯士网络产品提供了途径。大多数安讯士网络扬声器、所有安讯士网络对讲机以及选定的安讯士系统设备和安讯士摄像机都支持该功能。

它是如何工作的?

为了使用SIP进行通信,至少需要两个SIP客户端。SIP客户端可以是SIP硬件电话、软件电话、移动客户端或支持SIP的安讯士产品。

为每个SIP客户端分配各自的SIP地址。SIP地址类似于电子邮件地址,但有“sip:”前缀。

例如,sip:bob@axis.com [sip:<用户@]<提供商>。该标识符可用于多个设备,类似于关联可用于多个设备的SIM卡的电话号码。

点对点设置 - 简单方式

SIP系统可以采用多种形式。最简单的方式:系统由可以直接相互通信的两个或多个SIP用户代理 (UA) 组成。这可以称为点对点设置、直接通话设置或本地设置。在这种情况下,典型的SIP地址采用这种形式:sip:<本地ip>,例如,sip:192.168.0.90

示例:在简单设置中,安讯士产品(1、2)可以使用SIP协议与同一网络上的其他SIP设备 (3) 建立音频和/或视频通信,而无需使用服务器或PBX。

同时,可以使用开放式API VAPIX或ONVIF Profile S将这些产品作为其他安讯士设备连接到视频管理系统 (4)。

若要在本地网络中从一个UA到另一个UA进行点对点通话,仅需要包含设备IP地址的SIP地址即可实现。

使用SIP服务器 (PBX) - 增加更多的可能性

基于SIP的VoIP基础设施具有非常好的扩展性。下一步是使用SIP服务器或专用交换机 (PBX) 作为中心枢纽。SIP UA向服务器注册商进行注册,然后只需拨打PBX上的分机即可连接其它UA。

在这种情况下,典型的SIP地址会使用这种形式:sip:<用户>@<域名>。或者,它也可以是sip:<用户>@<注册商ip>,例如sip:6007@ mysipserver.net。PBX的作用相对于传统的总机,可显示客户端的当前状态,允许呼叫转移、语音邮件、重定向等操作。

SIP服务器通常包括代理、注册商和重定向功能。代理路由通话并为传入通话提供额外的逻辑。注册商接受注册请求,并作为其处理的域的位置服务。重定向服务器重定向客户端以联系备选SIP地址。

可以将SIP服务器设置为本地实体,也可以将其定位在站点之外。它可以在本地或云端托管。跨站点发起SIP呼叫时,呼叫最初通常通过一组SIP代理实现路由功能。这些代理查询要呼叫的SIP地址的位置。

示例:安讯士产品(1、2)可以本地或异地连接到SIP服务器 (3)。服务器处理本地网络或互联网上SIP设备之间通话的设置和终止。在此设置中,设备的SIP地址与其IP地址无关,只要将设备注册到服务器,SIP服务器就会使设备可访问。

若要在SIP服务器上使用您的设备,您必须在服务器上创建具有指定用户ID和密码的帐户。要在服务器上注册您的设备,您需要在设备上设置帐户,输入服务器地址、用户ID和密码。

使用SIP中继 - 分配电话号码

通过使用SIP中继,SIP UA可以切换到传统电话网络 (PSTN)。通过这种方式,您甚至可以为SIP UA分配一个普通电话号码。

基于云端的SIP中继是一种利用互联网提供呼叫和其他通信服务的现代化方法。这种方式无需物理电话线,因此更易于与云解决方案和VoIP系统集成。

示例:服务提供商使用SIP中继 (1) 时,您可以为您的设备(2、3)分配外部电话号码。通过这种方式,您可以在网络扬声器或网络对讲机与普通电话 (4) 之间打电话。

当使用SIP中继时,设备通过上述方式与服务器连接。

统一通信 (UC)

统一通信 (UC) 是指将不同通信工具和技术集成到一个单一的内聚系统中。SIP在统一通信中发挥着至关重要的作用,它能实现不同通信通道(如语音、视频、即时消息和呈现信息)之间的无缝交互。通过利用SIP,企业可以创造一个统一通信环境,从而加强协作,提高生产力,并在多个设备和平台上提供一致的用户体验。

统一通信可以通过本地解决方案或云解决方案(统一通信即服务 — UCaaS)在本地提供。云解决方案的服务提供商有Cisco Webex、Microsoft Teams和Zoom等。

在正常SIP通话内部

为了进行SIP通话,需要执行一系列步骤,以便在发起和接收通话的UA之间交换信息。

当发起通话时,发起方UA (1) 向接收方UA (2) 的SlP地址发送一个请求或INVITE。INVITE包含会话描述协议 (SDP) 正文,其中介绍可用的媒体格式以及通话发起方的联系信息。

当收到INVITE后,接收方立即回复一个100 TRYING响应进行确认。

然后,接收UA会将SDP中所提供的媒体格式与其自己的进行比较。如果可以确定一种通用格式,UA会提醒接收方有来电并会向发起UA返回一个临时响应 - 180 RINGING。

当接收方接听电话时,会向发起方发送一个200 OK响应,以确认连接已经建立。该响应包含协商的SDP,其中向发起方说明应使用哪种媒体格式以及应将媒体流发送到何处。

此时采用实时传输协议 (RTP) 和基于协商SDP的参数建立起了协商媒体流,该媒体流在双方之间直接进行传输。发起方通过SIP发送确认 (ACK),确认已经按照约定建立了媒体流。SIP会话仍处于活动状态,但不再参与媒体传输。

当其中一方决定结束通话时,它会发送一个新请求 - BYE。在接收到BYE时,接收方以200 OK表示确认,然后停止RTP媒体流。

SDP – 协商使用格式

会话描述协议 (SDP) 是一种描述流媒体初始化参数的格式。SDP正文包含关于客户端支持哪种媒体格式(即编解码器)以及客户端首选编解码器选择顺序的信息。

用于SIP通话的典型音频编解码器有PCMU、PCMA、G.722、G.726和L16。如果发起方和接收方都支持多个重叠编解码器,则通常会选择接收方优先级最高的编解码器。编解码器的选择最终会影响带宽,因此应该仔细考虑以满足对其他SIP UA的兼容性要求,并保持适合用例的带宽要求。例如,在一个所有客户端都支持L16的本地网络中,选择未压缩的音频非常有效。但是,如果要使用手机通过互联网访问SIP UA,则PCMU是更好的选择。

在复杂的SIP基础设施中通话

在更为复杂的SIP基础设施设置中,由于SIP会话针对每个中继段逐步建立,因而发起过程会有一点不同。然而,一旦建立SIP会话,流量通常不会被路由,而是直接在不同方之间传输,如前面的示例所示。

在复杂SIP基础设施中的建立通话。在发起者 (2) 与接受者 (3) 之间建立SIP会话之后,媒体RTP流 (1) 将直接在各方之间传输。

DTMF – 在SIP通话中发送命令

双音多频 (DTMF) 是一种用于通过电话连接发送信息的格式。DTMF信号可以在SIP通话中发送,也可以用来给SIP设备发出指令。DTMF字符范围由数字0-9、字母A-D、*和#组成。

例如,在与支持SIP的对讲机通话时,可以从电话的键盘发送DTMF字符“5”,并且它可以配置为由接收方解释为解锁门的命令。

在SIP通话中有三种不同的发送DTMF的方式:

  • 传统的带内方式,其中的信号实际上是与音频流交织的音频脉冲。然而,这不可靠,仅适用于未压缩的编解码器。

  • SIP INFO方式,它在信令流的SIP消息中发送DTMF字符。这种方法非常可靠,属于带外方式,但受到的支持有限。

  • RTP方式 (RFC2833),其中的DTMF字符被编码为RTP数据包并在带外发送。这是事实上的标准,受到广泛支持。

在复杂的环境中实现更高的安全性

复杂的网络环境(如公司网络)可能会导致使用SIP时出现困难。如果您希望使用加密技术,也会出现困难情况。

NAT穿透 - 导航复杂网络

在更复杂的网络环境中,可能需要使用网络地址转换 (NAT)。NAT是一种公开表示位于专用本地网络上的IP地址的方法。这意味着一个专用子网内的所有设备都共享一个通用IP地址前缀,例如192.168.1.XXX。这是它们相互通信时使用的地址。当它们与另一个网络进行通信时,该地址将转换成路由器的公共地址,并附带有端口映射

  • 192.168.1.24 => 184.13.12.33:44221

  • 192.168.1.121 => 184.13.12.33:24325等等。

由于转换表存储在路由器内,因此,在大多数情况下,外部用户不可能了解经过NAT转换的设备的地址。通过SIP进行通信时,这会导致以下问题之一:

  • 无法发起、更新或终止会话,即无法呼叫、保持或挂断。

  • 没有媒体流。

  • 单向媒体流。

NAT穿透:NAT将每个数据包的源地址转换为具有不同源端口的公共IP地址。

为了解决这些问题,SIP支持三种不同的NAT技术:

  • STUN – 这种方法询问位于已知位置的服务器设备的公共地址是什么。STUN服务器返回用于发出请求的公共IP和端口映射。然后将结果用于信令和媒体传输,这在大多数情况下都有效。

  • TURN - 使用TURN时,所有的流量都通过一个已知的服务器进行中继。这增加了额外的费用,因为托管TURN服务器的机器必须足够强大,能够为使用该服务的客户端路由所有媒体。这是一个费用更高的解决方案,但可以在STUN无效的某些情况下使用。

  • ICE – ICE协议收集它能找到的与SIP UA相关的所有IP地址,然后尝试计算应该使用哪一个。当同时在发起和接收SIP UA上与STUN和TURN结合使用,它可以增加成功建立SIP通话的机会。

使用SIP加密

SIP信令流量通常使用无连接UDP协议发送。它也可以通过TCP发送,在这种情况下,它也可以使用传输层安全协议 (TLS) 加密。

为了确保通话使用安全连接,SIP协议使用一种称为安全SIP (SIPS) 的寻址方案,该方案要求传输模式设置为TLS。打电话时,拨打的SIP地址前缀为“sips:”,而不是“sip”;例如:sips:bob@biloxi.ex.com,而不是sip:bob@biloxi.ex.com。这就要求每个中继段都必须使用TLS进行保护,并要求接收端采用相同的安全级别。使用TLS拨出sip前缀地址仅确保第一个中继段获得加密。

为了获得最高级别的安全性,应采取以下措施:

  • 传输模式应设置为TLS。

  • 应始终使用sips前缀。

  • SIP INFO应该用于发送DTMF音,因为这在加密通道中发送。

请注意,并非所有客户端都支持安全SIP。

SIP术语

API应用编程接口
编解码器编码-解码器
硬件电话 可以打电话的硬件,就是电话机
ICE 交互式连接建立
IP 互联网协议
移动客户端 移动设备上用于打电话的软件程序
NAT 网络地址转换
PBX 专用分支交换机
PSTN 公用交换电话网,即普通电话网络
RTP 实时传输协议
SDP 会话描述协议
SIM 用户身份模块
SIP 会话初始协议
SIP服务器 IP PBX的主要部件。处理通话设置和通话撤销。也称为SIP代理或注册商。
SIPS 安全SIP
SIP URI(SIP地址) 统一资源标识符。SIP UA的唯一地址。
软件电话可以打电话的软件程序
STUN NAT的会话穿透实用程序
TCP 传输控制协议
TLS 传输层安全协议
TURN 围绕NAT使用中继穿透
UA 用户代理。通信会话的两个端点。
UC 统一通信
UDP 用户数据报协议
VoIP 互联网协议电话