0.11.0์ผ๋ก ์ ํํ ํ ์ด์ ์ฝ์์์ ๊ฐ๋ฅํ EventEmitter ๋ฉ๋ชจ๋ฆฌ ๋์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ค์์ ์ค๋ฅ์ ํจ๊ป ์ ๊ณต๋๋ ์ถ์ ์
๋๋ค.
Firefox์์:
EventEmitter.prototype.addListener webpack://SIP/./node_modules/events/events.js?:138:7
InviteClientTransaction webpack://SIP/./src/Transactions.js?:148:5
send webpack://SIP/./src/RequestSender.js?:40:36
sendRequest webpack://SIP/./src/Session.js?:198:7
sendReinvite/< webpack://SIP/./src/Session.js?:466:9
ํฌ๋กฌ์์:
EventEmitter.addListener | @ | events.js:144
InviteClientTransaction | @ | Transactions.js:148
send | @ | RequestSender.js:40
sendRequest | @ | Session.js:209
(anonymous) | @ | Session.js:466
Promise.then (async) | ย | ย
sendReinvite | @ | Session.js:465
unhold | @ | Session.js:359
์ด๊ฒ์ ๋ด๊ฐ ํตํ๋ฅผ ๋ณด๋ฅ ํด์ ํ ๋ ๋ฐ์ํฉ๋๋ค. ์ ๊ฐ ์ ๊ณตํ ์ ์๋ ์ ๋ณด๊ฐ ๋ ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์.
์ ์ฒด ๋ก๊ทธ๋ฅผ ๊ฒ์ํ ์ ์์ต๋๊น?
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | configuration parameters after validation:
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท viaHost: "a6dspn71f48f.invalid"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท uri: sip:[email protected]
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท custom: {}
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท displayName: "Softphone"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท password: NOT SHOWN
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท registerExpires: 600
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท register: true
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท registrarServer: sip:ian-web-phone.datto.net
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท transportConstructor: undefined
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท transportOptions: {"wsServers":"wss://127.0.0.1:8089/ws"}
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท userAgentString: "SIP.js/0.11.0"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท noAnswerTimeout: 30000
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท hackViaTcp: false
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท hackIpInContact: false
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท hackWssInTransport: true
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท hackAllowUnregisteredOptionTags: false
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท sessionDescriptionHandlerFactoryOptions: {"constraints":{"audio":true,"video":false}}
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท contactName: "jiavbjr5"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท contactTransport: "wss"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท forceRport: false
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท autostart: true
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท autostop: true
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท rel100: "none"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท dtmfType: "info"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท replaces: "none"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท sessionDescriptionHandlerFactory: function defaultFactory(session, observer, options) {
return new SessionDescriptionHandler(session, observer, options);
}
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท authenticationFactory: undefined
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท allowLegacyNotifications: false
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท allowOutOfDialogRefers: false
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท authorizationUser: "1060"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท instanceId: "96fb555d-f116-41d6-8ced-bc5e7a47f0cd"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท sipjsId: "k6gsk"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | ยท hostportParams: "ian-web-phone.datto.net"
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.ua | user requested startup...
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.transport | configuration parameters after validation:
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.transport | ยท wsServers: [{"ws_uri":"wss://ian-web-phone.datto.net:8089/ws","sip_uri":"<sip:ian-web-phone.datto.net:8089;transport=ws;lr>","weight":0,"isError":false,"scheme":"WSS"}]
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.transport | ยท connectionTimeout: 5
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.transport | ยท maxReconnectionAttempts: 3
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.transport | ยท reconnectionTimeout: 4
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.transport | ยท keepAliveInterval: 0
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.transport | ยท keepAliveDebounce: 10
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.transport | ยท traceSip: false
raven.js:55 Fri Jun 08 2018 10:58:18 GMT-0400 (Eastern Daylight Time) | sip.transport | connecting to WebSocket wss://ian-web-phone.datto.net:8089/ws
raven.js:55 Fri Jun 08 2018 10:58:19 GMT-0400 (Eastern Daylight Time) | sip.transport | WebSocket wss://ian-web-phone.datto.net:8089/ws connected
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | SessionDescriptionHandlerOptions: {"constraints":{"audio":true,"video":false}}
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | initPeerConnection
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | New peer connection created
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | acquiring local media
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | acquired local media streams
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | RTCIceGatheringState changed: gathering
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | ICE candidate received: candidate:1051995033 1 udp 2122260223 172.18.0.1 33419 typ host generation 0 ufrag hUwX network-id 1 network-cost 50
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | ICE candidate received: candidate:434636113 1 udp 2122194687 10.70.81.124 52730 typ host generation 0 ufrag hUwX network-id 2 network-cost 10
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | ICE candidate received: candidate:3717574005 1 udp 1686052607 69.195.39.134 1929 typ srflx raddr 172.18.0.1 rport 33419 generation 0 ufrag hUwX network-id 1 network-cost 50
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | ICE candidate received: candidate:4026039429 1 udp 1685987071 69.195.39.134 26353 typ srflx raddr 10.70.81.124 rport 52730 generation 0 ufrag hUwX network-id 2 network-cost 10
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | ICE candidate received: candidate:1882707817 1 tcp 1518280447 172.18.0.1 9 typ host tcptype active generation 0 ufrag hUwX network-id 1 network-cost 50
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | ICE candidate received: candidate:1466694049 1 tcp 1518214911 10.70.81.124 9 typ host tcptype active generation 0 ufrag hUwX network-id 2 network-cost 10
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | RTCIceGatheringState changed: complete
raven.js:55 Fri Jun 08 2018 10:58:26 GMT-0400 (Eastern Daylight Time) | sip.dialog | new UAC dialog created with status EARLY
raven.js:55 {success: true, returnValue: {โฆ}, errors: null}
raven.js:55 Fri Jun 08 2018 10:58:28 GMT-0400 (Eastern Daylight Time) | sip.dialog | dialog k6gsk85mol4dbbf6tmqhlmvr81j9b1as6550d4ad changed to CONFIRMED state
raven.js:55 Fri Jun 08 2018 10:58:28 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | track added
raven.js:55 (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
EventEmitter.addListener @ events.js:138
InviteClientTransaction @ Transactions.js:148
send @ RequestSender.js:40
sendRequest @ Session.js:209
(anonymous) @ Session.js:466
Promise.then (async)
sendReinvite @ Session.js:465
unhold @ Session.js:359
unholdCall @ Phone.js:621
toggleHold @ Phone.js:568
raven.js:55 Fri Jun 08 2018 10:58:31 GMT-0400 (Eastern Daylight Time) | sip.invitecontext.sessionDescriptionHandler | track added
๋ด ํ ์คํธ์์ ์ด๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ ๋ชจ๋ ๊ฒ์ด raven.js๋ผ๊ณ ๋งํ๊ณ ์ค ๋ฒํธ๊ฐ ์ค์ ๋ก ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ ์ฌ์ฉ์ ์ง์ ์ฝ๋๊ฐ ์์ต๋๊น?
๋๋ raven์ ์ฌ์ฉํ๋ ๋ก๊น
์ ์ํด Sentry ๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ raven.js์ ๋ผ์ธ 55๊ฐ ๋์ค๋ ๊ณณ์
๋๋ค. Sentry๋ฅผ ๋นํ์ฑํํ๋ฉด ์ฌ์ ํ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ๊น๋ง๊ท ๋์ LoggerFactory.js:78
์
๋๋ค. ์ํํธํฐ์ด Salesforce์ฉ CTI ์ด๋ํฐ ์ญํ ์ ํ์ง๋ง Salesforce ์ธ๋ถ์์๋ ์ฌ์ ํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. 0.10.0์์๋ ์ด๋ฐ๊ฒ ์๋ณด์ด๋๋ฐ ํน์ ๊ตํต์ฒด์ฆ๊ณผ ๊ด๋ จ์ด ์๋๊ฑด์ง ๊ถ๊ธํฉ๋๋ค.
์ ์ก ์์ ์ ์ํด ์๋ก์ด ์ด๋ฒคํธ ๋ฆฌ์ค๋๊ฐ ๋ด๋ถ์ ์ผ๋ก SIP.js์ ์ถ๊ฐ๋์์ผ๋ฏ๋ก ์ด ๋ฆฌ์ค๋๊ฐ ํ์๋๋ ์ด์ ๋ฅผ ํ์คํ ์ค๋ช ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ๊ฒฐ์ ํ๋ ค๊ณ ํ๋ ๊ฒ์ ๋๋ค. ์ฆ, ์ด๋ ๋จ์ง ๊ฒฝ๊ณ ์ผ ๋ฟ์ด๋ฉฐ ์ซ์๊ฐ ํต์ ๋ถ๋ฅ ์ํ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฌด์ํด๋ ๋ฉ๋๋ค.
@JimGreenberg ๋ ํฅํ ๋ฆด๋ฆฌ์ค์์ ๊ฒฝ๊ณ ๊ฐ ์ฌ๋ผ์ง๋๋ก SIP.js ๋ด์์ ์ด ์ ํ์ ๋๋ฆฌ๋ ๊ฒ์ ์กฐ์ฌํ ๊ฒ์ ๋๋ค. ๋๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด PR์ ์ ์ถํ ์ ์์ต๋๋ค. ๊ฐ์ฌ ํด์
์ถ๊ฐ ์กฐ์ฌ์ ์ฒญ์ทจ์ ์๋ฅผ ๋๋ฆฐ ๊ฒฐ๊ณผ, ๊ณ์ ์ฆ๊ฐํ๋ ์ฒญ์ทจ์์๊ฒ ์ค์ ๋ก ๋ฌธ์ ๊ฐ ์์ ์ ์์์ ๋ฐ๊ฒฌํ์ต๋๋ค. EventEmitter.js
NodeEventEmitter.prototype._maxListeners = 15
์ถ๊ฐํ๋๋ฐ 16๋ช
์ ์ฒญ์ทจ์๊ฐ ๋งํ๋ ๋ช ๋ฒ์ ๋ณด๋ฅ ํด์ ํ์ ์ค๋ฅ๊ฐ ๋ํ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ 100์ผ๋ก ๋๋ฆฌ๊ณ ๋ ๋ง์ ๋ณด๋ฅ ํด์ ํ์๋ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ค๋ฅ๋ 101๊ฐ์ ๋ฆฌ์ค๋๊ฐ ์ถ๊ฐ๋์์์ ๋ํ๋
๋๋ค.
๋ค, ์ด๊ฒ์ ์ด์ก ์์ ๊ณผ ๊ด๋ จ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ผ๋ถ ์ฑ ์์ ๊ฐ๋ณ ๊ตฌ์ฑ ์์๋ก ์ด์ ํ์ผ๋ฉฐ ํ์ฌ ๋ณด๊ณ ์๋ ๋ฌธ์ ๋ ์๋ง๋ ๊ด๋ จ์ด ์์ ๊ฒ์ ๋๋ค. ์์์ผ์ด๋ ํ์์ผ์ฏค ํจ์น๊ฐ ๋์ฌ ์์ ์ ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ์ถ์ ํ๋ ๋ฐ ์๊ฐ์ ํ ์ ํด ์ฃผ์ ์ ๋๋จํ ๊ฐ์ฌํฉ๋๋ค.
์ด๊ฒ์ 0.11.1+์์ ์์ ๋์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ค, ์ด๊ฒ์ ์ด์ก ์์ ๊ณผ ๊ด๋ จ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ผ๋ถ ์ฑ ์์ ๊ฐ๋ณ ๊ตฌ์ฑ ์์๋ก ์ด์ ํ์ผ๋ฉฐ ํ์ฌ ๋ณด๊ณ ์๋ ๋ฌธ์ ๋ ์๋ง๋ ๊ด๋ จ์ด ์์ ๊ฒ์ ๋๋ค. ์์์ผ์ด๋ ํ์์ผ์ฏค ํจ์น๊ฐ ๋์ฌ ์์ ์ ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ์ถ์ ํ๋ ๋ฐ ์๊ฐ์ ํ ์ ํด ์ฃผ์ ์ ๋๋จํ ๊ฐ์ฌํฉ๋๋ค.