本文說明如何將共用 NPS 設定為使用 NPS 驗證 Proxy,以便它也可以用來將呼叫通知推送至 Webex 應用程式。如果您的 NPS 不支援其他應用程序,您可以按照 Webex for BroadWorks 解決方案指南中的簡化步驟進行操作。

NPS Proxy 概觀

為了與 Webex for BroadWorks 相容,您的 NPS 必須經過修補以支援 NPS Proxy 功能:Push Server for VoIP in UCaaS

此功能會在通知推送伺服器中進行新設計以解決與行動用戶端的服務提供者共用推送通知憑證私密金鑰的安全弱點。NPS 不再與服務提供者共用推播通知憑證和金鑰,而是使用新的 API 從 UCaaS 後端取得短期推播通知令牌,並使用此令牌透過 Apple APN 和 Google FCM 服務進行驗證。

此功能還加強了通知推送伺服器透過新的 Google Firebase 雲訊息傳遞 (FCM) HTTPv1 API 將通知推送至 Android 裝置的功能。

託管 NPS 的 XSP(或應用程式遞送平台 ADP)必須符合下列要求:

最低版本和共駐限制

  • NPS 必須在專用 XSP/ADP 上啟動,NPS 必須是伺服器上唯一託管的應用程式。這是為了消除遞送推送通知的干擾。

  • 部署中只應有一個 NPS 應用程式。如果正在使用行動裝置版 UC-One Collaborate/Connect 及/或 UC-One SaaS,並且正在實施 Webex for BroadWorks,您必須針對所有應用程式共用這個單一的 NPS。

  • NPS 必須位於 R22 版或更高版本的 XSP 或 ADP 上。

    如果 XSP 執行 NPS 且 AS 為 R21.SP1,則 R22/R23 XSP 與 R21 堆疊相容。如需相關資訊,請參閱 BroadWorks 相容性矩陣

  • 有關 ADP 伺服器的更多信息,請參閱 Cisco BroadWorks 應用程式交付平台

共用 NPS

在將共用 NPS 設定為使用 NPS Proxy 之前,請閱讀下列注意事項:

  • 如果您的 NPS 與其他應用程式一起使用(不僅僅是 Webex 應用程式):首先設定 NPS Proxy,然後將 NPS 從使用 FCM 舊 API 變更為使用 FCM HTTP v1 API。

  • 在您驗證了使用 NPS 代理程式的舊應用程式的通知正常運作後,請刪除 Android 應用程式的 FCM API 金鑰和 iOS 應用程式的 APNs 驗證金鑰。

APNS HTTP/2

  • 如果你部署了任何非來自 Cisco/BroadSoft, 配置這些應用程式以使用 HTTP/2 在設定 NPS 以使用 NPS 代理之前,請先使用 APNS 協定。

  • 已支援 Collaborate 或 SaaS BroadWorks 應用程式的 XSP/ADP 必須移轉為使用 HTTP/2。如需設定 HTTP/2 的詳細資訊,請參閱 HTTP/2 對 APNS 通知推送伺服器的支援(本文彙總了如何移轉 NPS 以支援這些 iOS 應用程式)。

Android FCMv1

  • 如果你部署了任何非來自 Cisco/BroadSoft, 在配置 NPS 以使用 NPS 代理之前,請先設定這些應用程式以使用 FCMv1 金鑰。

  • 如果 XSP/ADP 目前支援 Connect 或 UC-One SaaS 應用程序,然後在配置 NPS代理後啟用 FCMv1金鑰。我們建議您將所有其他應用程式遷移到 FCMv1 金鑰,啟用並測試,然後停用,直到您準備好完成設定說明(遷移流程記錄在本文中)。

移轉至 NPS 驗證 Proxy 的視覺化摘要
表 1. 要移轉至 NPS Proxy 的任務摘要

序列

任務標題

何時/為何需要任務?

1

針對 UC-One SaaS(或 Connect)iOS 應用程式,將 NPS 移轉為使用 HTTP/2。

如果 NPS 支援這些應用程式,但尚未將其設定為使用 HTTP/2。

2

針對 UC-One SaaS(或 Connect)Android 應用程式,將 NPS 移轉為使用 FCMv1。

如果 NPS 支援這些應用程式,但尚未將其設定為使用 FCMv1。

3

啟用 FCMv1 模式,然後測試推送通知。

如果 NPS 支援 UC-One Connect 和/或其他(非 Cisco)Android 應用程式。

4

重新啟用 FCM 舊模式。

如果 NPS 支援 UC-One SaaS。如果您在設定 NPS Proxy 之前將 FCMv1 保留為啟用狀態,則將通知推送至 UC-One SaaS 會失敗。

5

安裝 NPS 驗證 Proxy 修補程式。

如果 NPS 在 XSP R22 或 XSP R23 上。

6

將 NPS 設定為使用 NPS 驗證 Proxy:

  • 從 NPS 附加技術支援

  • 申請 CI OAuth 帳戶

  • 在 NPS 上建立 CI 帳戶並設定重新整理權杖逾時值

  • 新增 Android 應用程式 ID

  • 新增 iOS 應用程式 ID

  • 檢查/設定 URL 和連線逾時值

  • 將應用程式新增至 AS 允許清單

  • (重新)啟用 FCMv1

  • 重新啟動 XSP / ADP

  • 測試 iOS 和 Android 版應用程式的 PNS

始終需要。

7

移除 FCM 舊模式金鑰。

適用於 FCMv1 上的 NPS 成功支援的應用程式。

在 iOS 平台上,若要向 UC-One SaaS 和 Webex 應用程式推送通知,必須執行此任務。

在開始之前

如果您的 XSP 執行的是 R22,您需要先套用 ap354313,然後才能設定 NPS 應用程式以針對 APNS 使用 HTTP/2。

1

設定生產 URL 和連接參數,網址為: XSP_CLI/Applications/NotificationPushServer/APNS/Production>

set url https://api.push.apple.com/3/device

set connectionPoolSize 2

set connectionTimeout 3000

set connectionIdleTimeoutInSeconds 600

附註: 請勿將連線逾時值設定在 1000 以下。

2

在 APNS 應用程式環境中新增應用程式 ID,確保省略驗證金鑰(將其設為空白)。

對於 UC-One SaaS:XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.broadsoft.uc-one

對於 Webex 應用程式: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

3

檢查驗證金鑰 XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> get

4

如果 com.broadsoft.uc-one的授權金鑰不為空,則可以使用 XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> clear the-authkey清除它

5

啟用 HTTP/2:

XSP_CLI/Applications/NotificationPushServer/APNS/GeneralSettings> set HTTP2Enabled true

6

僅適用於 UC-One SaaS 應用程式:登入經銷商入口網站並前往 配置 > BroadWorks > .

7

向下捲動至通知推播伺服器部分,然後選擇您的版本(例如版本 22),然後按照入口網站中提供的說明進行操作。

  • 此任務適用於 XSP 上的 NPS。如果您的 NPS 位於 ADP 上,請忽略此任務。

  • 對於 UC-One Connect 或 UC-One SaaS Android 應用程式,您可以使用此程序來移轉至 FCMv1 通知。

  • 如果您想要使用 NPS Proxy 來驗證 UC-One 或 Webex Android 應用程式的推送通知,則必須使用 FCMv1。

  • 此任務為 FCMv1 準備 NPS,以便您能夠在設定 NPS 驗證 Proxy 的過程中啟用 FCMv1。在可以設定 NPS 驗證 Proxy 之前,請勿啟用 FCMv1,否則向 SaaS 用戶端推送通知將會失敗。

1

從 Firebase 主控台取得專案 ID:

  1. 重新登入 console.firebase.google.com。

  2. 選取 UC-One(Connect 或 SaaS)應用程式專案,開啟其專案設定。

  3. 開啟一般標籤並記錄專案 ID。

2

從 Firebase 取得服務帳戶的私密金鑰:

  1. 導覽至專案設定中的服務帳戶標籤。

  2. 建立新服務帳戶並取得其私密金鑰。

  3. 或者開啟現有服務帳戶並為此帳戶產生新的私密金鑰。

    附註: 服務帳戶必須具有 firebaseadmin-sdk 權限。

  4. 將金鑰下載至安全位置。

3

將金鑰複製到託管 NPS 的 XSP 中。

4

將專案 ID 及關聯的私密金鑰新增至 FCM 專案環境中:

XSP_CLI/Applications/NotificationPushServer/FCM/Projects> add project-id path/to/keyfile

5

將 UC-One(Connect 或 SaaS)應用程式和關聯的專案 ID 新增至 FCM 應用程式環境中:

XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add applicationId com.broadsoft.connect projectId project-id

6

根據以下所示的屬性及建議值來檢查 FCM 的設定。如果需要,請使用 set 版本的命令來更改值:

執行 XSP_CLI/Applications/NotificationPushServer/FCM> get

參數

建議的值

authURL

https://www.googleapis.com/oauth2/v4/token

pushURL

https://fcm.googleapis.com/v1/projects/PROJECT-ID/messages:send

scope

https://www.googleapis.com/auth/firebase.messaging

tokenTimeToLiveInSeconds

3600

connectionPoolSize

10

connectionTimeoutInMilliseconds

3000

connectionIdleTimeoutInSeconds

600

  • 此任務適用於 ADP 上的 NPS。如果您的 NPS 位於 XSP 上,請忽略此任務。

  • 對於 UC-One Connect 或 UC-One SaaS Android 應用程式,您可以使用此程序來移轉至 FCMv1 通知。

  • 如果您想要使用 NPS Proxy 來驗證 UC-One 或 Webex Android 應用程式的推送通知,則必須使用 FCMv1。

  • 此任務為 FCMv1 準備 NPS,以便您能夠在設定 NPS 驗證 Proxy 的過程中啟用 FCMv1。在可以設定 NPS 驗證 Proxy 之前,請勿啟用 FCMv1,否則向 SaaS 用戶端推送通知將會失敗。

1

從 Firebase 主控台取得專案 ID:

  1. 重新登入 console.firebase.google.com。

  2. 選取 UC-One(Connect 或 SaaS)應用程式專案,開啟其專案設定。

  3. 開啟一般標籤並記錄專案 ID。

2

從 Firebase 取得服務帳戶的私密金鑰:

  1. 導覽至專案設定中的服務帳戶標籤。

  2. 建立新服務帳戶並取得其私密金鑰。

  3. 或者開啟現有服務帳戶並為此帳戶產生新的私密金鑰。

    附註: 服務帳戶必須具有 firebaseadmin-sdk 權限。

  4. 將金鑰(.json 檔)下載至安全位置。

3

將.json檔案匯入到ADP伺服器 /bw/install

4

登入 ADP CLI,並將專案與 API 金鑰新增至 FCM 專案環境中:

ADP_CLI/Applications/NotificationPushServer/FCM/Projects> add connect-ucaas /bw/install/filename.json

5

將應用程式和專案 ID 新增至 FCM 應用程式環境中:

ADP_CLI/Applications/NotificationPushServer/FCM/Applications> add applicationId com.broadsoft.ucaas.connect projectId project-id

6

驗證您的設定:

ADP_CLI/Applications/NotificationPushServer/FCM/Projects> get
Project ID Accountkey
========================
connect-ucaas ********
ADP_CLI/Applications/NotificationPushServer/FCM/Applications> get
Application ID Project ID
===================================
com.broadsoft.ucaas.connect connect-ucaas

只有在以下情況下,您才需要在移轉過程中執行此操作:

  • 您的 NPS 用於 UC-One SaaS 或 BroadWorks Connect Android 應用程式。

  • 您使用 FCMv1 API 測試過其他應用程式的呼叫推送通知是否有效。

您將暫時停用 FCMv1,因為只能在 NPS 驗證 Proxy 設定過程中才能啟用這些應用程式的 FCMv1 金鑰。

1

登入託管共用 NPS 的 XSP。

2

導覽至 FCM 環境並停用 FCM v1:XSP_CLI/Applications/NotificationPushServer/FCM> set V1enabled false 以還原為使用 FCM 舊 API 金鑰。

1

向加入合作夥伴的廠商聯絡人或向 TAC 申請服務來佈建您的 (Webex Common Identity) OAuth 用戶端帳戶。將您的服務申請標題定為驗證 Proxy 設定的 NPS 設定

我們為您提供一個 OAuth 用戶端 ID、一個客戶端金鑰和一個有效期為 60 天的刷新令牌。如果權杖在 NPS 使用之前過期,您可另外提出申請。
2

在 NPS 上建立用戶端帳戶:

XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client> set clientId client-Id-From-Step1

XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client> set clientSecret
New Password: client-Secret-From-Step1

XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client> set RefreshToken
New Password: Refresh-Token-From-Step1

執行命令來驗證您輸入的值是否與提供給您的值相符。 XSP_CLI/Applications/NotificationPushServer/CiscoCI/Client> get

3

輸入 NPS Proxy URL,並設定權杖重新整理間隔(建議設為 30 分鐘):

XSP_CLI/Applications/NotificationPushServer/CloudNPSService> set url https://nps.uc-one.broadsoft.com/nps/

為了提高 DNS 解析速度,我們建議您使用根據您的地區適當的 FQDN,而不是目前的 FQDN nps.uc-one.broadsoft.com。

基於區域的 FQDN:

美國東部:

XSP_CLI/Applications/NotificationPushServer/CloudNPSService> set url https://broadworks-idp-proxy-a.wbx2.com/nps/

美國西部:

XSP_CLI/Applications/NotificationPushServer/CloudNPSService> set url https://broadworks-idp-proxy-r.wbx2.com/nps/

歐洲:

XSP_CLI/Applications/NotificationPushServer/CloudNPSService> set url https://broadworks-idp-proxy-k.wbx2.com/nps/

XSP_CLI/Applications/NotificationPushServer/CloudNPSService> set VOIPTokenRefreshInterval 1800

如果由於 DNS 解析延遲導致推播通知逾時,請增加 "/etc/resolv.conf" BroadWorks 伺服器上的檔案。

4

(對於 Android 通知)在 NPS 上的 FCM 應用程式環境中新增 Android 應用程式 ID。

對於 Android 上的 Webex 應用程式: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add com.cisco.wx2.android

對於 Android 上的 UC-One 應用程式: XSP_CLI/Applications/NotificationPushServer/FCM/Applications> add com.broadsoft.connect

5

(針對 Apple iOS 通知)新增應用程式 ID 至 APNS 應用程式內容,請務必省略驗證金鑰 – 將其設為空白。

對於 iOS 上的 Webex 應用程式: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

對於 iOS 版 UC-One 應用程式: XSP_CLI/Applications/NotificationPushServer/APNS/Production/Tokens> add com.cisco.squared

6

設定下列 NPS URL:

XSP CLI 上下文

參數

XSP_CLI/Applications/NotificationPushServer/FCM>

authURL

https://www.googleapis.com/oauth2/v4/token

pushURL

https://fcm.googleapis.com/v1/projects//messages:send

scope

https://www.googleapis.com/auth/firebase.messaging

XSP_CLI/Applications/NotificationPushServer/APNS/Production>

url

https://api.push.apple.com/3/device

7

將下列 NPS 連線參數設為所示的建議值:

XSP CLI 內容

參數

XSP_CLI/Applications/NotificationPushServer/FCM>

tokenTimeToLiveInSeconds

3600

connectionPoolSize

10

connectionTimeoutInMilliseconds

3000

connectionIdleTimeoutInSeconds

600

XSP_CLI/Applications/NotificationPushServer/APNS/Production>

connectionTimeout

3000

connectionPoolSize

2

connectionIdleTimeoutInSeconds

600

8

確認應用程式伺服器是否會篩選應用程式 ID,因為您可能需要將 Webex 應用程式新增到允許清單中:

  1. 運行 AS_CLI/System/PushNotification> get 並檢查 enforceAllowedApplicationList的值。如果是 true,則需要完成該子任務。若不是,請跳過此子工作項目的其餘部分。

  2. AS_CLI/System/PushNotification/AllowedApplications> add com.cisco.wx2.android “Webex Android”

  3. AS_CLI/System/PushNotification/AllowedApplications> add com.cisco.squared “Webex iOS”

1

重新啟動 XSP:

bwrestart
2

從 BroadWorks 訂閱者向 Android 版通話用戶端發起呼叫,以測試 Android 裝置的呼叫通知。驗證呼叫通知是否出現在 Android 裝置上。

附註: 如果向 UC-One Android 應用程式推送通知失敗,則可能是設定出錯。如果是這種狀況,您可以回復至舊版 FCM,如下所示:

  1. 停用 FCMv1: XSP_CLI/Applications/NotificationPushServer/FCM> set V1Enabled false

  2. 重新啟動 XSP: bwrestart

  3. 檢查您的設定。

  4. 重新啟用 FCMv1 並重新啟動 XSP。

  5. 重複該測試。

3

從 BroadWorks 訂閱者向 iOS 版通話用戶端發起呼叫,以測試 iOS 裝置的呼叫通知。驗證呼叫通知是否出現在 iOS 裝置上。

附註: 如果向 UC-One iOS 應用程式推送通知失敗,則可能是設定出錯。如果這是您的狀況,您可以還原為使用 舊版二進位介面 set HTTP2Enabled false