中介和边缘的故事

最近有两个朋友在部署Lync的企业语音的时候都遇到了相似的问题,表象是经过Edge登陆上来以后,客户端打电话都会出现接不通的问题。咱们今天就来分析一下如何来搞定这种问题。前端

故事仍是从OCS时×××始吧 服务器

 

 

p_w_picpath

 上面这幅图OCS的语音整合图来自于Technet,你们应该都很熟悉。说实话之前我非常不理解我用绿色框圈住地方,在通过一些部署和抓包分析后来我才知道,原来它就表示在通过了SIP信令协商协商以后,客户端就直接把媒体流直接发送给中介服务器。媒体流也就绕过了前端服务器。因此在OCS的时代,若是须要在分支部署网关的话,咱们也须要在分支部署一台中介服务器,为何?假如分支的用户打个电话,他们的媒体流都要跑到总部的前端上转一圈而后再送给分支的网关,企业的那点WAN怎么会耐得住。因此若是分支的用户数量在必定规模之上的话,在分支部署一台中介服务器也就是必须的了。这个也属于一种Bypass功能,而如今在Lync里面,微软作得更好了,还能够bypass中介服务器,咱们能够在分支只部署网关就能够,在通过媒体协商以后,客户端能够直接把音频流直接发送给网关。真是很给力,不过呢须要使用认证过的网关才行。ide

 这样的模式有没有问题呢?测试

仍是有的,那就是当用户从Edge上登陆过来的时候。用户登陆Edge以后,它所发出的信息会先到Edge服务器上,而后Edge服务器再发给中介服务器。通常企业也就在总部部署Edge服务器,那就意味着用户的媒体流确定要从总部的Edge发到中介服务器,而后中介服务器在发送给网关,这就意味着没有办法作Bypass了。同时也说明边缘服务器和中介服务器仍是有着某种关系的,若是没有处理好这种关系,可能呼叫就会出问题。
 server

说道这里,咱们先来看看上面提到的朋友遇到问题是什么样子的?blog

客户端经过Edge登陆以后,若是发起PSTN呼叫的话,首先显示Calling,而后变为Connecting call,最后就显示Call failed due to network issues。这说明呼叫创建的信令都是正常的,可是问题发生在系统尝试创建媒体流的时候。部署

 如何来解决呢?get

在前端输入以下命令看看中介服务器的配置it

Get-CsService –MediationServerio

 p_w_picpath

咱们看到EdgeServer那里是空着,咱们使用以下的命令把Edge服务器的值补上

Set-CsMediationServer -Identity "MediationServer:Lync_pool_name" -EdgeServer Your_edge_server_internal_address

输入完毕,再打一个电话测试一下,就一切正常了。

缘由呢,若是咱们在边缘或者中介上抓包,可能就会看到这样的Ms-client-diagnostics: 52031; reason="Call terminated on media connectivity failure" 的错误提示。在仔细研究研究你会发现原来中介服务器要去尝试链接一个外部地址,它不知道咱们有边缘服务器?确实不知道,由于edgeserver那里是空的么。咱们后来在中介服务器上配置那个参数就是告诉它,咱们有Edge服务器的。

 这也说明在部署企业语音的时候,处理好中介和Edge的关系仍是比较重要的。如过你在部署中遇到了一样的问题,不妨试试这个方法。

相关文章
相关标签/搜索