IMS/SIP学习(2)

目录

原文地址:http://sharetechnote.com/

Overall Data Path

Overall Data Path for IMS/SIP in LTE Network

SIP Communication Path

SIP Message Delivery Path


Overall Data Path

Overall Data Path for IMS/SIP in LTE Network

我当时参加了几次IMS培训课程。 我注意到讲师和听众最常见的问题是“在这种情况下,我的IMS语音/数据如何传递到另一端?”。答案永无止境,问题永无止境..轻松占据了培训课程的大部分时间。

理解IMS机制的细节,这可能是一个重要的问题,而且是必需的,但要解决此类问题,给出“简短明了”的答案并不容易,因为每种场景的变化可能很多,要具体问题具体分析。

因此,我的目的不是为您提供有关“ IMS数据路径”的任何可靠答案,而是为您提供有关IMS数据传递的一些指导方针(或思维逻辑)。

首先,我希望您熟悉下图。

【我注】

CSCF(Call Session Control Function)是IMS里面最重要的功能实体,分为三种类型,P-CSCF(代理),I-CSCF(询问),S-CSCF(服务)。

这三个CSCF都是SIP 代理服务器(SIP是IMS控制协议), 负责注册,会话建立,会话管理等功能。有点类似与传统核心网里面的MSC。

当用户位于拜访域中时,信令路径是:拜访域的P-CSCF,归属于的I-CSCF,归属于的S-CSCF。所以,IMS必须要设计CSCF这样一个实体来为用户提供服务。

通用规则如下:

所有LTE数据和所有LTE信令消息都必须通过eNodeB。

  • 所有LTE数据(用户数据)必须通过S-GW和P-GW。 (注意:就LTE网络而言,无论是IMS信令还是IMS数据都被视为用户数据)。
  • 所有IMS信令消息都必须通过P-CSCF。
  • IMS数据(例如,语音,视频)不得通过任何CSCF。
  • 对于每个IMS注册,IMS消息(注册消息)都会通过P-CSCF和S-CSCF与HSS进行对话,以检查用户是否为IMS服务用户。
  • 当您(IMS电话,UA1)要与另一个IMS电话(UA3)通话时,IMS核心必须检查另一方(UA2)是否为IMS订阅者,并且现在已注册到IMS核心网。检查所有这些状态是I-CSCF的工作。
  • 当您(IMS电话,UA1)要与另一电话通话时,首先您的网络应检查另一方(电话)是支持IMS的电话还是家用电话,还是仅是常规IP电话,这是ENUM的工作关于这种状态。
  • 每当服务启动(由UA请求)时,如果用户允许请求的服务,CSCF就会与PCRF对话。

牢记这些规则(我很确定我会错过规则),请打印出上面的图并设置特定的情况(例如,“我想从UA1拨打到UA2”或从UA1拨打到UA3等) )并绘制数据路径的线。 不必担心会出错..您可能会在很多方面犯错,但是如果您应用上述规则,至少会超过70%是对的。

SIP Communication Path

本节将向您介绍SIP通信的总体过程。

看下面的插图。 我放置了两个虚构的域,分别称为ims.myims.com和ims.yourims.com。 下图显示了两个用户代理(UA1,UA2)已经在注册系统中注册的情况下的总体注册。 通常我们将SIP通信系统中的注册代理称为Registra。

http://www.sharetechnote.com/image/SIP_Registration_Path_01.PNG

在上图中,我们考虑了UA1呼叫UA2的情况。

  1. UA1向UA2发起SIP呼叫。 此呼叫请求首先到达代理(类似于IMS中的CSCF)。
  2. 代理向数据库(HSS)查询有关UA1,UA2的信息,该数据库包含域中所有UA的所有注册信息和策略。
  3. 代理从HSS接收信息。
  4. 如果UA2已经注册并且策略允许UA1和UA2之间的通信。 代理将alert发送给UA2,说“嘿..有人想和您聊天!”。
  5. 如果UA2准备好通话,则将“确认”发送给代理。
  6. 代理将确认通知给UA1。
  7. 现在,呼叫建立完成,并且UA1和UA2互相交谈。

现在,让我们考虑一下比以前的情况更为复杂的情况。 如您在下图中所看到的,此示例中涉及两个不同的域。 UA(UA4)尝试呼叫属于不同域的UA(UA1)。

http://www.sharetechnote.com/image/SIP_Registration_Path_02.PNG

现在,让我们研究一下通信设置的每个步骤。

  1. 域ims.yourims.com中的UA4对域ims.myims.com中的UA1进行SIP呼叫。该呼叫请求首先到达代理。代理发现请求的目的地不在当前域的范围内。
  2. 代理(proxy2)查询DNS服务器以查找目标域的代理地址。
  3. Proxy2从DNS获得答复。现在,代理2知道目标域中代理的地址(代理1)。
  4. Proxy2将呼叫建立请求转移到代理1,说“我的域中的某人(UA4)想要与您域中的某人(UA1)对话”。
  5. Proxy1向数据库(HSS)查询有关UA1的信息,该数据库包含域中所有UA的所有注册信息和策略。
  6. 代理从HSS接收信息。
  7. 如果UA1已经注册并且策略允许UA1和UA4之间的通信。代理将警报发送给UA1,说“嘿..有人想和您说话!”。
  8. 如果UA1准备通话,则将“确认”发送给代理。
  9. Proxy1将确认通知给Proxy2。
  10. Proxy2将确认中继到UA4。
  11. 现在,呼叫建立完成,并且UA4和UA1互相交谈

SIP Message Delivery Path

http://www.sharetechnote.com/image/SIP_Message_Delivery_Path_01.PNG

http://www.sharetechnote.com/image/SIP_Message_Delivery_Path_02.PNG

【我注】

通过上一小节的讲述,这个图应该不难理解,这里的假定是UA1呼叫不在同一域内的UA2。至于信令中的CallId,From,To,Contact都是SIP协议的要求。

UA1主呼,向自己的代理发送INVATE,携带to是目标用户;

代理收到后,查找目标用户的代理,将代理的地址包含在via里;

对端代理收到了,发现目标用户已经注册,则寻呼用户,告知INVATE请求;

如果目标用户确认应答,回复200 OK,信令头不变,只把contact换成目标用户;

200 OK信令会根据via逐步找到next hop转发回原终端,从而完成了呼叫。

 

 

猜你喜欢

转载自blog.csdn.net/hitguolu/article/details/108620385
sip