見出し画像

【3CX V18】クラウドPBX Advanced - 7. 基本的なトラブルシューティング(Basic Troubleshooting)

★検索から飛んできた人用 > 目次記事はこちら★

こんにちは、CCアーキテクトの辻です。3CX Advanced Certificationを取得するために、3CXサイトの記事を機械翻訳し日本語にしてから勉強しました。その時のメモなどをNoteにまとめていきます(こちらはメモページなのでオリジナルページ内コンテンツの視聴も強く推奨です)

※注:3CXサイトの記事が元ネタです。不明瞭な部分やおかしいな?と感じるところは原文を参照ください。


3CX導入のご相談は、CCアーキテクトまでお気軽にお問い合わせください。

# 3CX構築・Genesys構築のエキスパート CCアーキテクト (cc-arc.com)


オリジナルページ

Module 7. Basic Troubleshooting
⇒解説動画と解説スライドがあります。


■このモジュールでは、3CXの基本的なトラブルシューティングと、SIPプロトコルについて説明。

セルフヘルプ

■PBXに問題が発生した場合、トラブルシューティングのためのさまざまなツールやリソースが用意されている。
■管理者が問題を特定しやすくするために、PBXが提供するさまざまな情報を見ていく。

ダッシュボード

■まず、PBX ダッシュボードから始める。ダッシュボードでは、PBXの現在のアクティビティとステータスの概要を簡単に確認できる。すべてがあるべき形で実行されているかどうか、一目でわかるようになる。
■表示されているスクリーンショットから、Firewall Checkが通過しておらず、赤で表示されていることがわかる。また、自動バックアップも行っていない。災害が起きたときに救ってくれるのは、現在のバックアップに勝るものはない。必ず自動バックアップを有効にする。後悔するよりも、安全であることが一番だ。

詳細ロギング (Verbose Logging)

■デフォルトでは、CPUパワーとディスクスペースを節約するために、PBXは最小限のログを保持する。
■サービスが再起動されたとき、またはPBXサーバー自体が再起動されたときに、ログファイルは消去され、必要なときに新しいログセットを作成できるようになる。
■PBXで起こりうる問題のトラブルシューティングを行うには、通常のログレベルであるLOWでは不十分で、冗長ログが必要になる。冗長とは、必要以上の情報を持つことを意味し、この場合、PBXが提供できる多くの情報を必要とする。
■PBXのログファイルは、サーバー上のフォルダに保存される。
■PBXが保持する様々なログファイルは、サーバーのファイルシステムから利用できるだけでなく、管理コンソールからも閲覧することができる。アクティビティログの「ログ」ボタンをクリックすると、ブラウザから直接ログにアクセスでき、コンピューターにダウンロードすることができる。

活動ログ

■活動ログでは、電話登録、ゲートウェイやVoIPプロバイダーとのやり取り、PBXで処理されているコールに関する情報など、PBXが提供する基本的なSIPフローメッセージを確認することができる。
■これらは、トラブルシューティングを行いたいイベントが発生した日時に基づいてフィルタリングすることができる。
■内線番号でフィルタリングすることも可能で、さらに、その内線番号に関連するコールが[通話で検索]ドロップダウンボックスにのみ表示される。コールIDは、PBXまたはサービスが最後に再起動されてからのコールの増分カウンタだ。

イベントログ

■イベントログはダッシュボードで見ることができ、内線番号、プロバイダ、ゲートウェイの登録に関連するイベントの要約を提供する。これらのタイプのイベントは、Informational eventとして記録される。
■警告、エラー、情報メッセージの3つのレベルが表示されます。これらは、フィルタリングして、個別のレベルとして表示することができる。
■IP電話プロバイダーのRPSサーバーに送信されたリクエストもここに記録され、リクエストが成功したかどうかが表示される。これらは、成功した場合は情報メッセージ、失敗した場合は警告となる。
■ブラックリストに登録されたIPもここに記録される。これらは、エラーとして記録される。
■他の警告イベントの例としては、キューの SLA 時間違反や放棄されたキューコールがある。

Auditログ

■Auditログは、システムに加えられた変更を追跡することができる、非常に便利なツールだ。
■3CX管理コンソールで行われたすべての変更が、変更されたパラメータの前と現在の値とともに表示される。また、誰がこの値を変更したかを確認することもできる。
■管理者が管理者アカウントでシステムにログインした場合、管理者が自分のGoogleまたはMicrosoft SSOアカウントでログインしても、管理者によって変更されたものとして表示される。個々の管理者が行った変更を表示するには、各ユーザーの「権限」タブで共有されているように、委任されたアカウントで3CX MAnagementコンソールにログインする必要がある。
■これらの変更は、アーカイブの目的でCSVファイルにエクスポートすることができる。

通知の設定

■電子メールは、PBX が管理者に PBX での活動を通知する主な方法だ。PBX の電子メール通知の設定では、複数の管理者を設定することが可能。必要なのは、電子メール・アドレスをカンマで区切ることだけだ。
■このためには、有効でテスト済みの SMTP サーバーが PBX に定義されている必要がある。
■設定>メール設定>通知タブ

ビルトインターミナル (Linux)

■3CXの設定とトラブルシューティングの大部分は、Webブラウザ内から行うことができるが、オペレーティングシステムへのアクセスが必要なケースもある。
■3CX Linux Editionでは、オペレーティング・システムにSSH接続を確立するために、SSHクライアントが必要。LinuxのOSへの接続は、WindowsのOSへの接続よりも難しいので、これは課題だった。
■Linux環境では、SSHクライアントを使わなくても、マシンへの接続は簡単に実現できる。ダッシュボードから、ウェブシェルターミナルにアクセスするボタンが利用できる。これにより、トラブルシューティングに必要な限られた機能にアクセスすることができる。

パケットキャプチャ

■管理者が通話に関する問題を解決するためのもう一つのツールは、内蔵のパケットキャプチャユーティリティで、管理者は管理コンソールから簡単にPBXのパケットキャプチャを取ることができる。
■パケット・キャプチャを実行するために必要な前提条件として、Windows マシンに wireshark をインストールする必要がある。Linux環境では、3CXのインストール時に必要なパッケージがすべてインストールされるため、これは必要ない。
■関連するインターフェイスを選択するか、またはサーバーに複数のインターフェイスがある場合はすべてのインターフェイスでキャプチャすることを選択し、[キャプチャ]をクリックしてPBXインターフェイスのネットワークトラフィックのキャプチャを開始するだけだ。
■キャプチャが停止されると、キャプチャを直接ダウンロードするためのダウンロードリンクと、3CXサポート情報を作成するためのリンクが提供され、ログファイルにキャプチャも含まれるようになる。サポート情報ファイルは、管理者に電子メールで送信される。
■参考URL: https://www.3cx.com/docs/capture-network-traffic/

WireShark

■管理コンソールから取得したキャプチャを使用して、Wiresharkでキャプチャをデコードし、SIPフローのデバッグを実行することができる。VoIPコールを分離し、明確で読みやすいフォーマットで分析できるため、Wiresharkではこれが非常に簡単だ。
■必要なことは、分析したい関連するコール脚を選択し、Flow Sequenceをクリックするだけだ。
■選択したコール・レッグがグラフ形式で表示され、通話の開始から終了までのフローを簡単に確認できる。コールフロー画面で特定のパケットを選択すると、wiresharkの生のパケットデータも表示される。

■パケットキャプチャはサーバーのネットワークインターフェースから行われるため、そのインターフェースを通過するオーディオトラフィックもすべてキャプチャーされる。
■SIP エンドポイントから来るさまざまなオーディオストリームを見ることができるので、オーディオの問題に直面している場合、問題のあるオーディオがどこから発信されているかを特定することができる。
■PBX を出入りするパケットにタイミングの問題がある場合は、オーディオ・ストリームにも表示される。
■コールレッグを選択し、[ストリームを再生]をクリックする必要がある。
■2つのSIPエンドポイント間の通話で、音声がPBXによってプロキシされる場合、理想的には4つのオーディオストリームが表示される。PBXからエンドポイントへのストリームと、エンドポイントからPBXへのストリームのそれぞれについて1つずつだ。

WireShark - SIPメッセージ

■Wiresharkで見ることができる情報の一部を見てみる。
■3CXが通話の発信と受信に使用するSIPプロトコルは、基本的にリクエストとレスポンスで構成されています。リクエストメッセージは、今スライドにあるような単純な単語だ。
■SIPエンドポイントをPBXに登録するには、REGISTERという単語が使われる。
■通話を開始するには、INVITEが送信される。基本的に、他のエンドポイントを会話に招待する。
■BYEリクエストは、アクティブな通話を終了させるために使用され、ちょうど誰かにさよならを言うようなものだ。
■CANCELは、まだ応答されていない呼を終了するために使用される。基本的に、あなたはINVITEをキャンセルしている。
■ACKは、アクション、リクエストと応答のペアを確認するために使用される。
■BLFキーを設定するとき、SUBSCRIBEはこのボタンを有効にし、統計を要求するために使用される。
■BLFのステータスが変更されたとき、NOTIFYはBLFに新しいステータスを表示するよう指示するために使用される。
■REFERは、あるSIPエンドポイントから別のSIPエンドポイントへ呼が転送されるときに使用される。


●REGISTER - 3CXに登録するために使用します。
●INVITE - コールセットアップに使用します。
●BYE- 既に確立されているセッションを終了させるために使用される。
●CANCEL - コールセットアップ状態において、呼をキャンセルするために使用する。
●ACK - リクエストとレスポンスのペアを承認し、完了させるために使用します。 
●SUBSCRIBE - 統計情報(MWI、BLF)を要求する際に使用する。
●NOTIFY - 既存の SUBSCRIBE ダイアログの統計情報を配信する。
●REFER - 通話転送に使用します。


WireShark - レスポンスコード

■前のスライドでいくつかの例を見たSIPプロトコルで使用される言葉は、リクエストである。それらは番号付きのコードと、通常はそれに続く単語の形で応答を受け取る。このワードの表現方法は、通常、ベンダーが送信することになる。
■100番台のレスポンスコードは仮のもので、通常はその後に別の仮のコードか最終的なコードが続く。例として、180 Ringing は、エンドポイントがリンギングフェーズにあることを示す。
■200番台のレスポンスコードはFinalメッセージであり、リクエストに対するレスポンスが成功したことを示す。
■300番台の応答コードはFinalメッセージであり、リダイレクトを示す。例えば、302 Moved Temporarily、これは、エンドポイントが要求された場所では見つからなかったが、定義された場所では見つかることを示す。
■400番台の応答コードは、ローカルな失敗を示し、例えば、401 Unauthorizedの場合のように、認証が不可能であることを示す。404 Not Foundは、エンドポイントにコンタクトできない場合の一般的なエラーだ。
■500番台のレスポンスコードは、内部エラー、例えばサービスが利用できないことを示し、これは503 Service Unavailableメッセージを与えるだろう。
■600番台のレスポンスコードも同様に最終的なものであり、グローバルな障害を示している。これは、デバイスが全く連絡不能な場合や、エンドポイントが通信を拒否した場合に与えられるもので、603 Declineの場合と同様である。


100-199:暫定応答(180 Ringing, 183 Session Progress)
200-299:最終応答-成功(200 OK, 202 Accepted(REFERと併用))
300-399:最終応答-リダイレクション(302 Moved Temporarily)
400-499:最終応答-ローカルな失敗(401 Unauthorized; 486 Busy Here)
500-599:最終応答-内部エラー(503 Service Unavailable; 501 Not Implemented)
600-699:最終応答-グローバルな障害(600 Busy Everywhere; 603 Decline)


WireShark - REGISTER

■これは、エンドポイントから来るREGISTERリクエストのコールフローの例である。
■SIPエンドポイント(この場合はIP電話)は、PBXにREGISTERを送ろうとする。エンドポイントはREGISTERリクエストを送信する。PBXは407 Proxy Authentication Requiredで応答する。これは基本的に、電話機に自分自身を認証するように言っている。
■電話は、今度は認証資格情報を持つREGISTERリクエストを再送する。
■REGISTERメッセージでは、Expiresヘッダーも送信され、このメッセージが期限切れで有効でなくなるまでの時間を示す。

WireShark - INVITE

■これは、INVITEリクエストのコールフローの例だ。INVITEリクエストは、SIPエンドポイントが他のSIPエンドポイントとの会話に参加したいとき、つまり電話をかけたいときに送られる。
■電話機から3CXサーバーにINVITE要求が送信される。3CXサーバーは、407 Proxy Authentication Required(プロキシ認証が必要)応答で応答する。
■電話はリクエストをACKnowledgesする。
■新しいINVITEが、認証資格情報とともに送信される。
■PBXは、認証に成功した後、100試行応答コードを転送する。
■これは暫定的なメッセージなので、その後にエンドポイントが鳴っていることを示す180 Ringingが続く。
■PBX Delivers Audioまたは録音が有効になっている場合、サーバー自体でキャプチャが実行されていれば、サーバーとの間で流れるRTPトラフィックも表示されるはずだ。
■200 OK メッセージは、通話が応答されたことを示す。
■エンドポイント ACKnowledges は、これが応答されたことを示す。
■通話を終了する時間になると、要求側のエンドポイントからBYEが送信される。PBXからの200 OKメッセージは、要求が成功したことを示す。

■実際のINVITEパケットはこのような感じだ。
■これから、このパケット内の異なるヘッダーをそれぞれ分析する。

※上記画面キャプチャの環境 3CXサーバー:10.135.100.110

WireShark - ヘッダー

■まず、FROMヘッダーから始める。これは、呼の発信元を示す。この例では、IPアドレス10.135.100.110のSIP内線112から発信されていることがわかる。
■TOヘッダーは、同じIPアドレスの内線103を宛先として示していることがわかる。これは、両者が同じ登録サーバーに接続されていることを示す。電子メールに非常に似ており、同僚に電子メールを送信すると、彼らは同じドメインにいる。
■通話情報をどこに伝えるかを知るために、エンドポイントはそのCONTACT情報を送信する。ここでは、電話機の実際のIPを見ることができる。


●Fromヘッダ:通話発信元
From: "オペレータの内線"<sip:112@10.135.100.110:5060>;tag=5500862095
●Toヘッダ:通話先
To: <sip:103@10.135.100.110:5060>
●Contactヘッダ:各エンドポイントがレスポンスの送信先として期待する場所
Contact: <sip:112@10.135.200.114:5060>


■次に見るのはVIAヘッダだ。
■PBXであれVoIPプロバイダであれ、通話が通過する各SIP仲介エンティティは、自身のアドレスをVIAヘッダに追加する。
■これにより、折り返しの通話が逆ルートで同じ経路を通り、元の通話相手を見つけることができるようになる。


Viaヘッダ
●SIPレスポンスはSIPリクエストと同じ逆ルートを使用する。
●Via: SIP/2.0/UDP 10.135.200.114:5060;branch=z9hG4bK27646460422396439545;report

例2: 複数のVia行(各SIP仲介業者はVIAに独自のアドレスを追加する)
Via: SIP/2.0/UDP 212.213.214.215:5060;branch=z9hG4bK-d8754z-8f7bb41a4e648e44-2--d8754z-;rport=5060
Via:SIP/2.0/UDP 10.135.200.114:5060;branch=z9hG4bK27646460422396439545


■CALL-IDヘッダは、特定のコールレグ内のパケットを識別する一意の識別子である。特定のコールレグのためのすべてのパケットは、同じCall-IDを持つ。
■CSeqヘッダー(コマンドシーケンスヘッダー)は、コールレグ内のパケットを互いにリンクさせる。
■例えば、最初のINVITEが送られるとき、この例では1のようなコマンドシーケンス番号を持つ。INVITEに対する応答としてパケットが来るとき、そのパケットにリンクするため に、そのパケットも1というCSeq番号を持つ。
■User-Agentヘッダーは、パケットを送るSIPエンドポイントを特定する。


●Call-IDヘッダ:通話履歴の識別
 Call-ID:  145994364614611-273301183317219@10.135.200.114
●CSeq行:コールレグ内のパケットを連結するために使用される
 CSeq: 1 INVITE
●User-Agentヘッダ:要求/再開を送信するSIPエンドポイントを定義する。
 User-Agent: Fanvil X4U 2.4.12 001122AABBCC


■Proxy-Authorizationヘッダーは、SIPレジストラに認証クレデンシャルを送るた めに使用される。この例では、認証情報なしのINVITEと、認証情報ありのINVITEを見ることができる。

最初のINVITE(認証情報なし)

次のINVITE(認証情報あり)

WireShark - SDP - メディア交換のネゴシエーション

■INVITEパケット内で、メディアネゴシエーションもセッション記述プロトコルを介して 行われる。
■ここから、Connection情報を見ることができる。これはcontactヘッダーと似ているが、ここでは、AUDIOが送られるIPとPORTが定義されている。
■また、利用可能で、宛先エンドポイントとネゴシエートされるコーデックも見ることができる。コーデックは数字で表示され、それぞれの数字がコーデックに対応する。
■いくつかの例を挙げる:
 0はPCMU、またはG711u
 8はPCMA、またはG711a
 9はG722
 18はG729
 プロトコル18は、この場合、附属書Bコーデックでないことを示す特別な属性も持っているので、G729aコーデックの呼をネゴシエートすることになる。
 属性101はDTMFトーン

WireShark - ディスプレイフィルタ:sip

■キャプチャを解析するとき、解析したいパケットを簡単に特定するために、特定のフィルタを割り当てることができる。
■例えば、フィルターフィールドに "sip" と入力すると、キャプチャに含まれる全てのsipパケットを分離して表示することができる。

WireShark - ディスプレイフィルタ:sip.Method==INVITE

■もう少し深く、すべてのINVITEパケットを分離してみる。sip.Method==INVITE と入力すると、INVITEパケットだけがwiresharkのインターフェイスに表示される。

WireShark - ディスプレイフィルタ:sip.CSeq.method==INVITE

■sip.CSeq.method==INVITE と入力すると、INVITEパケットにリンクしているすべてのパケットを分離して見ることができる。それらはどのようにリンクされているのか。パケット内のCSeqヘッダーを使用する。

WireShark - ディスプレイフィルタ:sip.CSeq.method

■INVITE、SUBSCRIBE、REGISTER、NOTIFYといった様々なREQUESTSのパケットをリンクさせるために、様々なCSeq Methodフィルターを割り当てることができる。
■これにより、あるイベント、例えばINVITEで電話をかけることにリンクしているパケットを簡単に見ることができる。

WireShark - ディスプレイフィルタ:コールIDの特定

■特定のコールレグにあるパケットを識別したいことがある。この場合、CALL-IDをフィルタとして使用することができる。
■INVITEパケットに行き、CALL-IDを右クリックすると、これをフィルターとして適用することを選択でき、フィルターを直接wiresharkに適用して、この特定のコールレグのパケットを分離することができる。

ヘルプを求める

■自分一人でトラブルシューティングを行うのは容易ではなく、時には大きな力を必要とすることもある。
■しかし、支援を求める前に、3CXの構成のあらゆる側面に関する豊富な情報を含むオンライン・ドキュメントを確認することを勧める。
■これは、サポートされている電話機、ゲートウェイ、およびPBXの前提条件の詳細の各モデルの構成ガイドに及ぶ。
■時折、新しい機能をリリースしたときや、ある機能で困っている人がいることを確認したときには、技術文書を公開して、状況を明らかにすることもある。


●コンフィグガイド: https://www.3cx.com/support/

●管理者ガイド: https://www.3cx.com/docs/manual/

●技術ドキュメント: https://www.3cx.com/docs/


ヘルプのリクエスト

■さて、ここまで調べて最善を尽くしても、設定やトラブルシューティングに難儀することがあるかもしれない。
■そこで、3CXテクニカルサポートの出番となる。
■3CXのテクニカルサポートチームは、アクティブなパートナーにサポートを提供し、お客様の問題を解決するための第一線に立つ。また、非アクティブなパートナーやエンドユーザーに対しても、サポートチケットを購入することでサポートを提供している。
■サポートは、テクニカルサポートウェブサイト(www.3cx.com/support)で定義されているすべてのサポート対象機器と、サポート対象のSIPトランクに対して提供される。
■3CXブランド製品は、最新バージョンおよび直前のバージョンのサポートが提供されます。現在、バージョン15.5と16がサポートされている。
■また、3CX Appsおよび3CX Webmeetingのサポートも提供されている。
■3CXテクニカル・サポートは、2つの方法で利用できます。アクティブ・パートナーは電話で対応し、特定の問題についてのアドバイス、ガイダンス、説明を受けるのに便利だ。
■チケットは、お客様からログなどの情報を送信していただくか、テクニカルサポートチームからガイドと指示を文書で送信する場合に推奨される方法となる。

※国内最上位の3CXプラチナパートナーであるCCアーキテクトでは豊富なサポートメニューをご用意しています!サポート契約に関するご相談はぜひこちらまで。
# 3CX構築・Genesys構築のエキスパート CCアーキテクト (cc-arc.com)

■動画ではWireshark キャプチャーを作成する方法と、3CX サポート情報を作成する方法について説明⇒オリジナルサイトで動画が視聴できます。

3CXのことを詳しく聞きたい。興味があるという方はぜひ、こちらまでお気軽にお問い合わせください。

# 3CX構築・Genesys構築のエキスパート CCアーキテクト (cc-arc.com)

●VoIP情報満載のBlogはこちら
 ⇒ 
https://blog.cc-arc.com/

●FAQ満載のサポートサイトはこちら
 ⇒ 
https://portal.cc-arc.com/

●マニュアル掲載満載のリソースサイトはこちら
 ⇒ 
https://resource.cc-arc.com/resource/

●動画によるご紹介はこちら
 ⇒ 
Youtube

●SNSでも情報発信中!ぜひご登録を!
 ⇒ 
Twitter Linkdin Facebook

目次記事はこちらです

目次記事へのリンク

#3CX , #SIP , #PBX , #IP -PBX , #VoIP , #IPフォン , #IP電話 , #SIPフォン ,#SIP電話 , #SBC , #ひかり電話 , #OG , #ATA , #コールセンター , #ISDN_GW
#クラウドPBX