機能同期機能は、主に電話機の状態をサーバーの状態と一致させるために使用されます。同期方式は大きく2種類あり、1つはサブスクライブ/ノーティファイ機構に基づく方式、もう1つは機能コードを使用したINVITE呼び出しによる実装方式です。
本機能は、弊社電話機の全機種に対応します。
本資料は、電話機関連の障害対応を行う日常保守担当者向けの内容です。
まず、電話機側で機能同期機能を有効にする必要があります。既定では無効となっており、各機能はローカルで実行されます。
Web設定項目:
--SIP回線リスト-- :
SIP1 機能同期 :0
BroadSoftおよびMetaswitchは、いずれもサブスクライブ/ノーティファイ機構を介して同期を実装しています。機能同期を有効にすると、電話機は登録時に Event: as-feature-event を含むSUBSCRIBEメッセージをサーバーへ送信します。サーバーが本機能に対応している場合、200 OK で応答し、現在の状態を同期します。詳細は下記の通りです:
Fortinetも機能コードによる機能同期に対応しています。同じくサブスクライブ/ノーティファイ機構に依存しますが、機能同期の設定自体とは関連ありません。
3CX、Yeastar、その他大半のPBXシステム(動作確認済みのHuawei、ZTEのIMSサーバーを含む)は、INVITEリクエストを送信して機能コードを呼び出すことで本機能を実装しています。この方式は端末電話機の実装負荷が少なく、比較的簡素です。
① サーバー側で不在通知(DND)を有効/無効に切り替えた際、サーバーはDNDの状態(真/偽)を含むSIP NOTIFYメッセージを電話機へ送信します。電話機は受信後に 200 OK で応答し、対応してDNDを有効または無効にします。パケットキャプチャは下記の通りです:
② 電話機側で不在通知(DND)を有効/無効に切り替えた際、電話機はまずDND状態(真/偽)を含むSUBSCRIBEメッセージをサーバーへ送信します。サーバーが 200 OK で応答し、DNDの切り替えが完了すると、サーバーはDNDの最新状態(真/偽)を含むSIP NOTIFY確認メッセージを電話機へ返信します。電話機は再度 200 OK で応答します。パケットキャプチャは下記の通りです:
1. 無条件転送
電話機とBroadSoftサーバー間で、無条件転送の有効/無効状態および転送先番号を同期できます。
① サーバー側で無条件転送の有効/無効を切り替え、転送先番号を設定した場合、サーバーは無条件転送の状態(真/偽)と転送先番号を含むSIP NOTIFYメッセージを電話機へ送信します。電話機は受信後 200 OK で応答し、設定に従い無条件転送を切り替え、転送先番号を同期します。
② 電話機側で無条件転送を切り替えた際、電話機は無条件転送の状態(真/偽)を含むSUBSCRIBEメッセージをサーバーへ送信します。サーバーが 200 OK で応答し、無条件転送の切り替えが完了すると、サーバーは最新の設定状態(真/偽)を含むSIP NOTIFY確認メッセージを返信し、電話機は 200 OK で応答します。パケットキャプチャは下記の通りです:
2. 話中転送
電話機とBroadSoftサーバー間で、話中転送機能の状態および転送先番号を同期できます。
① サーバー側で話中転送を切り替え、転送先番号を設定した場合、サーバーは話中転送の状態(真/偽)と転送先番号を含むSIP NOTIFYメッセージを送信します。電話機は 200 OK で応答し、機能を切り替えて番号を同期します。
② 電話機側で話中転送を変更した場合、電話機は話中転送の状態(真/偽)を記載したSUBSCRIBEメッセージをサーバーへ送信します。サーバーが 200 OK 応答後、設定反映完了時に確認用NOTIFYメッセージを送信し、電話機は 200 OK で応答します。パケットキャプチャは下記の通りです:
3. 無応答転送
電話機とBroadSoftサーバー間で、無応答転送の有効状態と転送先番号を同期します。
① サーバー側で無応答転送を切り替え番号を設定すると、サーバーは状態(真/偽)と転送番号を含むNOTIFYメッセージを送信し、電話機は 200 OK で応答し設定を反映します。
② 電話機側で無応答転送を切り替えた際、電話機は無応答転送の状態(真/偽)のSUBSCRIBEメッセージをサーバーへ送信します。サーバーの 200 OK 応答後、サーバーは確認用NOTIFYを返信し、電話機は 200 OK で応答します。パケットキャプチャは下記の通りです:
② 電話機側で無応答転送を有効/無効にした場合、電話機は無応答転送の状態(真/偽)を含むSUBSCRIBEをサーバーへ送信します。サーバーが 200 OK 応答後、設定変更完了時に状態通知用NOTIFYを送信し、電話機は 200 OK で応答します。パケットキャプチャは下記の通りです:
① サーバー側DNDの有効/無効切り替え(BroadSoftと同一のパケットフロー)
② 電話機側DNDの有効/無効切り替え(BroadSoftと同一のパケットフロー)
1. 無条件転送(BroadSoftと同一のパケットフロー)
① サーバー側で無条件転送を設定変更
② 電話機側で無条件転送を設定変更
2. 無応答転送(BroadSoftと同一のパケットフロー)
① サーバー側
② 電話機側
3. 話中転送(BroadSoftと同一のパケットフロー)
① サーバー側
② 電話機側
Fortinetサーバーは、機能コードを介して電話機と状態を同期します。
サーバー側で状態を変更した場合、DNDの状態を含むNOTIFYメッセージを電話機へ送信します。
電話機側で状態を変更した場合、DND状態を記載したSUBSCRIBEメッセージをサーバーへ送信します。
転送設定についても、同様のロジックが適用されます。
3CX、Yeastarなどのサーバーで機能同期を有効にした場合、電話機からサーバーへの一方通行で状態が同期され、サーバーから電話機へ状態変更をプッシュすることはできません。制限はあるものの、実装が簡素で一般的な運用要件を満たします。
機能同期を有効にした後、各機能に対応する機能コードを個別に設定する必要があります。詳細は下記の通り:
電話機側でDNDを切り替えると、電話機はINVITEメッセージをサーバーへ送信し、状態の同期を通知します。
注釈:
3CXサーバーは後にuaCSTA機能に対応したため、サーバー側でDNDを有効にした際、uaCSTA Infoメッセージで電話機へ状態を通知可能となりました。ただし、現在の仕様では、本メッセージを使用した電話機の状態更新には対応しておりません。