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

Fix/release m4 review #71

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

Conversation

stroncoso-quobis
Copy link
Collaborator

@stroncoso-quobis stroncoso-quobis commented Feb 24, 2025

What type of PR is this?

Add one of the following kinds:

  • correction
  • cleanup

What this PR does / why we need it:

Latests comments from M3 review and M4 review preparations

Which issue(s) this PR fixes:

Fixes #70

Special notes for reviewers:

Changelog input

release-note
- fix(readme): terminology and scope review. Removed virtual meeting url
- fix(*): Removed 5xx generic responses
- fix(*): OAS review: descriptions, terminology, missing elements, paths …
- fix(regsitration): PUT 200 no content replaced by 204 no content
- fix(*): Ensure error 400, 401, 403 responses are included
- fix(*): Replaced "racm", "vvoip" session sessionId suffix
- fix(*): replaced transactionId by x-correlator CAMARA transaction identifier

Additional documentation

docs
- doc(*): Inlcuded basic error testing (400, 401, 404)
- doc(*): Updated API-Readiness files

- registration: description review, extDocs URL, tags review, endpoint description and operation ids, removed RACM standalone term
- call-handling: extDocs URL, endpoint descriptions, tags review, operationId, example names review
- events: extDocs URL, tags review, endpoint description review, removed RACM standalone term
@stroncoso-quobis stroncoso-quobis self-assigned this Feb 24, 2025
@stroncoso-quobis
Copy link
Collaborator Author

Hi team,
Thanks to @pradeepachar-mavenir , for your review,

Inform about a couple of changes pending, that are already in progress:

And pending to analyze requirements for webrtc-events (subscription API) due M4 public release of commonalities.

As soon as they are ready, I will mark the PR as ready to merge.
Tomorrow, at working group meeting we will discuss changes to cover here.

Best regards,

@stroncoso-quobis stroncoso-quobis marked this pull request as ready for review February 25, 2025 16:10
@stroncoso-quobis
Copy link
Collaborator Author

stroncoso-quobis commented Feb 25, 2025

All points identified at #70 should be fixed. Some extra corrections included.

We replaced some terms like "racm" and "vvoip" to keep a clearer syntax. Also we included x-correlator header (CAMARA common header) instead of trasactionId (custom header).

Looking forward for reviews and comments

@hdamker
Copy link
Contributor

hdamker commented Feb 25, 2025

@stroncoso-quobis There are two options:

  1. This is also already the release PR for M4 with r1.2 (and with the versions 0.2.0 instead of 0.2.0-rc.1, respectively 0.1.0): for that you need to update the release and version numbers accordingly across the files and add the CHANGELOG.md update
  2. You plan to do the actual release PR separately and just want to get a review on the changes: but then you need to reset the version across the files to "wip" as there is already a released version 0.2.0-rc.1

Given the short time until Friday I recommend to go for option 1.

cc: @tanjadegroot

 - UTC timestamp description on AccessExpireUtc
- Sink uri update
- 409 response review
- SinckCredentials removed from responses
@stroncoso-quobis
Copy link
Collaborator Author

Hi team,

@hdamker , @tanjadegroot , @pradeepachar-mavenir

Proceeding with requested changes, yes, as suggested by Herbert, we are pointing to M4 release. So summarizing changes from latest comment:

  • Commit: d2fe740fbfbcd9ded062a36500bb6dce82a343e4
    • doc(*): Remove rc.X suffix from version, targeting M4 release
    • Updates to OAS yaml, API-Readiness md, and test_defintions (feature)
  • Commit: fdcb63451625fd204d43a6ceb3fd6b41e1d057d0
    • Updating webrtc-events to be aligned with commonalities 0.5.0 (rc2.2)
    • Follow comments and review points as WebRTC r1.2 (Spring25 M4) release review ReleaseManagement#175
    • Mainly targeting webrtc-events API (susbcription API):
      • UTC timestamp description on AccessExpireUtc
      • Sink uri update
      • 409 response review
      • SinckCredentials removed from responses
  • Commit: 11350398fc86562a86ff751cbf6b553aef712180
    • doc: README and CHANGELOG updates for r1.2
    • Review of CHANGELOG: Cover changes from r1.1 to r1.2 (present PR)

Last commit for trailing spaces 🤦

Hope everything is ok. Waiting for your reviews

Best regards,

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.

reviewed the first 4 files in the list.
next ones still to come.

comments inline (a lot are repetitions).

I assumed you want to this as the release PR as suggested by Herbert so also updated the version occurences

CHANGELOG.md Outdated

Changelog since r1.1

* Full Changelog with the list of PRs and contributors: https://github.com/camaraproject/DeviceLocation/compare/r1.1...r1.2

Choose a reason for hiding this comment

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

For a public release, the changelog should cover all changes since the last pubic release (since v0.1.1)

README.md Outdated
* Create subscriptions to receive telco call events using CloudEvents
* Make calls from the endpoint (client) side establishing a realiable and media WebSocket channel to exchange secure media.
* Create subscriptions to receive telco call events using CloudEvents: Ability to follow call estalishment process and to receive new incoming calls.
* Make and receive calls from the endpoint (client) side establishing a realiable media WebSocket channel to exchange secure media.
* Describe, develop, document and test the APIs (with 1-2 Telcos)
* Started: September 2023
* Location: virtually

Choose a reason for hiding this comment

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

Remove this line.

@@ -200,13 +199,13 @@ paths:
- `org.camaraproject.webrtc-events.v0.session-status`: updates on specific call

To subscribe and receive notifications about new calls, a
`session-invitation` subscription is required using the `racmSessionId`
`session-invitation` subscription is required using the `regSessionId`
obtained from webrtc-registration API.

Once you create a new voice-video session or receive an
new call event, you can subscribe to `session-status` to receive
updates about the voice-video session in progress using the

Choose a reason for hiding this comment

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

Suggested change
updates about the voice-video session in progress using the
updates about the media session in progress using the

type: string
example: xsmcaum3z4zw4l0cu4w115m0
description: |-
The RACM session ID created by WebRTC Gateway.
Obtained via RACM API.
The resgitration session ID created by WebRTC Gateway.

Choose a reason for hiding this comment

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

Suggested change
The resgitration session ID created by WebRTC Gateway.
The registration session ID created by the network.

type: string
description: The VVOIP session ID created by WebRTC Gateway. The vvoipSessionId shall not be included in POST requests by the client, but must be included in the notifications from the WebRTC GW to client.
description: The VVOIP session ID created by WebRTC Gateway. The mediaSessionId shall not be included in POST requests by the client, but must be included in the notifications from the WebRTC GW to client.

Choose a reason for hiding this comment

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

VVoIP --> media


Identified by for `vvoipSessionId`, and validated via a `racmSessionId`
Identified by for `mediaSessionId`, and validated via a `regSessionId`
the endpoint is able to interact with its own voice-video session.

Choose a reason for hiding this comment

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

voice-video --> media

@@ -1393,7 +1412,7 @@ components:
A new WebRTC session is requested (i.e. incoming call). This event

Choose a reason for hiding this comment

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

WebRTC --> media
comment applicable to the whole file

Co-authored-by: Tanja de Groot <87864067+tanjadegroot@users.noreply.github.com>
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 all,
a number of comments and questions especially on the different IDs used in the spec
Needs some update in the files.

Choose a reason for hiding this comment

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

According to the guidelines, the filename should have the extension "-subscriptions" ,so the name should be "webrtc-event-subscriptions.yaml"

Choose a reason for hiding this comment

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

This file seems to be specifically designed for asynchronous event handling. However, it does not seem to be used as no test definition nor Readiness checklist are provided.

I think this file can be deleted (as the webrtc-events YAML already covers the asynchronous cases as well).

If not the case, then let me know as I skipped it for the review right now.

Choose a reason for hiding this comment

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

line 11: "... video sessions, you device (or endpoint) need to have a valid registration on"

  • Add after "sessions"", a.k.a media sessions".
  • your --> your
  • endpoint --> notification endpoint
  • need --> needs

line 12: "the network. This API provide that feature, and allow users to create audio and
video sessions using the telco network."

  • provide --> provides
  • allow --> allows"
  • remove "telco" - also from other occurences of "telco network" in the rest of the file

- suggestions about redaction and spelling
- remove rc.1 sufixes
- replace references to r1.1 with r1.2

Co-authored-by: Tanja de Groot <87864067+tanjadegroot@users.noreply.github.com>
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.

Many thanks for the additional updates.

Can you please still clarify on the access token part (see #71 (comment))

Also there seem to be some errors (trailing spaces) to be fixed in webrtc-registration.yaml


* a `registrationId` to manage a registration later
* a `clientId` (in the `connectivityInformation`) that must be subsequently used in all webrtc service API calls to the network for that end user.
session before enabling or activating any service. In order to create audio and

Choose a reason for hiding this comment

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

there seems to be a partial sentence here ?


* a `registrationId` to manage a registration later
* a `clientId` (in the `connectivityInformation`) that must be subsequently used in all webrtc service API calls to the network for that end user.
session before enabling or activating any service. In order to create audio and
video sessions, you device (or endpoint) need to have a valid registration on

Choose a reason for hiding this comment

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

Suggested change
video sessions, you device (or endpoint) need to have a valid registration on
video sessions, your device (or endpoint) needs to have a valid registration on


* a `registrationId` to manage a registration later
* a `clientId` (in the `connectivityInformation`) that must be subsequently used in all webrtc service API calls to the network for that end user.
session before enabling or activating any service. In order to create audio and
video sessions, you device (or endpoint) need to have a valid registration on
the network. This API provide that feature, and allow users to create audio and

Choose a reason for hiding this comment

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

Suggested change
the network. This API provide that feature, and allow users to create audio and
the network. This API provides that feature, and allows users to create audio and


* a `registrationId` to manage a registration later
* a `clientId` (in the `connectivityInformation`) that must be subsequently used in all webrtc service API calls to the network for that end user.
session before enabling or activating any service. In order to create audio and
video sessions, you device (or endpoint) need to have a valid registration on
the network. This API provide that feature, and allow users to create audio and
video sessions using the telco network.

Choose a reason for hiding this comment

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

Suggested change
video sessions using the telco network.
video sessions using the network.

@@ -115,7 +119,7 @@ paths:
- Registration
summary: Create a registration
description: |-
Endpoint used to create a new registration on the network. This action
API used to create a new registration of a device with the network identified by a registrationId (in UUID format).
creates a valid communications session on the network system identified

Choose a reason for hiding this comment

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

Suggested change
creates a valid communications session on the network system identified
creates a valid communications session on the network, identified

@@ -152,7 +156,7 @@ paths:
- Registration
summary: Refresh access token and network registration.
description: |
API Endpoint used to refresh the resgitration on the network. Sharing a
API Endpoint used to refresh the registration on the network. Sharing a
new AccessToken with network if it corresponds. The AccessToken

Choose a reason for hiding this comment

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

Suggested change
new AccessToken with network if it corresponds. The AccessToken
new AccessToken with the network if it corresponds. The AccessToken

@@ -115,7 +119,7 @@ paths:
- Registration
summary: Create a registration
description: |-
Endpoint used to create a new registration on the network. This action
API used to create a new registration of a device with the network identified by a registrationId (in UUID format).
creates a valid communications session on the network system identified
by a `regSessionId'. This unique ID is used for each action where the
endpoint has been involved in connecting to the network.

Choose a reason for hiding this comment

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

This is a bit hard to read: "This unique ID is used for each action where the endpoint has been involved in connecting to the network."
suggest to update to
"This unique registration ID is used in each API call handling sessions on the network for the device."

@stroncoso-quobis
Copy link
Collaborator Author

stroncoso-quobis commented Mar 11, 2025

OK, let's try to summarize all changes for this M4 review at 0369fde

  • Removed rc.x
  • Replaced "vvoip" references for "media"
  • Replaced "webrtc gw" references for "network"
  • Removed references to NotificationChannel
  • Improved terms and definitions
  • Improved deviceId descriptions
  • Removed access token reference on PUT registration
  • CHANGELOG reviewed
  • Trailing spaces and spelling errors

Find a readable documentation at:

Changes pending for today's discussion at working group meeting:

  • notifications: Respond to file deletion request
  • registration: Use Device object into request and include testing
  • all: remove clientId decission

Regards,

- Removed rc.x
- Replaced "vvoip" references for "media"
- Replaced "webrtc gw" references for "network"
- Removed references to NotificationChannel
- Improved terms and definitions
- Improved deviceId descriptions
- Removed access token reference on PUT registration
- CHANGELOG reviewed
- Trailing spaces and spelling errors
- Renamed webrtc-events.yaml to webrtc-events-subscription.yaml
- Replaced "msisdn" by "phoneNumber" at registration response
- Review of {{field}} 403 responses (auth context)
- Replace of hdrClientId by hdrRegistrationId creating media sessions
- Updated changes at testing files
- Remove trailing spaces
@stroncoso-quobis
Copy link
Collaborator Author

Hi all,

Based on today's working group meeting notes, we pushed commits 83b95ae and 3458ff3

Check here the working group meeting notes: https://lf-camaraproject.atlassian.net/wiki/x/p4BYBQ

On these commits we fullfil all pending requirements pointed on the release review:

  • Removed notification-channel.yaml file
  • Improved some definitions and responses
  • Reviewed 403 token context responses
  • Clarify and uniform API ids:
    • deviceId 📱 -> generated by API consumer, used to create registrations
    • registrationId 🧾 -> generated by Network, used to create mediaSessions
    • mediaSessionId 🗣️ -> generated by Network, used to refer to the "calls"
    • subscriptionId 📫 -> generated by Network, used to refer to the notification queue
  • Updated changes to feature testing

All is ready for review. @pradeepachar-mavenir , please confirm changes
@tanjadegroot , ready for release management review

Best regards 👋

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.

Looks good !

For your consideration: Please check some english and terminology consistency proposals below and 2 questions (also terminology related) and a clarification on the hdrRegistrationId

I approve these changes. Many thanks for the hard work !
/LGTM from Release Management


## Scope
* Service APIs for “WebRTC” (see APIBacklog.md)
* It provides the customer with the ability to:
* It provides the API consumer with the ability to:
* Add real-time communication capabilities to their applications like video, voice, and generic data.
* Enable a web endpoint to register for telco services (IMS) through a WebRTC Gateway using Oauth 2.0 and the Operator provided Identity Provider (IDP)

Choose a reason for hiding this comment

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

Suggested change
* Enable a web endpoint to register for telco services (IMS) through a WebRTC Gateway using Oauth 2.0 and the Operator provided Identity Provider (IDP)
* Enable an API consumer to register for communication services through a network using Oauth 2.0 and OIDC.

* Add real-time communication capabilities to their applications like video, voice, and generic data.
* Enable a web endpoint to register for telco services (IMS) through a WebRTC Gateway using Oauth 2.0 and the Operator provided Identity Provider (IDP)
* Create subscriptions to receive telco call events using CloudEvents
* Make calls from the endpoint (client) side establishing a realiable and media WebSocket channel to exchange secure media.
* Create subscriptions to receive telco call events using CloudEvents: Ability to follow call estalishment process and to receive new incoming calls.

Choose a reason for hiding this comment

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

Suggested change
* Create subscriptions to receive telco call events using CloudEvents: Ability to follow call estalishment process and to receive new incoming calls.
* Create subscriptions to receive call notifications using CloudEvents: Ability to follow the call establishment process and to receive new incoming calls.

* Create subscriptions to receive telco call events using CloudEvents
* Make calls from the endpoint (client) side establishing a realiable and media WebSocket channel to exchange secure media.
* Create subscriptions to receive telco call events using CloudEvents: Ability to follow call estalishment process and to receive new incoming calls.
* Make and receive calls from the endpoint (client) side establishing a realiable media WebSocket channel to exchange secure media.

Choose a reason for hiding this comment

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

Suggested change
* Make and receive calls from the endpoint (client) side establishing a realiable media WebSocket channel to exchange secure media.
* Make and receive calls from the API consumer (client) side establishing a realiable media session to securely exchange media.

@@ -9,16 +9,16 @@ info:

To handle audio/video sessions, what we usually known as *calls*, the network
requires to identify both involved parties: caller, the origin, and the callee,
the destination. Once identified the endpoints required to be connected, then
the destination. Once identified the involved communication endpoints, then

Choose a reason for hiding this comment

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

Suggested change
the destination. Once identified the involved communication endpoints, then
the destination. Once the involved communication endpoints are identified,

Choose a reason for hiding this comment

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

in this section, would "communication endpoints" or "endpoints" be "devices" ?

@@ -9,16 +9,16 @@ info:

To handle audio/video sessions, what we usually known as *calls*, the network
requires to identify both involved parties: caller, the origin, and the callee,
the destination. Once identified the endpoints required to be connected, then
the destination. Once identified the involved communication endpoints, then
it is required to define *how* to send media from one endpoint to the other.

Choose a reason for hiding this comment

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

Suggested change
it is required to define *how* to send media from one endpoint to the other.
it is required to define *how* to send media from one endpoint to the other.
Suggested change
it is required to define *how* to send media from one endpoint to the other.
the endpoints need to negotiate *how* to send media from one endpoint to the other.

- $ref: '#/components/parameters/hdrTransactionId'
- $ref: '#/components/parameters/hdrClientId'
- $ref: "#/components/parameters/x-correlator"
- $ref: '#/components/parameters/hdrRegistrationId'

Choose a reason for hiding this comment

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

Do you still need this header parameter and its definition (line 392) ?

Typical example of session is a "single one-to-one call".
- **mediaSessionId**: Unique identifier of a Voice or Video **session** using
webrtc-call-handling API. Retrieved using the `webrtc-call-handling` API
- **x-correlator**: Unique ID associated to the REST _transaction_ created by the

Choose a reason for hiding this comment

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

see proposed update of the definition in the webrtc-call-handling yaml

servers:
- url: '{apiRoot}/webrtc-registration/v0.2rc1'
- url: '{apiRoot}/webrtc-registration/v0.2'
description: APIs to manage Client Registration and Connection

Choose a reason for hiding this comment

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

Suggested change
description: APIs to manage Client Registration and Connection
description: APIs to manage device registration and connection

- name: Registration and Connection Management
description: APIs for Client to Register into MNO's IMS Network
- name: Registration
description: Operations to manage client registration into the network

Choose a reason for hiding this comment

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

Suggested change
description: Operations to manage client registration into the network
description: Operations to manage device registration with the network

summary: Create a registration
description: |-
API endpoint used to create a new registration of a device in the network.
It uses as main body data the `deviceId` to store its reference.

Choose a reason for hiding this comment

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

Suggested change
It uses as main body data the `deviceId` to store its reference.
It uses the `deviceId` in the request body.

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.

Post M3 Release Management review issue (to be used for M4)
4 participants