1
學生:王謙志指導教授:柯開維 教授
日期: 2010.07.27
以 SIP Phone為基礎之跨平台側錄監聽與分析系統
2
Motivation & GoalBackground
Java SIP Protocol
Implementation of the System System Environment of Network System Architecture Flow Chart of Packet Analysis RTP Record System UI
Conclusion & Future WorksDemo
Outline
3
VoIP (Voice over Internet Protocol) 是目前網際網路上的相當流行且應用非常普及的一種服務,VoIP 透過將音訊數位化處理後壓縮編碼,然後藉由封包透過封包交換網路來傳輸到目的端。此種方式可大幅節省通話費用,常用應用於跨國公司的通信以及客服中心等。
VoIP Protocol :SIP(Session Initiation Protocol)H.323
Motivation
4
本論文的目標是設計一個針對 SIP 協定之網路電話的監控與錄音系統
其預計達成目標如下可還原通話實況可紀錄通話歷程可查詢通話紀錄可監控點對點通話可監控通話轉移可監控會議通話可同時監控大量通話
Goal
5
JavaJava APIJpcapJMFJava Sound
SIP Standard ProtocolRTP
Background
6
JAVAByte CodeJVMSupport Network
Programming本系統是以 JAVA 程式
語言為基礎所開發的
JavaJAVA Source Code
JAVA Compiler
JAVA Byte Code
JVM
OS
JVM
OS
JVM
OS
7
Application Programming Interface
Reuse and ExtendEasy and fast to
Implement Use Jpcap, JMF and
Java Sound
Java API
Java 2 主要 API
8
提供 Java 對底層網路數據控制的能力
允許 Java 應用程式進行網路封包的擷取或發送
使用 libpcap and Winpcap ,使其能夠跨平台的運作
Jpcap
9
Jpcap
WinPcap(Windows OS)
libpcap(Unix OS)
Jpcap(Java API)
Network Interface Card
Jpcap.Packet
Capture/Send Packets
Jpcap Process Model
10
Java Media Framework提供對聲音和影像等多媒體內容的擷取、
撥放和編碼
JMF
Input Process Output
擷取媒體讀取檔案接收廣播
加入效果壓縮/解壓縮多工/解多工格式轉換
播放儲存
網路廣播
JMF Process Model
11
Java Sound API 是屬於低階 (low-level) 的API
提供 Java 應用程式針對聲音操作的控制能力,包括音源資料的擷取、錄製與播放,例如:音頻混頻器、 MIDI 合成器,或是其他音頻和 MIDI 設備、文件讀取、文件寫入、聲音格式轉換等。
本系統使用 Java Sound API 達成即時監聽功能
JAVA Sound
12
RFC 2543, March 1999RFC 3261, June 2002屬於 Client/Server 的架構可 分 為 User Agent 、 Proxy
Server 、 Redirect Server 、 Registrar Server 、 Location Server 等五個部分
SIP Protocol
13
SIP網路電話運作流程
110
23
4
5
6
9
78
User Agent Client
User Agent Server
SIP Proxy Server A SIP Proxy Server B
Redirect Server Registrar
RTP Stream
11
14
Request Messages Type Description
REGISTER Registers the user agent
INVITE Initiates a call by inviting user to participate in session
ACKConfirms that the client has received a final response
to an INVITE request
CANCEL Cancel a pending request
BYE Indicates termination of the call
REFER Asks recipient to issue SIP request (call transfer.)
OPTIONS Used to query the capabilities of a server
SIP Request Messages
15
Response Messages Type Description
1xxInformation Responses
Ex. 180 Ringing
2xxSuccessful Responses
Ex. 200 OK
3xxRedirection Responses
Ex. 302 Moved Temporarily
4xxRequest Failure Responses
Ex. 404 No Found
5xxServer Failure Responses
Ex. 503 Service Unavailable
6xxGlobal Failure Responses
Ex. 600 Busy Everywhere
SIP Response Messages
16
RTP
CSRC[0 : 15]
RTP Payload
SSRC
Timestamp
VCSRC Count
Payload Type Sequence number
0 8 16 24 32
P X M
Header Extension(Optional)
17
RTP Payload Type
RTP PT Name Type Clock rate
(Hz)
Audio channel
sReferences
0 PCMU Audio 8000 1 RFC 3551
2 G721 Audio 8000 1 RFC 3551
3 GSM Audio 8000 1 RFC 3551
8 PCMA Audio 8000 1 RFC 3551
9 G722 Audio 8000 1 RFC 3551
15 G728 Audio 8000 1 RFC 3551
18 G729 Audio 8000 1
18
System Environment of Network
System Architecture
Flow Chart of Packet Analysis
RTP Record
System UI
Implementation of the System
19
System Environment of Network
Intranet
LAN
PDASmart Phone SIP網路
電話
桌上型電腦網路軟體電話
Switch無線網路電
話以SIP PHone為基礎之跨平台側錄監聽與分析系統Wirless
Network
SIP ServerSIP Server
SIP Server
資料庫
20
System ArchitectureSystem Architecture
Packet Process System
Packet Capture
Packet Analyer
Call List
Packet
Call Records Update and Inquiry System
SIP Analyer
RTP Analyer
PCM Processor System
GUI
21
Flow Chart of Packet Analysis
New packet captured
SIP or RTPRTP Packet SIP Packet
RTP analyzer SIP signal analyzer
Call List
Process UI and updated call information
Save audio data and update database
No Yes
Other packet type
BYE ?
Finish
Finish
RTP decoder
22
P to P Call Flow chart
176140.124.182.176
204140.124.182.177
1.INVITE Request
SIP Server140.124.182.178
2.407 Proxy Authentication Required
3.ACK
4.INVITE Request(告知Server,176收送RTP封包
的port為49156)
5.100 Trying 6.INVITE Request(告知204,Server收送RTP封包
的port為15364)
8.183 Session Progress(告知176,Server收送RTP封包
的port為12928)
7.100 Trying
10.200 OK(告知Server,204收送RTP封包
的port為49174)
11.ACK
Ring back tone start Ring tone start
12.200 OK
13.ACK
Ring back tone stop Ring tone stop
通話中
14.BYE
15.200 OK16.BYE
17.200 OK
9.180 Ringing
23
INVITE Request
24
200 OK Response
25
通話紀錄重要參數 取得方法
Caller IP/Callee IPCaller 所使用的 IP 可從 INVITE Request 裡取
得, Callee 端則可從 200 OK 中取得。
Caller ID/Callee ID 兩端點所使用的 ID 可從 INVITE Request 裡取得。
CSeq解析 SIP Request/Response 封包,從 CSeq 欄位中取
得。
RTP 埠號從帶有 media port 欄位的封包內取得,如 INVITE 、
200 OK 等。
音訊編碼從帶有 media format 欄位的封包內取得,如
INVITE 、 200 OK 等。
通話紀錄參數
26
將封包按順序重組,不考慮 Delay
RTP Record
聲音片段封包 聲音片段封包 聲音片段封包 ………………………
Slot Slot
聲音片段 聲音片段 聲音片段 ………………………
網路實際情形
錄音設計
27
編碼格式為 PCMU(G.711 u-law 64k bps)
解碼後的格式為 Linear PCM (16bits)
必須先解碼後才能合成 否則無法正確解碼合成方法為將解碼後的兩
個封包儲存區內的資料一個單位一個單位的相加
編碼還原
送出的封包儲存區
接收的封包儲存區
解碼
輸出成WAVE檔案
RTP封包Payload
輸出至喇叭撥出
開啟即時監聽時通話結束後儲存語音檔
合成並加入WAVE Header
合成
28
User Interface
29
即時監聽展示圖
30
通話紀錄查詢
31
查詢結果展示
32
Conclusions本論文成功實作了一個針對 SIP 網路電話的錄音監控系
統本系統可跨平台運作本系統可以分析多種通話型態,且同時監控大量通話本系統可 Real Time 監聽雙方通話內容本系統可透過網路連上資料庫查詢通話歷程
Future Work透過系統進行掛斷 SIP 網路電話或轉接等行為之功能語音聲紋辨識語氣音調字彙分析
Conclusion and Future Work
33
單通電話與即時監聽測試點對點通話通話轉移會議通話
多通電話混合壓力測試64 通點對點通話+16 通通話轉移+16 通會議通話
通話紀錄查詢測試
Demo
34
Thanks for your attention
35
Q & A