Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Start video/audio element saga via base room session #897

Open
wants to merge 17 commits into
base: main
Choose a base branch
from

Conversation

iAmmar7
Copy link
Collaborator

@iAmmar7 iAmmar7 commented Oct 11, 2023

Description

Initialize video and audio element saga through the BaseRoomSession constructor.

ref: https://github.com/signalwire/cloud-product/issues/8090

Type of change

  • Internal refactoring
  • Bug fix (bugfix - non-breaking)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Code snippets

iAmmar7 and others added 9 commits September 18, 2023 18:24
* Task namespace with new interface

* taskworker include

* extend task from applyeventlisteners

* base namespace class to handle the listen method

* topic attach to event name

* type update

* remove older Task api

* stack test update for Task

* changeset include

* refactor and e2e test case

* rename task emitter

* listen function public explicitly

* index worker file

* utility function to prefix the event

* correct type of taskworker
* Task namespace with new interface

* taskworker include

* extend task from applyeventlisteners

* base namespace class to handle the listen method

* topic attach to event name

* type update

* remove older Task api

* refactor and e2e test case

* utility function to prefix the event

* PubSub namespace with new interface

* new interface for the Chat API

* fix stack tests

* include e2e test for PubSub API

* e2e test case for Chat interface

* test disconnected client

* unit tests for Base classes

* Unit tests for the Task class

* fix TS for the Task class unit test

* unit tests for PubSub and Chat API classes

* include changeset

* Update packages/realtime-api/src/chat/workers/chatWorker.ts

Co-authored-by: Edoardo Gallo <[email protected]>

* Update packages/realtime-api/src/chat/workers/chatWorker.ts

Co-authored-by: Edoardo Gallo <[email protected]>

* Update packages/realtime-api/src/pubSub/workers/pubSubWorker.ts

Co-authored-by: Edoardo Gallo <[email protected]>

* fix typo

* type in changeset

---------

Co-authored-by: Edoardo Gallo <[email protected]>
* Task namespace with new interface

* taskworker include

* extend task from applyeventlisteners

* base namespace class to handle the listen method

* topic attach to event name

* type update

* remove older Task api

* refactor and e2e test case

* Voice API with new interface

* handle call.playback listeners with all the methods

* run workers through methods

* playback events with e2e test cases

* remove old call playback class

* fix test file names

* improve playback tests

* rename voice playback tests

* voice call record events with e2e test cases

* fix playback and record types

* implement call.prompt with playback

* test utility add

* e2e test cases for call prompt

* call collect with e2e test cases

* Call tap with e2e test cases

* Call Detect API with e2e test cases

* remove old voice detect test

* voice call connect api

* update voice pass test with new interface

* improve base and listener class for instances

* include unit test cases for call apis

* voice stack test update

* call connect implement with e2e test case

* enable ws logs for task test

* update voice playground with the new interface

* minimize race condition in playback and recording e2e test cases

* minimize race condition for collect and detect e2e

* improve call state events logic

* fix voice unit test

* enable ws logs for voice test

* fix call connect bug

* remove unused voice calling worker

* enable ws logs for voice call collect

* improve collect and detect e2e test cases

* include changeset

* Update packages/realtime-api/src/BaseNamespace.ts

Co-authored-by: Edoardo Gallo <[email protected]>

* Update packages/realtime-api/src/ListenSubscriber.ts

Co-authored-by: Edoardo Gallo <[email protected]>

* Update packages/realtime-api/src/task/Task.ts

Co-authored-by: Edoardo Gallo <[email protected]>

* add addToListenerMap method for consistency

* Revert "Update packages/realtime-api/src/ListenSubscriber.ts"

This reverts commit 69df536.

* update payload set and extends base calls with EventEmitter

* protect event emitter methods

* improve call collect test

* improve voice record e2e test

---------

Co-authored-by: Edoardo Gallo <[email protected]>
* Task namespace with new interface

* taskworker include

* extend task from applyeventlisteners

* base namespace class to handle the listen method

* topic attach to event name

* type update

* remove older Task api

* refactor and e2e test case

* Voice API with new interface

* handle call.playback listeners with all the methods

* run workers through methods

* playback events with e2e test cases

* remove old call playback class

* fix test file names

* improve playback tests

* rename voice playback tests

* voice call record events with e2e test cases

* fix playback and record types

* implement call.prompt with playback

* e2e test cases for call prompt

* Call tap with e2e test cases

* Call Detect API with e2e test cases

* improve base and listener class for instances

* call connect implement with e2e test case

* improve call state events logic

* update payload set and extends base calls with EventEmitter

* protect event emitter methods

* Messaging namespace with new interface

* message worker to handle the events

* handle events through messaging api

* fix typescript types

* e2e test case for messagin api

* fix stack test

* unit test for messaging api

* include changeset

* promisify client disconnect

* fix unit test cases

* fix disconnect emitter

* fix unit test

* rebased with the dev

* fix base name space class

* connect payload fallback

* Update internal/playground-realtime-api/src/voice/index.ts

Co-authored-by: Edoardo Gallo <[email protected]>

---------

Co-authored-by: Edoardo Gallo <[email protected]>
* Decorated promise for Voice Call APIs

* decorate recording promise

* unit tests for decorated playback and recording promises

* decorate prompt promise

* generic decorate promise function

* decorated promise for detect and tap

* decorated call collect api promise

* more unit test cases

* generic decorate promise function with unit tests

* e2e test cases update

* update voice playgrounds

* include changeset

* prevent methods to be run if the action has ended

* promisify action ended properties
* Realtime Video SDK with new interface

* room session with the new interface

* remove auto subscribe consumer

* fix unit tests for video and room session

* room member instance

* unit tests for room session member

* fix stack test

* room session playback realtime-api instance

* room session recording realtime-api instance

* room session stream realtime-api instance

* explicit methods for the realtime-api

* fix build issue

* separate workers for playback, recording and stream

* video playground with the new interface

* decorated promise for room session playback api

* decorated promise for room session recording api

* decorated promise for room session stream api

* fix unit test cases

* unit tests for decorated promises

* update video play ground with decorated promise

* fix e2e test case for the video

* fix unit test

* do not unsubscribe events

* fix unit test

* include changeset

* streaming getter for room session

* rename types
@changeset-bot
Copy link

changeset-bot bot commented Oct 11, 2023

🦋 Changeset detected

Latest commit: 9a8dd4d

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 5 packages
Name Type
@signalwire/core Patch
@signalwire/js Patch
@signalwire/realtime-api Patch
@signalwire/web-api Patch
@signalwire/webrtc Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@iAmmar7 iAmmar7 changed the title WIP: Start video/audio element saga via base room session Start video/audio element saga via base room session Oct 11, 2023
@iAmmar7 iAmmar7 requested a review from edolix October 12, 2023 10:30
@iAmmar7 iAmmar7 requested review from jpsantosbh and giavac and removed request for edolix October 24, 2023 11:08
@giavac
Copy link
Collaborator

giavac commented Nov 6, 2023

(I'm waiting on open conversations before approving)

@iAmmar7
Copy link
Collaborator Author

iAmmar7 commented Apr 17, 2024

We have changes in the dev branch related to the video local overlay that affects these files. Due to that, I will either gonna change the base branch here, or wait till we merge the dev code into the main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants