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

Call handling API - Inline documentation expanded #68

Merged

Conversation

stroncoso-quobis
Copy link
Collaborator

What type of PR is this?

Add one of the following kinds:

  • documentation

What this PR does / why we need it:

  • Commonalities: API documentation must be included inline. Auth clarification required
  • Terms and definitions, like clientId and deviceId must be clarified
  • Terms and definitions directly tied to SDP and WebRTC need to be properly explained
  • No clear introductory information for newcomers

Which issue(s) this PR fixes:

Part of #60 , #63 and #50

Special notes for reviewers:

Information included was aligned with PR#62 (release review) comments and working team discussions.
It was removed channelId as agreed at PR#65

Changelog input

release-notes:
- doc(registration): Expanded API inline doc and include SDP support doc

Additional documentation

  • Added supporting documentation with basic instructions about how to gather local SDP to help newcomer to WebRTC technology.
docs
- documentation/SupportingDocuments/webrtc-call-handling-sdp-gathering.md

@stroncoso-quobis stroncoso-quobis merged commit 85d4a55 into camaraproject:main Feb 13, 2025
2 checks passed
Copy link

@tanjadegroot tanjadegroot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi there - great updates on the documentation - I now understand enough to write an app with it.

I have suggested some wording changes for consistency, using "call" in gerneral, but "session" when actualyl referring to the API operations.

Also some questions on the mandatory parameters ,one of which seems to be overlapping with the CAMARA x-correlator.

if these parameters are imposed by the WebRTC standard, alternatively, an implementation of this CAMARA WebRTC APi could take care of putting them, rather than burdening the app developer.

with that, approve this PR so you can progress on the release - thanks a lot for all your effort :-)

API to create 1-1 voice and video sessions. These, identified by a unique `vvoipSessionId`
can be recovered, updated and terminated via this API and its methods.
This API provides REST API for clients to manage live audio and video sessions
towards the operator's network (IMS network).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would simplify and change
"towards the operator's network (IMS network)."
to
"over the network they are attached to."


The first point, *identify the endpoints* is solved in CAMARA via direct API
parameters on the API request. The later, *negotiate how to connect* is solved
sharing SDP information between peers.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggest to replace by
"sharing descriptive information about the session between the clients using a well-know protocol:. SDP (Session Description Protocol)

This API provides REST API for clients to manage live audio and video sessions
towards the operator's network (IMS network).

To handle audio/video sessions, what we usually known as *calls*, the network

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To handle audio/video sessions, what we usually known as *calls*, the network
To handle audio/video sessions, what we usually know as *calls*, the network

it is required to define *how* to send media from one endpoint to the other.

The first point, *identify the endpoints* is solved in CAMARA via direct API
parameters on the API request. The later, *negotiate how to connect* is solved

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
parameters on the API request. The later, *negotiate how to connect* is solved
parameters on the API request. The latter, *negotiate how to connect* is solved

- Functional:
- Ability to create audio and video sessions on the network, this grants
ability to reach any phone number on the public network using your telco
provider rights.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

provider -> subscription ?


When you have a voice/video session in progress, you can decide to finish the
call, to do so, simply execute a DELETE command over the endpoint using the
`vvoipSessionId` obtained on call creation.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`vvoipSessionId` obtained on call creation.
`vvoipSessionId` obtained on session creation.

three-legged access tokens is mandatory. This ensures that the API remains
in compliance with privacy regulations, upholding the principles of
transparency and user-centric privacy-by-design.

contact:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please remove contact field


CAMARA `webrtc-call-handling` API requires basic usage of the WebRTC API to create
calls. To put it simply, you need to obtain and create an `SDP`(Session Description
Protocol) body to use in the call creation.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Protocol) body to use in the call creation.
Protocol) body to use in the session creation.

That technology becomes responsible of most our common real-time communications on
the web nowadays, from broadcasting to video conference solutions.

The `RTCPeerConnection` interface, provides an `SDP`that is required by our CAMARA

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The `RTCPeerConnection` interface, provides an `SDP`that is required by our CAMARA
The `RTCPeerConnection` interface, provides an `SDP` that is required by our CAMARA

```

Since there is a delay between the request and the creation of the peer connection
we can start the call creation using POST, and update the session using PUT and

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
we can start the call creation using POST, and update the session using PUT and
we can start the session creation using POST, and update the session using PUT and

@tanjadegroot
Copy link

I guess it merged automatically, please do che my comments and in particular remove the "contact" field form the spec.

@stroncoso-quobis
Copy link
Collaborator Author

stroncoso-quobis commented Feb 13, 2025

I guess it merged automatically, please do che my comments and in particular remove the "contact" field form the spec.

Hi @tanjadegroot, sorry, yes we merged it automatically since we are really worried by the deadlines.

I will take your suggestion to remove contact on #62 (release candidate PR) and cover the other documentation suggestions on a separate PR. Check commit cbb1e68

Thanks a lot for the feedback!

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.

3 participants