此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍如何配置Cisco Meeting Server(CMS)CallBridge集群,并将Skype for Business作为官方指南的补充。本文档提供单个CallBridge的示例和三个CallBridge集群的另一个示例,但可以根据需要添加其他CallBridge。还支持两个CallBridge集群。
作者:Rogelio Galindo,由Cisco TAC工程师Viridiana Fuentes编辑。
Cisco 建议您了解以下主题:
表1a提供了单个CallBridge环境的CallBridge证书示例。
表1a
CallBridge证书 | 描述 |
单个CallBridge | |
CN:cms.uc.local | CallBridge FQDN |
表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
表2a提供了如何配置DNS服务器的示例。它说明了每个字段的含义。
表2a
A 记录 | IP示例 | 描述 |
cms.uc.local | 10.10.10.1 | CallBridge |
fe.skype.local | 10.10.10.5 | Skype前端完全限定域名(FQDN) |
表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媒体加密必须设置为允许。
表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,因此可以将每个域设置为使用直通作为其呼叫方ID。在群集环境中无法执行此操作,因为它将中断演示文稿共享。
此外,域Skype.local的呼叫匹配规则将“目标Lync”设置为true。这意味着,如果我们通过PSTN拨入号码呼叫Lync/Skype会议,我们应能以双主呼叫方式连接。
在此环境中,我们使用由三个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的完全限定域名指定为本地联系域,Lync/Skype将出于安全原因拒绝呼叫。由于我们的传入转发规则设置为使用传递,因此在本例中,我们实际上不会重写来自域的。
在此环境中,我们使用由三个CallBridge组成的CallBridge集群。因此,我们需要为每个CallBridge设置一条出站规则,每个CallBridge具有不同的本地联系域、来自域的本地联系域和范围。只需一条出站规则即可将呼叫从所有CallBridge路由到Cisco Unified Communications Manager。要设置需要使用API的范围。
创建出站呼叫规则后,该规则的范围将设置为<all>。这意味着出站规则将用于集群中的所有CallBridge。对于指向Lync/Skype的出站规则,我们需要使用不同的联系人和信头,具体取决于我们所在的CallBridge。为此,我们需要为每个CallBridge创建不同的出站规则,其中联系人/发件人字段与该CallBridge匹配。使用API,我们需要设置这些出站拨号规则的范围,以便它们仅在匹配该规则的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。
使用我最喜爱的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域的每个出站规则都应具有范围。
在WebAdmin的常规配置页面中,有Lync Edge设置部分。要利用TURN服务或通过PSTN拨入号码加入双家庭会议,必须进行配置。
表6介绍Lync Edge设置配置中每个字段的含义。
表 6
Lync边缘设置字段 | 描述 |
服务器地址 | 前端池的完全限定域名(FQDN) |
用户名 | 要用于CMS的服务帐户的用户名。 |
注册数量 | 您要注册的不同用户帐户数。如果此处未配置值,则仅注册上面列出的用户名。如果在此处应用数字,则数字1-X将作为后缀应用到URI的用户部分,其中X是此字段中配置的数字。 |
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 WebAdmin的状态页面将显示Lync/Skype用户是否已成功注册。在以下示例中,我们只配置一个注册,并且它已成功完成。如果您注意到状态显示长时间进行的注册收集SIP和DNS日志,以确定失败的原因。
在Lync/Skype管理外壳中应用以下命令。在前端服务器上应用命令。
注意:建议的命令用于指导。如果您对Skype服务器上的配置有疑问,您需要联系您的Lync/Skype管理员和/或支持团队。
首先,我们需要让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
诊断任何问题的第一步是确定问题所在。为此,我们需要分析来自思科会议服务器的日志,但首先需要收集日志。以下是我对要收集的日志的个人建议。
首先,通过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管理员一起执行此操作。
命令 | 描述 |
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”字段应显示此流量的目标服务器。 |
以下是本文档所涵盖的三个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工程师了解您的配置。此外,如果思科会议服务器日志按上述方式附加到案例,并且Lync/Skype前端的所有Get命令输出都输入到案例说明中,将会非常有用。如果您不包含此信息,则TAC工程师首先要求您提供的信息肯定是其中之一,因此请在提交您的案例之前收集信息。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
12-Oct-2017 |
初始版本 |