-
Notifications
You must be signed in to change notification settings - Fork 4
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
Consumption Reporting - Generating the reportingClientId #57
Comments
Just to add that in cases where you can't get hold of the GPSI, a UUID is a perfectly fine substitute provided it persists between different media streaming sessions and restarts of the Media Session Handler. To balance this out, it would be highly desirable to offer the end user the ability to manually reset the UUID-based reporting client identifier at will as an anti-tracking feature. You could display the current reporting client identifier in some UI element of the Media Session Handler service and (if it is a UUID) offer a "Reset" button that picks and displays the replacement value. |
@dsilhavy I've implemented it as : when GPSI availabe, use GPSI; else, use UUID. But I have a question: If a phone with two SIM card registered to two mobile operaters, I think it will get two GPSI. If so, which one should we select? My understanding is any one of them is OK, we can select the first simply. |
Thanks @shilinding , have you verified that the the GPSI you are deriving has the following format:
I just did a quick check and this is what I found The What might help is this method: https://developer.android.com/reference/android/telephony/SubscriptionManager#getPhoneNumber(int) |
Thanks Daniel. |
I verified the latest version in a test project on real phone, it seems works now as below:
It seems the format is correct:
|
@dsilhavy If there are more than one SIM cards, we'll get several MSISDNs, can we simply choose the first one? |
Thanks @shilinding that looks good. I would choose the first MSISDN unless you can tell which SIM is used for the traffic? |
I think there should be API to get which SIM is using, I'll figure it out and choose base on it. But as far as I know, it seems that some mobile phones (such as Xiaomi) now support the case of two cards joint Internet access, this case we still can only choose one MSISDN such as the first. |
Makes sense, let's discuss this question tomorrow in the call. I would choose the first then if multiple SIMs are active at the same time. |
Updated the code to select GPSI by which SIM is used for the traffic(+8613352938834 selcted before).
|
…r the traffic.-issue 5G-MAG#57: GPSI
Well done. This sounds exactly what's needed. |
This is an interesting edge case. And it's something that might become more prevalent with more widespread adoption of multipath TCP (for HTTP/1.1) and multipath QUIC (for HTTP/3). The 5GMS consumption reporting feature doesn't take into account the possibility that the same ConsumptionReportingUnit might have used PDU Sessions on different PLMNs at reference point M4. What value should the reportingClientId have in such cases? At first sight, there are potentially multiple GPSI values to be reported. However, when you stop to think about it, I'm not sure it's actually a problem. A media streaming session is always initiated by the Media Session Handler interacting with a 5GMS AF in the 5GMS System of one of the PLMNs available to the UE. The Media Entry Point URL selected from the streamingAccess in the Service Access Information will point at a 5GMS AS in the same 5GMS System. And the consumption reporting endpoint in the Service Access Information points to a 5GMS AF on the same 5GMS System. So, even if there are multiple PDU Sessions available simultaneously to the UE on different PLMNs, and even if both PLMNs have a 5GMS System deployed, once the UE has picked a 5GMS AF in one PLMN from which to acquire its Service Access Information (e.g. based on Round Robin DNS resolution of the well-known 5GMS AF host name in Rel-18 onwards), I think that the media streaming session is then tied to that one 5GMS System. The IP routing table in the UE's URSP Rules will ensure that packets are routed down the correct PDU Session to the correct target 5GMS AS and 5GMS AF. And the lack of an IP address for those servers in the subnet of the "wrong" PDU Session will prevent any packets being routed down that path. Hence, the "wrong" PDU Session isn't a candidate route for multipath transport protocols. If you are in any doubt, my recommendation would be to populate reportingClientId with the UUID in cases where you can't establish definitively which of multiple GPSI values was used to access the content. But, for the reasons explained above, I don't think you will encounter any ambiguity in practice. (If we find corner cases, we can discuss further, perhaps with SA4 colleagues.) Tagging @tlohmar, @haudiobe and @ibouazizi for information.) |
) * test * Media Stream Handler get fake consumption data and pass to MSH * move timer triggered reporting and PlayerStates triggered reporting to MSH * mediaPlayerEntry,reportingClientId,startTime,duration in report use the real data * Support get real IP addr for Consumption Reporting * Media Stream Handler report consumption data triggered by onDownstreamFormatChanged() instead of by timer * Consumption Reporting - Generating the reportingClientId-issue #57: GPSI * Consumption Reporting - Generating the reportingClientId-issue #57: GPSI * Consumption Reporting - Generating the reportingClientId-issue #57: GPSI * In case of multi SIM cards, get the the index of SIM which is used for the traffic.-issue #57: GPSI * clean up the code for getting GPSI for Consumption Reporting(#57)
Description
TS 26.512 defines the
reportingClientId
as a property of theConsumptionReport
format:We are currently manually generating a
reportingClientId
:We should switch to a Generic Public Subscription Identifier (GPSI) value if available. For that reason, we need to check how we can derive this value using the Android API.
The text was updated successfully, but these errors were encountered: