在企业里面,一般会把员工的信息放在活动目录内,如果我们能够处理处理AD里面的信息,让它们能够正确的现实在Lync联系人的卡片内的话,也就实现了让用户点击呼叫的能力,这样就方便多了。首先,就像在以前版本一样,储存在Active Directory中的电话属性是RFC3966格式(E.164号码),我们还知道Lync要的是E.164的格式,是不是只有有+号才是E.164格式呢,非也。我们在以下采用的是Phone-context的格式,其实Phone-context也是一种E.164的格式,只是被认为是非全局路由号码。利用LYNC的号码规范法则强制在用户的号码后面添加phone-context字段,从而实号码的现规范化并显示在客户端。需要注意的是,如果你的Lync部署里面有国际用户,那么就不要采用以下的方法来格式化用户的号码,是会出问题的。但是如果你的Lync用户全部都是国内的话,可以放心的使用以下的方法。另外如果你的用户遍布神州,那么用户的手机号码的处理比较复杂了,我们这里就不讨论手机号码的处理方式了。以下假设用户都在一个区域内,也就是手机拨打不用加0。例如: 我们想让AD用户帐户和Lync同时显示13381648788这个电话如下图。

  

 
我们看到用户的AD里面的移动电话号码是常见的手机号码,我们也非常熟悉。如果是标准的E.164格式就应该是+8618612345678,我们看着反而不是很习惯了。
 
 
我们可以查看LYNC使用的规范化法则
 
默认LYNC系统自带的规范化法则位于如下的位置(默认安装路径C:\Program Files\Microsoft Lync Server 2010\Web Components\Address Book Files\Files),可以打开看看。里面的正则表达式还是很多的,全部是微软默认的。

 

 

 

我们需要把这个文件拷贝到如下的ABSFiles目录即共享目录,这个目录安装LYNC的时候设置过。同时要把Sample_等文字删除。

 

 

然后在这个文件内填入下面所示的内容,需要注意的是phone-context需要和Voice Policy里面的Name一致即表示红箭头的地方。这里我们比较粗狂了,没有更多细化,直接一个.*匹配全部号码,实际应用建议细化一下。

 

还可以这样写

 

 

 

在命令行中运行 Get-CsAddressBookConfiguration

UseNormalizationRules值应该已经被设置为True。

执行uadate-CsAddressBook更新地址簿

 

服务器端测试一下

 

再登录客户端,看到的联系人的手机号码就显示出来了,这个的格式估计大家会觉得比较亲切。直接点击就可以呼叫了。

 

同时如果我们打开地址簿文件,我们会看到如上面所示的内容