您当前的位置是:  首页 > 技术 > 企业通信 > 技术 > 开源通信 > 技术动态 >
技术 - 企业通信 - 开源通信技术频道
  首页 > 技术 > 企业通信 > 技术 > 开源通信 > 技术动态 > SIP讲座系列-各种SIP服务器介绍

SIP讲座系列-各种SIP服务器介绍

2017-10-11 10:20:26   作者:james.zhu   来源:asterisk   评论:0  点击:


  在前面的章节中,我们介绍了SIP的技术架构。在技术架构中,架构核心的服务器表演着非常重要的功能,通过这些功能服务器之间的互相交换,实现对终端业务的最终控制。现在我们介绍一下几个主要的SIP功能服务器的各自特点。
  1、SIP Registration
  SIP 注册服务器是终端用户实现注册功能,认证相关功能所必须的一步,通过SIP成功验证,可以完成对终端功能所进行的验证,允许用户执行相关的功能支持。用户可以参考RFC 3840 中的contact的功能描述,了解完整的功能支持列表。用户的终端启动以后,SIP电话注册时,用户可以通过检查Registration的注册包的Contac的消息中看到用户终端所显示的功能状态信息。例如,图例中的mobility表示是一台固定终端支持audio,actor=principal表示是一个人。
  持。用户可以参考RFC 3840 中的contact的功能描述,了解完整的功能支持列表。用户的终端启动以后,SIP电话注册时,用户可以通过检查Registration的注册包的Contac的消息中看到用户终端所显示的功能状态信息。例如,图例中的mobility表示是一台固定终端支持audio,actor=principal表示是一个人。
  2、SIP Re-registration
  通过字面的意思读者也可以了解到,终端的形式或者状态发送了改变以后,需要重新注册(同样一个帐号,可能原来是物理终端,现在换成了软电话形式或者在家办公),执行所谓的Re-registration 流程,保证终端用户可以再次执行所支持的功能。
  3、SIP proxy server
  SIP proxy 服务器是用来转发请求到下一个服务器,它可以解析请求消息,如果有必要的话,它也rewrite 请求消息,然后转发到下一个服务器。当然,它也可以发起请求和响应消息,可以作为客户端或服务器端使用。
  典型的SIP Proxy 之间的终端呼叫流程如下:
  它支持两种状态的处理:
  • Stateful Proxy: 简单来说,它可以保持或记忆所有进入的会话和出去的会话。当然,此场景可以支持多种业务处理,例如,计费,呼叫/忙状态响应等等业务。如果用户使用Kamailio的话,这些状态信息都存储在内存中。

  • Stateless Proxy:简单来说,一旦生成新的出局的请求,马上清除所有经过(历史)的会话。此场景可用于大并发场景,proxy处理的流程比较简单。更多的作用在于呼叫的均衡负载处理或者重定位的处理。Proxy 负责查询到终端用户的信息,然后呼叫方再次对被呼叫方再次发起一个INVITE,然后进行对对点呼叫,降低了Proxy的负载,最终提高了并发量的处理。
  • 比较简单通俗的比喻是:Stateless Proxy是一个网络中的switch,它实现简单的转发处理;而Stateful Proxy是一个网络防火墙,它则可以对SIP header实现查看,修改,路由,涉及到了SIP dialog 和BYE整个过程处理。
  4、Location Server
  一般来说,我们通常很难发现一个物理的Location 服务器,事实上,市场上很多公司提供这样的解决方案。Location 服务器的作用在于通过location 服务器的数据库查找用户的服务器所属信息,它用来支持SIP Proxy和重定向服务器的逻辑处理。它可以提供对proxy 服务器和注册服务器的以下要求:
  • 注册服务器通过查询Location 服务器来获得客户端的注册消息。
  • Proxy 服务器可以通过Location 服务器数据库查询所提供的服务消息,如果获得了SIP URL和SIP INVITE消息以后,则发送此消息到目的地地址。
  • 事实上,Location 服务器提供了多种查询服务来查询最终客户端的信息,它可以支持LDAP协议查找,也可以支持DNS服务器来查找。
  以下讨论介绍了一个如何实现DNS查找来呼叫另外一个终端的实现路径:首先客户A 对客户B 通过Proxy 服务器发起一个INVITE 消息,Proxy服务器通过DNS服务器查询这个客户B的URL地址,DNS通过URL地址查询到IP地址以后,回复给Proxy服务器,Proxy服务器然后对此IP地址发起一个INVITE 请求,此Proxy根据所属用户地址对终端B 发起一个INVITE 请求,最终实现呼叫流程。
  我们在本章节中介绍了几种服务器的类型和各自扮演的角色。在实际场景中可能几个服务器都集合为一台服务器来实现某些功能。用户可以根据自己的需求做进一步的分析和学习。
  关注公众微信号:asterisk-cn 获得更多有价值的企业通信行业技术分享,访问技术论坛获得技术帮助:www.issabel.cn/forum
【免责声明】本文仅代表作者本人观点,与CTI论坛无关。CTI论坛对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

专题