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

一、 问题现象

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

环境架构图如下:

二、问题分析

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

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

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

终端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。

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

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

在时间点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”设置导致。

三、解决方法

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

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

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

3)、发布Lync拓扑。

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

时间: 2024-10-03 00:29:20

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

Lync联盟之间不能共享桌面和程序

Lync联盟建立: 一.边缘服务器搭建 二.公网SSL证书 三.公网DNS SRV记录  _sipfederationtls._tcp.domain.cn 四.防火墙开放相关端口 联盟配置完成后,测试与外部公司联盟时,无法共享桌面和程序,报"网络错误". 通过微软技术支持协调抓包分析,是防火墙限制了50000~59999端口造成的:排查公司的防火墙端口开放情况,发现50000~59999仅开放了UDP协议,放开TCP协议,问题解决了. Lync部署规划很重要,要把DNS.端口.架构等都

Linux系统命令"su - user"在普通用户之间的免密切换

在一种特殊情况下,我们需要用到这种方法进行用户自动跳转. 如图,公司使用堡垒机进行服务器管理时,不同服务器机群使用了不同的系统用户进行推送,外网机群使用"userA",内网机群使用"userB",但是要求内网机群通过堡垒机登陆之后使用的系统用户也是userA,也就是userB登陆之后会马上自动切换到userA,这个切换过程对客户透明.这样做的好处是,虽然堡垒机最终的登陆用户都是userA,但是内外网机群的userA可以分开管理,增强了服务器管理的灵活性和安全性. 在

使用AnyChat如何实现任意两用户之间的音视频交互

由于AnyChat SDK目前只支持房间内的用户之间进行音视频.文字的交互,如果两个用户登录系统之后,想进行音.视频交互,则需要进行一些流程处理才能实现,通用的流程处理方法如下: 1.A登录系统,Server SDK记录A的信息 2.B登录系统,Server SDK记录B的信息(并判断A和B是否为好友) Server SDK将A的信息(用户ID.用户名)发送给B Server SDK将B的信息发送给A 3.A请求与B聊天 A向Server SDK发送一条自定义指令,想和B聊天 Server SD

开通Lync 2013用户 提示“无法重试此操作:访问 特权不够,不能执行该 ...

其它用户开通正常,但唯一个用户无法开通Lync 2013  ,启用时报错:"无法重试此操作:访问 特权不够,不能执行该操作.00002098:SecErr:DSID-03150BC1,problem 4003(INSUFF_ACCESS_RIGHTS),data 0"上图: 后经过查证,因此用户没有"启用继承". 开通Lync 2013用户 提示"无法重试此操作:访问 特权不够,不能执行该 ...,布布扣,bubuko.com

百度不愧为流量之王(空间的问题只是满足了用户之间的“虚荣”,而功能的完善才最终决定了事件的走向)

百度不愧为流量之王,将整合达到了一个需求和发展的平衡.用我一个同事的话来讲:“对于任何一个人,不管是高富帅还是屌丝,看毛片在一定程度上就是刚需——而百度,正好免费而又简单的满足了这种需要,相比之下,迅雷收费,电驴太慢,这是一个非常吊的开启模式,一个窗口.以前一个人看毛片来百度云播,看过了随便用一下百度的功能,哦,居然还能分享给基友啊,居然还能找电影看啊,居然还能存放手机资料啊,居然还能存种子啊,居然还有这么多云硬件啊,居然还有通讯录的功能啊,不错——这样,用户的粘性自然就来了.”虽然这段话说得有

【转】ASP.NET的OnClientClick与OnClick事件【解决了“识别用户在对话框里面选yes或no的问题”】

OnClientClick是客户端事件方法.一般采用JavaScript来进行处理.也就是直接在IE端运行.一点击就运行. OnClick事件是服务器端事件处理方法,在服务器端,也就是IIS中运行.点击按钮后,执行postback,再运行. 如果一个按钮上我们同时有客户端的OnClientClick方法又有OnClick事件处理方法,如何才能按照正常的逻辑运行呢? OnClientClick中我们常用来做一些客户端的检测.当然放在服务器也可以做同样的检测,但这样做的代价是与服务器进行交互,消耗资

用户“*****”不具有所需的权限。请验证授予了足够的权限并且解决了 Windows 用户帐户控制(UAC)限制问题。

错误: 用户“ts\***”不具有所需的权限.请验证授予了足够的权限并且解决了 Windows 用户帐户控制(UAC)限制问题. 解决: 当从客户端用IE连接http://xxx.xxx.xxx.xxx/Reports/Pages/Folder.aspx 访问报表管理器时,出现上面错误,则必须在"主文件设置"里,添加相关用户以及对应的权限.如下所示:

用户之间好友关系以及亲戚关系如何在数据库存储?

最近做项目需要设计数据库,其中涉及到用户之间好友以及亲戚关系,暂时提出两个解决方案: 1 建立中间表,将有关系的两个人ID相互对应 2 增加一张关系表,将用户的朋友以及亲戚的ID取出来,用","隔开,存入其中的关系字段,比如friendship字段,设置为varchar类型,读取的时候将内容按照","切割,获取相应的用户信息 暂时采用第二种方案,不知道哪一种好点,第二种可能会耗时比较久,待测试

Linux 普通用户之间免密登陆

目的: 同台机器之间实现普通用户之间的免密登陆: NN01 的user1 免密登陆 user2 不同机器之间实现普通用户之间的免密登陆 :NN01 的user1 免密登陆 NN01 的user1 一.同台机器之间实现普通用户之间的免密登陆 普通用户之间的免密登陆和 使用root 进行免密登陆,基本设置都是一样的,只不过普通用户之间需要修改 .ssh 和 authorized_keys 的权限免密才能生效. 登陆 user1 的前提下, ssh-keygen #使用 ssh-keygen 命令,一