目录

简介

先决条件

要求

使用的组件

网络拓扑 — 单个CallBridge

网络拓扑 — 集群呼叫网桥

Callbridge证书要求 — 单个CallBridge

Callbridge证书要求 — 集群CallBridge

DNS记录要求 — 单CallBridge

DNS记录要求 — 集群CallBridge

配置

SIP媒体加密

入站规则

入站规则配置示例 — 单个CallBridge

入站规则配置示例 — 集群CallBridge

出站规则

出站呼叫配置示例 — 单个CallBridge

出站呼叫配置示例 — 集群呼叫网桥

使用API修改范围 — 仅集群呼叫网桥

获取集群中所有CallBridge的列表

获取所有出站拨号规则的列表

将CallBridge范围放入

CMS服务帐户

CMS服务帐户配置示例

验证CMS服务帐户

Lync/Skype配置

单个CallBridge

集群呼叫网桥

故障排除

从CMS收集日志

查看Lync/Skype配置

Lync/Skype Get命令的示例输出

联系TAC

简介

本文档介绍如何配置Cisco Meeting Server(CMS)CallBridge集群，并将Skype for Business作为官方指南的补充。本文档提供单个CallBridge的示例和三个CallBridge集群的另一个示例，但可以根据需要添加其他CallBridge。还支持两个CallBridge集群。

作者：Rogelio Galindo，由Cisco TAC工程师Viridiana Fuentes编辑。

先决条件

要求

Cisco 建议您了解以下主题：

- 思科会议服务器(CMS)

- 域名服务器 (DNS)

- Skype for Business

- 应用编程接口(API)

注意：配置指南位于：https://www.cisco.com/c/dam/en/us/td/docs/conferencing/ciscoMeetingServer/Deployment_Guide/Version-2-2/Cisco-Meeting-Server-2-2-Scalable-and-Resilient-Deployments.pdf

使用的组件

- 运行CallBridge群集的3台CMS服务器，软件版本2.2.2。

- 2015年Skype for Business

- Active Directory(AD)Windows Server 2012

- 安全外壳(SSH)客户端

- 安全文件传输协议(SFTP)客户端，例如WinSCP或类似

- API程序，如Postman或类似程序

- 用于Active Directory、DNS和Skype服务器的远程桌面会话

网络拓扑 — 单个CallBridge

网络拓扑 — 集群呼叫网桥

Callbridge证书要求 — 单个CallBridge

表1a提供了单个CallBridge环境的CallBridge证书示例。

表1a

CallBridge证书

描述

单个CallBridge

CN:cms.uc.local

CallBridge FQDN

Callbridge证书要求 — 集群CallBridge

表1b提供集群CallBridge环境的CallBridge证书示例。单个证书可以在集群中的CallBridges中共享。

表1b

Callbridge证书

描述

服务器 1：cms1.uc.local

CN:cms.uc.local

CallBridge集群FQDN。此记录必须解析到所有CallBridge群集对等体。

SAN:cms.uc.local

CallBridge集群FQDN。此记录必须解析到所有CallBridge群集对等体。

SAN:cms1.uc.local

CallBridge 1 FQDN。

SAN:cms2.uc.local

CallBridge 2 FQDN。

SAN:cms3.uc.local

CallBridge 3 FQDN。

服务器 2：cms2.uc.local

CN:cms.uc.local

CallBridge集群FQDN。此记录必须解析到所有CallBridge群集对等体。

SAN:cms.uc.local

CallBridge集群FQDN。此记录必须解析到所有CallBridge群集对等体。

SAN:cms1.uc.local

CallBridge 1 FQDN。

SAN:cms2.uc.local

CallBridge 2 FQDN。

SAN:cms3.uc.local

CallBridge 3 FQDN。

服务器 3：cms3.uc.local

CN:cms.uc.local

CallBridge集群FQDN。此记录必须解析到所有CallBridge群集对等体。

SAN:cms.uc.local

CallBridge集群FQDN。此记录必须解析到所有CallBridge群集对等体。

SAN:cms1.uc.local

CallBridge 1 FQDN。

SAN:cms2.uc.local

CallBridge 2 FQDN。

SAN:cms3.uc.local

CallBridge 3 FQDN。

CMS CLI可用于查看证书的内容：

cms1> pki inspect cmsuccluster.cer

Checking ssh public keys...not found

Checking user configured certificates and keys...found

File contains a PEM encoded certificate

Certificate:

Data:

Version: 3 (0x2)

Serial Number:

60:00:00:00:21:db:36:e8:b9:0d:96:44:41:00:00:00:00:00:21

Signature Algorithm: sha256WithRSAEncryption

Issuer: DC=local, DC=uc, CN=DC-CA

Validity

Not Before: Mar 16 19:00:53 2018 GMT

Not After : Mar 16 19:10:53 2020 GMT

Subject: C=US, ST=NC, L=RTP, O=Systems, OU=Cisco, CN=CMS.UC.local

Subject Public Key Info:

Public Key Algorithm: rsaEncryption

Public-Key: (2048 bit)

Modulus:

00:b8:41:69:d9:1d:47:ef:b1:23:70:ae:69:da:e3:

ff:12:f8:97:2b:ee:1e:c0:6c:66:e4:95:3f:8a:74:

4d:ec:fc:1e:0d:38:56:1b:00:5c:ce:6d:d3:68:13:

e4:9d:b6:e7:7d:de:c4:a4:f3:00:02:11:e5:33:06:

b4:f6:64:29:c3:77:62:a9:dc:9d:ad:a2:e9:c1:0b:

72:f4:18:af:df:d3:e3:f4:4a:5d:66:e5:e8:4f:63:

09:15:5f:8e:ec:df:86:fb:35:47:99:db:18:d1:b7:

40:4e:b6:b3:b6:66:28:8e:89:15:8b:cc:0f:e6:5c:

e6:2d:de:83:6c:f8:e3:46:49:97:a6:a9:0e:6d:b1:

65:08:8e:aa:fc:f0:ae:2f:c1:c2:cd:b6:4f:a5:eb:

29:32:9a:48:8c:86:6d:1e:3a:c2:22:70:a3:56:e9:

17:01:ef:3a:ce:bb:9f:04:47:e5:24:e0:16:ba:c0:

85:df:92:4d:51:d2:95:bf:84:f7:9a:2e:c0:31:e9:

9f:91:4f:4a:ce:2c:27:17:f8:ae:3e:96:4e:3b:0a:

15:1a:66:cf:e9:12:96:e1:17:ee:65:3c:04:7a:c0:

a0:b3:09:fd:3e:16:08:c6:0b:36:51:57:cb:d8:09:

a3:40:d0:2c:ae:d6:06:e0:8c:06:de:b7:ce:24:83:

28:69

Exponent: 65537 (0x10001)

X509v3 extensions:

X509v3 Subject Alternative Name:

DNS:CMS.UC.local, DNS:CMS.UC.local, DNS:CMS1.UC.local, DNS:CMS2.UC.local, DNS:CMS3.UC.local

X509v3 Subject Key Identifier:

FE:EF:64:D6:85:7A:62:C5:CA:7B:64:10:B7:F9:E7:18:1D:65:0B:70

X509v3 Authority Key Identifier:

keyid:B5:FC:2D:1E:7F:D9:3E:68:F4:B2:78:1F:F0:E8:B2:FC:80:7F:9C:E8

X509v3 CRL Distribution Points:

Full Name:

URI:ldap:///CN=DC-CA,CN=DC,CN=CDP,CN=Public%20Key%20Services,CN=Services,CN=Configuration,DC=uc,DC=local?certificateRevocationList?base?objectClass=cRLDistributionPoint

Authority Information Access:

CA Issuers - URI:ldap:///CN=DC-CA,CN=AIA,CN=Public%20Key%20Services,CN=Services,CN=Configuration,DC=uc,DC=local?cACertificate?base?objectClass=certificationAuthority

X509v3 Key Usage: critical

Digital Signature, Key Encipherment

1.3.6.1.4.1.311.21.7:

0..&+.....7.....\...........A........N...O..d...

X509v3 Extended Key Usage:

TLS Web Server Authentication, TLS Web Client Authentication

1.3.6.1.4.1.311.21.10:

0.0

..+.......0

..+.......

Signature Algorithm: sha256WithRSAEncryption

83:31:16:15:74:41:98:e4:40:02:70:cc:6e:c0:53:15:8a:7a:

8a:87:0a:aa:c8:99:ff:5b:23:e4:8b:ce:dd:c0:61:9c:06:b4:

3d:22:91:b6:91:54:3a:99:8d:6e:db:18:27:ef:f7:5e:60:e6:

48:a2:dd:d5:85:1d:85:55:79:e0:64:1a:55:22:9e:39:0c:27:

53:a4:d8:3f:54:fd:bc:f9:d4:6e:e1:dd:91:49:05:3e:65:59:

6e:d4:cd:f6:de:90:cb:3d:b3:15:03:4b:b8:9d:41:f1:78:f5:

d9:42:33:62:b5:18:4f:47:54:c9:fa:58:4b:88:aa:0d:f6:26:

9b:fb:8f:98:b4:82:96:97:24:fe:02:5b:03:04:67:c2:9e:63:

3d:02:ae:ef:92:a7:be:ad:ca:7e:4e:d2:1e:54:e6:bf:75:3b:

72:32:7c:d6:78:3f:5e:b9:e6:43:bd:1c:74:20:46:57:1b:81:

c2:4b:b4:fc:9f:cc:c9:63:a8:2d:fd:dd:09:3f:24:d6:ac:f7:

7c:bd:26:80:a5:b4:d1:a7:c8:fb:3d:d4:a7:93:70:d1:5c:77:

06:9e:1c:f8:6a:81:a5:97:91:e9:21:e9:7a:df:a3:64:ab:ed:

15:c7:be:89:5f:1e:53:a7:b5:01:55:ab:a2:cd:8f:67:8d:14:

83:bc:29:a1

cms1>

请注意“主题”和“X509v3主题备用名称”字段。这些将在我们以后在Microsoft环境中建立信任关系时变得极其重要。

Subject: C=US, ST=NC, L=RTP, O=Systems, OU=Cisco, CN=CMS.UC.local

X509v3 Subject Alternative Name:

DNS:CMS.UC.local, DNS:CMS.UC.local, DNS:CMS1.UC.local, DNS:CMS2.UC.local, DNS:CMS3.UC.local

注意：证书配置指南可在以下位置找到：https://www.cisco.com/c/dam/en/us/td/docs/conferencing/ciscoMeetingServer/Deployment_Guide/Version-2-2/Certificate-Guidelines-Single-Split_Server-Deployment-2-2.pdf

DNS记录要求 — 单CallBridge

表2a提供了如何配置DNS服务器的示例。它说明了每个字段的含义。

表2a

A 记录

IP示例

描述

cms.uc.local

10.10.10.1

CallBridge

fe.skype.local

10.10.10.5

Skype前端完全限定域名(FQDN)

DNS记录要求 — 集群CallBridge

表2b提供了如何配置DNS服务器的示例。它说明了每个字段的含义。

表2b

A 记录

IP示例

描述

cms1.uc.local

10.10.10.1

CallBridge 1

cms2.uc.local

10.10.10.2

CallBridge 2

cms3.uc.local

10.10.10.3

CallBridge 3

cms.uc.local

10.10.10.1

10.10.10.2

10.10.10.3

解析为集群中所有CallBridge的A记录。这称为CallBridge集群完全限定域名(FQDN)

fe.skype.local

10.10.10.5

Skype前端完全限定域名(FQDN)

配置

SIP媒体加密

导航至配置>呼叫设置。SIP媒体加密必须设置为允许。

入站规则

表3描述了“来电 — 呼叫匹配”配置中的每个字段的含义。

表 3

来电匹配拨号方案字段

描述

域名

如果收到与此域的呼叫，则使用URI的用户部分在已启用的目标中查找匹配项。

优先级

这确定规则的考虑顺序。系统将首先检查较高的数字。最后将检查较低的数字。

目标空间

如果设置为yes:如果URI的用户部分与呼叫将连接到该空间的空间匹配。

目标用户

如果设置为yes:如果URI的用户部分与CMA用户匹配，则呼叫将尝试呼叫该用户。

目标IVR

如果设置为yes:如果URI的用户部分与已配置的IVR匹配，呼叫将连接到该IVR。

目标Lync

如果设置为yes:如果URI的用户部分与Skype for Business Meeting的PSTN拨入号码匹配，则作为双宿主呼叫连接到该会议。

目标Lync简单加入

如果设置为yes:将URI的用户部分转换为HTTPS目标，并尝试查找在该URL托管的Office365会议。

租户

这将确定此规则将考虑用于哪些租户。

表4介绍了“来电 — 呼叫转移”配置中的每个字段的含义。

表 4

来电转发拨号方案字段

说明

域匹配模式

如果收到与此域的呼叫，则根据配置转发或拒绝该域。

优先级

这确定规则的考虑顺序。系统将首先检查较高的数字。最后将检查较低的数字。

转发

如果设置为转接，则呼叫将由出站规则处理。如果设置为拒绝，则呼叫将被拒绝且不转接。

主叫方 ID

如果设置为通过域的起始部分，则保留。如果设置为使用拨号方案，则from部分将重写为在出站规则中配置。

注意：如果CallBridge在集群中，则Pass through不能用于与Lync/Skype域匹配的规则。这将中断网关呼叫的演示。

重写域

如果启用，请将被叫域更改为转发域字段中配置的值。

转发域

如果启用了重写域，则被调用的域将更改为此字段的值。

入站规则配置示例 — 单个CallBridge

在这种环境下，事情非常简单。由于我们不使用集群CallBridge，因此可以将每个域设置为使用直通作为其呼叫方ID。在群集环境中无法执行此操作，因为它将中断演示文稿共享。

此外，域Skype.local的呼叫匹配规则将“目标Lync”设置为true。这意味着，如果我们通过PSTN拨入号码呼叫Lync/Skype会议，我们应能以双主呼叫方式连接。

入站规则配置示例 — 集群CallBridge

在此环境中，我们使用由三个CallBridge组成的CallBridge集群。因此，我们需要为配置为将域重写为uc.local的每个CallBridge设置一个呼叫转发规则。这是因为当Lync/Skype用户从UC环境回叫用户时，他们实际上将呼叫到cms1.uc.local、cms2.uc.local或cms3.uc.local的域。遗憾的是，这是使内容在群集CallBridge环境中工作所需的配置的限制。在将呼叫转发到uc.local sip代理之前，我们需要将此转换回uc.local。

此外，域Skype.local的呼叫匹配规则将“目标Lync”设置为true。这意味着，如果我们通过PSTN拨入号码呼叫Lync/Skype会议，我们应能以双主呼叫方式连接。

出站规则

表5介绍了出站呼叫配置中每个字段的含义。

表 5

出站拨号方案字段

描述

域

对于此域的呼出，请使用此出站规则

要使用的SIP代理

要为此域向发送呼叫的SIP代理

本地联系域

这将确定将在联系人信头中输入什么值。对于Lync/Skype集成，此值必须设置为CallBridge的FQDN。

注意：对于使用Lync/Skype SIP代理的任何出站规则，必须配置此字段。对于使用非Lync/Skype的SIP代理的任何出站规则，不得配置此字段。

本地源域

这将确定将放入从报头的值。这将是在SIP代理上看到的主叫方ID地址。如果留空，此字段将使用配置的“本地联系域”。Lync/Skype将使用此URI作为回叫和演示共享的目标URI。

注意：如果呼叫是网关呼叫，且使用的入站拨号规则将“呼叫方ID”设置为直通，则不使用此值。

中继类型

这将确定在与SIP代理通信时将使用什么SIP变体。

行为

这决定了我们是会继续检查优先级较低的规则，还是在无法完成呼叫的匹配情况下停止搜索。

优先级

这确定规则的考虑顺序。系统将首先检查较高的数字。最后将检查较低的数字。

加密

这决定了我们是使用加密SIP还是使用未加密SIP。

租户

这将确定此规则将考虑用于哪些租户。

呼叫网桥范围

这将确定此出站拨号规则将考虑用于哪个CallBridge。在集群CallBridge中，这是确保从每个CallBridge发送正确联系域所必需的。

注意：此值只能使用API进行设置，如下所述。

出站呼叫配置示例 — 单个CallBridge

再次 我们发现，单个CallBridge环境比群集环境要简单得多。上面需要注意的一点是，我们指定了联系域。这是因为，如果我们未将CallBridge的完全限定域名指定为本地联系域，Lync/Skype将出于安全原因拒绝呼叫。由于我们的传入转发规则设置为使用传递，因此在本例中，我们实际上不会重写来自域的。

出站呼叫配置示例 — 集群呼叫网桥

在此环境中，我们使用由三个CallBridge组成的CallBridge集群。因此，我们需要为每个CallBridge设置一条出站规则，每个CallBridge具有不同的本地联系域、来自域的本地联系域和范围。只需一条出站规则即可将呼叫从所有CallBridge路由到Cisco Unified Communications Manager。要设置需要使用API的范围。

使用API修改范围 — 仅集群呼叫网桥

创建出站呼叫规则后，该规则的范围将设置为<all>。这意味着出站规则将用于集群中的所有CallBridge。对于指向Lync/Skype的出站规则，我们需要使用不同的联系人和信头，具体取决于我们所在的CallBridge。为此，我们需要为每个CallBridge创建不同的出站规则，其中联系人/发件人字段与该CallBridge匹配。使用API，我们需要设置这些出站拨号规则的范围，以便它们仅在匹配该规则的CallBridge上处理。

获取集群中所有CallBridge的列表

在浏览器中，导航至CMS API的/callbridges页面。这将显示集群中的所有CallBridge。

现在我拥有所有CallBridge的ID。您的ID在您的环境中会有所不同。我可以看到，如果我想引用CallBridge cms1.uc.local I应使用e4ab61ea-b5b4-4fac-ad4a-9979badea4e4的ID。

获取所有出站拨号规则的列表

接下来，我需要查找出站规则并获取其ID。在浏览器中，导航至API中的/outbounddialplanrules页面。

<outboundDialPlanRules total="4">

<outboundDialPlanRule id="7c76b6c7-4c42-45b0-af47-796cb6737e4e">

<domain>UC.local</domain>

<priority>0</priority>

</outboundDialPlanRule>

<outboundDialPlanRule id="b8cf4056-7f56-43a5-b67b-861253d5ca32">

<domain>skype.local</domain>

<priority>0</priority>

</outboundDialPlanRule>

<outboundDialPlanRule id="4ae1d777-48b7-423b-a646-a329e1e822af">

<domain>skype.local</domain>

<priority>0</priority>

</outboundDialPlanRule>

<outboundDialPlanRule id="05f00293-50fd-4c17-9452-dec224b43430">

<domain>skype.local</domain>

<priority>0</priority>

</outboundDialPlanRule>

</outboundDialPlanRules>

现在我有所有规则的ID，但我无法分辨哪个是。我们不关心第一条规则，因为这条规则是UC.local，我们不需要为此设置范围。我们需要知道哪条规则是Skype.local其余出站规则的哪条规则。因此，我将逐个开始，将ID与CallBridges匹配。

我将在浏览器中导航至/outbounddialplanrules/b8cf4056-7f56-43a5-b67b-861253d5ca32。阅读此处列出的联系人信头，我可以得知此规则适用于CMS.1.UC.local。因此，我们需要将此规则的范围设置为CMS.1.UC.local。

将CallBridge范围放入

使用我最喜爱的API工具，我将发送PUT到/outbounddialplanrules/b8cf4056-7f56-43a5-b67b-861253d5ca32上的api，其正文如下：

scope: callBridge

callBridge: e4ab61ea-b5b4-4fac-ad4a-9979badea4e4

在此屏幕截图中，我使用PostMan发送此请求。

如果此HTTP PUT成功，WebAdmin中的出站拨号规则页面现在应反映已应用范围。如果从CallBridge的Webadmin查看范围已应用到该范围，应显示<local>。如果另一个CallBridge的Webadmin用于查看出站拨号规则，则应在范围字段中显示CallBridge FQDN。范围<all>表示规则将用于所有CallBridge。范围<none>表示已启用范围，但CallBridges与范围不匹配。

设置一个CallBridge的范围后，需要为每个附加CallBridge配置该范围。完成此配置后，Skype域的每个出站规则都应具有范围。

CMS服务帐户

在WebAdmin的常规配置页面中，有Lync Edge设置部分。要利用TURN服务或通过PSTN拨入号码加入双家庭会议，必须进行配置。

表6介绍Lync Edge设置配置中每个字段的含义。

表 6

Lync边缘设置字段

描述

服务器地址

前端池的完全限定域名(FQDN)

用户名

要用于CMS的服务帐户的用户名。

注册数量

您要注册的不同用户帐户数。如果此处未配置值，则仅注册上面列出的用户名。如果在此处应用数字，则数字1-X将作为后缀应用到URI的用户部分，其中X是此字段中配置的数字。

CMS服务帐户配置示例

CMS1上的配置：

此配置将注册cms1serviceuser1@skype.local、cms1serviceuser2@skype.local、cms1serviceuser3@skype.local、... cms1serviceuser11@skype.local和cms1serviceuser12@skype.local到fe.skype.local。因为在本示例中，我处于群集环境中，我还需要为其他CallBridge创建服务帐户并单独配置它们。请注意，本示例中的用户名不同。在CMS1上，用户名前缀为cms1。在CMS2上，用户名前缀为cms2。在CMS3上，前缀为cms3。所有这些帐户都在Skype for Business环境中创建并启用。由于我们的受信任应用池配置了“Treat as authenticated”，因此我们不需要提供密码进行注册。

CMS2上的配置：

CMS3上的配置：

验证CMS服务帐户

CMS WebAdmin的状态页面将显示Lync/Skype用户是否已成功注册。在以下示例中，我们只配置一个注册，并且它已成功完成。如果您注意到状态显示长时间进行的注册收集SIP和DNS日志，以确定失败的原因。

Lync/Skype配置

在Lync/Skype管理外壳中应用以下命令。在前端服务器上应用命令。

注意：建议的命令用于指导。如果您对Skype服务器上的配置有疑问，您需要联系您的Lync/Skype管理员和/或支持团队。

单个CallBridge

首先，我们需要让Skype信任我们的CallBridge。为此，我们添加一个受信任的应用池。在Microsoft术语中，“池”只是指“集群”。 在此场景中，我们的群集只是一个CallBridge的群集。集群的标识必须与CallBridge上使用的证书的公用名称匹配。Microsoft将此用作安全检查。在SAN中拥有身份是不够的。如果公用名与Microsoft不匹配，则会断开TCP连接。使用此命令时，身份应为CallBridge FQDN。注册器应是为这些连接提供服务的前端池的FQDN。站点应是Lync/Skype站点标识符。如果您不确定注册器或站点应使用的值，请联系您的Lync/Skype管理员。

New-CsTrustedApplicationPool -Identity CMS.UC.local -Registrar fe.skype.local -site 1 -RequiresReplication $false -ThrottleAsServer $true -TreatAsAuthenticated $true

接下来，必须配置Microsoft环境，以允许来自端口5061上CallBridge（受信任应用池）的入站通信。

New-CsTrustedApplication -ApplicationId AcanoApplication -TrustedApplicationPoolFqdn CMS.UC.local -Port 5061

Microsoft环境当前配置为接受呼叫，但无法回叫，也无法发送网关呼叫演示。要纠正此问题，我们需要添加静态路由。在单个CallBridge场景中，我们只需一条路由即可允许所有呼叫到我们的UC.local域。在以下命令中，Destination是我们要向其发送SIP请求的CallBridge的FQDN。MatchURI字段是应使用的URI的域部分。请注意，在Lync/Skype环境中，每个MatchURI只能创建一条静态路由。

$x1=New-CsStaticRoute -TLSRoute -Destination “CMS.UC.local" -MatchUri “UC.local" -Port 5061 -UseDefaultCertificate $true

Set-CsStaticRoutingConfiguration -Identity global -Route @{Add=$x1}

最后，我们需要告诉Skype实施我们刚做的所有更改。

Enable-CsTopology

集群呼叫网桥

首先，我们需要告诉Skype信任我们的CallBridge群集。为此，我们添加一个受信任的应用池。在Microsoft术语中，“池”只是指“集群”。 集群的标识必须与CallBridge上使用的证书的公用名称匹配。 Microsoft将此用作安全检查。在SAN中拥有身份是不够的。如果公用名与Microsoft不匹配，则会断开TCP连接。使用此命令时，身份应为CallBridge FQDN。ComputerFqdn应是集群中第一个CallBridge的FQDN。通过指定ComputerFqdn，您向Lync/Skype环境指示，此群集不是仅包含单个服务器的群集。注册器应是为这些连接提供服务的前端池的FQDN。站点应是Lync/Skype站点标识符。如果您不确定注册器或站点应使用的值，请联系您的Lync/Skype管理员。

New-CsTrustedApplicationPool -Identity CMS.UC.local -ComputerFqdn CMS1.UC.local -Registrar fe.skype.local -site 1 -RequiresReplication $false -ThrottleAsServer $true -TreatAsAuthenticated $true

在此环境中，我们需要将两个CallBridge添加为受信任应用计算机。在上面创建受信任应用池时，已添加第一个CallBridge。添加这些计算机时，我们需要将其与刚创建的池关联。这告诉Skype，我们的群集中有需要信任的其他计算机。此处的所有计算机身份都需要在CallBridge证书中列为SAN。 这些标识还必须与CallBridge中出站拨号规则中的联系人报头匹配。如果不匹配，Microsoft将断开TCP连接。

New-CsTrustedApplicationComputer -Identity CMS2.UC.local -Pool CMS.UC.local

New-CsTrustedApplicationComputer -Identity CMS3.UC.local -Pool CMS.UC.local

接下来，必须配置Microsoft环境，以允许来自端口5061上CallBridge群集（受信任应用池）的入站通信。

New-CsTrustedApplication -ApplicationId AcanoApplication -TrustedApplicationPoolFqdn CMS.UC.local -Port 5061

Microsoft环境当前配置为接受呼叫，但无法回叫，也无法发送网关呼叫演示。要纠正此问题，我们需要添加静态路由。首先，我们需要添加静态路由以允许所有呼叫到UC.local域。在以下命令中，Destination是我们要向其发送SIP请求的CallBridge的FQDN。MatchURI字段是应使用的URI的域部分。请注意，在Lync/Skype环境中，每个MatchURI只能创建一条静态路由。由于目标是CallBridge群集的FQDN，并且它有一个DNS A记录，用于群集Lync/Skype的每个成员都可以将流量发送到我们的所有CallBridge。因此，如果一个发生故障，它可以自动将域的请求路由到集群中的另一个CallBridge。

$x1=New-CsStaticRoute -TLSRoute -Destination “CMS.UC.local" -MatchUri “UC.local" -Port 5061 -UseDefaultCertificate $true

Set-CsStaticRoutingConfiguration -Identity global -Route @{Add=$x1}

接下来，我们需要为集群中的每个CallBridge创建额外的静态路由。这是回叫和演示工作的要求。

$x2=New-CsStaticRoute -TLSRoute -Destination “CMS1.UC.local" -MatchUri “CMS1.UC.local" -Port 5061 -UseDefaultCertificate $true

Set-CsStaticRoutingConfiguration -Identity global -Route @{Add=$x2}

$x3=New-CsStaticRoute -TLSRoute -Destination “CMS2.UC.local" -MatchUri “CMS2.UC.local" -Port 5061 -UseDefaultCertificate $true

Set-CsStaticRoutingConfiguration -Identity global -Route @{Add=$x3}

$x4=New-CsStaticRoute -TLSRoute -Destination “CMS3.UC.local" -MatchUri “CMS3.UC.local" -Port 5061 -UseDefaultCertificate $true

Set-CsStaticRoutingConfiguration -Identity global -Route @{Add=$x4}

最后，我们需要告诉Skype实施我们刚做的所有更改。

Enable-CsTopology

故障排除

从CMS收集日志

诊断任何问题的第一步是确定问题所在。为此，我们需要分析来自思科会议服务器的日志，但首先需要收集日志。以下是我对要收集的日志的个人建议。

首先，通过WebAdmin界面为所有CallBridge启用SIP和DNS调试。为此，请导航至WebAdmin，然后导航至Logs > Detailed Tracing。在此处启用SIP和DNS日志记录，持续30分钟。这应该足够的时间来捕获和诊断问题。请记住，这需要针对所有CallBridge单独完成，因为日志启用不会在集群中共享。

其次，在所有CallBridge上启用数据包捕获。要通过SSH连接到每个CallBridge并运行命令pcap <interface>，其中<interface>是接口流量应使用的命令。在大多数情况下，这将是接口a。因此，命令“pcap a”将在接口a上为我们连接的CallBridge启动数据包捕获。

数据包捕获在所有接口上运行后，下一步是产生问题。继续尝试呼叫，或者做任何失败的事。完成后，将终止所有数据包捕获。这可以通过在所有SSH窗口中输入Ctrl-C来完成。数据包捕获完成后，生成的文件的名称将写入屏幕。跟踪此文件名，因为我们需要在下一步中下载它。

最后，我们需要从CallBridges收集日志。为此，请通过SFTP连接到每个CallBridge。下载文件logbundle.tar.gz和生成的数据包捕获文件。此文件仅在CMS2.2+中可用。在CMS版本2.3+中，它将包括CMS的完整配置。如果运行版本2.2，则不会包含入站/出站规则，因此最好对这些页面以及Lync Edge设置进行屏幕截图以供参考。确保将收集的日志/屏幕截图存储在名称与从中提取日志的CallBridge匹配的单独文件夹中。这有助于确保日志不会混乱。

查看Lync/Skype配置

在排除Lync/Skype配置故障时，这些命令将非常有用。本文档中提供用于创建和查看配置的命令，但不提供用于删除配置的命令。这是因为删除配置可能很危险，除非管理员完全了解Lync/Skype环境。如果您需要删除配置，请与Lync/Skype管理员一起执行此操作。

命令

描述

Get-CsTrustedApplicationPool

此命令列出Lync/Skype信任的群集（池）。此池的标识必须与CallBridge证书的公用名称匹配。 即使在单个CallBridge环境中，也必须在此处指定一个的CallBridge集群（池）。

Get-CsTrustedApplicationComputer

此命令列出Lync/Skype信任的服务器以及这些服务器关联的池。此处的所有计算机必须在CallBridges发送的证书中标识。在单个CallBridge环境中，这通常是通用名称。在群集环境中，这些计算机必须列为主题备用名称(SAN)条目。此外，此处的所有计算机必须由CallBridge出站拨号规则上的本地联系域条目标识。

Get-CsTrustedApplication

此命令列出允许与哪些服务受信任应用池通信。对于与Lync/Skype的CMS通信，我们将使用TCP端口5061进行TLS加密SIP。

Get-CsStaticRoutingConfiguration | Select-Object -ExpandProperty路由

此命令列出Lync/Skype用于转发请求的静态路由。MatchURI字段是SIP消息的目标域。XML中的“TLS Fqdn”字段应显示此流量的目标服务器。

Lync/Skype Get命令的示例输出

以下是本文档所涵盖的三个CallBridge集群场景中发出的上述Lync/Skype Get命令的输出

PS C:\Users\administrator.SKYPE> Get-CsTrustedApplicationPool

Identity             : TrustedApplicationPool:CMS.UC.local

Registrar            : Registrar:lyncpoolfe01.skype.local

FileStore            :

ThrottleAsServer     : True

TreatAsAuthenticated : True

OutboundOnly         : False

RequiresReplication  : False

AudioPortStart       :

AudioPortCount       : 0

AppSharingPortStart  :

AppSharingPortCount  : 0

VideoPortStart       :

VideoPortCount       : 0

Applications         : {urn:application:acanoapplication}

DependentServiceList : {}

ServiceId            : 1-ExternalServer-1

SiteId               : Site:RTP

PoolFqdn             : CMS.UC.local

Version              : 7

Role                 : TrustedApplicationPool

PS C:\Users\administrator.SKYPE> Get-CsTrustedApplicationComputer

Identity : CMS1.UC.local

Pool     : CMS.UC.local

Fqdn     : CMS1.UC.local

Identity : CMS2.UC.local

Pool     : CMS.UC.local

Fqdn     : CMS2.UC.local

Identity : CMS3.UC.local

Pool     : CMS.UC.local

Fqdn     : CMS3.UC.local

PS C:\Users\administrator.SKYPE> Get-CsTrustedApplication

Identity                   : CMS.UC.local/urn:application:acanoapplication

ComputerGruus              : {CMS1.UC.local sip:CMS1.UC.local@skype.local;gruu;opaque=srvr:acanoapplication:GMqDXW_1rVCEMQi4qS6ZxwAA, CMS2.UC.local

sip:CMS2.UC.local@skype.local;gruu;opaque=srvr:acanoapplication:_Z9CnV49LFufGDXjnFFi4gAA, CMS3.UC.local sip:CMS3.UC.local@skype.local;gruu;opaque=srvr:acanoapplication:dt8XJKciSlGhEeT62tyNogAA}

ServiceGruu                : sip:CMS.UC.local@skype.local;gruu;opaque=srvr:acanoapplication:dQFM4E4YgV6J0rjuNgqxIgAA

Protocol                   : Mtls

ApplicationId              : urn:application:acanoapplication

TrustedApplicationPoolFqdn : CMS.UC.local

Port                       : 5061

LegacyApplicationName      : acanoapplication

PS C:\Users\administrator.SKYPE> Get-CsStaticRoutingConfiguration | Select-Object -ExpandProperty Route

Transport               : TransportChoice=Certificate=Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.UseDefaultCert;Fqdn=CMS.UC.local;Port=5061

MatchUri                : UC.local

MatchOnlyPhoneUri       : False

Enabled                 : True

ReplaceHostInRequestUri : False

Element                 : <Route xmlns="urn:schema:Microsoft.Rtc.Management.Settings.SipProxy.2008" MatchUri="UC.local" MatchOnlyPhoneUri="false" Enabled="true" ReplaceHostInRequestUri="false">

<Transport Port="5061">

<TLS Fqdn="CMS.UC.local">

<UseDefaultCert />

</TLS>

</Transport>

</Route>

Transport               : TransportChoice=Certificate=Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.UseDefaultCert;Fqdn=CMS1.UC.local;Port=5061

MatchUri                : CMS1.UC.local

MatchOnlyPhoneUri       : False

Enabled                 : True

ReplaceHostInRequestUri : False

Element                 : <Route xmlns="urn:schema:Microsoft.Rtc.Management.Settings.SipProxy.2008" MatchUri="CMS1.UC.local" MatchOnlyPhoneUri="false" Enabled="true" ReplaceHostInRequestUri="false">

<Transport Port="5061">

<TLS Fqdn="CMS1.UC.local">

<UseDefaultCert />

</TLS>

</Transport>

</Route>

Transport               : TransportChoice=Certificate=Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.UseDefaultCert;Fqdn=CMS2.UC.local;Port=5061

MatchUri                : CMS2.UC.local

MatchOnlyPhoneUri       : False

Enabled                 : True

ReplaceHostInRequestUri : False

Element                 : <Route xmlns="urn:schema:Microsoft.Rtc.Management.Settings.SipProxy.2008" MatchUri="CMS2.UC.local" MatchOnlyPhoneUri="false" Enabled="true" ReplaceHostInRequestUri="false">

<Transport Port="5061">

<TLS Fqdn="CMS2.UC.local">

<UseDefaultCert />

</TLS>

</Transport>

</Route>

Transport               : TransportChoice=Certificate=Microsoft.Rtc.Management.WritableConfig.Settings.SipProxy.UseDefaultCert;Fqdn=CMS3.UC.local;Port=5061

MatchUri                : CMS3.UC.local

MatchOnlyPhoneUri       : False

Enabled                 : True

ReplaceHostInRequestUri : False

Element                 : <Route xmlns="urn:schema:Microsoft.Rtc.Management.Settings.SipProxy.2008" MatchUri="CMS3.UC.local" MatchOnlyPhoneUri="false" Enabled="true" ReplaceHostInRequestUri="false">

<Transport Port="5061">

<TLS Fqdn="CMS3.UC.local">

<UseDefaultCert />

</TLS>

</Transport>

</Route>

PS C:\Users\administrator.SKYPE>

联系TAC

如果您在此实施中遇到错误，请联系思科TAC。打开服务请求时，请包含指向本文档的链接。它将帮助TAC工程师了解您的配置。此外，如果思科会议服务器日志按上述方式附加到案例，并且Lync/Skype前端的所有Get命令输出都输入到案例说明中，将会非常有用。如果您不包含此信息，则TAC工程师首先要求您提供的信息肯定是其中之一，因此请在提交您的案例之前收集信息。