解决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

相关文章
|
Java Android开发 数据安全/隐私保护
im即时通讯开发/聊天软件系统/社交APP源码搭建/私有化部署聊天原生开发源码快速搭建
由IM技术专家打造的基于 Java 实现的即时通讯(IM)项目 我们提供私有化即时通讯解决方案,独立部署在您自己的服务器上、代码可以开源、支持二次开发、苹果端上线指导,源码出售,提供远程技术指导,全程指导服务器部署打包. 特点:原生开发 超高并发 音视频通话
im即时通讯开发/聊天软件系统/社交APP源码搭建/私有化部署聊天原生开发源码快速搭建
|
Web App开发 存储 算法
微信技术分享:微信的海量IM聊天消息序列号生成实践(算法原理篇)
如何优雅地解决“消息序列号只要保证顺序性而不需要兼顾唯一性”的问题呢?这就是本文所要分享的内容,强烈建议深入理解和阅读。
2943 0
|
存储 编解码 安全
现代IM系统中聊天消息的同步和存储方案探讨
本文原作者:木洛,阿里云高级技术专家,内容有删减和修订,感谢原作者。 1、前言 IM全称是『Instant Messaging』,中文名是即时通讯。在这个高度信息化的移动互联网时代,生活中IM类产品已经成为必备品,比较有名的如钉钉、微信、QQ等以IM为核心功能的产品。
4948 0
|
4月前
|
自然语言处理 算法 数据库
【JavaScript+自然语言处理+HTML+CSS】实现Web端的智能聊天问答客服实战(附源码 超详细必看)
【JavaScript+自然语言处理+HTML+CSS】实现Web端的智能聊天问答客服实战(附源码 超详细必看)
50 0
|
4月前
|
XML JavaScript 前端开发
【Web智能聊天客服】之JavaScript、jQuery、AJAX讲解及实例(超详细必看 附源码)
【Web智能聊天客服】之JavaScript、jQuery、AJAX讲解及实例(超详细必看 附源码)
48 0
|
4月前
|
移动开发 前端开发 HTML5
【Web端智能聊天客服】之HTML、CSS、Bootstrap的讲解及实例(超详细必看 附源码)
【Web端智能聊天客服】之HTML、CSS、Bootstrap的讲解及实例(超详细必看 附源码)
51 0
|
4月前
|
机器学习/深度学习 自然语言处理 机器人
【Tensorflow+自然语言处理+LSTM】搭建智能聊天客服机器人实战(附源码、数据集和演示 超详细)
【Tensorflow+自然语言处理+LSTM】搭建智能聊天客服机器人实战(附源码、数据集和演示 超详细)
147 0
|
4月前
|
JSON 算法 Dubbo
Netty入门实践-模拟IM聊天
本文以入门实践为主,通过原理+代码的方式,实现一个简易IM聊天功能。分为2个部分:Netty的核心概念、IM聊天简易实现。
|
5月前
|
JSON 安全 前端开发
得物自研客服IM中收发聊天消息背后的技术逻辑和思考实现
本文将探秘得物自研客服IM中收发聊天消息背后的技术逻辑和思考实现,帮助大家了解如何在IM聊天场景中提供高效、安全、可靠和良好的用户体验。
38 0
|
存储 编解码 安全
基于Netty的IM聊天加密技术学习:一文理清常见的加密概念、术语等
本文正好借此机会,以Netty编写的IM聊天加密为例,为入门者理清什么是PKI体系、什么是SSL、什么是OpenSSL、以及各类证书和它们间的关系等,并在文末附上简短的Netty代码实示例,希望能助你通俗易懂地快速理解这些知识和概念!
184 0
基于Netty的IM聊天加密技术学习:一文理清常见的加密概念、术语等

热门文章

最新文章