微软统一沟通里面一个非常重要的亮点就是点击呼叫,意思就是我不用知道你的各种联系方式,我只要知道你的一个账号,我就可以找到你,这里面就隐含了我不用记忆你的各种号码,但是我还是可以找到你。要实现这个功能,那就意味着你个各种号码都需要在客户端可以看到,我移动移动鼠标就可以直接呼叫你。

而企业里面,一般会把员工的信息放在活动目录内,如果我们能够处理处理AD里面的信息,让它们能够正确的现实在Lync联系人的卡片内的话,也就实现了让用户点击呼叫的能力。

我们还知道Lync要的是E.164的格式,是不是只有有+号才是E.164格式呢,非也。我们在以下采用的是Phone-context的格式,其实Phone-context也是一种E.164的格式,只是被认为是非全局路由号码。利用LYNC的号码规范法则强制在用户的号码后面添加phone-context字段,从而实号码的现规范化并显示在客户端。

需要注意的是,如果你的Lync部署里面有国际用户,那么就不要采用以下的方法来格式化用户的号码,是会出问题的。但是如果你的Lync用户全部都是国内的话,可以放心的使用以下的方法。

另外如果你的用户遍布神州,那么用户的手机号码的处理比较复杂了,我们这里就不讨论手机号码的处理方式了。以下假设用户都在一个区域内,也就是手机拨打不用加0。


就开始设置吧:

首先看到用户的AD里面的电话号码是非规范的E.164格式的。

image

我们看到用户的移动电话号码是常见的手机号码,我们也非常熟悉。如果是标准的E.164格式就应该是+8618612345678,我们看着反而不是很熟悉。

image

座机号码也非常熟悉。

然后进入命令行看看LYNC使用的规范化法则。

clip_image002

当前LYNC系统自带的规范化法则位于如下的位置,可以打开看看。里面的正则表达式还是很丰富的,全部是微软默认的。

clip_image002[9]

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

clip_image002[5]

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

image

已经完成可以测试一下。结果如预计的一样。

image

然后我们需要在LYNC服务器上更新一下地址簿。

clip_image002[7]

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

image

 

image

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

image

如果我们用张飞这个账号登录,你会看到自己的号码已经填在里面了。

image

如果张飞这个用户还想给一些朋友公布自己的家庭号码,还可以这么来设置,首先是填入自己的号码,并选择包含在联系人卡片里面

image

然后对需要查看自己家庭号码的用户设置特别的权限级别。

 

image

对方再次登录到系统上就可以看到张飞的家庭号码,直接就可以点击呼叫,好不方便。
 

什么?企业拨外线必须加9,那还不简单

直接把$1;phone-context=global换成9$1;phone-context=global就可以搞定。这时用户会看到两种号码格式,如下图所示。这个应该是系统的Bug,因为通过地址簿看到的信息是显示名称应该不带9,结果客户还是把格式化后的号码显示出来了。看看以后的补丁会不会处理这个问题。(感谢读者的反馈)