-
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
3GPP Service Handler and HTTP URLs #37
Comments
PoCAs a starting point / proof of concept, the following flow has been implemented:
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http"/>
<data android:scheme="https"/>
<data android:host="ms.launch.3gppservices.org"/>
</intent-filter>
Short demo video: start-session-handler.movNext stepsAs a next step, we can focus on the workflow defined in 5.13.6.2 and 5.13.6.2.3. I suggest adding a new view to the 5GMSd Aware application with a list of service URLs using the format defined in Table 5.13.6.2.2-1. Once a service URL is selected, the Media Session Handler is started and the streaming session begins. Similar to what we are doing today when the user selects an entry from the list of service URLs that are provided via M8. Alternatively we "convert" the entries from our |
This is very nice Daniel. I agree that it would be excellent if the streaming service is started immediately. Also we need to basically extend further that the service/provisioning id is added in order to connect the Media Session Handler to the AF in a session. I also see that there is the need to accept the handling of the URL by the Media Session Handler. Finally, if the Media Session Handler is not launched, the message will go to the AF, and the AF may provide a redirect directly to the service. |
If there is no registered intent for the 3GPP Service URL https://ms.launch.3gppservices.org/, it needn't be the 5GMS AF that handles the fallback case: it could be any endpoint in the 5G System registered with that special domain name. |
Yes, true. But the idea is that this function of URL handling in the network is at least "logically" assigned to the Media AF. |
I have to give this another thought with a fresh mind but currently I assume it is more complicated than I orginally thought. In the following I outline the current workflow and the problem I see when launching the Media Session Handler via a deeplink: Current Workflow
data class ClientSessionModel(
var messenger: Messenger?,
var serviceAccessInformation: ServiceAccessInformation? = null,
var serviceAccessInformationApi: ServiceAccessInformationApi? = null,
var serviceAccessInformationResponseHeaders: Headers? = null,
var serviceAccessInformationRequestTimer: Timer? = null
)
data class ServiceListEntry(
val provisioningSessionId : String,
val name: String,
val entryPoints: ArrayList<EntryPoint>?
) : Parcelable
Potential problems
Potential solutions
|
Based on our discussion in the call I checked whether it is possible to provide information back from the Media Session Handler to the entity that triggered the intent. From what I found, there is no direct way to send a message back to the specific application (e.g. a Chrome tab that launched the intent) from our Android application. However, there is a workaround as we can launch another intent from our Media Session Handler which then gets picked up by the corresponding application. As an example, based on the previous comment.
private fun handleActionViewIntent(intent: Intent) {
val data = intent.data
if (data != null) {
val message = data.getQueryParameter("message")
if (message != null) {
// Create an intent to send the message back to the Chrome browser
val returnIntent = Intent(Intent.ACTION_VIEW)
returnIntent.data = Uri.parse("https://dash.fokus.fraunhofer.de/tests/dsi/5gmag/http-handler/?message=Hello this is the Media Session Handler")
// Start the intent to send the message back
startActivity(returnIntent)
}
}
} In this case we call the original URL that started the intent and pass a message via query parameters: message=Hello this is the Media Session Handler This is more a workaround though, as we don't have information about the app that launched the Media Session Handler originally. We only know the What we can do in addition is specify the orginal URL ("https://dash.fokus.fraunhofer.de/tests/dsi/5gmag/http-handler/") as another query parameter, e.g: A short demo video: intent-chrome.mp4 |
I also checked Co Pilot To achieve this, you can use deep linking to open your Android app from a web page. Deep linking allows you to seamlessly transition users from a website to specific in-app content. Here are the steps to create Android App Links: Create Intent Filters in Your Manifest: Example of an intent filter for deep linking using the URI “https://www.example.com/gizmos”:
AI-generated code. Review and use carefully. More info on FAQ. Configure Your Mobile Website: |
This seems to correspond to what I did in #37 (comment). Basically, the intent filter URL contains a callback URL and possible a custom string that tells the application to trigger another intent with some payload. However, I don't think there is a way to directly respond to the caller that triggered the first intent. |
Feature description
3GPP TR 26.804 Section 5.13 deals with announcing media services in a portal application or service list and launching the URL of a media service entry point. The Android operating system allows a URL to be used by one application to launch a specific other application on the same UE by means of Android App Links. Consequently, we can start the Media Session Handler when selecting a media service entry point in the 5GMSd Aware Application.
This issue deals with a proof of concept implementation of the solution defined in Section 5.13.5 and 5.13.6.2.
The text was updated successfully, but these errors were encountered: