在 Lync Server 2013 中测试语音规则、路由和策略

 

上次修改的主题: 2014-05-20

验证计划

每月

测试工具

Windows PowerShell

所需的权限

使用 Lync Server Management Shell 在本地运行时,用户必须是 RTCUniversalServerAdmins 安全组的成员。

使用远程实例Windows PowerShell运行时,必须为用户分配有权运行Test-CsVoiceUser cmdlet 的 RBAC 角色。 若要查看可以使用此 cmdlet 的所有 RBAC 角色的列表,请从Windows PowerShell提示符运行以下命令:

Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Test-CsVoiceUser"}

说明

当用户拨打电话时,呼叫到达其目标的路由取决于分配给该用户的策略和拨号计划。 给定用户的 SIP 地址和电话号码,Test-CsVoiceUser cmdlet 将验证有关用户是否可以完成对该号码的呼叫。 如果测试成功,Test-CsVoiceUser返回以下内容:

  • 根据用户的拨号计划 (转换为 E.164 格式的数字)

  • 提供该翻译的规范化规则

  • 根据路由优先级) 使用 (的语音路由;

  • 将用户的语音策略链接到语音路由的电话使用情况。

Test-CsVoiceUser使你能够确定特定电话号码是否会按预期路由和转换,并有助于排查单个用户遇到的呼叫相关问题。

运行测试

运行Test-CsVoiceUser cmdlet 时,必须提供两条信息: (DialedNumber) 拨号号码和正在测试的用户帐户的标识。 例如,此命令测试具有 SIP 地址的用户的功能:kenmyer@litwareinc.com 拨打电话号码 +1206555-1219:

Test-CsVoiceUser -DialedNumber "12065551219" -SipUri "sip:kenmyer@litwareinc.com"

电话号码的格式应与你预期的拨号方式一样。 例如,如果用户在拨打长途电话之前通常不拨打 1,则应使用以下格式:

-DialedNumber "2065551219"

当然,在这种情况下,如果没有可将数字2065551219正确转换为 Lync Server 使用的 E.164 电话格式的规范化规则,测试将失败。 有关详细信息,请参阅帮助主题New-CsVoiceNormalizationRule cmdlet。

如果要针对每个用户帐户运行此相同的测试,可以使用类似于以下内容的命令:

Get-CsUser | ForEach-Object {$_.DisplayName; Test-CsVoiceUser -DialedNumber "+12065551219" -SipUri $_.SipAddress} | Format-List

有关详细信息,请参阅Test-CsVoiceUser cmdlet 的帮助文档。

确定成功或失败

如果测试 (成功完成,也就是说,如果用户可以拨打指定号码) ,输出将显示翻译后的电话号码以及匹配的规范化规则和语音路由等信息:

TranslatedNumber MatchingRule FirstMatchingRoute MatchingUsage

---------------- ------------ ------------------ -------------

+12065551219描述...LocalRoute Local

由于Windows PowerShell屏幕的限制,至少一些返回的信息 (最明显的是,匹配规范化规则的完整说明) 可能不会显示在屏幕上。 如果你只对测试的成功或失败感兴趣,那么这可能并不重要。 如果希望查看返回数据的完整详细信息,请在运行测试时通过管道将输出传递给Format-List cmdlet:

Test-CsVoiceUser -DialedNumber "+12065551219" -SipUri "sip:kenmyer@litwareinc.com" -Verbose | Format-List

这将以更易于阅读器的格式显示输出:

TranslatedNumber : +12065551219

MatchingRule : Description=;Pattern=^ (\d{11}) $;Translation=+$1;

Name=Prefix All;IsInternalExtension=False

FirsMatchingRoute: LocalRoute

MatchingUsage: Local

如果测试失败,Test-CsVoiceUser将返回一组空的属性值:

TranslatedNumber MatchingRule FirstMatchingRoute MatchingUsage

---------------- ------------ ------------------ -------------

测试失败的原因

Test-CsVoiceUser cmdlet 可能失败的原因有很多:可能没有可转换所提供的电话号码的规范化规则。 语音路由可能有问题。 分配给相关用户的拨号计划可能存在配置问题。 因此,在运行Test-CsVoiceUser cmdlet 时,可能需要包括 Verbose 参数:

Test-CsVoiceUser -DialedNumber "+12065551219" -SipUri "sip:kenmyer@litwareinc.com" -Verbose

包含 Verbose cmdlet 时,Test-CsVoiceUser将详细介绍执行检查时执行的所有步骤。 例如,你可能会看到类似于以下步骤的步骤:

VERBOSE:使用标识“sip:kenmyer@litwareinc.com”查找用户

VERBOSE:加载拨号计划:“RedmondDialPlan”

此附加信息可以提供有关可以采取的步骤来查明故障原因的提示。 例如,此处显示的详细输出告诉我们,正在测试的用户已分配拨号计划 RedmondDialPlan。 如果测试失败,则下一个逻辑步骤是验证 RedmondDialPlan 是否可以转换提供的电话号码。

另请参阅

Test-CsVoiceUser