Providing communication services using a set of I/O user devices

文档序号:1926843 发布日期:2021-12-03 浏览:13次 中文

阅读说明:本技术 使用i/o用户装置的集合提供通信服务 (Providing communication services using a set of I/O user devices ) 是由 T·安格伦 H·汉努 P·奥奎斯特 S·万斯泰特 于 2019-05-03 设计创作,主要内容包括:用户终端仿真服务器(100)维护标识I/O用户装置(130a、130b)的网络地址、UI能力和通信协议的数据库。在用户终端仿真应用和网络实体以及近似位于用户处并提供组合的I/O用户接口的I/O用户装置之间建立通信会话。在应用和I/O用户装置之间确定延迟分布。来自网络实体的下行链路流(940)被拆分成指配给I/O用户装置的多个下行链路流分量(942a、942b)。对于下行链路流分量中的每个,服务器格式化该分量以便传输到指配的I/O用户装置,发起格式化的下行链路流分量到指配的I/O用户装置的传输,并且基于与指配的I/O用户装置关联的延迟分布来控制何时将格式化的下行链路流分量传送到指配的I/O用户装置的定时。(The user terminal emulation server (100) maintains a database identifying network addresses, UI capabilities, and communication protocols of the I/O user devices (130 a, 130 b). A communication session is established between a user terminal emulation application and a network entity and an I/O user device proximately located at a user and providing a combined I/O user interface. A delay profile is determined between the application and the I/O user device. A downlink flow (940) from a network entity is split into a plurality of downlink flow components (942 a, 942 b) assigned to I/O user devices. For each of the downlink stream components, the server formats the component for transmission to the assigned I/O user device, initiates transmission of the formatted downlink stream component to the assigned I/O user device, and controls timing of when to transmit the formatted downlink stream component to the assigned I/O user device based on a delay profile associated with the assigned I/O user device.)

1. A user terminal emulation server (100) for providing communication services using a set of input and/or output, I/O, user devices (130), the user terminal emulation server (100) performing operations comprising:

maintaining (1100) a database identifying a network address of an I/O user device, user interface, UI, capabilities of the I/O user device, and a communication protocol of the I/O user device based on content of a received registration message;

receiving (1102) a communication request from a network entity for establishing a communication service between a user and the network entity; and

in response to the communication request, performing:

providing (1104) communication sessions between a user terminal emulation application and the network entity and between the user terminal emulation application and a set of I/O user devices that are determined to be approximately at the user's location and that satisfy a combined capabilities rule for combining to provide a combined I/O user interface for the user to interface with the user terminal emulation application to perform the communication service;

determining (1105) a latency profile for the communication session between the user terminal emulation application and the I/O user devices in the set, wherein each of the latency profiles indicates a communication latency associated with communicating with a different one of the I/O user devices in the set;

receiving (1106) a downlink flow from the network entity;

splitting (1108) the downlink stream into a plurality of downlink stream components assigned to different ones of the I/O user devices in the set, different ones of the downlink stream components in the set having different UI characteristics that match UI capabilities identified by the database for different ones of the I/O user devices in the set; and

repeating (1110) for each of the downlink stream components:

formatting (1112) the downlink stream components for transmission to assigned I/O user devices identified by the database based on a communication protocol of the assigned I/O user devices,

initiating (1114) transmission of the formatted downlink stream components to the assigned I/O user device; and

controlling (1116) timing of when the formatted downlink stream component is communicated to the assigned I/O user device based on a delay profile associated with the assigned I/O user device communication.

2. The user terminal emulation server of claim 1, where formatting (1112) the downlink stream components for transmission to the assigned I/O user device based on a communication protocol of the assigned I/O user device identified by the database comprises:

adding a timestamp to each of the downlink stream components based on a common time clock.

3. The user terminal emulation server of any of claims 1-2, wherein:

repeating, for each of the downlink stream components:

formatting (1112) the downlink stream components includes: generating a real-time transport protocol RTP formatted downlink stream component and a real-time control transport protocol RTCP formatted downlink stream component,

controlling (1116) timing of when to communicate the formatted downlink stream component to the assigned I/O user device based on the delay profile associated with the assigned I/O user device communication comprises: controlling the timing such that the RTP-formatted downlink stream components of the assigned I/O user devices in the set are substantially time-aligned based on a common time clock; and

operation of initiating (1114) transmission of the formatted components to initiate transmission of the RTP formatted downlink stream components to the assigned I/O user device.

4. The user terminal emulation server of any of claims 2 to 3, in which the operations further comprise updating the common time clock based on a network time protocol, NTP.

5. The user terminal emulation server of any of claims 1-4, wherein the operations further comprise:

receiving (1200) an uplink flow component from the I/O user equipment in the set;

comprising combining (1202) the uplink stream components into a combined uplink stream by formatting (1203) the uplink stream components for transmission to the network entity based on a communication protocol of the network entity identified by the database; and

initiating (1206) a transmission of the combined uplink stream to the network entity via the communication session between the user terminal emulation application and the network entity.

6. The user terminal emulation server of claim 5, where combining (1202) the uplink flow components into the combined uplink flow comprises:

when combined into the combined uplink stream, the uplink stream components are substantially time aligned based on a common time clock (1204).

7. The user terminal emulation server of any of claims 5 to 6, where combining (1202) the uplink flow components into the combined uplink flow comprises:

substantially time aligning the uplink flow components when combined into the combined uplink flow based on the user terminal simulation application and a delay profile of a communication session between the I/O user devices of the set from which the uplink flow components were received (1204).

8. The user terminal emulation server of any of claims 1-7, where controlling (1116) timing of when the formatted downlink stream component is transmitted to the assigned I/O user device based on the delay profile associated with the assigned I/O user device communication comprises:

comparing the delay profile associated with the assigned I/O user device communication to which the formatted downlink stream component is to be transmitted; and

controlling a timing offset between times at which respective ones of the downlink stream components are transmitted based on the comparison of the delay profiles such that the I/O user devices in the set receive the downlink stream components substantially simultaneously.

9. The user terminal emulation server of claim 1, wherein:

determining each of the delay profiles based on a communication jitter associated with communicating with a different one of the I/O user devices in the set, the communication jitter determined based on a variation in communication delay measured over time for communications from the user terminal emulation server to the one of the I/O user devices in the set.

10. The user terminal emulation server of any of claims 1-9, wherein the operations further comprise:

repeating, for each of the I/O user devices in the set, determining (1300) a delay profile based on a downlink stream processing delay for the I/O user device, the downlink stream processing delay being based on a time delay between the I/O user device receiving a downlink stream component to outputting a result from processing of at least a portion of the downlink stream component; and

repeating, for each of the downlink stream components: controlling (1302) timing of when to communicate the downlink stream component to the assigned I/O user device based on the delay profile associated with the assigned I/O user device.

11. The user terminal emulation server of claim 10, wherein repeating (1300) the operation of determining (1300) the delay profile based on the downlink stream processing delay of the I/O user device for each of the I/O user devices in the set comprises:

repeating, for each of the I/O user devices in the set: determining a time delay between initiating transmission of a response request to the I/O user device and receiving a response from the I/O user device over at least one of the communication session and an earlier communication session.

12. The user terminal emulation server of any of claims 1-11, where determining (1105) a delay profile for the communication session between the user terminal emulation application and the I/O user device in the set comprises:

repeating, for each of the I/O user devices in the set: controlling a rate of updating the latency profile of the communication session between the user terminal emulation application and the I/O user device based on at least one of: a rate of change of the communication delay; the user terminal emulating a quality of service of the communication session between an application and the I/O user device; and a type of radio technology used to perform communications between the user terminal emulation application and the I/O user device.

13. The user terminal emulation server of any of claims 1-12, wherein:

a speaker device is one of the I/O user devices in the set that is capable of playing an audio stream contained in the downlink stream;

the display device is one of the I/O user devices in the set that is capable of displaying a video stream contained in the downlink stream;

splitting (1108) the downlink stream into a plurality of downlink stream components assigned to different ones of the I/O user devices in the set comprises:

generating a first downlink stream component containing the audio stream and not the video stream; and

generating a second downlink stream component containing the video stream and not the audio stream;

formatting (1112) the downlink stream components for transmission includes:

formatting the first downlink stream component containing the audio stream for transmission to the speaker device based on a communication protocol of the speaker device identified by the database; and

formatting the second downlink stream component containing the video stream for transmission to the display device based on a communication protocol of the display device identified by the database, an

Initiating (1114) transmission of the formatted components to the assigned I/O user devices in the set comprises:

initiating transmission of the formatted first downlink stream component to the speaker apparatus in accordance with a communication protocol for the speaker apparatus identified by the database; and

initiating transmission of the formatted second downlink stream component to the display device in accordance with a communication protocol for the display device identified by the database.

14. The user terminal emulation server of claim 13, wherein:

determining (1105) a delay profile comprises determining a delay profile for the speaker apparatus;

determining (1105) a delay profile further comprises determining a delay profile for the display device; and

controlling (1116) the timing includes: controlling timing of when to transmit the formatted first downlink stream component to the speaker apparatus and when to transmit the formatted second downlink stream component to the display apparatus based on a comparison of the delay profiles of the speaker and display apparatus.

15. The user terminal emulation server of claim 14, wherein:

determining the delay profile for the speaker apparatus based on a measurement of a delay of the speaker apparatus receiving communications from the user terminal emulation server;

determining the delay profile for the display device based on a measurement of a delay of the display device receiving communications from the user terminal emulation server; and

the operation of controlling the timing includes: controlling when the formatted first downlink stream component is transmitted to the speaker apparatus relative to when the formatted second downlink stream component is transmitted to the display apparatus such that the formatted first downlink stream component is received by the speaker apparatus substantially simultaneously with the reception of the formatted second downlink stream component by the display apparatus.

16. The user terminal emulation server of any of claims 14 to 15, wherein:

determining the delay profile for the speaker apparatus based on a measurement of a processing delay between receiving a downlink stream component at the speaker apparatus and completing processing to output an audio signal;

determining the delay profile for the display device based on a measurement of a processing delay between receiving a downlink stream component and completing processing to display content at the display device;

the operation of controlling the timing includes: controlling when the formatted first downlink stream component is transmitted to the speaker apparatus relative to when the formatted second downlink stream component is transmitted to the display apparatus such that the speaker apparatus completes processing of the formatted first downlink stream component substantially simultaneously with completion of processing of the formatted second downlink stream component by the display apparatus.

17. A method performed by a user terminal emulation server (100) for providing communication services using a set of input and/or output I/O user devices (130), the method comprising:

maintaining (1100) a database identifying a network address of an I/O user device, user interface, UI, capabilities of the I/O user device, and a communication protocol of the I/O user device based on content of a received registration message;

receiving (1102) a communication request from a network entity for establishing a communication service between a user and the network entity; and

in response to the communication request, performing:

providing (1104) communication sessions between a user terminal emulation application and the network entity and between the user terminal emulation application and a set of I/O user devices that are determined to be approximately at the user's location and that satisfy a combined capabilities rule for combining to provide a combined I/O user interface for the user to interface with the user terminal emulation application to perform the communication service;

determining (1105) a latency profile for the communication session between the user terminal emulation application and the I/O user devices in the set, wherein each of the latency profiles indicates a communication latency associated with communicating with a different one of the I/O user devices in the set;

receiving (1106) a downlink flow from the network entity;

splitting (1108) the downlink stream into a plurality of downlink stream components assigned to different ones of the I/O user devices in the set, different ones of the downlink stream components in the set having different UI characteristics that match UI capabilities identified by the database for different ones of the I/O user devices in the set;

repeating (1110) for each of the downlink stream components:

formatting (1112) the downlink stream components for transmission to assigned I/O user devices identified by the database based on a communication protocol of the assigned I/O user devices, an

Initiating (1114) transmission of the formatted downlink stream components to the assigned I/O user device; and

controlling (1116) timing of when the formatted downlink stream component is communicated to the assigned I/O user device based on a delay profile associated with the assigned I/O user device communication.

18. The method of claim 17, further comprising:

performing the operations of any of claims 2 to 16.

19. A computer program product comprising a non-transitory computer-readable medium storing program code for execution by at least one processor (1500) of a user terminal emulation server (100) for providing communication services using a set of input and/or output I/O user devices (130), the program code when executed by the at least one processor (1500) performing operations comprising:

maintaining (1100) a database identifying a network address of an I/O user device, user interface, UI, capabilities of the I/O user device, and a communication protocol of the I/O user device based on content of a received registration message;

receiving (1102) a communication request from a network entity for establishing a communication service between a user and the network entity; and

in response to the communication request, performing:

providing (1104) communication sessions between a user terminal emulation application and the network entity and between the user terminal emulation application and a set of I/O user devices that are determined to be approximately at the user's location and that satisfy a combined capabilities rule for combining to provide a combined I/O user interface for the user to interface with the user terminal emulation application to perform the communication service;

determining (1105) a latency profile for the communication session between the user terminal emulation application and the I/O user devices in the set, wherein each of the latency profiles indicates a communication latency associated with communicating with a different one of the I/O user devices in the set;

receiving (1106) a downlink flow from the network entity;

splitting (1108) the downlink stream into a plurality of downlink stream components assigned to different ones of the I/O user devices in the set, different ones of the downlink stream components in the set having different UI characteristics that match UI capabilities identified by the database for different ones of the I/O user devices in the set; and

repeating (1110) for each of the downlink stream components:

formatting (1112) the downlink stream components for transmission to assigned I/O user devices identified by the database based on a communication protocol of the assigned I/O user devices,

initiating (1114) transmission of the formatted downlink stream components to the assigned I/O user device; and

controlling (1116) timing of when the formatted downlink stream component is communicated to the assigned I/O user device based on a delay profile associated with the assigned I/O user device communication.

20. The computer program product according to claim 19, wherein the program code, when executed by the at least one processor (1500), further performs the operations of any of claims 2 to 16.

Technical Field

The present disclosure relates to a user terminal emulation server for providing communication services using a set of input and/or output (I/O) user devices, a method performed by the user terminal emulation server for providing communication services using a set of I/O user devices, and a computer program product for providing communication services using a set of I/O user devices.

Background

The market for user terminals is driven by the quest to provide users with increasingly advanced communication and other operational features within the confines of a portable handheld form factor. As designers seek to integrate a greater variety of user interfaces and advanced operating features within portable handheld form factors, the development requirements for user terminals have become more complex. Advances in operating characteristics have required higher integration and faster processing circuitry and greater circuit density, which has become more difficult under cost and power consumption constraints.

This all-inclusive feature-rich approach developed for user terminals does not meet the diverse needs held by consumers to find solutions for the rapidly expanding variety of communication services. Moreover, the desire of today's society to remain connected all the time forces users to be vigilant in keeping their user terminals within reach or otherwise risk not being able to receive or initiate communication services in a timely manner.

Disclosure of Invention

Various embodiments disclosed herein are directed to a centralized server-based method for emulating a user terminal using a networked set of input and/or output (I/O) user devices that are determined to be approximately at a user and have User Interface (UI) capabilities that can be combined to provide the user with receiving and/or initiating communication services with a network entity. The user terminal emulation server can split the downlink stream into a plurality of downlink stream components, format each of the downlink stream components to be compatible with the assigned I/O user device, and control timing of when to transmit the formatted downlink stream components to the assigned I/O user device based on a determined delay profile of the assigned I/O user device. The user terminal emulation server can also combine uplink stream components from the I/O user devices into a combined uplink stream formatted to be compatible with the network entity.

In one embodiment, a user terminal emulation server for providing communication services using a set of I/O user devices performs operations including maintaining a database identifying network addresses of the I/O user devices, UI capabilities of the I/O user devices, and communication protocols of the I/O user devices based on the content of received registration messages. A communication request for establishing a communication service between a user and a network entity is received from the network entity. In response to a communication request, providing a communication session between a user terminal emulation application and a network entity and between the user terminal emulation application and a set of I/O user devices that are determined to be approximately at the user's location and that satisfy a combined capabilities rule for combining to provide a combined I/O user interface for the user to interface with the user terminal emulation application to perform the communication service. Determining a delay profile for the communication session between the user terminal emulation application and the I/O user devices in the set, wherein each of the delay profiles indicates a communication delay associated with communicating with a different one of the I/O user devices in the set.

Receiving a downlink stream from a network entity and splitting the downlink stream into a plurality of downlink stream components assigned to different ones of the I/O user devices in a set, wherein different ones of the downlink stream components in a set have different UI characteristics that match UI capabilities identified by the database for different ones of the I/O user devices in a set. The operations include repeating, for each of the downlink stream components: formatting downlink stream components for transmission to assigned I/O user devices based on a communication protocol of the assigned I/O user devices identified by a database; initiating transmission of the formatted downlink stream components to the assigned I/O user device; and controlling timing of when to transmit the formatted downlink stream component to the assigned I/O user device based on a delay profile associated with the assigned I/O user device communication.

Some potential advantages of this and related embodiments include: users are able to receive and initiate communication services without the need for conventional ubiquitous, feature-rich user terminals. The user terminal emulation server can adaptively combine the available UI capabilities of I/O user devices proximate to the user to attempt to provide communication services. I/O user devices can include, for example, speakers, microphones, display devices, keyboards, other user input and/or output user interface devices, etc., with wireless (e.g., bluetooth, WiFi, optical communication, LiFi, and/or cellular) capabilities, which have become nearly ubiquitous as the internet of things (IoT) revolution. The user terminal emulation server can dynamically respond to incoming communication requests directed to the user or outgoing communication requests from the user by operatively communicating with available I/O user devices in proximity to the user to form a combined user interface through which a user terminal emulation application executed by the server provides user terminal functionality for the communication service. Server-based approaches can provide low-cost adaptable communication services to users.

The formatting operations performed by the user terminal emulation server enable communications between the network entity and the I/O user device to be agnostic with respect to any particular communication format constraint. For example, the formatting may generate real-time protocol (RTP) and real-time control protocol (RTCP) stream pairs for each downlink stream component split from the downlink stream, and they are formatted to be compatible with the I/O user devices assigned in the I/O user devices. The user terminal emulation server can control the timing of transmissions to individual ones of the I/O user devices, for example, to compensate for different communication transmission time delays between the user terminal emulation server and the individual I/O user devices and/or to compensate for different time delays at which the individual I/O user devices process downlink stream components in order to generate UI outputs to the user.

Other user terminal simulation servers, methods by a user terminal simulation server, and computer program products for use with a user terminal simulation server according to embodiments of the present subject matter will be or become apparent to one with skill in the art upon review of the following drawings and detailed description. It is intended that all such additional user terminal emulation servers, methods, and computer program products be included within this description, be within the scope of the present subject matter, and be protected by the accompanying claims. Further, it is intended that all embodiments disclosed herein can be implemented individually or combined in any manner and/or combination.

Drawings

Aspects of the present disclosure are illustrated by way of example and not limitation in the figures. In the drawings:

FIG. 1 illustrates a system having a user terminal emulation server operative to integrate a collection of I/O user devices proximately located at a user to logically form a virtualized user terminal that provides communication services in accordance with some embodiments of the present disclosure;

FIG. 2 is a block diagram illustrating a user terminal emulation server in communication with various elements of a cellular system to provide communication services in accordance with some embodiments of the present disclosure;

FIG. 3 is a block diagram illustrating a user terminal emulation server communicating with various elements of a cellular system in different ways to provide communication services in accordance with some other embodiments of the present disclosure;

4-6 are combined flow diagrams of operations and related data flows between a user tag (UserTag), an I/O user device, and a user terminal emulation server according to some embodiments of the present disclosure;

FIGS. 7 and 8 are flowcharts of operations that may be performed by a user terminal emulation server to provide communication services over a set of I/O user devices, according to some embodiments of the present disclosure;

figure 9 is a block diagram of the downlink flow functional components of a user terminal emulation server configured to operate in accordance with some embodiments of the present disclosure;

figure 10 is a block diagram of an uplink flow functional component of a user terminal emulation server configured to operate in accordance with some embodiments of the present disclosure;

figures 11 and 13 are flowcharts of downlink flow operations that may be performed by a user terminal emulation server to provide communication services over a set of I/O user devices, in accordance with some embodiments of the present disclosure;

FIG. 12 is a flowchart of uplink flow operations that may be performed by a user terminal emulation server to provide communication services over a set of I/O user devices, in accordance with some embodiments of the present disclosure;

FIG. 14 is a block diagram of hardware circuit components of an I/O user device configured to operate in accordance with some embodiments; and

figure 15 is a block diagram of hardware circuit components of a user terminal emulation server configured to operate in accordance with some embodiments of the present disclosure.

Detailed Description

The inventive concept will now be described more fully hereinafter with reference to the accompanying drawings, in which examples of embodiments of the inventive concept are shown. The inventive concept may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of various inventive concepts to those skilled in the art. It should also be noted that the embodiments are not mutually exclusive. A component from one embodiment may be implicitly assumed to be present or utilized in another embodiment.

Various embodiments disclosed herein are directed to improvements in the operation of a centralized server-based method for emulating a user terminal using a networked collection of input/output (I/O) user devices determined to be approximately at the user and having User Interface (UI) capabilities combinable to provide a combined I/O user interface for the user to interface with a user terminal emulation application of a server to perform communication services.

Some potential advantages of these embodiments include: users can receive and initiate communication services without the need for traditional ubiquitous, feature-rich user terminals, i.e., conventional smart phones, mobile phones, tablet computers, and the like. The user terminal emulation server can adaptively combine the available UI capabilities of I/O user devices proximate to the user to attempt to provide communication services. The user terminal emulation server can dynamically respond to incoming communication requests directed to the user or outgoing communication requests from the user by operatively utilizing available I/O user devices in proximity to the user to form a combined interface through which a user terminal emulation application executed by the server provides user terminal functionality for the communication service. Server-based approaches can provide low-cost adaptable communication services to users.

Dynamic allocation of I/O user device capabilities enables efficient and flexible use of existing hardware, such as televisions, conference phones, laptops, surveillance cameras, connected home appliances, connected vehicles, etc., that are capable of providing some UI functionality to a user during communication services whenever and wherever an I/O user device is in the vicinity of the user. Thus, users have reduced or eliminated the need to carry expensive and ubiquitous user terminals, such as smart phones, display devices, keyboards, speakers, etc., that include all the necessary UI capabilities. A user may instead carry a hardware device that operates to identify the user to one or more of the I/O user devices through a wireless communication interface, such as a Near Field Communication (NFC) interface, referred to as a "user tag. The various embodiments disclosed herein may disrupt the traditional handset-centric mobile communications industry because the features and capabilities forming the user terminal are not limited to the field of mobile phone manufacturers. The user terminal emulation server is operable to provide a user terminal, which can also be referred to as a SoftUE or user terminal emulation application run by the user terminal emulation server.

FIG. 1 illustrates a system having a user terminal emulation server 100 operable to integrate a collection of I/O user devices 130 proximately located at a user to logically emulate a user terminal providing communication services in accordance with some embodiments of the present disclosure.

Referring to fig. 1, the user terminal emulation server 100 may be a cloud resource networked to a remote location from the I/O user device 130, or may be more closely located on a shared network with the I/O user device 130. The user terminal emulation server 100 is configured to communicate with the I/O user devices 130 to identify which, if any, devices are proximately located at the user for use in providing UI capabilities during communication services.

A user may carry a hardware tag, also referred to as a user tag, that is capable of communicating a unique user identifier over a communication interface, such as a near field communication interface (e.g., bluetooth, BLE, NFC, RFID, etc., or a combination thereof), for receipt by one or more of the I/O user devices 130 proximately located at the user. One type of user tag may be a simple stand-alone electronic device with limited capabilities for communicating identifiers over a near field communication interface. Another type of user tag may be a smart phone or smart watch with cellular connectivity that communicates a cellular identity (e.g., from a SIM card) or an application identity over a cellular interface or near field communication interface.

Alternatively or additionally, the user identifier may be operatively determined by biometric operations (biometrics operations) performed by one or more of the I/O user devices 130, for example. Biometric operations may include, but are not limited to, one or more of the following: voice recognition, image/face recognition, eye recognition, fingerprint recognition, or a combination thereof. The user identity may be determined based on credentials provided by the user when, for example, logging into an application or account. The user identity may be provided by the cellular telephone using information from the subscribing SIM, and the proximity of the cellular telephone to one or more of the I/O user devices 130 may be determined using Near Field Communication (NFC) capabilities of the telephone.

The user identifier, the user tag identifier and the user terminal application can be logically associated with each other in a database during a user registration procedure or as part of another setup (setup) procedure. For example, during a user registration process, a user may obtain an account login identifier (used as a user identifier) that is registered in a database as being associated with a user tag identifier that has been provided to a physical user tag of the user (e.g., purchased by the user) and associated with a user terminal application that emulates a user terminal having defined capabilities (e.g., a cellular telephone that provides voice over IP communication services of cellular and over-the-type).

Operations that can be performed by the system to provide communication services to a user are described further below with reference to fig. 7, which is a flowchart of the operations of the user terminal emulation server 100 in fig. 7. Referring to fig. 1 and 7, the user terminal emulation server 100 maintains 700 a database 120 that identifies network addresses of the I/O user devices 130 and further identifies UI capabilities of the I/O user devices 130 based on the content of the received registration messages. The capabilities of the I/O user device 130 may be logically arranged in the database 120 based on the type of UI capabilities provided (e.g., display device, microphone, speaker, keyboard), and may be further arranged based on the quality of service provided by the UI capabilities. The I/O user device 130 may communicate a registration message containing its network address and UI capabilities to the user terminal emulation server 100 in response to an initial setup operation, connection to a new communication network, and/or in response to another defined event for triggering the generation of the registration message. The registration message may include the geographic location of the I/O user device 130, which can be stored in the database 120. The I/O user devices 130 may communicate with the server 100 via a data network (e.g., the internet and/or a private network) using a WiFi transceiver, a bluetooth transceiver, a cellular transceiver, an optical communication transceiver (LiFi), and/or another RF or optical communication transceiver.

The user terminal emulation server 100 registers 702 the network address of the user terminal emulation application 110 and the identity of the user with the network entity 150 providing the communication service. The network entity 150 provides a communication service function 140, which communication service function 140 may for example correspond to a voice over internet protocol (VoIP) service, a Netflix service, a Facebook service, a Skype service, an internet browser service, a cellular communication service, etc. The user terminal emulation application 110 is executed by the user terminal emulation server 100. The user terminal emulation application 110 can run one or more applications typically run by a smartphone, such as a web fly application, a facebook application, a Skype application, an internet browser application, and the like.

As shown in FIG. 1, a different instantiation of the user terminal emulation application 110 (i.e., the illustrated user terminal emulation applications #1- # N corresponding to users 1-N) may be hosted by the server 100 for each user to be provided with communication services. According to the operation of fig. 7, the user terminal emulation application 110 can perform user registration with the network entity 150 and setup of a communication service with the user in response to the communication request.

When the communication service function 140 of the network entity 150 is a VoIP service, registering 702 the network address and the user identity of the user terminal emulation application with the network entity 150 may include registering the network address and the user identity of the user terminal emulation application 110 with a network server of a VoIP communication service provider.

When the communication service function 140 of the network entity 150 is a cellular communication service, registering 702 the network address and the user identity of the user terminal emulation application with the network entity 150 may comprise registering the network address and the user identity of the user terminal emulation application 110 with a Home Subscriber Server (HSS) or other network node of a core network operated by the cellular communication service provider.

The user terminal emulation server 100 may receive registration messages from the I/O user devices using Session Initiation Protocol (SIP)/Session Description Protocol (SDP), where each of the registration messages identifies a network address and UI capabilities of one of the I/O user devices. The communication request may be received from the network entity 150 using SIP/SDP, and operations to provide a communication session between the user terminal emulation application 110 and the requesting user terminal, and between the user terminal emulation application 110 and each of the I/O user devices in the collection, may be performed using SIP/SDP.

The registration message from the I/O user device may include, for example, an IP address and port number, a MAC address, a Fully Qualified Domain Name (FQDN), and/or another network address, and further includes information identifying UI capabilities of the I/O user device. The I/O user device may respond to a change to power-on by communicating a registration message to the user terminal emulation server 100.

The user terminal emulation server 100 receives 704 a communication request from the network entity 150 for establishing a communication service between the user and a requesting user terminal (e.g., a cellular phone, a computer with a Skype application, etc.). In response to the communication request, the user terminal emulation server 100 identifies 706 a set of I/O user devices among the I/O user devices 130 identified by the database 120 that are determined to be approximately located at the user location, and is further determined to satisfy a combined capabilities rule based on the UI capabilities identified by the database 120 for the set of I/O user devices and based on the content of the communication request, for combining to provide a combined I/O user interface for the user to interface with the user terminal emulation application 110 to provide communication services.

Based on determining that the set of I/O user devices satisfies the combined capability rule, the user terminal emulation server 100 provides 708 a communication session between the user terminal emulation application 110 and the requesting user terminal and between the user terminal emulation application 110 and the I/O user devices in the set via the network entity 150. The communication request received 704 by the user terminal emulation application 110 can contain an indication of a minimum UI capability that must be provided to the user during the communication service, such as: only a speaker; a combination of a speaker and a microphone; a display only; a combination of a display device, a speaker and a microphone, etc. The combined capability rules used by the server 100 to determine whether communication services can be provided and by which set of I/O user devices to provide may thus be defined based on the minimum UI capability indicated by the communication request.

The user terminal emulation server 100 then routes 710 the communication traffic received from at least one of the I/O user devices in the set towards the requesting user terminal via the network entity 150. For each data type received as a communication service from a requesting user terminal, the user terminal emulation server 100 selects one of the I/O user devices from among the set of I/O user devices based on a matching of characteristics of the data type to UI capabilities identified by the database 120 for the one of the I/O user devices, and then routes data of the data type toward a network address of the selected one of the I/O user devices.

As will be explained in further detail below, the server 100 may also combine 716 data streams received from the I/O user devices in the set and route the combined data streams towards a requesting user terminal, e.g., via the network entity 150.

The user terminal emulation server 100 (e.g., the I/O user device handler or application 110 described below) may be responsible for tracking which I/O user devices are approximately located at the user's current location. Fig. 8 is a flow chart of the corresponding operation. The server 100 can receive 800 presence reports from various ones of the I/O user devices, the presence reports containing their network addresses and identifiers of users determined by the I/O user devices to be approximately located. For example, an I/O user device may read a hardware tag, also referred to herein as a "user tag," through an NFC communication interface, may sense biometric information from a user, and/or may perform other operations to detect the presence of a user and identify the user. In response to the presence report, the server 100 updates 802 the database 120 to indicate which user identifiers are approximately located at which of the I/O user devices.

With further reference to the example system of fig. 1, the user terminal emulation application #1, to which the set of I/O user devices 130 has been instantiated, is determined to be approximately at the location of the first user carrying the user tag #1, and further has UI capabilities combinable to satisfy a combined capabilities rule for providing the first user with a combined I/O user interface for use during the requested communication service. Application #1 responsively uses the set of I/O user devices 130 to provide a combined I/O user interface for use by the first user during communication services between the first user and another user terminal via network entity 150.

Similarly, the user terminal emulation application #2, for which another set of I/O user devices 130 has been instantiated, is determined to be approximately at the location of the second user carrying the user tag #2, and further has UI capabilities combinable to satisfy a combined capabilities rule for providing the second user with a combined I/O user interface for use during the requested communication service. Application #2 responsively uses the set of I/O user devices 130 to provide a combined I/O user interface for use by the second user during a communication service between the second user and a further user terminal via the network entity 150.

FIG. 1 also illustrates that another set of I/O user devices 130 is not located approximately at user tag #1 or user tag # 2.

As described above, a communication request requesting establishment of a communication service with an identified user may be initiated by the network entity 150 using the network address and user identity of a user terminal emulation application earlier registered with the network entity 150. However, the communication request may additionally or alternatively be generated by one of the I/O user devices 130 in response to a command received from an approximately located user. For example, a user may operate a user interface provided by one of the I/O user devices 130 to initiate a combined audio and video call with another user. The user terminal emulation server 100 (e.g., the user's IODH or application 110) receives the communication request along with the user's identity, which can be sensed via the user tag. The application 110 performs the identifying 706, providing 708, routing 710, selecting 712, and combining 716 operations described above with respect to fig. 7 to setup and operate communication services between the user and other users via the network entity 150.

Further example systems and related operations will now be described to further illustrate how I/O user devices having different UI capabilities can be operatively combined to provide a combined UI that can be used by a user to satisfy communication requirements of a communication service.

Further illustrative operations are described with respect to example embodiments in which the speaker device is one of the I/O user devices 130 in the set capable of playing a received audio stream and the microphone device is one of the I/O user devices 130 in the set capable of sensing audio to output a microphone stream. The operation of the user terminal emulation application includes updating the database 120 based on the contents of the registration messages from the speaker device and the microphone device to identify the network addresses of the speaker device and the microphone device, and to identify the UI capabilities of the speaker device as having speaker capabilities and to identify the UI capabilities of the microphone device as having microphone capabilities. The speaker UI capabilities may identify the number of speakers provided, sound loudness capabilities, and/or other operational characteristics. The microphone UI capabilities may identify the number of microphones provided, the sensitivity of the microphones, and/or other operating characteristics. The speaker device and the microphone device are each identified as belonging to a set of I/O user devices that are determined to be approximately located at a user (e.g., user tag # 1) location and, based on the UI capabilities identified by the database 120, are further determined to satisfy a combined capabilities rule for combining to provide a combined I/O UI for the user to interface with the user terminal emulation application 110 to provide communication services. Based on determining that the speaker device and the microphone device satisfy the combined capability rule, further operations are performed to route a microphone stream received from the microphone device toward the requesting user terminal (e.g., via network entity 150). When an audio stream is received as a communication service from a requesting user terminal, the operations select a speaker device based on a match of audio characteristics of the audio stream with speaker capabilities identified by a database for the speaker device, and then route the audio stream toward a network address of the speaker device.

Example embodiments may include, when the display device is one of the I/O user devices in the set that is capable of displaying the received video stream, operating the registration message-based content update database 120 to identify a network address of the display device and to identify UI capabilities of the display device as having display capabilities. The display UI capabilities may identify screen display size, aspect ratio, pixel resolution, supported video frame rate, whether the display device supports sharing user support via a split screen configuration, and/or other operating characteristics. The display devices are also identified as being in a set of I/O user devices determined to be approximately at the user's location, and are further determined to satisfy a combined capability rule, based on the UI capabilities identified by the database 120, for combinability to provide a combined I/O UI for the user to interface with the user terminal emulation application 110 to provide communication services. Based on determining that the speaker device, the display device, and the microphone device satisfy the combined capabilities rule, further operations, in response to receiving the video stream from the requesting user terminal as communication traffic, select the display device based on a match of video characteristics of the video stream with display capabilities identified for the display device by the database 120, and then route the video stream toward a network address of the display device.

In an example embodiment, the operations for routing the audio stream and the video stream towards network addresses of the speaker device and the display device, respectively, may comprise: when audio data and video data are received within the same stream from a requesting user terminal over a first communication session: separating the audio data from the video data; routing the audio data through the second communication session towards a network address of the speaker device; and routing the video data through the second communication session or the third communication session towards a network address of the display device.

Example embodiments may include, when the camera device is one of the I/O user devices in the set that is capable of outputting a camera stream, operating the registration message based content update database 120 to identify a network address of the camera device and to identify the UI capability of the camera device as having camera capability. The camera UI capabilities may identify camera pixel counts, image quality, sensitivity, and/or other operating characteristics. The camera device is further identified as being a member of a set of I/O user devices determined to be approximately located at the user location, and is further determined to satisfy a combined capability rule based on the UI capabilities identified by the database 120 for combinability with other I/O user devices in the set to provide a combined I/O UI for the user to interface with the user terminal emulation application 110 to provide communication services. Based on determining that the camera device satisfies the combined capability rule, further operations are performed to route a camera stream received from the camera device toward the requesting user terminal, e.g., via network entity 150.

The operations for routing the microphone stream received from the microphone device and the camera stream received from the camera device towards the requesting user terminal may include: receiving a microphone stream from a microphone apparatus over a first communication session; receiving a camera stream from a camera device over a first communication session or a second communication session; combining the microphone stream and the camera stream into a combined stream; and route the combined stream toward the requesting user terminal through the third communication session, e.g., via network entity 150.

Example embodiments may include, when the keyboard device is one of the I/O user devices in the set that is capable of outputting key selection data in response to a user selecting a key among the keys of the keyboard device, the operations may update the database 120 based on the content of the registration message to identify a network address of the keyboard device and to identify the UI capability of the keyboard device as having keyboard capability. The keyboard device capabilities may identify a key count, an indication of whether the keyboard is a physical keyboard or a touch-sensitive input device, and/or other keyboard capabilities. The keyboard devices are further identified as members of a set of I/O user devices determined to be approximately at the user location, and are further determined to satisfy a combined capability rule based on the UI capabilities identified by the database 120 for combinability with other I/O user devices in the set to provide a combined I/O UI for the user to interface with the user terminal emulation application 110 to provide communication services. Based on determining that the keyboard device satisfies the combinatorial capability rule, further operations are performed to identify a command formed from key selection data received from the keyboard and to perform an operation that has been predefined to be triggered based on receipt of the identified command.

The operations for routing key selection data received from the keyboard device and microphone streams received from the microphone device may include: receiving key selection data from the keyboard device over a first communication session, receiving a microphone stream from the microphone device over the first communication session or a second communication session; combining the key selection data and the microphone stream into a combined stream; and route the combined stream toward the requesting user terminal through the third communication session, e.g., via network entity 150.

While various operations have been described in the context of a successfully provisioned communication service when the requesting user is determined to be approximately at a set of I/O user devices that satisfy the combined capabilities rules for the communication service, this will not occur when a sufficient set of I/O user devices is not determined in this manner. The corresponding operations that can be performed by the user terminal emulation application 110 when a communication service cannot be set are explained below. In this example, the user terminal emulation application 110 receives another communication request from the network entity 150 for establishing another communication service between another user and another requesting user terminal. In response to another communication request, the operation performs a determination of whether another set of I/O user devices among the I/O user devices identified by database 120 is determined to be approximately at the location of another user and available for another communication service, and further determines, based on the UI capabilities for the other set of I/O user devices identified by database 120, that a combined capability rule is satisfied for combining to provide a combined I/O UI for the other user to interface with another user terminal emulation application to provide the other communication service. Based on determining that no other set of I/O user devices are determined to satisfy the combined capability rule and are located proximate to another user location, operations communicate a message to network entity 150 indicating that another communication service cannot be established. In this manner, the network entity 150 is informed that the communication service request cannot be set with the identified user at this time.

Fig. 2 is a block diagram illustrating the user terminal emulation server 100 as an element of a carrier service node 202 within a cellular system 200. Referring to fig. 2, the communication services functionality 140 (fig. 1) of the network entity may be provided by the operator service node 202 or may be accessible through an external infrastructure 240 (e.g., the internet). The server 100 may be implemented, for example, in the radio access network 220 to provide edge computing with faster responsiveness, or may be implemented within another node of the cellular system 200. The user terminal emulation server 100 can include an I/O user device handler (IODH) 212, a Control Function (CF) 214, an instantiated user terminal emulation application 110, and a serving Gateway (GW) 216. The user terminal emulation application 110 can run one or more applications typically run by a smartphone, such as a web fly application, a facebook application, a Skype application, an internet browser application, and the like.

The IODH 212 may perform operations to manage I/O user devices, such as handling maintenance of the database 120 (700 in fig. 7) and/or performing registration of the user terminal emulation application 110 (702 in fig. 7). For example, the IODH 212 is operable to register with the Skype service server the IP address of the Skype application and the Skype name of the user run by the user terminal emulation application 110 or interfaced to the user terminal emulation application 110. CF 214 may be responsible for assigning an IP address to each user terminal emulation application 110. The IP address assigned by the CF 214 may be received from a core network 210 functionality, such as a PDN-GW. The serving GW 216 may interconnect the user terminal emulation server 100 to a PSTN network, a packet data network gateway of a 3GPP (third generation partnership project) system, or the like. The cellular system 200 may include a core network 210 having a Home Subscriber Server (HSS), a Policy and Charging Role Function (PCRF), a Gateway (GW), and a Mobility Management Entity (MME) that provides control signaling related to mobile terminal mobility and security for wireless access. The HSS contains subscriber related information and provides support functionality for user authentication and user access systems. The PCRF can implement QoS control for each data flow and radio bearer by setting QoS rules for each data flow based on operator set policies and subscriber information. The GWs may include a serving GW (S-GW) and a packet data network GW (PDN-GW), where the S-GW interconnects core network 210 with radio access network 220 and routes incoming and outgoing packets for I/O user devices 232 and/or 130 and user terminal 230. The PDN-GW interconnects the core network 210 with an external infrastructure 240 (such as the internet), and allocates an IP address and performs policy control and charging.

Some I/O user devices 232 with cellular communication capabilities may communicate with the operator service node 202 via the core network 210 via, for example, an eNB or other radio access node of the wireless access network 220. In the system of fig. 2, the user terminal emulation server 100 can handle setup of communication services between a selected set of I/O user devices in proximity to a user and a remote user terminal 230 (e.g., a smartphone) via the cellular system 200.

Fig. 3 is a block diagram illustrating user terminal emulation server 100 communicating in different ways with various elements of cellular system 200 to provide communication services, which may operate as network entity 140 (fig. 1), in accordance with some embodiments of the present disclosure. The system of fig. 3 differs from the system of fig. 2 in that the user terminal emulation server 100 is an internet service within an external infrastructure 240 outside the cellular system 200. In the system of fig. 3, the CF 214 may determine IP addresses to assign to different ones of the user terminal emulation applications 110 based on signaling from an internet service within the external infrastructure 240.

The above and other operations will now be described in more detail in the context of three different example "use cases": 1) an incoming call scenario; 2) an outgoing call scenario; and 3) shared I/O user device scenarios (sharing physical resources and/or capabilities).

Example 1: incoming call scenario

The use case involves a user with a user tag or other means of identification located approximately at an I/O user device 130 with different UI capabilities when an incoming call is received by the user terminal emulation server. Although the operations are explained below in the context of identifying a user by a physical user tag carried by the user, the operations are not so limited and may be used with any other way of identifying a user, such as by sensing biometric information identifying a user.

The user terminal emulation application 110 can be instantiated or otherwise activated in response to an incoming call (service, session) targeting a user tag. The user terminal emulation application 110 can identify subscriptions associated with preferred communication methods (e.g., audio rather than video, audio and video, etc.) and user tags (i.e., physical users) that have been specified by the user and determine the UI capabilities of the I/O user device that will be needed to meet the UI capabilities that may be specified for the incoming communication session. The user terminal emulation application 110 may require the IODH to identify which I/O user devices 130 are located approximately at the user tag, and may further require the IODH to determine, or may itself determine, whether the identified I/O user devices 130 can combine to meet the UI capabilities specified by the incoming communication session. User terminal emulation application 110 and/or the IODH may receive a returned ACK or NACK as to whether a sufficient set of I/O user devices 130 can be used to provide communication services. If an ACK, the IODH also sets the status of the I/O user devices 130 in the set to in-use to avoid another user terminal emulation application 110 attempting to utilize the same I/O user devices 130 as the currently in-use I/O user devices. In the case of a NACK, the user terminal emulation application 110 and/or IODH can take different actions to set up a reduced UI capability communication service with the user according to the user settings, e.g., only allow voice-based communication, rather than a combination of voice and video, in response to when no display device is currently available. An example may occur where no display device is available when the only display device located approximately at the user is currently being used by another user to receive information from another user terminal emulation application during an ongoing communication service, or when no display device is located approximately at the user.

FIG. 4 is a combined flow diagram of operations and related data flows between a user tag, an I/O user device, and a user terminal emulation server according to some embodiments of the present disclosure. Referring to fig. 4, a user tag enters a room and signals 400 its presence to any proximately located and capable I/O user device in the room using a discovery beacon signal. Alternatively, one or more of the I/O user devices determine the presence of the user tag by polling 402, such as by periodically transmitting a discovery beacon signal that triggers responsive signaling of the user tag. The I/O user device receiving the signaling indicating the presence of the user tag is reported 404 to the IODH in the user terminal emulation server along with the network address (e.g., IP address, port number, MAC address, FQDN, etc.) of the I/O user device. The user terminal emulation application corresponding to the particular user (i.e., user tag) is updated 406 with respect to the detected presence of the user. The IODH is operable to receive notifications from I/O user devices located approximately at the user tag. Further UI capability discovery (synchronization) communication 410 is performed between the user terminal emulation server and the I/O user device. The I/O user devices are associated with users in the database, along with associated indicative subscriptions, composable UI capabilities provided by a set of I/O user devices located approximately at the user tags. One or more of the I/O user devices may be selected for default call reception ACK/NACK. Through operation 412, it is now known that a user via a user tag is reachable within the system through a set of identifications of I/O user devices having identified UI capabilities (e.g., speaker yes/no, display yes/no, microphone yes/no, keyboard yes/no, etc.), thereby creating a logically virtualized user terminal through which the user can be provided in a communication service. A user may initiate a communication service through a touch screen, voice commands sensed by a microphone, performing camera-observable defined gestures, and/or other input provided to one of the proximately located I/O user devices.

In operation 414, an incoming session (e.g., a video call) directed to a user (user tag) from a requesting user terminal arrives at the user terminal emulation server of the user carrying the user tag. In operation 416, the combinable UI capabilities of the available I/O user devices are compared to the UI requirements of the incoming session. When the combinable UI capabilities of the I/O user device do not meet the UI requirements of the incoming session, the user terminal emulation server can renegotiate 416 the UI capabilities (e.g., QoS) required for the incoming session. In contrast, when the combinable UI capabilities of the I/O user devices satisfy the UI requirements of the incoming session, the user terminal emulation server prompts the user carrying the user tag via one or more of the available I/O user devices (e.g., a pre-selected answering device) to provide a session request answer (ACK/NACK). The user responds by means of a pre-selected answering device 420 to Accept (ACK) or reject (NACK) the incoming session to provide the user terminal emulation server with signalling 422. Upon receiving the ACK, operation 424 routes the audio stream from the requesting user terminal to one of the I/O user devices in the set that has speaker capability via one or more sessions 426 and routes the video stream from the requesting user terminal to another of the I/O user devices in the set that has display capability via one or more sessions 426. A data stream received from one of the I/O user devices in the set over one or more sessions 429 is routed 430 towards the requesting user terminal. When two or more data streams are received from an I/O user device over one or more sessions 429, they may be combined into a combined data stream that is routed 430 towards the requesting user terminal.

The user terminal emulation server can perform operation 428 to continuously monitor the presence of the I/O user devices to determine when one or more of the I/O user devices is no longer proximately located at the user such that it can no longer be included as part of the combined UI provided during the ongoing communication session. In response to a previous member of the set being used by the user for the ongoing communication session no longer having the required presence, the user terminal emulation server can replace the UI capabilities of another I/O user device to the set.

Use case 2, outgoing call

The use case involves a user with a user tag located approximately at an I/O user device 130 with different UI capabilities when the user terminal emulation server receives an outgoing call (communication session). The I/O user devices 130 are associated with the identified users via the user terminal emulation server 100, which handles all communication sessions for the users, while the associated I/O user devices 130 are managed by the IODH.

The user terminal emulation application 110 can be instantiated or otherwise activated in response to an outgoing call being requested by a user carrying a user tag. A user may initiate an outgoing call through a touch screen, voice commands sensed by a microphone, performing defined gestures observable by a camera, and/or other input provided to one of the proximately located I/O user devices.

The user terminal emulation application 110 can identify subscriptions associated with preferred communication methods (e.g., audio rather than video, audio and video, etc.) and user tags (i.e., physical users) that have been specified by the user and determine the UI capabilities of the I/O user device that will be needed to meet the UI capabilities that may be specified for the outgoing call. The user terminal emulation application 110 may require the IODH to identify which I/O user devices 130 are located approximately at the user tag, and may further require the IODH to determine, or may itself determine, whether the identified I/O user devices 130 can combine to meet the UI capabilities specified by the outgoing call. User terminal emulation application 110 and/or the IODH may receive a returned ACK or NACK as to whether a sufficient set of I/O user devices 130 can be used to provide communication services. If an ACK, the IODH also sets the status of the I/O user devices 130 in the set to in-use to avoid another user terminal emulation application 110 attempting to utilize the same I/O user devices 130 as the currently in-use I/O user devices. In the case of a NACK, the user terminal emulation application 110 and/or IODH can take different actions to set up a reduced UI capability communication service with the user according to the user settings, e.g., allow only sound instead of preferred sound and video in response to when no display device is currently available (e.g., when currently used by another user terminal emulation application 110 or when none is approximately at the user tag).

Fig. 5 is a combined flow diagram of operations and associated data flows between a user tag, an I/O user device, and a user terminal emulation server for an outgoing call in accordance with some embodiments of the present disclosure. Referring to fig. 5, a user tag enters a room and signals 500 its presence to any proximately located and capable I/O user device in the room using a discovery beacon signal. Alternatively, one or more of the I/O user devices determine the presence of the user tag by polling 502, such as by periodically transmitting a discovery beacon signal that triggers responsive signaling of the user tag. The I/O user device receiving the signaling indicating the presence of the user tag is reported 504 to the IODH in the user terminal emulation server along with the network address (e.g., IP address, port number, MAC address, FQDN, etc.) of the I/O user device. The user terminal emulation application corresponding to the particular user (i.e., user tag) is updated 506 with respect to the detected presence of the user.

The IODH is operable to receive notifications from I/O user devices located approximately at the user tag. Further UI capability discovery (synchronization) communication 510 is performed between the user terminal emulation server and the I/O user device. The I/O user devices are associated with users in the database, along with associated indicative subscriptions, composable UI capabilities provided by a set of I/O user devices located approximately at the user tags. One or more of the I/O user devices may be selected for default call reception ACK/NACK. Through operation 512, it is now known that a user via a user tag is reachable within the system through a set of identifications of I/O user devices having identified UI capabilities (e.g., speaker yes/no, display yes/no, microphone yes/no, keyboard yes/no, etc.), thereby creating a logically virtualized user terminal through which the user can be provided in a communication service. A user may initiate a communication service through a touch screen, voice commands sensed by a microphone, performing camera-observable defined gestures, and/or other input provided to one of the proximately located I/O user devices.

At operation 514, the user carrying the user tag uses the UI of one of the I/O user devices to trigger 514 an outgoing call (e.g., a video call), which triggers signaling 516 of the outgoing call to the user terminal emulation server. At operation 518, the IODH queries the user (e.g., displays a message, generates a sound, etc.) by approximating one of the I/O user devices located at the user, to request that the user select among the available types of communication methods currently available for the outgoing call. One of the I/O user devices provides response signaling 520 to the IODH indicating the communication method type selected by the user for the outgoing call. At operation 522, the user terminal emulation server communicates an outgoing session flow request to network entity 150, where the request may include an identifier of the calling user, an identifier of the user terminal of the called user, and a quality of service for the communication session. In operation 522, the user terminal emulation server receives a communication session Acceptance (ACK) or rejection (NACK) from the network entity 150. When the communication session is rejected, the user terminal emulation server can attempt to renegotiate 524 the requested communication session, such as at a lower quality of service.

When the communication session is Accepted (ACK), for each data type received 528 as communication traffic from the requesting user terminal, the user terminal emulation server selects one of the I/O user devices from among the set of I/O user devices based on a matching of characteristics of the data type to UI capabilities identified by the database for the one of the I/O user devices, and then routes 530 data of the data type towards a network address of the selected one of the I/O user devices. Data originating from an I/O user device of the I/O user devices is streamed 532 over one or more sessions 536 to the user terminal emulation server, which may combine 538 the data streams into a combined data stream that is routed 540 via network entity 150 towards the called user terminal.

The user terminal emulation server can continuously monitor 534 the presence of the I/O user devices to determine when one or more of the I/O user devices is no longer proximately located at the user such that it can no longer be included as part of the combined UI provided during the ongoing communication session. In response to a previous member of the set being used by the user for the ongoing communication session no longer having the required presence, the user terminal emulation server can replace the UI capabilities of another I/O user device to the set.

Use case 3, user sharing I/O user devices (physical resources, UI capabilities)

A third example is directed to a scenario in which two or more users are located in a physical area having multiple I/O user devices with combined UI capabilities that are insufficient to meet the UI requirements needed to support time-overlapping communication sessions without sharing some of the I/O user devices by the two users. In this case, the ID entities (i.e., user tags) of both users will be detected in the vicinity of some I/O user devices, which the IODH then associates with the user's corresponding user terminal emulation application 110.

In the illustration of fig. 6, the user terminal emulation application #1 is already handling an ongoing communication session, where some of the associated I/O user devices are assigned and used by the first user corresponding to user tag # 1; this means that the example starts after block 430 in fig. 4. At that point in time, another second user carrying user tag #2 enters the physical area.

At block 610, user tag #2 becomes approximately located at least one of the I/O user devices with which user terminal emulation application #1 is currently utilizing. At least one of the I/O user devices detects user tag # 2. The user terminal emulation application #2 is instantiated on the user terminal emulation server 100, under the responsibility of the IODH.

At block 612, a request is received for a new communication session intended for the user terminal emulation application # 2. At block 614, the IODH considers the priorities between the user terminal's own applications to have been instantiated. The IODH compares the subscriptions of the currently hosted (ongoing) user terminal emulation application #1 session with those of the new incoming request for the communication session of the user terminal emulation application # 2.

If no prioritization is identified, the user terminal emulation applications are treated equally such that the available I/O user devices with their UI capabilities are allocated in a first come first served manner. In contrast, if prioritization is identified, the IODH is operative to: assigning priorities to certain I/O user devices for the user terminal emulation application having the highest priority according to defined QoS/capability prioritization rules; in the presence of certain UI capabilities on certain types of I/O user devices, some UI capabilities are operatively shared between the first user and the second user (e.g., a sufficiently large display screen can be split into two halves, which are assigned to the first user and the second user, respectively).

In the current scenario, user terminal emulation applications #1 and #2 are treated equally without prioritization, which applies to all operations within reference box 611.

At block 616, the IODH evaluates the request for the second user and the user terminal to emulate the capabilities of application #2 (taking into account the prioritization established in the previous step, if any). If, regardless of any priority, the incoming request is not supported by the user terminal emulation application #2 (e.g., no available or insufficient available I/O user devices are determined (via query 617 to the I/O user device) to satisfy the required UI capabilities), the IODH is operable to negotiate UI capabilities/QoS with the network entity that sent the session request for the second user. In contrast, if the UI capabilities provided by the user device emulation application #2 for the requested communication session support the incoming request, as determined by the user terminal emulation application #2 querying 618 the available I/O user devices, an ACK is passed to the network entity 150.

When a certain priority is granted for use by one or more of the I/O user devices currently being used by the user terminal emulation application #1, if the incoming communication request can be supported by the user terminal emulation application #2, operations of block 619 may be performed to preempt or cause sharing of one or more of the I/O user devices currently being used by the user terminal emulation application # 1. The IODH and/or user terminal emulation application #1 can then renegotiate 622 the UI capabilities required for the communication session of the user terminal emulation application #1 of the first user with the network entity 150. The user terminal emulation application #1 can receive a session ACK/NACK generated 620 by one or more of the I/O user devices that are pre-empted or shared with the user terminal emulation application #2, the session ACK/NACK indicating what UI capabilities can be applied by the user terminal emulation application #1, and can responsively terminate the existing communication session if the required UI capabilities provided by the I/O user devices are no longer sufficient for the user terminal emulation application #1 to use for the communication session.

At block 624, the user terminal emulation application #2 queries the second user through a preselected one of the I/O user devices whether the requested communication session is accepted. The preselected one of the I/O user devices may display 626 a prompt to the second user for a response to the query, which is provided 628 as an ACK/NACK to the user terminal emulation application # 2. When the second user accepts the communication session (ACK), a communication service is established between the second user and the remote user terminal through the user terminal emulation application #2 and the network entity 150.

The I/O user device presence monitor may operate as a function of the IODH to monitor (continuously, periodically, or in response to the occurrence of defined events) ongoing communication sessions to ensure that all UI capabilities provided by the set of I/O user devices remain approximately at the user and are operationally available to the user.

Message exchanges between different system entities may be performed using Session Initiation Protocol (SIP) and Session Description Protocol (SDP), with perhaps some minor changes in the protocols and methods currently supported in media format. Using SIP/SDP may be advantageous because the connection between the I/O user device and the user terminal emulation application may be a SIP session, which may be set up in a similar manner as between two VoIP clients.

More generally, the operations performed by the user terminal emulation server may comprise receiving, from the network entity, a further communication request for establishing a further communication service between the further user and the further requesting user terminal. In response to another communication request, the operations determine whether another set of I/O user devices among the I/O user devices identified by the database is determined to be approximately located at another user's location and available for application by another communication service, and further determine, based on UI capabilities for the other set of I/O user devices identified by the database, that a combined capability rule is satisfied for combining to provide a combined I/O UI for the other user to interface with another user terminal emulation application to provide the other communication service. Based on determining that no other set of I/O user devices is determined to satisfy the combined capabilities rule, to be applicable by another communication service, and to be approximately located at a location of another user, the operations responsively configure one of the I/O user devices in the set of I/O user devices that is approximately located at the other user but is currently being used by the user to operate to provide a shared UI that is used by the user while the communication service continues to be provided to the user and is further used by the other user while the other communication service is provided to the other user.

In one example, information directed to a user may be routed for display in half of the screen of the display device, while information directed to another user may be routed for display in the other half of the screen of the display device. In another example, the keyboard may be shared by two users who identify themselves via the keyboard as they enter information (e.g., by typing a user ID, scanning a user tag, biometric scanning, etc.), so that the server can selectively route the keyboard entry to the correct one of the two user terminal emulation applications.

Use case 4, mobility handling

In this context, the I/O user devices and/or user tags may move such that over time, the set of I/O user devices that are approximately located at the user tags changes. Further, such changes may be caused by one or more of the I/O user devices becoming inoperative (e.g., powered down) or when the radio air interface between them becomes blocked or suffers from excessive radio interference. The IODH can be configured to dynamically determine which I/O user devices remain available for association with the user tag.

In one embodiment, the mobility aspect is monitored by an I/O user device presence monitor (IODPM) located in the IODH, as shown in block 428 in fig. 4 and block 534 in fig. 5. When the IODPM discovers that the current user terminal emulation application (i.e., implicitly, some of the I/O user devices it utilizes) no longer has access to sufficient UI capabilities through the set of I/O user devices, which may result in, for example, a QoS contract for the current communication session being violated, the IODPM may trigger a renegotiation of the UI capability requirements for the communication session through the network entity 150 and possibly with the remote user terminal.

Problems with operation of real-time protocol streams

Some transport protocols like the real-time protocol (RTP) require an out-of-band (out-of-band) method for synchronizing media streams. In the case of RTP, each media stream has its own timestamp, using an independent clock rate and a randomized start value for each stream.

A real-time control protocol (RTCP) Sender Report (SR) is required for each stream to synchronize the streams. The necessary RTCP packets may be lost (because RTP/RTCP does not guarantee delivery) or not sent until at least a few seconds after the stream has started. Many software clients do not send RTCP at all or send data that is not compliant.

Audio-to-video synchronization is typically corrected and maintained with an audio synchronizer. The television industry standards organization has established an acceptable amount of audio and video timing error and has suggested practices related to maintaining acceptable timing.

For television applications, the advanced television systems committee recommends that audio should lead video by no more than 15 ms and that audio should lag video by no more than 45 ms. However, the ITU has performed a strictly controlled test on expert viewers and found that the threshold for detectability is-125 ms to +45 ms. For movies, acceptable lip sync (lip sync) does not exceed 22 ms in either direction.

RTP clocks media using the original timestamps on an arbitrary timeline. A real-time clock, such as a real-time clock delivered by a network time protocol and described in a session description protocol associated with the media, may be used to synchronize the media. The server can then be used for final synchronization to eliminate any residual offset.

Sender Reports (SRs) are periodically sent by the active sender in the conference to report the transmission and reception statistics of all RTP packets sent during the interval. The sender report includes an absolute timestamp, which is the number of seconds elapsed since 1 month, 1900 s, 1 day midnight. The absolute timestamp allows the receiver to synchronize RTP messages. This is particularly important when both audio and video are transmitted simultaneously, as the audio and video streams use separate relative timestamps.

Existing intra-industry standardization approaches do not provide sufficient operational functionality for use in cloud-based software-defined smart phones or other I/O user devices to split and/or combine media content streams to and from each unique individual physical I/O user device and to adapt the split or combined streams to the different communication service needs of the set of I/O user devices providing user communication services.

One particularly important metric is the lag between speech and video, and this lag (and its jitter) should be kept to a minimum.

For practical purposes, I/O user devices should be simple enough and hold only basic protocol conversion (media stream translation) capabilities; thus, it is preferred that any content re-processing or translation is performed in the cloud but limited by timely delivery to the receiving node (i.e., I/O user device), or in the opposite direction, individual streams from logically joined but physically separated I/O user devices are combined in unison and delivered upstream to the receiving node (i.e., network entity).

Timing and formatting of control flows

Some further embodiments of the present disclosure are directed to formatted downlink stream components of a downlink stream that have been split based on various communication protocols of I/O user devices for transmission to a set of those I/O user devices. The embodiments also control timing of when the formatted downlink stream components are separately transmitted to the I/O user devices based on delay profiles, each of the delay profiles indicating a communication delay associated with a different one of the I/O user devices in the set. Other related embodiments are directed to corresponding operations performed for combining uplink flows from I/O user devices. The uplink flow operation may include: receiving uplink flow components from the I/O user devices in the set, including combining the uplink flow components into a combined uplink flow by formatting the uplink flow components for transmission to the network entity while also possibly performing time alignment, and initiating transmission of the combined uplink flow to the network entity. These and related embodiments are described more fully below with reference to fig. 1 and 9-15.

Example timing and Format control operations in the context of FIG. 1

Example timing and format control operations will now be described in the context of fig. 1. Referring again to FIG. 1, a real-time session may be created between each of the user terminal emulation application 110 and the I/O user devices 130 handled by the user terminal emulation server 100. The real-time session may be set using, for example, SIP. Data to be transferred between the user terminal emulation server 100 and the I/O user device 130 can be transmitted through a protocol suite (RTP) protocol suite.

The data exchanged between the user terminal emulation server 100 and the I/O user device 130 may be considered real-time data, although the raw data between the user terminal emulation application 110 and its peers (peers) (e.g., the network entity 150 hosting the streaming client and the streaming server) has different characteristics, e.g., streaming video. Thus, the user terminal emulation server 100 is configured to perform data reformatting ("formatting") functionality that takes one type of received application data from the network entity 150 and processes it into a data format compatible with the data format that the I/O user device 130 can use to deliver information to an end user ("user") via its UI capabilities. A similar process can be performed on data received from the I/O user device 130 and intended for the network entity 150.

Thus, in the direction from the network entity 150 to the I/O user device 130, the user terminal emulation server 100 (running an instance of the user terminal emulation application 110) receives the data, decodes the data, and reformats the data into a format compatible with the target I/O user device(s). The reformatting of the data may include packaging the data into a data format that the I/O user device 130 is operable to understand, such as by adding a header to the data when forming an application layer packet for the I/O user device 130. The newly created application layer protocol packet is sent to the I/O user device 130. The I/O user device 130 receives the packet, processes the packet header, and performs the appropriate action(s) to convey the data information in the packet to the user through the UI of the I/O user device 130 (e.g., display device, speaker device, haptic feedback device, etc.).

For example, when emulation server 100 is executing on-demand streaming application 110, emulation server 100 can split the on-demand video streaming data into multiple downlink stream components that it reformats to be compatible with the requirements of the I/O user devices 130 in the set that are providing the user interface to the user, and control the relative timing of when the downlink stream components are transmitted to the various ones of I/O user devices 130 based on the associated delay profiles of those I/O user devices 130. Example operations for determining and using delay profiles to control transmission timing are described in further detail below in the context of subsequent figures.

In the direction from the I/O user device 130 to the network entity 150, such as when a user takes action by speaking into a microphone during a real-time conversation, the I/O user device processes the user input (e.g., creates digitally encoded speech) and creates a series of data units that are buffered in an output buffer. The I/O user device 130 fetches the data units from the buffer and creates an application layer packet, which is then sent to the associated simulation application 110, which is processed by the simulation server 100. The emulation server 100 receives the application layer packet and formats the data unit into a data unit type that the network entity 150 can operatively use. The emulation server 100 packages the data unit into an application layer packet and sends it onward to the network entity 150.

When the formats of the first data unit and the second data unit are of the same type, and thus the first and second packet formats are also of the same type, the formatting that occurs in the emulation server 100 may simply be a change of some or all of the packet header fields of the application layer packet.

In the opposite direction from the network entity 150 to the set of I/O user devices, where several packet flows from the network entity 150 need to be provided together to users using the combined user interface capabilities of the set of I/O user devices 130. For example, a real-time conversational video service can have one audio stream and one video stream that need to be delivered to the user in a time synchronized manner. To avoid inter-stream synchronization problems, such as when a user will observe lip sync time offsets, the emulation server 100 can provide time synchronization between the times at which the relevant audio and video streams are delivered to the corresponding I/O user devices in the collection. The RTP protocol suite provides a portion of inter-stream synchronization by having each RTP stream accompanied by a real-time control protocol (RTCP) stream that carries both RTP timestamps and Network Time Protocol (NTP) timestamps.

Another example of a data formatting operation by the emulation server 100 is where a data unit from the network entity 150 contains audio information intended for stereo (e.g., a 5: 1 system), a set of I/O user devices 130 of five speaker device types is selected, and the formatting operation receives one data unit as input, and it splits and reformats the 5 data units into 5 data units directed to 5 different receiving speaker devices. In a further aspect, then, the speaker device type I/O user devices 130 may inform the emulation server 100 (i.e., IODH 212 of fig. 2) of their respective locations in the room relative to the associated user tags, etc., enabling the emulation server 100 (IODH 212) to pre-process the audio streams such that the correct audio channel components are transmitted to the appropriate speaker devices relative to their relative locations.

Further operations for controlling downlink stream timing and formatting

Fig. 9 is a block diagram of the downlink flow functional components of the user terminal emulation server 100 configured to operate in accordance with some embodiments of the present disclosure. Fig. 11 is a flowchart of downlink flow operations that may be performed by the user terminal emulation server 100 to provide communication services over a set of I/O user devices, in accordance with some embodiments of the present disclosure.

Referring to fig. 9 and 11, the downlink stream function components of the user terminal emulation server 100 are configured to split the downlink stream from the network entity 150 into a plurality of stream components formatted for delivery to respective I/O user devices having I/O user interface capabilities that will operate to deliver the content of the stream components to a user (e.g., display, generate audio output, cause haptic feedback, etc.) during a communication service. The functional components also control the timing of when to transmit the downlink stream components to each of the I/O user devices based on the delay profile that has been determined for communicating with the I/O user devices.

The user terminal emulation server 100 can synchronize the transmission of the downlink stream components so that the I/O user devices receive them substantially concurrently. For example, a first downlink stream component having a delay profile indicating that it will be transmitted to a first I/O user device over a faster first communication link may be delayed such that the first downlink stream component will be received substantially concurrently with a second downlink stream component having a delay profile indicating that it will be transmitted to a second I/O user device over a slower second communication link.

Optionally, the user terminal emulation server 100 can control the timing of when the respective downlink stream components are transmitted to the respective I/O user devices based on processing delays introduced by the respective I/O user devices such that the I/O user devices generate output to the user substantially simultaneously. For example, assume that a first I/O user device has a delay profile indicating a smaller processing delay than a second I/O user device between receiving a downlink stream component to corresponding output content to a user. The emulation server 100 can delay transmission of the first downlink stream component to the first I/O user device relative to transmission of the second downlink stream component to the second I/O user device such that the first and second I/O user devices each generate output to the user substantially simultaneously.

In the context of the particular example of FIGS. 9 and 11, the emulation server 100 maintains 1100 a database 120 (FIG. 15) that identifies network addresses of I/O user devices, UI capabilities of the I/O user devices, and communication protocols of the I/O user devices based on the contents of registration messages that can be received from a user, an I/O user device, or another network component. The emulation server 100 receives 1102 a communication request from the network entity 150 for establishing a communication service between a user and the network entity. The emulation server 100 responds to the communication request by performing operations to provide 1104 a communication session between the user terminal emulation application 110 (FIG. 1) and the network entity 150 and between the user terminal emulation application 110 (FIG. 1) and a set of I/O user devices ("first I/O user device 130 a") and ("second I/O user device 130 b") that are determined to be approximately at the user location and that satisfy combinable combinability rules for combining to provide a combined I/O user interface for the user to perform a communication service through an interface connection with the user terminal emulation application 110 (FIG. 1).

The simulation server 100 determines 1105 a delay profile for a communication session between the user terminal simulation application 110 (FIG. 1) and an I/O user device in the collection (130 a and 130 b). Each of the delay profiles indicates a communication delay associated with a different one of the I/O user devices in the set (130 a and 130 b). As used herein, for each I/O user device in the set, the associated delay profile may characterize any one or more of: 1) the time elapsed from when the emulation server 100 initiates packet transmission of the downlink stream component until the I/O user device completes packet reception; 2) a communication jitter amount that is a change in communication delay occurring over time in communication from the emulation server 100 to the I/O user device; and 3) processing delays between receiving packets and outputting content to the user through the UI capabilities of the I/O user device. The delay profile may be measured directly by the simulation server 100, determined based on a report from the I/O user device and/or another system component, and/or may be determined based on an identifier of the I/O user device.

The simulation server 100 receives 1106 the downlink flow 940 from the network entity 150. The downlink stream receiver and component splitter 900 splits the downlink stream 940 into a plurality of downlink stream components that are assigned to different ones of the I/O user devices in the set. Different ones of the downlink stream components in the set have different UI characteristics that match the UI capabilities identified by database 120 (fig. 15) for different ones of the I/O user devices in the set. In the example of fig. 9, splitter 900 splits downlink stream 940 into a first downlink stream component 942a and a second downlink stream component 942 b.

The streaming protocol transport formatter 910a formats 1112 the first downlink stream component 942a for transmission to the first I/O user device 130a based on the communication protocol of the first I/O user device 130a identified by the database 120 (fig. 15). In the example of fig. 9, formatter 910a formats first downlink stream component 942a to generate RTP stream 946a and RTCP stream 947a that are provided to transmission timing controller 912 a. The transmission timing controller 912a controls 1116 the timing of when the formatted downlink stream components (e.g., the RTP stream 946a and the RTCP stream 947 a) are transmitted to the first I/O user device 130a based on a delay profile associated with the first I/O user device 130a communication. The emulation server 100 initiates 1114 transmission of the formatted downlink stream component to the first I/O user device 130a at a time event controlled by the transmission timing controller 912a relative to a time indicated by the common time clock, such as a time provided by a Network Time Protocol (NTP) module 930.

Similar operations are performed in parallel on the second downlink stream component 942 b. The streaming protocol transport formatter 910b formats 1112 the second downlink stream component 942b for transmission to the second I/O user device 130b based on the communication protocol of the second I/O user device 130b identified by the database 120 (fig. 15). Formatter 910b formats second downlink stream component 942b to generate a real-time transport protocol (RTP) stream 946b and a real-time control transport protocol (RTCP) stream 947b, which are provided to transmission timing controller 912 b. The transmission timing controller 912b controls 1116 the timing of when the formatted downlink stream components (e.g., the RTP stream 946b and the RTCP stream 947 b) are transmitted to the second I/O user device 130b based on a delay profile associated with the second I/O user device 130b communication. The emulation server 100 initiates 1114 transmission of the formatted downlink stream component to the second I/O user device 130b at a time event controlled by the transmission timing controller 912b relative to the time indicated by the NTP module 930.

Formatting 1112, by formatters 910a and 910b, the first downlink stream component 942a and the second downlink stream component 942b for transmission to the respective first I/O user device 130a and second I/O user device 130b based on the respective communication protocols of the first I/O user device 130a and second I/O user device 130b identified by database 120 (fig. 15) may include adding a timestamp (e.g., to a flow packet header) to each of the downlink stream components based on a common time clock, such as from NTP module 930.

The operation of the transmission timing controllers 912a and 912b to control 1116 the timing of when the respective formatted downlink stream components are transmitted to the respective first and second I/O user devices 130a and 130b may include controlling the timing such that the RTP formatted downlink stream components 946a and 946b are substantially time aligned when transmitted as RTP streams 948a and 948 b.

For example, the operation of controlling 1116 when to transmit the timing of the formatted downlink stream components (e.g., RTP streams) may include comparing delay profiles associated with the communications of the first and second I/O user devices 130a and 130b, and controlling a timing offset between times at which respective ones of the downlink stream components are transmitted based on the comparison of the delay profiles such that the downlink stream components are received by the first and second I/O user devices 130a and 130b substantially simultaneously.

As described above, each of the delay profiles may be determined based on communication jitter associated with a different one of the I/O user devices in the set (i.e., the first I/O user device 130a and the second I/O user device 130 b), where the communication jitter is determined based on a change in communication delay measured over time for the communication from the emulation server 100 to the one of the I/O user devices in the set.

Referring to the flowchart of fig. 13, the simulation server 100 may repeat the operation of determining 1300 a delay profile based on the downlink stream processing delay of the I/O user device for each of the I/O user devices in the set, wherein the downlink stream processing delay is based on a time delay between the I/O user device receiving the downlink stream component to outputting a result from the processing of at least a portion of the downlink stream component. For each of the downlink stream components, the emulation server 100 can repeatedly operate to control 1302 the timing of when to transmit the downlink stream component to the assigned I/O user device based on a delay profile associated with the assigned I/O user device.

Determining 1300 a delay profile based on downlink stream processing delays of the I/O user devices may include repeating, for each of the I/O user devices in the set: a time delay is determined between initiating transmission of a response request to the I/O user device and receiving a response from the I/O user device over at least one of the communication session and an earlier communication session. Thus, the time delay may be determined for a currently ongoing communication session and/or may be determined based on one or more earlier communication sessions that have been terminated thereby.

The operation of determining 1105 a delay profile for a communication session between a user terminal emulation application and an I/O user device in a set may comprise: repeating, for each of the I/O user devices in the set: controlling a rate of updating a latency profile of a communication session between a user terminal emulation application and an I/O user device based on at least one of: a rate of change of communication delay; the user terminal emulating the quality of service of a communication session between the application and the I/O user device; and the type of radio technology used to perform the communication between the user terminal emulation application and the I/O user device. In this manner, the simulation server 100 can more quickly update the latency profile of particular I/O user devices that have rapidly changing communication links with the simulation server 100, while avoiding unnecessary processing overhead that would otherwise result if other latency profiles of other I/O user devices having more stable communication links were updated more frequently than is necessary to track changes to those particular communication links.

Illustrative operation of speaker and display device

Various further operations that may be performed by the user terminal emulation server 100 are now described with reference to fig. 11 in the context of speaker devices and display devices, although these operations are not so limited, or may be used with other types of I/O user devices.

For these operations, the speaker device is one of the I/O user devices in the set that is capable of playing the audio stream contained in the downlink stream, and the display device is another one of the I/O user devices in the set that is capable of displaying the video stream contained in the downlink stream. Splitting 1108 the downlink stream into a plurality of downlink stream components assigned to different ones of the I/O user devices in the set may include generating a first downlink stream component that includes an audio stream and not a video stream, and generating a second downlink stream component that includes a video stream and not an audio stream.

Formatting 1112 the downlink stream components for transmission may include formatting a first downlink stream component including an audio stream for transmission to a speaker device based on a communication protocol of the speaker device identified by the database, and formatting a second downlink stream component including a video stream for transmission to a display device based on a communication protocol of the display device identified by the database.

Initiating 1114 transmission of the formatted components to the assigned I/O user devices in the set can include initiating transmission of the formatted first downlink stream components to the speaker devices according to a communication protocol identified by the database for the speaker devices, and initiating transmission of the formatted second downlink stream components to the display devices according to a communication protocol identified by the database for the display devices.

Determining 1105 a delay profile may include determining a delay profile for a speaker device. The operation of determining 1105 a delay profile may further comprise determining a delay profile for the display device. Controlling 1116 the timing may include controlling the timing of when the formatted first downlink stream component is communicated to the speaker apparatus and when the formatted second downlink stream component is communicated to the display apparatus based on a comparison of the delay profiles of the speaker and display apparatus.

The delay profile for the speaker device may be determined based on a measurement of a delay of the speaker device receiving the communication from the user terminal emulation server. The delay profile of the display device may be determined based on a measurement of the delay of the display device receiving the communication from the user terminal emulation server. Controlling the timing may include: controlling when the formatted first downlink stream component is transmitted to the speaker apparatus relative to when the formatted second downlink stream component is transmitted to the display apparatus such that the formatted first downlink stream component is received by the speaker apparatus substantially simultaneously with the reception of the formatted second downlink stream component by the display apparatus.

Alternatively or additionally, the delay profile of the speaker apparatus may be determined based on a measurement of a processing delay between receiving the downlink stream component at the speaker apparatus and completing the processing to output the audio signal. The delay profile of the display device may be determined based on a measurement of a processing delay between receiving the downlink stream component at the display device and completing processing to display the content. Controlling the timing may include: controlling when the formatted first downlink stream component is transmitted to the speaker device relative to when the formatted second downlink stream component is transmitted to the display device such that the speaker device completes processing of the formatted first downlink stream component substantially simultaneously with completion of processing of the formatted second downlink stream component by the display device.

Further operations for controlling uplink flow timing and formatting

Fig. 10 is a block diagram of the uplink flow functional components of the user terminal emulation server 100 configured to operate in accordance with some embodiments of the present disclosure. Fig. 12 is a flowchart of uplink flow operations that may be performed by the user terminal emulation server 100 to provide communication services over a set of I/O user devices, in accordance with some embodiments of the present disclosure.

Referring to fig. 10 and 12, the uplink flow functional component of the user terminal emulation server 100 is configured to receive 1200 an uplink flow component from an I/O user device in the set. The uplink flow functional component includes combining 1202 the uplink flow components into a combined uplink flow by formatting 1203 the uplink flow components for transmission to the network entity based on a communication protocol of the network entity identified by the database. The uplink flow function component then initiates 1206 transmission of the combined uplink flow 1034 to the network entity via the communication session between the user terminal emulation application and the network entity.

Combining 1202 the uplink flow components into a combined uplink flow may include: the uplink stream components are substantially time aligned 1204 based on a common time clock when combined into a combined uplink stream. Alternatively or additionally, the operation of combining 1202 the uplink stream components into a combined uplink stream may comprise: the uplink stream components are substantially time aligned 1204 when combined into a combined uplink stream based on the user terminal simulation application and a delay profile of the communication session between the I/O user devices of the set from which the uplink stream components were received.

In the context of the particular example of fig. 10, the streaming protocol receiver formatter 1000a can receive an uplink stream component, e.g., a pair of RTP stream 1030a and RTCP stream 1031a, from the first I/O user device 130 a. Similarly, another streaming protocol receiver formatter 1000b can receive another uplink stream component, such as a pair of RTP stream 1030b and RTCP stream 1031b, from the second I/O user device 130 b. The pair of receiver formatters 1000a and 1000b can format the uplink stream component for transmission to the network entity 150 based on the communication protocol of the network entity identified by the database 120 (figure 15). A pair of TX timing controllers 1010a and 1010b substantially time align uplink stream components 1032a and 1032b using a common time clock provided by NTP module 932. The combiner and transmitter 1020 combines the uplink stream components 1032a and 1032b to generate a combined uplink stream 1034 and transmits the combined uplink stream 1034 to the network entity 150.

Example I/O user device and user terminal emulation Server

FIG. 14 is a block diagram of hardware circuit components of an I/O user device 130 configured to operate in accordance with some embodiments. The I/O user device 130 can include wired/wireless network interface circuitry 1402, near field communication circuitry 1420, at least one processor circuit 1400 (processor), and at least one storage circuit 1410 (memory). Processor 1400 is connected in communication with other components. The memory 1410 stores program code (e.g., user terminal emulation application (s)) 1412 that are executed by the processor 1400 to perform the operations disclosed herein. Processor 1400 may include one or more data processing circuits (e.g., microprocessors and/or digital signal processors) that may be collocated or distributed across one or more data networks. The processor 1400 is configured to execute program code 1412 in memory 1410 (described below as a non-transitory computer-readable medium) to perform some or all of the operations and methods of one or more of the embodiments disclosed herein for mobile electronic devices. The I/O user device 130 can include one or more UI component devices including, but not limited to, a microphone 1440, a speaker 1450, a camera 1430, and a display device 1460, as well as a user input interface 1470.

Figure 15 is a block diagram of the hardware circuit components of the user terminal emulation server 100 configured to operate in accordance with some embodiments. The user terminal emulation server 100 can include wired/wireless network interface circuitry 1520, a database 120 (e.g., listing I/O user devices, UI capabilities of I/O user devices, communication protocols used to communicate with I/O user devices, known proximity to user identifiers, etc.), a display device 1530, a user input interface 1540 (e.g., a keyboard or touch-sensitive display), at least one processor circuit 1500 (processor), and at least one memory circuit 1510 (memory). The processor 1500 is connected in communication with other components. The memory 1510 stores a user terminal emulation application 1512 that is executed by the processor 1500 to perform the operations disclosed herein. Processor 1500 may include one or more data processing circuits (e.g., microprocessors and/or digital signal processors) that may be collocated or distributed across one or more data networks. The processor 1500 is configured to execute computer program instructions in the memory 1510 (described below as a non-transitory computer readable medium) to perform some or all of the operations and methods of one or more of the embodiments disclosed herein for mobile electronic devices.

Cloud implementation

Some or all of the operations described above as being performed by the user terminal emulation server 100 or the I/O user device 130 can alternatively be performed by another and/or by another node that is part of the cloud computing resources. For example, those operations can be performed as network functions near the edge, such as in a cloud resource or cloud server of a telecommunications network operator, for example in a cloudlan or core network, and/or can be performed by a cloud resource or cloud server of a media provider (e.g., an iTunes service provider or Spotify service provider).

Abbreviations:

3GPP third generation partnership project

APP applications, i.e. programs

evolved node B of eNB (also called RBS radio base station)

GW gateway (also Leif GW Persson acronym)

ICMP internet control message protocol

IOD input-output device

ITU International Telecommunications Union

RTP real-time protocol

RTCP real-time control protocol

IOD input/output device

IODH I/O device handler

NTP network time protocol

SDP session description protocol

SR sender response

UE user equipment.

Further definitions and examples:

in the above description of various embodiments of the inventive concept, it is to be understood that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the inventive concept. Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this inventive concept belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of this specification and the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.

When an element is referred to as being "connected," coupled, "responsive," or variants thereof to another element, it can be directly connected, coupled, or responsive to the other element or intervening elements may be present. In contrast, when an element is referred to as being "directly connected," directly coupled, "directly responsive," or variants thereof to another element, there are no intervening elements present. Like numbers refer to like elements throughout. Still further, "coupled," "connected," "responsive," or variations thereof as used herein may include wirelessly coupled, connected, or responsive. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. Well-known functions or constructions may not be described in detail for brevity and/or clarity. The term "and/or" includes any and all combinations of one or more of the associated listed items.

It will be understood that, although the terms first, second, third, etc. may be used herein to describe various elements/operations, these elements/operations should not be limited by these terms. These terms are only used to distinguish one element/operation from another element/operation. Thus, a first element/operation in some embodiments may be termed a second element/operation in other embodiments without departing from the teachings of the present inventive concept. Throughout the specification, the same reference numerals or the same reference signs denote the same or similar elements.

As used herein, the terms "comprises," comprising, "" includes, "including," having, "or variants thereof, are open-ended and include one or more stated features, integers, elements, steps, components, or functions, but do not preclude the presence or addition of one or more other features, integers, elements, steps, components, functions, or groups thereof. Still further, as used herein, the common abbreviation "e.g." (which is derived from the latin phrase "exempli gratia") may be used to introduce or specify one or more general examples of previously mentioned items, and is not intended to limit such items. The common abbreviation "i.e." derived from the latin phrase "id est" may be used to designate a particular item from the more general statement.

Example embodiments are described herein with reference to block diagrams and/or flowchart illustrations of computer-implemented methods, apparatus (systems and/or devices) and/or computer program products. It will be understood that each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, can be implemented by computer program instructions executed by one or more computer circuits. These computer program instructions may be provided to a processor circuit of a general purpose computer circuit, a special purpose computer circuit, and/or other programmable data processing circuit to produce a machine, such that the instructions, which execute via the processor of the computer and/or other programmable data processing apparatus, transform and control transistors, values stored in memory locations, and other hardware components within such circuits to implement the functions/acts specified in the block diagrams and/or flowchart block or blocks, and thereby create means (functionality) and/or structures for implementing the functions/acts specified in the block diagrams and/or flowchart block or blocks.

These computer program instructions may also be stored in a tangible computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instructions which implement the function/act specified in the block diagrams and/or flowchart block or blocks. Accordingly, embodiments of the inventive concept may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.) that runs on a processor (such as a digital signal processor), which may be collectively referred to as "circuitry," "a module," or variants thereof.

It should also be noted that, in some alternative implementations, the functions/acts noted in the blocks may occur out of the order noted in the flowcharts. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved. Moreover, the functionality of a given block of the flowchart and/or block diagrams may be divided into multiple blocks and/or the functionality of two or more blocks of the flowchart and/or block diagrams may be at least partially integrated. Finally, other blocks may be added/inserted between the illustrated blocks and/or blocks/operations may be omitted without departing from the scope of the inventive concept. Moreover, although some of the illustrations include arrows on communication paths showing the primary direction of communication, it is to be understood that communication may occur in the opposite direction to the depicted arrows.

Many variations and modifications can be made to the embodiments without substantially departing from the principles of the present inventive concept. All such variations and modifications are intended to be included herein within the scope of the present inventive concept. Accordingly, the above-disclosed subject matter is to be considered illustrative, and not restrictive, and the appended examples of embodiments are intended to cover all such modifications, enhancements, and other embodiments, which fall within the spirit and scope of the inventive concepts. Thus, to the maximum extent allowed by law, the scope of the present inventive concept is to be determined by the broadest permissible interpretation of the present disclosure including the following examples of embodiments and their equivalents, and shall not be restricted or limited by the foregoing detailed description.

42页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:在自适应路由中使用来自相邻节点的负载信息的算法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!