METHOD AND SYSTEM FOR INTELLIGENT ROUTING OF AN INCOMING CALL OVER A DUAL TELECOMMUNICATION NETWORK
20170374600 · 2017-12-28
Inventors
Cpc classification
H04M3/42246
ELECTRICITY
H04W68/00
ELECTRICITY
H04W88/06
ELECTRICITY
H04M7/1275
ELECTRICITY
H04L65/1059
ELECTRICITY
H04M7/0057
ELECTRICITY
International classification
H04W68/00
ELECTRICITY
Abstract
Present invention refers to a method and a system for intelligent routing of an incoming call over a dual telecommunication network supporting both CS and PS connections, comprising: initiating, from a call router server, a CS call establishment connection; at roughly the same time, sending, a push message over the PS connection to a callee's mobile device; as result of receiving the push message, registering said callee's mobile device into the call router server; providing the call router server with a measure of quality of a PS connection; and in the event of receiving, at the call router server, an unreachable notification from the CS connection and the measure of quality is higher than a pre-established minimum value, routing the incoming call through the PS connection.
Claims
1. Method for intelligent routing of an incoming call over a telecommunication network, where the telecommunication network supports terminating the incoming call both over a circuit switched connection (CS) and over a packet switched connection (PS), which comprises the steps of: a) initiating, from a call router server, a call establishment connection over the CS connection; b) sending, from the call router server, a push message over the PS connection to a callee's mobile device; c) as result of receiving the push message into callee's mobile device, registering said callee's mobile device into the call router server; d) providing the call router server with a measure of quality of a PS connection between callee's mobile device and the call router server; e) in the event of receiving, at the call router server, an unreachable notification from the CS connection initiated at step a) and the measure of quality of step d) is higher than a pre-established minimum value, routing the incoming call through the PS connection.
2. Method according to claim 1 further comprising: providing the call router server with a measure of quality of the CS connection; comparing the measure of quality of the PS connection with the measure of quality of the CS connection; routing the incoming call according to the comparison of both qualities.
3. Method according to claim 2, wherein in the event of the measure of quality of the PS connection is better than the measure of quality of the CS connection, further comprising cancelling the call establishment connection over the CS connection and routing the incoming call over the PS connection.
4. Method according to claim 2 wherein in the event of the measure of quality of the CS connection is better than the measure of quality of the PS connection, further comprising: setting a threshold for maximum waiting time for receiving a notification about the call establishment connection initiated at step a), and in the event the threshold is exceeded: cancelling the call establishment connection over the CS connection and routing the incoming call over the PS connection.
5. Method according to claim 1 further comprising checking if a ringing notification has been received at the call router server before routing the incoming call through the PS connection.
6. Method according to claim 4 wherein a ringing notification received at the call router server from the CS connection is regarded as an invalid notification of the call establishment connection over CS, unless a notification is received through the PS connection informing that the CS call is being alerted at callee's mobile device.
7. Method according to claim 1 wherein the step of providing the call router server with a measure of quality of a PS connection between callee's mobile device and the call router server, further comprising checking if UDP traffic is blocked.
8. Method according to claim 2 wherein the quality of the CS connection is based on a received signal strength received by callee's mobile device, which is obtained from an Arbitrary Strength Unit (ASU) selected parameter.
9. Method according to claim 1 wherein providing the call router server with a measure of quality of a PS connection further comprising sending pilot packets to a publicly available server; as response, the publicly available server sending back the pilot packets; assessing the quality of the PS connection based on selected parameters from the response.
10. Method according to claim 9, wherein selected parameters at least comprises: instance packet loss, jitter and delay.
11. Method according to claim 1, further comprising setting different levels of quality, wherein each of the levels is assigned to certain ranges of the selected parameters.
12. Method according to claim 1, wherein the steps of initiating, from a call router server, a call establishment connection over the CS connection and sending, from the call router server, a push message over the PS connection to a callee's mobile device are carried out at roughly the same time.
13. System for intelligent routing of an incoming call over a telecommunication network, where the telecommunication network supports terminating the incoming call both over a circuit switched connection (CS) and over a packet switched connection (PS), the system comprising a call router server configured for: initiating a call establishment connection over the CS connection; at the same time, sending, a push message over the PS connection to a callee's mobile device; as result of receiving the push message into callee's mobile device, registering said callee's mobile device; receiving a measure of quality of a PS connection between callee's mobile device and the call router server; and in the event of receiving an unreachable notification from the CS connection and the received measure of quality of the PS connection is higher than a pre-established minimum value, routing the incoming call through the PS connection.
14. System according to claim 13 wherein the call router server is further configured for receiving a measure of quality of the CS connection; comparing the measure of quality of the PS connection with the measure of quality of the CS connection; and routing the incoming call according to the comparison of both qualities.
15. Computer program product comprising computer program code adapted to perform the method according to claim 1 when said program code is executed on a computer, a digital signal processor, a field-programmable gate array, an application-specific integrated circuit, a micro-processor, a micro-controller, or any other form of programmable hardware.
Description
DESCRIPTION OF THE DRAWINGS
[0038] To complete the description that is being made and with the object of assisting in a better understanding of the characteristics of the invention, in accordance with a preferred example of practical embodiment thereof, accompanying said description as an integral part thereof, is a drawing wherein, by way of illustration and not restrictively, the following has been represented:
[0039]
[0040]
[0041]
[0042]
[0043]
DETAILED DESCRIPTION OF THE INVENTION
[0044] The matters defined in this detailed description are provided to assist in a comprehensive understanding of the invention. Accordingly, those of ordinary skill in the art will recognize that variation changes and modifications of the embodiments described herein can be made without departing from the scope and spirit of the invention. Also, description of well-known functions and elements are omitted for clarity and conciseness.
[0045] Of course, the embodiments of the invention can be implemented in a variety of architectural platforms, operating and server systems, devices, systems, or applications. Any particular architectural layout or implementation presented herein is provided for purposes of illustration and comprehension only and is not intended to limit aspects of the invention.
[0046] Present invention discloses a method which enhances warming-up the PS connection while evaluating the CS leg in a dual telecommunication network. Main objective of present invention is to increase the chance of a first user waits for a second user to answer a call, so it is essential to reduce waiting times as much as possible. Thus, present invention proposes to not use the signaling connection but instead use the push notification mechanisms provided by each operating system. However, the point of present invention is to not use the push message as the actual indication to start a call alert but as a warm-up request from the call control function. This warm-up request is sent at the same time as the CS leg evaluation starts, buying the PS client a huge head start and saving a useful time which may be crucial to get the call answered.
[0047]
[0048] The method proposed by present invention has already improved in this phase the waiting time at least in 2-3 seconds, since this is the time it normally takes to deliver a push notification to a mobile device. In existing solutions this action is only triggered after the CS leg failure while with the new approach it is done in parallel. Again, do note that no call setup information is passed to the device in this step, or it is passed but with a request not to alert the call until a further request is received.
[0049] Note that for this warm-up phase it is still irrelevant what protocols or technologies are used for the actual call since no call setup activities are started yet. What will happen is that the mobile device reports back the reception of the push message directly to the call routing function and initiates its procedures to register to the server.
[0050] In addition, according to one embodiment of present invention, the call router server (10) may be provided with accurate information about the potential quality of CS and PS legs. In contrast with existing solutions favoring CS calls, where the PS option is only used as a last resort and it does not really matter what quality of service (QoS) it may or may not provide in PS because the CS leg has been already discarded (so better try PS than doing nothing at all), present invention information about the potential quality of the PS and/or CS connections may be gathered and used to take well informed routing decisions.
Determining the Quality of the PS Connection
[0051] At this stage it is assumed that the warm-up push notification has reached the mobile device (12) and that the call routing function installed on the call router server (10) has been informed about the delivery success. Assuming that a VoIP client is installed in the mobile device (12), registration is initiated towards the PS call service or at least a confirmation that an existing connection is working (for instance by sending and receiving ping-pong packets with the server). Then the VoIP client will start to verify the quality of the PS connection.
[0052] Measuring the quality of the PS connection can be done in many ways according to different particular embodiments of present invention, such as sending pilot packets (e.g. fake RTP packets) or pings towards a publicly available server that will loop back the packets to the client that would evaluate the responses. This allows the client and/or the server collecting accurate and up to date information about the quality of the PS connection (for instance based on parameters of packet loss, jitter or delay, but any other parameter can be selected and taken into account). For example, UDP traffic can be considered and if it is detected that UDP traffic is blocked causing no media connectivity, the PS leg is rejected instantly.
[0053] Once a measure of quality and availability of the PS connection is obtained, a more educated decision can be taken on whether the call can be connected over PS or not. Additionally, this information can be used in combination with the results obtained for the CS leg to determine the best way to connect the call.
Determining the Quality of the Cellular Connection
[0054] Present invention, according to a particular of the invention, may gather valuable information about the quality of the cellular connection. The mobile device, for example through an installed mobile application comprising the VoIP client, may request information about cellular network signal strength from the underlying operating system (OS). If these measurements indicate poor or non-existing cellular network coverage, present invention may assume that the cellular network will not be able to reach the mobile device, or if native cellular call reaches the device, low cellular network coverage is likely to produce a deficient communication.
[0055] The cellular network connection quality can be measured by means of the Arbitrary Strength Unit (ASU), an integer value proportional to the received signal strength measured by the mobile device. From the ASU it is possible to calculate the real signal strength measured in dBm (and thereby power in Watts) as follows: [0056] In GSM networks, ASU maps to RSSI (received signal strength indicator, see TS 27.007[1] sub clause 8.5). The valid range of ASU is from 0 to 31 and 99 (for not known or not detectable). The real signal strength measured in dBm is Signal_Strenght (dBm)=2×ASU−113. [0057] In UMTS networks, ASU maps to RSCP level (received signal code power, see TS 27.007[1] sub clause 8.69 and TS 27.133 sub clause 9.1.1.3). The valid range of ASU is −5 to 91 and 255 (for not known or not detectable). The real signal strength is Signal_Strenght (dBm)=ASU−116. [0058] In LTE networks, ASU maps to RSRP (reference signal received power, see TS 36.133, sub-clause 9.1.4). The valid range of ASU is from 0 to 97. For the range 1 to 96, ASU maps to (ASU−141)≦Signal_Strenght (dBm)<(ASU−140). The value of 0 maps to RSRP below −140 dBm and the value of 97 maps to RSRP above −44 dBm.
[0059] Analysis of usage data from dual applications show that close to 8% of all incoming GSM calls are made to devices with an ASU level of 1 or below, which mean a very poor cellular network coverage and even if signaling gets through, the call quality will be poor.
[0060] In order to simplify the computation and to make easier the comparison between qualities of CS and PS connections, one embodiment of the invention comprises setting different ranges in selected parameters corresponding to different levels of quality of an eventual call, for instance a three level classification according to ‘x’ and ‘y’ thresholds for an ASU parameter of an eventual CS call is reproduced in the following table:
TABLE-US-00001 ASU thresholds Level of Quality asu >= x Good quality In this case the CS connection is the preferred approach, and usually a fallback to PS shall just be performed whenever there is a negative feedback about the establishment of the CS call (e.g. device unreachable) y <= ASU < x Poor quality In this case the CS connection is just the preferred approach if there is no better quality alternative (e.g. PS connection having poor quality or non viable) ASU < y Very poor quality or non-existing signal In this case the CS connection shall just be given an opportunity if there is no alternative (e.g. non viable PS connection for instance due to blocked UDP traffic)
[0061] The mobile device may also be configured to query the mobile operating system for the current state of the telephony service. Thus, it can be provided an accurate indication as to whether the device is already engaged in a CS call or if there is an incoming CS call ringing at that moment. Then, according to one particular embodiment, once the signaling connection has been confirmed as well as the expected PS leg media quality, the CS leg signal level and the status of any active CS call, the application sends all this information directly to the call routing function. All these checks will easily be complete in less than 500 msec, which means that, even if there is a 2-3 second delay for delivering the warm-up push notification, starting the application and then less than a second to perform these tests, there is still plenty of time before receiving any feedback from the CS leg, so very early in the call connection process, the routing function will have a positive (or negative) confirmation on the status of the PS leg, but since no PS leg is initiated there is no risk for collisions between the two networks.
[0062] Given that systems from prior art that depend on the feedback from the CS leg before trying the PS leg are very unpredictable, there is no fixed limit for how long it may take for the CS leg to provide feedback and even the ringing notification might not be based on reality. In sharp contrast, with the proposed approach of present invention the call routing function will have a quality indication from the PS leg very early making it possible for the mobile operator to define certain rules for when to connect the call over PS and terminate the attempts on CS.
[0063]
[0064] Even in the regular case in which the call control function waits for a positive or negative response from the cellular network, the fact of having established the PS call in parallel has valuable benefits. Indeed in the very moment when the cellular network informs that the device is “unreachable” through the CS connection the call control function can trigger the incoming call alert through the PS connection that has been pre-established.
[0065]
[0066] In order to further reduce the risk of collisions between the CS and PS legs (splash ringing) the mobile device can send periodic messages to the call routing function of the call router server confirming that the CS call is not ringing at the device. Thus, the call routing function cancels (30) the CS leg attempts slightly before connecting the call over PS (28) and the risk for collisions between the legs will be insignificant.
[0067] In contrast, in the normal scenario the call routing function of the call router server would simply have waited 10 seconds for the CS leg to fail, then tried the PS one adding another 2-3 seconds just to reach the device meaning it would take around 15 seconds just for Bob's phone to ring. Even worse, it could never be guaranteed that it actually took 12 seconds to fail on CS, it could be more or less.
[0068]
[0069] Many times, even if the call routing function receives a ringing notification from a cellular network, it is not guaranteed that said notification is truthful. On the contrary it is very common that the ringing is faked by the network. The consequence of this is that the call may be failing but the initiating client and operator thinks all is ok and that callee's mobile device is indeed ringing.
[0070] Present invention solves this problem taking the information from the mobile device, which knows with 100% certainty if it is ringing or not. Said information will be fed back to the call routing function directly and, in the event that the remote mobile operator says callee's mobile device is ringing while the mobile device (through the app installed) says it is not, then a fake ringing is identified, something that is not possible with existing implementations of prior art.
[0071] Following with the scenario of
[0072] For routing purposes a ringing identified as a fake ringing shall be ignored, that is, no assumption will be derived from said fake ringing, that is receiving a fake ringing shall be neither interpreted as a call being alerted to the callee, nor as a failed call. Whenever the fake ringing is identified the call will not be considered to be actually ringing until this information is also confirmed by the mobile device, which directly takes this information from its operating system.
[0073] As an extension of this concept, the mobile device could continue periodically sending the information about the current CS call status back to the call router server it receives either the call or a notification that this session is no longer valid (for example if it has been cancelled or answered in another device). Thus, it would be provided a close to 100% accurate CS ringing indication by the mobile device, a great advantage compared to the unreliable option provided by the mobile network.
[0074] Different routing decisions and rules may be set up according to different embodiments of present invention. Some examples are provided below according to the procedures previously described: [0075] First of all the CS call establishment begins. In parallel the PS call is warmed up, as previously described. Then the PS connection quality is measured. Also the CS connection quality (e.g. ASU) is obtained from callee's mobile device operating system. Both quality levels are reported to the call routing function of the call router server, which firstly checks if the PS connection is viable, that is, if it has a minimum level of quality and would be viable for a call (e.g. UDP traffic not blocked). [0076] As it can be appreciated when the PS connection has a very low quality or is not viable for a communication, e.g. the UDP traffic is blocked, it will not be considered even as a fallback solution. Instead the initiated CS call establishment shall continue. [0077] If the PS call exceeds a minimum quality threshold then two options can happen depending on how good the PS connection is in comparison with the potential CS connection (e.g. cellular network coverage). Note that the quality measures of the PS and CS are not directly comparable as they measured different parameters, so they are homogenized before comparing them. An exemplary way to do it is to divide quality of both the PS and the CS in 3 different buckets (good quality, poor quality, very poor quality/non-viable) according to ranges of the corresponding parameters so that the quality of a PS call and a CS call in the same quality bucket are similar, and for instance any CS call in a “poor quality CS connection” has a better perceived quality than a PS call in a “very poor quality PS connection”. [0078] If the PS connection quality is deemed to be better than the CS connection quality and the application has not reported the CS call to be actually ringing in the device, then the CS call establishment shall be aborted and soon afterwards the PS call shall be alerted to the callee. As the PS connection has been previously warmed-up this can be done almost immediately. [0079] If on the other hand the CS connection quality is deemed to be better than the PS connection quality then the CS call establishment shall continue and the PS connection shall be kept as fallback in a process that can be called “delayed PS ringing”, which means that, although the first steps of the PS call establishment have been carried out, the PS call is not alerted yet, and instead a VoIP client holds on for some seconds to receive feedback about the establishment of the CS call. In case the cellular network reports the target device to be “unreacheable”, then the PS call is immediately alerted to the callee. [0080] Also after a certain number of seconds (e.g. 7 seconds) without any notification of the CS call to be ringing (excluding fake ringings) the CS call establishment shall be aborted and soon afterwards the PS call shall be alerted to the callee. This way the PS call can have a chance to be answered by the callee before the caller gives up and the risk of a “splash ringing” is minimized. Note that the time waited to receive feedback about the CS call, may be configurable and even adaptive depending on different factors, such as the actual quality of the connections or their relative quality. [0081] If, prior to the expiration of the time limit, a notification of the CS call to be actually ringing is received, then the CS call continues and the PS call is not alerted. [0082]
TABLE-US-00002 PS Good PS Low PS Very Low Quality Quality Quality/Non viable CS Good Delayed PS Delayed PS Continue CS call Quality Ringing Ringing CS Low Cancel CS Delayed PS Continue CS call Quality call and Ringing alert PS call CS Very Low Cancel CS Cancel CS Continue CS call Quality call and call and alert PS call alert PS call
[0084] It is relevant to note that a cellular call cannot be controlled after it reaches the mobile device as natives CS calls are usually managed directly by the operating system. The call routing function has no clue about the cellular network conditions the mobile device is currently under. However by feeding this information from the mobile device operating system to the call routing function, the system can take better control of the situation and indeed the call routing function can take decisions such as aborting the native CS call and resuming a PS call that was warmed up, that is pre-established but not alerted.
[0085] Present invention allows to instantly or almost instantly alerting the call as a VoIP call using the mobile app installed in the mobile device in a scenario of poor or non-existing cellular network coverage. Thus, it is possible to decide to wait a short time to see if the native cellular call leg arrives if it is detected a quality close to a threshold level for the cellular network signal strength.
[0086] Present invention allows the system to successfully establish a relevant percentage of calls by routing them as PS calls, that otherwise would have timed out in the cellular network or in the slightly better scenario they would have connected but quality would have been too poor to maintain the conversation which in turn would impact the customer satisfaction and the Average Call Duration (ACD).