Test-CsVoiceRoute

 

上一次修改主题: 2012-03-26

对照语音路由号码模式测试电话号码,并返回一个布尔 (True/False) 值,指示所提供的号码是否与路由的号码模式匹配。号码模式只是语音路由使用的属性之一,用于指示 Microsoft Lync Server 2010 如何将企业语音用户的呼叫路由到公用电话交换网 (PSTN) 或专用交换机 (PBX) 上的电话号码。

语法

Test-CsVoiceRoute -Route <Route> -TargetNumber <PhoneNumber> [-Force <SwitchParameter>]

详细说明

语音路由包含一个正则表达式,用于确定要通过给定语音路由进行路由的电话号码:与该正则表达式匹配的电话号码将通过该路由进行路由。此 cmdlet 验证一个给定的电话号码是否能够通过一个指定的语音路由,按照该路由的号码模式(NumberPattern 属性)进行路由。您可以使用此 cmdlet 诊断路由问题,或者对特定路由测试电话号码以确保结果符合您的预期。

谁能运行此 cmdlet:默认情况下,以下各组的成员有权在本地运行 Test-CsVoiceRoute cmdlet:RTCUniversalServerAdmins。要返回分配了此 cmdlet 的所有基于角色的访问控制 (RBAC) 角色列表(包括您自己创建的任何自定义 RBAC 角色),请从 Windows PowerShell 提示符处运行以下命令:

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

参数

参数 必需 类型 描述

Route

必需

路由

一个包含语音路由引用的对象,测试 TargetNumber 参数中指定的号码时针对的即是该语音路由。可以通过调用 Get-CsVoiceRoute cmdlet 来检索语音路由对象。

完整数据类型:Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Route

TargetNumber

必需

电话号码

对 Route 参数中指定的语音路由进行测试时所针对的电话号码。此号码应为 E.164 格式(如 +14255551212)。

完整数据类型:Microsoft.Rtc.Management.Voice.PhoneNumber

Force

可选

开关参数

禁止显示运行此 cmdlet 时可能出现的任何确认提示或非严重错误消息。

输入类型

Microsoft.Rtc.Management.WritableConfig.Policy.Voice.Route 对象。接受通过管道传递的语音路由对象的输入。

返回类型

返回一个类型为 Microsoft.Rtc.Management.Voice.VoiceRouteTestResult 的对象。

示例

-------------------------- 示例 1 --------------------------

$vr = Get-CsVoiceRoute -Identity testroute
Test-CsVoiceRoute -TargetNumber "+14255551212" -Route $vr

此命令确定了给定号码是否与指定路由的模式匹配。我们首先使用 Get-CsVoiceRoute cmdlet 检索语音路由 testroute。使用该路由作为 Test-CsVoiceRoute cmdlet 的 Route 参数的值。我们还在 TargetNumber 参数中加入要测试的号码。输出内容是一个布尔值,说明目标号码是否与该路由的模式匹配。

-------------------------- 示例 2 --------------------------

Get-CsVoiceRoute -Identity testroute | Test-CsVoiceRoute -TargetNumber "+14255551212"

示例 2 执行与示例 1 相同的操作。但是,此示例中是在一个单个命令中执行该操作。我们首先调用 Get-CsVoiceRoute 来检索 Identity 为 testroute 的语音路由,然后将此语音路由通过管道传递给 Test-CsVoiceRoute cmdlet,并对照 TargetNumber 参数中提供的号码测试此路由。注意,我们并不需要提供 Route 参数,因为路由已通过管道传递给 cmdlet。

-------------------------- 示例 3 --------------------------

Get-CsVoiceRoute | Test-CsVoiceRoute -TargetNumber "+14255551212"

此示例检索 Lync Server 2010 部署中定义的所有语音路由的集合,并对调用 Test-CsVoiceRoute cmdlet 期间提供的 TargetNumber 测试每个路由的号码模式。对于所测试的每个路由,输出内容将为 True 或 False 值。

-------------------------- 示例 4 --------------------------

$z = Get-CsVoiceRoute
foreach ($x in $z){$x.Identity; Test-CsVoiceRoute -TargetNumber "+14255551212" -Route $x}

本示例类似于示例 3,检索了针对多个路由的语音路由测试结果。但是,示例 3 的输出只是 True/False 值的列表,并没有明确指出哪个测试结果适用于哪个路由。本示例可解决这个问题。(虽然有些方法可以使输出更具可读性,但这个简短的示例最起码可以完成该任务。)

我们首先调用 Get-CsVoiceRoute 检索所有语音路由,然后将集合分配给变量 $z。在下一行中,我们开始一个 foreach 循环。此循环将一次一个地获取集合的每个成员,然后将其分配给变量 $x。我们要对 $x(其中包含对单个语音路由的引用)执行第一个操作就是显示该路由的 Identity:$x.Identity。接下来,命令调用 Test-CsVoiceRoute,对目标号码测试路由 $x。最后的输出内容将为语音路由标识的列表(格式不太整齐),后跟一个 True/False 指示符,指示目标号码是否与带有该标识的路由中的号码模式匹配。