INTELLIGENT ALLOCATION OF INTERNET PROTOCOL (IP) MULTIMEDIA SUBSYSTEM (IMS) RESOURCES

Solutions for intelligent allocation of internet protocol (IP) multimedia system (IMS) resources include: receiving, at a first node, over a wireless network, a request from a client device for a data traffic session passing through an internet protocol (IP) multimedia subsystem (IMS), the client device connected to the wireless network via an air interface; determining, by the first node, a priority of the client device for receiving enhanced services for the data traffic session, the enhanced services requiring a higher bandwidth than non-enhanced services; based on at least the priority of the client device and (in some examples) loading of the wireless network, determining whether the enhanced services are to be allocated for the data traffic session; and based on at least determining that the enhanced services are not to be allocated for the data traffic session, instructing the client device to use non-enhanced services for the data traffic session.

BACKGROUND

Enhanced services, such as enhanced voice services (EVS) and others, such as enhanced video and enhanced machine-to-machine (M2M) services, place higher demands on cellular networks, such as higher bandwidth demand and, in some scenarios, more computationally-intensive transcoding. Some enhanced services, also referred to as enriched services, pass through an internet protocol (IP) multimedia subsystem (IMS), burdening the IMS. Client devices, such as user equipment (UEs) and internet of things (IoT) devices, that support enhanced services, may automatically request enhanced services.

Currently, IMS codec resources are made available based on the access network type, such as fifth generation technology (5G) cellular, fourth-generation technology (4G) cellular, WiFi, or older circuit-switched (CS) network technology. However, in scenarios for which additional factors may be relevant, allocating enhanced services based merely on client device requests and access network type is an inefficient use of IMS resources.

SUMMARY

The following summary is provided to illustrate examples disclosed herein, but is not meant to limit all examples to any particular configuration or sequence of operations.

Solutions for intelligent allocation of internet protocol (IP) multimedia system (IMS) resources include: receiving, at a first node, over a wireless network, a request from a client device for a data traffic session passing through an internet protocol (IP) multimedia subsystem (IMS), the client device connected to the wireless network via an air interface; determining, by the first node, a priority of the client device for receiving enhanced services for the data traffic session, the enhanced services requiring a higher bandwidth than non-enhanced services; based on at least the priority of the client device and (in some examples) loading of the wireless network, determining whether the enhanced services are to be allocated for the data traffic session; and based on at least determining that the enhanced services are not to be allocated for the data traffic session, instructing the client device to use non-enhanced services for the data traffic session.

Corresponding reference characters indicate corresponding parts throughout the drawings, where practical. References made throughout this disclosure relating to specific examples, are provided for illustrative purposes, and are not meant to limit all implementations or to be interpreted as excluding the existence of additional implementations that also incorporate the recited features.

DETAILED DESCRIPTION

Solutions for intelligent allocation of internet protocol (IP) multimedia system (IMS) resources include: receiving, at a first node, over a wireless network (e.g., a cellular network), a request from a client device for a data traffic session passing through an internet protocol (IP) multimedia subsystem (IMS), the client device connected to the wireless network via an air interface; determining, by the first node, a priority of the client device for receiving enhanced services for the data traffic session, the enhanced services requiring a higher bandwidth than non-enhanced services; based on at least the priority of the client device, determining whether the enhanced services are to be allocated for the data traffic session; and based on at least determining that the enhanced services are not to be allocated for the data traffic session, instructing the client device to use non-enhanced services for the data traffic session.

Aspects of the disclosure improve the efficiency of cellular communications by intelligently allocating IMS resources according to a prioritization scheme, for example by determining a priority of a client device for receiving enhanced services and, based on at least the priority of the client device and loading of the wireless network, determining whether the enhanced services are to be allocated. The prioritization scheme may have multiple tiers and stages of determination to intelligently allocate the use of enhanced services resources, such as enhanced voice services (EVS) transcoder resources, to improve efficiency of available call processing capacity in the IMS.

Enhanced Voice Services (EVS) is a super-wideband speech audio coding standard that offers up to 20 kHz audio bandwidth and has high robustness to delay jitter and packet losses due to channel aware coding and improved packet loss concealment. EVS is described in at least Third Generation Partnership Project (3GPP) technical standard (TS) 26.441. The application areas of EVS include improved telephony and teleconferencing, audiovisual conferencing services, and streaming audio. In some scenarios EVS, is referred to as HD+voice.

In some examples, the EVS bit rate and audio bandwidth supporting upper or lower range selection setting will be automatically configured (controlled) by the serving proxy-call session control function (P-CSCF) and/or media resource function processor (MRFP). By enabling the controlling of EVS transcoding bit rate and bandwidth ranges by the P-CSCF and/or MRFP radio cell capacity may be saved, providing wider coverage and minimizing IP packet loss for voice services, while managing the impact to voice quality. For example, if a first client device is a user equipment (UE) that supports EVS is engaging in a voice call with another US that does not support EVS, the voice quality will not be degraded for the UE that supports EVS by instructing that UE to use a lower bit rate voice codec, because the voice call would need to be transcoded to the lower bit rate voice codec, anyway. Thus, the radio cell capacity saving is transparent to the user having the UE that supports EVS.

With reference now to the figures,FIG.1illustrates an architecture100that advantageously provides intelligent network resource allocation for IMS resources. In architecture100, a wireless network110provides a data traffic session106for client device102communicating with another client device104a, client device104b, and/or client device104cthrough an IMS150. IMS150provides an architectural framework for delivering IP-based multimedia services.

Client devices102,104a, and104bmay be cellular UEs or internet of thing (IoT) devices. Client device104cis connected to a public switched telephone network (PSTN)160, and is shown as a traditional telephone (e.g., a PSTN device). PSTN160uses circuit-switched (CS) network technology. An IoT device may be a connected appliance, a smart home security system, an autonomous factory or farming machine, a wearable health monitor, a wireless inventory tracker, or another device.

Wireless network110may be a fifth-generation technology (5G) cellular, fourth-generation technology (4G) cellular, or other network (e.g., a future 6G network). Client device102accesses wireless network110using an air interface108to a base station112of wireless network110or a WiFi router114. For 5G, base station112may comprise a gNodeB (gNB), so that air interface108is a 5G cellular interface, and a voice call may be voice over new radio (VoNR). For 4G, base station112may comprise an eNodeB (eNB), so that air interface108is a 4G cellular interface, and a voice call may be voice over long term evolution (VoLTE). For air interface108, cellular networks may use orthogonal frequency-division multiple access (OFDMA), which uses a combination of orthogonal frequency-division multiplexing (OFDM) and time domain multiple access (TDMA).

For WiFi, air interface108is a WiFi interface, and a voice call may be voice over WiFi (VoWiFi). In some examples, data traffic session106comprises a voice call or a video call, or machine-to-machine (M2M) communication. In some examples, a voice or video call may be a two-party call between client device102and a single one of client devices104a,104b, and104c. In some examples, a voice or video call may be a multi-party call between client device102and two or more of client devices104a,104b, and104c. In some examples, data traffic session106comprises streaming video.

In some scenarios, data traffic session106requires transcoding. This may occur when client device102uses a different codec than the distant end device with which it is communicating. For example, if client device102is using EVS and is engaged in a voice call with client device104athat is using an older codec, transcoding will be required. As another example, if client device102is engaged in a voice call with client device104c, which is a PSTN device, transcoding will be required for any cellular codec used by client device102(in addition to signaling conversion). Transcoding is performed within IMS150, in some examples, as described below.

4G and 5G cellular network employs control plane and user plane separation (CUPS), which separates wireless network110into a control plane and a user plane. Multiple benefits arise from CUPS. One benefit is that session management node124may be located in a centralized location for ease of management, while packet routing node118is located elsewhere, based on latency and other performance issues for user plane data traffic between a client device and either an external data network (DN) or IMS150. Another benefit is that wireless network110may have the control plane capacity and user plane capacity scaled separately, based on actual and expected dominant traffic type.

The control plane includes at least an access node122and a session management node124in a session management portion120. The user plane includes at least a packet routing node118and proxy node130. Data packets for signaling that sets up data traffic session106, and data session control, pass from base station112through access node122to session management node124. In some examples, data traffic session106is set up using session initiation protocol (SIP) signaling. Data packets of data traffic session106pass from base station112through a packet routing node118and a proxy node130to IMS150(although proxy node130may be considered to be within IMS150).

For 5G, access node122may comprise an access and mobility management function (AMF), session management node124may comprise a session management function (SMF), and packet routing node118may comprise a user plane function (UPF). For a 4G, access node122may comprise a mobility management entity (MME), session management node124may comprise a system architecture (SAE) evolution gateway—control plane (SAEGW-C), and packet routing node118may comprise an SAE evolution gateway—user plane (SAEGW-U). An SAEGW-C is the combination of a serving gateway (SGW)— control plane (SGW-C) and a packet data network gateway (PGW)— control plane (PGW-C). An SAEGW-U is the combination of an SGW— user plane (SGW-U) and a PGW— user plane (PGW-U). In some examples, proxy node130comprises a proxy-call session control function (P-CSCF).

Access node122supports the termination of non-access stratum (NAS) signaling, is which is a functional layer in wireless telecom protocol stacks between core network equipment of wireless network110and client devices. NAS signaling is used to manage the establishment of communication sessions and for maintaining continuous communications with the user equipment as they move. Base station112selects access node122(from a plurality of access nodes in wireless network110) for a particular client device, based on network slicing constraints and support requested by the client device. Network slicing partitions wireless network110into multiple virtual networks. One function of access node122is to route control plane data packets between base station112and session management node124.

Session management node124is responsible for interacting with the decoupled data plane, creating updating and removing protocol data unit (PDU) sessions and managing session context with packet routing node118. Packet routing node118performs packet routing and forwarding, packet inspection, and quality of service (QoS) handling for user plane data packets. Packet routing node118handles external protocol data unit (PDU) sessions between wireless network110and external DNs, for example, the internet. One function of packet routing node118is to route user plane data packets between base station112and proxy node130, under management by session management node124.

WiFi traffic (e.g., VoWiFi data packets) enter wireless network110through a routing node116that routes traffic between WiFi router114and packet routing node118. In some examples, routing node116comprises an evolved packet data gateway (ePDG).

Proxy node130is the contact point between wireless network110and IMS150and functions as a proxy server for the client devices whose user plane data packets pass through base station112and packet routing node118. SIP signaling traffic to and from a client device passes through proxy node130. Client devices discover proxy node130via a discovery process using a network function (NF) repository function (NRF) in wireless network110.

A subscriber information node140includes a home subscriber server (HSS)142and, for 5G, a unified data management function (UDM)144. HSS142provides a user database and wireless network110works with both legacy and concurrent services. UDM144provides centralized control of network user data, similarly to HSS142, but for 5G. A stateful form stores data locally to UDM144. Subscriber information node140is in communication with session management node124. Subscriber information node140is also in communication with proxy node130via a call session control function (CSCF)136. CSCF136comprises a serving-CSCF (S-CSCF)132and an interrogating-CSCF (I-CSCF)134.

In some examples, also includes functionality for an access transfer control function (ATCF) and/or an access transfer gateway (ATGW). An ATCF reduces voice interruption delays and acts as an anchor point for SIP signaling, sitting between a P-CSCF and an I-CSCF/S-CSCF in the signaling flow. An ATGW is a media function that is used to anchor a media stream, under the controlled of the ATCF. In some examples, ATGW functionality is instead within an IMS— media gateway (IMS-MGW)156, described below.

S-CSCF132is the node primarily responsible for session control. Subscribers are allocated an S-CSCF for the duration of their IMS registration in order to facilitate routing of SIP messages as part of service establishment procedures. I-CSCF134enables requests to be routed to the correct S-CSCF, because wireless network110may have multiple S-CSCFs.

CSCF136is in communication with a telephony application server (TAS)146. TAS146is a back-to-back SIP user agent that maintains the call state. TAS146contains the service logic that provides the basic call processing services including digit analysis, routing, call setup, call waiting, call forwarding, conferencing, and others.

A policy node126provides policy control decisions and flow-based charging controls and hosts a customer profile240that is associated with client device102. Policy node126determines how a service data flow is to be treated in the enforcement function, and ensure that the user plane traffic mapping and treatment is in accordance with the user's profile. In some examples, policy node126acts as a mediator of network resources for IMS150for establishing calls and allocating requested bandwidth to the call bearer with configured attributes. This enables offering differentiated voice services to users of wireless network110by charging a premium for some call types, as well as prioritizing calls to emergency numbers. Policy node126comprises a policy and charging rules function (PCRF) for 4G and a policy control function (PCF) for 5G. Policy node126communicates with session management node124and TAS146. Customer profile240is shown in further detail inFIG.2.

IMS150includes an inter-IMS network to network interface (IMS-NNI)152, a multimedia resource function (MRF)154, IMS-MGW156, and a transcoder158. IMS-NNI152supports interoperable communication between different IMS networks and assists IMS networks to comply with the interoperability requirements defined within national and international regulatory frameworks. MRF154, in conjunction with S-CSCF132and an application server (e.g., TAS146), is responsible for carrying out a variety of processing tasks on media streams associated with particular services. MRF154provides media related functions such as media manipulation (e.g., voice stream mixing) and playing of tones and announcements.

In some examples, MRF154is divided into a media resource function controller (MRFC) and a media resource function processor (MRFP). The MRFC is a signaling plane node that interprets information coming from TAS146and S-CSCF132to control the MRFP. The MRFP is a media plane node used to mix, source, or process media streams and manage access right to shared resources.

IMS-MGW156handles the media plane (voice) bearer as part of an IP-based call and provides termination for CS and packet-switched (PS) media stream termination. Transcoder158provides transcoding and conversion services, such as converting from a codec used by one client device into the codec used by another codec device and/or a call on PSTN160and may be implemented within IMS-MGW156or as a media gateway control function (MGCF). When a MGCF works as a breakout to PSTN160, it is also responsible for managing the conversion of signaling messages, such as converting SIP messaging to/from bearer independent call control (BICC) signaling, and other signaling used by PSTN160.

Allocation node200, which is shown in further detail and described in relation toFIG.2, may be located within IMS150, S-CSCF132, or elsewhere within wireless network110. It should be understood that examples of wireless network110may use different numbers of elements than shown. For example, a common core network may have six to ten pools of approximately a dozen or more P-CSCFs each. Any of CSCF136, proxy node130, subscriber information node140, and TAS146may be located within wireless network110or within IMS150.

FIG.2illustrates further detail for allocation node200and customer profile240. Allocation node200has control logic202that determines a priority216of client device102for receiving enhanced services for data traffic session106; and based on at least priority216and, in some examples also a loading226of wireless network110, determines whether enhanced services are to be allocated for data traffic session106. Allocation node200then instructs other elements of wireless network110accordingly. Base station112will then either instruct client device102to use non-enhanced services for data traffic session106or instruct client device102that enhanced services may be used for data traffic session106.

Allocation node200may use a wide variety of prioritization criteria to determine priority216. For example, the network access type, 5G, 4G, or WiFi, may be used, with highest priority going to the newest cellular generation supported by wireless network110, and decreasing to the oldest cellular generation supported by wireless network110(e.g., 5G is a higher priority than 4G). In some examples, WiFi may be given the lowest priority. This access type information is available from wireless network110, such as from a P-CSCF parameter session description protocol (SDP). SDP is a format for describing multimedia communication sessions for the purposes of announcement and invitation.

Within a network access type, another layer of prioritization may be determined, based on customer profile240that is associated with client device102and fetched from policy node126. Customer profile240may include branding information242, rate plan information244, and other information246. Branding information242includes information regarding whether client device102is covered by a subscription plan of a flagship service or a reseller, such as a mobile virtual network operator (MVNO). Rate plan information244includes information regarding whether client device102is covered by a subscription (post-paid) or uses a pre-paid account. For example, priority may be highest for 5G users operating under a subscription plan of a flagship service. The next lower tiers in descending order (in some examples) are 5G users operating under a subscription plan of a reseller, 5G users operating under a pre-paid plan, 4G users operating under a subscription plan of a flagship service flagship service, 4G users operating under a subscription plan of a reseller, and then 4G users operating under a pre-paid plan.

Roaming client devices may be placed at a lower priority than client devices in a home network. Roaming prioritization takes into account network-to-network inter-carrier peering agreements for mobile originated/terminated traffic exchange, and other international and domestic roaming agreements with other wireless network operators.

In some examples, client devices using WiFi may be placed at an even lower priority than roamers. Other prioritization schemes may also be used. In some examples, enhanced services may be blocked entirely for client devices located in certain countries and using WiFi. To support this, a client device location204(e.g., a geographical location) is collected that includes a country code corresponding to a country in which client device102is located.

In the illustrated example, priority216is set to one of a pre-determined set of priority tiers210. For example, the highest priority may be set to priority tier211, the second highest priority may be set to priority tier212, the third the highest priority may be set to priority tier213, and so on.

In some examples, the loading of wireless network110is used in determining whether enhanced services are to be allocated for data traffic session106. Network loading information, reflected in loading226, may be current loading of wireless network110or, in some examples in which network loading predictions are made, also include expected future loading. A set of allocation thresholds220is illustrated that includes a highest allocation threshold221, a second highest allocation threshold222, a third allocation highest threshold223, and so on.

In an example operation, control logic202determines priority216of client device102as one of priority tiers211-213. Control logic202also determines loading226, and based on at least loading226, selects one of allocation thresholds221-223. If data traffic session106requires transcoding, control logic202may select a higher allocation threshold than if transcoding is not required. If priority216is below the selected allocation threshold (i.e., fails to meet the selected allocation threshold), client device is instructed to use non-enhanced services. If, however, priority216meets (i.e., matches or exceeds) the selected allocation threshold, client device is instructed to use enhanced services.

FIG.3illustrates a flowchart300of exemplary operations associated with architecture100providing data traffic session106for client device102. In some examples, at least a portion of flowchart300may be performed using one or more computing devices500ofFIG.5(e.g., base station112, access node122, session management node124, packet routing node118, and proxy node130may use examples of computing device500).

Flowchart300commences with client device102registering with wireless network110in operation302, so that base station112is a serving base station of client device102. Operation304includes receiving, at allocation node200, over wireless network110, a request from client device102for data traffic session106passing through IMS150. Client device102is connected to wireless network110via air interface108.

Allocation node200determines priority216of client device102for receiving enhanced services for data traffic session106, in operation306. Operation306is performed using operations308-314. Operation308determines whether air interface108comprises a 5G cellular interface, a 3G cellular interface, or a WiFi interface. In operation310, allocation node200retrieves information associated with customer profile240from policy node126(e.g., a PCRF or PCF). Operation312determines a service priority based on customer profile240associated with client device102, and operation314determines a geographical location (e.g., location204) of client device102.

Allocation node200determines whether the enhanced services are to be allocated for data traffic session106, based on at least priority216of client device102and (in some examples) loading226of wireless network110, in operation316. Operation316is performed using operations318-322and acted upon by decision operation324. Operation318determines loading226of wireless network110, operation320determines whether data traffic session106requires transcoding, and operation322selects an allocation threshold.

Decision operation324determines to allocate the enhanced services if the loading of wireless network110meets the selected allocation threshold or determines to not allocate the enhanced services if the loading of wireless network110is below the selected allocation threshold. If enhanced services are to be provided, operation326instructs client device102accordingly. Wireless network110provides the enhanced services for data traffic session106in operation328, based on at least determining that the enhanced services are to be allocated for data traffic session106.

Otherwise, based on at least determining that the enhanced services are not to be allocated for data traffic session106, operation330instructs client device102to use non-enhanced services for data traffic session106. Wireless network110provides data traffic session106without enhanced services, in operation332.

FIG.4illustrates a flowchart400of exemplary operations associated with examples of architecture100. In some examples, at least a portion of flowchart400may be performed using one or more computing devices500ofFIG.5. Flowchart5400commences with operation402, which includes receiving, at a first node, over a wireless network, a request from a client device for a data traffic session passing through an IMS, the client device connected to the wireless network via an air interface.

Operation404includes determining, by the first node, a priority of the client device for receiving enhanced services for the data traffic session, the enhanced services requiring a higher bandwidth than non-enhanced services. Operation406includes, based on at least the priority of the client device and loading of the wireless network, determining whether the enhanced services are to be allocated for the data traffic session. Operation408includes, based on at least determining that the enhanced services are not to be allocated for the data traffic session, instructing the client device to use non-enhanced services for the data traffic session.

FIG.5illustrates a block diagram of computing device500that may be used as any component described herein that may require computational or storage capacity. Computing device500has at least a processor502and a memory504that holds program code510, data area520, and other logic and storage530. Memory504is any device allowing information, such as computer executable instructions and/or other data, to be stored and retrieved. For example, memory504may include one or more random access memory (RAM) modules, flash memory modules, hard disks, solid-state disks, persistent memory devices, and/or optical disks. Program code510comprises computer executable instructions and computer executable components including any instructions necessary to perform operations described herein. Data area520holds any data necessary to perform operations described herein. Memory504also includes other logic and storage530that performs or facilitates other functions disclosed herein or otherwise required of computing device500. An input/output (I/O) component540facilitates receiving input from users and other devices and generating displays for users and outputs for other devices. A network interface550permits communication over a network560with a remote node570, which may represent another implementation of computing device500. For example, a remote node570may represent another of the above-noted nodes within architecture100.

Additional Examples

An example method of providing a data traffic session over a wireless network comprises: receiving, at a first node, over a wireless network, a request from a client device for a data traffic session passing through an IMS, the client device connected to the wireless network via an air interface; determining, by the first node, a priority of the client device for receiving enhanced services for the data traffic session, the enhanced services requiring a higher bandwidth than non-enhanced services; based on at least the priority of the client device and loading of the wireless network, determining whether the enhanced services are to be allocated for the data traffic session; and based on at least determining that the enhanced services are not to be allocated for the data traffic session, instructing the client device to use non-enhanced services for the data traffic session.

An example system for providing a data traffic session over a wireless network comprises: a processor; and a computer-readable medium storing instructions that are operative upon execution by the processor to: receive, at a first node, over a wireless network, a request from a client device for a data traffic session passing through an IMS, the client device connected to the wireless network via an air interface; determine, by the first node, a priority of the client device for receiving enhanced services for the data traffic session, the enhanced services requiring a higher bandwidth than non-enhanced services; based on at least the priority of the client device and loading of the wireless network, determine whether the enhanced services are to be allocated for the data traffic session; and based on at least determining that the enhanced services are not to be allocated for the data traffic session, instruct the client device to use non-enhanced services for the data traffic session.

One or more example computer storage devices has computer-executable instructions stored thereon, which, upon execution by a computer, cause the computer to perform operations comprising: receiving, at a first node, over a wireless network, a request from a client device for a data traffic session passing through an IMS, the client device connected to the wireless network via an air interface; determining, by the first node, a priority of the client device for receiving enhanced services for the data traffic session, the enhanced services requiring a higher bandwidth than non-enhanced services; based on at least the priority of the client device and loading of the wireless network, determining whether the enhanced services are to be allocated for the data traffic session; and based on at least determining that the enhanced services are not to be allocated for the data traffic session, instructing the client device to use non-enhanced services for the data traffic session.

Alternatively, or in addition to the other examples described herein, examples include any combination of the following:the enhanced services comprise a service type selected from the list consisting of EVS, enhanced video services and enhanced M2M communication services;based on at least determining that the enhanced services are to be allocated for the data traffic session, providing the enhanced services for the data traffic session;determining the priority of the client device comprises determining whether the air interface comprises a 5G cellular interface or a 4G cellular interface or a WiFi interface;determining the priority of the client device comprises determining a service priority based on a customer profile associated with the client device;determining whether the enhanced services are to be allocated comprises, selecting an allocation threshold;determining whether the enhanced services are to be allocated further comprises determining to not allocate the enhanced services, if the loading of the wireless network is below the selected allocation threshold, or determining to allocate the enhanced services, if the loading of the wireless network meets the selected allocation threshold;determining the priority of the client device comprises determining a geographical location of the client device;determining whether the enhanced services are to be allocated comprises determining whether the data traffic session requires transcoding;the first node is located within the IMS; the first node is located within an S-CSCF; the wireless network comprises a 5G cellular network;the wireless network comprises a 4G cellular network;the client device comprises a UE; the client device comprises an IoT device;the request for the data traffic session comprises a SIP request;the data traffic session comprises a voice call;the data traffic session comprises a video call;the data traffic session comprises a two-party call;the data traffic session comprises a multi-party call involving three or more client devices;the data traffic session comprises a call between two cellular devices;the data traffic session comprises a call between a cellular device and a PSTN device;the data traffic session comprises streaming video;the data traffic session comprises M2M communication;the data traffic session requires transcoding;the first node retrieves information associated with the customer profile from a PCRF or PCF;the loading of the wireless network comprises current loading and expected future loading; andthe first node determines whether the enhanced services are to be allocated for the data traffic session.

The order of execution or performance of the operations in examples of the disclosure illustrated and described herein is not essential, unless otherwise specified. That is, the operations may be performed in any order, unless otherwise specified, and examples of the disclosure may include additional or fewer operations than those disclosed herein. For example, it is contemplated that executing or performing a particular operation before, contemporaneously with, or after another operation is within the scope of aspects of the disclosure. It will be understood that the benefits and advantages described above may relate to one embodiment or may relate to several embodiments. When introducing elements of aspects of the disclosure or the examples thereof, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements. The term “exemplary” is intended to mean “an example of.”