解决Lync联盟用户之间只能IM聊天不能进行A/V呼叫问题

简介:

 

一、 问题现象

      某公司的本地Lync 2013与国外SFB Server 2015配置联盟后,本地Lync用户和联盟用户能够进行IM文字沟通,但视频和语音始终建立不起来,A/V视频语音连接振铃后10s自动中断。

环境架构图如下:

image

 

二、问题分析

1、首先我确定了两个组织之间的Lync联盟和A/V发布使用的端口是没有问题的。

2、 在进行A/V呼叫时使用Lync Debug Tool,抓取数据包。

首先我们要了解一个完整的SIP协议会话建立的过程。一个完整的SIP协议会话建立过程如下:

clip_image002

终端A首先发送一个INVITE(邀请)给终端B,INVITE中会包含连接到终端A需要经过的IP路径列表信息(Lync服务器收到INVITE信息后会根据cadidate列表中的IP地址信息逐一尝试去连接)。当终端B收到INVITE后会给终端A回复一个100 Trying告诉终端A回话正在尝试建立,并且尝试在终端B上振铃。接下来终端B会给终端A恢复一个180 Ringing振铃请求。接下来终端B会给终端A回复一个200 OK确认信息回复INVITE邀请,该数据包中包含终端A连接到终端B需要包含的IP路径地址信息。

信息确认完毕后终端A会回复一个ACK,然后开始建立媒体(A/V)会话直到会话结束。

3、 根据抓取的数据包分析:

   我们能够看到在08:29:13时间点北京Lync服务器给南非Lync服务器发送了一个INVITE邀请,将连接到北京的Lync服务器需要经过的IP列表包含在cadidate列表中,但是该列表中使用的均是内部服务器IP(南非Lync服务器收到INVITE信息后会根据cadidate列表中的IP地址信息逐一尝试去连接,而cadidate列表中的IP均为内部私网IP,是无法连接成功的)。接下来南非Lync服务器给北京Lync服务器回复了100 Tring、180 Ringing和183 Session Progress。

image

 

一个正常的INVITE邀请数据包中的candidate如下:

image

 

在时间点08:29:19,南非Lync服务器回复了北京Lync服务器的 1 INVITE,将连接到南非Lync服务器需要经过的IP路径列表信息包含在candidate列表中。其中包含公网IP x.x.x.x。如图。

image

在时间点08:29:30,A/V连接自动中断了。(是由于南非Lync服务器尝试了所有candidate列表中的IP地址均无法成功连接北京Lync服务器)产生了错误提示:ms-client-diagnostics: 25; reason="A federated call failed to establish due to a media connectivity failure where both endpoints are internal";UserType="Callee";MediaType="audio" 通过错误提示判断Lync服务器无法判断当前连接为外部连接,无认为是一个内部连接(由于candidate列表中均为内部IP)。这种情况通常是Lync边缘服务器未配置“A/V边缘服务器已启用NAT”设置导致。

image

 

三、解决方法

1、基于上述分析,我们需要调整当前Lync边缘服务器的设置,具体操作如下:

1)、启用Lync边缘服务器的“A/V边缘服务器已启用NAT”设置。

image

2)、配置每台边缘服务器的NAT后的公网地址

image

3)、发布Lync拓扑。

4)、重启每台边缘服务器上的A/V服务。(最好在每台边缘服务器上重新运行一下Lync部署向导)

clip_image011



本文转自 jialt 51CTO博客,原文链接:http://blog.51cto.com/jialt/1794136

相关文章
|
Web App开发 存储 算法
微信技术分享:微信的海量IM聊天消息序列号生成实践(算法原理篇)
如何优雅地解决“消息序列号只要保证顺序性而不需要兼顾唯一性”的问题呢?这就是本文所要分享的内容,强烈建议深入理解和阅读。
3177 0
|
存储 编解码 安全
现代IM系统中聊天消息的同步和存储方案探讨
本文原作者:木洛,阿里云高级技术专家,内容有删减和修订,感谢原作者。 1、前言 IM全称是『Instant Messaging』,中文名是即时通讯。在这个高度信息化的移动互联网时代,生活中IM类产品已经成为必备品,比较有名的如钉钉、微信、QQ等以IM为核心功能的产品。
5212 0
|
4月前
|
存储 缓存 前端开发
Web端IM聊天消息该不该用浏览器本地存储?一文即懂!
鉴于目前浏览器技术的进步(主要是HTML5的普及),在Web网页端IM聊天应用的技术选型阶段,很多开发者都会纠结到底该不该像原生移动端IM那样将聊天记录缓存在浏览器的本地,还是像传统Web端即时通讯那样继续存储在服务端?本文将为你简洁明了地讲清楚浏览器本地存储技术(Web Storage),然后你就知道到底该怎么选择了。
78 1
|
10月前
|
机器学习/深度学习 自然语言处理 机器人
【Tensorflow+自然语言处理+LSTM】搭建智能聊天客服机器人实战(附源码、数据集和演示 超详细)
【Tensorflow+自然语言处理+LSTM】搭建智能聊天客服机器人实战(附源码、数据集和演示 超详细)
909 10
|
10月前
|
JSON 算法 Dubbo
Netty入门实践-模拟IM聊天
本文以入门实践为主,通过原理+代码的方式,实现一个简易IM聊天功能。分为2个部分:Netty的核心概念、IM聊天简易实现。
|
10月前
|
自然语言处理 算法 数据库
【JavaScript+自然语言处理+HTML+CSS】实现Web端的智能聊天问答客服实战(附源码 超详细必看)
【JavaScript+自然语言处理+HTML+CSS】实现Web端的智能聊天问答客服实战(附源码 超详细必看)
206 0
|
10月前
|
XML JavaScript 前端开发
【Web智能聊天客服】之JavaScript、jQuery、AJAX讲解及实例(超详细必看 附源码)
【Web智能聊天客服】之JavaScript、jQuery、AJAX讲解及实例(超详细必看 附源码)
128 0
|
10月前
|
移动开发 前端开发 HTML5
【Web端智能聊天客服】之HTML、CSS、Bootstrap的讲解及实例(超详细必看 附源码)
【Web端智能聊天客服】之HTML、CSS、Bootstrap的讲解及实例(超详细必看 附源码)
344 0
|
JSON 安全 前端开发
得物自研客服IM中收发聊天消息背后的技术逻辑和思考实现
本文将探秘得物自研客服IM中收发聊天消息背后的技术逻辑和思考实现,帮助大家了解如何在IM聊天场景中提供高效、安全、可靠和良好的用户体验。
128 0
react+redux聊天IM系统|react仿微信界面
之前有使用vue开发过一版vue聊天室,最近就捣鼓着用react技术尝试下。基于react+react-dom+react-router-dom+redux+react-redux+webpack2.0+react-photoswipe+swiper等技术混合开发的手机端仿微信界面聊天室——reactChatRoom,实现了聊天记录下拉刷新、发送消息、表情(动图),图片、视频预览,打赏、红包等功能。
2629 0

热门文章

最新文章