| ์์ฝ | Discourse ๋ด์์ P2P(ํผ์ด ํฌ ํผ์ด) ์์ฑ ๋ฐ ์์ ํตํ๋ฅผ ์ง์ํฉ๋๋ค (WebRTC). ๋ ๋ค๋๋ ๋ฒํผ ๋๋ 1:1 ์ฑํ ์์ฑ์ฐฝ์์ 1:1 ํตํ๋ฅผ ์์ํ ์ ์์ต๋๋ค. ๋ด์ฅ ์์ ฏ ๋ฐ ํตํ UI๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ธ๋ถ ์ฑ ๋ถํ์. Discourse ์๋ฒ๋ **์๊ทธ๋๋ง(๋ฏธ๋์ด ์ ์ก X)**๋ง ๋ด๋นํฉ๋๋ค. ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์ค๋์ค/๋น๋์ค๋ ๋ ๋ธ๋ผ์ฐ์ ๊ฐ์ ์ง์ (P2P) ์ ์ก๋ฉ๋๋ค. ๊ด๋ฆฌ ์ค์ ์์ ์ ํ์ TURN ์๋ฒ๋ฅผ ์ถ๊ฐํ ์ ์์ผ๋ฉฐ, ์ง์ P2P๊ฐ ์คํจํ ๊ฒฝ์ฐ(์: ์๊ฒฉํ NAT/๋ฐฉํ๋ฒฝ) ๋ฏธ๋์ด๊ฐ TURN์ ํตํด ์ค๊ณ๋์ด ํตํ๊ฐ ๊ณ์ ๊ฐ๋ฅํฉ๋๋ค. | |
| ์ ์ฅ์ ๋งํฌ | GitHub - idiskuz/diskuz-call: Voice calls (WebRTC) for Discourse. P2P calls between users, built-in UI. Created for diskuz.com. ยท GitHub | |
| ์ค์น ๊ฐ์ด๋ | Discourse์ ํ๋ฌ๊ทธ์ธ ์ค์นํ๋ ๋ฐฉ๋ฒ | |
| ์ปค๋ฎค๋ํฐ diskuz Call | ์ด ์๋ก์ด ํ๋ฌ๊ทธ์ธ์ ๋ํ ์ง์ ์ปค๋ฎค๋ํฐ๋ diskuz.com์์ ํ์ธํ์ธ์. |
๊ธฐ๋ฅ
- P2P ์์ฑ ๋ฐ ์์ (WebRTC) โ Discourse๋ ์๊ทธ๋๋ง(offer/answer, ICE)๋ง ์ฒ๋ฆฌํ๋ฉฐ, ์ค๋์ค/๋น๋์ค๋ฅผ ์์ ํ๊ฑฐ๋ ์ ์ฅํ์ง ์์ต๋๋ค. STUN(๊ธฐ๋ณธ๊ฐ: Google)์ ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ก๋ฅผ ์ฐพ์ ์ ์๋๋ก ๋์์ฃผ๋ฉฐ, ์ดํ ๋ฏธ๋์ด๋ ์ง์ ์ ์ก๋ฉ๋๋ค(์ง์ ํ P2P). TURN(์ ํ์ , ๊ด๋ฆฌ โ ICE ์๋ฒ์์ ์ค์ ๊ฐ๋ฅ)์ ์ค๊ณ ์๋ฒ ์ญํ ์ ํฉ๋๋ค. ์ง์ P2P๊ฐ ์คํจํ ๊ฒฝ์ฐ(๋์นญ NAT, ๊ธฐ์ ๋ฐฉํ๋ฒฝ ๋ฑ) ๋ฏธ๋์ด๋ A โ TURN ์๋ฒ โ B ๊ฒฝ๋ก๋ก ์ ์ก๋์ด ํตํ๊ฐ ๊ณ์ ๊ฐ๋ฅํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ํตํ ์คํจ๋ ๋จ๋ฐฉํฅ ์ค๋์ค๋ฅผ ๋ณด๊ณ ํ๋ ๊ฒฝ์ฐ TURN์ ์ถ๊ฐํ์ธ์.
- ๋ ๋ค๋๋ ๋ฒํผ (์ค๋ฅธ์ชฝ ์๋) โ ์ฌ์ฉ์๋ช ์ ์ ๋ ฅํ๊ณ ํตํ๋ฅผ ์์ํ ์ ์๋ ์์ ฏ์ ์ฝ๋๋ค. ํ ํฝ ์์ฑ์ฐฝ์ด๋ ์ฑํ ์ด ์ด๋ ค ์์ ๋ ์จ๊ฒจ์ง๋๋ค. ๊ด๋ฆฌ์๊ฐ ์ฌ์ดํธ ์ ์ฒด์์ ๋นํ์ฑํํ ์ ์์ต๋๋ค.
- 1:1 ์ฑํ ๋ด ํตํ ๋ฒํผ โ ๋ค๋ฅธ ์ฌ์ฉ์์ ํตํ๋ฅผ ์์ํ๊ธฐ ์ํ ์ฑํ ์์ฑ์ฐฝ ์์ด์ฝ์ ๋๋ค. ๊ด๋ฆฌ์๊ฐ ์ฌ์ดํธ ์ ์ฒด์์ ๋นํ์ฑํํ ์ ์์ต๋๋ค. ํ์ฑํ๋ ๊ฒฝ์ฐ ํ์ฉ๋ ๊ทธ๋ฃน์๊ฒ๋ง ํ์๋ฉ๋๋ค.
- ๊ทธ๋ฃน ๊ธฐ๋ฐ ์ ๊ทผ ๊ถํ โ ์ค์ ๋ ๊ทธ๋ฃน์ ์ฌ์ฉ์๋ง diskuz Call์ ๋ณด๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ ํ์ โ์์ ์๊ฐ ๋ฐ์ ์๋ฅผ ํ๋ก์ฐํด์ผ ํจโ ๊ธฐ๋ฅ( Discourse Follow ํ์)๋ฅผ ์ง์ํฉ๋๋ค.
- ๋ณ๋์ โ์์ ํ์ฉโ ๊ทธ๋ฃน โ ํตํ ์ค ์นด๋ฉ๋ผ๋ฅผ ์ผค ์ ์๋ ์ฌ์ฉ์๋ฅผ ์ ์ดํฉ๋๋ค.
- ์ค์ ๊ฐ๋ฅํ ๋ฒจ์๋ฆฌ โ ํตํ ์์ ์ ์๋ฆฌ: ์์, ๊ธฐ๋ณธ, ๋ฉ, ๋ฒจ, ์ฑํ , ์ฌ์ฉ์ ์ง์ (์ต๋ 10๊ฐ์ MP3 URL; ์ฌ์ฉ์๊ฐ ์์ ฏ์์ ํ๋ ์ ํ), ๋๋ ๋ด์ฅ ๋์ฒด ํ๋ฆฌ์ . ๋ณ๋๋ก, Discourse ์๋ฆผ(๋ฒจ ์์ด์ฝ)์ ์์ ์ "ํตํ ์ค"์, ๋์น ํตํ์ ๊ฒฝ์ฐ ์๊ฐ๊ณผ ํจ๊ป "๋์น ํตํ"๋ฅผ ํ์ํฉ๋๋ค.
- ์์ ฏ โ ๋ ๊ฐ์ ํ์ด์ง: โ์น๊ตฌ์๊ฒ ํตํโ(ํ) ๋ฐ ์๋ฆผ(์์ , ๋ฐ์ , ์ต๊ทผ, ๋์น ํตํ; ํญ๋น ์ต๋ 10๊ฐ; ์ฌ์ฉ์๋ช ํด๋ฆญ ์ ๋ค์ ํตํ ๊ฐ๋ฅ). ๋ฐ์คํฌํฑ: ์๋จ ๋ฐ๋ฅผ ๋๋๊ทธํ์ฌ ์ด๋ ๊ฐ๋ฅ. ๋ชจ๋ฐ์ผ: ์ ์ฒด ํ๋ฉด.
- ํตํ ์ค โ ํตํ ์๊ฐ, ์์๊ฑฐ, ์คํผ์ปค, ์์ ์ผ๊ธฐ/๋๊ธฐ, ํ๋ฆผ ํจ๊ณผ(๋ฐ์คํฌํฑ/Android), ๋ชจ๋ฐ์ผ ์ด์ด ๋ชจ๋(์ด๋์ด ์ค๋ฒ๋ ์ด; 3ํ ํญํ์ฌ ์ ๊ธ ํด์ ). ๋ธ๋ผ์ฐ์ ๋ด ์ฌ์ฉ์ ์ํ(์จ๋ผ์ธ, ๋ฐ์จ, ์คํ๋ผ์ธ); ๋ฐ์จ/์คํ๋ผ์ธ ์ํ์์๋ ์์ ํตํ๋ฅผ ์๋์ผ๋ก ๊ฑฐ๋ถํ ์ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ํญ์ผ๋ก ์ ํํ๋ฉด 60์ด ํ์ด๋จธ๊ฐ ์์๋๋ฉฐ, ๋์์ค์ง ์์ผ๋ฉด ํตํ๊ฐ ์ข ๋ฃ๋ฉ๋๋ค.
- ๋ก์ปฌ๋ผ์ด์ ์ด์ โ ์์ด ๋ฐ ์ดํ๋ฆฌ์์ด(ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ).
์ํ: ๋ฒ ํ. ํตํ ์คํจ ๋๋ ๋จ๋ฐฉํฅ ์ค๋์ค์ ๊ฒฝ์ฐ, ๊ด๋ฆฌ โ ํ๋ฌ๊ทธ์ธ โ ICE ์๋ฒ์์ TURN์ ๊ตฌ์ฑํ์ธ์.
์ค์
- ์ค์น โ ํ๋ฌ๊ทธ์ธ์ ์ถ๊ฐํฉ๋๋ค(์:
app.ymlํ ๋๋ ํ๋ฌ๊ทธ์ธ ๋๋ ํฐ๋ฆฌ์ ์๋์ผ๋ก):git clone https://github.com/idiskuz/diskuz-call.git- ์ฑ์ ๋ค์ ๋น๋ํฉ๋๋ค(์:
./launcher rebuild app).
- ํ์ฑํ โ ๊ด๋ฆฌ โ ํ๋ฌ๊ทธ์ธ: diskuz Call ํ์ฑํ(๋ชฉ๋ก์ ์๋ ๊ฒฝ์ฐ). ๊ด๋ฆฌ โ ์ค์ โ ํ๋ฌ๊ทธ์ธ: diskuz Call ํ์ฑํ ์ฒดํฌ.
- ์ ๊ทผ ๊ถํ โ diskuz Call์ ๋ณด๊ณ ์ฌ์ฉํ ์ ์๋ ๋์์ ์ํ๋ ๊ทธ๋ฃน์ผ๋ก ์ค์ ํฉ๋๋ค(์: ๊ด๋ฆฌ์, ๋ชจ๋๋ ์ดํฐ, ์คํํ์ ๊ฒฝ์ฐ
1|2|3). - ์ ํ ์ฌํญ โ ํ์ ์ ๋ ๋ค๋๋ ๋ฒํผ ํ์ / ์ฑํ ๋ฒํผ ํ์, ์์ ์๊ฐ ๋ฐ์ ์๋ฅผ ํ๋ก์ฐํ๋๋ก ์๊ตฌ(Discourse Follow์ ํจ๊ป), ์์ ํตํ ์๋ฆฌ, ์ฌ์ฉ์ ์ง์ ๋ฒจ์๋ฆฌ ๋๋ ๋์ฒด ๋ฒจ์๋ฆฌ, ์์ ํ์ฑํ ๊ฐ๋ฅ ๊ทธ๋ฃน, ์ฃผ์ ์์, ICE ์๋ฒ(NAT/๋ฐฉํ๋ฒฝ์ ์ํ TURN JSON)๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
์๊ตฌ ์ฌํญ: Discourse(์๊ทธ๋๋ง์ ์ํด ๋ด์ฅ ์ค์๊ฐ ๋ฉ์์ง ์ฌ์ฉ). ์ ํ ์ฌํญ: Discourse Follow (โ์์ ์๊ฐ ๋ฐ์ ์๋ฅผ ํ๋ก์ฐํด์ผ ํจโ ๊ธฐ๋ฅ์ฉ). WebRTC, ๋ง์ดํฌ(์์์ ๊ฒฝ์ฐ ์นด๋ฉ๋ผ)๋ฅผ ์ง์ํ๋ ๋ธ๋ผ์ฐ์ .
์ค์ ํญ๋ชฉ
| ์ด๋ฆ | ์ค๋ช |
|---|---|
| diskuz Call ํ์ฑํ | ํ๋ฌ๊ทธ์ธ์ ๋ง์คํฐ ์ค์์น. |
| diskuz Call์ ๋ณด๊ณ ์ฌ์ฉํ ์ ์๋ ๋์ | ๊ทธ๋ฃน ๋ชฉ๋ก(์: ID๋ก ๊ด๋ฆฌ์, ๋ชจ๋๋ ์ดํฐ, ์คํํ). ์ด ์ฌ์ฉ์๋ง ํ๋ฌ๊ทธ์ธ์ ๋ณด๊ณ ํตํํ ์ ์์ต๋๋ค. |
| ์์ ์๊ฐ ๋ฐ์ ์๋ฅผ ํ๋ก์ฐํ๋๋ก ์๊ตฌ | ํ์ฑํ ์(Discourse Follow์ ํจ๊ป), ์์ ์๋ ํตํ๋ฅผ ๋ฐ์ผ๋ ค๋ฉด ๋ฐ์ ์๋ฅผ ํ๋ก์ฐํด์ผ ํฉ๋๋ค. |
| ๋ ๋ค๋๋ ๋ฒํผ ํ์ | ON: ํ์ฉ๋ ๊ทธ๋ฃน์๊ฒ๋ง ๋ ๋ค๋๋ ๋ฒํผ ํ์. OFF: ๋ชจ๋ ์ฌ๋์๊ฒ ์จ๊น. |
| ์ฑํ ๋ฒํผ ํ์ | ON: 1:1 ์ฑํ ๋ด ํตํ ๋ฒํผ์ด ํ์ฉ๋ ๊ทธ๋ฃน์๊ฒ๋ง ํ์. OFF: ๋ชจ๋ ์ฌ๋์๊ฒ ์จ๊น. |
| ์์ ํ์ฑํ ๊ฐ๋ฅ ๊ทธ๋ฃน | ํตํ ์ค ์์ ๋ฒํผ์ ์ฌ์ฉํ ์ ์๋ ๊ทธ๋ฃน ๋ชฉ๋ก. |
| ์ฃผ์ ์์ | ๋ฒํผ ๋ฐ ๊ฐ์กฐ ์์์ ์ฌ์ฉํ 16์ง์ ์์(์: #13c98c). |
| ์์ ํตํ ์๋ฆฌ | ์์, ๊ธฐ๋ณธ, ๋ฉ, ๋ฒจ, ์ฑํ , ์ฌ์ฉ์ ์ง์ , ๋๋ ๋์ฒด. |
| ์ฌ์ฉ์ ์ง์ ๋ฒจ์๋ฆฌ 1โ10 | MP3 URL. ์๋ฆฌ๊ฐ ์ฌ์ฉ์ ์ง์ ์ผ ๋ ์ฌ์ฉ; ์ฌ์ฉ์๊ฐ ์์ ฏ์์ ํ๋๋ฅผ ์ ํํฉ๋๋ค. |
| ๋์ฒด ๋ฒจ์๋ฆฌ | ์๋ฆฌ๊ฐ ๋์ฒด์ผ ๋ ์ฌ์ฉํ ํ๋ฆฌ์ (์: soft, classic, modern, festivo, marimba, relax1โ5). |
| ICE ์๋ฒ | STUN/TURN์ ์ํ ์ ํ์ JSON ๋ฐฐ์ด. ๋น์ด ์์ = Google STUN๋ง ์ฌ์ฉ. |
| ๋๋ฒ๊ทธ ๋ก๊ทธ | ON์ผ ๋ ๋ธ๋ผ์ฐ์ ์ฝ์(F12)์ [diskuz-call] ๋ฉ์์ง ์ถ๋ ฅ. ์ง์์ ์ํด ์ฌ์ฉ; ํ๋ก๋์ ํ๊ฒฝ์์๋ ๋นํ์ฑํํ์ธ์. |
์ ์: diskuz.com, Cristian Deraco
ํฌ๋ ๋ง: ์ปจ์
, ๊ธฐ๋ฅ ๋ฐ ๋์์ธ์ Cristian Deraco (diskuz.com). AI ์ง์ ๊ฐ๋ฐ๋ก ๊ตฌํ.
๋ฒ์ : 0.4.0-beta
์ด๊ฒ์ ๊ณต์ Discourse ํ๋ฌ๊ทธ์ธ์ด ์๋๋๋ค.
๊ทํ์ ์ฌ์ดํธ์์ ์์ ฏ์ด ์ด๋ป๊ฒ ๋ณด์ด๋์ง ๋ณด๊ณ ์ถ์ต๋๋ค. ํ๋ฌ๊ทธ์ธ ์ต์
ํจ๋์์ diskuz Call ์ฃผ์ ์์์ ์ง์ ์ค์ ํ ์ ์์ต๋๋ค ![]()
๋ชจ๋์ ์ด ์์์ ๊ณต์ ํ๊ฒ ๋์ด ์ ๋ง ์ค๋ ๋๋ค โ diskuz Call์ด ๋ง์นจ๋ด ์ถ์๋์์ต๋๋ค! ์ฌ๋ฌ๋ถ์ ์๊ฒฌ์ ๊ธฐ๋ค๋ฆฝ๋๋ค ![]()







