SIPサーバーの冗長化メカニズムは、SIPサービスの信頼性と継続性を確保します。サーバーの主系・予備系構成は、その代表的な冗長化方式の一つです。主系サーバーと予備系サーバーは、ユーザーアカウント、サーバー冗長化方式の実装に依存するDialog情報、Registration情報などを共有します。通常状態では、すべてのSIPリクエストとレスポンスは主系サーバーが処理します。主系サーバーに障害、メンテナンス、または到達不能が発生した場合、SIP端末は自動的に予備系サーバーへ切り替えてサービスを要求し、ユーザー利用の継続性を確保します。主系サーバーが復旧すると、SIP端末は自動的に主系サーバーへ戻ってサービスを要求できます。
図1 SIP Server主系・予備系
Failover: 主系サーバーが利用できない場合、予備系サーバーが主系サーバーに代わってすべての業務を引き継ぎ、顧客の使用に影響を与えない仕組みです。
Failback: 予備系サーバーが動作している状態で、主系サーバーが復旧したかどうかを装置が検出し、迅速に主系サーバーへ戻る仕組みです。
Server Unavailable: クライアントが登録を要求し、Serverが500/503を返す場合、またはUDPで宛先到達不能のICMPを受信する場合、またはTCP接続がタイムアウトする場合を指します。
Register Failback: 主系サーバーが利用できず、電話機が予備系サーバーに登録されている場合、電話機が新しいRegister Dialogを作成し、主系サーバーが復旧したかを検出する仕組みです。この機能には独立した設定可能な検出周期があります。
本書は、Dial plan機能がどのように改善されるかを理解したい社内の研究開発またはテスト担当者を対象としています。
電話機のSIP回線に2つのServer情報を設定します。SIP Server1は主系サーバー、SIP Server2は予備系サーバーです。
電話機がFailoverをサポートするシグナリングはRegister、Invite、Byeです。その他は現在未対応です。
2.2.1 Register Failover
トリガー条件:手動登録 / 登録タイムアウト / OptionまたはCancelリクエストのタイムアウト
1) 電話機はRegisterシグナリングを主系サーバーへ送信します。
2) 電話機はV3製品では指定回数、V2製品では指定時間、主系サーバーへRegister送信を試行します。
3) 主系サーバーがUnavailableの場合、電話機はRegisterシグナリングを予備系サーバーへ送信します。
4) 予備系サーバーが200 OKを応答し、電話機の登録が成功します。
2.2.2 Invite Failover
トリガー条件:ユーザーが発信する場合
1) 電話機Aが電話機Bを呼び出します。
2) 電話機AはInviteリクエストを主系サーバーへ送信します。
3) 電話機AはV3製品では指定回数、V2製品では指定時間、主系サーバーへInvite送信を試行します。
4) 主系サーバーがUnavailableの場合、電話機はRegisterを予備系サーバーへ送信します。
5) 予備系サーバーは電話機へ200 OKを応答し、電話機は予備系サーバーへの登録に成功します。
6) 電話機はInviteリクエストを予備系サーバーへ送信します。
7) 予備系サーバーが200 OKを応答し、電話機AとBの通話が確立します。
2.2.3 Bye Failover
トリガー条件:電話機が主系サーバー経由で通話を確立した後、電話機が通話を終了する場合
1) 電話機Aは主系サーバー経由で電話機Bと通話を確立します。
2) 電話機Aが通話を終了します。
3) 電話機AはByeリクエストを主系サーバーへ送信します。
4) 電話機AはV3製品では指定回数、V2製品では指定時間、主系サーバーへBye送信を試行します。
5) 主系サーバーがUnavailableの場合、電話機はRegisterを予備系サーバーへ送信します。
6) 予備系サーバーは電話機へ200 OKを応答し、電話機は予備系サーバーへの登録に成功します。
7) 電話機はByeメッセージを予備系サーバーへ送信します。
8) 予備系サーバーが200 OKを応答し、電話機Bの通話が終了します。
2.2.4 Failover失敗
すべてのサーバーが利用できない場合、電話機は主系・予備系サーバーの優先順位に従って各サーバーを順番に試行します。V3製品では指定回数、V2製品では指定時間試行します。最後のサーバーは例外で、RFC3261に基づきSIPは64*T1、つまり32秒間試行します。その後、現在のSIPシグナリングリクエストは失敗し、結果がユーザーへ通知されます。
電話機は独立したRegister Failbackをサポートします。電話機が予備系サーバーへの登録に成功した後、定期的に独立Registerを主系サーバーへ送信し、主系サーバーが復旧したかを検出します。
トリガー条件:Register Failbackタイマーのタイムアウト。
1) 電話機が予備系サーバーへの登録に成功します。
2) Register Failbackがタイムアウトすると、電話機は独立Registerを主系サーバーへ送信します。
3) 主系サーバーが200 OKを応答し、電話機は主系サーバーへ切り替わります。
主系サーバーがまだ利用できない場合、電話機が送信したRegisterはRFC3261に基づいて再送され、64*T1、つまり32秒でタイムアウトします。タイムアウト後、タイマーが再起動し、主系サーバーを周期的に検出します。
| 設定項目名 | 説明 | 値 | |
| SIPN | Register Addr: | 主系サーバーアドレス。 | IP/ドメイン名 デフォルト値:空 |
| SIPN | Register Port: | 主系サーバーのサービスポート。 | 数値型 デフォルト値:5060 |
| SIPN | Register TTL: | 主系サーバーの登録周期。 | 数値型 デフォルト値:3600 単位:秒 |
| SIPN | Transport: | 主系サーバーの伝送プロトコル、UDP、TCP、TLS。 | 0:UDP 1:TCP 3:TLS デフォルト値:0 |
| SIPN | Backup Addr: | 予備系サーバーアドレス。 | IP/ドメイン名 デフォルト値:空 |
| SIPN | Backup Port: | 予備系サーバーのサービスポート。 | 数値型 デフォルト値:5060 |
| SIPN | Backup TTL: | 予備系サーバーの登録周期。 | 数値型 デフォルト値:3600 単位:秒 |
| SIPN | Backup Transport: | 予備系サーバーの伝送プロトコル、UDP、TCP、TLS。 | 0:UDP 1:TCP 3:TLS デフォルト値:0 |
| SIPN | Enable Failback: | 回線でRegister Failback機能を有効にするかを制御します。 | 0/1 デフォルト値:1 |
| SIPN Failback Interval: | 予備系サーバー/Proxyに登録した後、主系サーバー/Proxyが復旧したかを検出する時間間隔。 | 数値型 デフォルト値:1800 単位:秒 | |
| SIPN Signal Retry Counts: | サーバー/Proxyが利用できない場合のSIP Request再送回数。最後のサーバー/Proxyを除きます。最後は32秒タイムアウトです。 | 数値型 デフォルト値:3 | |
ユーザーは電話機のWebサーバーにログインし、主系・予備系サーバーを設定できます。
1) 「ライン」タブをクリックし、SIPサブタブを選択します。デフォルトではこのページです。
2) ページ内の「ライン」ドロップダウンリストから設定する回線を選択します。
3) 回線登録情報を設定します。
4) SIP Server1(主系サーバー)とSIP Server2(予備系サーバー)のサーバー情報を設定します。図2を参照してください。
5) 現在ページの「基本設定」をクリックし、主系・予備系Failback関連の設定項目を設定します。図3を参照してください。
6) ページ下部の「送信」ボタンをクリックして設定を有効にします。
図2 SIP Server主系・予備系設定
図3 SIP主系・予備系Failback設定