SIP消息

SIP消息组件包括用户代理UA、客户端(也就是用户)和服务端。

用户代理(User Agent)

有两种类型的用户代理,,但它们并不是严格分开的物理实体。根据情况,一个UA(用户代理)可以作为UAC或UAS工作。

l UAC(User Agent Client):UAC是生成请求并将请求发送到服务器的一方

l UAS(User Agent Server):UAC是获取请求、处理请求并生成响应的一方

客户端(Client)

它通常指的是最终用户,即在人们使用的系统上运行的应用程序。它可能是在您的PC上运行的软电话应用程序(如电话),也可能是IP电话中的消息传递设备。当你试图通过网络呼叫另一个人时,它会生成一个请求,并将请求发送到服务器(通常是代理服务器)。

服务端(Server)

服务器是一个实体,它按照预定义的规则处理来自客户端的请求。有几种不同类型的服务器。

代理服务器(Proxy Server):这是SIP环境中最常见的服务器类型。当一个请求被生成时,接收者的确切地址是事先不知道的。因此,客户机将请求发送到代理服务器。代理将请求转发到另一个代理服务器或代表客户机的接收方本身

重定向服务器(Redirect Server):重定向服务器将请求重定向回客户端,指示客户端需要尝试其他路由才能到达收件人。它通常发生在接收者暂时或永久地离开原来的位置时。

注册器(Registrar):这是为客户机执行注册过程的服务器。在此注册过程中,注册器将用户的位置信息存储到位置服务器中。

位置服务器(Location Server):注册到注册器的地址存储在位置服务器中。

下面看下几个主要的SIP消息内容。

SIP Header : Contact

在SIP消息中,Contact Header的最主要目的是获取消息的直接路径,如下图

Contact Header除了寻址以外,还携带了UA能力信息。

IMS Communication Service Identifier (ICSI)值用户指示IMS多媒体电话的服务器。Contact字段在注册和INVITE中的意义如下:

REGISTER(TS 34.229-1)

INVITE for MT Call

INVITE for MO Call Setup

SIP Header : From/To

From/To字段虽然和发邮件有点不一样,但仍旧可以用这个来举例。

例如,假设A向B发送电子邮件,B回复A。在这种情况下,A的邮件和B的邮件用from/to部分如下所示。

A是发邮件:

From : A

To : B

B是回复邮件的人:

From : B

To : A

但如果是SIP。发件人/收件人不是由发送特定SIP消息的人确定的。它是由谁发起整个对话决定的。在这种情况下,A从B那里得到,B也用了和A用的完全相同的From/To。B只是复制了A的“From/To”,因为是A发起了对话。

A发起的初始SIP消息:

From : A

To : B

B回复(响应)的SIP消息:

From : A

To : B

< REGISTER / INVITE >

< INVITE / BYE(MT) >

< From / To for whole VoLTE Sequence >