์ด์ œ ์ฐจ๋‹จํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: ํƒˆ์ค‘์•™ํ™” ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ํ”Œ๋žซํผ Jami์˜ ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์ฐจ๋‹จํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: ํƒˆ์ค‘์•™ํ™” ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ํ”Œ๋žซํผ Jami์˜ ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์˜ค๋Š˜ ๋“ฑ์žฅ ์ดˆํŒ ๋ถ„์‚ฐํ˜• ํ†ต์‹  ํ”Œ๋žซํผ Jami, ์ฝ”๋“œ๋ช… Together๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ด์ „์— ์ด ํ”„๋กœ์ ํŠธ๋Š” ๋‹ค๋ฅธ ์ด๋ฆ„์ธ Ring์œผ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ ๊ทธ ์ด์ „์—๋Š” SFLPhone์œผ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 2018๋…„์—๋Š” ์ƒํ‘œ์™€์˜ ์ถฉ๋Œ ๊ฐ€๋Šฅ์„ฑ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋ถ„์‚ฐํ˜• ๋ฉ”์‹ ์ €์˜ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”์‹ ์ € ์ฝ”๋“œ๋Š” GPLv3 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. Jami๋Š” GNU/Linux, Windows, MacOS, iOS, Android ๋ฐ Android TV์šฉ์œผ๋กœ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์„ ํƒ์ ์œผ๋กœ Qt, GTK ๋ฐ Electron ๊ธฐ๋ฐ˜ ์ธํ„ฐํŽ˜์ด์Šค ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ฌผ๋ก  ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์•„๋‹ˆ๋ผ Jami๊ฐ€ ๊ธฐํšŒ๋ฅผ ์ค˜ ์ „์šฉ ์™ธ๋ถ€ ์„œ๋ฒ„์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๊ตํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€์‹  ์ข…๋‹จ ๊ฐ„ ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ๊ฐ„์— ์ง์ ‘ ์—ฐ๊ฒฐ์ด ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก์—๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์ฆ ์ ˆ์ฐจ๋Š” X.509 ์ธ์ฆ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€ ์™ธ์—๋„ ์ด ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜๋ฉด ์Œ์„ฑ ๋ฐ ํ™”์ƒ ํ†ตํ™”, ์›๊ฒฉ ํšŒ์˜ ์ƒ์„ฑ, ํŒŒ์ผ ๊ตํ™˜, ํŒŒ์ผ ๊ณต์œ  ๊ตฌ์„ฑ ๋ฐ ์ฝ˜ํ…์ธ  ํ™”๋ฉด ๊ตฌ์„ฑ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ฒ˜์Œ์— ์ด ํ”„๋กœ์ ํŠธ๋Š” ์†Œํ”„ํŠธ์›จ์–ด SIP ์ „ํ™”๋กœ ํฌ์ง€์…”๋‹ ๋ฐ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐœ๋ฐœ์ž๋Š” SIP์™€์˜ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๊ณ ์ด ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ „ํ™”๋ฅผ ๊ฑธ ๊ฐ€๋Šฅ์„ฑ์„ ๋‚จ๊ธฐ๋ฉด์„œ ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ๊ทธ๋žจ์€ G711u, G711a, GSM, Speex, Opus, G.722 ๋ฐ ICE, SIP, TLS ํ”„๋กœํ† ์ฝœ์„ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ์ฝ”๋ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

ํ†ต์‹  ๊ธฐ๋Šฅ์—๋Š” ์ฐฉ์‹  ์ „ํ™˜ ์ทจ์†Œ, ํ†ตํ™” ๋ณด๋ฅ˜, ํ†ตํ™” ๋…น์Œ, ๊ฒ€์ƒ‰์„ ํ†ตํ•œ ํ†ตํ™” ๊ธฐ๋ก, ์ž๋™ ๋ณผ๋ฅจ ์ œ์–ด, GNOME ๋ฐ KDE ์ฃผ์†Œ๋ก ํ†ตํ•ฉ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์œ„์—์„œ ์šฐ๋ฆฌ๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ธ์ฆ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋ธ”๋ก์ฒด์ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์†Œ๋ก์€ ์ด๋”๋ฆฌ์›€์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— ์–ด๋–ค ์žฅ์น˜๊ฐ€ ํ™œ์„ฑ ์ƒํƒœ์ธ์ง€์— ๊ด€๊ณ„์—†์ด ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ์žฅ์น˜์—์„œ ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์—ฐ๋ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. RingID์—์„œ ์ด๋ฆ„ ๋ณ€ํ™˜์„ ๋‹ด๋‹นํ•˜๋Š” ์ฃผ์†Œ๋ก์€ ๋‹ค๋ฅธ ๊ตฌ์„ฑ์›์ด ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ์ „์ฒด ์ฃผ์†Œ๋ก์˜ ๋กœ์ปฌ ๋ณต์‚ฌ๋ณธ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ž์‹ ์˜ ๋…ธ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์ง€์ •๊ณผ ๊ด€๋ จํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด OpenDHT ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœํ† ์ฝœ์€ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์žˆ๋Š” ์ค‘์•™ ์ง‘์ค‘์‹ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. Jami์˜ ๊ธฐ๋ณธ์€ ์—ฐ๊ฒฐ ์ฒ˜๋ฆฌ, ํ†ต์‹  ๊ตฌ์„ฑ, ๋น„๋””์˜ค ๋ฐ ์‚ฌ์šด๋“œ ์ž‘์—…์„ ๋‹ด๋‹นํ•˜๋Š” jami-daemon์ž…๋‹ˆ๋‹ค.

jami-daemon๊ณผ์˜ ์ƒํ˜ธ ์ž‘์šฉ์€ LibRingClient ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฐ˜์ด๋ฉฐ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ ํ”Œ๋žซํผ์— ์–ฝ๋งค์ด์ง€ ์•Š๋Š” ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฏธ LibRingClient ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์œ„์— ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

P2P๋ฉ”์‹ ์ €๋ฅผ ํ†ต์‹ ํ”Œ๋žซํผ์œผ๋กœ ๊ฐ€๊ณตํ•  ๋•Œ ๊ฐœ๋ฐœ์ž๋Š” ์ถ”๊ฐ€ ์‹ ๊ทœ ๋ฐ ์—…๋ฐ์ดํŠธ๋œ ๊ธฐ์กด ๊ธฐ๋Šฅ. ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค:

  • ๋‚ฎ์€ ๋Œ€์—ญํญ ๋„คํŠธ์›Œํฌ์—์„œ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Android ๋ฐ iOS์—์„œ ์ž‘์—…ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ฆฌ์†Œ์Šค์˜ ์–‘์„ ์ค„์˜€์Šต๋‹ˆ๋‹ค.
  • Windows์šฉ ์žฌ์ž‘์„ฑ ํด๋ผ์ด์–ธํŠธ. ํƒœ๋ธ”๋ฆฟ ๋ชจ๋“œ์—์„œ๋„ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์—ฌ๋Ÿฌ ์ฐธ๊ฐ€์ž์™€ ์›๊ฒฉ ํšŒ์˜๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํšŒ์˜์—์„œ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ๋ชจ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•œ ๋ฒˆ์˜ ํด๋ฆญ์œผ๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์„œ๋ฒ„๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ํšŒ์˜์— ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Œ).
  • JAMS ๊ณ„์ • ๊ด€๋ฆฌ ์„œ๋ฒ„๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ ๋ฉ”์‹ ์ €์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ์—ฐ๊ฒฐ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ์ฐจ๋‹จํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: ํƒˆ์ค‘์•™ํ™” ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ํ”Œ๋žซํผ Jami์˜ ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€