Comments (9)
Have created a simple version of this solution (no housekeeping) using lua, but it requires the Openresty version of nginx to be installed (which has the ngx_http_lua module). I've tested the individual lua functions manually and they work just fine, but I need to check that this all works when used within nginx on real requests.
from rt-5gms-application-server.
This is not going to be easy as it will require dynamic programming of proxy URLs in the AS when it sees a redirect response to a upstream request.
My initial suggestion would be to build a table mapping a UUID to seen redirection URL prefixes (redirection URL minus the final path element). Then it could map requests for {m4d-prefix}/{redirect-uuid}/object to the new redirected URL.
I'm not sure how much of this is possible with lua inside nginx, but it will be a marked degree of extra complexity.
from rt-5gms-application-server.
@rjb1000 what are your thoughts on this issue?
from rt-5gms-application-server.
@rjb1000 what are your thoughts on this issue?
Could the AS follow the redirect itself and make it sticky?
from rt-5gms-application-server.
Not really because the client then uses the manifest URL as a base to request media segments and how do you then know if a media segment request is for that manifest or another one and therefore how to redirect it. I think the only way would be to rewrite the redirect Location in such a way that a request to that, or any relative resource locator, contains a unique identifier that allows tracing back to the original redirect.
from rt-5gms-application-server.
Nor sure if this helps but note that for DASH you can use Location
and BaseURL
elements in the manifest. Location
points to the location of the manifest while BaseURL
is used for segment requests.
from rt-5gms-application-server.
Nor sure if this helps but note that for DASH you can use
Location
andBaseURL
elements in the manifest.Location
points to the location of the manifest whileBaseURL
is used for segment requests.
Manifest manipulation is still available as a last resort. But I think @davidjwbbc is keen to find a protocol-based solution if at all possible, to avoid having to resort to that.
from rt-5gms-application-server.
Raised 5G-MAG/Standards#69 for SA4 discussion of this issue.
from rt-5gms-application-server.
Demonstrated dynamic redirect learning working under test environment, will now deploy and run some more tests in a more representative environment (i.e. full AF & AS deployment with multiple provisioning sessions).
from rt-5gms-application-server.
Related Issues (20)
- Use OpenAPI to bindings script from 5G-MAG/rt-common-shared repository. HOT 3
- MVP#1 Application Server installation issues/observations HOT 21
- asyncio.create_task(..., name=...) doesn't work with Python 3.7 HOT 1
- Error, following the build instructions HOT 5
- Application Server crash on certificate upload HOT 3
- Content Hosting Configuration handling uplift in 5GMSd AS HOT 5
- Incorrect error response status code for M1_ContentHostingProvisioning_purgeContentHostingCache operation HOT 3
- Documentation updates after review on 23 Jan 2023 HOT 5
- Enhancement: Return number of cache entries purged in M3 response
- MVP#2 Application Server installation/running issues/observations HOT 11
- CI/CD - Automated deployment of 5GMS AS to Linode instance HOT 1
- Implement Server Health Check endpoint
- Uplift to TS 26.512 v17.4.0: Update M3 interface with new ContentHostingConfiguration structure HOT 1
- Feature: Media Streaming Data Reporting at reference point R4 HOT 1
- 5gms-application-server reports `Path parameters cannot have a default value` HOT 3
- Redirection fails with recent OpenResty version HOT 1
- change in pydantic v2 HOT 3
- Development branch: Missing Nginx mime.types after clean installation HOT 2
- Updating PATH for launching Openresty HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rt-5gms-application-server.