sip-connector 6.18.0 → 6.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/dist/SipConnector.d.ts +46 -74
  2. package/dist/causes.d.ts +0 -1
  3. package/dist/constants.d.ts +0 -1
  4. package/dist/eventNames.d.ts +0 -1
  5. package/dist/getExtraHeadersRemoteAddress.d.ts +0 -1
  6. package/dist/headers.d.ts +0 -1
  7. package/dist/index.cjs +1 -0
  8. package/dist/index.d.ts +8 -8
  9. package/dist/index.js +1919 -45
  10. package/dist/logger.d.ts +2 -3
  11. package/dist/tools/__tests-utils__/parseObject.d.ts +0 -1
  12. package/dist/tools/__tests-utils__/resolveParseArray.d.ts +0 -1
  13. package/dist/tools/answerIncomingCall.d.ts +5 -6
  14. package/dist/tools/callToServer.d.ts +4 -5
  15. package/dist/tools/connectToServer.d.ts +2 -3
  16. package/dist/tools/disconnectFromServer.d.ts +0 -1
  17. package/dist/tools/error/getLinkError.d.ts +2 -3
  18. package/dist/tools/error/getTypeFromError.d.ts +2 -3
  19. package/dist/tools/error/getValuesFromError.d.ts +2 -3
  20. package/dist/tools/error/index.d.ts +3 -6
  21. package/dist/tools/getExtraHeaders.d.ts +0 -1
  22. package/dist/tools/getUserAgent.d.ts +0 -1
  23. package/dist/tools/hasPurgatory.d.ts +0 -1
  24. package/dist/tools/index.d.ts +21 -23
  25. package/dist/tools/resolveAskPermissionToEnableCam.d.ts +0 -1
  26. package/dist/tools/resolveGetRemoteStreams.d.ts +0 -1
  27. package/dist/tools/resolveHandleChangeTracks.d.ts +0 -1
  28. package/dist/tools/resolveOnMustStopPresentation.d.ts +0 -1
  29. package/dist/tools/resolveOnUseLicense.d.ts +1 -2
  30. package/dist/tools/resolveSendMediaState.d.ts +3 -4
  31. package/dist/tools/resolveSendRefusalToTurnOnCam.d.ts +0 -1
  32. package/dist/tools/resolveSendRefusalToTurnOnMic.d.ts +0 -1
  33. package/dist/tools/resolveStartPresentation.d.ts +0 -1
  34. package/dist/tools/resolveStopShareSipConnector.d.ts +1 -2
  35. package/dist/tools/resolveUpdatePresentation.d.ts +0 -1
  36. package/dist/tools/resolveUpdateRemoteStreams.d.ts +1 -2
  37. package/dist/tools/sendDTMFAccumulated.d.ts +0 -1
  38. package/dist/tools/syncMediaState/index.d.ts +0 -1
  39. package/dist/tools/syncMediaState/resolveOnStartMainCam.d.ts +0 -1
  40. package/dist/tools/syncMediaState/resolveOnStartMic.d.ts +0 -1
  41. package/dist/tools/syncMediaState/resolveOnStopMainCam.d.ts +0 -1
  42. package/dist/tools/syncMediaState/resolveOnStopMic.d.ts +0 -1
  43. package/dist/types.d.ts +29 -0
  44. package/dist/utils/errors.d.ts +0 -1
  45. package/dist/utils/findSenderByStream.d.ts +0 -1
  46. package/dist/utils/findVideoSender.d.ts +0 -1
  47. package/dist/utils/getCodecFromSender.d.ts +0 -1
  48. package/dist/utils.d.ts +3 -4
  49. package/dist/videoSendingBalancer/balance.d.ts +1 -2
  50. package/dist/videoSendingBalancer/getMaxBitrateByWidth.d.ts +0 -1
  51. package/dist/videoSendingBalancer/getMaxBitrateByWidthAndCodec.d.ts +0 -1
  52. package/dist/videoSendingBalancer/hasAv1Codec.d.ts +0 -1
  53. package/dist/videoSendingBalancer/hasIncludesString.d.ts +0 -1
  54. package/dist/videoSendingBalancer/index.d.ts +0 -1
  55. package/dist/videoSendingBalancer/processSender.d.ts +1 -2
  56. package/dist/videoSendingBalancer/scaleBitrate.d.ts +1 -2
  57. package/dist/videoSendingBalancer/scaleBitrateByCodec.d.ts +0 -1
  58. package/dist/videoSendingBalancer/setEncodingsToSender.d.ts +0 -1
  59. package/package.json +71 -49
  60. package/dist/SipConnector.d.ts.map +0 -1
  61. package/dist/SipConnector.js +0 -1099
  62. package/dist/SipConnector.js.map +0 -1
  63. package/dist/__fixtures__/BaseSession.mock.d.ts +0 -95
  64. package/dist/__fixtures__/BaseSession.mock.d.ts.map +0 -1
  65. package/dist/__fixtures__/BaseSession.mock.js +0 -195
  66. package/dist/__fixtures__/BaseSession.mock.js.map +0 -1
  67. package/dist/__fixtures__/RTCPeerConnectionMock.d.ts +0 -59
  68. package/dist/__fixtures__/RTCPeerConnectionMock.d.ts.map +0 -1
  69. package/dist/__fixtures__/RTCPeerConnectionMock.js +0 -87
  70. package/dist/__fixtures__/RTCPeerConnectionMock.js.map +0 -1
  71. package/dist/__fixtures__/RTCRtpSenderMock.d.ts +0 -13
  72. package/dist/__fixtures__/RTCRtpSenderMock.d.ts.map +0 -1
  73. package/dist/__fixtures__/RTCRtpSenderMock.js +0 -35
  74. package/dist/__fixtures__/RTCRtpSenderMock.js.map +0 -1
  75. package/dist/__fixtures__/Registrator.mock.d.ts +0 -8
  76. package/dist/__fixtures__/Registrator.mock.d.ts.map +0 -1
  77. package/dist/__fixtures__/Registrator.mock.js +0 -11
  78. package/dist/__fixtures__/Registrator.mock.js.map +0 -1
  79. package/dist/__fixtures__/Request.mock.d.ts +0 -9
  80. package/dist/__fixtures__/Request.mock.d.ts.map +0 -1
  81. package/dist/__fixtures__/Request.mock.js +0 -14
  82. package/dist/__fixtures__/Request.mock.js.map +0 -1
  83. package/dist/__fixtures__/Session.mock.d.ts +0 -70
  84. package/dist/__fixtures__/Session.mock.d.ts.map +0 -1
  85. package/dist/__fixtures__/Session.mock.js +0 -184
  86. package/dist/__fixtures__/Session.mock.js.map +0 -1
  87. package/dist/__fixtures__/UA.mock.d.ts +0 -83
  88. package/dist/__fixtures__/UA.mock.d.ts.map +0 -1
  89. package/dist/__fixtures__/UA.mock.js +0 -158
  90. package/dist/__fixtures__/UA.mock.js.map +0 -1
  91. package/dist/__fixtures__/WebSocketInterface.mock.d.ts +0 -6
  92. package/dist/__fixtures__/WebSocketInterface.mock.d.ts.map +0 -1
  93. package/dist/__fixtures__/WebSocketInterface.mock.js +0 -9
  94. package/dist/__fixtures__/WebSocketInterface.mock.js.map +0 -1
  95. package/dist/__fixtures__/accountNotify.d.ts +0 -3
  96. package/dist/__fixtures__/accountNotify.d.ts.map +0 -1
  97. package/dist/__fixtures__/accountNotify.js +0 -19
  98. package/dist/__fixtures__/accountNotify.js.map +0 -1
  99. package/dist/__fixtures__/channels.d.ts +0 -9
  100. package/dist/__fixtures__/channels.d.ts.map +0 -1
  101. package/dist/__fixtures__/channels.js +0 -18
  102. package/dist/__fixtures__/channels.js.map +0 -1
  103. package/dist/__fixtures__/channelsNotify.d.ts +0 -6
  104. package/dist/__fixtures__/channelsNotify.d.ts.map +0 -1
  105. package/dist/__fixtures__/channelsNotify.js +0 -15
  106. package/dist/__fixtures__/channelsNotify.js.map +0 -1
  107. package/dist/__fixtures__/conferenceParticipantTokenIssuedNotify.d.ts +0 -7
  108. package/dist/__fixtures__/conferenceParticipantTokenIssuedNotify.d.ts.map +0 -1
  109. package/dist/__fixtures__/conferenceParticipantTokenIssuedNotify.js +0 -22
  110. package/dist/__fixtures__/conferenceParticipantTokenIssuedNotify.js.map +0 -1
  111. package/dist/__fixtures__/doMock.d.ts +0 -4
  112. package/dist/__fixtures__/doMock.d.ts.map +0 -1
  113. package/dist/__fixtures__/doMock.js +0 -14
  114. package/dist/__fixtures__/doMock.js.map +0 -1
  115. package/dist/__fixtures__/index.d.ts +0 -84
  116. package/dist/__fixtures__/index.d.ts.map +0 -1
  117. package/dist/__fixtures__/index.js +0 -57
  118. package/dist/__fixtures__/index.js.map +0 -1
  119. package/dist/__fixtures__/jssip.mock.d.ts +0 -24
  120. package/dist/__fixtures__/jssip.mock.d.ts.map +0 -1
  121. package/dist/__fixtures__/jssip.mock.js +0 -91
  122. package/dist/__fixtures__/jssip.mock.js.map +0 -1
  123. package/dist/__fixtures__/mediaState.d.ts +0 -8
  124. package/dist/__fixtures__/mediaState.d.ts.map +0 -1
  125. package/dist/__fixtures__/mediaState.js +0 -14
  126. package/dist/__fixtures__/mediaState.js.map +0 -1
  127. package/dist/__fixtures__/participantMoveRequests.d.ts +0 -13
  128. package/dist/__fixtures__/participantMoveRequests.d.ts.map +0 -1
  129. package/dist/__fixtures__/participantMoveRequests.js +0 -38
  130. package/dist/__fixtures__/participantMoveRequests.js.map +0 -1
  131. package/dist/__fixtures__/participantNotify.d.ts +0 -9
  132. package/dist/__fixtures__/participantNotify.d.ts.map +0 -1
  133. package/dist/__fixtures__/participantNotify.js +0 -29
  134. package/dist/__fixtures__/participantNotify.js.map +0 -1
  135. package/dist/__fixtures__/remoteCallerData.d.ts +0 -8
  136. package/dist/__fixtures__/remoteCallerData.d.ts.map +0 -1
  137. package/dist/__fixtures__/remoteCallerData.js +0 -10
  138. package/dist/__fixtures__/remoteCallerData.js.map +0 -1
  139. package/dist/__fixtures__/utils.d.ts +0 -2
  140. package/dist/__fixtures__/utils.d.ts.map +0 -1
  141. package/dist/__fixtures__/utils.js +0 -12
  142. package/dist/__fixtures__/utils.js.map +0 -1
  143. package/dist/__fixtures__/webcastNotify.d.ts +0 -11
  144. package/dist/__fixtures__/webcastNotify.d.ts.map +0 -1
  145. package/dist/__fixtures__/webcastNotify.js +0 -29
  146. package/dist/__fixtures__/webcastNotify.js.map +0 -1
  147. package/dist/causes.d.ts.map +0 -1
  148. package/dist/causes.js +0 -30
  149. package/dist/causes.js.map +0 -1
  150. package/dist/constants.d.ts.map +0 -1
  151. package/dist/constants.js +0 -74
  152. package/dist/constants.js.map +0 -1
  153. package/dist/eventNames.d.ts.map +0 -1
  154. package/dist/eventNames.js +0 -88
  155. package/dist/eventNames.js.map +0 -1
  156. package/dist/getExtraHeadersRemoteAddress.d.ts.map +0 -1
  157. package/dist/getExtraHeadersRemoteAddress.js +0 -11
  158. package/dist/getExtraHeadersRemoteAddress.js.map +0 -1
  159. package/dist/headers.d.ts.map +0 -1
  160. package/dist/headers.js +0 -37
  161. package/dist/headers.js.map +0 -1
  162. package/dist/index.d.ts.map +0 -1
  163. package/dist/index.es5.js +0 -2
  164. package/dist/index.es5.js.map +0 -1
  165. package/dist/index.js.map +0 -1
  166. package/dist/index.umd.js +0 -2
  167. package/dist/index.umd.js.map +0 -1
  168. package/dist/logger.d.ts.map +0 -1
  169. package/dist/logger.js +0 -21
  170. package/dist/logger.js.map +0 -1
  171. package/dist/tools/__fixtures__/call.d.ts +0 -11
  172. package/dist/tools/__fixtures__/call.d.ts.map +0 -1
  173. package/dist/tools/__fixtures__/call.js +0 -38
  174. package/dist/tools/__fixtures__/call.js.map +0 -1
  175. package/dist/tools/__fixtures__/connectToServer.d.ts +0 -151
  176. package/dist/tools/__fixtures__/connectToServer.d.ts.map +0 -1
  177. package/dist/tools/__fixtures__/connectToServer.js +0 -35
  178. package/dist/tools/__fixtures__/connectToServer.js.map +0 -1
  179. package/dist/tools/__fixtures__/hasValidUri.d.ts +0 -10
  180. package/dist/tools/__fixtures__/hasValidUri.d.ts.map +0 -1
  181. package/dist/tools/__fixtures__/hasValidUri.js +0 -14
  182. package/dist/tools/__fixtures__/hasValidUri.js.map +0 -1
  183. package/dist/tools/__fixtures__/permissions.d.ts +0 -9
  184. package/dist/tools/__fixtures__/permissions.d.ts.map +0 -1
  185. package/dist/tools/__fixtures__/permissions.js +0 -15
  186. package/dist/tools/__fixtures__/permissions.js.map +0 -1
  187. package/dist/tools/__fixtures__/processRequest.d.ts +0 -4
  188. package/dist/tools/__fixtures__/processRequest.d.ts.map +0 -1
  189. package/dist/tools/__fixtures__/processRequest.js +0 -71
  190. package/dist/tools/__fixtures__/processRequest.js.map +0 -1
  191. package/dist/tools/__tests-utils__/parseObject.d.ts.map +0 -1
  192. package/dist/tools/__tests-utils__/parseObject.js +0 -27
  193. package/dist/tools/__tests-utils__/parseObject.js.map +0 -1
  194. package/dist/tools/__tests-utils__/resolveParseArray.d.ts.map +0 -1
  195. package/dist/tools/__tests-utils__/resolveParseArray.js +0 -17
  196. package/dist/tools/__tests-utils__/resolveParseArray.js.map +0 -1
  197. package/dist/tools/answerIncomingCall.d.ts.map +0 -1
  198. package/dist/tools/answerIncomingCall.js +0 -94
  199. package/dist/tools/answerIncomingCall.js.map +0 -1
  200. package/dist/tools/callToServer.d.ts.map +0 -1
  201. package/dist/tools/callToServer.js +0 -90
  202. package/dist/tools/callToServer.js.map +0 -1
  203. package/dist/tools/connectToServer.d.ts.map +0 -1
  204. package/dist/tools/connectToServer.js +0 -52
  205. package/dist/tools/connectToServer.js.map +0 -1
  206. package/dist/tools/disconnectFromServer.d.ts.map +0 -1
  207. package/dist/tools/disconnectFromServer.js +0 -23
  208. package/dist/tools/disconnectFromServer.js.map +0 -1
  209. package/dist/tools/error/getLinkError.d.ts.map +0 -1
  210. package/dist/tools/error/getLinkError.js +0 -36
  211. package/dist/tools/error/getLinkError.js.map +0 -1
  212. package/dist/tools/error/getTypeFromError.d.ts.map +0 -1
  213. package/dist/tools/error/getTypeFromError.js +0 -63
  214. package/dist/tools/error/getTypeFromError.js.map +0 -1
  215. package/dist/tools/error/getValuesFromError.d.ts.map +0 -1
  216. package/dist/tools/error/getValuesFromError.js +0 -26
  217. package/dist/tools/error/getValuesFromError.js.map +0 -1
  218. package/dist/tools/error/index.d.ts.map +0 -1
  219. package/dist/tools/error/index.js +0 -15
  220. package/dist/tools/error/index.js.map +0 -1
  221. package/dist/tools/getExtraHeaders.d.ts.map +0 -1
  222. package/dist/tools/getExtraHeaders.js +0 -24
  223. package/dist/tools/getExtraHeaders.js.map +0 -1
  224. package/dist/tools/getUserAgent.d.ts.map +0 -1
  225. package/dist/tools/getUserAgent.js +0 -22
  226. package/dist/tools/getUserAgent.js.map +0 -1
  227. package/dist/tools/hasPurgatory.d.ts.map +0 -1
  228. package/dist/tools/hasPurgatory.js +0 -9
  229. package/dist/tools/hasPurgatory.js.map +0 -1
  230. package/dist/tools/index.d.ts.map +0 -1
  231. package/dist/tools/index.js +0 -73
  232. package/dist/tools/index.js.map +0 -1
  233. package/dist/tools/resolveAskPermissionToEnableCam.d.ts.map +0 -1
  234. package/dist/tools/resolveAskPermissionToEnableCam.js +0 -18
  235. package/dist/tools/resolveAskPermissionToEnableCam.js.map +0 -1
  236. package/dist/tools/resolveGetRemoteStreams.d.ts.map +0 -1
  237. package/dist/tools/resolveGetRemoteStreams.js +0 -15
  238. package/dist/tools/resolveGetRemoteStreams.js.map +0 -1
  239. package/dist/tools/resolveHandleChangeTracks.d.ts.map +0 -1
  240. package/dist/tools/resolveHandleChangeTracks.js +0 -14
  241. package/dist/tools/resolveHandleChangeTracks.js.map +0 -1
  242. package/dist/tools/resolveOnMustStopPresentation.d.ts.map +0 -1
  243. package/dist/tools/resolveOnMustStopPresentation.js +0 -15
  244. package/dist/tools/resolveOnMustStopPresentation.js.map +0 -1
  245. package/dist/tools/resolveOnUseLicense.d.ts.map +0 -1
  246. package/dist/tools/resolveOnUseLicense.js +0 -15
  247. package/dist/tools/resolveOnUseLicense.js.map +0 -1
  248. package/dist/tools/resolveSendMediaState.d.ts.map +0 -1
  249. package/dist/tools/resolveSendMediaState.js +0 -18
  250. package/dist/tools/resolveSendMediaState.js.map +0 -1
  251. package/dist/tools/resolveSendRefusalToTurnOnCam.d.ts.map +0 -1
  252. package/dist/tools/resolveSendRefusalToTurnOnCam.js +0 -20
  253. package/dist/tools/resolveSendRefusalToTurnOnCam.js.map +0 -1
  254. package/dist/tools/resolveSendRefusalToTurnOnMic.d.ts.map +0 -1
  255. package/dist/tools/resolveSendRefusalToTurnOnMic.js +0 -20
  256. package/dist/tools/resolveSendRefusalToTurnOnMic.js.map +0 -1
  257. package/dist/tools/resolveStartPresentation.d.ts.map +0 -1
  258. package/dist/tools/resolveStartPresentation.js +0 -19
  259. package/dist/tools/resolveStartPresentation.js.map +0 -1
  260. package/dist/tools/resolveStopShareSipConnector.d.ts.map +0 -1
  261. package/dist/tools/resolveStopShareSipConnector.js +0 -19
  262. package/dist/tools/resolveStopShareSipConnector.js.map +0 -1
  263. package/dist/tools/resolveUpdatePresentation.d.ts.map +0 -1
  264. package/dist/tools/resolveUpdatePresentation.js +0 -19
  265. package/dist/tools/resolveUpdatePresentation.js.map +0 -1
  266. package/dist/tools/resolveUpdateRemoteStreams.d.ts.map +0 -1
  267. package/dist/tools/resolveUpdateRemoteStreams.js +0 -18
  268. package/dist/tools/resolveUpdateRemoteStreams.js.map +0 -1
  269. package/dist/tools/sendDTMFAccumulated.d.ts.map +0 -1
  270. package/dist/tools/sendDTMFAccumulated.js +0 -26
  271. package/dist/tools/sendDTMFAccumulated.js.map +0 -1
  272. package/dist/tools/syncMediaState/index.d.ts.map +0 -1
  273. package/dist/tools/syncMediaState/index.js +0 -55
  274. package/dist/tools/syncMediaState/index.js.map +0 -1
  275. package/dist/tools/syncMediaState/resolveOnStartMainCam.d.ts.map +0 -1
  276. package/dist/tools/syncMediaState/resolveOnStartMainCam.js +0 -15
  277. package/dist/tools/syncMediaState/resolveOnStartMainCam.js.map +0 -1
  278. package/dist/tools/syncMediaState/resolveOnStartMic.d.ts.map +0 -1
  279. package/dist/tools/syncMediaState/resolveOnStartMic.js +0 -15
  280. package/dist/tools/syncMediaState/resolveOnStartMic.js.map +0 -1
  281. package/dist/tools/syncMediaState/resolveOnStopMainCam.d.ts.map +0 -1
  282. package/dist/tools/syncMediaState/resolveOnStopMainCam.js +0 -15
  283. package/dist/tools/syncMediaState/resolveOnStopMainCam.js.map +0 -1
  284. package/dist/tools/syncMediaState/resolveOnStopMic.d.ts.map +0 -1
  285. package/dist/tools/syncMediaState/resolveOnStopMic.js +0 -15
  286. package/dist/tools/syncMediaState/resolveOnStopMic.js.map +0 -1
  287. package/dist/utils/errors.d.ts.map +0 -1
  288. package/dist/utils/errors.js +0 -9
  289. package/dist/utils/errors.js.map +0 -1
  290. package/dist/utils/findSenderByStream.d.ts.map +0 -1
  291. package/dist/utils/findSenderByStream.js +0 -9
  292. package/dist/utils/findSenderByStream.js.map +0 -1
  293. package/dist/utils/findVideoSender.d.ts.map +0 -1
  294. package/dist/utils/findVideoSender.js +0 -10
  295. package/dist/utils/findVideoSender.js.map +0 -1
  296. package/dist/utils/getCodecFromSender.d.ts.map +0 -1
  297. package/dist/utils/getCodecFromSender.js +0 -20
  298. package/dist/utils/getCodecFromSender.js.map +0 -1
  299. package/dist/utils.d.ts.map +0 -1
  300. package/dist/utils.js +0 -42
  301. package/dist/utils.js.map +0 -1
  302. package/dist/videoSendingBalancer/balance.d.ts.map +0 -1
  303. package/dist/videoSendingBalancer/balance.js +0 -42
  304. package/dist/videoSendingBalancer/balance.js.map +0 -1
  305. package/dist/videoSendingBalancer/getMaxBitrateByWidth.d.ts.map +0 -1
  306. package/dist/videoSendingBalancer/getMaxBitrateByWidth.js +0 -41
  307. package/dist/videoSendingBalancer/getMaxBitrateByWidth.js.map +0 -1
  308. package/dist/videoSendingBalancer/getMaxBitrateByWidthAndCodec.d.ts.map +0 -1
  309. package/dist/videoSendingBalancer/getMaxBitrateByWidthAndCodec.js +0 -41
  310. package/dist/videoSendingBalancer/getMaxBitrateByWidthAndCodec.js.map +0 -1
  311. package/dist/videoSendingBalancer/hasAv1Codec.d.ts.map +0 -1
  312. package/dist/videoSendingBalancer/hasAv1Codec.js +0 -12
  313. package/dist/videoSendingBalancer/hasAv1Codec.js.map +0 -1
  314. package/dist/videoSendingBalancer/hasIncludesString.d.ts.map +0 -1
  315. package/dist/videoSendingBalancer/hasIncludesString.js +0 -7
  316. package/dist/videoSendingBalancer/hasIncludesString.js.map +0 -1
  317. package/dist/videoSendingBalancer/index.d.ts.map +0 -1
  318. package/dist/videoSendingBalancer/index.js +0 -56
  319. package/dist/videoSendingBalancer/index.js.map +0 -1
  320. package/dist/videoSendingBalancer/processSender.d.ts.map +0 -1
  321. package/dist/videoSendingBalancer/processSender.js +0 -105
  322. package/dist/videoSendingBalancer/processSender.js.map +0 -1
  323. package/dist/videoSendingBalancer/scaleBitrate.d.ts.map +0 -1
  324. package/dist/videoSendingBalancer/scaleBitrate.js +0 -16
  325. package/dist/videoSendingBalancer/scaleBitrate.js.map +0 -1
  326. package/dist/videoSendingBalancer/scaleBitrateByCodec.d.ts.map +0 -1
  327. package/dist/videoSendingBalancer/scaleBitrateByCodec.js +0 -15
  328. package/dist/videoSendingBalancer/scaleBitrateByCodec.js.map +0 -1
  329. package/dist/videoSendingBalancer/setEncodingsToSender.d.ts.map +0 -1
  330. package/dist/videoSendingBalancer/setEncodingsToSender.js +0 -60
  331. package/dist/videoSendingBalancer/setEncodingsToSender.js.map +0 -1
@@ -1,1099 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.hasCanceledCallError = exports.EUseLicense = exports.EEventsSyncMediaState = exports.EEventsMic = exports.EEventsMainCAM = void 0;
16
- const cancelable_promise_1 = require("@krivega/cancelable-promise");
17
- const events_constructor_1 = __importDefault(require("events-constructor"));
18
- const causes_1 = require("./causes");
19
- const constants_1 = require("./constants");
20
- const eventNames_1 = require("./eventNames");
21
- const getExtraHeadersRemoteAddress_1 = __importDefault(require("./getExtraHeadersRemoteAddress"));
22
- const headers_1 = require("./headers");
23
- const utils_1 = require("./utils");
24
- const errors_1 = require("./utils/errors");
25
- const scaleBitrate_1 = __importDefault(require("./videoSendingBalancer/scaleBitrate"));
26
- const BUSY_HERE_STATUS_CODE = 486;
27
- const REQUEST_TERMINATED_STATUS_CODE = 487;
28
- const ORIGINATOR_LOCAL = 'local';
29
- const ORIGINATOR_REMOTE = 'remote';
30
- var EEventsMainCAM;
31
- (function (EEventsMainCAM) {
32
- EEventsMainCAM["PAUSE_MAIN_CAM"] = "PAUSEMAINCAM";
33
- EEventsMainCAM["RESUME_MAIN_CAM"] = "RESUMEMAINCAM";
34
- EEventsMainCAM["MAX_MAIN_CAM_RESOLUTION"] = "MAXMAINCAMRESOLUTION";
35
- EEventsMainCAM["ADMIN_STOP_MAIN_CAM"] = "ADMINSTOPMAINCAM";
36
- EEventsMainCAM["ADMIN_START_MAIN_CAM"] = "ADMINSTARTMAINCAM";
37
- })(EEventsMainCAM || (exports.EEventsMainCAM = EEventsMainCAM = {}));
38
- var EEventsMic;
39
- (function (EEventsMic) {
40
- EEventsMic["ADMIN_STOP_MIC"] = "ADMINSTOPMIC";
41
- EEventsMic["ADMIN_START_MIC"] = "ADMINSTARTMIC";
42
- })(EEventsMic || (exports.EEventsMic = EEventsMic = {}));
43
- var EEventsSyncMediaState;
44
- (function (EEventsSyncMediaState) {
45
- EEventsSyncMediaState["ADMIN_SYNC_FORCED"] = "1";
46
- EEventsSyncMediaState["ADMIN_SYNC_NOT_FORCED"] = "0";
47
- })(EEventsSyncMediaState || (exports.EEventsSyncMediaState = EEventsSyncMediaState = {}));
48
- var EUseLicense;
49
- (function (EUseLicense) {
50
- EUseLicense["AUDIO"] = "AUDIO";
51
- EUseLicense["VIDEO"] = "VIDEO";
52
- EUseLicense["AUDIOPLUSPRESENTATION"] = "AUDIOPLUSPRESENTATION";
53
- })(EUseLicense || (exports.EUseLicense = EUseLicense = {}));
54
- const hasCanceledCallError = (error = new Error()) => {
55
- const { originator, cause } = error;
56
- if ((0, cancelable_promise_1.isCanceledError)(error)) {
57
- return true;
58
- }
59
- if (typeof cause === 'string') {
60
- return (cause === causes_1.REQUEST_TIMEOUT ||
61
- cause === causes_1.REJECTED ||
62
- (originator === ORIGINATOR_LOCAL && (cause === causes_1.CANCELED || cause === causes_1.BYE)));
63
- }
64
- return false;
65
- };
66
- exports.hasCanceledCallError = hasCanceledCallError;
67
- const moduleName = 'SipConnector';
68
- const CMD_CHANNELS = 'channels';
69
- const CMD_WEBCAST_STARTED = 'WebcastStarted';
70
- const CMD_WEBCAST_STOPPED = 'WebcastStopped';
71
- const CMD_ACCOUNT_CHANGED = 'accountChanged';
72
- const CMD_ACCOUNT_DELETED = 'accountDeleted';
73
- const CMD_ADDED_TO_LIST_MODERATORS = 'addedToListModerators';
74
- const CMD_REMOVED_FROM_LIST_MODERATORS = 'removedFromListModerators';
75
- const CMD_MOVE_REQUEST_TO_CONFERENCE = 'WebcastParticipationAccepted';
76
- const CMD_CANCELLING_WORD_REQUEST = 'WebcastParticipationRejected';
77
- const CMD_MOVE_REQUEST_TO_STREAM = 'ParticipantMovedToWebcast';
78
- const CMD_CONFERENCE_PARTICIPANT_TOKEN_ISSUED = 'ConferenceParticipantTokenIssued';
79
- class SipConnector {
80
- constructor({ JsSIP }) {
81
- this._isRegisterConfig = false;
82
- this._connectionConfiguration = {};
83
- this._remoteStreams = {};
84
- this.getSipServerUrl = (id) => {
85
- return id;
86
- };
87
- this.connect = (data) => {
88
- this._cancelRequests();
89
- return this._cancelableConnect.request(data);
90
- };
91
- this.createUa = (data) => {
92
- return this._cancelableCreateUa.request(data);
93
- };
94
- this.set = (data) => {
95
- return this._cancelableSet.request(data);
96
- };
97
- this.call = (data) => {
98
- return this._cancelableCall.request(data);
99
- };
100
- this.disconnect = () => {
101
- this._cancelRequests();
102
- return this._disconnectWithoutCancelRequests();
103
- };
104
- this.answerToIncomingCall = (data) => {
105
- return this._cancelableAnswer.request(data);
106
- };
107
- this.sendDTMF = (tone) => {
108
- return this._cancelableSendDTMF.request(tone);
109
- };
110
- this.hangUp = () => {
111
- this._cancelRequests();
112
- return this._hangUpWithoutCancelRequests();
113
- };
114
- this.tryRegister = () => {
115
- if (!this.isRegisterConfig) {
116
- return Promise.reject(new Error('Config is not registered'));
117
- }
118
- this._uaEvents.trigger(constants_1.CONNECTING, undefined);
119
- return this.unregister()
120
- .finally(() => {
121
- return this.register();
122
- })
123
- .finally(() => {
124
- return undefined;
125
- });
126
- };
127
- this.declineToIncomingCall = ({ statusCode = REQUEST_TERMINATED_STATUS_CODE } = {}) => {
128
- return new Promise((resolve, reject) => {
129
- if (!this.isAvailableIncomingCall) {
130
- reject(new Error('no incomingSession'));
131
- return undefined;
132
- }
133
- const incomingSession = this.incomingSession;
134
- const callerData = this.remoteCallerData;
135
- this._cancelableCall.cancelRequest();
136
- this._cancelableAnswer.cancelRequest();
137
- this.removeIncomingSession();
138
- this._uaEvents.trigger(constants_1.DECLINED_INCOMING_CALL, callerData);
139
- resolve(incomingSession.terminate({ status_code: statusCode }));
140
- return undefined;
141
- });
142
- };
143
- this.busyIncomingCall = () => {
144
- return this.declineToIncomingCall({ statusCode: BUSY_HERE_STATUS_CODE });
145
- };
146
- this.removeIncomingSession = () => {
147
- delete this.incomingSession;
148
- };
149
- this.handleNewRTCSession = ({ originator, session }) => {
150
- if (originator === ORIGINATOR_REMOTE) {
151
- this.incomingSession = session;
152
- const callerData = this.remoteCallerData;
153
- session.on(constants_1.FAILED, ({ originator }) => {
154
- this.removeIncomingSession();
155
- if (originator !== ORIGINATOR_LOCAL) {
156
- this._uaEvents.trigger(constants_1.FAILED_INCOMING_CALL, callerData);
157
- }
158
- else {
159
- this._uaEvents.trigger(constants_1.TERMINATED_INCOMING_CALL, callerData);
160
- }
161
- });
162
- this._uaEvents.trigger(constants_1.INCOMING_CALL, callerData);
163
- }
164
- };
165
- this._connect = (params) => {
166
- return this.createUa(params).then(() => {
167
- return this._start();
168
- });
169
- };
170
- this._createUa = ({ displayName = '', user, password, register = false, sipServerUrl, sipWebSocketServerURL, remoteAddress, extraHeaders = [], sdpSemantics = 'plan-b', sessionTimers = false, registerExpires = 60 * 5, // 5 minutes in sec
171
- connectionRecoveryMinInterval = 2, connectionRecoveryMaxInterval = 6, userAgent, }) => __awaiter(this, void 0, void 0, function* () {
172
- if (!sipServerUrl) {
173
- throw new Error('sipServerUrl is required');
174
- }
175
- if (!sipWebSocketServerURL) {
176
- throw new Error('sipWebSocketServerURL is required');
177
- }
178
- if (register && !user) {
179
- throw new Error('user is required for authorized connection');
180
- }
181
- if (register && !password) {
182
- throw new Error('password is required for authorized connection');
183
- }
184
- this._connectionConfiguration = {
185
- sipServerUrl,
186
- displayName,
187
- register,
188
- user,
189
- password,
190
- };
191
- this._init({ sipServerUrl, sipWebSocketServerURL });
192
- let authorizationUser;
193
- if (register && user) {
194
- authorizationUser = user.trim();
195
- }
196
- else {
197
- authorizationUser = (0, utils_1.generateUserId)();
198
- }
199
- const configuration = {
200
- password,
201
- register,
202
- display_name: (0, utils_1.parseDisplayName)(displayName),
203
- user_agent: userAgent,
204
- sdp_semantics: sdpSemantics,
205
- sockets: [this.socket],
206
- uri: this.getSipServerUrl(authorizationUser),
207
- session_timers: sessionTimers,
208
- register_expires: registerExpires,
209
- connection_recovery_min_interval: connectionRecoveryMinInterval,
210
- connection_recovery_max_interval: connectionRecoveryMaxInterval,
211
- };
212
- if (this.ua) {
213
- yield this._disconnectWithoutCancelRequests();
214
- }
215
- this._isRegisterConfig = !!configuration.register;
216
- this.ua = new this.JsSIP.UA(configuration);
217
- this._uaEvents.eachTriggers((trigger, eventName) => {
218
- const uaJsSipEvent = eventNames_1.UA_JSSIP_EVENT_NAMES.find((jsSipEvent) => {
219
- return jsSipEvent === eventName;
220
- });
221
- if (uaJsSipEvent) {
222
- this.ua.on(uaJsSipEvent, trigger);
223
- }
224
- });
225
- const extraHeadersRemoteAddress = (0, getExtraHeadersRemoteAddress_1.default)(remoteAddress);
226
- const extraHeadersBase = [...extraHeadersRemoteAddress, ...extraHeaders];
227
- this.ua.registrator().setExtraHeaders(extraHeadersBase);
228
- return this.ua;
229
- });
230
- this._start = () => {
231
- return new Promise((resolve, reject) => {
232
- const resolveUa = () => {
233
- removeEventListeners();
234
- resolve(this.ua);
235
- };
236
- const rejectError = (error) => {
237
- removeEventListeners();
238
- reject(error);
239
- };
240
- const addEventListeners = () => {
241
- if (this.isRegisterConfig) {
242
- this.on(constants_1.REGISTERED, resolveUa);
243
- this.on(constants_1.REGISTRATION_FAILED, rejectError);
244
- }
245
- else {
246
- this.on(constants_1.CONNECTED, resolveUa);
247
- }
248
- this.on(constants_1.DISCONNECTED, rejectError);
249
- };
250
- const removeEventListeners = () => {
251
- this.off(constants_1.REGISTERED, resolveUa);
252
- this.off(constants_1.REGISTRATION_FAILED, rejectError);
253
- this.off(constants_1.CONNECTED, resolveUa);
254
- this.off(constants_1.DISCONNECTED, rejectError);
255
- };
256
- addEventListeners();
257
- this.on(constants_1.NEW_RTC_SESSION, this.handleNewRTCSession);
258
- this.ua.start();
259
- });
260
- };
261
- this._set = ({ displayName, password }) => {
262
- return new Promise((resolve, reject) => {
263
- let changedDisplayName = false;
264
- let changedPassword = false;
265
- if (displayName !== undefined && displayName !== this._connectionConfiguration.displayName) {
266
- changedDisplayName = this.ua.set('display_name', (0, utils_1.parseDisplayName)(displayName));
267
- this._connectionConfiguration.displayName = displayName;
268
- }
269
- if (password !== undefined && password !== this._connectionConfiguration.password) {
270
- changedPassword = this.ua.set('password', password);
271
- this._connectionConfiguration.password = password;
272
- }
273
- const changedSome = changedDisplayName || changedPassword;
274
- if (changedPassword && this.isRegisterConfig) {
275
- this.register()
276
- .then(() => {
277
- return resolve(changedSome);
278
- })
279
- .catch(reject);
280
- }
281
- else if (changedSome) {
282
- resolve(changedSome);
283
- }
284
- else {
285
- reject(changedSome);
286
- }
287
- });
288
- };
289
- this._disconnectWithoutCancelRequests = () => {
290
- return this._cancelableDisconnect.request();
291
- };
292
- this._disconnect = () => __awaiter(this, void 0, void 0, function* () {
293
- this.off(constants_1.NEW_RTC_SESSION, this.handleNewRTCSession);
294
- const disconnectedPromise = new Promise((resolve) => {
295
- this.once(constants_1.DISCONNECTED, () => {
296
- delete this.ua;
297
- resolve();
298
- });
299
- });
300
- if (this.ua) {
301
- yield this._hangUpWithoutCancelRequests();
302
- if (this.ua) {
303
- this.ua.stop();
304
- }
305
- else {
306
- this._uaEvents.trigger(constants_1.DISCONNECTED, undefined);
307
- }
308
- }
309
- else {
310
- this._uaEvents.trigger(constants_1.DISCONNECTED, undefined);
311
- }
312
- return disconnectedPromise;
313
- });
314
- this._call = ({ number, mediaStream, extraHeaders = [], ontrack, iceServers, videoMode, audioMode, degradationPreference, offerToReceiveAudio = true, offerToReceiveVideo = true, }) => {
315
- return new Promise((resolve, reject) => {
316
- this._connectionConfiguration.number = number;
317
- this._connectionConfiguration.answer = false;
318
- this._handleCall({ ontrack }).then(resolve).catch(reject);
319
- this.session = this.ua.call(this.getSipServerUrl(number), {
320
- extraHeaders,
321
- mediaStream: (0, utils_1.prepareMediaStream)(mediaStream, {
322
- videoMode,
323
- audioMode,
324
- }),
325
- eventHandlers: this._sessionEvents.triggers,
326
- videoMode,
327
- audioMode,
328
- degradationPreference,
329
- pcConfig: {
330
- iceServers,
331
- },
332
- rtcOfferConstraints: {
333
- offerToReceiveAudio,
334
- offerToReceiveVideo,
335
- },
336
- });
337
- });
338
- };
339
- this._answer = ({ mediaStream, ontrack, extraHeaders = [], iceServers, videoMode, audioMode, degradationPreference, }) => {
340
- return new Promise((resolve, reject) => {
341
- if (!this.isAvailableIncomingCall) {
342
- reject(new Error('no incomingSession'));
343
- return undefined;
344
- }
345
- this.session = this.incomingSession;
346
- this.removeIncomingSession();
347
- const session = this.session;
348
- if (!session) {
349
- reject(new Error('No session established'));
350
- return;
351
- }
352
- this._sessionEvents.eachTriggers((trigger, eventName) => {
353
- const sessionJsSipEvent = eventNames_1.SESSION_JSSIP_EVENT_NAMES.find((jsSipEvent) => {
354
- return jsSipEvent === eventName;
355
- });
356
- if (sessionJsSipEvent) {
357
- session.on(sessionJsSipEvent, trigger);
358
- }
359
- });
360
- this._connectionConfiguration.answer = true;
361
- this._connectionConfiguration.number = session.remote_identity.uri.user;
362
- this._handleCall({ ontrack }).then(resolve).catch(reject);
363
- const preparedMediaStream = (0, utils_1.prepareMediaStream)(mediaStream, {
364
- videoMode,
365
- audioMode,
366
- });
367
- session.answer({
368
- extraHeaders,
369
- videoMode,
370
- audioMode,
371
- degradationPreference,
372
- mediaStream: preparedMediaStream,
373
- pcConfig: {
374
- iceServers,
375
- },
376
- });
377
- return undefined;
378
- });
379
- };
380
- this._handleCall = ({ ontrack }) => {
381
- return new Promise((resolve, reject) => {
382
- const addStartedEventListeners = () => {
383
- this.onSession(constants_1.PEER_CONNECTION, handlePeerConnection);
384
- this.onSession(constants_1.CONFIRMED, handleConfirmed);
385
- };
386
- const removeStartedEventListeners = () => {
387
- this.offSession(constants_1.PEER_CONNECTION, handlePeerConnection);
388
- this.offSession(constants_1.CONFIRMED, handleConfirmed);
389
- };
390
- const addEndedEventListeners = () => {
391
- this.onSession(constants_1.FAILED, handleEnded);
392
- this.onSession(constants_1.ENDED, handleEnded);
393
- };
394
- const removeEndedEventListeners = () => {
395
- this.offSession(constants_1.FAILED, handleEnded);
396
- this.offSession(constants_1.ENDED, handleEnded);
397
- };
398
- const handleEnded = (error) => {
399
- removeStartedEventListeners();
400
- removeEndedEventListeners();
401
- reject(error);
402
- };
403
- let savedPeerconnection;
404
- const handlePeerConnection = ({ peerconnection }) => {
405
- savedPeerconnection = peerconnection;
406
- savedPeerconnection.ontrack = (track) => {
407
- this._sessionEvents.trigger(constants_1.PEER_CONNECTION_ONTRACK, savedPeerconnection);
408
- if (ontrack) {
409
- ontrack(track);
410
- }
411
- };
412
- };
413
- const handleConfirmed = () => {
414
- if (savedPeerconnection) {
415
- this._sessionEvents.trigger(constants_1.PEER_CONNECTION_CONFIRMED, savedPeerconnection);
416
- }
417
- removeStartedEventListeners();
418
- removeEndedEventListeners();
419
- resolve(savedPeerconnection);
420
- };
421
- addStartedEventListeners();
422
- addEndedEventListeners();
423
- });
424
- };
425
- this._restoreSession = () => {
426
- this._resetPresentation();
427
- delete this._connectionConfiguration.number;
428
- delete this.session;
429
- this._remoteStreams = {};
430
- };
431
- this._sendDTMF = (tone) => {
432
- return new Promise((resolve, reject) => {
433
- const session = this.session;
434
- if (!session) {
435
- reject(new Error('No session established'));
436
- return;
437
- }
438
- this.onceSession(constants_1.NEW_DTMF, ({ originator }) => {
439
- if (originator === ORIGINATOR_LOCAL) {
440
- resolve();
441
- }
442
- });
443
- session.sendDTMF(tone, {
444
- duration: 120,
445
- interToneGap: 600,
446
- });
447
- });
448
- };
449
- this._hangUpWithoutCancelRequests = () => __awaiter(this, void 0, void 0, function* () {
450
- if (this.ua && this.session) {
451
- const { session } = this;
452
- if (this._streamPresentationCurrent) {
453
- yield this.stopPresentation();
454
- }
455
- this._restoreSession();
456
- if (!session.isEnded()) {
457
- session.terminate();
458
- }
459
- }
460
- });
461
- this._handleShareState = (eventName) => {
462
- switch (eventName) {
463
- case headers_1.AVAILABLE_SECOND_REMOTE_STREAM:
464
- this._sessionEvents.trigger(constants_1.AVAILABLE_SECOND_REMOTE_STREAM_EVENT, undefined);
465
- break;
466
- case headers_1.NOT_AVAILABLE_SECOND_REMOTE_STREAM:
467
- this._sessionEvents.trigger(constants_1.NOT_AVAILABLE_SECOND_REMOTE_STREAM_EVENT, undefined);
468
- break;
469
- case headers_1.MUST_STOP_PRESENTATION:
470
- this._sessionEvents.trigger(constants_1.MUST_STOP_PRESENTATION_EVENT, undefined);
471
- break;
472
- default:
473
- break;
474
- }
475
- };
476
- this._maybeTriggerChannels = (request) => {
477
- const inputChannels = request.getHeader(headers_1.HEADER_INPUT_CHANNELS);
478
- const outputChannels = request.getHeader(headers_1.HEADER_OUTPUT_CHANNELS);
479
- if (inputChannels && outputChannels) {
480
- const headersChannels = {
481
- inputChannels,
482
- outputChannels,
483
- };
484
- this._sessionEvents.trigger(constants_1.CHANNELS, headersChannels);
485
- }
486
- };
487
- this._handleNotify = (header) => {
488
- if (header.cmd === CMD_CHANNELS) {
489
- const channelsInfo = header;
490
- this._triggerChannelsNotify(channelsInfo);
491
- }
492
- else if (header.cmd === CMD_WEBCAST_STARTED) {
493
- const webcastInfo = header;
494
- this._triggerWebcastStartedNotify(webcastInfo);
495
- }
496
- else if (header.cmd === CMD_WEBCAST_STOPPED) {
497
- const webcastInfo = header;
498
- this._triggerWebcastStoppedNotify(webcastInfo);
499
- }
500
- else if (header.cmd === CMD_ADDED_TO_LIST_MODERATORS) {
501
- const data = header;
502
- this._triggerAddedToListModeratorsNotify(data);
503
- }
504
- else if (header.cmd === CMD_REMOVED_FROM_LIST_MODERATORS) {
505
- const data = header;
506
- this._triggerRemovedFromListModeratorsNotify(data);
507
- }
508
- else if (header.cmd === CMD_MOVE_REQUEST_TO_CONFERENCE) {
509
- const data = header;
510
- this._triggerParticipantMoveRequestToConference(data);
511
- }
512
- else if (header.cmd === CMD_CANCELLING_WORD_REQUEST) {
513
- const data = header;
514
- this._triggerParticipantCancelingWordRequest(data);
515
- }
516
- else if (header.cmd === CMD_MOVE_REQUEST_TO_STREAM) {
517
- const data = header;
518
- this._triggerParticipantMoveRequestToStream(data);
519
- }
520
- else if (header.cmd === CMD_ACCOUNT_CHANGED) {
521
- this._triggerAccountChangedNotify();
522
- }
523
- else if (header.cmd === CMD_ACCOUNT_DELETED) {
524
- this._triggerAccountDeletedNotify();
525
- }
526
- else if (header.cmd === CMD_CONFERENCE_PARTICIPANT_TOKEN_ISSUED) {
527
- const data = header;
528
- this._triggerConferenceParticipantTokenIssued(data);
529
- }
530
- };
531
- this._triggerRemovedFromListModeratorsNotify = ({ conference, }) => {
532
- const headersParametersModeratorsList = {
533
- conference,
534
- };
535
- this._uaEvents.trigger(constants_1.PARTICIPANT_REMOVED_FROM_LIST_MODERATORS, headersParametersModeratorsList);
536
- };
537
- this._triggerAddedToListModeratorsNotify = ({ conference }) => {
538
- const headersParametersModeratorsList = {
539
- conference,
540
- };
541
- this._uaEvents.trigger(constants_1.PARTICIPANT_ADDED_TO_LIST_MODERATORS, headersParametersModeratorsList);
542
- };
543
- this._triggerWebcastStartedNotify = ({ body: { conference, type } }) => {
544
- const headersParametersWebcast = {
545
- conference,
546
- type,
547
- };
548
- this._uaEvents.trigger(constants_1.WEBCAST_STARTED, headersParametersWebcast);
549
- };
550
- this._triggerWebcastStoppedNotify = ({ body: { conference, type } }) => {
551
- const headersParametersWebcast = {
552
- conference,
553
- type,
554
- };
555
- this._uaEvents.trigger(constants_1.WEBCAST_STOPPED, headersParametersWebcast);
556
- };
557
- this._triggerAccountChangedNotify = () => {
558
- this._uaEvents.trigger(constants_1.ACCOUNT_CHANGED, undefined);
559
- };
560
- this._triggerAccountDeletedNotify = () => {
561
- this._uaEvents.trigger(constants_1.ACCOUNT_DELETED, undefined);
562
- };
563
- this._triggerConferenceParticipantTokenIssued = ({ body: { conference, participant, jwt }, }) => {
564
- const headersConferenceParticipantTokenIssued = {
565
- conference,
566
- participant,
567
- jwt,
568
- };
569
- this._uaEvents.trigger(constants_1.CONFERENCE_PARTICIPANT_TOKEN_ISSUED, headersConferenceParticipantTokenIssued);
570
- };
571
- this._triggerChannelsNotify = (channelsInfo) => {
572
- const inputChannels = channelsInfo.input;
573
- const outputChannels = channelsInfo.output;
574
- const data = {
575
- inputChannels,
576
- outputChannels,
577
- };
578
- this._uaEvents.trigger(constants_1.CHANNELS_NOTIFY, data);
579
- };
580
- this._triggerParticipantMoveRequestToConference = ({ body: { conference }, }) => {
581
- const data = {
582
- conference,
583
- };
584
- this._uaEvents.trigger(constants_1.PARTICIPANT_MOVE_REQUEST_TO_CONFERENCE, data);
585
- };
586
- this._triggerParticipantCancelingWordRequest = ({ body: { conference }, }) => {
587
- const data = {
588
- conference,
589
- };
590
- this._uaEvents.trigger(constants_1.PARTICIPANT_CANCELLING_WORD_REQUEST, data);
591
- };
592
- this._triggerParticipantMoveRequestToStream = ({ body: { conference }, }) => {
593
- const data = {
594
- conference,
595
- };
596
- this._uaEvents.trigger(constants_1.PARTICIPANT_MOVE_REQUEST_TO_STREAM, data);
597
- };
598
- this._triggerEnterRoom = (request) => {
599
- const room = request.getHeader(headers_1.HEADER_CONTENT_ENTER_ROOM);
600
- this._sessionEvents.trigger(constants_1.ENTER_ROOM, room);
601
- };
602
- this._triggerShareState = (request) => {
603
- const eventName = request.getHeader(headers_1.HEADER_CONTENT_SHARE_STATE);
604
- this._sessionEvents.trigger(constants_1.SHARE_STATE, eventName);
605
- };
606
- this._triggerMainCamControl = (request) => {
607
- const mainCam = request.getHeader(headers_1.HEADER_MAIN_CAM);
608
- const syncState = request.getHeader(headers_1.HEADER_MEDIA_SYNC);
609
- const isSyncForced = syncState === EEventsSyncMediaState.ADMIN_SYNC_FORCED ? true : false;
610
- if (mainCam === EEventsMainCAM.ADMIN_START_MAIN_CAM) {
611
- this._sessionEvents.trigger(constants_1.ADMIN_START_MAIN_CAM, { isSyncForced });
612
- }
613
- else if (mainCam === EEventsMainCAM.ADMIN_STOP_MAIN_CAM) {
614
- this._sessionEvents.trigger(constants_1.ADMIN_STOP_MAIN_CAM, { isSyncForced });
615
- }
616
- else if ((mainCam === EEventsMainCAM.RESUME_MAIN_CAM || mainCam === EEventsMainCAM.PAUSE_MAIN_CAM) &&
617
- !!syncState) {
618
- this._sessionEvents.trigger(constants_1.ADMIN_FORCE_SYNC_MEDIA_STATE, { isSyncForced });
619
- }
620
- else {
621
- const resolutionMainCam = request.getHeader(headers_1.HEADER_MAIN_CAM_RESOLUTION);
622
- this._sessionEvents.trigger(constants_1.MAIN_CAM_CONTROL, {
623
- mainCam,
624
- resolutionMainCam,
625
- });
626
- }
627
- };
628
- this._triggerMicControl = (request) => {
629
- const mic = request.getHeader(headers_1.HEADER_MIC);
630
- const syncState = request.getHeader(headers_1.HEADER_MEDIA_SYNC);
631
- const isSyncForced = syncState === EEventsSyncMediaState.ADMIN_SYNC_FORCED ? true : false;
632
- if (mic === EEventsMic.ADMIN_START_MIC) {
633
- this._sessionEvents.trigger(constants_1.ADMIN_START_MIC, { isSyncForced });
634
- }
635
- else if (mic === EEventsMic.ADMIN_STOP_MIC) {
636
- this._sessionEvents.trigger(constants_1.ADMIN_STOP_MIC, { isSyncForced });
637
- }
638
- };
639
- this._triggerUseLicense = (request) => {
640
- const license = request.getHeader(headers_1.HEADER_CONTENT_USE_LICENSE);
641
- this._sessionEvents.trigger(constants_1.USE_LICENSE, license);
642
- };
643
- this._handleNewInfo = (info) => {
644
- const { originator } = info;
645
- if (originator !== 'remote') {
646
- return;
647
- }
648
- const request = info.request;
649
- const contentType = request.getHeader(headers_1.HEADER_CONTENT_TYPE_NAME);
650
- if (contentType) {
651
- switch (contentType) {
652
- case headers_1.CONTENT_TYPE_ENTER_ROOM:
653
- this._triggerEnterRoom(request);
654
- this._maybeTriggerChannels(request);
655
- break;
656
- case headers_1.CONTENT_TYPE_NOTIFY:
657
- this._maybeHandleNotify(request);
658
- break;
659
- case headers_1.CONTENT_TYPE_SHARE_STATE:
660
- this._triggerShareState(request);
661
- break;
662
- case headers_1.CONTENT_TYPE_MAIN_CAM:
663
- this._triggerMainCamControl(request);
664
- break;
665
- case headers_1.CONTENT_TYPE_MIC:
666
- this._triggerMicControl(request);
667
- break;
668
- case headers_1.CONTENT_TYPE_USE_LICENSE:
669
- this._triggerUseLicense(request);
670
- break;
671
- default:
672
- break;
673
- }
674
- }
675
- };
676
- this._handleSipEvent = ({ request }) => {
677
- this._maybeHandleNotify(request);
678
- };
679
- this._maybeHandleNotify = (request) => {
680
- const headerNotify = request.getHeader(headers_1.HEADER_NOTIFY);
681
- if (headerNotify) {
682
- const headerNotifyParsed = JSON.parse(headerNotify);
683
- this._handleNotify(headerNotifyParsed);
684
- }
685
- };
686
- this._handleEnded = (error) => {
687
- const { originator } = error;
688
- if (originator === ORIGINATOR_REMOTE) {
689
- this._sessionEvents.trigger(constants_1.ENDED_FROM_SERVER, error);
690
- }
691
- this._restoreSession();
692
- };
693
- this.JsSIP = JsSIP;
694
- this._sessionEvents = new events_constructor_1.default(eventNames_1.SESSION_EVENT_NAMES);
695
- this._uaEvents = new events_constructor_1.default(eventNames_1.UA_EVENT_NAMES);
696
- this._cancelableConnect = new cancelable_promise_1.CancelableRequest(this._connect, {
697
- moduleName,
698
- afterCancelRequest: () => {
699
- this._cancelableCreateUa.cancelRequest();
700
- this._cancelableDisconnect.cancelRequest();
701
- },
702
- });
703
- this._cancelableCreateUa = new cancelable_promise_1.CancelableRequest(this._createUa, { moduleName });
704
- this._cancelableDisconnect = new cancelable_promise_1.CancelableRequest(this._disconnect, { moduleName });
705
- this._cancelableSet = new cancelable_promise_1.CancelableRequest(this._set, {
706
- moduleName,
707
- });
708
- this._cancelableCall = new cancelable_promise_1.CancelableRequest(this._call, { moduleName });
709
- this._cancelableAnswer = new cancelable_promise_1.CancelableRequest(this._answer, { moduleName });
710
- this._cancelableSendDTMF = new cancelable_promise_1.CancelableRequest(this._sendDTMF, { moduleName });
711
- this.onSession(constants_1.SHARE_STATE, this._handleShareState);
712
- this.onSession(constants_1.NEW_INFO, this._handleNewInfo);
713
- this.on(constants_1.SIP_EVENT, this._handleSipEvent);
714
- this.onSession(constants_1.FAILED, this._handleEnded);
715
- this.onSession(constants_1.ENDED, this._handleEnded);
716
- }
717
- register() {
718
- return new Promise((resolve, reject) => {
719
- if (this.isRegisterConfig) {
720
- this.ua.on(constants_1.REGISTERED, resolve);
721
- this.ua.on(constants_1.REGISTRATION_FAILED, reject);
722
- this.ua.register();
723
- }
724
- else {
725
- reject(new Error('Config is not registered'));
726
- }
727
- });
728
- }
729
- unregister() {
730
- return new Promise((resolve, reject) => {
731
- if (this.isRegistered) {
732
- this.ua.on(constants_1.UNREGISTERED, resolve);
733
- this.ua.unregister();
734
- }
735
- else {
736
- reject(new Error('ua is not registered'));
737
- }
738
- });
739
- }
740
- sendOptions(target, body, extraHeaders) {
741
- if (!this.ua) {
742
- return Promise.reject(new Error('is not connected'));
743
- }
744
- return new Promise((resolve, reject) => {
745
- try {
746
- this.ua.sendOptions(target, body, {
747
- extraHeaders,
748
- eventHandlers: {
749
- succeeded: () => {
750
- resolve();
751
- },
752
- failed: (error) => {
753
- reject(error);
754
- },
755
- },
756
- });
757
- }
758
- catch (error) {
759
- reject(error);
760
- }
761
- });
762
- }
763
- ping(body, extraHeaders) {
764
- if (!this.ua || !this.ua.configuration || !this.ua.configuration.uri) {
765
- return Promise.reject(new Error('is not connected'));
766
- }
767
- const target = this.ua.configuration.uri;
768
- return this.sendOptions(target, body, extraHeaders);
769
- }
770
- replaceMediaStream(mediaStream, options) {
771
- if (!this.session) {
772
- throw new Error('No session established');
773
- }
774
- return this.session.replaceMediaStream(mediaStream, options);
775
- }
776
- askPermissionToEnableCam(options = { noTerminateWhenError: true }) {
777
- if (!this.session) {
778
- throw new Error('No session established');
779
- }
780
- const extraHeaders = [headers_1.HEADER_ENABLE_MAIN_CAM];
781
- return this.session
782
- .sendInfo(headers_1.CONTENT_TYPE_MAIN_CAM, undefined, Object.assign(Object.assign({}, options), { extraHeaders }))
783
- .catch((error) => {
784
- if ((0, errors_1.hasDeclineResponseFromServer)(error)) {
785
- throw error;
786
- }
787
- return;
788
- });
789
- }
790
- get isPendingPresentation() {
791
- return !!this.promisePendingStartPresentation || !!this.promisePendingStopPresentation;
792
- }
793
- _sendPresentation(session, stream, { maxBitrate, degradationPreference, isNeedReinvite = true, isP2P = false, }) {
794
- const streamPresentationCurrent = (0, utils_1.prepareMediaStream)(stream);
795
- this._streamPresentationCurrent = streamPresentationCurrent;
796
- const preparatoryHeaders = isP2P
797
- ? [headers_1.HEADER_START_PRESENTATION_P2P]
798
- : [headers_1.HEADER_START_PRESENTATION];
799
- const result = session
800
- .sendInfo(headers_1.CONTENT_TYPE_SHARE_STATE, undefined, {
801
- extraHeaders: preparatoryHeaders,
802
- })
803
- .then(() => {
804
- return session.startPresentation(streamPresentationCurrent, isNeedReinvite, degradationPreference);
805
- })
806
- // @ts-ignore
807
- .then(() => {
808
- const { connection } = this;
809
- if (!connection || maxBitrate === undefined) {
810
- return undefined;
811
- }
812
- const senders = connection.getSenders();
813
- return (0, scaleBitrate_1.default)(senders, stream, maxBitrate);
814
- })
815
- .then(() => {
816
- return stream;
817
- })
818
- .catch((error) => {
819
- this._sessionEvents.trigger(constants_1.PRESENTATION_FAILED, error);
820
- throw error;
821
- });
822
- this.promisePendingStartPresentation = result;
823
- return result.finally(() => {
824
- this.promisePendingStartPresentation = undefined;
825
- });
826
- }
827
- startPresentation(stream, { isNeedReinvite = true, isP2P = false, maxBitrate, degradationPreference, } = {}) {
828
- const session = this.establishedSession;
829
- if (!session) {
830
- return Promise.reject(new Error('No session established'));
831
- }
832
- if (this._streamPresentationCurrent) {
833
- return Promise.reject(new Error('Presentation is already started'));
834
- }
835
- return this._sendPresentation(session, stream, {
836
- isNeedReinvite,
837
- isP2P,
838
- maxBitrate,
839
- degradationPreference,
840
- });
841
- }
842
- stopPresentation({ isP2P = false, } = {}) {
843
- const streamPresentationPrev = this._streamPresentationCurrent;
844
- let result = this.promisePendingStartPresentation || Promise.resolve();
845
- const preparatoryHeaders = isP2P ? [headers_1.HEADER_STOP_PRESENTATION_P2P] : [headers_1.HEADER_STOP_PRESENTATION];
846
- const session = this.establishedSession;
847
- if (session && streamPresentationPrev) {
848
- result = result
849
- .then(() => {
850
- return session.sendInfo(headers_1.CONTENT_TYPE_SHARE_STATE, undefined, {
851
- extraHeaders: preparatoryHeaders,
852
- });
853
- })
854
- .then(() => {
855
- return session.stopPresentation(streamPresentationPrev);
856
- })
857
- .catch((error) => {
858
- this._sessionEvents.trigger(constants_1.PRESENTATION_FAILED, error);
859
- throw error;
860
- });
861
- }
862
- if (!session && streamPresentationPrev) {
863
- this._sessionEvents.trigger(constants_1.PRESENTATION_ENDED, streamPresentationPrev);
864
- }
865
- this.promisePendingStopPresentation = result;
866
- return result.finally(() => {
867
- this._resetPresentation();
868
- });
869
- }
870
- updatePresentation(stream, { isP2P = false, maxBitrate, degradationPreference, } = {}) {
871
- return __awaiter(this, void 0, void 0, function* () {
872
- const session = this.establishedSession;
873
- if (!session) {
874
- return Promise.reject(new Error('No session established'));
875
- }
876
- if (!this._streamPresentationCurrent) {
877
- return Promise.reject(new Error('Presentation has not started yet'));
878
- }
879
- if (this.promisePendingStartPresentation) {
880
- yield this.promisePendingStartPresentation;
881
- }
882
- return this._sendPresentation(session, stream, {
883
- isP2P,
884
- maxBitrate,
885
- degradationPreference,
886
- isNeedReinvite: false,
887
- });
888
- });
889
- }
890
- _resetPresentation() {
891
- delete this._streamPresentationCurrent;
892
- this.promisePendingStartPresentation = undefined;
893
- this.promisePendingStopPresentation = undefined;
894
- }
895
- on(eventName, handler) {
896
- return this._uaEvents.on(eventName, handler);
897
- }
898
- once(eventName, handler) {
899
- return this._uaEvents.once(eventName, handler);
900
- }
901
- onceRace(eventNames, handler) {
902
- return this._uaEvents.onceRace(eventNames, handler);
903
- }
904
- wait(eventName) {
905
- return this._uaEvents.wait(eventName);
906
- }
907
- off(eventName, handler) {
908
- this._uaEvents.off(eventName, handler);
909
- }
910
- onSession(eventName, handler) {
911
- return this._sessionEvents.on(eventName, handler);
912
- }
913
- onceSession(eventName, handler) {
914
- return this._sessionEvents.once(eventName, handler);
915
- }
916
- onceRaceSession(eventNames, handler) {
917
- return this._sessionEvents.onceRace(eventNames, handler);
918
- }
919
- waitSession(eventName) {
920
- return this._sessionEvents.wait(eventName);
921
- }
922
- offSession(eventName, handler) {
923
- this._sessionEvents.off(eventName, handler);
924
- }
925
- isConfigured() {
926
- return !!this.ua;
927
- }
928
- getConnectionConfiguration() {
929
- return Object.assign({}, this._connectionConfiguration);
930
- }
931
- getRemoteStreams() {
932
- if (!this.connection) {
933
- return undefined;
934
- }
935
- const receivers = this.connection.getReceivers();
936
- const remoteTracks = receivers.map(({ track }) => {
937
- return track;
938
- });
939
- if ((0, utils_1.hasVideoTracks)(remoteTracks)) {
940
- return this._generateStreams(remoteTracks);
941
- }
942
- return this._generateAudioStreams(remoteTracks);
943
- }
944
- get connection() {
945
- var _a;
946
- const connection = (_a = this === null || this === void 0 ? void 0 : this.session) === null || _a === void 0 ? void 0 : _a.connection;
947
- return connection;
948
- }
949
- get remoteCallerData() {
950
- var _a, _b, _c, _d, _e, _f;
951
- return {
952
- // eslint-disable-next-line camelcase
953
- displayName: (_b = (_a = this === null || this === void 0 ? void 0 : this.incomingSession) === null || _a === void 0 ? void 0 : _a.remote_identity) === null || _b === void 0 ? void 0 : _b.display_name,
954
- // eslint-disable-next-line camelcase
955
- host: (_d = (_c = this === null || this === void 0 ? void 0 : this.incomingSession) === null || _c === void 0 ? void 0 : _c.remote_identity) === null || _d === void 0 ? void 0 : _d.uri.host,
956
- // eslint-disable-next-line camelcase
957
- incomingNumber: (_f = (_e = this === null || this === void 0 ? void 0 : this.incomingSession) === null || _e === void 0 ? void 0 : _e.remote_identity) === null || _f === void 0 ? void 0 : _f.uri.user,
958
- session: this === null || this === void 0 ? void 0 : this.incomingSession,
959
- };
960
- }
961
- get requested() {
962
- return (this._cancelableConnect.requested ||
963
- this._cancelableCreateUa.requested ||
964
- this._cancelableCall.requested ||
965
- this._cancelableAnswer.requested);
966
- }
967
- get establishedSession() {
968
- return this.session && this.session.isEstablished() ? this.session : undefined;
969
- }
970
- get isRegistered() {
971
- return !!this.ua && this.ua.isRegistered();
972
- }
973
- get isRegisterConfig() {
974
- return !!this.ua && this._isRegisterConfig;
975
- }
976
- get isCallActive() {
977
- return !!(this.ua && this.session);
978
- }
979
- get isAvailableIncomingCall() {
980
- return !!this.incomingSession;
981
- }
982
- _init({ sipServerUrl, sipWebSocketServerURL }) {
983
- this.getSipServerUrl = (0, utils_1.resolveSipUrl)(sipServerUrl);
984
- this.socket = new this.JsSIP.WebSocketInterface(sipWebSocketServerURL);
985
- }
986
- _generateStream(videoTrack, audioTrack) {
987
- const id = videoTrack.id;
988
- const remoteStream = this._remoteStreams[id] || new MediaStream();
989
- if (audioTrack) {
990
- remoteStream.addTrack(audioTrack);
991
- }
992
- remoteStream.addTrack(videoTrack);
993
- this._remoteStreams[id] = remoteStream;
994
- return remoteStream;
995
- }
996
- _generateAudioStream(audioTrack) {
997
- const id = audioTrack.id;
998
- const remoteStream = this._remoteStreams[id] || new MediaStream();
999
- remoteStream.addTrack(audioTrack);
1000
- this._remoteStreams[id] = remoteStream;
1001
- return remoteStream;
1002
- }
1003
- _generateStreams(remoteTracks) {
1004
- const remoteStreams = [];
1005
- remoteTracks.forEach((track, index) => {
1006
- if (track.kind === 'audio') {
1007
- return;
1008
- }
1009
- const videoTrack = track;
1010
- const prevTrack = remoteTracks[index - 1];
1011
- let audioTrack;
1012
- if (prevTrack && prevTrack.kind === 'audio') {
1013
- audioTrack = prevTrack;
1014
- }
1015
- const remoteStream = this._generateStream(videoTrack, audioTrack);
1016
- remoteStreams.push(remoteStream);
1017
- }, []);
1018
- return remoteStreams;
1019
- }
1020
- _generateAudioStreams(remoteTracks) {
1021
- const remoteStreams = remoteTracks.map((remoteTrack) => {
1022
- return this._generateAudioStream(remoteTrack);
1023
- });
1024
- return remoteStreams;
1025
- }
1026
- _cancelRequests() {
1027
- this._cancelActionsRequests();
1028
- this._cancelCallRequests();
1029
- this._cancelConnectRequests();
1030
- }
1031
- _cancelConnectRequests() {
1032
- this._cancelableConnect.cancelRequest();
1033
- }
1034
- _cancelCallRequests() {
1035
- this._cancelableCall.cancelRequest();
1036
- this._cancelableAnswer.cancelRequest();
1037
- }
1038
- _cancelActionsRequests() {
1039
- this._cancelableAnswer.cancelRequest();
1040
- this._cancelableSendDTMF.cancelRequest();
1041
- }
1042
- waitChannels() {
1043
- return this.waitSession(constants_1.CHANNELS);
1044
- }
1045
- waitSyncMediaState() {
1046
- return this.waitSession(constants_1.ADMIN_FORCE_SYNC_MEDIA_STATE);
1047
- }
1048
- sendChannels({ inputChannels, outputChannels }) {
1049
- if (!this.session) {
1050
- throw new Error('No session established');
1051
- }
1052
- const headerInputChannels = `${headers_1.HEADER_INPUT_CHANNELS}: ${inputChannels}`;
1053
- const headerOutputChannels = `${headers_1.HEADER_OUTPUT_CHANNELS}: ${outputChannels}`;
1054
- const extraHeaders = [
1055
- headerInputChannels,
1056
- headerOutputChannels,
1057
- ];
1058
- return this.session.sendInfo(headers_1.CONTENT_TYPE_CHANNELS, undefined, { extraHeaders });
1059
- }
1060
- sendMediaState({ cam, mic }, options = { noTerminateWhenError: true }) {
1061
- if (!this.session) {
1062
- throw new Error('No session established');
1063
- }
1064
- const headerMediaState = `${headers_1.HEADER_MEDIA_STATE}: currentstate`;
1065
- const headerCam = `${headers_1.HEADER_MAIN_CAM_STATE}: ${+cam}`;
1066
- const headerMic = `${headers_1.HEADER_MIC_STATE}: ${+mic}`;
1067
- const extraHeaders = [
1068
- headerMediaState,
1069
- headerCam,
1070
- headerMic,
1071
- ];
1072
- return this.session.sendInfo(headers_1.CONTENT_TYPE_MEDIA_STATE, undefined, Object.assign(Object.assign({}, options), { extraHeaders }));
1073
- }
1074
- _sendRefusalToTurnOn(type, options = { noTerminateWhenError: true }) {
1075
- if (!this.session) {
1076
- throw new Error('No session established');
1077
- }
1078
- const typeMicOnServer = 0;
1079
- const typeCamOnServer = 1;
1080
- const typeToSend = type == 'mic' ? typeMicOnServer : typeCamOnServer;
1081
- const headerMediaType = `${headers_1.HEADER_MEDIA_TYPE}: ${typeToSend}`;
1082
- const extraHeaders = [headerMediaType];
1083
- return this.session.sendInfo(headers_1.CONTENT_TYPE_REFUSAL, undefined, Object.assign(Object.assign({}, options), { extraHeaders }));
1084
- }
1085
- sendRefusalToTurnOnMic(options = { noTerminateWhenError: true }) {
1086
- if (!this.session) {
1087
- throw new Error('No session established');
1088
- }
1089
- return this._sendRefusalToTurnOn('mic', options);
1090
- }
1091
- sendRefusalToTurnOnCam(options = { noTerminateWhenError: true }) {
1092
- if (!this.session) {
1093
- throw new Error('No session established');
1094
- }
1095
- return this._sendRefusalToTurnOn('cam', options);
1096
- }
1097
- }
1098
- exports.default = SipConnector;
1099
- //# sourceMappingURL=SipConnector.js.map