パケット解析レポート — CTI/CRM/CCX/DB 間通信

キャプチャファイル: cc-20260409-webapp.pcapng(CRM/Tomcat取得)・cc-20260409-client.pcapng(CTIクライアント取得)/ 解析日: 2026-04-09

解析サマリ: CTIクライアント → CRM REST API (HTTP :80) CTIクライアント → CCX HTTPS :8445 / XMPP :5222 CRM ↔ CCX XMPP :12028 CRM ↔ DB SQL Server :1433

1. システム構成図

CTIクライアント 192.168.120.101 cc-20260409-client.pcapng CRM / Tomcat (webapp) 192.168.120.41 cc-20260409-webapp.pcapng CCX (Finesse) 192.168.120.21 ccx01.mod.cisco.com DB (SQL Server) 192.168.120.42 port 1433 HTTP :80 /crm/api/* /qsc/* XMPP :12028 Openfire heartbeat HTTPS :8445 (TLSv1.2) — Finesse REST API XMPP :5222 — AUTH / PRESENCE / pubsub MESSAGE SQL TDS :1433 Connection Pool

2. 検出された接続一覧

送信元宛先ポートプロトコル目的・内容確認ファイル
CTIクライアント
192.168.120.101
CRM
192.168.120.41
:80 HTTP/1.1 CRM REST API全般。画面ロード、ログイン、キュー統計ポーリング、着信時の顧客情報取得、履歴保存。
主要エンドポイント: /crm/api/dnis, /crm/api/caller, /crm/api/history, /qsc/rest/v1/queuestatistics
webapp・client 両方
CTIクライアント
192.168.120.101
CCX
192.168.120.21
:8445 TLSv1.2 (HTTPS) Finesse REST API。ログイン認証・エージェント状態変更・通話操作命令.
SNI: ccx01.mod.cisco.com。Client Hello〜Application Data を確認。
client
CTIクライアント
192.168.120.101
CCX
192.168.120.21
:5222 XMPP/XML Finesse イベント購読。SASL認証→BIND→Roster取得→PRESENCE→pubsub.ccx01.mod.cisco.com からの MESSAGE 受信(エージェント状態・キュー通知)。
JID: myamagat@ccx01.mod.cisco.com/com.cisco.cticlient
client
CRM
192.168.120.41
CCX
192.168.120.21
:12028 TCP/XMPP
(Openfire)
CRM サーバーサイドから CCX Openfire への接続。約3秒周期で小パケット(18 byte 送→ 8+106 byte 応答)を繰り返す heartbeat / ping 通信。 webapp
DB
192.168.120.42
CRM
192.168.120.41
:1433 SQL Server TDS CRM ↔ DB 間のコネクションプール(10本前後を同時維持)。接続確立後は TCP Keep-Alive(約30秒周期)でプール保持。CRM API 呼び出し時に実クエリが流れる構成。 webapp

3. フェーズ別シーケンス図

キャプチャから読み取れる代表的なシーケンスです。TLS 暗号化区間の詳細(Finesse REST の具体的なリクエスト内容)は平文では確認できません。

秒 (相対) CTIクライアント
101
CRM / Tomcat
41
CCX (Finesse)
21
DB (SQL Server)
42
── Phase A: 初期接続・認証 ──
t≈0
(client: t≈27)
→ TCP SYN → :8445
TLSv1.2 Client Hello
SNI=ccx01.mod.cisco.com
| ← TLS HandShake
Server Hello / Cert /
Change Cipher Spec
|
→ TLS Application Data
Finesse REST ログイン
| ← TLS Application Data
(ログイン応答)
|
t≈27.56 → TCP SYN → :5222
XMPP STREAM open
| ← XMPP STREAM (server features) |
t≈27.61 → XMPP AUTH (SASL) | |
t≈27.62 | ← XMPP SUCCESS |
t≈27.62 → XMPP IQ(set) BIND
/com.cisco.cticlient
| ← IQ(result) BIND |
t≈27.63 → IQ(get) jabber:iq:roster | ← IQ(result) roster |
t≈27.63 → XMPP PRESENCE (available) | ← PRESENCE (myamagat / admin / finesse) |
t≈27.95
(client: t≈27.95)
→ GET /crm/api/dnis?csqName=TOKYO
HTTP :80
← HTTP 200 (DNIS マッピング応答) | |
── Phase B: 待機中 (定期ポーリング) ──
t≈0
(webapp)
| → TCP :12028 (ping/heartbeat)
18 byte, 約3秒周期
← 8+106 byte 応答 (heartbeat ACK) |
t≈5〜30
(webapp)
| | ← TCP Keep-Alive :1433
(コネクションプール維持, 約30秒周期)
t≈28〜
(client: 3秒周期)
→ POST /qsc/rest/v1/queuestatistics
HTTP :80 (約3秒毎)
← HTTP 200 (キュー統計) | |
t≈32.6
t≈37.3
| ← XMPP IQ(get) version
(Openfire → Client ping)
|
t≈37.3
(client)
| ← XMPP MESSAGE pubsub
(キュー/エージェント状態通知)
|
── Phase C: 着信 ──
t≈37.3〜
(client)
| ← XMPP MESSAGE × 3
pubsub.ccx01.mod.cisco.com
(着信イベント通知)
|
t≈37.63
(client)
→ GET /crm/api/incomingNumber
?telNumber=8991901
← 200 (内線マッピング情報) | |
t≈37.69 → GET /crm/api/additional?dnisId=33 ← 200 →
DB:1433 SELECT (追加情報)
|
t≈37.71 → GET /crm/api/caller
?telNumber=009032130774&anonymous=false
← 200 →
DB:1433 SELECT (顧客情報)
|
── Phase D: 応対中 ──
応対中 → TLS App Data → :8445
Finesse REST (保留/転送など)
| ← TLS App Data
(状態変更ACK)
|
応対中 | ← XMPP MESSAGE pubsub
(通話状態変化通知)
|
t≈41.1〜
(client)
| ← XMPP MESSAGE × 複数
(AgentState: TALKING 等)
|
── Phase E: ラップアップ・履歴保存 ──
t≈41.29
(client)
→ GET /crm/api/wrapup?dnisId=33 ← 200 (ラップアップコード一覧) | |
t≈41.45 → GET /crm/api/caller ...
→ GET /crm/api/wrapup ...
→ GET /crm/api/history?callerId=1&dnisId=33
← 200 (顧客情報・過去履歴)
→ DB:1433 SELECT
|
t≈52.8
(client)
→ POST /crm/api/history
応対メモ・コード登録
← 200 →
DB:1433 INSERT/UPDATE
|
── Phase F: CRM 画面再ロード(ログイン含む) ──
t≈91.7
(client)
→ GET /crm/ → POST /crm/
ログイン → GET /crm/statics?first=true
← 200(ログイン画面 / 静的リソース) | |
t≈100.6〜
(client)
→ GET /crm/statics?first=true&dnisId=33
全 JS/CSS リソース取得
← 200 (statics ページ) | |

4. ポート・プロトコルまとめ

ポートプロトコル方向内容備考
:80HTTP/1.1CTI → CRMCRM REST API (平文)本番では HTTPS 推奨
:8445TLSv1.2CTI → CCXFinesse REST API (HTTPS)SNI=ccx01.mod.cisco.com
:5222XMPP/XMLCTI ↔ CCXFinesse イベント購読 (平文)Openfire 標準ポート; 本番では STARTTLS/5223 推奨
:12028TCP/XMPPCRM ↔ CCXCRM サーバー内部の Openfire 接続 (heartbeat)Openfire 非標準ポート; enableInsecureOpenfirePort 相当
:1433SQL Server TDSCRM ↔ DB顧客データ読み書き (コネクションプール ~10本)DB は CRM からのみアクセス; CTI からの直接接続なし
:123 (UDP)NTPCRM → 192.168.100.51時刻同期CRM から NTP サーバーへのポーリング

5. 観察されたエンドポイント一覧

エンドポイントメソッド役割
GET /crm/GETCRM ログイン画面の表示
POST /crm/POSTCRM ログイン処理
GET /crm/staticsGETログイン後メイン画面 (first=true / dnisId 指定)
GET /crm/api/dnisGETCSQ名 → DNIS マッピング取得 (csqName=TOKYO)
POST /qsc/rest/v1/queuestatisticsPOSTキュー統計取得(約3秒周期ポーリング)
GET /crm/api/incomingNumberGET着信番号 → 内線マッピング (telNumber=8991901)
GET /crm/api/callerGET顧客情報取得 (telNumber=009032130774)
GET /crm/api/additionalGETDNIS 付加情報取得 (dnisId=33)
GET /crm/api/wrapupGETラップアップコード一覧取得
GET /crm/api/historyGET顧客応対履歴の取得
POST /crm/api/historyPOST応対メモ・コードの保存(通話終了後)

6. 気になる点・確認推奨事項

セキュリティ観点の注意点(キャプチャから確認)

その他の観察事項

本レポートは tshark (Wireshark) による自動解析をもとに作成。TLS 暗号化区間(Finesse REST :8445)の詳細内容は復号していません。