์ด ๊ธฐ์ฌ์์๋ 3CX PBX์์ ์์ฑ๋ SIP ํธ๋ํฝ์ ์บก์ฒํ๊ณ ๋ถ์ํ๋ ๊ธฐ๋ณธ ์ฌํญ์ ๋ํด ์ค๋ช
ํฉ๋๋ค. ์ด ๊ธฐ์ฌ๋ ์ ํ ํต์ ์ ์ง ๊ด๋ฆฌ๋ฅผ ๋ด๋นํ๋ ์ด๋ณด ์์คํ
๊ด๋ฆฌ์๋ ์ผ๋ฐ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ์์ฑ๋์์ต๋๋ค. ์ฃผ์ ์ ๋ํ ์ฌ์ธต์ ์ธ ์ฐ๊ตฌ๋ฅผ ์ํด์๋ ๋ค์์ ์ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
3CX V16์ ์ฌ์ฉํ๋ฉด ์๋ฒ ์น ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ง์ SIP ํธ๋ํฝ์ ์บก์ฒํ๊ณ ์ด๋ฅผ ํ์ค Wireshark PCAP ํ์์ผ๋ก ์ ์ฅํ ์ ์์ต๋๋ค. ๊ธฐ์ ์ง์์ ๋ฌธ์ํ ๋ ์บก์ฒ ํ์ผ์ ์ฒจ๋ถํ๊ฑฐ๋ ๋
๋ฆฝ์ ์ธ ๋ถ์์ ์ํด ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
3CX๊ฐ Windows์์ ์คํ๋๋ ๊ฒฝ์ฐ 3CX ์๋ฒ์ Wireshark๋ฅผ ์ง์ ์ค์นํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์บก์ฒ๋ฅผ ์๋ํ ๋ ๋ค์ ๋ฉ์์ง๊ฐ ๋ํ๋ฉ๋๋ค.
Linux ์์คํ
์์๋ 3CX๋ฅผ ์ค์นํ๊ฑฐ๋ ์
๋ฐ์ดํธํ ๋ tcpdump ์ ํธ๋ฆฌํฐ๊ฐ ์๋์ผ๋ก ์ค์น๋ฉ๋๋ค.
ํธ๋ํฝ ์บก์ฒ
์บก์ฒ๋ฅผ ์์ํ๋ ค๋ฉด ์ธํฐํ์ด์ค ์น์ ํ > SIP ์ด๋ฒคํธ๋ก ์ด๋ํ์ฌ ์บก์ฒํ ์ธํฐํ์ด์ค๋ฅผ ์ ํํฉ๋๋ค. IPv6 ํฐ๋๋ง ์ธํฐํ์ด์ค๋ฅผ ์ ์ธํ ๋ชจ๋ ์ธํฐํ์ด์ค์์ ๋์์ ํธ๋ํฝ์ ์บก์ฒํ ์๋ ์์ต๋๋ค.
Linux์ฉ 3CX์์๋ ๋ก์ปฌ ํธ์คํธ(lo)์ ๋ํ ํธ๋ํฝ์ ์บก์ฒํ ์ ์์ต๋๋ค. ์ด ์บก์ฒ๋ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ SIP ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ์ ๋ถ์ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
ํธ๋ํฝ ์บก์ฒ ๋ฒํผ์ Windows์์๋ Wireshark๋ฅผ ์์ํ๊ณ Linux์์๋ tcpdump๋ฅผ ์์ํฉ๋๋ค. ์ด ์์ ์์๋ ์ ์ํ๊ฒ ๋ฌธ์ ๋ฅผ ์ฌํํด์ผ ํฉ๋๋ค. ์๋ํ๋ฉด... ์บก์ฒ๋ CPU๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ฉฐ ์๋นํ ์์ ๋์คํฌ ๊ณต๊ฐ์ ์ฐจ์งํฉ๋๋ค.
๋ค์ ํธ์ถ ๋งค๊ฐ๋ณ์์ ์ฃผ์ํ์ธ์.
- ํตํ๊ฐ ์ด๋ฃจ์ด์ง ๋ฒํธ๋ก, ํตํ์ ์ฐธ์ฌํ ๋ค๋ฅธ ๋ฒํธ/์ฐธ๊ฐ์๋ ์ด ๋ฒํธ๋ก ์ ํ๋ฅผ ๊ฑธ์์ต๋๋ค.
- 3CX ์๋ฒ ์๊ณ์ ๋ฐ๋ฅธ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ํํ ์๊ฐ์ ๋๋ค.
- ํตํ ๊ฒฝ๋ก.
"์ค์ง" ๋ฒํผ์ ์ ์ธํ ์ธํฐํ์ด์ค์ ์๋ฌด ๊ณณ๋ ํด๋ฆญํ์ง ๋ง์ธ์. ๋ํ ์ด ๋ธ๋ผ์ฐ์ ์ฐฝ์์ ๋ค๋ฅธ ๋งํฌ๋ฅผ ํด๋ฆญํ์ง ๋ง์ญ์์ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํธ๋ํฝ ์บก์ฒ๊ฐ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๊ณ์๋์ด ์๋ฒ์ ์ถ๊ฐ ๋ก๋๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค.
์บก์ฒ ํ์ผ ์์
์ค์ง ๋ฒํผ์ ์บก์ฒ๋ฅผ ์ค์งํ๊ณ ์บก์ฒ ํ์ผ์ ์ ์ฅํฉ๋๋ค. Wireshark ์ ํธ๋ฆฌํฐ์์ ๋ถ์ํ๊ธฐ ์ํด ํ์ผ์ ์ปดํจํฐ์ ๋ค์ด๋ก๋ํ๊ฑฐ๋ ํน์ ํ์ผ์ ์์ฑํ ์ ์์ต๋๋ค.
3CX ์๋ฒ์์ ํ์ผ์ ๋ค์ ์์น์ ์์ต๋๋ค.
- Windows: C:ProgramData3CXInstance1DataLogsdump.pcap
- ๋ฆฌ๋ ์ค: /var/lib/3cxpbx/Instance/Data/Logs/dump.pcap
์บก์ฒ ์ค ์๋ฒ ๋ก๋ ์ฆ๊ฐ ๋๋ ํจํท ์์ค์ ๋ฐฉ์งํ๊ธฐ ์ํด ์บก์ฒ ๊ธฐ๊ฐ์ 2๋ง ํจํท์ผ๋ก ์ ํ๋ฉ๋๋ค. ๊ทธ ํ์๋ ์บก์ฒ๊ฐ ์๋์ผ๋ก ์ค์ง๋ฉ๋๋ค. ๋ ๊ธด ์บก์ฒ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์๋ ์ค๋ช ๋ ๋๋ก ๋ณ๋์ Wireshark ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ญ์์ค.
Wireshark ์ ํธ๋ฆฌํฐ๋ก ํธ๋ํฝ ์บก์ฒ
๋คํธ์ํฌ ํธ๋ํฝ์ ๋ํ ์ฌ์ธต ๋ถ์์ ๊ด์ฌ์ด ์๋ ๊ฒฝ์ฐ ์๋์ผ๋ก ์บก์ฒํ์ญ์์ค. ํด๋น OS์ ๋ง๋ Wireshark ์ ํธ๋ฆฌํฐ๋ฅผ ๋ค์ด๋ก๋ํ์ธ์.
์บก์ฒํ ์ธํฐํ์ด์ค๋ฅผ ์ ํํ๊ณ ์ต์
๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. ๋ฌด์ฐจ๋ณ ๋ชจ๋์์ ํธ๋ํฝ ์บก์ฒ๋ฅผ ์ ํ ์ทจ์ํ๊ณ ๋๋จธ์ง ์ค์ ์ ๋ณ๊ฒฝํ์ง ์์ ์ํ๋ก ๋ก๋๋ค.
์ด์ ๋ฌธ์ ๋ฅผ ์ฌํํด์ผ ํฉ๋๋ค. ๋ฌธ์ ๊ฐ ์ฌํ๋๋ฉด ์บก์ฒ๋ฅผ ์ค์งํ์ธ์(๋ฉ๋ด ์บก์ฒ > ์ค์ง). ์ ํ ํต์ > SIP ํ๋ฆ ๋ฉ๋ด์์ SIP ๋ฉ์์ง๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
ํธ๋ํฝ ๋ถ์ ๊ธฐ๋ณธ ์ฌํญ - SIP INVITE ๋ฉ์์ง
VoIP ํตํ๋ฅผ ์ค์ ํ๊ธฐ ์ํด ์ ์ก๋๋ SIP INVITE ๋ฉ์์ง์ ์ฃผ์ ํ๋๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋ถ์์ ์ถ๋ฐ์ ์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก SIP INVITE์๋ SIP ์ต์ข ์ฅ์น(์ ํ, ๊ฒ์ดํธ์จ์ด) ๋ฐ ํต์ ์ฌ์ ์๊ฐ ์ฌ์ฉํ๋ ์ ๋ณด๊ฐ ํฌํจ๋ 4~6๊ฐ์ ํ๋๊ฐ ํฌํจ๋ฉ๋๋ค. INVITE์ ๋ด์ฉ๊ณผ ๊ทธ์ ๋ฐ๋ฅธ ๋ฉ์์ง๋ฅผ ์ดํดํ๋ฉด ๋ฌธ์ ์ ์์ธ์ ํ์ ํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ๋ํ INVITE ํ๋์ ๋ํ ์ง์์ SIP ์ด์์๋ฅผ 3CX์ ์ฐ๊ฒฐํ๊ฑฐ๋ 3CX๋ฅผ ๋ค๋ฅธ SIP PBX์ ๊ฒฐํฉํ ๋ ๋์์ด ๋ฉ๋๋ค.
INVITE ๋ฉ์์ง์์ ์ฌ์ฉ์(๋๋ SIP ์ฅ์น)๋ URI๋ก ์๋ณ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก SIP URI๋ ์ฌ์ฉ์์ ์ ํ๋ฒํธ + SIP ์๋ฒ ์ฃผ์์ ๋๋ค. SIP URI๋ ์ด๋ฉ์ผ ์ฃผ์์ ๋งค์ฐ ์ ์ฌํ๋ฉฐ sip:x@y:Port๋ก ์์ฑ๋ฉ๋๋ค.
์์ฒญ ๋ผ์ธ URI:
์์ฒญ-๋ผ์ธ-URI - ํ๋์๋ ํตํ ์์ ์๊ฐ ํฌํจ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ฐ๋ ์ฌ๋ ํ๋์ ๋์ผํ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ง๋ง ์ฌ์ฉ์์ ํ์ ์ด๋ฆ์ ์์ต๋๋ค.
๋น์ :
๊ฒฝ์ - INVITE ์์ฒญ์ด ํต๊ณผํ๋ ๊ฐ SIP ์๋ฒ(ํ๋ก์)๋ ํด๋น IP ์ฃผ์์ ๋ฉ์์ง๊ฐ ์์ ๋ ํฌํธ๋ฅผ ๊ฒฝ์ ๋ชฉ๋ก์ ๋งจ ์์ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ฉ์์ง๋ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ์ถ๊ฐ๋ก ์ ์ก๋ฉ๋๋ค. ์ต์ข ์์ ์๊ฐ INVITE ์์ฒญ์ ์๋ตํ๋ฉด ๋ชจ๋ ์ ์ก ๋ ธ๋๋ Via ํค๋๋ฅผ "์กฐํ"ํ๊ณ ๋์ผํ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๋ฐ์ ์์๊ฒ ๋ฉ์์ง๋ฅผ ๋ฐํํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์ ์ก SIP ํ๋ก์๋ ํค๋์์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
๋ถํฐ
From - ํค๋๋ SIP ์๋ฒ์ ๊ด์ ์์ ์์ฒญ ๊ฐ์์๋ฅผ ๋ํ๋ ๋๋ค. ํค๋๋ ์ด๋ฉ์ผ ์ฃผ์์ ๋์ผํ ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค(user@domain, ์ฌ๊ธฐ์ user๋ 3CX ์ฌ์ฉ์์ ๋ด์ ๋ฒํธ์ด๊ณ domain์ 3CX ์๋ฒ์ ๋ก์ปฌ IP ์ฃผ์ ๋๋ SIP ๋๋ฉ์ธ์ ๋๋ค). To ํค๋์ ๋ง์ฐฌ๊ฐ์ง๋ก From ํค๋์๋ URI์ ์ ํ์ ์ผ๋ก ์ฌ์ฉ์์ ํ์ ์ด๋ฆ์ด ํฌํจ๋ฉ๋๋ค. From ํค๋๋ฅผ ๋ณด๋ฉด ์ด SIP ์์ฒญ์ด ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋์ด์ผ ํ๋์ง ์ ํํ๊ฒ ์ดํดํ ์ ์์ต๋๋ค.
SIP ํ์ค RFC 3261์์๋ ํ์ ์ด๋ฆ์ด ์ ์ก๋์ง ์๋ ๊ฒฝ์ฐ IP ์ ํ ๋๋ UAC(VoIP ๊ฒ์ดํธ์จ์ด)๊ฐ ํ์ ์ด๋ฆ "Anonymous"๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค๊ณ ๊ท์ ํฉ๋๋ค(์: From: "Anonymous")[์ด๋ฉ์ผ ๋ณดํธ]>.
์:
To - ์ด ํค๋๋ ์์ฒญ ์์ ์๋ฅผ ๋ํ๋ ๋๋ค. ์ด๋ ํตํ์ ์ต์ข ์์ ์์ผ ์๋ ์๊ณ ์ค๊ฐ ๋งํฌ์ผ ์๋ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํค๋์๋ SIP URI๊ฐ ํฌํจ๋์ด ์์ง๋ง ๋ค๋ฅธ ๋ฐฉ์๋ ๊ฐ๋ฅํฉ๋๋ค(RFC 2806 [9] ์ฐธ์กฐ). ๊ทธ๋ฌ๋ SIP URI๋ ํ๋์จ์ด ์ ์กฐ์ ์ฒด์ ๊ด๊ณ์์ด SIP ํ๋กํ ์ฝ์ ๋ชจ๋ ๊ตฌํ์์ ์ง์๋์ด์ผ ํฉ๋๋ค. ๋ฐ๋ ์ฌ๋ ํค๋์๋ ํ์ ์ด๋ฆ๋ ํฌํจ๋ ์ ์์ต๋๋ค(์: ๋ฐ๋ ์ฌ๋: "์ด๋ฆ ์ฑ").[์ด๋ฉ์ผ ๋ณดํธ]>).
์ผ๋ฐ์ ์ผ๋ก ๋ฐ๋ ์ฌ๋ ํ๋์๋ ์์ฒญ์ ์ฒ๋ฆฌํ ์ฒซ ๋ฒ์งธ(๋ค์) SIP ํ๋ก์๋ฅผ ๊ฐ๋ฆฌํค๋ SIP URI๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์ด ์ฌ๋์ด ์์ฒญ์ ์ต์ข ์์ ์์ผ ํ์๋ ์์ต๋๋ค.
์ฐ๋ฝ์ฒ :
์ฐ๋ฝ์ฒ - ํค๋์๋ INVITE ์์ฒญ์ ๋ฐ์ ์์๊ฒ ์ฐ๋ฝํ ์ ์๋ SIP URI๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์ด๋ ํ์ ํค๋์ด๋ฉฐ SIP URI๋ฅผ ํ๋๋ง ํฌํจํด์ผ ํฉ๋๋ค. ์ด๋ ์๋ SIP INVITE ์์ฒญ์ ํด๋นํ๋ ์๋ฐฉํฅ ํต์ ์ ์ผ๋ถ์ ๋๋ค. ์์ฒญ์ ๋ณด๋ธ ์ฌ๋์ด ์๋ต์ ๊ธฐ๋ํ๋ ์ฌ๋ฐ๋ฅธ ์ ๋ณด(IP ์ฃผ์ ํฌํจ)๊ฐ ์ฐ๋ฝ์ฒ ํค๋์ ํฌํจ๋์ด ์๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํฉ๋๋ค. URI ์ฐ๋ฝ์ฒ๋ ํต์ ์ธ์ ์ด ์ค์ ๋ ํ ์ถ๊ฐ ํต์ ์๋ ์ฌ์ฉ๋ฉ๋๋ค.
ํ์ฉํ๋ค:
ํ์ฉ - ํ๋์๋ ์ผํ๋ก ๊ตฌ๋ถ๋ ๋งค๊ฐ๋ณ์(SIP ๋ฐฉ๋ฒ) ๋ชฉ๋ก์ด ํฌํจ๋์ด ์์ต๋๋ค. ํน์ ๋ฐ์ ์(์ฅ์น)๊ฐ ์ง์ํ๋ SIP ํ๋กํ ์ฝ ๊ธฐ๋ฅ์ ์ค๋ช
ํฉ๋๋ค. ์ ์ฒด ๋ฉ์๋ ๋ชฉ๋ก: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, PRACK, REFER, REGISTER, SUBSCRIBE, UPDATE. SIP ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ ์ค๋ช
ํฉ๋๋ค.
์ถ์ฒ : habr.com