中介和边缘的故事 推荐
2011-09-02 18:20
155 查看
最近有两个朋友在部署Lync的企业语音的时候都遇到了类似的问题,表象是通过Edge登录上来之后,客户端打电话都会出现接不通的问题。我们今天就来分析一下如何来搞定这种问题。
故事还是从OCS时代开始吧
上面这幅图OCS的语音整合图来自于Technet,大家应该都很熟悉。说实话以前我很是不理解我用绿色框圈住地方,在经过一些部署和抓包分析后来我才知道,原来它就表示在经过了SIP信令协商协商之后,客户端就直接把媒体流直接发送给中介服务器。媒体流也就绕过了前端服务器。所以在OCS的时代,如果需要在分支部署网关的话,我们也需要在分支部署一台中介服务器,为什么?假如分支的用户打个电话,他们的媒体流都要跑到总部的前端上转一圈然后再送给分支的网关,企业的那点WAN怎么会耐得住。所以如果分支的用户数量在一定规模之上的话,在分支部署一台中介服务器也就是必须的了。这个也属于一种Bypass功能,而现在在Lync里面,微软做得更好了,还可以bypass中介服务器,我们可以在分支只部署网关就可以,在经过媒体协商之后,客户端可以直接把音频流直接发送给网关。真是很给力,不过呢需要使用认证过的网关才行。
这样的模式有没有问题呢?
还是有的,那就是当用户从Edge上登录过来的时候。用户登录Edge之后,它所发出的信息会先到Edge服务器上,然后Edge服务器再发给中介服务器。一般企业也就在总部部署Edge服务器,那就意味着用户的媒体流肯定要从总部的Edge发到中介服务器,然后中介服务器在发送给网关,这就意味着没有办法做Bypass了。同时也说明边缘服务器和中介服务器还是有着某种关系的,如果没有处理好这种关系,可能呼叫就会出问题。
说道这里,我们先来看看上面提到的朋友遇到问题是什么样子的?
客户端通过Edge登录之后,如果发起PSTN呼叫的话,首先显示Calling,然后变为Connecting call,最后就显示Call failed due to network issues。这说明呼叫建立的信令都是正常的,但是问题发生在系统尝试建立媒体流的时候。
如何来解决呢?
在前端输入如下命令看看中介服务器的配置
Get-CsService –MediationServer
我们看到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的关系还是比较重要的。如过你在部署中遇到了同样的问题,不妨试试这个方法。
故事还是从OCS时代开始吧
上面这幅图OCS的语音整合图来自于Technet,大家应该都很熟悉。说实话以前我很是不理解我用绿色框圈住地方,在经过一些部署和抓包分析后来我才知道,原来它就表示在经过了SIP信令协商协商之后,客户端就直接把媒体流直接发送给中介服务器。媒体流也就绕过了前端服务器。所以在OCS的时代,如果需要在分支部署网关的话,我们也需要在分支部署一台中介服务器,为什么?假如分支的用户打个电话,他们的媒体流都要跑到总部的前端上转一圈然后再送给分支的网关,企业的那点WAN怎么会耐得住。所以如果分支的用户数量在一定规模之上的话,在分支部署一台中介服务器也就是必须的了。这个也属于一种Bypass功能,而现在在Lync里面,微软做得更好了,还可以bypass中介服务器,我们可以在分支只部署网关就可以,在经过媒体协商之后,客户端可以直接把音频流直接发送给网关。真是很给力,不过呢需要使用认证过的网关才行。
这样的模式有没有问题呢?
还是有的,那就是当用户从Edge上登录过来的时候。用户登录Edge之后,它所发出的信息会先到Edge服务器上,然后Edge服务器再发给中介服务器。一般企业也就在总部部署Edge服务器,那就意味着用户的媒体流肯定要从总部的Edge发到中介服务器,然后中介服务器在发送给网关,这就意味着没有办法做Bypass了。同时也说明边缘服务器和中介服务器还是有着某种关系的,如果没有处理好这种关系,可能呼叫就会出问题。
说道这里,我们先来看看上面提到的朋友遇到问题是什么样子的?
客户端通过Edge登录之后,如果发起PSTN呼叫的话,首先显示Calling,然后变为Connecting call,最后就显示Call failed due to network issues。这说明呼叫建立的信令都是正常的,但是问题发生在系统尝试建立媒体流的时候。
如何来解决呢?
在前端输入如下命令看看中介服务器的配置
Get-CsService –MediationServer
我们看到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的关系还是比较重要的。如过你在部署中遇到了同样的问题,不妨试试这个方法。
相关文章推荐
- 一文读懂Spring Boot、微服务架构和大数据治理之间的故事(文末有彩蛋!) 推荐
- Saltstack中关于ID的那些故事 推荐
- 一位架构师用服务打动客户的故事 推荐
- OpenStack超级用户推荐:史上最全边缘计算学习资料
- 部署和发布lync server 2010边缘服务器 推荐
- 统一沟通_边缘安装及配置之十七_(Windows Server 2008 R2 SP1英文版) 推荐
- 我与51CTO的故事--8月的朋友,生日快乐 推荐
- [日推荐]『小恩故事』育儿助手!
- 敏捷个人2011.7月份第一次线下活动报道:迷茫、游戏和故事中的敏捷个人. 推荐
- 流浪者的天堂【与51CTO的故事】 推荐
- 《大江东去》:五星推荐。改革开放前20年的典型商业冒险故事,个体户、集体企业、国企厂长、官二代的命运起伏(严重剧透)
- [日推荐]『初次见』这里有故事,还有诗和远方!
- 一个关于linux的故事-我的情感之路 推荐
- .NET委托:一个C#睡前故事 [推荐]
- 视频会议OCS2007整体部署(前端服务器+边缘服务器+Live Meeting) 推荐
- Lync 项目经验-05-共存迁移-Lync 2013-TO-SFB 2015-边缘服务器复制状态不正常 推荐
- 我的运维故事 推荐
- Exchange 2013 中部署边缘传输服务器 推荐
- 5+1,从无知到放肆【我与51CTO的故事】 推荐