公司一直在做lync的项目,手机lync 2013 尝试了无数次都无法成功,今天微软安心服务的人来做语音支持,顺便问了一下手机移动端等登录,终于解决了,解释如下,稍后我再补充细节内容:


lync 2013 使用了与2010 手机端完全不同的登录方式,打算使用lync 2013时,首先查看2013前端池中内部服务器名称和外部服务器名称是否一致:


比如我们当前环境为内部:fepool.contoso.com 外部 sip.contoso.com

这时候,如果手机从内部网络登录,首先查看lyncdiscover.contoso.com,lyncdiscoverinternal.contoso.com.两条DNS记录,

这两条记录我们指向了以前老的Lync2010前端服务器,这没关系,老lync2010前端服务器会进行跳转,将你的请求发送至lync 2013前端服务器上,之后,手机会查看lync 2013 前端服务器的内部和外部地址,然后通过外部地址访问前端,即我们的环境下,用sip.contoso.com这条记录访问,那么这条记录指向的是我们老的前端服务器,等于又指回去了!如此死循环下去。

解决方案:


1 将lync 前端池的内部外部FQDN全部改为fepool.contoso.com ,此时手机lync 2013 通过内网访问正常,

2 如果想lync 2013 通过公网也可以访问,同时lync2013 池的FQDN还要不一样,那么需要反向代理服务器,内部外部的sip.contoso.com全部指向代理的公网口,根据访问的端口不同,分别转发lync普通客户端的请求到边缘,手机lync的请求到前端上,细节以及拓扑随着项目进行,之后慢慢补充。



原理:

1 lync客户端通过外网访问,需要能够连到边缘的5061端口上。

所以就算没有公网DNS,你只要本地host将lyncdiscover.contoso.com指到你前端的公网IP上也可以

所以也就是说,如果你的lync边缘没法通过公网访问,那么不用试了,怎么都连不上。


2 lync手机如果需要从外网访问,手机需要能够访问前端服务器,且是你lync账户所在池的前端服务器,边缘也会访问,但只有简单的一个功能需要边缘,其他主要走前端。

所以我们出现了这个问题,新的2013的用户手机无法登陆,老的2010用户手机登录正常,原因就是2010的前端服务器我们发到了公网上,2013没有,所以,如果你的2013前端从公网无法访问,那么就无法使用手机登录。


3 为什么有解决方案说,如果想手机同时从内网和外网登陆,就需要有反向代理。

按照我上面的讲解,根据别人跟我讲的,lync手机在访问前端时,会查看服务器配置的拓扑,找到内部和外部FQDN这个配置,让后通过外部FQDN这个配置寻找和访问该域名。大部分公司内部和外部的FQDN名称不一样,而大部分公司内部DNS解析中没有这条外部DNS记录,或者这条记录没有指向本台前端服务器。或者有多条记录,所以我的手机也曾经有时候能登录,有时候不能登录,因为dns解析结果不同。

这时候反向代理就把一切变简单了,前端很多情况是不适合发布到外网的,怎么办,通过反向代理,反向代理一边和公网通,一边和前端通,这样其实就实现了前端的发布。