A user equipment (UE) provides for display, to a user, information identifying available over-the-top (OTT) services provided via voice-over-Long-Term Evolution (VoLTE), and receives, from the user, a selection of a particular OTT service of the available OTT services. The UE receives, from the user, information identifying a selected contact associated with the particular OTT service, and determines whether a particular UE associated with the selected contact is a VoLTE capable device or a non-VoLTE capable device. The UE provides a call to the particular UE, via a LTE network and an Internet protocol (IP) Multimedia Subsystem (IMS) network, when the particular UE is a VoLTE capable device.

BACKGROUND

Over-the-top (OTT) content includes the on-line delivery of video and audio (e.g., voice) without an Internet service provider involved in the control or distribution of the content. The Internet service provider may be aware of the content of Internet protocol (IP) packets associated with the OTT content, but may not responsible for, nor able to control, viewing abilities, copyrights, and/or other redistribution of the OTT content. This is in contrast to delivery based on purchase or rental of video or audio content (over IP) from the Internet service provider, such as video on demand (VoD) over IP. One type of OTT content is OTT video/voice calling provided by services, such as Skype, Google Voice, FaceTime, Tango, etc. Such services enable users (e.g., via user equipment (UEs)) to communicate with other users by voice, video, videoconferencing, instant messaging, and file transferring over the Internet.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

OTT video/voice calling services may not perform well over wireless networks due to inefficient use of network resources provided in the wireless networks. For example, such services may experience poor quality of service (QoS), dropped calls, etc. due to the inefficient use of wireless network resources. However, wireless network data rates have vastly improved using fourth generation (4G) technologies, such as Long-Term Evolution (LTE). Voice-over-LTE (VoLTE) is a service provided by a LTE network and is based on the IP Multimedia Subsystem (IMS) network. VoLTE provides specific profiles for control and media planes of a video/voice service on the LTE network. VoLTE delivers the video/voice service (e.g., the control and media planes) as data flows within a LTE data bearer.

Systems and/or methods described herein may enable a UE to provide a variety of OTT video/voice calling services via a VoLTE client residing on the UE. The VoLTE client may ensure that an OTT video/voice call is routed using VoLTE network resources provided by a LTE network and an IMS network. The VoLTE network resources may utilize significantly less resources to route the OTT video/voice call than is typically used to route such calls. The VoLTE client may utilize less data (e.g., bits) and may provide improved QoS for the OTT video/voice call than is typically used for OTT video/voice calls.

FIG. 1is a diagram of an overview of an example implementation described herein. As shown, three UEs may be connected to one or more of a LTE network, an IMS network, a gateway, and an access network.

Each of the UEs may include a radiotelephone, a personal communications system (PCS) terminal, a smart phone, a personal digital assistant (PDA), or other types of mobile communication devices. The LTE network may include a communications network that connects a user (e.g., the first UE) to a service provider or other users (e.g., the second and third UEs). The IMS network may include an architectural framework or network (e.g., a telecommunications network) for delivering IP multimedia services. The gateway may include one or more network devices that transfer traffic and perform control plane mapping and/or transcoding on the traffic. The gateway may be connected to the IMS network. The access network may include a radio access network operating under wireless protocols other than LTE standards.

As further shown inFIG. 1, a first UE (UE1) may be associated with a first user (USER1), and may include a VoLTE client and an OTT client. The VoLTE client may receive information associated with capabilities of a second UE (UE2) and a third UE (UE3). The capabilities information may include status information associated with a second user (USER2) and a third user (USER3) (e.g., whether or not the second user and/or the third user are logged into the service provided by the OTT client); information indicating whether or not the second UE and/or the third UE are VoLTE capable (e.g., include the VoLTE client); etc. The VoLTE client may store the capabilities information in the first UE.

The VoLTE client may cause the first UE to display, to the first user and via a user interface (UI), OTT video/voice services available via VoLTE. The VoLTE client may receive, from the first user, selection of a particular one of the OTT video/voice services available via VoLTE. For example, the first user may select the OTT client as the particular OTT video/voice service. The OTT client may cause the first UE to display a list of contacts associated with the OTT client and the first user. The OTT client may receive, from the first user, a selection of a contact from the list of contacts. In one example, the first user may select the second user from the list of contacts. The VoLTE client may retrieve the capabilities information, and may determine network capabilities of the second UE, associated with the selected second user, based on the capabilities information.

Since the second UE includes a VoLTE client, the VoLTE client of the first UE may determine that the second UE is a VoLTE capable device. If the first user wishes to generate an OTT video and/or voice call with the second user, the VoLTE client may cause the first UE to provide a non-transcoded video/voice call to the second UE via the LTE network and the IMS network. In one example, the non-transcoded video/voice call may include a particular video/voice codec that may be received and understood by the VoLTE client of the second UE. The LTE network and the IMS network may utilize significantly less network resources to route the video/voice call than is typically used to route such calls. The VoLTE client may utilize less data (e.g., bits) and may provide improved QoS for the video/voice call. Once the video/voice call is established between the first UE and the second UE, the OTT client may cause the first UE to display a live (e.g., in real time) video (e.g., via the user interface) of the second user, and to provide a live voice of the second user to the first user. Similarly, the OTT client may cause the second UE to display a live video of the first user (e.g., via a user interface), and to provide a live voice of the first user to the second user.

Alternatively, or additionally, the first user may select the third user from the list of contacts. The VoLTE client may determine network capabilities of the third UE, associated with the selected third user, based on the capabilities information. Since the third UE does not include a VoLTE client, the VoLTE client of the first UE may determine that the third UE is a non-VoLTE capable device. If the first user wishes to generate an OTT video/voice call with the third user, the VoLTE client may cause the first UE to provide a non-transcoded video/voice call to the third UE via the LTE network, the gateway, and the access network. The gateway may receive the non-transcoded video/voice call, and may generate a transcoded video/voice call that may be understood by the OTT client of the third UE. Once the video/voice call is established between the first UE and the third UE, the OTT client may cause the first UE to display a live video (e.g., via the user interface) of the third user, and to provide a live voice of the third user to the first user. Similarly, the OTT client may cause the third UE to display a live video of the first user (e.g., via a user interface), and to provide a live voice of the first user to the third user.

As used herein, the term “user” is intended to be broadly interpreted to include a UE, or a user of a UE.

The term “component,” as used herein, is intended to be broadly construed to include hardware (e.g., a processor, a microprocessor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a chip, a memory device (e.g., a read only memory (ROM), a random access memory (RAM), etc.), etc.) or a combination of hardware and software (e.g., a processor, microprocessor, ASIC, etc. executing software contained in a memory device).

FIG. 2is a diagram of an example environment200in which systems and/or methods described herein may be implemented. As illustrated, environment200may include UEs210-1,210-2, and210-3(collectively referred to herein as UEs210, and, in some instances, singularly as UE210), a LTE network220, an IMS network230, a gateway240, and an access network250. Devices of environment200may connect via wired and/or wireless connections or links. Three UEs210, a single LTE network220, a single IMS network230, a single gateway240, and a single access network250have been illustrated inFIG. 2for simplicity. In practice, there may be more UEs210, LTE networks220, IMS networks230, gateways240, and/or access networks250.

UE210may include a radiotelephone, a PCS terminal (e.g., that may combine a cellular radiotelephone with data processing and data communications capabilities), a smart phone, a PDA (e.g., that can include a radiotelephone, a pager, Internet/intranet access, etc.), a laptop computer (e.g., with a wireless air card), a tablet computer, a machine-to-machine (M2M) device, or other types of mobile computation and communication devices. Alternatively, or additionally, UE210may include a fixed computation and communication device, such as a personal computer, a set top box (STB), a gaming system, etc. In an example implementation, UE210may include a device that is capable of communicating with other UEs, LTE network220, IMS network230, gateway240, and/or access network250.

LTE network220may include a communications network that connects subscribers (e.g., UE210) to other UEs. In one example, LTE network220may include a WiFi network or other access networks (e.g., an evolved universal terrestrial radio access network (E-UTRAN) or an enhanced high-rate packet data (eHRPD) network). Alternatively, or additionally, LTE network220may include a radio access network capable of supporting high data rate, low latency, packet optimization, large capacity and coverage, etc. LTE network220may include one or more network resources (e.g., eNodeBs) that transmit and/or receive traffic to and/or from UEs210.

IMS network230may include an architectural framework or network (e.g., a telecommunications network) for delivering IP multimedia services. In one example, IMS network230may include one or more network resources, such as, for example, a home subscriber server (HSS). The HSS may include a master user database that supports devices of IMS network230that handle calls. The HSS may contain subscription-related information (e.g., user profiles), may perform authentication and authorization of a user, and may provide information about a user's location and IP information.

Gateway240may include one or more computation and communication devices that gather, process, and/or provide information in a manner described herein. For example, gateway240may include one or more server devices, network devices (e.g., gateways, routers, switches, firewalls, network interface cards (NICs), hubs, bridges, optical add-drop multiplexers (OADMs), etc.), etc. In an example implementation, gateway240may receive non-transcoded content (e.g., video, audio, etc.) from UE210, via LTE network220. Gateway240may perform control plane mapping and transcoding on the content to produce control plane mapped and transcoded content in a format that may be processed by another UE210associated with access network250. Gateway240may provide the control plane mapped/transcoded content to the other UE210, via access network250. Gateway240may connect to IMS network230so that when an OTT application is used to connect to or from access network250, gateway240may provide transcoding functionality. For example, gateway240may provide mapping for non-IMS call signaling to IMS call signaling.

Access network250may include a radio access network operating under wireless protocols other than LTE standards. For example, access network250may include an access network conforming to other network protocols, such as, for example, Global System for Mobile Communications (GSM), wideband code division multiple access (WCDMA), Ultra Mobile Broadband (UMB), Universal Mobile Telecommunications System (UMTS), Code Division Multiple Access 2000 (CDMA2000), High-Speed Packet Access (HSPA), Worldwide Interoperability for Microwave Access (WiMax), etc.

AlthoughFIG. 2shows example devices of environment200, in other implementations, environment200may include fewer devices, different devices, differently arranged devices, or additional devices than depicted inFIG. 2. Alternatively, or additionally, one or more devices of environment200may perform one or more tasks described as being performed by one or more other devices of environment200.

FIG. 3is a diagram of example external components of UE210(FIG. 2). As shown, UE210may include a housing300, a display310, a speaker320, and/or a microphone330.

Housing300may protect the components of UE210from outside elements. Housing300may include a structure configured to hold devices and components used in UE210, and may be formed from a variety of materials. For example, housing300may be formed from plastic, metal, a composite, etc., and may be configured to support display310, speaker320, and/or microphone330.

Speaker320may provide audible information to a user of UE210. Speaker320may be located in an upper portion of UE210, and may function as an ear piece when a user is engaged in a communication session using UE210. Speaker320may also function as an output device for music and/or audio information associated with games and/or video images played on UE210.

Microphone330may receive audible information from the user. Microphone330may include a device that converts speech or other acoustic signals into electrical signals for use by UE210. Microphone330may be located proximate to a lower side of UE210.

FIG. 4is an example diagram of internal components of UE210(FIG. 2). As illustrated, UE210may include a processor400, memory410, a user interface420, a communication interface430, and/or an antenna assembly440.

Processor400may include one or more processors or microprocessors that interpret and execute instructions. Alternatively, or additionally, processor400may be implemented as or include one or more ASICs, FPGAs, or the like.

Memory410may include a RAM or another type of dynamic storage device that stores information and instructions for execution by processor400, a ROM or another type of static storage device that stores static information and instructions for processor400, and/or some other type of magnetic or optical recording medium and its corresponding drive for storing information and/or instructions.

User interface420may include mechanisms for inputting information to UE210and/or for outputting information from UE210. Examples of input and output mechanisms might include buttons (e.g., control buttons, keys of a keypad, a joystick, etc.) or a touch screen interface (e.g., display310) to permit data and control commands to be input into UE210; a speaker (e.g., speaker320) to receive electrical signals and output audio signals; a microphone (e.g., microphone330) to receive audio signals and output electrical signals; a display (e.g., display310) to output visual information (e.g., text input into UE210); a vibrator to cause UE210to vibrate; etc.

Communication interface430may include, for example, a transmitter that may convert baseband signals from processor400to radio frequency (RF) signals and/or a receiver that may convert RF signals to baseband signals. Alternatively, communication interface430may include a transceiver to perform functions of both a transmitter and a receiver. Communication interface430may connect to antenna assembly440for transmission and/or reception of the RF signals.

Antenna assembly440may include one or more antennas to transmit and/or receive RF signals over the air. Antenna assembly440may, for example, receive RF signals from communication interface430and transmit them over the air, and receive RF signals over the air and provide them to communication interface430. In one implementation, for example, communication interface430may communicate with a network and/or devices connected to a network.

As described herein, UE210may perform certain operations in response to processor400executing software instructions contained in a computer-readable medium, such as memory410. A computer-readable medium may be defined as a non-transitory memory device. A memory device may include space within a single physical memory device or spread across multiple physical memory devices. The software instructions may be read into memory410from another computer-readable medium, or from another device via communication interface430. The software instructions contained in memory410may cause processor400to perform processes described herein. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.

AlthoughFIGS. 3 and 4show example components of UE210, in other implementations, UE210may include fewer components, different components, differently arranged components, or additional components than depicted inFIGS. 3and/or4. Alternatively, or additionally, one or more components of UE210may perform one or more other tasks described as being performed by one or more other components of UE210.

FIG. 5is a diagram of example components of a device500that may correspond to gateway240(FIG. 2). In one example implementation, gateway240may include one or more devices500or one or more components of device500. As illustrated, device500may include input components510, a switching/routing mechanism520, output components530, and a control unit540.

Input components510may be a point of attachment for physical links and may be a point of entry for incoming traffic, such as packets. Input components510may process incoming traffic, such as by performing data link layer encapsulation or decapsulation. In an example implementation, input components510may send and/or receive packets.

Switching/routing mechanism520may connect input components510with output components530. Switching/routing mechanism520may be implemented using many different techniques. For example, switching/routing mechanism520may be implemented via busses, via crossbars, and/or with shared memories. The shared memories may act as temporary buffers to store traffic from input components510before the traffic is eventually scheduled for delivery to output components530.

Output components530may store packets and may schedule packets for service on output physical links. Output components530may include scheduling algorithms that support priorities and guarantees. Output components530may support data link layer encapsulation and decapsulation, and/or a variety of higher-level protocols. In an example implementation, output components530may send packets and/or receive packets.

Control unit540may use routing protocols and one or more forwarding tables for forwarding packets. Control unit540may connect with input components510, switching/routing mechanism520, and output components530. Control unit540may compute a forwarding table, implement routing protocols, and/or execute software to configure and manage device500. Control unit540may determine routing for any packet whose destination address may not be found in the forwarding table.

In an example implementation, control unit540may include a bus550that may include a path that permits communication among a processor560, a memory570, and a communication interface580. Processor560may include one or more processors, microprocessors, ASICs, FPGAs, or other types of processing units that may interpret and execute instructions. Memory570may include a RAM, a ROM device, a magnetic and/or optical recording medium and its corresponding drive, and/or another type of static and/or dynamic storage device that may store information and instructions for execution by processor560. Memory570may also temporarily store incoming traffic (e.g., a header of a packet or an entire packet) from input components510, for processing by processor560, before a packet is directed back to switching/routing mechanism520, transported by switching/routing mechanism520, and eventually scheduled to be sent to output components530. Communication interface580may include any transceiver-like mechanism that enables control unit540to communicate with other devices and/or systems.

As described herein, device500may perform certain operations in response to processor560executing software instructions contained in a computer-readable medium, such as memory570. The software instructions may be read into memory570from another computer-readable medium, such as a data storage device, or from another device via communication interface580. The software instructions contained in memory570may cause processor560to perform processes described herein. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.

AlthoughFIG. 5shows example components of device500, in other implementations, device500may include fewer components, different components, differently arranged components, or additional components than depicted inFIG. 5. Alternatively, or additionally, one or more components of device500may perform one or more other tasks described as being performed by one or more other components of device500.

FIG. 6is a diagram of example operations capable of being performed by an example portion600of environment200(FIG. 2). As shown inFIG. 6, environment portion600may include UEs210-1,210-2, and210-3, LTE network220, IMS network230, gateway240, and access network250. UEs210, LTE network220, IMS network230, gateway240, and access network250may include the features described above in connection with one or more of, for example,FIGS. 1-5.

As further shown inFIG. 6, UE210-1may be associated with a first user (USER1), and may include a VoLTE client610and an OTT client620. VoLTE client610may include a mechanism that enables UE210-1to offer one or more OTT video/voice services (e.g., OTT clients620) via LTE-based network resources (e.g., resources associated with LTE network220, IMS network230, etc.). OTT client620may enable UE210-1to perform one or more OTT video/voice services, such as Skype, Google Voice, FaceTime, Tango, etc. OTT client620may enable users (e.g., via UEs210) to communicate with other users by voice, video, videoconferencing, instant messaging, and file transferring over the Internet.

VoLTE client610may receive information630associated with capabilities of UE210-2and UE210-3. In one example, VoLTE client610may receive capabilities information630from a presence server. Capabilities information630may include status information associated with a second user (USER2) and a third user (USER3) (e.g., whether or not the second user and/or the third user are logged into the service provided by OTT client620); information indicating whether or not UE210-2and/or UE210-3are VoLTE capable (e.g., include VoLTE client610); etc. VoLTE client610may store capabilities information630in a memory device associated with UE210-1.

VoLTE client610may cause UE210-1to display, to the first user and via a user interface (UI)650, OTT video/voice services available via VoLTE. VoLTE client610may receive, from the first user, selection of a particular one of the OTT video/voice services available via VoLTE. For example, the first user may select OTT client620as the particular OTT video/voice service. OTT client620may cause UE210-1to display a list of contacts associated with OTT client620and with the first user. OTT client620may receive, from the first user, a selection of a contact from the list of contacts. In one example, the first user may select the second user from the list of contacts. VoLTE client610may retrieve capabilities information630(e.g., from the memory associated with UE210-1), and may determine network capabilities of UE210-2, associated with the selected second user, based on capabilities information630.

Since UE210-2includes VoLTE client610, VoLTE client610of UE210-1may determine that UE210-2is a VoLTE capable device. If the first user wishes to generate an OTT video and/or voice call with the second user, VoLTE client610may cause UE210-1to provide a non-transcoded video/voice call640to UE210-2via LTE network220and IMS network230. In one example, non-transcoded video/voice call640may include a particular video/voice codec that may be received and processed by VoLTE client610of UE210-2. LTE network220and IMS network230may utilize significantly less network resources to route non-transcoded video/voice call640than is typically used to route such calls. VoLTE clients620of UE210-1and UE210-2may utilize less data (e.g., bits) and may provide improved QoS for non-transcoded video/voice call640than is typically utilized and provided for such calls. Once non-transcoded video/voice call640is established between UE210-1and UE210-2, OTT client620may cause UE210-1to display a live video (e.g., via user interface650) of the second user, and to provide a live voice of the second user to the first user. Similarly, OTT client620may cause UE210-2to display a live video of the first user (e.g., via a user interface660), and to provide a live voice of the first user to the second user.

Alternatively, or additionally, the first user may select the third user from the list of contacts. VoLTE client610of UE210-1may determine network capabilities of UE210-3, associated with the selected third user, based on capabilities information630. Since UE210-3does not include VoLTE client610, VoLTE client610of UE210-1may determine that UE210-3is a non-VoLTE capable device. If the first user wishes to generate an OTT video/voice call with the third user, VoLTE client610may cause UE210-1to provide a non-transcoded video/voice call670to UE210-3via LTE network220, gateway240, and access network250. Gateway240may receive non-transcoded video/voice call670, and may generate a transcoded video/voice call680that may be processed by OTT client620of UE210-3. Once the video/voice call is established between UE210-1and UE210-3, OTT client620may cause UE210-1to display a live video (e.g., via user interface650) of the third user, and to provide a live voice of the third user to the first user. Similarly, OTT client620may cause UE210-3to display a live video of the first user (e.g., via a user interface690), and to provide a live voice of the first user to the third user.

AlthoughFIG. 6shows example components of environment portion600, in other implementations, environment portion600may include fewer components, different components, differently arranged components, or additional components than depicted inFIG. 6. Alternatively, or additionally, one or more components of environment portion600may perform one or more other tasks described as being performed by one or more other components of environment portion600.

FIGS. 7A-7Dare diagrams of an example user interface700that may be generated or provided by UE210. User interface700may include a graphical user interface (GUI) or a non-graphical user interface, such as a text-based interface. User interface700may provide information to users via a customized interface (e.g., a proprietary interface) and/or other types of interfaces (e.g., a browser-based interface, etc.). User interface700may receive user inputs via one or more input devices (e.g., display310,FIG. 3), may be user-configurable (e.g., a user may change the size of user interface700, information displayed in user interface700, color schemes used by user interface700, positions of text, images, icons, windows, etc., in user interface700, etc.), and/or may not be user-configurable. Information associated with user interface700may be selected and/or manipulated by a user of UE210(e.g., via a touch screen display, a mouse, a keyboard, a keypad, voice commands, etc.).

As shown inFIG. 7A, user interface700may enable the user of UE210to select an OTT service from a list710of OTT services. The OTT services provided in list710may include one or more OTT video/voice services, such as Skype, Google Voice, FaceTime, Tango, and/or other services that enable users (e.g., via UEs210) to communicate with other users by voice, video, videoconferencing, instant messaging, and/or file transferring over the Internet. For example, as shown inFIG. 7A, list710may include OTT Service1, OTT Service2, OTT Service3, etc. In this example, the user may select OTT Service1, as indicated by reference number720, from list710of OTT services.

Selection of OTT Service1by the user may cause UE210to display user interface700ofFIG. 7B. As shown inFIG. 7B, user interface700may enable the user of UE210to select a contact from a list730of contacts. The contacts provided in list730may include contacts that the user has associated with OTT Service1. List730of contacts may provide a name of each contact, status information associated with each contact (e.g., available, unavailable, online, offline, etc.), and/or other information associated with each contact (e.g., a telephone number, a picture, etc.). For example, as shown inFIG. 7B, list730of contacts may include Joe Smith, Bob Jones, Ed Murray, etc. In this example, the user may select Joe Smith, as indicated by reference number740, from list730of contacts.

Selection of Joe Smith by the user may cause UE210to display user interface700ofFIG. 7C. As shown inFIG. 7C, user interface700may enable the user of UE210to select an OTT operation from a list750of OTT operations. The OTT operations provided in list750may include operations that OTT Service1may enable the user to perform. List750of OTT operations may include information describing the operations that may be provided by OTT Service1. For example, as shown inFIG. 7C, list750of OTT operations may include a voice call option, a video call option, a send Instant Message (IM) option, a send file option, etc. In this example, the user may select the video call option, as indicated by reference number760, from list750of OTT operations.

Selection of the video call option by the user may cause UE210to establish a video call with Joe Smith's UE. As described above, UE210may determine network capabilities of Joe Smith's UE based on capabilities information630(FIG. 6). For example, UE210may determine that Joe Smith's UE is a VoLTE capable device or a non-VoLTE capable device. UE210may provide the video call to Joe Smith's UE in a manner that is based on whether Joe Smith's UE is a VoLTE capable device or a non-VoLTE capable device. Once the video call is established between UE210and Joe Smith's UE, UE210may display a live video of Joe Smith, and may provide a live voice of Joe Smith to the user, as indicated by reference number770in user interface700ofFIG. 7D.

Although user interface700depicts a variety of information, in other implementations, user interface700may depict less information, different information, differently arranged information, and/or additional information than depicted inFIGS. 7A-7D. In one example implementation, microphone330(FIG. 3) may be utilized by the user of UE210to provide voice commands to UE210. The voice commands may be used in place of and/or in addition to the user inputs described above in connection withFIGS. 7A-7D.

FIG. 8is a diagram of example functional components of UE210. In one implementation, the functions described in connection withFIG. 8may be performed by one or more components of UE210depicted inFIG. 3. As shown inFIG. 8, UE210may include an input/output component800, a capabilities retriever805, a network capabilities determiner810, and a call generator815.

Input/output component800may display, to a user, information identifying OTT video/voice services available via VoLTE, as indicated by reference number820, and may receive, from the user, information identifying a selected OTT video/voice service825. Input/output component800may display, to the user, information identifying contacts830associated with selected OTT video/voice service825, and may receive, from the user, information identifying a selected contact835from the displayed contacts830. Input/output component800may provide the information identifying selected contact835to capabilities retriever805.

Capabilities retriever805may receive the information identifying selected contact835, and may retrieve capabilities information630(e.g., from the memory associated with UE210-1). Capabilities retriever805may determine capabilities840of a UE associated with selected contact835based on capabilities information630, and may provide capabilities840to network capabilities determiner810. Capabilities840may include device information (e.g., OTT services enabled in the UE, hardware provided in the UE, etc.) associated the UE of selected contact835, network capabilities associated with the UE of selected contact835, etc.

Network capabilities determiner810may receive capabilities840, and may determine network capabilities associated with the UE of selected contact835, based on capabilities840. For example, network capabilities determiner810may determine that the UE of selected contact835is a VoLTE capable device, as indicated by reference number845. Alternatively, network capabilities determiner810may determine that the UE of selected contact835is a non-VoLTE capable device, as indicated by reference number850. Network capabilities determiner810may provide VoLTE capable device indication845or non-VoLTE capable device indication850to call generator815.

If call generator815receives VoLTE capable device indication845and the user wishes to generate an OTT video/voice call with the UE of selected contact835, call generator815may provide a VoLTE call, to the UE of selected contact835, via LTE network220and IMS network230, as indicated by reference number855. Alternatively, if call generator815receives non-VoLTE capable device indication850and the user wishes to generate an OTT video/voice call with the UE of selected contact835, call generator815may provide a non-VoLTE call, to the UE of selected contact835, via LTE network220, gateway240, and access network230, as indicated by reference number860.

AlthoughFIG. 8shows example functional components of UE210, in other implementations, UE210may include fewer functional components, different functional components, differently arranged functional components, or additional functional components than depicted inFIG. 8. Additionally, or alternatively, one or more functional components of UE210may perform one or more other tasks described as being performed by one or more other functional components of UE210.

FIG. 9is a diagram of example functional components of gateway240. In one implementation, the functions described in connection withFIG. 9may be performed by one or more components of device500(FIG. 5) or by one or more devices500. As shown inFIG. 9, gateway240may include a control plane mapper900and a video/voice codec transcoder910.

Control plane mapper900may receive non-transcoded video/voice call670(FIG. 6), and may perform control plane mapping on non-transcoded video/voice call670to produce a control plane mapped call920. In one implementation, control plane mapper900may create a network mapping or routing (e.g., via a routing table) that defines what to do with packets associated with non-transcoded video/voice call670. The routing table may include a list of destination addresses and outgoing interface(s) associated with the destination addresses. For example, control plane mapper900may define a network routing that alters non-transcoded video/voice call670(e.g., to create control plane mapped call920) so that the call is routed to UE210-3via access network250(not shown inFIG. 9). Control plane mapper900may provide control plane mapped call920to video/voice codec transcoder910.

Video/voice codec transcoder910may receive control plane mapped call920, and may transcode call920to produce transcoded/control plane mapped call680. In one implementation, video/voice codec transcoder910may transcode call920with a codec (e.g., a computer program capable of encoding or decoding a digital data stream or signal) that may be interpreted and/or processed by UE210-3. As further shown inFIG. 9, video/voice codec transcoder910may provide transcoded/control plane mapped call680to UE210-3via access network250.

AlthoughFIG. 9shows example functional components of gateway240, in other implementations, gateway240may include fewer functional components, different functional components, differently arranged functional components, or additional functional components than depicted inFIG. 9. Additionally, or alternatively, one or more functional components of gateway240may perform one or more other tasks described as being performed by one or more other functional components of gateway240.

FIG. 10is a flow chart of an example process1000for configuring OTT video/voice content. In one implementation, process1000may be performed by UE210. Alternatively, or additionally, some or all of process1000may be performed by another device or group of devices, including or excluding UE210.

As shown inFIG. 10, process1000may include providing for display, to a user, OTT video/voice services available via VoLTE (block1010), and receiving, from the user, a selection of a particular OTT video/voice service (block1020). For example, in an implementation described above in connection withFIG. 6, UE210-1may be associated with a first user (USER1), and may include VoLTE client610and OTT client620. VoLTE client610may include a mechanism that enables UE210-1to offer one or more OTT video/voice services (e.g., OTT clients620) via LTE-based network resources (e.g., resources associated with LTE network220, IMS network230, etc.). OTT client620may enable UE210-1to perform one or more OTT video/voice services. VoLTE client610may cause UE210-1to display, to the first user and via user interface650, OTT video/voice services available via VoLTE. VoLTE client610may receive, from the first user, selection of a particular one of the OTT video/voice services available via VoLTE.

As further shown inFIG. 10, process1000may include receiving, from the user, a selection of a contact associated with the particular OTT video/voice service (block1030), and retrieving information associated with capabilities of UEs (block1040). For example, in an implementation described above in connection withFIG. 6, OTT client620may cause UE210-1to display a list of contacts associated with OTT client620and with the first user. OTT client620may receive, from the first user, a selection of a contact from the list of contacts. VoLTE client610may retrieve capabilities information630(e.g., from the memory associated with UE210-1).

Returning toFIG. 10, process1000may include determining network capabilities of a UE associated with the selected contact based on the retrieved information (block1050). For example, in an implementation described above in connection withFIG. 6, VoLTE client610may determine network capabilities of UE210-2, associated with the selected second user, based on capabilities information630. In one example, VoLTE client610may determine whether UE210-2is a VoLTE capable device or a non-VoLTE capable device.

As further shown inFIG. 10, if the UE associated with the selected contact is a VoLTE capable device (block1050—VoLTE CAPABLE), process1000may include providing a call to the UE of the selected contact via a LTE network and an IMS network (block1060). For example, in an implementation described above in connection withFIG. 6, since UE210-2includes VoLTE client610, VoLTE client610of UE210-1may determine that UE210-2is a VoLTE capable device. If the first user wishes to generate an OTT video and/or voice call with the second user, VoLTE client610may cause UE210-1to provide non-transcoded video/voice call640to UE210-2via LTE network220and IMS network230.

Returning toFIG. 10, if the UE associated with the selected contact is a non-VoLTE capable device (block1050—NOT VoLTE CAPABLE), process1000may include providing the call to the UE of the selected contact via the LTE network, a gateway, and an access network (block1070). For example, in an implementation described above in connection withFIG. 6, since UE210-3does not include VoLTE client610, VoLTE client610of UE210-1may determine that UE210-3is a non-VoLTE capable device. If the first user wishes to generate an OTT video/voice call with the third user, VoLTE client610may cause UE210-1to provide non-transcoded video/voice call670to UE210-3via LTE network220, gateway240, and access network250. Gateway240may receive non-transcoded video/voice call670, and may generate a transcoded video/voice call680that may be processed by OTT client620of UE210-3.

FIG. 11is a flow chart of another example process1100for configuring OTT video/voice content. In one implementation, process1100may be performed by gateway240. Alternatively, or additionally, some or all of process1100may be performed by another device or group of devices, including or excluding gateway240.

As shown inFIG. 11, process1100may include receiving a non-transcoded OTT video/voice call from a VoLTE enabled UE to a non-VoLTE enabled UE (block1110), and performing control plane mapping on the non-transcoded OTT video/voice call (block1120). For example, in an implementation described above in connection withFIG. 9, control plane mapper900of gateway240may receive non-transcoded video/voice call670, and may perform control plane mapping on non-transcoded video/voice call670to produce control plane mapped call920. Control plane mapper900may provide control plane mapped call920to video/voice codec transcoder910.

As further shown inFIG. 11, process1100may include performing transcoding on the control plane mapped call (block1130), and providing the transcoded and control plane mapped call to the non-VoLTE enabled UE (block1140). For example, in an implementation described above in connection withFIG. 9, video/voice codec transcoder910of gateway240may receive control plane mapped call920, and may transcode call920to produce transcoded/control plane mapped call680. Video/voice codec transcoder910may provide transcoded/control plane mapped call680to UE210-3via access network250.

Systems and/or methods described herein may enable a UE to provide a variety of OTT video/voice calling services via a VoLTE client residing on the UE. The VoLTE client may ensure that an OTT video/voice call is routed using VoLTE network resources provided by a LTE network and an IMS network. The VoLTE network resources may utilize significantly less resources to route the OTT video/voice call than is typically used to route such calls. The VoLTE client may utilize less data (e.g., bits) and may provide improved QoS for the OTT video/voice call than is typically used for OTT video/voice calls.

For example, while series of blocks have been described with regard toFIGS. 10 and 11, the order of the blocks may be modified in other implementations. Further, non-dependent blocks may be performed in parallel.

No element, act, or instruction used in the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the articles “a” and “an” are intended to include one or more items and may be used interchangeably with “one or more.” Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.