Skip to content

Brand Registration API Proposal#40

Merged
alpaycetin74 merged 10 commits intomainfrom
alpaycetin74-patch-1
Jun 26, 2025
Merged

Brand Registration API Proposal#40
alpaycetin74 merged 10 commits intomainfrom
alpaycetin74-patch-1

Conversation

@alpaycetin74
Copy link
Contributor

An API proposal for the registration phase of the Verified Caller API

What type of PR is this?

  • enhancement/feature

What this PR does / why we need it:

  • to start API spec discussions for the registration phase

Which issue(s) this PR fixes:

Fixes #24

Special notes for reviewers:

Changelog input

release-note

Additional documentation

An API proposal for the registration phase of the Verified Caller API
@github-actions
Copy link

github-actions bot commented May 16, 2025

🦙 MegaLinter status: ✅ SUCCESS

Descriptor Linter Files Fixed Errors Elapsed time
✅ ACTION actionlint 2 0 0.03s
✅ OPENAPI spectral 1 0 1.82s
✅ REPOSITORY git_diff yes no 0.01s
✅ REPOSITORY secretlint yes no 0.67s
✅ YAML yamllint 1 0 0.44s

See detailed report in MegaLinter reports

MegaLinter is graciously provided by OX Security

Fixing linter problems
@GillesInnov35
Copy link
Contributor

GillesInnov35 commented May 16, 2025

thanks @alpaycetin74 ,very interesting with full operations to manage registration REST entity record.

But I've just one first comment. From what I've designed in CAMARA API projects, CAMARA and GSMA prefer verb instead of entity (registration in our case). I know that OAS3 recommend such syntax.
Perhap I'm wrong and some APIs already use entity management such as you propose.
Let me check CAMARA Commonalities 5.0.

@GillesInnov35
Copy link
Contributor

@alpaycetin74, according to commonalities examples, my comment was wrong. sorry.
Let's start the dicussion with your proposal.
Thanks

Copy link
Contributor

@GillesInnov35 GillesInnov35 left a comment

Choose a reason for hiding this comment

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

Could we replace campaign by campaignName.
Following REST rules, response to a POST /entity (creation) shoudl return the description of the full entity description yet created: in fact all parameters + registrationId.
WDYT

Fixing Linting errors
Fixing linting errors
@alpaycetin74
Copy link
Contributor Author

Could we replace campaign by campaignName. Following REST rules, response to a POST /entity (creation) shoudl return the description of the full entity description yet created: in fact all parameters + registrationId. WDYT
Yes, both ideas seem reasonable to me.
Maybe "campaignId" is better, similar to "clientId"

@GillesInnov35
Copy link
Contributor

@alpaycetin74, in my opinion campaign is not a resource in our case only a strong name/description unlike to a client resource which must exist in the information system. That's why I proposed a name and not a id.
Regarding your very interesting proposal for registration resource management, I'll discuss with my colleagues internally before next meeting on Thursday 22th.
Thanks
Gilles

@DENGYONG18
Copy link

Hello @GillesInnov35, I didn't receive a notice of the meeting, can you post me a link to the meeting?

@GillesInnov35
Copy link
Contributor

hello @DENGYONG18 , there's no notification. You can refer to the LFX Meeting agenda
https://zoom-lfx.platform.linuxfoundation.org/meetings/telcoapi?view=week

@DENGYONG18
Copy link

Thanks @GillesInnov35 !I'm sorry for missing the discussion at previous meeting, and I have read your minutes in Issue #24 and got a rough idea of what was discussed. I'll join you all in tomorrow meeting.

@GillesInnov35
Copy link
Contributor

@alpaycetin74, may I ask you some questions regarding your yaml proposal to clearly understand what you mean.
I see that partnerId has been added in the request header (except POST). 2-Legged access token provide an applicationId which will be associated with a partner o MNO side, won't it ?
A device has replaced the phoneNumber to cover mobile phone but also others device (ipv4, ipv6). Do you have some Use cases in which such devices could be involved for Branded Calling API ?
Thanks a lot
Gilles

@alpaycetin74
Copy link
Contributor Author

Hello @GillesInnov35 ,
In VF parlance, a partner, sometimes called an integrator, is an actor that sells the branded calling service to companies, e.g. banks. The API can be called directly by the end user (bank) or by the partner/integrator on behalf of the end user.
We decided it was superfluous to include the partner id in the API request. So I should have removed the partnerId from the other operations as well. I'll do that soon, and in the meantime can you ignore this parameter please.

The device parameter is typical in CAMARA to uniquely identify a device by one of the four parameters, or combinations of them
image
The purpose of the parameter is to provide a flexible means of identifying a device.
In most cases, CAMARA APIs simply use phoneNumber (MSISDN), but for instance in Quality on Demand API, the device's current IP address matters and it must be provided.
In our case, I think it is unlikely to benefit from the other identifier types. For now we just wanted to stick to using the "device" parameter as usual, but it could be dropped.
And we also added the "phoneNumberAlternate" parameter under "device" because in certain cases, e.g. if the device is behind a PBX, a pair of phone numbers may be needed to identify it uniquely. In SIP protocol, those correspond to From and PAI headers.

Hope this helps.

@alpaycetin74
Copy link
Contributor Author

We also checked with Eric Murray and he thinks we can simply use phoneNumber and phoneNumberAlternate parameters in the request body. No need to reuse the device parameter. That's simpler for us. I will update the spec as such. @GillesInnov35

@alpaycetin74
Copy link
Contributor Author

I have updated the spec with the discussed changes.

  • POST and PUT return the full registration record.
  • Removed the superfluous partnerId header
  • Replaced the device parameter with phoneNumber & phoneNumberAlternate pair.

I am also happy to rename the campaign parameter to campaignName, just wanted to ask beforehand if a single registration could be associated with multiple campaigns at the same time? In that case we could make it an array of strings.
Happy to receive any other comments. Thank you.

@GillesInnov35
Copy link
Contributor

hello, we have a request from our legal entity recommending that reseller/aggregator should never know b-number regarding GDPR. As the caller doesn't know which is the operator for b-number to directly call it, it would mean b-number should be hashed.
It seems to be much complex. Do you have such a recommendation ?

@DENGYONG18
Copy link

Hello @GillesInnov35 , “Reseller/aggregator should never know b-number regarding GDPR” refers to the brand registration process or the pre-authorization process?

@GillesInnov35
Copy link
Contributor

hello @DENGYONG18 , it concerns pre-announce

@alpaycetin74
Copy link
Contributor Author

hello, we have a request from our legal entity recommending that reseller/aggregator should never know b-number regarding GDPR. As the caller doesn't know which is the operator for b-number to directly call it, it would mean b-number should be hashed. It seems to be much complex. Do you have such a recommendation ?

This looks too complicated. It requires a key exchange between the API client and the service provider (not the integrator in between) so that API client can encrypt the B-number and service provider can decrypt it.
And the integrator cannot see this exchange because otherwise they could decrypt the B number.
I don't know how this could be done in practice.

@GillesInnov35
Copy link
Contributor

thanks @alpaycetin74 . This string recommendation from our legal entity won't have any impact on the API specifications /pre-announce. But it may push reseller to expose a Telco-finder API to allow API consumer to find b-number's operator.

DO_NOT_VERIFY  removed from VerifyCallerAction enum range, because verifyCallerAction is an optional parameter and its absence means the client does not want verification. There is no need to have 2 different ways to express the same request.
Copy link
Contributor

@GillesInnov35 GillesInnov35 left a comment

Choose a reason for hiding this comment

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

LGTM thanks

@olsi-korkuti
Copy link

hello, we have a request from our legal entity recommending that reseller/aggregator should never know b-number regarding GDPR. As the caller doesn't know which is the operator for b-number to directly call it, it would mean b-number should be hashed. It seems to be much complex. Do you have such a recommendation ?

This is a good point, but practically speaking, is not the MNOs that expose the B-number to the reseller. Usually the Company consumes an API to the reseller (where can provide the B-number) and then the reseller would use that information to find the telco owner. In theory if the Company does not want to share B-number data, they can consume the API to the Telco platform directly assuming they also have access to a Telco Finder API.
A safe approach could be to consume Telco Finder API either from another aggregator or the Telcos and Pre-Announce the call directly to the Telco Platform.

@DENGYONG18
Copy link

Hello @alpaycetin74 ,I think this YAML file is pretty good overall. But the file should be rename like "Verified Caller- Registration" at this phase, right? Additionally, I realized that the Introduction Part was incomplete, could you complete it at your convenience? :)

@alpaycetin74
Copy link
Contributor Author

Hello @alpaycetin74 ,I think this YAML file is pretty good overall. But the file should be rename like "Verified Caller- Registration" at this phase, right? Additionally, I realized that the Introduction Part was incomplete, could you complete it at your convenience? :)

Hello, I will complete the missing parts. Since we are in the release candidate phase, these are not urgent at the moment. Thank you.

@alpaycetin74
Copy link
Contributor Author

Hello @stroncoso-quobis , could you review this PR so that we can proceed to the release candidate preparation ? Thank you.

Rename clientId to customerId to avoid confusion with the client_id in authorization flows
Copy link
Contributor

@stroncoso-quobis stroncoso-quobis left a comment

Choose a reason for hiding this comment

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

LGTM!

Nice work, now approved, I will add this reference to the UML in progress at #34
Best regards,

@alpaycetin74 alpaycetin74 merged commit 645ed4b into main Jun 26, 2025
2 checks passed
@alpaycetin74 alpaycetin74 deleted the alpaycetin74-patch-1 branch June 26, 2025 04:46
stroncoso-quobis added a commit to stroncoso-quobis/VerifiedCaller that referenced this pull request Jun 27, 2025
- Aligned parameters due camaraproject#40 merge
- Reviewed aggregator role on preannounce
- Updated params due camaraproject#46 proposition
- General visual and response updated
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.

Start discussion on the Verified Caller API parameters

5 participants