Commit Graph

38 Commits

Author SHA1 Message Date
CloudWebRTC 26947e96d6 e2ee. (#226)
* chore: e2ee.

* update.

* update.

* update.

* update.

* chore: Use feat/frame-encryption branch of flutter-webrtc.

* chore: Add E2EEKEY defines for dart environment, and e2ee switch.

* Add encodedInsertableStreams to RTCConfiguration.

* update.

* feat: Add e2ee indicator for Participant.

* feat: add e2ee worker js for flutter web.

* dart format.

* remove unused file.

* fix flutter analyze .

* update.

* update.

* add: indicate for decryption failure, and string key.

* remove .lock files.

* update.

* update.

* update e2ee.worker for web.

* feat: support setCodecPreferences.

* state TrackE2EEStateEvent.

* fix wrong import interface from dart_webrtc.

* update.

* update.

* update.

* update.

* update pubspec.lock.

* chore: update protocol and add EncryptionType for Participant.

* Update lib/src/e2ee/options.dart

Co-authored-by: Théo Monnom <theo.monnom@outlook.com>

* fix typo.

* revert changes for internal import.

* Add _cleanUp() for previous room.

* Add e2ee supports detection method for native/web.

* Remove redundant overriding methods.

* dart format.

* Add e2ee.worker code and deployment docs.

* chore: remove duplicate words.

* chore: using Pbkdf2 derive the key.

* Update pubspec.yaml

* fix e2ee for safari.

* fix key length.

* update e2ee.worker.dart.js.

* fix.

* update proto.

* update.

* chore: add simulate for rachetKey.

* update.

* chore: key ratchet for flutter web.

* update.

* update.

* update.

* chore: key ratchet export for web.

* bump version for xframeworks.

* update.

* chore: some changes for key safety ratcheting.

* update.

* fix typo.

* update.

* rename.

* magic bytes for web.

* bump version for flutter-webrtc.

* fix analyzer.

---------

Co-authored-by: Théo Monnom <theo.monnom@outlook.com>
2023-04-27 17:54:32 +08:00
CloudWebRTC 68d611a448 feat: topic for data-channel. (#260) 2023-03-27 09:19:42 +08:00
CloudWebRTC b63d4bde8a Room recording event (#252)
* feat: Add room reocording reminder.

* chore: comment for recording event.
2023-03-08 13:09:04 +08:00
CloudWebRTC c74e6777d8 feat: Forward leave reason of disconnected events. (#250)
* feat: Forward leave reason of disconnected events.

* fix analyze.

* chore: print room disconnect reason when event.reason != null.

* chore: rename InternalDisconnectReason => ClientDisconnectReason.
2023-03-07 17:54:18 +08:00
CloudWebRTC db2e25d424 feat: web/native device consistency management (#243)
* fix: Force audio settings to be consistent.

* chore: applyAudioSettings for onUnpublish.

* revert audio output select for web.

* add RoomHardwareManagementMethods to Room.

* update.

* fix analyze.

* update.

* update.

* chore: Reset sinkId for web when remoteTrack replays.

* rename setAudioOutput to setSinkId for flutter web.

* chore: Make sure AudioElement has `setSinkId` method.
2023-03-07 17:54:06 +08:00
CloudWebRTC 5c4761bc7c Fix: re-publish tracks after re connect (#238)
* fix republish local tracks after reconnect.

* update flutter-webrtc.

* remove unused import.

* add dart_webrtc.

* cleanup.

* fix: Fix sendSyncState timing error, when reconnecting is sending.

* Adjust the re-connect logic to ensure that the publisher negotiates and reconnects correctly.

* Update room.dart
2023-02-17 09:04:56 +08:00
CloudWebRTC 1596e67cf8 fix: fix connection fails for firefox. (#222) 2022-12-12 11:31:16 +08:00
cloudwebrtc 4381287a5d fix: Avoid concurrent operations for _participants during Room._cleanUp(). 2022-12-08 16:17:38 +08:00
CloudWebRTC 73927c9f71 fix: Disconnect from room before app closes. (#218)
* fix: Disconnect from room before app closes.

* chore: add app state listener.

* Remove unused import.

* fix `flutter test`.

* singleton.
2022-12-05 17:28:11 +08:00
CloudWebRTC 0d8441ebfb e2e: fix resume/full-reconnect. (#194)
* fix: full re-connect.

* chore: Reset fullReConnect state after ConnectionState is emitted.

* Support full reconnect, fix Migration, NodeFailure, FullReconnect test cases.

* revert Timeouts.connection.

* update.

* Refactor the resume/reconnect implementation.

* more changes.

* update.

* Changed to simpler reconnect/recovery logic.

* update.

* update.

* code format.

* tidy.

* bump version for flutter-webrtc.

* chore: Remove unused exception class (SignalReconnectError).

* chore: rename `fullReconnectOnNext` to `fullReconnect`.

* update.

* chore: Revert changes for `unpublishTrack`.

* chore: Reconnect signalClient when resumeConnection.

* revert `rethrow` in engine.connect.

* Use removePublishedTrack instead of unpublishTrack (RemoteParticipant).

* chore: Correctly handle PeerConnectionState for resume/full-reconnect.

* tidy.
2022-11-08 16:06:09 +08:00
CloudWebRTC 306ee473e9 fix: Fixed track not being correctly passed to localParticipant in FastConnectOptions, causing the camera to apply twice and not be released. (#188) 2022-10-16 22:02:37 +08:00
CloudWebRTC a60a2e861c chore: Add simulate for candidate protocol switch. (#176) 2022-09-20 17:47:38 +08:00
CloudWebRTC 044606223e Expose RTPReceiver for getting track statistics. (#162) 2022-09-07 15:15:32 +08:00
CloudWebRTC 3d8bf96651 protocol 8. (#134)
* protocol 8.

* add FastConnectOptions.

* update.

* fix.

* Deprecated the top connect method.

* Add fast connect button in example.

* Create a Listener before connecting.

* Force protocol-v7 for deprecated APIs.

* remove commented out line.

* relative path import.

* update.
2022-07-11 19:54:08 +08:00
CloudWebRTC bcfea1e625 handle combined participant update. (#130)
* handle combined participant update (WIP).

* always emit events for new publications.

* update info for exist participant.

* fix tests.

* update.

* Move emitWhenConnected to Room layer.
2022-07-04 11:11:56 +08:00
CloudWebRTC f93f3c063c re-send tracks permissions after reconnected. (#128) 2022-06-14 17:12:37 +08:00
Hiroshi Horie e23131fbbf Pass adaptive_stream when connecting (#109)
* impl

* ignore fvm files

* Update pubspec.lock

* comment
2022-04-26 02:57:24 +09:00
Hiroshi Horie 48754e1672 [Protocol v7] Remote unpublish & expose permissions (#101)
* fix

* impl

* oldPermissions

* mods
2022-04-04 16:09:15 +09:00
Hiroshi Horie cd4a3f5c8a Simplify internal events (#100)
* simplify internal events

* simplify
2022-04-03 12:35:08 +09:00
Hiroshi Horie 47b9329c67 remove unused code 2022-03-06 14:10:18 +09:00
Hiroshi Horie ead3a7ea6a move sendSimulateScenario 2022-03-06 14:06:39 +09:00
Hiroshi Horie 4fd35eb41d organize the cleanUp chain 2022-03-04 21:39:28 +09:00
Hiroshi Horie 99460dd436 EngineConnectionStateUpdatedEvent instead of individual events 2022-03-04 20:10:28 +09:00
Hiroshi Horie d278310748 read Engine's connectionState instead of own property 2022-03-04 19:32:07 +09:00
Hiroshi Horie 39fa024a6f read only properties for Room 2022-03-04 19:14:14 +09:00
Hiroshi Horie 83dd984f8c server region property 2022-03-04 19:01:28 +09:00
Hiroshi Horie 0a339b6252 organize video types 2022-02-25 15:45:46 +09:00
davidliu 29c2117453 handle room update message (#79) 2022-02-07 12:37:47 +09:00
davidliu 9bd546b9a2 tests and mocks for e2e testing (#78)
* tests and mocks for e2e testing

* formatting

* fix analyze errors
2022-02-06 20:36:42 +09:00
davidliu 0d92c569df update track settings (#77) 2022-02-03 20:27:26 +09:00
Hiroshi Horie 4aa0e0f427 Use ParticipantTracks for UpdateSubscription (#75)
* impl

* fix
2022-01-26 17:57:34 +07:00
Hiroshi Horie 224047c31f Session migration (#72)
* impl

* retry logic

* simulate

* pass checks

* adjust log level

* retry condition

* fix simulate scenario params

* format

* use `RTCPeerConnectionState` instead of `RTCIceConnectionState`

* adjust retry

* additional check for completer

* more logging

* fix id

* pub

* change package

* doc update

* retry tests

* format

* apply suggestions
2022-01-25 00:53:18 +07:00
Hiroshi Horie aef1fd8804 Subscription permission API (#68)
* signal

* request

* implement

* rename event

* ref

* adjustments based on review

* override subscribed

* move events emit

* fix subscription state

* minor change

* update example for permissions demo

* format & subscriptionState as computed property

* prepare macos build

* unsubscribed event when subscription not allowed
2022-01-10 23:48:44 +07:00
Hiroshi Horie 677ad94e75 more logging for dynacast 2022-01-03 16:37:51 +07:00
Hiroshi Horie ea5c324328 Dynacast (#62)
* signal

* engine

* dynacast option

* implement

* update for non simulcast

* use low when rid is null

* firefox comment
2022-01-03 09:02:06 +07:00
Hiroshi Horie 44a42eafea name field for participant 2022-01-02 01:38:54 +07:00
Hiroshi Horie 94b4b07e92 fix reconnect logic 2021-12-23 01:50:58 +07:00
Hiroshi Horie 1ed757aca0 organize dirs 2021-12-21 17:57:18 +07:00