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

Notification compliance #53

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

Conversation

stroncoso-quobis
Copy link
Collaborator

Important

This is a draft PR, to track updates on this key feature. Wait until ready for approvals.

What type of PR is this?

Add one of the following kinds:

  • enhancement/feature

What this PR does / why we need it:

This PR is needed to have an event notification system compliant with the CAMARA framework and also to grant async event communications that are inherent for the WebRTC call use cases.

Which issue(s) this PR fixes:

Fixes #15

Special notes for reviewers:

n/a

Changelog input

 release-note
- Fix notification system granting explicit subscription for sessions and registrations.
- Updated UML documentation
- Included callback for Registration and Session handling

Additional documentation

UML must be updated within this PR.
A dedicated websocket use case must be explained on Conlfuence or at supporting documentation

@stroncoso-quobis
Copy link
Collaborator Author

Hi team,

Good news, PR is ready for a first review.

Main elements to consider:

  • API works based on two kind of susbcriptions: registration and session. One is designed to keep the device reachable, and the other to track a session in progress.
  • regsitration
    • Event when the network requires to refresh register
    • Event when a new session is requested (incoming call)
  • session
    • Event to update and define participants on the call
    • Event to update session status (ringing, progressing, accepting, cancel, cleared, …)
    • Event to update SDP information (new candidates, network updates, track bw update, ...)

Use a Swagger rendered view appending https://editor.swagger.io/?url= to the RAW commint file.

The file is big, I know, so I will track your attention to:

  • Initial description, check texts and provide comments about general approach
  • SubscriptionRequest schema: It is the payload for a new subscription
    • registration event subscription requires a the subscriber information, while session event subscription requires both, the user information and the sessionId to subscribe to.
    • Have in mind that, per CloudEvents+CAMARA specs, our WebRTC details are included into SubscriptionDetail that is included into config.
  • CloudEvent schema: It is the payload of the event received for any case
    • Our WebRTC relevant information is placed into the data property that could be one of the two possible events: EventRegistration and EventSession.
    • The SubscriptionEnds event is a CAMARA requirement
  • EventRegistration schema: Brand new object
    • To inform about re-registration or a new incomming session.
    • Tries to map to the BYON-RACM session info, but including an optional new session structure (call incoming)
    • Included a hook for future branded calls with a subject field
  • EventSession: Event about session updates
    • It is mapped to the vvoipSessionInformation schema of the BYON-CallHandling API
    • Tries to unify a couple of duplicated schemas like the SubscriberUser info or the SDP descriptor

Please, @deepakjaiswal1 , share with your team and provide some feedback, while I clean the linter errors and try to create some documentation for this update (workflows are not valida anymore) and document some bugs detected on other files.

Best regards,

@stroncoso-quobis
Copy link
Collaborator Author

Hi all,

An update about today's commit. I fixed all linter errors and also reviewed the examples for a better comprehension of the events. Reviewing the examples, I found that sessionId was missing on the new_session_event, so I included it as part of the EventRegistration / sessionRequest . Without it, it is not possible to grant a valid suscription for session events.

Waiting for comments and reviews

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.

Notify Event must be define on callback part in the same openapi spec
1 participant