截至前面的文章,似乎我们做的已经差不多了,当前还有就是我们的移动推送功能还没有做,因为推送实在是不好配置,因为它需要我们的边缘直接与公网连接,并且有一个固定的IP地址及一个能够自己添加DNS记录的公网域名。由于我这里的环境比较特殊,我的宽带并没有公网IP,所以非常抱歉无法给大家分享推送的内容。到这里是不是就没有其他可说的了呢?当然不是,其实Lync还有一些比较好的、能够开包即用的功能和组件。比如今天我们要讲的Lync Server呼叫寄存的配置和启用,说到呼叫寄存,这到底是什么东西呢?这里我们举一个通俗易懂的例子:

A一次接了2个电话进来找C。A可以先把一个电话呼叫直接转给C。另外一个先保留呼叫,但是lync会提高一个转接号(34567),等C那边通话完了,C用lync拨号键输入转接号(34567),C就能自己接听这个电话,而不需要A转接。

要启用呼叫寄存,必须配置通道来寄存呼叫。我们必须先配置呼叫寄存通道表,然后才能寄存和取回呼叫。您需要指定组织将保留用于寄存呼叫的分机号(通道)范围,并通过指定处理每个范围的呼叫寄存池来定义这些范围的路由。定义通道范围时,目标是具有足够的通道,以便不会在短时间内重用任何一个通道,但又不能有太多通道,以致于不得不限制用户或其他服务可使用的分机数量。 在我们的配置呼叫寄存的过程中,我们将使用虚拟分机(未向其分配用户或电话的分机)块作为通道范围。

可能看了这些描述大家可能有点晕,其实很简单,就是我们用分机时的呼叫取回,而寄存通道表就是取回时拨的号码,我们需要配置多个甚至某一个号码段作为寄存通道以提供够用的通道以便大家都能够使用呼叫取回。说了这么多,下面我们就开始配置吧,这个功能是已经有的,我们只需要在前端服务器上配置即可。我们在前端服务器或浏览器中打开我们的Lync Server控制面板,然后单击左侧的“语音功能”选项卡,单击右侧的“新建”。

image

然后在这里我们为新的呼叫寄存配置设置一个名称,然后设置这个呼叫寄存配置的号码范围,我们这里随便设置一个,不同的配置必须设置不同的号码范围。设置号码范围后我们需要指定目标服务器的FQDN,当然就是我们的前端服务器池了。

image

提交之后,我们单击左侧的“语音路由”选项卡,然后单击上面的“语音策略”选项卡,编辑我们现有的Global策略,复选“启用呼叫寄存”选项,然后单击“确定”。

image

单击确定之后该设置其实还并没有真正的提交,我们还需要进一步的设置,单击“提交”按钮。

image

这里会显示我们未提交的语音配置设置,我们单击右下角的提交。

image

如果刚才在提交时,我们没有关联PSTN用法则会提示警告,但这不影响我们Lync呼叫的呼叫寄存配置。

image

如果仍然显示未提交,可以重新编辑-提交一下,直到显示已提交。

image

其实到这里我们基本的配置就已经完成了,我们现在已经可以在客户端中呼叫时使用此功能,但到这里我们还可以通过Lync Server的cmdlet进一步的优化和改进呼叫寄存功能。下面我们在Lync Server命令行管理程序中执行一条命令:

New-CsCpsConfiguration -Identity site:“Contoso HQ" -CallPickupTimeoutThreshold 00:02:00 -EnableMusicOnHold $true -MaxCallPickupAttempts 2 –OnTimeoutURI  sip:zhangs@contoso.com

通过这条命令,我们可以为我们的Contoso HQ站点可以指定寄存通话后回拨的等待时间为2分钟,在呼叫方可以听到呼叫等待的音乐,在将呼叫寄存转接至zhangs@contoso.com前呼叫原始被叫方2次。是不是感觉这条命令做了不少事情?我们下面具体就每段参数来看看:

首先是New-CsCpsConfiguration –Idenity site:"contoso HQ"表示此规则应用于我们的contoso HQ站点,之所以加引号是因为我们的站点标识存在空格。如果我们不清楚当前可标识的站点名称,可以通过执行Get-CsSite 命令来获取当前Lync Server的站点信息。

image

CallPickupTimeoutThreshold 00:02:00 是指呼叫寄存后到回拨此前应答呼叫的电话之前等待的时间。该值必须采用 hh:mm:ss 的格式输入,以便指定小时数、分钟数和秒数。最小值为 10 秒,最大值为 10 分钟。默认值为 00:01:30。

EnableMusicOnHold $true 寄存呼叫时是否向呼叫者播放音乐。值为 True 或 False。默认值为 True,如果不将其更改为不播放,可以不加入这个参数。

MaxCallPickupAttempts 2 在将寄存呼叫转接到为 OnTimeoutURI 指定的URI前,呼叫原始被叫者尝试次数。默认值为 1。

OnTimeoutURI sip:zhangs@contoso.com 若呼叫寄存之后超过了我们设定的等待时间后,会按照MaxCallPickupAttempts设定的次数呼叫原始被叫者,如果仍然没有应答,则会将此呼叫转接到这里我们设置的URI地址,必须是sip:user@domain.com 格式,默认没有转接。

image

可能默认的等待音乐不太个性化,我们可以通过命令行来自定义呼叫寄存着收听的音乐文件:

$a = Get-Content -ReadCount 0 -Encoding byte "C:\Sound\Holdmuisc.wma" 通过这条命令,我们定义了一个名为"$a“变量,并为其指定ReadCount参数值为0,表示一次性完整读取该文件而不是逐行读取,以及指定Encoding参数的类型为byte "C:\Sound\Holdmuisc.wma",旨在让Get-Content命令读取到字节组合而不是.wma音频文件。操作完成后我们再执行第二条命令。 Set-CsCallParkServiceMusicOnHoldFile -Service ApplicationServer:pool0.contoso.com -Content $a 这条命令也很好理解,Set-CsCallParkServiceMusicOnHoldFile是设置呼叫寄存服务的等待音乐文件,-Service ApplicationServer:pool0.contoso.com 是设置呼叫驻留的服务ID,后面的ApplicationServer pool01.contoso.com就是服务ID。 如果命令成功执行,那么我们将看不到任何的结果。 image

其中所使用的音频文件必须满足以下要求:

Windows Media Audio 9、44 kHz、16 位、Mono、CBR 或 32 kbps。

我们可以通过GoldWave非常轻松的转化到这个格式。

image

好了,到这里我们的呼叫寄存就已经配置完成,并且成功针对全局进行了启用。内容并不是很多,但在生产环境中,这个功能还是比较实用的,特别是在员工比较多的公司。大家在做测试的时候,一定要在配置完成后用客户端进行测试下,由于时间问题我这里就不做客户端的测试了,大家有什么问题可以随时的回复文章,我们进行交流和讨论。