CROSS-REFERENCE TO RELATED APPLICATIONSThis application claims priority to GB Application No. 1905589.6, filed Apr. 18, 2019, and GB Application No. GB1911237.4, filed Aug. 6, 2019, under 35 U.S.C. § 119(a). Each of the above-referenced patent applications is incorporated by reference in its entirety.
BACKGROUND OF THE INVENTIONField of the InventionThe present disclosure relates to improved methods of, apparatus for and computer software for call control in telephony-capable communication networks.
Description of the Related TechnologyTraditional telephony, based on circuit-switched networks such as PSTN (Public Switched Telephony Networks) and GSM (Global System for Mobile communication), is moving towards packet-based telephony using technologies such as Long Term Evolution (LTE) and Next Generation Network (NGN), also referred to as Fifth Generation (5G) technologies. This move to packet-based technologies allows for the convergence of voice and data as well as the provision of further non-voice communication services such as instant messaging, video conferencing, desktop sharing etc. One of the issues associated with these developments is that the user experience can be overly complex, especially when a user attempts to transition from one service to another.
For example, there are known ways to convert a two-way circuit-switched call into a three-way circuit-switched call. However, these techniques are not familiar nor easy to achieve and may requires that specific call control actions are taken in the correct order and the process is not simple or user friendly.
Alternatively, third party meeting apps such as Skype™ may be used. However the quality of service (QoS) for a third party meeting app voice call may be lower than that available for voice calls made via a telephony-capable network such as known cellular networks.
Another alternative approach would be for the network to provide QoS for an entire meeting data stream (voice, screen-sharing etc.). However, third party apps such as meeting apps installed on a user terminal may not be able to access QoS-enabled network services. And although some additional services may defined in a telecommunications network (e.g. video calling) which can benefit from additional QoS, these do not offer the range of collaboration features available via the more richly-featured meeting services.
SUMMARYAccording to a first aspect of the present disclosure, there is provided a method of operating a user terminal in a telecommunications network, the method comprising the steps of:
- establishing a telephony call between a first user, associated with the user terminal, and a remote user;
- conducting data communications between the user terminal and a communications server, such that the user terminal has a first connection to a communications session associated with the communications server;
- initiating a manipulation of the telephony call such that the telephony call forms a second connection to the communications session;
- maintaining both the first connection and the second connection to the communications session, for conducting communications between the first user and the remote user.
According to a second aspect of the present disclosure, there is provided a method of controlling communications in a telecommunications network, the method comprising the steps of:
- conducting data communications between a communications server and a first user terminal, associated with a first user, such that the first user terminal has a first connection to a communications session associated with the communications server, wherein, prior to the data communications between the communications server and the first user terminal, an in-progress telephony call exists between the first user and a second user, associated with a second user terminal;
- participating in a manipulation of the telephony call such that the telephony call forms a second connection to the communications session;
- conducting data communications between the communications server and the second user terminal, such that the second user terminal has a third connection to the communications session; and
- maintaining both the first connection and the second connection to the communications session, and the third connection to the communications session, for conducting communications between the first user and the second user.
According to a third aspect of the present disclosure, there is provided a method of operating a user terminal in a telecommunications network, the method comprising the steps of:
- conducting data communications between the user terminal and a communications server, such that the user terminal has a first connection to a communications session associated with the communications server;
- conducting a telephony call between the user terminal and the communications server, such that the user terminal has a second connection to the communications session;
- transmitting and/or receiving non-voice meeting service data between a user of the user terminal and a remote user, via the first connection; and
- selecting between the first connection and the second connection, for transmitting and/or receiving voice data between the user of the user terminal and the remote user.
According to a fourth aspect of the present disclosure, there is provided a method of controlling communications in a telecommunications network, the method comprising the steps of:
- conducting data communications between a communications server and a user terminal, such that the user terminal has a first connection to a communications session associated with the communications server;
- conducting a telephony call between the communications server and the user terminal, such that the user terminal has a second connection to the communications session;
- transmitting and/or receiving non-voice meeting service data between a user of the user terminal and a remote user, via the first connection; and
- selecting between the first connection and the second connection, for transmitting and/or receiving voice data between the user of the user terminal and the remote user.
An advantage of some aspects is that an in-progress voice call may be uplifted at the communications server whilst maintaining the voice call, thereby improving voice call continuity. The voice call may be native to a voice-optimized communication network, and therefore may be of a higher quality than available by communicating voice data with a communications server directly. There is no need for a call party to take specific call control actions to switch or merge the call, other than to uplift the call to the communications server.
Further features and advantages of the disclosure will become apparent from the following description of preferred embodiments of the disclosure, given by way of example only, which is made with reference to the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 shows a schematic depiction of a communication network, according to a first example of the present disclosure, when a voice call is in progress;
FIG. 2 shows a schematic depiction of the network ofFIG. 1 when the voice call is to be uplifted by a first user whilst keeping the first user terminal on the voice call;
FIG. 3 shows a schematic depiction of the network ofFIG. 1 when the voice call has been uplifted by the first user whilst keeping the first user terminal on the voice call;
FIG. 4 shows a schematic depiction of the network ofFIG. 1 when a three-way call has been set up whilst keeping the first user terminal on the voice call;
FIG. 5 shows a schematic depiction of the network ofFIG. 1 when the voice call is to be uplifted by a second user whilst keeping the second user terminal on a voice call;
FIG. 6 shows a schematic depiction of the network ofFIG. 1 when the voice call is being uplifted by the second user whilst keeping the first and second user terminals on the voice call;
FIG. 7 shows a schematic depiction of the network ofFIG. 1 when the voice call has been uplifted by the first and second users whilst keeping the first and second user terminals on respective ends of the voice call;
FIG. 8 shows a schematic depiction of the network ofFIG. 1 when the voice call is to be uplifted in respect of a second user without keeping the second user terminal on the voice call; and
FIG. 9 shows a schematic depiction of the network ofFIG. 1 when the voice call has been uplifted in respect of a second user without keeping the second user terminal on the voice call.
FIG. 10 shows a schematic depiction of elements of a communication network according to examples of the present disclosure;
FIG. 11 shows a schematic depiction of a communication network, according to a further example of the present disclosure, when a voice call is in progress;
FIG. 12 shows a schematic depiction of the network ofFIG. 11 when the voice call is to be uplifted by a first user whilst keeping the first user terminal on the voice call;
FIGS. 13 to 17 show schematic depictions of steps carried out in the network ofFIG. 11 when the voice call is being uplifted by the first user; and
FIGS. 18 to 21 show schematic depictions of alternative steps carried out in the network ofFIG. 11 when the voice call is being uplifted by the first user.
DETAILED DESCRIPTION OF CERTAIN INVENTIVE EMBODIMENTSFIG. 1 shows a schematic depiction of a communication network according to a first embodiment of the present disclosure when a voice call is in progress. The communication network may include a plurality of interconnected communication networks including a first cellular radio network, a public switched telephony network (PSTN)102, a packet data network (PDN)104 such as the Internet, and a secondcellular radio network106. Acommunications server108, referred to herein as a “meeting server”, may be connected each of to thecellular radio networks100,106 via both the PSTN102 and the PDN104. Whilst thecommunications server108 is referred to herein as a “meeting server”, it should be understood that the meeting server generally provides one or more communication services, which may or may not include one or more meeting services.
FIG. 1 also shows afirst user terminal110A and asecond user terminal110B. These are cellular radio terminals, such as smartphones, which are adapted to conduct voice telephony. Theuser terminals110A,110B may be Long Term Evolution (LTE) user terminals and/a Next Generation Network (NGN) user terminals, also referred to as Fifth Generation (5G) user terminals.
The firstcellular radio network100 may be a Long Term Evolution (LTE) network or a Next Generation Network (NGN) network, also referred to as a Fifth Generation (5G) network. Thecellular radio network100 includes a plurality of radio base stations, of which only one is shown for the sake of clarity, forming part of a radio access network (RAN) associated with thecellular radio network100.
The firstcellular radio network100 may include a plurality of call control nodes, including one or more telephony application servers (TASs), of which only oneTAS112 is shown for the sake of clarity, forming part of a core network of thecellular network100. TheTAS112, sometimes known in a telephony context only as an application server (AS), is used in the core network to provide call control for telephony applications and may provide additional multimedia functions. The core network may have an NGN or IP Multimedia Subsystem (IMS) architecture. TheTAS112 may include components providing call control and/or media transformation, such as a softswitch and/or media gateway.
Thecellular radio network100 may employ the session initial protocol (SIP) for voice calls. The network's call control nodes for voice calls, such asTAS112, may have SIP signalling capabilities and may be directly involved in a voice call's signalling flow. A call control for voice calls, such asTAS112, may be a SIP back-to-back user agent (B2BUA). A call control node for voice calls, such asTAS112, may act as a redirect server, proxy server, originating user agent and/or terminating user agent.
A call control node for voice calls, such asTAS112, may include functionality adapted to emulate the calling features provided by the PSTN, referred to as PSTN Emulation Subsystem (PES), and can include calling features like call forwarding, voicemail and conference bridges. A call control node for voice calls, such asTAS112, may additionally provide advanced features like unified messaging and video calling.
A call control node for voice calls, such asTAS112, may be a purpose-built hardware appliance, may be specialized software running on a general-purpose hardware appliance, may be one or more virtualized network functions (VNFs) running in a cloud environment as part of a network function virtualization (NFV) deployment, or may be one or more distributed applications running in a containerization deployment.
The secondcellular radio network106 may have the characteristics described above in relation to the firstcellular radio network100, and may include a plurality of call control nodes, including one or more TASs, of which only oneTAS114 is shown for the sake of clarity, forming part of a core network of thecellular radio network106.
Voice calls may be initiated or answered by use of a built-in telephony client on auser terminal110A,110B. The built-in telephony client is adapted to interwork with core network functions of thecellular radio networks100,106, to conduct telephony interworking with specific telephony functionality in the core network. Such a telephony client may be referred to as a “native” telephony client and a voice call made via a native telephony client may be referred to as a cellular-network-native voice call, being native to thecellular radio networks100,106. Such cellular-network-native voice calls are referred to herein as “native” voice calls for the sake of brevity. A native voice call is handled by call control nodes such asTASs112,114 in the core of thecellular radio network100. Native voice telephony communication may be provided in a circuit-switched calling arrangement, such as available in 2G and 3G networks, and/or packet-switched calling arrangement, such as available in 4G, 5G and other future networks. Current packet-switched calling arrangements include Voice Over LTE (VoLTE) as defined in GSMA Permanent Reference Document (PRD) IR.92 “IMS Profile for Voice and SMS”, and various future variations are envisaged in 5G and other future networks. A native voice call may have a higher quality of service (QoS) than the standard, best-effort packet-switched data.
Another type of data exchange, which may be referred to as over-the-top (OTT) data exchange, which relies on best-effort packet-switched data, may be conducted by a pre-installed or downloadable software application installed on auser terminal110A,110B, referred to herein as a “meeting app”. The meeting app is adapted to interwork with themeeting server108. Note that, whilst the communication application is referred to herein as a “meeting app”, it should be understood that the meeting app generally provides access to one or more communication services, which may or may not include one or more meeting service.
Themeeting server108 and the meeting apps onuser terminals110A,110B make use of packet data links, for example Hypertext Transfer Protocol (HTTP) connections, which may be set up through thecellular radio networks100,106 but do not pass through a cellular network's call control nodes. The packet data links may carry both session control data and session media data, which two elements are referred to herein generally as session data. The session data is used to establish and control the communications session, and may carry non-voice communications data such as multimedia data to be exchanged between users during the communications session. Such multimedia data may include video image data, still image data, textual data such as instant messaging data, data files, screen sharing data and/or hyperlink data.
Auser terminal110A,110B may simultaneously conduct a native voice call via the native telephony client and OTT data exchanges via the meeting app.
Voice calls may be established via themeeting server108. Such a voice call may be a two-party voice call, or may be a multi-party voice call (i.e. three-or-more-party voice call). A voice call established via themeeting server108 may also referred to as a conference call, and may consist of two or more individual voice calls established between the respective users'user terminals110A,110B and themeeting server108, bridged together at themeeting server108. The individual voice calls may be PSTN voice calls, native voice calls and/or may be OTT data exchange voice calls. A user may access a conference call by dialling into a predetermined service number and entering a conference ID after the call is answered by an Interactive Voice Response (IVR) component at themeeting server108. Alternatively, or in addition, a user may access a conference call by clicking on a hyperlink in a Hypertext Markup Language (HTML) formatted communication such as an email. Further alternatively, or in addition, a user may access a conference call by receiving an out-dial voice call from themeeting server108 after having been invited by one of the other participants using a meeting app on theiruser terminal110A,110B.
A communications session established via themeeting server108 may involve a voice call component and/or a multimedia data exchange component.
Themeeting server108 may be a purpose-built hardware appliance, may be specialized software running on a general-purpose hardware appliance, may be one or more virtualized network functions (VNFs) running in a cloud environment as part of a network function virtualization (NFV) deployment, or may be one or more distributed applications running in a containerization deployment.
FIG. 1 illustrates a communication state, in which first and second users are conducting a native voice call, which has been established via each of the first andsecond TAS112,114 and via thePSTN102, on theircellular user terminals110A,110B. The voice call has for example been initiated by use of a native telephone dialler on one of theuser terminals110A,110B and has been answered by use of a native telephone answering function on theother user terminal110A,110B. The voice call includes afirst call leg116, established between thefirst user terminal110A and thefirst TAS112, a second, middle, callleg118, established between thefirst TAS112 and thesecond TAS114, and athird call leg120, established between thesecond TAS114 and thesecond user terminal110B. Themiddle call leg118 may be established via thePSTN102, as shown. In an alternative (not shown), where the twouser terminals110A,110B are operating in the same cellular network, the middle call leg may be established across two different TASs within the cellular network. Where the two user terminals are currently being serviced by the same TAS, themiddle call leg118 may not exist at the physical level but may be controlled as a logical connection within a single TAS. Themeeting server108 may also be co-located with a, or the, TAS.
FIG. 2 illustrates a communication state, in which the first user has initiated an uplift in communication whilst keeping thefirst user terminal110A on the native voice call. The meeting app is adapted to interwork not only with themeeting server108 but also with thefirst TAS112. The first user may for example initiate an uplift in communication by opening the meeting app during the call, and pressing a single button, or a combination of buttons, on the user interface provided by the meeting app to request uplift of an in-progress native voice call. In response to the initiation, the meeting app may query the operating system of thefirst user terminal110A for call-characterising data indicating one or more characteristics of the currently in-progress call. The call-characterising data may include, for example, a telephony party identifier of the second user, which is associated with the second user terminal, and which may be either the calling party ID or the called party ID for the call, depending on which party initiated the call.
The meeting app may cause thefirst user terminal110A to transmit a callcontrol instruction message122 to thefirst TAS112. The callcontrol instruction message122 is for associating a to-be-established new call leg, between theTAS112 and themeeting server108, with the currently in-progress native voice call. The callcontrol instruction message122, and/or subsequent call control data sent from thefirst user terminal110A and themeeting server108, includes one or more elements of call control data.
The callcontrol instruction message122, and/or subsequent call control data sent from thefirst user terminal110A to theTAS112, may include call control data requesting communication uplift processing to be initiated by theTAS112. TheTAS112 processes the callcontrol instruction message122, and in response, sets a call feature, referred to herein as “call-based uplift”, relating to receiving an incoming call from themeeting server108. The call feature may be set on theTAS112 in relation to the telephony party identifier of the first user.
The callcontrol instruction message122, and/or subsequent call control data sent from thefirst user terminal110A to theTAS112, may include call control data in the form of call-identifying data indicative of the first user's telephony party identifier, namely that associated with thefirst user terminal110A, and/or the call-characterising data. TheTAS112 may use the call-identifying data to identify call state associated with the currently in-progress native voice call, and to set a call-based uplift feature only for the currently in-progress call. Alternatively, or in addition, a call-based uplift feature may be set according to different parameters, such as an identity of themeeting server108. Call control data is stored on theTAS112 to indicate that the feature has been set.
The callcontrol instruction message122, and/or subsequent call control data sent from thefirst user terminal110A to theTAS112, may include call control data in the form of incoming-uplift-call identifying data. The incoming-uplift-call identifying data may include one or more of a telephony party identifier of themeeting server108 used as a calling party identifier, a special service number used as called party identifier, or predetermined indicator to be included in signalling, associated with an incoming call from themeeting server108.
The meeting app may cause thefirst user terminal110A to transmit asession request message124 to themeeting server108, requesting the establishment of a communications session. In addition, the session request message may cause themeeting server108 to establish a new call leg with theTAS112, in order to make the meeting server108 a party to the voice call via the new call leg, and to associate the new call leg with the communications session, in order to associate the communications session with the in-progress native voice call.
Thesession request message124, and/or subsequent session data sent from thefirst user terminal110A to themeeting server108, includes one or more elements of session control data.
Thesession request message124, and/or subsequent session data sent from thefirst user terminal110A to themeeting server108, may include session control data in the form of an identifier associated with the first user terminal, for example a telephony party identifier of the first user.
Thesession request message124, and/or subsequent session data sent from thefirst user terminal110A to themeeting server108, may include session control data indicating that the first user wishes to uplift an existing native voice call into the data communications session.
Thesession request message124, and/or subsequent session data sent from thefirst user terminal110A to themeeting server108, may include session control data in the form an identity associated with theTAS112 to enable the meeting server to send uplift control data directly to theTAS112. Such information may not be available to theuser terminal110A, or may not be necessary in order to perform uplift, and may not be included.
Thesession request message124, and/or subsequent session data sent from thefirst user terminal110A to themeeting server108, may include session control data in the form of identity associated with the user terminal of the other call party, for example the telephony party identifier of the second users. Such information may not be necessary in order to perform uplift, and may not be included.
In response to receiving thesession request message124, themeeting server108 may initiate a new call leg by sending a call establishment request from themeeting server108 to the first user. The call establishment request may include an uplift party identifier. In an example, the uplift party identifier may be the telephony party identifier of the first user, which may be included in the call establishment request as the called party identifier for the new call leg. Alternatively, another form of identifier, for example a random string or number, may be used as the uplift party identifier. An uplift party identifier may be agreed between thefirst user terminal110A and themeeting server108, which may in turn each pass that identifier on to theTAS112 for correlation. The uplift party identifier may be originally generated in thefirst user terminal110A and passed onto themeeting server108, or vice versa.
In response to receiving the call establishment request from themeeting server108, theTAS112 may correlate the uplift party identifier with the call control data set for the call-based uplift feature, and connect thenew call leg128 to the voice call on the basis of the correlating. TheTAS112 connects thenew call leg128 to the in-progress native voice call on the basis of the call control instruction message received earlier, to make the meeting server108 a party to the voice call. TheTAS112 may merge thenew call leg128 with the existingcall legs116,118.
FIG. 3 illustrates a communication state, in which the native voice call has been uplifted by the first user whilst keeping thefirst user terminal110A on the native voice call.
Themeeting server108 may respond to thesession request message124 to establish a new communications session, for example a conference call, and to establish a communication link in the form of adata exchange connection126, betweenfirst user terminal110A and themeeting server108, associated with the new communications session.
FIG. 4 illustrates a communication state, in which a three-way call has been set up whilst keeping thefirst user terminal110A on the native voice call.
Thefirst user terminal110A, having uplifted communication as described in relation toFIGS. 1 and 3, may make use of various in-session services provided by themeeting server108. Meeting content may be streamed, with a meeting data stream being sent in each direction via thedata exchange connection126. The meeting data streams may include various elements of meeting data content such as screen sharing data, video data, instant messaging data, etc.
In addition, or in the alternative, the meeting data stream may include control data for controlling the session at the meeting server. For example, the call may be converted into a multi-party conference call. To convert the call into a multi-party conference call, the first user may interact with the meeting app on thefirst user terminal110A, in response to which the meeting app may transmit an add-participant request message to themeeting server108 via thedata exchange connection126.
In response to receiving the add-participant request message, themeeting server108 may cause an additional call with a further participant to be added, with the calls bridged together at themeeting server108. The additional calls may be a PSTN voice call, a native voice call, an OTT data exchange voice calls. Alternatively, the additional call may be conducted from acomputer terminal130 via thePDN104 via afurther communication link132. The additional user may access the conference call by dialling into a predetermined service number and entering a conference ID associated with the communications session set up by the first user, after the call is answered by an Interactive Voice Response (IVR) component at themeeting server108. Alternatively, or in addition, the additional user may access the conference call by clicking on a hyperlink in a Hypertext Markup Language (HTML) formatted communication such as an email or text message sent by the first user from thefirst user terminal110A, on the basis of session-identifying information received from themeeting server108 over thesession data link126. Further alternatively, or in addition, the additional user may access the conference call by receiving an out-dial voice call from themeeting server108 after having been invited by the first user using the meeting app on theiruser terminal110A.
FIG. 5 illustrates a communication state, in which the native voice call is also to be uplifted by a second user whilst keeping thesecond user terminal110B on the native voice call. In this state, the native voice call has already been uplifted by the first user as described in relation toFIGS. 1 to 3.
Thesecond user terminal110B transmits a callcontrol instruction message134, similar to the call control instruction message described above, to thesecond TAS114. Thesecond user terminal110B also transmits asession request message136, similar to thesession request message136 described above, to themeeting server108.
Thesession request message136 may cause themeeting server108 to join thesecond user terminal110B into the existing communications session, of which it is already a part for voice data exchange by virtue of the native voice call having been merged with thenew call leg128. After themeeting server108 joins thesecond user terminal110B into the existing communications session the second user may additionally conduct session control, and multimedia data exchange, via the meeting app on thesecond user terminal110B.
FIG. 6 illustrates a communication state, when the native voice call is being uplifted by the second user whilst keeping the first andsecond user terminals110A,110B on the native voice call. Thesession request message136 may cause themeeting server108 to initiate a establish afurther call leg140, shown inFIG. 6, in a manner similar to the way in which thenew call leg128 has been established. Thefurther call leg140 may be merged with theother call legs118,120 at thesecond TAS114, thus associating thefurther call leg140 with the communications session.
FIG. 7 illustrates a communication state, when the native voice call has been uplifted by the first and second users whilst keeping the first andsecond user terminals110A,110B on respective ends of the native voice call. Themiddle call leg118 may be torn down by thesecond TAS114 once thefurther call leg140 has been merged with theother call legs118,120 at thesecond TAS114. An instruction to tear down themiddle call leg118 after establishment of the further call leg may accompany either the call establishment request for establishing thefurther call leg114, or the call control instruction message callcontrol instruction message134.
In the example described above inFIGS. 6 to 8, the first and second TAS conduct call uplift processing by merging in new call legs. In an alternative, a TAS may cut over to a new call leg rather than merging in the new call leg. In this example, rather than merging in thenew call leg128 with the originalmiddle call leg118 as shown inFIG. 5, thefirst TAS112 may cut over from themiddle call leg118 to thenew call leg128. And, rather than merging in thenew call leg140 with the originalmiddle call leg118 as shown inFIG. 6, thesecond TAS114 may cut over from themiddle call leg118 to thenew call leg140, with a resulting communication state as shown inFIG. 7. In this example, the two ends of the call may co-ordinate triggers which cause the cut-overs to the new call legs, so that there is no glitch in the voice call uplift procedure. The co-ordination may be done by conducted by any of the control nodes involved in the uplift procedure, namely the first andsecond user terminals110A,110B, the first andsecond TAS112,114 and themeeting server108, either alone or in combination.
TheTAS112 may for example connect thenew call leg128 to the in-progress native voice call on the basis of the call control instruction message received earlier, to make the meeting server108 a party to the voice call, in response to receiving a trigger message from theuser terminal110A which causes the cut-over to thenew call leg128. Similarly theTAS114 may for example connect thenew call leg140 to the in-progress native voice call on the basis of the call control instruction message received earlier, to make the meeting server108 a party to the voice call, in response to receiving a trigger message from theuser terminal110B which causes the cut-over to thenew call leg140. The two user terminals, in particular the messaging apps on the user terminals, may co-ordinate the sending of each respective trigger message to eachrespective TAS112,114, by automatic communication between the messaging apps which confirm that each side is ready to perform uplift. Uplift, and the cut-overs performed by theTAS112,114 can then be performed at exactly the same time, or at least effectively the same time to avoid glitches. Prior to the trigger messages being sent to theTAS112,114 by therespective user terminal110A,110B, the user terminals may be informed by each respective TAS that it is ready for uplift, having received a call establishment request from themeeting server108.
In some examples, as TAS, in this case thesecond TAS114, cannot conduct call-based uplift or other forms of call uplift processing. The TAS may, for example, be a legacy TAS.FIG. 8 illustrates a communication state, when the native voice call is to be uplifted in respect of a second user without keeping thesecond user terminal110B on the native voice call.
As before, the meeting app on thesecond user terminal110B may send asession request message142 whilst the call is in progress. However in this case the meeting app on thesecond user terminal110B does not send a call control instruction message to thesecond TAS114. In response to thesession request message142, the meeting server may make the second user terminal a party to the communications session via a newly establisheddata exchange link144, as illustrated inFIG. 9, when the native voice call has been uplifted in respect of the second user without keeping thesecond user terminal110B on the native voice call. In this case, the meeting app on thesecond user terminal110B, or the second user themselves, may terminate the native voice call. The meeting app on thesecond user terminal110B may connect the user to a new OTT voice call established via themeeting server108. In this example, themeeting server108 communicates voice call data for the conference call between themeeting server108 and thefirst user terminal110A via thenew call leg128 and communicates the voice call data between themeeting server108 and the second user terminal via the newly establisheddata exchange link144.
As well as participating in the conference call managed by meetingserver108, the second user may now also conduct multimedia data exchange with the first user, using the meeting app on thesecond user terminal110B, via the newly establisheddata exchange link144.
Thefirst user terminal110A, having uplifted communication as described in relation to any ofFIGS. 1 to 9, has a first connection to the communications session at themeeting server108, and having initiated a manipulation of the telephony call such that the telephony call forms a second connection to the communications session at themeeting server108, can now maintain both the first connection and the second connection to themeeting server108, for conducting communications between the first user and the second user, via themeeting server108. The meeting server meanwhile maintains at least a third connection to thesecond user terminal110A, as described. Both the first user and the second user may make use of the various in-session services provided by themeeting server108, as described above. For example, the call may be converted into a multi-party conference call. When the first user decides to end interaction with the second user via themeeting server108, the first user may end both the first connection and the second connection to themeeting server108 substantially simultaneously, for example using a single button on the meeting app.
Whilst in the example shown inFIG. 8, thecall legs118,128 are merged by thefirst TAS112, thefirst TAS112 may cut over from theold call leg118 to thenew call leg108. The cut-over may be controlled by co-ordination between the messaging apps on the two user terminals, as described above.
In the example shown inFIGS. 8 and 9, thedata exchange link144 between themeeting server108 and thesecond user terminal110B is established by the meeting app sending from thesecond user terminal110B asession request message142. In the alternative, themeeting server108 may initiate the establishment of thedata exchange link144 by transmitting a session invite message, for example as a push notification message, to the second user terminal in response to receiving the session control data from thefirst user terminal110A.
In the above-described examples, a call control instruction is included in a callcontrol instruction message124 sent from thefirst user terminal110A, or asimilar message134 sent from thesecond user terminal110B, to arespective TAS112,114. Thus the call control state is changed under the control of the user's terminal. In an alternative, themessage server108 may be treated as a trusted party by aTAS112,114 and call control instructions may be included in signalling associated with a call establishment request sent by themeeting server108 to set up thenew call leg128 andfurther call leg140 respectively. The call control instructions may be based upon information included in session requests124,136 sent to themeeting server108 by the first andsecond user terminals110A,110B respectively.
In the above-described examples, thenew call leg128 andfurther call leg140 are established by a call establishment request originating at themeeting server108. In alternative examples, a call establishment request may be originated at arespective TAS112,114 in order to set up thenew call leg128 andfurther call leg140, in response to the call control instructions received from eachrespective user terminal110A,110B. Thus aTAS112,114 may transmit a call establishment request to themeeting server108 in response to the call control instruction. The call establishment request may comprise a calling party identifier associated with the first user. The meeting server may transmit an answer message to the call establishment request to accept the call. TheTAS112,114 may establish thenew call leg128, and further callleg140, in response to the answer, and proceed to merge it with the in-progress native voice call as described above.
Where a call establishment request is originated at aTAS112 in order to set up thenew call leg128, the TAS may include a session establishment request in signalling associated with the call establishment request, the session establishment request identifying a characteristic of the communications session, for example the telephony party identifiers.
In the above-described examples, thesecond user terminal110B is at least initially connected to the native voice call via asecond TAS114. In an alternative, thesecond user terminal110B may be at least initially connected to the native voice call via thesame TAS112 that the first user terminal11A is connected to. Thus, a single TAS may conduct uplift for both the andsecond user terminals110A,110B respectively, and/or either endpoint separately.
An enhanced telephony function, such as that described herein, may assist users in uplifting a native voice call whilst keeping the user terminal on the native voice call, thereby providing an enhanced user experience and an opportunity for additional services and functionality to be made available to the user, via a separate data exchange link, whilst maintaining call quality.
A native voice call may for example be initiated by a user entering a telephony identifier, for example a telephone dialling number, into a native telephony client of a user terminal. The telephony identifier may be entered by the user dialling digits into the native telephony client or by the user selecting a remote party with whom they wish to conduct telephony from an address book (or ‘contacts’) function of a user terminal. Native voice telephony can be initiated in other ways, for example by speaking the name of the entity with whom they wish to conduct telephony in association with a dial-by-voice function of a user terminal.
Referring now toFIG. 10, there is shown an example of telephony equipment used in some examples of the disclosure. Access network arrangements, including a cellular access network which is used by at least thefirst user terminal110A to access telephony services, are not shown here but should be understood to be included.
Thefirst user terminal110A may support native voice telephony communication, along with other types of communication such as packet-based data communication, short messaging service (SMS) communication, multimedia messaging service (MMS) communication and/or other types of telephony. Native voice telephony communication may be provided in a circuit-switched calling arrangement, such as available in 2G and 3G networks, and/or packet-switched calling arrangement, such as available in 4G, 5G and other future networks.
In this example, the telephony equipment comprises afirst user terminal110A, network-basedtelephony equipment150 and asecond user terminal110B. Theuser terminals110A,110B may be a mobile user terminal or a non-mobile user terminal. Examples of user terminals include, but are not limited to, smartphones, tablet computing devices, laptop computing devices, desktop computing devices, smart televisions, computer games consoles, wearable computing devices and personal digital assistants.
Thetelephony network equipment150 may comprise one or more servers. In some examples, thetelephony network equipment150 comprises atelephony application server112. An example of a telephony application server is a SIP application server. Thetelephony network equipment150 may also comprise ameeting server108. Thetelephony network equipment150 may comprise one or more physical resources and/or one or more virtualised resources. Where the telephony network equipment comprises multiple resources, the resources may be co-located or may be located remotely from each other.
Theuser terminals110A,110B each comprise arespective telephony client152A,152B and arespective meeting app154A,154B. Thetelephony clients152A,152B and therespective meeting apps154A,154B may be logically separate components of theuser terminals110A,110B.
In this example, thetelephony clients152A,152B of theuser terminals110A,110B are each native to the user terminal. Thetelephony client152A,152B is native in that it is a default telephony function, which may (or may not) have been pre-installed when theuser terminal110A,110B and may (or may not be) part of an operating system of theuser terminal110A,110B. A native function may, in some cases, be referred to as a ‘built-in’, ‘out-of-the-box’ or ‘default’ function. Thetelephony client152A,152B is operable to conduct voice telephony via thetelephony module156. Thetelephony client152A,152B may be operable to conduct voice telephony via a circuit-switched link. The circuit-switched part of the telephony network may comprise a public land mobile network (PLMN) and/or a public switched telephone network (PSTN). Thetelephony client152A,152B may also, or in the alternative, be operable to conduct voice telephony via a packet-switched link. For example, thetelephony client152A,152B may be operable to conduct Voice over Internet Protocol (VoIP) communication via a packet-switched link.
Themeeting app154A,154B may be configured to communicate with themeeting server108 via a packet-switched link, which may at least in part be the same as that used bytelephony client152A,152B. The packet-switched link may comprise a public network, for example the Internet, and/or a private network. Themeeting app154A,154B may be configured to communicate with thetelephony network equipment150 using a client-server connection. Themeeting app154A,154B may be configured to communicate withmeeting server108 using HTTP or HTTPS, for example.
In some examples, thetelephony client152A,152B and themeeting app154A,154B are comprised in a common software application on theuser terminal110A,110B.
In other examples, thetelephony client152A,152B and themeeting app154A,154B are comprised in separate software applications on theuser terminal110A,210B. In such other examples, themeeting app154A,154B may be configured to use one or more APIs of thenative telephony client152A,152B to communicate with thetelephony client152A,152B. As such, as an alternative or in addition to providing suggestion functionality within thenative telephony client152A,152B, applications or functions installed alongside thenative telephony client152A,152B may use APIs made available by thenative telephony client152A,152B and/or APIs made available by theuser terminal110A,210B itself to provide the suggestion functionality described herein.
Themeeting app154A,154B may be configured to transmit telephony control data associated with telephony conducted by thetelephony client152A,152B. Themeeting app154A may be configured to transmit such data to the network-basedtelephony network equipment150, for example to themeeting uplift module158.
Themeeting app154A,154B may be configured to transmit the telephony control data during a native voice call being conducted by thetelephony client152A,152B. For example, themeeting app154A,154B may be configured to transmit the telephony control data in response to a trigger event. The trigger event may comprise the receipt of user input via themeeting app154A,154B, for example the user pressing an “uplift call” button and/or a communication event associated with themeeting app154A,154B, for example an incoming session establishment notification. The communication event may comprise themeeting app154A,154B receiving data from themeeting server108. and/or from theother meeting app154B,154A, associated with a request to conduct a communications session.
Themeeting app154A,154B may be operable to cause the voice telephony conducted with thetelephony client152A,154A of theuser terminal110A,110B on which the meeting app is installed to be uplifted. Alternatively or additionally, themeeting app154A,154B may be operable to cause the voice telephony conducted with thetelephony client152B,152A of theremote user terminal110B,110A to be uplifted. Themeeting app154A,154B may be able to cause an uplift initiation message to be transmitted to cause the voice telephony to be uplifted.
FIGS. 11 to 21 illustrate examples of the present disclosure. Where the same reference numerals have been used as in previous examples, the above description of the corresponding elements should be understood to apply to these examples.
FIG. 11 illustrates a communication state, in which first and second users are conducting a native voice call, which has been established via aTAS112, on theiruser terminals110A,210B. Each of theuser terminals110A,210B may have an installedmeeting app154A,154B and at least oneseparate telephony client152A,152B as previously described. Here, thefirst user terminal110A is connected to theTAS112 via acellular radio network100, which may be referred to as the cellular access network. TheTAS112 is shown as being located outside of the cellular access network but may be located inside or outside of thecellular radio network100. One or more additional call control nodes, for example a Session Border Controller (SBC) or Call Session Control Function (CSCF), may be connected in thecall leg116 between thefirst user terminal110A and theTAS112. In this example, thesecond user terminal210B is a general purpose computing device, such as a laptop or desktop computer, connected to theTAS112 via acall leg204 across packet data network (PDN)202. The packet data network (PDN)202 may be an IP network. Alternatively, thesecond user terminal210B could be another cellular user terminal, connected via the same or a different a cellular access network, similar to thefirst user terminal110A.
FIG. 12 illustrates a communication state, in which the first user has initiated an uplift in communication whilst keeping thefirst user terminal110A on the native voice call. Themeeting app154A on thefirst user terminal110A is adapted to interwork not only with themeeting server108 but also with theTAS112. The first user may for example initiate an uplift in communication by opening themeeting app154A during the call, and pressing a single button, or a combination of buttons, on the user interface provided by themeeting app154A to request uplift of an in-progress native voice call. In response to the initiation, themeeting app154A may query the operating system of thefirst user terminal110A for call-characterising data indicating one or more characteristics of the currently in-progress call. The call-characterising data may include, for example, a call party identifier of the first user, which is associated with thefirst user terminal110A, and which may be either the calling party ID or the called party ID for the call, depending on which party initiated the call. The call-characterising data may include, for example, a call party identifier of the second user, which is associated with thesecond user terminal210B, and which may be either the calling party ID or the called party ID for the call, depending on which party initiated the call.
Themeeting app154A may cause thefirst user terminal110A to transmit asession request message124 to themeeting server108, requesting the establishment of a communications session. This will result in the connection of themeeting app154A with themeeting server108, via a client-server connection using a secure protocol such as HTTPS.
Thesession request message124, and/or subsequent session data sent from thefirst user terminal110A to themeeting server108, includes one or more elements of session control data.
Thesession request message124, and/or subsequent session data sent from thefirst user terminal110A to themeeting server108, may include session control data indicating that the first user wishes to uplift an existing native voice call into the data communications session.
Thesession request message124, and/or subsequent session data sent from thefirst user terminal110A to themeeting server108, may include session control data in the form of an identifier associated with the first user terminal, for example the call party identifier of the first user.
Thesession request message124, and/or subsequent session data sent from thefirst user terminal110A to themeeting server108, may include session control data in the form of an identifier associated with the second user terminal, for example the call party identifier of the second user. Such information may not be necessary in order to perform uplift, and may not be included.
Depending on how thesecond user terminal210B is to be informed of the uplift, for example if the second user terminal is informed by means of a message directly from thefirst user terminal110A, such information may not be necessary in order to perform uplift in respect of the first user, and may not be included. However if themeeting server108 is to initiate communication with thesecond user terminal210B, an identifiers associated with both thefirst user terminal110A and thesecond user terminal210B are preferably sent by thefirst user terminal110A to themeeting server108.
Referring toFIG. 13, themeeting server108 may respond to thesession request message124 to establish a new communications session, for example a video conference, and to establish a communication link in the form of adata exchange connection126, betweenfirst user terminal110A and themeeting server108, associated with the new communications session.
Themeeting app154A is then connected with themeeting server108, via a client-serverdata exchange link126 using a secure protocol such as HTTPS. The meeting server uses thisdata exchange link126 to send an identifier for the newly established communications session to themeeting app154A on thefirst user terminal110A. The communications session identifier may for example be a globally-unique voice telephony identifier such as a SIP address, identifying the meeting server with the hostname, and a locally-unique reference for the session as the username, e.g. meetingID@meetingserver.example.com.
Themeeting app154A may cause thefirst user terminal110A to transmit a callcontrol instruction message206 to theTAS112. The callcontrol instruction message206 is addressed to theTAS112. The address of the TAS currently handling the in-progress voice call may be derived by themeeting app154A for example by lookup in a service database using a reference to the in-progress voice call, for example by means of a call identifier and/or by means of the two call party identifiers of the first and second users. The callcontrol instruction message206 is handled by themeeting uplift module158 in theTAS112.
The callcontrol instruction message206 is for initiating the transfer of thecall leg116, from theTAS112 to themeeting server108, with the currently in-progress native voice call being maintained at least with respect to thefirst user terminal110A.
The callcontrol instruction message206, and/or subsequent call control data sent from thefirst user terminal110A to theTAS112, includes one or more elements of call control data. The call control data may include the communications session identifier previously sent by themeeting server108 to themeeting app154A on thefirst user terminal110A. The call control data may also reference the in-progress voice call, for example by means of a call identifier such as the SIP dialog identifier for the call, and/or by means of the two call party identifiers of the first and second users.
In response to receiving thesession request message124, and/or subsequent session data sent from thefirst user terminal110A to themeeting server108, themeeting server108 may also initiate the establishment of a new OTT data link with thesecond user terminal210B. Themeeting server108 may initiate the establishment of the new OTT data link by sending asession invite message208 to thesecond user terminal210B. The session invite message may include the call party identifier of the first user as information to be presented to the second user when receiving the session invite (e.g. “You are currently in call with [call party identifier], please click to accept uplift to video conference”). The session invitemessage208 may for example be a push notification message. It may include a URL including data identifying or corresponding to the session ID, for example www.meetingserver.example.com/meetingID. The session invite message may be presented by themeeting app154B on thesecond user terminal210B to the second user, or may be presented by a notification function on thesecond user terminal210B associated with the push notification.
Referring toFIG. 14, if the second user accepts thesession invite message208, for example by pressing a single button, or a combination of buttons, on the user interface provided by themeeting app154B or the notification function, thesecond user terminal210B sends in response asession join message212. The session joinmessage212 includes the URL including data identifying or corresponding to the session ID, for example www.meetingserver.example.com/meetingID, which was sent in the session invite message, and the meeting server then establishes a connection to the meeting app.
Themeeting app154B on thesecond user terminal210B is then connected with themeeting server108, via a client-serverdata exchange link218, as shown inFIG. 15, using a secure protocol such as HTTPS. Themeeting server108 joins the second user into the appropriate communications session using the session ID received in thesession join message212. The second user, via themeeting app154B on thesecond user terminal210B, is then thereby joined into the same communications session in which the first user, via themeeting app154A on thefirst user terminal110A, is already a participant. The communications session may include a voice call bridge such that thesecond user terminal210B may now continue the voice call via the client-serverdata exchange link218, and the user or themeeting app154B may terminate the originalvoice call leg204, as shown inFIG. 16.
The second user, via themeeting app154B on thesecond user terminal210B, may also participate in additional data communication using any enhanced call-related services provided by the meeting server (for example video conferencing) with respect to the first user. Both the first user and second users, via themeeting apps154A,154B on the first andsecond user terminals110A,210B, are now participants in the same communications session, and may conduct for example video conferencing with each other via themeeting server108.
Referring back toFIG. 14, on receipt of the callcontrol instruction message206, themeeting uplift module158 in theTAS112 parses the message contents and in response to the call control instruction, instructs thetelephony module156 in theTAS112, which is handling the call control for the currently in-progress call between the twouser terminals110A,210B, to transfer thecall leg116 from theTAS112 to themeeting server108. Themeeting uplift module158 identifies the in-progress call and also passes the communications session identifier to the telephony module for processing.
The transfer at this point may be conducted using network-based call control functionality available in the native telephony protocol used in thecellular radio network100, in this example SIP. The telephony module may for example use the Basic Transfer Call Flow mechanism described in IETF RFC 5589—“Session Initiation Protocol (SIP) Call Control—Transfer”, the contents of which are incorporated herein by reference. The transferor may be theTAS112, the transferee may be theuser terminal110A and the transfer target may be themeeting server108, more particularly the specially-established communications session at themeeting server108.
Thetelephony module156 in theTAS112 may put thecall leg116 on hold and transmit a REFERmessage214 to thenative telephone client152A in theuser terminal110A, which is handling the in-progress nativevoice call leg116. The Refer-To header may include details of the communications session which has been established at meetingserver108 for the call uplift (e.g. it contains the SIP address of the communications session, for example meetingID@meetingserver.example.com).
Referring toFIG. 15, on receipt of the REFERmessage214 thenative telephone client152A in theuser terminal110A may send anINVITE message216 which is addressed to the SIP address of the communications session at themeeting server108. TheINVITE message216 may be transmitted to themeeting server108 directly, via a call control node other than theTAS112, and/or via theTAS112.
Referring toFIG. 16, receipt of a200 OK message (not shown) from themessage server108 in response to theINVITE message216 results in the setting up of a cellular-native call path220 between thefirst user terminal110A and themeeting server108. In this way thetelephone client152A is connected to the appropriate communications session which provides, amongst other services, a voice call bridge for conducting voice calls with respect to thesecond user terminal210B and other parties that may be invited to attend.
On receipt of the200 OK message from themeeting server108, thetelephone client152A may then release thecall leg116 by sending a BYE message to theTAS112.
As shown inFIG. 17, thefirst user terminal110A is now connected, via the specially-established communications session at themeeting server108, to thesecond user terminal210B. The first user terminal may be connected to the session both via a cellular-nativevoice call leg220, which is a maintained voice call as regards the first user terminal, and a newly-established OTT data link126, which has been set up as a result of the uplift initiated by the first user. As a result of the uplift, the maintained cellular-native voice call has been manipulated by network-based call control to re-route the voice call to themeeting server108.
Also as shown inFIG. 17, thesecond user terminal210B is now connected, via the specially-established communications session at themeeting server108, to thefirst user terminal110A. Thesecond user terminal210B may be connected to the session via only a newly-established OTT data link218, which has been set up as a result of the uplift initiated by the first user. The telephony module may for example use the Transfer with Dialog Reuse mechanism described in IETF RFC 5589—“Session Initiation Protocol (SIP) Call Control—Transfer”, the contents of which are incorporated herein by reference, where the REFERmessage214 is sent within the existing SIP dialog context ofcall116.
Note that, whilst in the example described above in relation toFIGS. 11 to 17 the transferee in the call manipulation is thefirst user terminal110A, the transferee may alternatively be an intermediate call control node, for example a Session Border Controller (SBC) or Call Session Control Function (CSCF), acting as a SIP back-to-back user agent (B2BUA) in thecall leg116.
Note that, whilst in the example described inFIGS. 11 to 17 the re-routing of thecall leg116 to callleg220—on the one hand—and the setting up of the OTT data link218 and the tearing down of the second call leg—on the other hand—are not synchronized other than via their initial triggering in call uplift. However one or more additional synchronization steps may be performed during the progress of call uplift. For example theINVITE message216 received bymessage server208 may be used to trigger thesession invite message208 being sent to the second user terminal210A. Alternatively, a NOTIFY message, informing thefirst user terminal110A of the successful setting up of thecall path220, may be used to trigger the sending of a session invite message directly from thefirst user terminal110A to thesecond user terminal210B.
FIGS. 18 to 21 illustrate an alternative call flow to that illustrated inFIGS. 11 to 17. In this alternative, the call flow may proceed as described in relation toFIGS. 11 to 13 above. Referring now toFIG. 18, on receipt of the callcontrol instruction message206, themeeting uplift module158 in theTAS112 parses the message contents and in response to the call control instruction, instructs thetelephony module156 in theTAS112, which is handling the call control for the currently in-progress call between the twouser terminals110A,210B, to transfer thecall leg116 from theTAS112 to themeeting server108. Themeeting uplift module158 identifies the in-progress call, for example using the SIP dialog identifier for the call, and also passes the communications session identifier to the telephony module for processing.
The transfer at this point may be conducted using network-based call control functionality available in the native telephony protocol used in thecellular radio network100, in this example SIP. The telephony module may for example use the Transfer Protecting Transfer Target mechanism described in IETF RFC 5589—“Session Initiation Protocol (SIP) Call Control—Transfer”, the contents of which are incorporated herein by reference. Again, the transferor may be theTAS112, the transferee may be theuser terminal110A and the transfer target may be themeeting server108, more particularly the specially-established communications session at themeeting server108.
Thetelephony module156 in theTAS112 may put thecall leg116 on hold and transmit a REFERmessage222 to themeeting server108. The REFERmessage222 may include details of the communications session which has been established at meetingserver108 for the call uplift (e.g. it contains the SIP address of the communications session, for example meetingID@meetingserver.example.com). The REFERmessage222 may also identify the in-progress call, for example using the SIP dialog identifier for the call. Alternatively, the information may be transmitted separately to themeeting server108, either from themeeting uplift module158 in theTAS112 or from theuser terminal110A.
Referring toFIG. 19, in response to receipt of the REFERmessage222, themeeting server108 may send an “INVITE with Replaces”message224, containing the identifier for the in-progress call, to theuser terminal110A. This establishes a newSIP call leg226 between themeeting server108 and theuser terminal110A, whilst indicating to theuser terminal110A that thenew call leg226 replaces thefirst call leg116 instead of presenting it to the user as new incoming call. In response to receipt of the “INVITE with Replaces” message, thetelephone client152A may then identify and release thecall leg116 by sending a BYE message to theTAS112.
As shown inFIG. 21, thefirst user terminal110A is now connected, via the specially-established communications session at themeeting server108, to thesecond user terminal210B. The first user terminal may be connected to the session both via a cellular-nativevoice call leg226, which is a maintained voice call as regards the first user terminal, and a newly-established OTT data link126, which has been set up as a result of the uplift initiated by the first user. As a result of the uplift, the maintained cellular-native voice call has been manipulated by network-based call control to re-route the voice call to themeeting server108.
Thefirst user terminal110A, having uplifted communication as described in relation to any ofFIGS. 11 to 17 and 18 to 21, has a first connection to the communications session at themeeting server108, and having initiated a manipulation of the telephony call such that the telephony call forms a second connection to the communications session at themeeting server108, can now maintain both the first connection and the second connection to themeeting server108, for conducting communications between the first user and the second user, via themeeting server108. The meeting server meanwhile maintains at least a third connection to thesecond user terminal110A, as described. Both the first user and the second user may make use of the various in-session services provided by themeeting server108, as described above. For example, the call may be converted into a multi-party conference call. When the first user decides to end interaction with the second user via themeeting server108, the first user may end both the first connection and the second connection to themeeting server108 substantially simultaneously, for example using a single button on themeeting app154A.
Whilst in the above examples, the call control node is a telephony application server in the core network, the call control node may take other forms. For example, the call control node may reside at least in part in a user terminal. A user terminal may for example include a SIP user agent capable of merging calls in the manner described.
In the above examples, the session data, such as the non-voice communications data, which are transmitted between themeeting server108 and themeeting apps154A,154B onuser terminals110A,110B make use of OTT packet data links, for example Hypertext Transfer Protocol (HTTP) connections, which are set up through thecellular networks100,106 but do not pass through a cellular network's call control nodes. In the alternative, or in addition, such session data may be transmitted via a separate network link, such as an Internet or other packet data network link accessed via a Wi-Fi™ access point. The native voice call may also go via Wi-Fi™, in the case that auser terminal110A,110B supports voice over Wi-Fi™ calling (VoWi-fi, as defined in GSMA Permanent Reference Document (PRD) IR.51 “IMS over Wi-Fi”; various future variations are envisaged in 5G and other future networks.)
In relation to the examples described above, a native voice call may generally provide a better experience to the end user than transmitting and/or receiving voice over an OTT connection to a meeting session. However, transmitting and/or receiving voice over an OTT connection may provide a better user experience in some circumstances, some of which are described below.
A native cellular voice service may use a narrowband codec (e.g. an Adaptive Multi-Rate (AMR) codec). Themeeting server108 and/or themeeting app154A,154B may use a high-definition codecs designed for lossy Internet networks (e.g. a codec operating according to the Opus standard (as described in IETF RFC 6716, the contents of which are incorporated herein by reference). When the cellular data connection is good (or the user is in good quality Wi-Fi™ range), then OTT voice can potentially outperform voice quality offered by the native cellular network.
Even if cellular network supports a higher definition codec (e.g. an AMR-WB codec, an Enhanced Voice Services (EVS) codec), the media may get transcoded to another codec type before it reaches the meeting server108 (e.g. due to intermediate equipment not supporting the cellular codec). Indeed, multiple such transcodings can result in the audio being severely degraded.
A native voice call may adopt a VoWi-Fi connection as a way for improving in-building coverage and/or offload traffic from congested cellular networks, in this case the native voice call may not actually receive any additional QOS from the cellular network.
Themeeting server108 and/or themeeting app154A,154B may offer an OTT video stream, which is transmitted as part of the non-voice meeting service data. When the voice goes through a different network path (e.g. the native voice path), then there is a greater risk that differences in end-to-end latency can cause lip-sync issues, etc.
In further examples of the present disclosure, one or more assessments of OTT voice quality and/or a native voice quality may be made to inform a decision as to which voice connection to use. The selected voice connection may then be used for the transmission of voice data by one of or both of themeeting app154A,154B and the meeting server. The one or more assessments may be made at themeeting server108 and/or at themeeting app154A,154B. Examples of assessment are described below and may be used alone or in any combination. The one or more assessments may be made at the start of a call and/or data communications session, once during a call and/or data communications session or repeatedly during a call and/or data communications session. The decision may be made at themeeting server108 and/or at themeeting app154A,154B. The decision may be made at the start of a call and/or data communications session, once during a call and/or data communications session or repeatedly during a call and/or data communications session.
Themeeting server108 and/or themeeting app154A,154B may perform an assessment by measuring an observed quality or qualities of the one or more data packets sent over an OTT data connection (e.g. latency, packet loss etc.)
In some examples, an assessment may be performed by themeeting server108 and/or themeeting app154A,154B sending dedicated test packets over an OTT data connection and measuring an observed quality or qualities.
In some examples, an assessment may be performed by themeeting server108 and/or themeeting app154A,154B measuring an observed quality or qualities of one or more packets in a meeting service data stream (e.g. a screen-sharing data stream being delivered via an OTT data connection).
In some examples, an assessment may be performed by themeeting server108 and/or themeeting app154A,154B detecting which data network(s) the user terminal is connected or connectable to. For example, preferentially selecting the OTT data connection whenever the user terminal is connected or connectable to a known good Wi-Fi™ network; preferentially selecting the native voice connection when the user terminal only has access to an EDGE cellular data connection etc.
In some examples, an assessment may be performed by themeeting app154A,154B detecting on the user terminal the availability of one or more data networks (using information provided by the terminal's operating system to themeeting app154A,154B) and determining an OTT voice call quality based on the available data network(s).
In some examples, an assessment may be performed by themeeting server108 observing an IP address of the user terminal on an OTT connection in order to determine which data network the user terminal is currently connected to and determining an OTT voice call quality based on the determined data network.
In some examples, an assessment may be performed by themeeting server108 and/or themeeting app154A,154B analysing a signal received via the native voice connection and determining a native voice call quality based on the analysis. The assessment may be performed by analysing the voice signal. As well as analysing the voice signal, the assessment of the native voice connection could alternatively or additionally be performed by analysing the underlying packet stream which is used to carry the voice signal, e.g. by measuring Real-time Transport Protocol (RTP) jitter, inspecting Real-time Transport Control Protocol (RTCP) Extended Report (XR) packets (as described in IETF RFC 3611, the contents of which are incorporated herein by reference), etc.
In some examples, an assessment may be performed by themeeting server108 and/or themeeting app154A,154B analysing a received voice signal by means of frequency analysis techniques, to determine whether the cellular voice connection is using a standard definition or high definition codec.
In some examples, an assessment may be performed by themeeting server108 and/or themeeting app154A,154B analysing a received voice signal by comparing a voice sample in a received signal with a voice sample in a transmitted signal and detecting signal distortion (which may suggest that the native voice connection includes multiple transcoding procedures). The compared voice samples may be the same voice sample. Themeeting server108 and/or themeeting app154A,154B may for example make a copy of a voice sample transmitted via the native voice connection and transmit the copy to the other end via the OTT data connection, preferably without lossy compression being applied. On receipt of both samples, these may be stored and compared to determine an native voice call quality based on the comparison. Since the sample sent via the OTT data connection does not need to be played in real time to the user, it can be transported using a reliable non-real time protocol (e.g. TCP).
Having determined that an OTT voice stream provides a better experience than the cellular voice stream, themeeting server108 and/or themeeting app154A,154B may release the native voice connection and then use the OTT voice part of the communications session connection.
If the communications session connection, according to subsequent assessment using one of the methods described above, later deteriorates, the cellular voice can be re-established (e.g. themeeting app154A,154B may trigger the establishment of a native voice call from the user terminal to themeeting server108; themeeting server108 triggers the establishment of a native voice call to the user terminal). Note that, in the case of re-establishment of the voice call, the user terminal may alert the user when it receives the incoming native voice call, or prompt the user if an outgoing native voice call to be made to themeeting server108. This is to be contrasted with the manipulation of the in-progress voice call when uplift first occurs, however may be an acceptable intrusion to the user in order to improve voice quality.
In some examples of the present disclosure, both the native voice connection and the OTT voice connection may be maintained, and themeeting server108 and/or themeeting app154A,154B may dynamically select which stream is transmitted from and/or played to the user (e.g. by dynamically muting the signal in/out of themeeting server108 and/or themeeting app154A,154B). Although maintaining duplicate voice connections may seem to be an inefficient use of bandwidth, the impact can be mitigated by for example by using a codec featuring silence suppression or by renegotiating a media stream (e.g. by marking a RTP stream as “a=inactive” as described by IETF RFC 3264—“An Offer/Answer Model with the Session Description Protocol (SDP)”, the contents of which are incorporated herein by reference).
Whilst some of the voice calls of the present disclosure provide native voice calls between the user terminals comprising circuit-switched network connections, and/or OTT voice calls comprising OTT Voice-over IP (VoIP) connections, it should be understood that the nature of the connection between the communications server and the respective user terminals is not critical to the present disclosure. Other network connections may be used, and the limitations of one or more of the user terminals may mean that a mix of fixed networks, mobile networks and different transport technologies or applications are used to provide the respective connections between the user terminals and between the user terminals and the communications server. Furthermore, whilst a user terminal terminates both a native voice call and acts as an endpoint the communications session, the two functions could be performed on separate devices at the user end. For example, a user may use a fixed line telephone with no data capabilities, to terminate the native voice call, and a desktop computer, to act as an endpoint the communications session, in order to perform call uplift as described.
As mentioned above, a TAS may additionally provide advanced features like video telephony. In the above examples, the telephony call is a voice call. In the alternative, or additionally, the telephony call may be a video call, which may be handled natively in the cellular networks.
In the above examples, the original voice call is a two-party voice call. Alternatively, the original voice call may be a multi-party voice call.
Functionality of the present disclosure, in particular the meeting app on a user terminal, themeeting server108, and the first andsecond TAS112,114, can be implemented on computer software by a conventional computing apparatus. Such computer software may be transmitted and installed via remote configuration, or may be accessed via download, for example via the Internet, or on some physical media, for example flash memory, etc. for which the computing apparatus has an appropriate media reader.
It is to be understood that any feature described in relation to any one embodiment may be used alone, or in combination with other features described, and may also be used in combination with one or more features of any other of the embodiments, or any combination of any other of the embodiments. Furthermore, equivalents and modifications not described above may also be employed without departing from the scope of the disclosure, which is defined in the accompanying claims.