์ด๊ฒ์ SIP.js์ ๋ํ ๋ชจ๋ฐ์ผ ์ง์์ ๋ ผ์ํ๊ธฐ ์ํ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์ ๋๋ค. https://github.com/alongubkin/phonertc/issues/7 ์ฐธ์กฐ
์ด Joseph์ ์ด์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ฌ์ฉ ์ฌ๋ก๋ SIP ํตํ๋ฅผ ์ง์ํ๋ ํฌ๋ก์ค ํ๋ซํผ ์ฑ(์น, iOS, Android)์ ๋๋ค. ์ ๋ PJSip์ฉ Phonegap ํ๋ฌ๊ทธ์ธ์ ์์ ํ๊ณ ์์ง๋ง iOS ๋ฐ Android์์ WebRTC๊ฐ ์๋ํ๋๋ก ํ ์ ์๋ค๋ฉด ์ ๊ฑฐํ ์ ์๋ ์ถ๊ฐ ๋ณต์ก์ฑ ๋ ์ด์ด๋ฅผ ์ถ๊ฐํฉ๋๋ค.
์ด ์ฌ์ฉ ์ฌ๋ก์์ PhoneRTC์ ๊ฐ์ ๊ฒ์ด ์ถ๊ตฌํ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํ์ญ๋๊น?
์ฌ๊ธฐ ๋ด ์๋ต์ ์ดํด๋ณด์ญ์์ค. https://github.com/alongubkin/phonertc/issues/7
ํ์ฌ ์ํ์ PhoneRTC๊ฐ SIP.js์์ ์๋ํ ๊ฒ์ด๋ผ๊ณ ๋ ์๊ฐํ์ง ์์ต๋๋ค. ๊ทธ๊ฒ์ด ์ ๊ณตํ๋ ๊ฒ์ ๋ชจ๋ฐ์ผ ๊ฐ๋ฐ์ด ์ด๋์ ์๋์ง์ ๋ํ ์ข์ ์ถ๋ฐ์ ์ ๋๋ค.
iOS์ ๊ฒฝ์ฐ WebRTC ๋ผ์ด๋ธ๋ฌ๋ฆฌ(SSL ์ฌ์ฉ)๋ฅผ ๋ค์ ์ปดํ์ผํ ์ ์์๊ณ ์ด์ Obj-C ๋ ์ด์ด๋ฅผ ์์ฑํ์ฌ ํ์ํ WebRTC ๊ธฐ๋ฅ์ SIP.js์ ๋ ธ์ถํ๋ ์์ ์ ํ๊ณ ์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ด ๋ชฉํ๋ SIP.js์ iOS์์ WebRTC ์์ฑ ํตํ๋ฅผ ํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
์ค๋์ค ๊ธฐ๋ฅ์ด ํ์คํด์ง๋ฉด ๋น๋์ค ์ถ๊ฐ ์์ ์ ์์ํฉ๋๋ค. ๋น๋์ค์ ๋ํ ์ ์์ด๋์ด๋ ํ์ด์ง์ ์๋ ์์์ ID๋ฅผ ๊ฐ์ ธ์ Obj-C์ ์ ๋ฌํ๋ ๊ธฐ๋ฅ์ ๊ฐ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ค์ดํฐ๋ธ ์ฝ๋๊ฐ ํ์ด์ง์์ ํด๋น ์์๋ฅผ ์ฐพ๊ณ ๊ทธ ์์ ๋ค์ดํฐ๋ธ ๋น๋์ค ์์๋ฅผ ๋ฐฐ์นํ๋๋ก ํฉ๋๋ค. ๋๋ ์๋ง๋ ์ต๊ณ ์ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ง๋ค ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋น๋์ค๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ค๋ฅธ ์์ด๋์ด๋ ์ฌ์ ํ ์ด๋ ค ์์ต๋๋ค.
@lylepratt , iOS ์ง์์ด ์ฑ ์น์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธ ํ๊ธฐ๋ง SIP.js ๋ฐ๋ชจ ์ ํ ๋ฅผ ์ดํด๋ณด์ญ์์ค. Android ์ฑ์ ์ ๋ง๋ก ๊ฐ๊ณ ์ถ๋ค๋ฉด Crosswalk ๋ฅผ ์ฌ์ฉํ์ฌ ์น ์ฑ์ WebRTC ์ง์ WebView์ ํจ๊ป ๋ฌถ์ ์ ์์ต๋๋ค.
@lylepratt , ๊ด์ฌ์ด ์๋ ๊ฒฝ์ฐ SIP.js์ ํจ๊ป Crosswalk๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์์ต์ ๊ฐ ์์ต๋๋ค.
Cordova ํ๋ฌ๊ทธ์ธ์ ์ฑ์ ํตํฉํ๋ ค๋ฉด Crosswalk Cordova ๋ฅผ ์ฌ์ฉํ์ฌ Cordova์์ ์์ฑํ Android ์ฑ์ WebRTC ๊ธฐ๋ฅ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. Crosswalk Cordova์ HelloWorld ํ ํ๋ฆฟ์ผ๋ก ์์ํ ํ assets/www ๋๋ ํ ๋ฆฌ๋ฅผ ๋ฐ๋ชจ ์ ํ ์์ฐ ์ผ๋ก ๋ฐ๊พธ๊ณ AndroidManifest.xml์ ๋ค์ ๊ถํ์ ์ถ๊ฐํ์ฌ SIP.js ๋ฐ๋ชจ ์ ํ ์ฑ์ ๋น๋ํ ์ ์์์ต๋๋ค.
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
์ ๋ณด ๊ฐ์ฌํฉ๋๋ค. ๋ถํํ๋ ์ฐ๋ฆฌ๋
iOS์์๋ ์๋ํฉ๋๋ค.
์ด๋ฌํ ๋
ผ์๋ฅผ ๋ฐํ์ผ๋ก ์ฐ๋ฆฌ๋ ๊ณ์ํด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค.
ํฉ๋ฆฌ์ ์ธ ์๊ฐ ๋ด์ ์ด๋ฅผ ์ํํ๊ธฐ ์ํด PJSip ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํฉ๋๋ค.
ํ๋ฌ๊ทธ์ธ์ SIP.js API์ ๋ง๊ฒ ๋ง๋ค ์๋ ์์ต๋๋ค.
2014๋
6์ 11์ผ ์คํ 2์ 26๋ถ์ "Joseph Frazier" [email protected]์ด ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
@lylepratt https://github.com/lylepratt , ๊ธฐ๋ณธ ํํ ๋ฆฌ์ผ์ด ์์ต๋๋ค.
http://sipjs.com/guides/mobile/android-native/ Crosswalk ์ฌ์ฉ
๊ด์ฌ์ด ์๋ค๋ฉด SIP.js.Cordova ํ๋ฌ๊ทธ์ธ์ ์ฑ์ ํตํฉํ๋ ค๋ฉด Crosswalk๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ฐ์ ธ์ฌ Cordova https://crosswalk-project.org/#documentation/cordova
Cordova์์ ์์ฑํ Android ์ฑ์ ๋ํ WebRTC ๊ธฐ๋ฅ. ์์ํ ํ
Crosswalk Cordova์ HelloWorld ํ ํ๋ฆฟ ์ฌ์ฉ
https://crosswalk-project.org/#documentation/cordova/develop_an_application ,
SIP.js ๋ฐ๋ชจ ํฐ์ ๊ตฌ์ถํ ์ ์์์ต๋๋ค. http://sipjs.com/demo-phone/
asset/www ๋๋ ํ ๋ฆฌ๋ฅผ ๋ฐ๋ชจ ์ ํ ์์ฐ์ผ๋ก ๊ต์ฒดํ์ฌ ์ฑ
https://github.com/onsip/sipjs-examples/tree/6d260bfd8e3e1655a881ad1cad446ed2672d6611/demo-phone
AndroidManifest.xml์ ๋ค์ ๊ถํ์ ์ถ๊ฐํฉ๋๋ค.
โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/onsip/SIP.js/issues/31#issuecomment -45802303.
iOS์์ ์์ฑ ํตํ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด PhoneRTC ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๊ธฐ ์ํด SIP.js๊ฐ ๋ฌด์์ ํด์ผ ํ๋์ง ์ ์๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋์ ์ค๋ ๋ฐค ๊ฐ๋ ์ฆ๋ช ์์ ์ ์์ํ ๊ณํ์ ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ด ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์์ฐํ๋ ๋ฐ ๊ด์ฌ์ด ์์ต๋๋ค.
์ผ๋ฐ์ ์ธ ์์ด๋์ด๋ SIP.js๋ฅผ ์ฌ์ฉํ๋ iOS ์ฑ์ด ๊ธฐ๋ณธ SIP.WebRTC.MediaHandler๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ฉ์๋๊ฐ PhoneRTC ํ๋ฌ๊ทธ์ธ์ ํธ์ถํ๋ ์ฌ์ฉ์ ์ง์ MediaHandler ๋ฅผ ์ ๊ณต ํฉ๋๋ค.
๊ทํ์ ์ฑ์ SIP.js๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ณ ๋ คํด ์ฃผ์ จ์ผ๋ฉด ํฉ๋๋ค. ๋ฐ๋ผ์ ์ ์คํ์ด ์ด๋ป๊ฒ ์งํ๋๋์ง ๊ณ์ ์๋ ค ๋๋ฆฌ๊ฒ ์ต๋๋ค.
@joseph-onsip, ํ ๋ก ์ ๋ฐ๋ฅด๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ ์๋ฐ ์คํฌ๋ฆฝํธ ์์ฉ ํ๋ก๊ทธ๋จ ์์ค ๋ณ๊ฒฝ ์ฌํญ์ด๋ผ๋ ๊ฒ์ ์ดํดํ์ต๋๋ค. ์ฌ์ฉ์ ์ง์ ๋ฏธ๋์ด ์ฒ๋ฆฌ๊ธฐ๋ phoneRTC API๋ฅผ ๊ตฌํํ๋ ๋ชจ๋ ํ๋ซํผ๊ณผ ํธํ๋์ด์ผ ํ๋ฉฐ iOS์ ๊ตญํ๋์ง ์์ต๋๋ค.
์ข์ ์์์ ๋๋ค. ์ง์ ์ด ์๋ค๋ฉด ์ด๋ฒ ์ฃผ๋ง์ POC๋ฅผ ์คํํด๋ณด๊ณ ์ถ์ต๋๋ค.
์ข์, ๋๋ ์ฝ๊ฐ์ ์ง์ ์ ์ด๋ฃจ์๋ค. ๋ค์์ ๋ฐ์คํฌํฑ ๋ธ๋ผ์ฐ์ ์์ ์คํ๋๋ WebRTC ์ง์ SIP ๋์ ์ ํธ์ถํ ์ ์๋ ์ฑ ์ ๋๋ค(Chrome์์ SIP.js ๋ฐ๋ชจ ์ ํ ๋ก ํ ์คํธํ์ต๋๋ค).
ํ์ฌ Android์์๋ง ์๋ํฉ๋๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ์ด ์ ๊ฐ ๊ฐ๋ฐ ์ค์ธ ๊ฒ์ด๊ณ phonertc ํ๋ฌ๊ทธ์ธ์ ์ฝ๊ฐ ๋ณ๊ฒฝ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. iOS ํ๋ฌ๊ทธ์ธ ์ฝ๋์ ๋์ผํ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฉ๋๋ฉด WebRTC ๊ตฌํ์์ ํ๋ซํผ๋ณ ์ฐจ์ด์ ์ ์ ์ธํ๊ณ ์ด ์ฑ์ด ํด๋น ํ๋ซํผ์์๋ ์๋ํ ๊ฒ์ผ๋ก ๊ธฐ๋ํฉ๋๋ค.
์. ์ฝ๋๋ฅผ ๋ณด๋ฉด ์๋ํ๋ ๊ฒ์ด ์๋นํ ๊ฐ๋จํด ๋ณด์์ต๋๋ค. mediaHandlerFactory
๋ฅผ PhoneRTCMediaHandler
(PhoneRTC ํ๋ฌ๊ทธ์ธ์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ํจ๊ป)์ผ๋ก ๋ฎ์ด์ฐ๊ณ "๋ฐฉ๊ธ ์๋"ํ์ต๋๊น?
ํธ์ง: ์ฒ์์๋ PhoneRTCMediaHandler๊ฐ PhoneRTC์ ํฌํจ๋์ด ์๋ค๊ณ ์๊ฐํ์ง๋ง ์ง๊ธ์ ๋น์ ์ด ๊ทธ๊ฒ์ ์์ฑํ๊ณ ์ด ๋ชจ๋ ๊ฒ์ด ํจ์ฌ ๋ ํฉ๋ฆฌ์ ์ด๋ผ๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค.
๊ทธ๊ฒ์ "๊ทธ๋ฅ ์ผํ๋ค"?
๊ธ์, ๋๋ ์๋๋ก์ด๋์ ํฌ๋กฌ ์ฌ์ด์์๋ง ์ค๋์ค ํ๋ฆ์ ์ป์ ์ ์์๋ค ์คํธ๋ฆผ์ ์ ์ ํ๊ฒ ์ฌ์ํ๋ฏ๋ก ์ผ๊ด๋๊ฒ ์๋ํ๋๋ก ํ๋ฌ๊ทธ์ธ์ ์์ ํ๋ ๋ฐฉ๋ฒ์ ์ฐพ๊ณ ์์ต๋๋ค . ํ์ง๋ง ์, ์ด์ ๊ด๋ จํ์ฌ SIP.js๋ฅผ ๋งค์ฐ ๊ตฌ์ฑ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๋ ค๊ณ ํ์ต๋๋ค. ์ ๋ ์ด๋ฐ ์ข ๋ฅ์ ์ผ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ฆฌํฉํฐ๋ง์ ํฌ๊ฒ ๊ด์ฌํ์ต๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ ์์ ์์ ๋ฅผ ํจ๊ป ๋ชจ์ผ๋ ๋ฐ ๊ด์ฌ์ด ์๋ ์ด์ ์ค ํ๋์ ๋๋ค.
๋ด ์ ํ์ ์ฑ์ด ์คํธ๋ฆผ์ ์ ๋๋ก ์ฌ์ํ์ง ๋ชปํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด, ์ด๊ฒ์ ๋ด ๋ ธํธ๋ถ์ WebRTC ๋ฌธ์ ๋ก ๋ฐํ์ก์ต๋๋ค. ์ฌ๋ถํ ํ๋ฉด ํด๊ฒฐ๋์์ต๋๋ค.
๋ํ, ๋๋ _from_ Chrome _to_ Android ํตํ์์ ์๋ฐฉํฅ ์ค๋์ค๋ฅผ ์ป์ ์ ์์์ต๋๋ค(์ด์ ์๋ ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก๋ง ์๋ํ์ต๋๋ค). Chrome์ด ๋น๋์ค๊ฐ ์๋ ์ค๋์ค๋ง ์ ๊ณตํ๋์ง ํ์ธํด์ผ ํ์ต๋๋ค.
์์ง Firefox์ ์ ํ๋ฅผ ๊ฑธ ์ ์์ด์ ๋ฌธ์ ๋ฅผ
Android L์๋ WebRTC ์ง์์ด ๋ด์ฅ๋์ด ์์ต๋๋ค.
iOS Cordova ํ๋ฌ๊ทธ์ธ ์ ๋ง๋ค์์ต๋๋ค.
๊ฐ์ด๋๋ sipjs.com์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด๊ฒ์ phonertc 2๋ก ์ด์ํ ๊ณํ์ด ์์ต๋๊น?
@thomasquintana ๋ ์ด๊ฒ์ phonertc 2.0์ผ๋ก ์ด์ํ๋ ์์ ์ ํ๊ณ ์์ต๋๋ค. ๊ฑฐ์ ์๋ฃ๋์์ต๋๋ค.
@alongubkin ์ด์ ๋์จํ ๋์
ํฌํฌ: https://github.com/BetterVoice/phonertc
@egreenmachine ๋ค์์ ์์ ํฌํฌ์ ํจ๊ป ์๋ํ๋ ์
๋ฐ์ดํธ๋ ๋ฒ์ ์ ๋ฏธ๋์ด ํธ๋ค๋ฌ์
๋๋ค. ๋ํ ์ฌ๋ฌ ์ธ์
์ ์ง์ํฉ๋๋ค.
https://github.com/BetterVoice/PhoneRTCMediaHandler
๋ค๋ฅธ ์์ค์ ์ ๋ณด๊ฐ ์ฝ๊ฐ ํฉ์ด์ ธ ์๋ ๊ฒ ๊ฐ๊ณ ์ด๊ฒ์ ์ต๊ทผ์ ์์ ๋์์ผ๋ฏ๋ก ํ์ฌ @egreenmachine์์ ๋ชจ๋ฐ์ผ ํตํฉ์ ๊ถ์ฅ๋๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
์ด์ ํ๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ผ๋ก๋ถํฐ ์ ์ ์์ผ๋ฏ๋ก ์ฌ๊ธฐ์ ๋ณด๊ณ ํ ๋ด์ฉ์ด ๋ง์ง ์์ต๋๋ค. ๋ด๋ถ์ ์ผ๋ก ์ฐ๋ฆฌ๋ NativeScript๋ฅผ ์ฌ์ฉํ๊ณ SIP.js์ ์ง์์ ๋ฐ๋ ๋ชจ๋ฐ์ผ ์ฑ์ ๊ฐ๋ฐ ์ค์ด๋ผ๊ณ ๋งํ ์ ์์ต๋๋ค. SIP.js ์ฌ์ฉ์๊ฐ ๊ฐ๋จํ ๋ฐฉ์์ผ๋ก ๋์ผํ ์์ ์ ์ํํ ์ ์๋ ๊ณต๊ฐ์ ์ธ ๊ฒฐ๊ณผ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๋ฌ๋ ์์ง ํ์คํ๊ฒ ๋งํ๊ธฐ๋ ์ด๋ฅด๋ค. ์ฆ, ๋ค์ดํฐ๋ธ WebRTC ๋๋ผ์ด๋ฒ, SIP.js ๋ฐ NativeScript๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ฐ์ผ ์ฑ์ ๋ง๋๋ ๊ฒ์ด ํ์คํ ๊ฐ๋ฅํฉ๋๋ค. ๊ณต์ ํ ๋ด์ฉ์ด ๋ ์์ผ๋ฉด ์ด ๋ฌธ์ ๋ฅผ ์ ๋ฐ์ดํธํ๊ฒ ์ต๋๋ค.
@cybrox SIP.Js ๋ฒ์ 0.7.8์ Android์ ํก๋จ๋ณด๋ ๋ฐ iOS์ iosrtc๊ฐ ์๋ ์ฝ๋ฅด๋๋ฐ์์ ์๋ํ ์ ์์ง๋ง SIP.Js 0.9.2๋ RTC ํญ๋ชฉ์ ๋ํด ๋ช ๊ฐ์ง ์ค๋ฅ๊ฐ ์์ต๋๋ค.
@egreenmachine ๋ฐ์ ๋ค์ดํฐ๋ธ๋ ์์ ํด ์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค :)
@greenmachine์ nativescript๋ก sipjs๋ฅผ ์ป๋ ์ฌ๋ฌ๋ถ์ ๋ ธ๋ ฅ์ ๋ํด ๊ถ๊ธํดํฉ๋๋ค. ์ฝ๋ฅด๋๋ฐ ์ฑ์ผ๋ก sipjs 0.7.8์ ์คํํ๊ณ ์์ง๋ง sipjs๋ ์ ์ฌ์ ์ธ ๊ต์ฒด๋ฅผ ์ํด ๋ ์ด์ ์ฝ๋ฅด๋๋ฐ๋ฅผ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ค์ดํฐ๋ธ ์คํฌ๋ฆฝํธ์ ํจ๊ป ์ฌ์ฉํ๋ ์ ๊ทผ ๋ฐฉ์์ ๊ณต์ ํด๋ ๋ ๊น์? ๋ค์ดํฐ๋ธ webrtc๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
@andrewvmail ์ฐ๋ฆฌ๋ ๊ฒฐ๊ตญ ๊ธฐ๋ณธ WebRTC๋ฅผ ์ฌ์ฉํ๊ณ ์ด์ ๋ํ ์ธํฐํ์ด์ค๋ฅผ ์ํ ๋ง์ถคํ SDH๋ฅผ ์์ฑํ์ต๋๋ค. ๊ฐ๋จํ๊ฒ ๋ค๋ฆด์ง์ธ์ , ๊ทธ๊ฒ์ ๊ทธ๋ฐ ๊ฒ๊ณผ๋ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ์์ต๋๋ค. ์ด ์์ ์์ ๋๋ ์ฐ๋ฆฌ๊ฐ ๊ตฌํ์ ๊ณต๊ฐํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์คํํ๊ธฐ๊ฐ ์๋นํ ์ด๋ ต๊ณ ๊ณต๊ฐ์ ์ผ๋ก ์ง์ํ๊ธฐ ์ํด ํ์ ํด์ผ ํ๋ ์๊ฐ์ด ๋๋ฌด ๊ธธ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ๋ํ ์ฐ๋ฆฌ ์ฑ์์ ์๋ํ์ง๋ง ๊ฝค ๊ตฌ์ฒด์ ์ธ ๊ตฌํ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์ผ๋ฐํํ๊ธฐ ์ํด ์์ ์ ํด์ผ ํ๊ณ ์ฌ๋๋ค์ด ๊ทธ๊ฒ์ ์ฆ์ ์ฌ์ฉํ๋ ค๊ณ ํ ๋ ๋ฌธ์ ์ ๋ถ๋ชํ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ์ปค๋ฎค๋ํฐ ํ๋์์ ์ฐ๋ฆฌ๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ๋ช ๊ฐ์ง ๊ฐ๋จํ ๊ตฌ์ฑ ๋งค๊ฐ๋ณ์๋ก ์ฆ์ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ์ํ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ์ด๊ฒ์ ์ ๋ง ์๋ ๊ฒ์ ๋๋ค.
๋ชจ๋ฐ์ผ์ ๊ฒฝ์ฐ ์ฐ๋ฆฌ์ ๋ชฉํ ์ง์์ ์ฃผ์ ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ ๊ฒ์ ๋๋ค. Android์ Chrome๊ณผ iOS์ Safari์ ๋๋ค. ์ฌ๋๋ค์ด ๋ค๋ฅธ ํ๊ฒฝ์ ์ํด ๋ง๋ SDH์ ๋ํ PR์ ๋ค์ ์ ์ถํ๊ณ ์ถ๋ค๋ฉด ํ์ํฉ๋๋ค.
๋๋ ์ด๊ฒ์ด ๋ชจ๋ฐ์ผ ์ฃผ๋ณ์ ๊ตฌ๋ฆ์ ์ ๊ฑฐํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ค๋ฅธ ์ง๋ฌธ์ด๋ ์๊ฒฌ์ด ์์ผ๋ฉด ์ฐ๋ฝํด ์ฃผ์ญ์์ค.
๋ํ SIP๋ฅผ ์ ์คํ๊ฒ ์ธํฐํ์ด์คํ๊ธฐ ์ํด ์ฌ์ฉ์ ์ง์ SDH๋ฅผ ์์ฑํ๊ฒ ๋์์ต๋๋ค. [email protected] ์ ๊ณต๋ ์ฝ๋ฅด๋๋ฐ / ์์ดํฐ OS์ WebRTC ๊ตฌํ. Cordova๊ฐ RTCPeerConnection.setLocalDescription() ๋ฐ setRemoteDescription()์ ๋ํ ์ธ์์ ๋ํด ๋ถํํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์์ต๋๋ค.
๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ npm ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ฌ์ฉํ ์ ์๋๋ก ํ์ต๋๋ค.
https://github.com/WesUnwin/cordova-ios-session-description-handler
์ด๊ฒ์ ๋ํ ์ฌ์ฉ์ ์ง์ SDH๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ์ฉํ ์๊ฐ ๋ ์ ์์ต๋๋ค(๋ํ ์ ์ฉํ ์ถ๋ฐ์ ์ธ SIP.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ด๋ถ์ ๊ธฐ๋ณธ SDH์ ์ถ๊ฐ). ์ด๊ฒ์ด ๋๊ตฐ๊ฐ๋ฅผ ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!
์ด์ ๋ํ ์๋ก์ด ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
๋๋ ์์ ์ฐจ๋ ธ๋ค :
โThe bulk of SIP.js no longer cares about the media and what itโs doing, which opens up some exciting possibilities, like running it in a non-web browser, NativeScript on a phone, or Node.js on a desktop app,โ notes James Criscuolo, Director of Software Engineering at OnSIP.
๋ค์ดํฐ๋ธ์คํฌ๋ฆฝํธ๊ฐ ์ง์๋๋์?
Nativescript๋ฅผ ์ฌ์ฉํ์ฌ OnSIP ๋ชจ๋ฐ์ผ ์ฑ์ ๊ตฌ์ถํ์ต๋๋ค. ์ฆ, WebRTC ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ Nativescript์์ ์คํํ๋ ๊ฒ์ ์ด๋ณด์๋ฅผ ์ํ ๊ฒ์ด ์๋๋๋ค. ์ผ๋ถ ์ฌ์ฉ์๋ ๋ค์ดํฐ๋ธ ๋ฐ์์ผ๋ก ์ฑ๊ณตํ๋ค๊ณ ๋ณด๊ณ ํ์ผ๋ฉฐ ์ด๋ ์ ํญ์ด ๊ฐ์ฅ ์ ์ ๊ฒฝ๋ก์ผ ์ ์์ต๋๋ค.
์๋ ํ์ธ์, Baidu ๋ธ๋ผ์ฐ์ (์ค๊ตญ)๋ฅผ ์ง์ํ ์ ์์ต๋๊น? ๋ฑ๋ก ๊ฐ๋ฅ, ์ ๋ณด ์ ์ก ๊ฐ๋ฅ, ๋ค์ด์ผ ๋ถ๊ฐ
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ํ SIP๋ฅผ ์ ์คํ๊ฒ ์ธํฐํ์ด์คํ๊ธฐ ์ํด ์ฌ์ฉ์ ์ง์ SDH๋ฅผ ์์ฑํ๊ฒ ๋์์ต๋๋ค. [email protected] ์ ๊ณต๋ ์ฝ๋ฅด๋๋ฐ / ์์ดํฐ OS์ WebRTC ๊ตฌํ. Cordova๊ฐ RTCPeerConnection.setLocalDescription() ๋ฐ setRemoteDescription()์ ๋ํ ์ธ์์ ๋ํด ๋ถํํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์์ต๋๋ค.
๊ณต๊ฐ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋ npm ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ฌ์ฉํ ์ ์๋๋ก ํ์ต๋๋ค.
https://github.com/WesUnwin/cordova-ios-session-description-handler
์ด๊ฒ์ ๋ํ ์ฌ์ฉ์ ์ง์ SDH๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ์ฉํ ์๊ฐ ๋ ์ ์์ต๋๋ค(๋ํ ์ ์ฉํ ์ถ๋ฐ์ ์ธ SIP.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ด๋ถ์ ๊ธฐ๋ณธ SDH์ ์ถ๊ฐ). ์ด๊ฒ์ด ๋๊ตฐ๊ฐ๋ฅผ ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!