Lync 的移动服务功能配置好之后,如果你用的是Windows phone 或者Iphone/Ipad平台的话,当你在运行其它程序的时候,Lync客户端就会被挪到后台,成为了非活动状态。要让这些客户端重新活过来,就需要借助Lync移动服务里面的推送服务了。(安卓平台没有这个问题,因为Lync即便是在后台,它也是处于活动状态的)

推送服务的全称是Microsoft Lync Server 2010 Push Notification Service。它是借助基于云的Lync Online平台来触发推动的。厄,现在什么都和云搭上关系了。

 

image

通过这个图就可以看得出来,消息会通过边缘服务器发送给云中心,然后借助APNS和MPN服务来发送给客户端。具体的基本流程就是,Edge服务器把消息发送给sipfed.online.lync.com,然后sipfed.online.lync.com会把消息发给相应的APNS或者MPNS,从而到达手机。至于手机和这些服务点的交互,那就是手机内部的事情了,客户端只需要登录Lync之后选择启用推动服务就OK。

 

要配置推动服务非常简单,5条命令就可以搞定了,不过呢,需要它正常过工作的话,必须有几个条件。

 

  • 你的Edge服务器部署正确并且工作正常。
  • Edge服务器的外部网卡需要使用公网证书,和联盟一样的要求。
  • 需要在外网有_sipfederationtls._tcp.domainname的SRV纪录。经过反复测试,没有这个纪录的话,推送服务不能正常工作。

 

首先是添加一个host Provider:

New-CsHostingProvider –Identity "LyncOnline" –Enabled $true –ProxyFqdn "sipfed.online.lync.com" –VerificationLevel UseSourceVerification

然后就是设置添加允许的域,我们现在知道,推动消息是发送到了push.lync.com内去了。

New-CsAllowedDomain –Identity push.lync.com –Comment “Mobile Push Notifications”

然后就是启用推动服务:

Set-CsPushNotificationConfiguration –EnableApplePushNotificationService $true –EnableMicrosoftPushNotificationService $true

最后再启用联盟服务:

Set-CsAccessEdgeConfiguration -AllowFederatedUsers $true

到这里就配置完成了。

 

我们可以使用Get-CsMcxConfiguraion 来看看推送的消息时发到了push@push.lync.com这个账号上。

 image 然后执行一下以下命令测试一下联盟伙伴的配置是否正确。 image

 

我们来细看看执行Test-CcFederatedParter 这个命令是到底发生了些什么时候。

 

image

我们会看到边缘服务送出了一个Option包到sipfed.online.lync.com上,这个之前会有TLS的协商过程,如果你没有使用公网证书,那么这里肯定是无法建立会话的。

 

image

然后Edge会收到对方返回的200 OK。

 

再执行以下Test-CsMcxPushNotification 看看推送服务是否正常。

image

 

我们会看到前端发送了一个Message到边缘,消息的对象是push@push.lync.com

image

然后Edge就把消息发给了sipfed.online.lync.com

image

对方回了一个200OK。

image

然后Edge在发送一个200OK给到前端,然后前端就会显示测试成功了。

image

 

另外我们来实际看看客户端的Push操作是如何的。在下面的例子中WW是利用Mobile平台登录的,这个时候赵云给WW发了一个消息。

image

前端首先收到Lync客户端发过来的SIP Invite消息。

image

这个时候从前端会发出一个消息发到自己的5086端口。5086是不是很熟悉?我们前面部署移动服务的时候有这个端口。这个消息就是发送给移动服务的。

image

最后这条消息就发送到了Edge服务器上了,后面的事情就简单了,用户的Lync客户端会被唤醒并给用户提示,有新的消息到了。

image

 

推送服务的部署很简单,有条件的话不妨试试看。