werift 0.19.0 → 0.19.2

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 (284) hide show
  1. package/lib/common/src/binary.js +1 -1
  2. package/lib/common/src/binary.js.map +1 -1
  3. package/lib/common/src/network.js.map +1 -1
  4. package/lib/common/src/promise.js.map +1 -1
  5. package/lib/dtls/src/cipher/const.js +2 -2
  6. package/lib/dtls/src/cipher/const.js.map +1 -1
  7. package/lib/dtls/src/cipher/create.js +10 -10
  8. package/lib/dtls/src/cipher/create.js.map +1 -1
  9. package/lib/dtls/src/cipher/namedCurve.js.map +1 -1
  10. package/lib/dtls/src/cipher/prf.js +1 -1
  11. package/lib/dtls/src/cipher/prf.js.map +1 -1
  12. package/lib/dtls/src/cipher/suites/aead.d.ts +1 -1
  13. package/lib/dtls/src/cipher/suites/aead.js +5 -4
  14. package/lib/dtls/src/cipher/suites/aead.js.map +1 -1
  15. package/lib/dtls/src/client.js.map +1 -1
  16. package/lib/dtls/src/context/cipher.js +3 -3
  17. package/lib/dtls/src/context/cipher.js.map +1 -1
  18. package/lib/dtls/src/context/dtls.js.map +1 -1
  19. package/lib/dtls/src/context/srtp.js.map +1 -1
  20. package/lib/dtls/src/flight/client/flight5.js +8 -6
  21. package/lib/dtls/src/flight/client/flight5.js.map +1 -1
  22. package/lib/dtls/src/flight/flight.js +1 -1
  23. package/lib/dtls/src/flight/flight.js.map +1 -1
  24. package/lib/dtls/src/flight/server/flight2.js.map +1 -1
  25. package/lib/dtls/src/flight/server/flight4.js.map +1 -1
  26. package/lib/dtls/src/flight/server/flight6.js.map +1 -1
  27. package/lib/dtls/src/handshake/binary.d.ts +5 -5
  28. package/lib/dtls/src/handshake/binary.js +1 -1
  29. package/lib/dtls/src/handshake/binary.js.map +1 -1
  30. package/lib/dtls/src/handshake/const.js +1 -1
  31. package/lib/dtls/src/handshake/const.js.map +1 -1
  32. package/lib/dtls/src/handshake/extensions/ellipticCurves.d.ts +1 -1
  33. package/lib/dtls/src/handshake/extensions/ellipticCurves.js +2 -2
  34. package/lib/dtls/src/handshake/extensions/ellipticCurves.js.map +1 -1
  35. package/lib/dtls/src/handshake/extensions/extendedMasterSecret.js +1 -1
  36. package/lib/dtls/src/handshake/extensions/extendedMasterSecret.js.map +1 -1
  37. package/lib/dtls/src/handshake/extensions/renegotiationIndication.d.ts +2 -2
  38. package/lib/dtls/src/handshake/extensions/renegotiationIndication.js +2 -2
  39. package/lib/dtls/src/handshake/extensions/renegotiationIndication.js.map +1 -1
  40. package/lib/dtls/src/handshake/extensions/signature.d.ts +1 -1
  41. package/lib/dtls/src/handshake/extensions/signature.js +2 -2
  42. package/lib/dtls/src/handshake/extensions/signature.js.map +1 -1
  43. package/lib/dtls/src/handshake/extensions/useSrtp.d.ts +1 -1
  44. package/lib/dtls/src/handshake/extensions/useSrtp.js +2 -2
  45. package/lib/dtls/src/handshake/extensions/useSrtp.js.map +1 -1
  46. package/lib/dtls/src/handshake/message/alert.d.ts +2 -2
  47. package/lib/dtls/src/handshake/message/alert.js +2 -2
  48. package/lib/dtls/src/handshake/message/alert.js.map +1 -1
  49. package/lib/dtls/src/handshake/message/certificate.js +2 -2
  50. package/lib/dtls/src/handshake/message/certificate.js.map +1 -1
  51. package/lib/dtls/src/handshake/message/changeCipherSpec.d.ts +1 -1
  52. package/lib/dtls/src/handshake/message/changeCipherSpec.js +2 -2
  53. package/lib/dtls/src/handshake/message/changeCipherSpec.js.map +1 -1
  54. package/lib/dtls/src/handshake/message/client/certificateVerify.d.ts +1 -1
  55. package/lib/dtls/src/handshake/message/client/certificateVerify.js +2 -2
  56. package/lib/dtls/src/handshake/message/client/certificateVerify.js.map +1 -1
  57. package/lib/dtls/src/handshake/message/client/hello.d.ts +3 -3
  58. package/lib/dtls/src/handshake/message/client/hello.js +2 -2
  59. package/lib/dtls/src/handshake/message/client/hello.js.map +1 -1
  60. package/lib/dtls/src/handshake/message/client/keyExchange.js +2 -2
  61. package/lib/dtls/src/handshake/message/client/keyExchange.js.map +1 -1
  62. package/lib/dtls/src/handshake/message/server/certificateRequest.js +2 -2
  63. package/lib/dtls/src/handshake/message/server/certificateRequest.js.map +1 -1
  64. package/lib/dtls/src/handshake/message/server/hello.d.ts +5 -5
  65. package/lib/dtls/src/handshake/message/server/hello.js +2 -2
  66. package/lib/dtls/src/handshake/message/server/hello.js.map +1 -1
  67. package/lib/dtls/src/handshake/message/server/helloDone.js +2 -2
  68. package/lib/dtls/src/handshake/message/server/helloDone.js.map +1 -1
  69. package/lib/dtls/src/handshake/message/server/helloVerifyRequest.d.ts +2 -2
  70. package/lib/dtls/src/handshake/message/server/helloVerifyRequest.js +2 -2
  71. package/lib/dtls/src/handshake/message/server/helloVerifyRequest.js.map +1 -1
  72. package/lib/dtls/src/handshake/message/server/keyExchange.d.ts +6 -6
  73. package/lib/dtls/src/handshake/message/server/keyExchange.js +2 -2
  74. package/lib/dtls/src/handshake/message/server/keyExchange.js.map +1 -1
  75. package/lib/dtls/src/handshake/random.d.ts +1 -1
  76. package/lib/dtls/src/handshake/random.js +3 -3
  77. package/lib/dtls/src/handshake/random.js.map +1 -1
  78. package/lib/dtls/src/helper.d.ts +1 -1
  79. package/lib/dtls/src/helper.js.map +1 -1
  80. package/lib/dtls/src/record/const.js +2 -2
  81. package/lib/dtls/src/record/const.js.map +1 -1
  82. package/lib/dtls/src/record/message/fragment.d.ts +6 -6
  83. package/lib/dtls/src/record/message/fragment.js +4 -4
  84. package/lib/dtls/src/record/message/fragment.js.map +1 -1
  85. package/lib/dtls/src/record/message/header.d.ts +12 -12
  86. package/lib/dtls/src/record/message/header.js +3 -3
  87. package/lib/dtls/src/record/message/header.js.map +1 -1
  88. package/lib/dtls/src/record/message/plaintext.d.ts +12 -12
  89. package/lib/dtls/src/record/message/plaintext.js +2 -2
  90. package/lib/dtls/src/record/message/plaintext.js.map +1 -1
  91. package/lib/dtls/src/record/receive.js.map +1 -1
  92. package/lib/dtls/src/server.js.map +1 -1
  93. package/lib/dtls/src/socket.js +1 -1
  94. package/lib/dtls/src/socket.js.map +1 -1
  95. package/lib/dtls/src/transport.js.map +1 -1
  96. package/lib/dtls/src/util/binary.js +1 -1
  97. package/lib/dtls/src/util/binary.js.map +1 -1
  98. package/lib/ice/src/candidate.js +1 -1
  99. package/lib/ice/src/candidate.js.map +1 -1
  100. package/lib/ice/src/dns/lookup.d.ts +7 -0
  101. package/lib/ice/src/dns/lookup.js +47 -1
  102. package/lib/ice/src/dns/lookup.js.map +1 -1
  103. package/lib/ice/src/exceptions.d.ts +2 -2
  104. package/lib/ice/src/exceptions.js.map +1 -1
  105. package/lib/ice/src/helper.d.ts +1 -1
  106. package/lib/ice/src/helper.js.map +1 -1
  107. package/lib/ice/src/ice.d.ts +10 -18
  108. package/lib/ice/src/ice.js +62 -159
  109. package/lib/ice/src/ice.js.map +1 -1
  110. package/lib/ice/src/index.d.ts +2 -0
  111. package/lib/ice/src/index.js +4 -0
  112. package/lib/ice/src/index.js.map +1 -1
  113. package/lib/ice/src/stun/attributes.d.ts +2 -2
  114. package/lib/ice/src/stun/attributes.js +1 -1
  115. package/lib/ice/src/stun/attributes.js.map +1 -1
  116. package/lib/ice/src/stun/const.d.ts +1 -1
  117. package/lib/ice/src/stun/const.js +2 -2
  118. package/lib/ice/src/stun/const.js.map +1 -1
  119. package/lib/ice/src/stun/message.d.ts +1 -1
  120. package/lib/ice/src/stun/message.js +2 -2
  121. package/lib/ice/src/stun/message.js.map +1 -1
  122. package/lib/ice/src/stun/protocol.d.ts +5 -5
  123. package/lib/ice/src/stun/protocol.js.map +1 -1
  124. package/lib/ice/src/stun/transaction.d.ts +2 -2
  125. package/lib/ice/src/stun/transaction.js.map +1 -1
  126. package/lib/ice/src/transport.d.ts +3 -3
  127. package/lib/ice/src/transport.js +1 -1
  128. package/lib/ice/src/transport.js.map +1 -1
  129. package/lib/ice/src/turn/protocol.d.ts +32 -13
  130. package/lib/ice/src/turn/protocol.js +120 -36
  131. package/lib/ice/src/turn/protocol.js.map +1 -1
  132. package/lib/ice/src/types/model.d.ts +2 -2
  133. package/lib/ice/src/types/model.js.map +1 -1
  134. package/lib/ice/src/utils.d.ts +3 -2
  135. package/lib/ice/src/utils.js +72 -1
  136. package/lib/ice/src/utils.js.map +1 -1
  137. package/lib/rtp/src/codec/av1.js +1 -1
  138. package/lib/rtp/src/codec/av1.js.map +1 -1
  139. package/lib/rtp/src/codec/h264.js.map +1 -1
  140. package/lib/rtp/src/codec/index.js.map +1 -1
  141. package/lib/rtp/src/codec/opus.js.map +1 -1
  142. package/lib/rtp/src/codec/vp8.js.map +1 -1
  143. package/lib/rtp/src/codec/vp9.js.map +1 -1
  144. package/lib/rtp/src/extra/container/mp4/container.js.map +1 -1
  145. package/lib/rtp/src/extra/container/mp4/exp-golomb.js.map +1 -1
  146. package/lib/rtp/src/extra/container/mp4/h264.js +1 -1
  147. package/lib/rtp/src/extra/container/mp4/h264.js.map +1 -1
  148. package/lib/rtp/src/extra/container/mp4/sps-parser.js +4 -4
  149. package/lib/rtp/src/extra/container/mp4/sps-parser.js.map +1 -1
  150. package/lib/rtp/src/extra/container/ogg/parser.js.map +1 -1
  151. package/lib/rtp/src/extra/container/webm/container.js.map +1 -1
  152. package/lib/rtp/src/extra/container/webm/ebml/ebml.js +1 -1
  153. package/lib/rtp/src/extra/container/webm/ebml/ebml.js.map +1 -1
  154. package/lib/rtp/src/extra/container/webm/ebml/typedArrayUtils.js.map +1 -1
  155. package/lib/rtp/src/extra/processor/depacketizer.js.map +1 -1
  156. package/lib/rtp/src/extra/processor/depacketizerTransformer.js.map +1 -1
  157. package/lib/rtp/src/extra/processor/dtx.js.map +1 -1
  158. package/lib/rtp/src/extra/processor/interface.js.map +1 -1
  159. package/lib/rtp/src/extra/processor/jitterBuffer.js.map +1 -1
  160. package/lib/rtp/src/extra/processor/jitterBufferTransformer.js.map +1 -1
  161. package/lib/rtp/src/extra/processor/lipsync.js.map +1 -1
  162. package/lib/rtp/src/extra/processor/lipsyncCallback.d.ts +1 -1
  163. package/lib/rtp/src/extra/processor/lipsyncCallback.js.map +1 -1
  164. package/lib/rtp/src/extra/processor/mp4.js.map +1 -1
  165. package/lib/rtp/src/extra/processor/mp4Callback.js +1 -1
  166. package/lib/rtp/src/extra/processor/mp4Callback.js.map +1 -1
  167. package/lib/rtp/src/extra/processor/mute.js.map +1 -1
  168. package/lib/rtp/src/extra/processor/muteCallback.js.map +1 -1
  169. package/lib/rtp/src/extra/processor/nack.js.map +1 -1
  170. package/lib/rtp/src/extra/processor/ntpTime.js.map +1 -1
  171. package/lib/rtp/src/extra/processor/rtcpCallback.js.map +1 -1
  172. package/lib/rtp/src/extra/processor/rtpCallback.js.map +1 -1
  173. package/lib/rtp/src/extra/processor/rtpStream.js.map +1 -1
  174. package/lib/rtp/src/extra/processor/rtpTime.js.map +1 -1
  175. package/lib/rtp/src/extra/processor/webm.js.map +1 -1
  176. package/lib/rtp/src/extra/processor/webmCallback.js.map +1 -1
  177. package/lib/rtp/src/extra/processor/webmStream.js.map +1 -1
  178. package/lib/rtp/src/index.d.ts +1 -0
  179. package/lib/rtp/src/rtcp/header.js.map +1 -1
  180. package/lib/rtp/src/rtcp/psfb/fullIntraRequest.js +1 -1
  181. package/lib/rtp/src/rtcp/psfb/fullIntraRequest.js.map +1 -1
  182. package/lib/rtp/src/rtcp/psfb/index.js +1 -1
  183. package/lib/rtp/src/rtcp/psfb/index.js.map +1 -1
  184. package/lib/rtp/src/rtcp/psfb/pictureLossIndication.js +1 -1
  185. package/lib/rtp/src/rtcp/psfb/pictureLossIndication.js.map +1 -1
  186. package/lib/rtp/src/rtcp/psfb/remb.js +1 -1
  187. package/lib/rtp/src/rtcp/psfb/remb.js.map +1 -1
  188. package/lib/rtp/src/rtcp/rr.js +1 -1
  189. package/lib/rtp/src/rtcp/rr.js.map +1 -1
  190. package/lib/rtp/src/rtcp/rtcp.js.map +1 -1
  191. package/lib/rtp/src/rtcp/rtpfb/index.js +1 -1
  192. package/lib/rtp/src/rtcp/rtpfb/index.js.map +1 -1
  193. package/lib/rtp/src/rtcp/rtpfb/nack.js +2 -2
  194. package/lib/rtp/src/rtcp/rtpfb/nack.js.map +1 -1
  195. package/lib/rtp/src/rtcp/rtpfb/twcc.js +3 -3
  196. package/lib/rtp/src/rtcp/rtpfb/twcc.js.map +1 -1
  197. package/lib/rtp/src/rtcp/sdes.js +1 -1
  198. package/lib/rtp/src/rtcp/sdes.js.map +1 -1
  199. package/lib/rtp/src/rtcp/sr.js +1 -1
  200. package/lib/rtp/src/rtcp/sr.js.map +1 -1
  201. package/lib/rtp/src/rtp/headerExtension.js.map +1 -1
  202. package/lib/rtp/src/rtp/red/encoder.js.map +1 -1
  203. package/lib/rtp/src/rtp/red/handler.js.map +1 -1
  204. package/lib/rtp/src/rtp/red/packet.js +0 -1
  205. package/lib/rtp/src/rtp/red/packet.js.map +1 -1
  206. package/lib/rtp/src/rtp/rtp.js +3 -2
  207. package/lib/rtp/src/rtp/rtp.js.map +1 -1
  208. package/lib/rtp/src/rtp/rtx.js +1 -1
  209. package/lib/rtp/src/rtp/rtx.js.map +1 -1
  210. package/lib/rtp/src/srtp/cipher/ctr.d.ts +1 -1
  211. package/lib/rtp/src/srtp/cipher/ctr.js +1 -1
  212. package/lib/rtp/src/srtp/cipher/ctr.js.map +1 -1
  213. package/lib/rtp/src/srtp/cipher/gcm.d.ts +1 -1
  214. package/lib/rtp/src/srtp/cipher/gcm.js +1 -1
  215. package/lib/rtp/src/srtp/cipher/gcm.js.map +1 -1
  216. package/lib/rtp/src/srtp/const.js.map +1 -1
  217. package/lib/rtp/src/srtp/context/context.js +1 -1
  218. package/lib/rtp/src/srtp/context/context.js.map +1 -1
  219. package/lib/rtp/src/srtp/context/srtcp.js.map +1 -1
  220. package/lib/sctp/src/chunk.js +18 -18
  221. package/lib/sctp/src/chunk.js.map +1 -1
  222. package/lib/sctp/src/const.js +2 -2
  223. package/lib/sctp/src/const.js.map +1 -1
  224. package/lib/sctp/src/param.js +6 -6
  225. package/lib/sctp/src/param.js.map +1 -1
  226. package/lib/sctp/src/sctp.js +6 -2
  227. package/lib/sctp/src/sctp.js.map +1 -1
  228. package/lib/sctp/src/transport.js.map +1 -1
  229. package/lib/webrtc/src/dataChannel.d.ts +1 -1
  230. package/lib/webrtc/src/dataChannel.js +1 -1
  231. package/lib/webrtc/src/dataChannel.js.map +1 -1
  232. package/lib/webrtc/src/helper.js.map +1 -1
  233. package/lib/webrtc/src/media/parameters.d.ts +1 -2
  234. package/lib/webrtc/src/media/parameters.js.map +1 -1
  235. package/lib/webrtc/src/media/receiver/nack.js.map +1 -1
  236. package/lib/webrtc/src/media/receiver/receiverTwcc.js.map +1 -1
  237. package/lib/webrtc/src/media/receiver/statistics.js.map +1 -1
  238. package/lib/webrtc/src/media/router.js +4 -2
  239. package/lib/webrtc/src/media/router.js.map +1 -1
  240. package/lib/webrtc/src/media/rtpReceiver.d.ts +1 -1
  241. package/lib/webrtc/src/media/rtpReceiver.js +1 -1
  242. package/lib/webrtc/src/media/rtpReceiver.js.map +1 -1
  243. package/lib/webrtc/src/media/rtpSender.js +2 -2
  244. package/lib/webrtc/src/media/rtpSender.js.map +1 -1
  245. package/lib/webrtc/src/media/rtpTransceiver.js.map +1 -1
  246. package/lib/webrtc/src/media/sender/cumulativeResult.js.map +1 -1
  247. package/lib/webrtc/src/media/sender/senderBWE.js.map +1 -1
  248. package/lib/webrtc/src/media/track.js.map +1 -1
  249. package/lib/webrtc/src/nonstandard/recorder/index.js.map +1 -1
  250. package/lib/webrtc/src/nonstandard/recorder/writer/index.d.ts +1 -1
  251. package/lib/webrtc/src/nonstandard/recorder/writer/index.js.map +1 -1
  252. package/lib/webrtc/src/nonstandard/recorder/writer/webm.d.ts +2 -2
  253. package/lib/webrtc/src/nonstandard/recorder/writer/webm.js +2 -2
  254. package/lib/webrtc/src/nonstandard/recorder/writer/webm.js.map +1 -1
  255. package/lib/webrtc/src/nonstandard/userMedia.js.map +1 -1
  256. package/lib/webrtc/src/peerConnection.d.ts +3 -2
  257. package/lib/webrtc/src/peerConnection.js +14 -8
  258. package/lib/webrtc/src/peerConnection.js.map +1 -1
  259. package/lib/webrtc/src/sdp.d.ts +1 -1
  260. package/lib/webrtc/src/sdp.js +47 -37
  261. package/lib/webrtc/src/sdp.js.map +1 -1
  262. package/lib/webrtc/src/transport/dtls.js.map +1 -1
  263. package/lib/webrtc/src/transport/ice.js.map +1 -1
  264. package/lib/webrtc/src/transport/sctp.js +10 -8
  265. package/lib/webrtc/src/transport/sctp.js.map +1 -1
  266. package/lib/webrtc/src/utils.js +1 -1
  267. package/lib/webrtc/src/utils.js.map +1 -1
  268. package/package.json +14 -22
  269. package/src/dataChannel.ts +1 -1
  270. package/src/media/parameters.ts +2 -2
  271. package/src/media/receiver/nack.ts +4 -7
  272. package/src/media/router.ts +36 -40
  273. package/src/media/rtpReceiver.ts +12 -15
  274. package/src/media/rtpSender.ts +70 -83
  275. package/src/nonstandard/recorder/writer/index.ts +1 -1
  276. package/src/nonstandard/recorder/writer/webm.ts +3 -3
  277. package/src/nonstandard/userMedia.ts +1 -3
  278. package/src/peerConnection.ts +32 -24
  279. package/src/sdp.ts +50 -56
  280. package/src/transport/dtls.ts +3 -6
  281. package/src/transport/ice.ts +1 -1
  282. package/src/transport/sctp.ts +61 -67
  283. package/src/utils.ts +1 -1
  284. package/src/typings/jspack.d.ts +0 -8
@@ -1,5 +1,5 @@
1
+ import { jspack } from "@shinyoshiaki/jspack";
1
2
  import debug from "debug";
2
- import { jspack } from "jspack";
3
3
  import { Event } from "rx.mini";
4
4
  import * as uuid from "uuid";
5
5
 
@@ -108,79 +108,73 @@ export class RTCSctpTransport {
108
108
  if (ppId === WEBRTC_DCEP && data.length > 0) {
109
109
  log("DCEP", streamId, ppId, data);
110
110
  switch (data[0]) {
111
- case DATA_CHANNEL_OPEN:
112
- {
113
- if (data.length < 12) {
114
- log("DATA_CHANNEL_OPEN data.length not enough");
115
- return;
116
- }
117
-
118
- if (!Object.keys(this.dataChannels).includes(streamId.toString())) {
119
- const [
120
- ,
121
- channelType,
122
- ,
123
- reliability,
124
- labelLength,
125
- protocolLength,
126
- ] = jspack.Unpack("!BBHLHH", data);
127
-
128
- let pos = 12;
129
- const label = data.slice(pos, pos + labelLength).toString("utf8");
130
- pos += labelLength;
131
- const protocol = data
132
- .slice(pos, pos + protocolLength)
133
- .toString("utf8");
134
-
135
- log("DATA_CHANNEL_OPEN", {
136
- channelType,
137
- reliability,
138
- streamId,
139
- label,
140
- protocol,
141
- });
142
-
143
- const maxRetransmits =
144
- (channelType & 0x03) === 1 ? reliability : undefined;
145
- const maxPacketLifeTime =
146
- (channelType & 0x03) === 2 ? reliability : undefined;
147
-
148
- // # register channel
149
- const parameters = new RTCDataChannelParameters({
150
- label,
151
- ordered: (channelType & 0x80) === 0,
152
- maxPacketLifeTime,
153
- maxRetransmits,
154
- protocol,
155
- id: streamId,
156
- });
157
- const channel = new RTCDataChannel(this, parameters, false);
158
- channel.isCreatedByRemote = true;
159
- this.dataChannels[streamId] = channel;
160
-
161
- this.onDataChannel.execute(channel);
162
- channel.setReadyState("open");
163
- } else {
164
- log("datachannel already opened", "retransmit ack");
165
- }
111
+ case DATA_CHANNEL_OPEN: {
112
+ if (data.length < 12) {
113
+ log("DATA_CHANNEL_OPEN data.length not enough");
114
+ return;
115
+ }
166
116
 
167
- const channel = this.dataChannels[streamId];
168
- this.dataChannelQueue.push([
169
- channel,
170
- WEBRTC_DCEP,
171
- Buffer.from(jspack.Pack("!B", [DATA_CHANNEL_ACK])),
172
- ]);
173
- await this.dataChannelFlush();
117
+ if (!Object.keys(this.dataChannels).includes(streamId.toString())) {
118
+ const [, channelType, , reliability, labelLength, protocolLength] =
119
+ jspack.Unpack("!BBHLHH", data);
120
+
121
+ let pos = 12;
122
+ const label = data.slice(pos, pos + labelLength).toString("utf8");
123
+ pos += labelLength;
124
+ const protocol = data
125
+ .slice(pos, pos + protocolLength)
126
+ .toString("utf8");
127
+
128
+ log("DATA_CHANNEL_OPEN", {
129
+ channelType,
130
+ reliability,
131
+ streamId,
132
+ label,
133
+ protocol,
134
+ });
135
+
136
+ const maxRetransmits =
137
+ (channelType & 0x03) === 1 ? reliability : undefined;
138
+ const maxPacketLifeTime =
139
+ (channelType & 0x03) === 2 ? reliability : undefined;
140
+
141
+ // # register channel
142
+ const parameters = new RTCDataChannelParameters({
143
+ label,
144
+ ordered: (channelType & 0x80) === 0,
145
+ maxPacketLifeTime,
146
+ maxRetransmits,
147
+ protocol,
148
+ id: streamId,
149
+ });
150
+ const channel = new RTCDataChannel(this, parameters, false);
151
+ channel.isCreatedByRemote = true;
152
+ this.dataChannels[streamId] = channel;
153
+
154
+ this.onDataChannel.execute(channel);
155
+ channel.setReadyState("open");
156
+ } else {
157
+ log("datachannel already opened", "retransmit ack");
174
158
  }
175
- break;
176
- case DATA_CHANNEL_ACK:
159
+
160
+ const channel = this.dataChannels[streamId];
161
+ this.dataChannelQueue.push([
162
+ channel,
163
+ WEBRTC_DCEP,
164
+ Buffer.from(jspack.Pack("!B", [DATA_CHANNEL_ACK])),
165
+ ]);
166
+ await this.dataChannelFlush();
167
+ }
168
+ break;
169
+ case DATA_CHANNEL_ACK: {
177
170
  log("DATA_CHANNEL_ACK", streamId, ppId);
178
171
  const channel = this.dataChannels[streamId];
179
172
  if (!channel) {
180
173
  throw new Error("channel not found");
181
174
  }
182
175
  channel.setReadyState("open");
183
- break;
176
+ }
177
+ break;
184
178
  }
185
179
  } else {
186
180
  const channel = this.dataChannels[streamId];
@@ -200,7 +194,7 @@ export class RTCSctpTransport {
200
194
  }
201
195
  })();
202
196
 
203
- channel.message.execute(msg);
197
+ channel.onMessage.execute(msg);
204
198
  channel.emit("message", { data: msg });
205
199
  if (channel.onmessage) {
206
200
  channel.onmessage({ data: msg });
package/src/utils.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable prefer-const */
2
2
  import { createHash } from "crypto";
3
+ import { RemoteInfo, createSocket } from "dgram";
3
4
  import debug from "debug";
4
- import { createSocket, RemoteInfo } from "dgram";
5
5
  import mergeWith from "lodash/mergeWith";
6
6
  import { performance } from "perf_hooks";
7
7
 
@@ -1,8 +0,0 @@
1
- declare module "jspack" {
2
- interface Jspack {
3
- Pack(s: string, arr: any[]): number[];
4
- Unpack(s: string, buf: Buffer): number[];
5
- }
6
- const jspack: Jspack;
7
- export { jspack };
8
- }