Patent Description:
The 3rd Generation Partnership Project (3GPP) TS26. <NUM> defines the concept of uplink streaming where the content is streamed from a device to an external service provider. However, the existing streaming architecture only defines the general architecture for uplink and downlink media streaming. There is no definition of egest protocols or egest configurations.

<NUM>rd Generation Partnership Project; Technical Specification Group Services and System Aspects; <NUM> Media Streaming (5GMS); Protocols (Release <NUM>); 3GPP TS <NUM>, is subject to continuing work within the TSG and may change following formal TSG approval.

<NPL>, identifies the key topic "content preparation".

The invention is defined by the subject-matter of the appended set of claims.

<FIG> is a diagram of an environment <NUM> in which methods, apparatuses, and systems described herein may be implemented, according to embodiments. As shown in <FIG>, the environment <NUM> may include a user device <NUM>, a platform <NUM>, and a network <NUM>. Devices of the environment <NUM> may interconnect via wired connections, wireless connections, or a combination of wired and wireless connections.

The user device <NUM> includes one or more devices capable of receiving, generating, storing, processing, and/or providing information associated with platform <NUM>. For example, the user device <NUM> may include a computing device (e.g., a desktop computer, a laptop computer, a tablet computer, a handheld computer, a smart speaker, a server, etc.), a mobile phone (e.g., a smart phone, a radiotelephone, etc.), a wearable device (e.g., a pair of smart glasses or a smart watch), or a similar device. In some implementations, the user device <NUM> may receive information from and/or transmit information to the platform <NUM>.

The platform <NUM> includes one or more devices as described elsewhere herein. In some implementations, the platform <NUM> may include a cloud server or a group of cloud servers. In some implementations, the platform <NUM> may be designed to be modular such that software components may be swapped in or out depending on a particular need. As such, the platform <NUM> may be easily and/or quickly reconfigured for different uses.

In some implementations, as shown, the platform <NUM> may be hosted in a cloud computing environment <NUM>. Notably, while implementations described herein describe the platform <NUM> as being hosted in the cloud computing environment <NUM>, in some implementations, the platform <NUM> may not be cloud-based (i.e., may be implemented outside of a cloud computing environment) or may be partially cloud-based.

The cloud computing environment <NUM> includes an environment that hosts the platform <NUM>. The cloud computing environment <NUM> may provide computation, software, data access, storage, etc. services that do not require end-user (e.g. the user device <NUM>) knowledge of a physical location and configuration of system(s) and/or device(s) that hosts the platform <NUM>. As shown, the cloud computing environment <NUM> may include a group of computing resources <NUM> (referred to collectively as "computing resources <NUM>" and individually as "computing resource <NUM>").

The computing resource <NUM> includes one or more personal computers, workstation computers, server devices, or other types of computation and/or communication devices. In some implementations, the computing resource <NUM> may host the platform <NUM>. The cloud resources may include compute instances executing in the computing resource <NUM>, storage devices provided in the computing resource <NUM>, data transfer devices provided by the computing resource <NUM>, etc. In some implementations, the computing resource <NUM> may communicate with other computing resources <NUM> via wired connections, wireless connections, or a combination of wired and wireless connections.

As further shown in <FIG>, the computing resource <NUM> includes a group of cloud resources, such as one or more applications (APPs) <NUM>-<NUM>, one or more virtual machines (VMs) <NUM>-<NUM>, virtualized storage (VSs) <NUM>-<NUM>, one or more hypervisors (HYPs) <NUM>-<NUM>, or the like.

The application <NUM>-<NUM> includes one or more software applications that may be provided to or accessed by the user device <NUM> and/or the platform <NUM>. The application <NUM>-<NUM> may eliminate a need to install and execute the software applications on the user device <NUM>. For example, the application <NUM>-<NUM> may include software associated with the platform <NUM> and/or any other software capable of being provided via the cloud computing environment <NUM>. In some implementations, one application <NUM>-<NUM> may send/receive information to/from one or more other applications <NUM>-<NUM>, via the virtual machine <NUM>-<NUM>.

The virtual machine <NUM>-<NUM> includes a software implementation of a machine (e.g. a computer) that executes programs like a physical machine. The virtual machine <NUM>-<NUM> may be either a system virtual machine or a process virtual machine, depending upon use and degree of correspondence to any real machine by the virtual machine <NUM>-<NUM>. A system virtual machine may provide a complete system platform that supports execution of a complete operating system (OS). A process virtual machine may execute a single program, and may support a single process. In some implementations, the virtual machine <NUM>-<NUM> may execute on behalf of a user (e.g. the user device <NUM>), and may manage infrastructure of the cloud computing environment <NUM>, such as data management, synchronization, or long-duration data transfers.

The virtualized storage <NUM>-<NUM> includes one or more storage systems and/or one or more devices that use virtualization techniques within the storage systems or devices of the computing resource <NUM>. In some implementations, within the context of a storage system, types of virtualizations may include block virtualization and file virtualization. Block virtualization may refer to abstraction (or separation) of logical storage from physical storage so that the storage system may be accessed without regard to physical storage or heterogeneous structure. The separation may permit administrators of the storage system flexibility in how the administrators manage storage for end users. File virtualization may eliminate dependencies between data accessed at a file level and a location where files are physically stored. This may enable optimization of storage use, server consolidation, and/or performance of non-disruptive file migrations.

The hypervisor <NUM>-<NUM> may provide hardware virtualization techniques that allow multiple operating systems (e.g., "guest operating systems") to execute concurrently on a host computer, such as the computing resource <NUM>. The hypervisor <NUM>-<NUM> may present a virtual operating platform to the guest operating systems, and may manage the execution of the guest operating systems. Multiple instances of a variety of operating systems may share virtualized hardware resources.

The network <NUM> includes one or more wired and/or wireless networks. For example, the network <NUM> may include a cellular network (e.g. a fifth generation (<NUM>) network, a long-term evolution (LTE) network, a third generation (<NUM>) network, a code division multiple access (CDMA) network, etc.), a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g. the Public Switched Telephone Network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber optic-based network, or the like, and/or a combination of these or other types of networks.

Additionally, or alternatively, a set of devices (e.g. one or more devices) of the environment <NUM> may perform one or more functions described as being performed by another set of devices of the environment <NUM>.

<FIG> is a block diagram of example components of one or more devices of <FIG>. The device <NUM> may correspond to the user device <NUM> and/or the platform <NUM>. As shown in <FIG>, the device <NUM> may include a bus <NUM>, a processor <NUM>, a memory <NUM>, a storage component <NUM>, an input component <NUM>, an output component <NUM>, and a communication interface <NUM>.

The bus <NUM> includes a component that permits communication among the components of the device <NUM>. The processor <NUM> is implemented in hardware, firmware, or a combination of hardware and software. The processor <NUM> is a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or another type of processing component. In some implementations, the processor <NUM> includes one or more processors capable of being programmed to perform a function. The memory <NUM> includes a random access memory (RAM), a read only memory (ROM), and/or another type of dynamic or static storage device (e.g. a flash memory, a magnetic memory, and/or an optical memory) that stores information and/or instructions for use by the processor <NUM>.

The storage component <NUM> stores information and/or software related to the operation and use of the device <NUM>. For example, the storage component <NUM> may include a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optic disk, and/or a solid state disk), a compact disc (CD), a digital versatile disc (DVD), a floppy disk, a cartridge, a magnetic tape, and/or another type of non-transitory computer-readable medium, along with a corresponding drive.

The input component <NUM> includes a component that permits the device <NUM> to receive information, such as via user input (e.g. a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, and/or a microphone). Additionally, or alternatively, the input component <NUM> may include a sensor for sensing information (e.g. a global positioning system (GPS) component, an accelerometer, a gyroscope, and/or an actuator). The output component <NUM> includes a component that provides output information from the device <NUM> (e.g. a display, a speaker, and/or one or more light-emitting diodes (LEDs)).

The communication interface <NUM> includes a transceiver-like component (e.g., a transceiver and/or a separate receiver and transmitter) that enables the device <NUM> to communicate with other devices, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections. The communication interface <NUM> may permit the device <NUM> to receive information from another device and/or provide information to another device. For example, the communication interface <NUM> may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi interface, a cellular network interface, or the like.

The device <NUM> may perform one or more processes described herein. The device <NUM> may perform these processes in response to the processor <NUM> executing software instructions stored by a non-transitory computer-readable medium, such as the memory <NUM> and/or the storage component <NUM>. A computer-readable medium is defined herein as a non-transitory memory device. A memory device includes memory space within a single physical storage device or memory space spread across multiple physical storage devices.

Software instructions may be read into the memory <NUM> and/or the storage component <NUM> from another computer-readable medium or from another device via the communication interface <NUM>. When executed, software instructions stored in the memory <NUM> and/or the storage component <NUM> may cause the processor <NUM> to perform one or more processes described herein.

In practice, the device <NUM> may include additional components, fewer components, different components, or differently arranged components than those shown in <FIG>. Additionally, or alternatively, a set of components (e.g., one or more components) of the device <NUM> may perform one or more functions described as being performed by another set of components of the device <NUM>.

A <NUM> media streaming (SGMS) system may be an assembly of application functions, application servers, and interfaces from the <NUM> media streaming architecture that support either downlink media streaming services or uplink media streaming services, or both. A SGMS Application Provider may include a party that interacts with functions of the SGMS system and supplies a SGMS Aware Application that interacts with functions of the SGMS system. The SGMS Aware Application may refer to an application in the user equipment (UE), provided by the SGMS Application Provider, that contains the service logic of the SGMS application service, and interacts with other SGMS Client and Network functions via the interfaces and application programming interfaces (APIs) defined in the SGMS architecture. A SGMS Client may refer to a UE function that is either a SGMS downlink (SGMSd) Client or a SGMS uplink (SGMSu) Client, or both.

The SGMSd Client may refer to a UE function that includes at least a <NUM> media streaming player and a media session handler for downlink streaming and that may be accessed through well-defined interfaces/APIs. The 5GMSu Client may refer to an originator of a 5GMSu service that may be accessed through well-defined interfaces/APIs. A 5GMSu media streamer may refer to a UE function that enables uplink delivery of streaming media content to an Application Server (AS) function of the SGMS Application Provider, and which interacts with both the 5GMSu Aware Application for media capture and subsequent streaming, and the Media Session Handler for media session control.

A dynamic policy may refer to a dynamic policy and charging control (PCC) rule for an uplink or downlink application flow during a media session. An egest session may refer to an uplink media streaming session from the SGMS AS towards the 5GMSu Application Provider. An ingest session may refer to a session to upload the media content to a SGMSd AS. A policy template may refer to a collection of (semi-static) Policy or Control Function (PCF)/Network Exposure Function (NEF) API parameters which are specific to the SGMS Application Provider and also the resulting PCC rule. A policy template ID may identify the desired policy template, which is used by the SGMSd Application Function (AF) to select the appropriate PCF/NEF API towards the <NUM> system so that the PCF can compile the desired PCC rule. The Media Player Entry may refer to a document or a pointer to a document that defines a media presentation (e.g., a media presentation description (MPD) for DASH or a uniform resource locator (URL) to a video clip file). A Media Streamer Entry may refer to a pointer (e.g., in the form of a URL) that defines an entry point of an uplink media streaming session. A presentation entry may refer to a document or a pointer to a document that defines an application presentation, such as an HTML5 document.

A Provisioning Session may refer to a data structure supplied at an interface (M1d) by a SGMSd Application provider that configures the SGMSd features relevant to a set of 5GMSd Aware Applications. A 5GMSd Media Player may refer to a UE function that enables playback and rendering of a media presentation based on a media play entry and exposing some basic controls such as play, pause, seek, stop, to the 5GMSd Aware Application. Server Access Information may refer to a set of parameters and addresses (including SGMSd AF and 5GMSd AS addresses) which are needed to activate the reception of a streaming session. A Service and Content Discovery may refer to functionality and procedures provided by a SGMSd Application Provider to a SGMS Aware Application that enables the end user to discover the available streaming service and content offerings and select a specific service or content item for access. A Service Announcement may refer to procedures conducted between the SGMS Aware Application and the SGMS Application Provider such that the SGMS Aware Application is able to obtain SGMS Service Access Information, either directly or in the form of a reference to that information.

A third party player may refer to a part of an application that uses APIs to exercise selected SGMSd functions to play back media content. A third party uplink streamer may refer to a part of an application that uses APIs to exercise selected 5GMSu functions to capture and stream media content.

<FIG> is a diagram of a media architecture <NUM> for media uplink streaming according to embodiments. A 5GMSu Application Provider <NUM> may use SGMSu for uplink streaming services. 5GMSu Application provider <NUM> may provide a 5GMSu Aware Application <NUM> on the UE <NUM> to make use of 5GMSu Client <NUM> and network functions using interfaces and APIs defined in SGMSu. 5GMSu AS may be an AS dedicated to <NUM> Media Uplink Streaming. 5GMSu Client <NUM> may be a UE <NUM> internal function dedicated to <NUM> Media Uplink Streaming.

5GMSu AF <NUM> and 5GMSu AS <NUM> may be Data Network (DN) <NUM> functions. Functions in trusted DNs may be trusted by the operator's network. Therefore, AFs in trusted DNs may directly communicate with all <NUM> Core functions. Functions in external DNs may only communicate with <NUM> Core functions via the NEF <NUM> using link <NUM>.

The media architecture <NUM> may connect UE <NUM> internal functions and related network functions for <NUM> Media Uplink Streaming. Accordingly, media architecture <NUM> may include a number of functions. For example, 5GMSu Client <NUM> on UE <NUM> may be an originator of 5GMSu service that may be accessed through interfaces/APIs. 5GMSu Client <NUM> may include two sub-functions, media session handler <NUM> and media streamer <NUM>. Media session handler <NUM> may communicate with the 5GMSu AF <NUM> in order to establish, control and support the delivery of a media session. The Media Session Handler <NUM> may expose APIs that can be used by the 5GMSu Aware Application <NUM>. Media Streamer <NUM> may communicate with 5GMSu AS <NUM> in order to stream the media content and provide a service to the 5GMSu Aware Application <NUM> for media capturing and streaming, and the Media Session Handler <NUM> for media session control. 5GMSu Aware Application <NUM> may control 5GMSu Client <NUM> by implementing external application or content service provider specific logic and enabling the establishment of a media session. 5GMSu AS <NUM> may host <NUM> media functions and may be implemented as a content delivery network (CDN), for example. 5GMSu Application Provider <NUM> may be an external application or content specific media functionality, e.g., media storage, consumption, transcoding and redistribution that uses 5GMSu to stream media from 5GMSu Aware Application <NUM>. 5GMSu AF <NUM> may provide various control functions to the Media Session Handler <NUM> on the UE <NUM> and/or to 5GMSu Application Provider <NUM>. 5GMSu AF <NUM> may relay or initiate a request for different PCF <NUM> treatment or interact with other network functions.

Media architecture <NUM> may include a number of different interfaces. For example, link <NUM> may relate to M1u, which may be a 5GMSu Provisioning API exposed by 5GMSu AF <NUM> to provision usage of media architecture <NUM> and to obtain feedback. Link <NUM> may relate to M2u, which may be a 5GMSu Publish API exposed by 5GMSu AS <NUM> and used when 5GMSu AS <NUM> in trusted DN, such as DN <NUM>, is selected to receive content for streaming service. Link <NUM> may relate to M3u, which may be an internal API used to exchange information for content hosting on 5GMSu AS <NUM> within a trusted DN such as DN <NUM>. Link <NUM> may relate to M4u, which may be a Media Uplink Streaming API exposed by 5GMSu AS <NUM> to Media Streamer <NUM> to stream media content. Link <NUM> may relate to M5u, which may be a Media Session Handling API exposed by 5GMSu AF <NUM> to Media Session Handler for media session handling, control and assistance that also include appropriate security mechanisms e.g. authorization and authentication. Link <NUM> may relate to M6u, which may be a UE <NUM> Media Session Handling API exposed by Media Session Handler <NUM> to 5GMSu Aware Application <NUM> to make use of 5GMSu functions. Link <NUM> may relate to M7u, which may be a UE Media Streamer API exposed by Media Streamer <NUM> to 5GMSu Aware Application <NUM> and Media Session Handler <NUM> to make use of Media Streamer <NUM>. Link <NUM> may relate to M8u, which may be an Application API which is used for information exchange between 5GMSu Aware Application <NUM> and 5GMSu Application Provider <NUM>, for example to provide service access information to the 5GMSu Aware Application <NUM>. The UE <NUM> may also be implemented in a self-contained manner such that interfaces M6u <NUM> and M7u <NUM> are not exposed.

<FIG> is a diagram of a media architecture <NUM> for content preparation after uplink ingest streaming, according to embodiments. The media architecture <NUM> includes a UE <NUM>, an external DN <NUM> and a trusted DN <NUM>. The UE <NUM> includes a 5GMSu Aware Application <NUM> and a 5GMSu client <NUM>. The external DN <NUM> includes a 5GMSu Application Provider <NUM>. The trusted DN <NUM> includes a 5GMSu AS <NUM> and a 5GMSu AF <NUM>. The 5GMSu AF <NUM> may relay or initiate a request for different PCF <NUM> treatment or interact with other network functions via an N5 link <NUM>.

<FIG> depicts a scenario where the 5GMSu Application Provider <NUM> or the 5GMSu Aware Application <NUM> requests content preparation for an uplink ingest stream and delivery to the 5GMSu Application Provider <NUM>. As such, the 5GMSu Application Provider <NUM> may interface with the 5GMSu AF <NUM> by an M1u link <NUM>, may interface with the 5GMSu AS <NUM> by an M2u link <NUM>, and may interface with the 5GMSu Aware Application <NUM> by an M8u link <NUM>. Furthermore, the 5GMSu client <NUM> may interface with the 5GMSu AS <NUM> by an M4u link <NUM> and may interface with the 5GMSu AF <NUM> by an M5u link <NUM>. The 5GMSu AS <NUM> may interface with the 5GMSu AF <NUM> by an M3u link <NUM>. The M3u link <NUM> may include an internal API between the 5GMSu AF <NUM> and the SGMSU AS <NUM> that is used to exchange information for content hosting on the 5GMSu AS <NUM> within the trusted DN <NUM>. The 5GMSu AS <NUM> may include an application server dedicated to <NUM> uplink media streaming.

According to embodiments, the 5GMSu Application Provider <NUM> may create a provisioning session with the 5GMSu AF <NUM> using, for example, the M1u link <NUM>. The 5GMSu Application Provider <NUM> may request the 5GMSu AF <NUM> to create a content egest template (CET) that defines the instructions for content egest using, for example, the M1u link <NUM>. Based on the received request to create the CET, the 5GMSu AF <NUM> may request the 5GMSu AS <NUM> to allocate content resources for egest using, for example, the M3u link <NUM>. The 5GMSu AF <NUM> may acknowledge, to the 5GMSu Application Provider <NUM>, the successful creation of the CET using, for example, the M1u link <NUM>. Then, the 5GMSu Application Provider <NUM> may announce the availability of the services to the SGMS Aware Application <NUM>. The CET is added a s a new resource in response to calls for the creation of it. The CET includes the information for setting up the egest by using the M2u link <NUM>, as described in operation <NUM> below.

<FIG> and <FIG> are diagrams of an operation flow for content preparation after uplink ingest streaming, according to an embodiment. The operation flow utilizes, for example, a 5GMSu Aware Application <NUM>, a 5GMSu client <NUM>, a 5GMSu AF <NUM>, a 5GMSu AS <NUM>, and a 5GMSu Application Provider <NUM>.

In operation <NUM>, the 5GMSu Application Provider <NUM> creates a provisioning session with the 5GMSu AF <NUM> using interface M1u. In operation <NUM>, the 5GMSu Application Provider <NUM> transmits a request to the 5GMSu AF <NUM> to create a CET using interface M1u. In operation <NUM>, the 5GMSu AF <NUM> discovers and requests, from the 5GMSu AS <NUM>, resources to allocate for egest using the M3u interface. In operation <NUM>, the 5GMSu AF <NUM> transmits an acknowledgement to the 5GMSu Application Provider <NUM> that the CET has been created, using the M1u interface. In operation <NUM>, the 5GMSu Application Provider <NUM> provides a service announcement to the 5GMSu Aware Application <NUM> indicating availability of services. In operation <NUM>, the 5GMSu AF <NUM> discovers and requests, from the 5GMSu AS <NUM>, updated resources to allocate for egest using the M3u interface.

In operation <NUM>, the 5GMSu Aware Application <NUM> transmits a request to start the service to the 5GMSu Application Provider <NUM> using the M8u interface. In operation <NUM>, the 5GMSu Application Provider <NUM> sends a request to the 5GMSu AF <NUM> to update the CET, using interface M1u. In operation <NUM>, the 5GMSu AF <NUM> transmits an acknowledgement to the 5GMSu Application Provider <NUM> that the CET has been updated, using the M1u interface. In operation <NUM>, the 5GMSu Application Provider <NUM> acknowledges the service to the 5GMSu Aware Application <NUM>, using the M8u interface.

In operation <NUM>, the UE APIs are utilized from the 5GMSu client <NUM>. In operation <NUM>, the 5GMSu AF <NUM> performs service access information acquisition from the 5GMSu client <NUM>. In operation <NUM>, the 5GMSu client <NUM> transmits a request for a media session to the 5GMSu AF <NUM>, using the M5u interface. In operation <NUM>, the 5GMSu AF <NUM> transmits a request to start the content preparation process to the 5GMSu AS <NUM>, using the M3u interface. In operation <NUM>, the 5GMSu AS <NUM> performs the instantiating content preparation process. In operation <NUM>, the 5GMSu AS <NUM> transmits an acknowledgement to the 5GMSu AF <NUM> indicating the start of the content preparation process, using the M3u link. In operation <NUM>, media streaming is performed between the 5GMSu AS <NUM> and the 5GMSu client <NUM>, using the M4u interface. In operation <NUM>, the 5GMS egest is performed between the 5GMSu Application Provider <NUM> and the 5GMSu AS <NUM>, using the M2u interface.

For the content egest protocols, the hyper-text transfer protocol (HTTP) pull-based content ingest protocol as well as the DASH-IF push-based content ingest protocol are added to be used for egest. Table <NUM> shows supported egest content protocols.

When using the HTTP pull-based content ingest protocol, since the content is pulled by the 5GMSu Application Provider from the 5GMSu's AS, the relative address of the media content may be provided through the M8u interface (i.e., the 5GMSu Aware Application provides the 5GMSu Application Provider a manifest that includes the relative content resource URL).

For the content egest configuration API, the API is defined for creation, update, access, and removal of the CET resource, shown in Table <NUM>. Table <NUM> shows operations supported by the content egest configuration API.

The content egest configuration may be defined based on the CET. For the CET, the data model shown in Table <NUM> may be utilized.

<FIG> is a flowchart of a process <NUM> for content preparation after uplink ingest streaming, according to embodiments. In operation <NUM>, a 5GMSu AF receives a first request to create a CET from a 5GMSu Application Provider. In operation <NUM>, the 5GMSu AF creates the CET based on the first request received from the SGMSu application provider. In operation <NUM>, the 5GMSu AF transmits, to a 5GMSu AS, a second request to allocate content resources for egest based on the created CET. In operation <NUM>, the 5GMSu AF transmits, to the 5GMSu Application Provider, an acknowledgement that the CET is created.

Further, the proposed methods may be implemented by processing circuitry (e.g., one or more processors or one or more integrated circuits). In one example, the one or more processors execute a program that is stored in a non-transitory computer-readable medium to perform one or more of the proposed methods.

The techniques described above can be implemented as computer software using computer-readable instructions and physically stored in one or more computer-readable media.

Embodiments of the present disclosure may be used separately or combined in any order. Further, each of the embodiments (and methods thereof) may be implemented by processing circuitry (e.g., one or more processors or one or more integrated circuits). In one example, the one or more processors execute a program that is stored in a non-transitory computer-readable medium.

Even though combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of possible implementations. Although each dependent claim listed below may directly depend on only one claim, the disclosure of possible implementations includes each dependent claim in combination with every other claim in the claim set.

Claim 1:
A method of a <NUM>th Generation media streaming uplink, 5GMSu, application function, AF, (<NUM>) the method comprising:
Receiving (<NUM>), from a 5GMSu application provider (<NUM>), a first request to create a content egest template, CET, that defines the instructions for content egest;
creating the CET based on the first request received from the 5GMSu application provider;
transmitting (<NUM>), to a 5GMSu application server, AS, (<NUM>) a second request to allocate content resources for egest based on the created CET; and
transmitting (<NUM>), to the 5GMSu application provider, an acknowledgement that the CET is created
the method further comprising creating a content egest configuration based on the created CET,
wherein the content egest configuration includes an egest path, egest pull, egest protocol and an egest entry point;
wherein the egest protocol includes a hyper-text transfer protocol, HTTP, pull-based content ingest protocol and a DASH-IF push-based content ingest protocol.