はじめに
Jabber / Webex App 等の VoIP クライアントでは、モバイル端末のOS(Apple iOS、Google Android)の仕様変更に伴い着信方式の変更が行われてきました。
このドキュメントでは、以下の3つの着信方式についてを比較します。
・VoIPソケットによる着信
・クラウド(APNs、FCM)経由のPush通知による着信
・Apple社のLocal Push Connectivity機能のPush通知による着信
1.VoIPアプリの着信方式の変遷
Jabber (iPhone/Android)では、当初はVoIPソケットでの着信方式(図1)が採用されていました。この方式では、アプリがバックグラウンド状態でも、一定間隔でSIP Keepaliveの処理が行われ、SIPチャンネルが維持されます。アプリへの着信時、Unified CMは維持されているSIPチャンネルでINVITEを送信し、VoIP通信が開始されます。この方式は、SIP Keepalive 処理のためにバッテリーが消費されることが問題視され、Apple iPhoneでは廃止されました。Androidの場合も、同様の理由で廃止される予定です。
図1.VoIPソケットによる着信
次に利用された着信方式が、クラウド(APNs / FCM)経由のPush通知による着信(図2)です。
この方式ではアプリがバックグラウンド状態の時に、SIPチャンネルは切断されSIP Keep Aliveによる電力消費は削減されます。
コール着信時、Unified CMからのPush通知によりアプリがフォアグラウンドに復帰しVoIP通信が行われます。Push通知は、Unified CMからCisco Collaboration Cloud、APNs / FCMを経由してモバイル端末(アプリ)に送信されます。
図2.クラウド経由のPush通知による着信
Internet に接続できない端末( iPhone) でPush通知を利用できるように開発されたのが、Apple社のLocal Push Connectivity 機能です。Jabber / Webex Appでは、Local Push Connectivity機能をVoIPコールの着信に利用できます。
この方式でもアプリがバックグラウンド状態の時に、SIPチャンネルは切断されSIP Keep Aliveによる電力消費は削減されます。コール着信時、Unified CMからのPush通知によりアプリがフォアグラウンドに復帰しVoIP通信が行われます。Push通知は、Unifed CMとアプリ間に設定されたSecure Web Socket 接続を用いて送信されます。
図3.Local Push Connectivity 機能のPush通知による着信
2.着信方式の比較
下記の表に、3つの着信方式について、動作、動作環境、適用ユーザ等の観点での違いを整理します。
まとめ
Jabber / Webex App 等の VoIP アプリの着信方式は、モバイル端末のOS(Apple iOS、Google Android)の仕様変更に伴い変更が行われてきました。着信方式により、動作するネットワーク要件が異なるため、システム構築時には注意が必要です。システムに問題が発生した場合も、Push通知、VoIPコールの経路に注意してトラブルシューティングを行う必要があります。
参考情報
Apple Developer Document : API Collection: Local push connectivity
WWDC : Build local push connectivity for restricted networks …WWDC2020でのApple社の解説ビデオ
Push Notification Deployment Guide
Push Notifications Overview
Field Notice: FN74113 - Cisco Jabber, Webex, Unified Communications Manager IM & Presence Service, and Expressway Series Foreground Service Types on Android 14 Affect Incoming Calls and Messages - Software Upgrade Recommended
Apple Push Notification について
Jabber for iPhone の Push Notification 動作ついて
Jabber for iPhone の着信動作について (iOS13以降の新方式)
Jabber for iPhone で Push 通知 (着信) が届かない場合のトラブルシューティング方法