US9769321B1 - Systems, methods, devices and arrangements for cost-effective routing - Google Patents

Systems, methods, devices and arrangements for cost-effective routing Download PDF

Info

Publication number
US9769321B1
US9769321B1 US14/947,015 US201514947015A US9769321B1 US 9769321 B1 US9769321 B1 US 9769321B1 US 201514947015 A US201514947015 A US 201514947015A US 9769321 B1 US9769321 B1 US 9769321B1
Authority
US
United States
Prior art keywords
call
voip
call quality
endpoint device
endpoint
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
US14/947,015
Inventor
Marc Petit-Huguenin
Garth Judge
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WILMINGTON SAVINGS FUND SOCIETY FSB
Original Assignee
8X8 Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US14/947,015 priority Critical patent/US9769321B1/en
Application filed by 8X8 Inc filed Critical 8X8 Inc
Assigned to 8X8, INC. reassignment 8X8, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PETIT-HUGUENIN, MARC, JUDGE, GARTH
Application granted granted Critical
Priority to US15/708,654 priority patent/US10057428B1/en
Publication of US9769321B1 publication Critical patent/US9769321B1/en
Priority to US16/105,373 priority patent/US10547749B1/en
Priority to US16/748,112 priority patent/US11108913B1/en
Priority to US17/411,768 priority patent/US11659095B1/en
Assigned to WILMINGTON SAVINGS FUND SOCIETY, FSB reassignment WILMINGTON SAVINGS FUND SOCIETY, FSB INTELLECTUAL PROPERTY SECURITY AGREEMENT Assignors: 8X8, INC., FUZE, INC.
Assigned to WILMINGTON SAVINGS FUND SOCIETY, FSB reassignment WILMINGTON SAVINGS FUND SOCIETY, FSB CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBERS SECTION TO REMOVE APPLICATION NUMBERS 11265423, 11252205, 11240370, 11252276, AND 11297182 PREVIOUSLY RECORDED ON REEL 061085 FRAME 0861. ASSIGNOR(S) HEREBY CONFIRMS THE INTELLECTUAL PROPERTY SECURITY AGREEMENT. Assignors: 8X8, INC., FUZE, INC.
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
    • H04M7/0081Network operation, administration, maintenance, or provisioning
    • H04M7/0084Network monitoring; Error detection; Error recovery; Network testing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • H04L65/1006
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/56Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP for VoIP communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/0014Carrier regulation
    • H04L2027/0044Control loops for carrier regulation
    • H04L2027/0071Control of loops
    • H04L2027/0075Error weighting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
    • H04M7/0066Details of access arrangements to the networks
    • H04M7/0069Details of access arrangements to the networks comprising a residential gateway, e.g. those which provide an adapter for POTS or ISDN terminals

Definitions

  • the present invention relates generally to cost effective routing and to systems, methods and devices for defining and adjusting data routing across multiple platforms.
  • VoIP Voice over Internet Protocol
  • IP Internet Protocol
  • a microphone converts sound into analog electrical signals.
  • the analog signals are then converted to a digital form.
  • compression techniques e.g., audio codecs that encode speech
  • IP Internet protocol
  • connection and disconnection processes that are implemented between two VoIP endpoint devices are sometimes referred to as set-up and tear-down, respectively.
  • This set-up and tear-down of calls is implemented according to rules defined by various VoIP (and or video-based) session control protocols, such as, H.323, Session Initiation Protocol (SIP), Real-time Transport Protocol (RTP), and/or IP Multimedia Subsystem (IMS).
  • VoIP and or video-based session control protocols
  • SIP Session Initiation Protocol
  • RTP Real-time Transport Protocol
  • IMS IP Multimedia Subsystem
  • VoIP Voice-over-IP
  • VoIP Voice-over-IP
  • Other issues include call quality factors such as packet loss, packet delay, and packet jitter.
  • VoIP Video-over-IP
  • VoIP Video-over-IP
  • packet loss can cause intermittent freezing of a video stream as well as artifacts. Such aspects can be considerably frustrating to a viewer and even render the video stream unintelligible.
  • aspects of the present invention are directed to routing selections that address challenges including those discussed above, and that are applicable to a variety of voice, video and data applications, devices, systems and methods. These and other aspects of the present invention are exemplified in a number of implementations and applications, some of which are shown in the figures and characterized in the claims section that follows.
  • endpoint devices are used to monitor and/or assess the call-quality.
  • the assessment is sent to a centralized server arrangement and call-routing is controlled therefrom.
  • Endpoint devices employ a decentralized testing mechanism to further monitor and assess call quality including the use of test connections. Aspects of call quality are analyzed and attributed to endpoint devices and/or local connections or networks to distinguish intermediate routing issues from local/endpoint issues.
  • a system provides call routing.
  • the system includes a plurality of endpoint devices each having an Internet Protocol (IP) interface, an audio output for producing audible sounds, an audio input for converting audible sounds to electrical signals, and a circuit including at least one processor and programmed software instructions.
  • IP Internet Protocol
  • the processor When the programmed software instructions are executed by the at least one processor, the processor performs the steps of measuring a plurality of call quality factors for a VoIP call implemented using the IP interface, and publishing, using the IP interface, data representing the plurality of call quality factors.
  • the system also includes at least one server that has a database containing call-quality metrics and call-cost metrics for various call-routing options.
  • the at least one server is configured and arranged for: receiving the published data representing the plurality of call quality factors, assigning, to the received data, weight factors representing different portions of a call route for the VoIP call, respectively, and selecting a call route for a subsequent VoIP call using an algorithm based upon the assigned weight factors and the call-cost metrics.
  • a Voice over Internet Protocol (VoIP) endpoint device includes an Internet Protocol (IP) interface; an audio output for producing audible sounds; an audio input for converting audible sounds to electrical signals; and a circuit that includes at least one processor and programmed software instructions.
  • IP Internet Protocol
  • steps are performed that include measuring a plurality of call quality factors for a VoIP call implemented using the IP interface, assigning, to the measured plurality of call quality factors, weight factors representing different portions of a call route for the VoIP call, and publishing, using the IP interface, results of the assessment of the plurality of call quality factors.
  • FIG. 1 depicts a system for communicating between endpoint devices using VoIP/VioIP, consistent with an embodiment of the present invention
  • FIG. 2 depicts a request/response transaction model, consistent with an embodiment of the present invention
  • FIG. 3 depicts a flow diagram for establishing test connections between endpoint devices, consistent with embodiments of the present invention.
  • FIG. 4 depicts a functional diagram for an endpoint device, consistent with an embodiment of the present invention.
  • the present invention is directed to routing decisions including routing packet-based communications over a network, such as the Internet, and related approaches, their uses and systems for the same.
  • a network such as the Internet
  • VoIP Voice over Internet Protocol
  • aspects of the present invention are also found to be useful for Video over Internet Protocol (VioIP) communications (with or without accompanying audio). While the present invention is not necessarily limited to such applications, various aspects of the invention may be appreciated through a discussion of various examples using this context.
  • Embodiments of the present invention relate to systems and components of systems that work as part of a robust voice call-routing solution. Aspects of the invention are implemented at various points in a call system that provides VoIP/VioIP call services. Endpoint devices, which provide call functions directly to a human user, communicate with one another using VoIP/VioIP servers that provide call-lookup, proxy functionality, NAT traversal and other functionality. Particular implementations also relate to routing of video communications between endpoint devices. While the transmitted data and specific data protocols used to format and send the data may differ, video and audio calls sometimes use many of the same underlying protocols for establishing and maintaining data connections (e.g., similar setup and teardown procedures). Aspects of the present invention relate to call-routing decisions made by a centralized server that services multiple endpoint devices.
  • the endpoint devices can be configured to facilitate data collection and to offload some of the processing from the centralized server.
  • Other aspects relate to decentralized call-routing decisions made by the endpoint devices.
  • the various components can be implemented alone or in combination as should be apparent from the many possible combinations that are discussed herein. Such discussions, however, are not limiting and variations thereof are possible.
  • various embodiments of the present invention relate to the use of call-quality metrics and call-cost metrics in selection of a routing path.
  • Particular implementations are relatively robust and flexible allowing for use of many different underlying algorithms and methods.
  • U.S. Pat. No. 7,352,852, to Cocherl, et al. and issued Apr. 1, 2008; and U.S. Pat. No. 7,339,934 to Mussman et al. and issued Mar. 4, 2008 each describe example least-cost routing algorithms and uses thereof.
  • EWMA Exponentially Weighted Moving Average
  • VoIP (or VioIP) capable endpoint devices establish a VoIP/VioIP connection to another device over a particular call route.
  • a call quality metric is determined for the call and associated with the particular call route.
  • call-routing decisions are made using an algorithm that can be configured to consider a variety of factors. A few factors include, but are not necessarily limited to, the call quality metric, financial costs associated with the routing, the type of service plan associated with the endpoint devices, the time of day and the type of endpoint device.
  • Call quality metrics can be designed as a function of a number of parameters.
  • parameters include jitter, packet loss, echoing and latency.
  • Latency can be caused by delay factors, such as jitter buffer delay, propagation delay, transport delay and packetization/coding delays.
  • Jitter buffer delay is caused by storage of received data in a buffer useful for compensating for varying arrival times of data.
  • Propagation delay represents the time necessary for a data signal to physically traverse the network between two endpoint devices.
  • Transport delay represents the delay necessary to traverse the various network devices within a data path.
  • Packetization/coding delays are caused by data formatting and can include time necessary for conversions between analog and digital, compression and formatting of data into packets.
  • the endpoint devices monitor call parameters during a call. Once the call is completed, the endpoint devices send the monitored call parameters to a remote server.
  • the end point devices can send a Session Initiation Protocol (SIP) publish message that includes, within the body of the message, a call quality metric and/or the monitored parameters.
  • SIP Session Initiation Protocol
  • the remote server uses this data to determine preferred call routing for endpoint devices making subsequent calls.
  • the poor call quality metric results are attributed to specific portions or aspects of the call route. For instance, poor connections between an endpoint device and a local router, LAN or modem are a common cause of poor quality metric results.
  • a quality metric for a particular endpoint device can be a poor indicator of the quality of a particular route for another endpoint device, particularly where the other endpoint device uses a different local connection point.
  • the individual connection point is a significant cause of poor call quality, modifying call routing that occurs after the initial connection point may not solve the problem with the call quality. Accordingly, aspects of the present invention distinguish between different portions of the call route and attribute quality ratings to the respective portions. Intelligent call-routing decisions are then made using this additional data.
  • connection points vary in available bandwidth, which can reduce the call quality.
  • Heavily loaded connection points can be caused by applications running on the endpoint device (e.g., file-sharing programs or malware/spyware) and other devices using the same connection point. Heavily loaded connection points cause a reduction in the available bandwidth.
  • unwanted echoes are often caused by feedback or other problems within the endpoint device (e.g., poor lighting for video, feedback from speaker to microphone, electromagnetic crosstalk or poor speaker/microphone termination), as opposed to call routing, and can be attributed accordingly. Repeatedly poor latency can often be associated with problems in the call route and attributed in this fashion.
  • a particular implementation uses the symptoms to determine a weight factor for respective portions. This weight factor is then used as a correlation between a call quality metric and a respective portion. Strongly correlated portions suggest that the portions are a likely cause of a poor quality metric.
  • This determination can be carried out by the endpoint devices or by one or more centralized servers. For instance, the endpoint devices could attribute a poor quality metric as 10% endpoint device, 70% local connection and 20% remote routing. This information could be locally stored and/or transmitted to a remote server.
  • the number of VoIP/VioIP capable devices is rapidly increasing due in part to increased usage of mobile/handheld devices with Internet capabilities.
  • the mobility of the devices can complicate the ability to monitor and assess the likely source of poor call quality.
  • mobile devices may connect to multiple different connection points within a single day.
  • Each connection point can exhibit a different connection quality and use a different call route.
  • the routing beyond the connection points can range from virtually identical or completely different, e.g., depending upon the relative location of the connection points.
  • the true connection point can be hidden and difficult to ascertain when, for example, the mobile device connection point is to a private network that uses NAT, firewalls and the like. As such, identification of the endpoint device does not necessarily correlate to a particular, or static, connection point.
  • One aspect of the present invention relates to an application that can be implemented on such mobile devices. Recognizing that the mobile device has visibility of the initial connection point and private network associated therewith, the mobile device tracks used connection points and an indication of the call quality metrics for the connection points. When establishing a new call, the application can make an initial routing decision based upon the stored call quality metric for the current connection point.
  • a mobile endpoint device may connect to a first wireless network access point and make a VoIP/VioIP call using this connection.
  • the call quality metric of this call is recorded as being poor, and particularly, having quality factors that suggest that the connection point is a limiting factor.
  • the mobile device has other connection capabilities, such as cellular, PSTN, wired IP connections, or other available wireless networks, the mobile device can opt to use those connections.
  • Another routing option is the selection of a particular VoIP/VioIP connection server or proxy.
  • VoIP/VioIP servers may have preferences in terms of monetary costs (whether user or provided costs) to competing voice quality preferences (e.g., due to server performance or network location).
  • the voice quality metric for a particular connection is poor, the mobile device can select a server with a better quality metric over another server.
  • the connection may exhibit a higher monetary cost but also have a higher quality metric.
  • Routing selections by the mobile device can be performed by applying a user profile that contains data regarding the respective costs of the different connection options.
  • the application accesses this user profile in combination with the recorded quality metrics to determine the desired connection and/or call route.
  • the user profile is controlled by the (VoIP/VioIP) service provider.
  • the service provider is then able to perform offline analysis of the VoIP/VioIP service and adjust the user profiles accordingly. This allows for the service provider to control various aspects (e.g., server loads, overall voice quality or call-related costs) in combination with a distributed routing decisions system that uses the endpoint devices to implement call-routing decisions.
  • EA endpoint application
  • User-developed applications are becoming increasingly useful. These applications can greatly increase the value of a particular service or device often in ways not originally contemplated. They also provide users with endless customizations and personalization of the product or service.
  • the EA provides an interface to affect the routing decisions. This allows such user-developed applications to provide some level of input and control over the routing decisions.
  • the service provider determines the precise amount of control given to the user application by the EA. Allowing the user-developed application to have less control means that the service provider is able to exhibit more control over how the calls are routed. Allowing the user-developed application to have more control increases the potential for different types of user applications.
  • VoIP applications can be organically created by individuals or generated by companies for download.
  • a number of VoIP applications are currently available for providing VoIP connections with cellular phones (e.g., Fring, Talkster, Nimbuzz or Barablu).
  • Such applications can interface with the EA to provide customizable routing decisions.
  • One component of the EA is designed to provide an application interface that receives an input representing the importance of quality vs. cost to the user.
  • the input could be a value on a scale (e.g., scale of 1 to 10 with 10 representing the highest quality importance, with little regard for cost).
  • the EA receives the input and uses it as part of the routing decision.
  • the EA can directly perform the routing decision based upon the input and/or forward the input to a remote server for routing decisions.
  • the user-designed application could provide a value for the input based upon nearly any criteria. For example, the user application may designate calls to certain numbers (e.g., personal calls) as having lower priority of quality while others (e.g., business calls) have a higher priority of quality.
  • Video could be given a lower priority than audio and vice versa.
  • Another EA might automatically detect a physical location or a logical location (e.g., GPS-determined location or a connection-point-determined location) for the mobile device and adjust the input accordingly.
  • the EA could also simply allow the user to directly set the input value through a graphical user interface (GUI).
  • GUI graphical user interface
  • Implementations of the EA receive, from the user application, inputs representing the importance of a number of different call-quality and call-cost criteria. For instance, the user application could indicate that jitter is highly important, while echoing is not as important. In another instance, the application could indicate that all factors are equally important.
  • the EA can also be designed to allow the user application to add one or more custom factors.
  • the EA will continue to monitor jitter, packet loss, echoing and latency (and other factors) during calls; however, the user application can introduce additional factors stored as part of the call quality assessment. For instance, the user application could monitor audio-frequency components of the call or some other factor as yet undetermined. The input would then be added as a component of the call quality metric for the user's endpoint device and thereby be used as part of subsequent call routing decisions.
  • One mode of the EA even allows the user application to fully control, set or define the algorithms used to determine call quality and/or the routing decisions.
  • the EA can set the level of control in response to a number of mechanisms.
  • One such mechanism involves a tiered-service structure. In this manner, the EA provides additional control to users that have higher service plans.
  • Embodiments of the present invention also allow the endpoint devices to use various diagnostic procedures to help assess the likely cause of poor call quality.
  • One such diagnostic procedure relates to endpoint-based problems with transmitting or receiving data packets. For example, insufficient processing power (e.g., due to design and/or other applications demanding processing resources) can result in degraded call quality.
  • the endpoint enters a diagnostic mode. In the diagnostic mode, the endpoint transmits a pseudo-data stream to itself. This can be accomplished using a loopback IP address (e.g., 127.0.0.1) as defined in the IP standards. Quality factors for the loopback transmission are measured accordingly. Problems incurred during this loopback transmission are largely limited to problems of the endpoint device.
  • poor quality indications can be attributed to the endpoint device with high confidence.
  • the quality indications from an actual call can then be adjusted to account for the endpoint device's internal quality factor. In this manner, the system can discount such endpoint device issues when assessing a particular call route.
  • the EA also uses input from users to assess and define the quality of a call route.
  • the EA prompts a user to provide call-quality feedback (e.g., rate call from 1 to 10) and use this information as part of the call-quality assessment.
  • call-quality feedback e.g., rate call from 1 to 10.
  • the EA can be configured to obtain user input in other manners.
  • a particular implementation takes advantage of mobile devices that have motion sensing components, such as gyroscopes.
  • the user is encouraged to shake the device.
  • the shaking indicates to the EA that the user may be experiencing poor call quality. If the shaking coincides with other indications of poor call quality, then the EA can be relatively certain that the user is providing negative feedback regarding the call quality.
  • User participation is encouraged because it is believed that shaking the device is a natural response that requires less time and consideration than asking the user to input a numerical value.
  • the EA can respond to the shaking by attempting to establish a connection via a different call route. Once established, the EA can seamlessly switch the conversation to the second call route. If the user is aware of this general feature, it provides additional incentive to provide feedback by shaking as the shaking may result in an improved connection due to this re-routing of the call.
  • call quality metrics include Mean Opinion Score (MOS), ITU P.861 (Perceptual Speech Quality Measure or PSQM), ITU P.826 (Perceptual Evaluation of Speech Quality or PESQ), ITU P.563, or ITU P.800 (Perceptual Analysis/Measurement System or PAMS) as well as variations and combinations thereof.
  • Example video quality metrics include, but are not limited to, ITU-T Rec. J.246 (RR) and J.247 (FR).
  • Collection and analysis of data obtained during active calls is a powerful tool in assessing call quality as a function of call routing; however, aspects of the present invention allow for active testing of call-routing parameters.
  • additional information regarding the call route in question can be actively obtained.
  • One mechanism for actively obtaining call route information involves use of additional endpoint devices to dynamically test the state of the network by testing various call routes.
  • These additional endpoint devices transmit test data along one or more data routes.
  • the test data can be used to define the voice quality provided by a particular data route.
  • This testing can be implemented in response to poor call quality being detected by a particular endpoint device. In certain implementations, this allows for the test to be conducted while a call associated with the particular endpoint device is still ongoing.
  • the various quality metrics can then be directly correlated in time, which can be useful in determining a likely cause of poor call quality. For instance, a VoIP/VioIP server can identify an endpoint device that has a similar or identical location to the current endpoint device.
  • the VoIP/VioIP server can then request a test connection with the identified-test endpoint device.
  • the test endpoint device transmits data packets to and receives data packets from the VoIP/VioIP server.
  • the call quality metric of this connection can be compared to that of the endpoint device that originally detected the poor call quality. If the call quality of the test connection is significantly better than that of the original connection, then portions of the route shared between the connections are less likely to be the main cause of the poor quality.
  • the original endpoint device can be configured to perform a test connection after completion of the poor-quality connection.
  • the endpoint device requests a connection to a VoIP/VioIP server designed to receive and establish test connections.
  • the test connection can be implemented as a background application that the user of the endpoint device need not be aware of.
  • the endpoint device can establish and complete the test connection over a relatively short time duration, which can be particularly useful for limiting processor or network loading that would be associated with the test connection.
  • the endpoint device can implement a test connection by contacting and connecting to other endpoint devices. This can be particularly useful for facilitating a scalable solution that uses distributed testing. For instance, using a centralized test server requires increasing network bandwidth and processing bandwidth as the number of requesting endpoint devices increases. A distributed architecture, however, naturally scales because test-requesting endpoint devices are also test-receiving endpoint devices.
  • Connections between two test endpoint devices can be facilitated using a VoIP/VioIP server.
  • a requesting endpoint device contacts the VoIP/VioIP server to indicate a desire to establish a test connection.
  • the VoIP/VioIP server identifies a suitable endpoint device and provides connection information back to the requesting endpoint device.
  • endpoint devices can obtain one or more test endpoint devices from a streamed list of test endpoint devices.
  • a VoIP/VioIP server can transmit a multicast stream according to the IPv6 multicast standard.
  • the multicast stream includes a list of endpoint devices.
  • a requesting endpoint device can subscribe to the multicast stream to obtain one or more endpoint devices with which to establish a test connection.
  • multiple multicast streams can be provided and subscribed to according to desired parameters.
  • the multicast streams can represent different locations of endpoint devices, different types of endpoint devices, different capabilities of endpoint devices or any other desirable distinction.
  • Testing endpoint devices provide such test results to a VoIP/VioIP server (e.g., using SIP publish message) and can also keep the results for local routing determinations.
  • FIG. 1 depicts a system for communicating between endpoint devices using VoIP/VioIP, consistent with an embodiment of the present invention.
  • Telephone devices 102 , 104 connect directly with local Public-Switched-Telephone Networks (PSTNs) 106 , 108 .
  • PSTNs Public-Switched-Telephone Networks
  • a standard telephone call can be completed between such devices using the traditional telephone service.
  • Private Branch Exchange (PBX)-based devices 110 , 112 , 114 , 116 , 118 , 120 connect directly with PBX 122 or 124 .
  • the PBX-based devices can include any number of different devices including, but not limited to, analog telephones, digital telephones, Internet-enabled handheld devices, workstation computers, faxes and BRI-enabled devices.
  • PBXes 122 , 124 can provide direct connection to the standard telephone network via local PSTNs 106 , 108 and/or connections to data network/Internet 126 . They can also provide various calling features, such as call forwarding, extension dialing, programmable caller-ID, auto attendant and interactive voice response, to name a few.
  • Internet-PBXes (IPBXes) 128 , 130 provide PBX functions to devices while establishing VoIP/VioIP connections.
  • An IPBX can provide services for local devices 132 and/or to remote endpoint devices 134 , 136 , 138 . For example, the IPBX can be configured to receive calls destined for or arriving from remote devices that are associated with the IPBX.
  • the VoIP/VioIP quality server 140 receives, stores and analyzes call quality data received from various devices. For example, remote endpoint devices 134 , 136 , 138 establish connections between one another or to other endpoint devices (e.g., devices 102 , 104 , 110 , 112 , 114 , 116 , 118 , 120 or 132 ). The endpoint devices monitor the quality parameters of a particular call. This data is then sent to the VoIP/VioIP quality server 140 for analysis using, for example, a SIP publish message. Future routing can be controlled using results of the analysis by VoIP/VioIP quality server 140 . As an example, a VoIP/VioIP call routing server (not shown) can use data generated by the VoIP/VioIP quality server 140 to control call-routing for various ones of the endpoint devices.
  • endpoint devices e.g., devices 102 , 104 , 110 , 112 , 114 , 116 , 118 , 120 or 132 .
  • the system distinguishes between call quality issues associated with the endpoint devices and the initial connection point from call route-related issues.
  • the VoIP/VioIP server can assign weight values to correspond to a determined percentage of call-related issues associated with each portion of the call (e.g., endpoint device issues, connection-point issues or network node issues).
  • the endpoint devices can establish test connections between one another.
  • the endpoint devices can send pre-defined test data to help isolate quality problems associated with the endpoint device from call route problems. For instance, quality effects due to poor speakers, microphones and circuitry for conversions of audio between analog and digital domains would be lessened or removed entirely during such test transmissions.
  • the endpoint devices receive a list of devices available for test connections by subscribing to a multicast session.
  • the device can receive a partial list, a complete list or a single device.
  • the selection of an appropriate device can be random or attributed to characteristics of the devices, which can also be provided as part of a multicast stream.
  • FIG. 2 depicts a request/response transaction model, consistent with an embodiment of the present invention.
  • the transaction model is consistent with SIP protocols, but the specific connection steps and protocols between the endpoint devices need not be so limited.
  • the invention is instead sufficiently robust to be compatible with various other existing and future protocols.
  • An originating endpoint device desires to establish a connection with a destination endpoint device.
  • the connection is started when a user dials a telephone number that indicates a desired endpoint device or user to contact.
  • the originating endpoint device sends an invite command that identifies the destination endpoint device (e.g., using a telephone number or IP-address).
  • proxy/routing server 1 and 2 serve to control the connection process. Proxy servers receive connection requests and forward them on behalf of the requestor. Proxy server 1 receives the invite command and sends a trying response back to the originating endpoint device. Proxy server 1 determines the location of the destination endpoint device. In certain instances, the destination endpoint device is also behind a proxy server, in this case proxy server 2 .
  • Proxy server 1 forwards the invite request to proxy server 2 , which responds with a trying response.
  • Proxy server 2 identifies the IP address of the destination endpoint device and forwards the invite request thereto.
  • the destination endpoint device receives the invite request and alerts a user of the endpoint device (e.g., the endpoint device/phone rings).
  • the destination endpoint device sends a ringing response, which is routed back through the two proxies. Should the destination endpoint device user answer the call, the destination endpoint device transmits an O.K. response that indicates the call is being answered.
  • the originating endpoint device Upon receipt of the O.K. response, the originating endpoint device sends an acknowledge response which allows a bidirectional media stream to be established between endpoint devices.
  • a sequence of bye and O.K. responses are sent.
  • one or more of the endpoint devices can monitor call quality parameters.
  • the monitored parameters can be published to a VoIP/VioIP call quality server using, for example, SIP-based publish messages.
  • the VoIP/VioIP call quality server can then process the received data and, if desired/necessary, send call-routing updates to the proxy servers.
  • endpoint devices can establish test connections to help quantify and assess call-quality issues. To establish such connections, the endpoint devices need to determine what device to connect with.
  • a VoIP/VioIP test server transmits a list of test-connection endpoint devices using a multicast stream. This multicast stream can be consistent with IPv6 specification which allows for intelligent routing by IP routers. For instance, IP routers forward multicast streams only if a downstream device has subscribed to the multicast stream.
  • the endpoint devices can establish test connections by sending a connection request to one or more predetermined test connection addresses.
  • a VoIP/VioIP server is associated with the test connection address and can forward the connection request on to available endpoint devices. For instance, an originating endpoint device can send a test connection request to an IP-address/port combination that routes the call to a VoIP/VioIP server while also identifying the request as a test-connection.
  • the VoIP/VioIP server selects from a variety of other endpoint devices and forwards the test-connection request to this device, thereby acting as a proxy server. The endpoint devices then proceed to send test data and to monitor the call quality thereof.
  • FIG. 3 depicts a flow diagram for establishing test connections between endpoint devices, consistent with embodiments of the present invention.
  • Endpoint devices 302 and 304 have the capability of establishing VoIP/VioIP communications over network 308 .
  • call routing decisions are made based upon call quality metrics measured during calls.
  • test connections can be established between two endpoint devices.
  • test connections can be particularly useful as they allow for a number of variables to be isolated or removed from contributing factors of poor call quality.
  • the endpoint devices can transmit predetermined or (randomly) generated test-data during a test connection.
  • the call quality metrics on such data are independent of audio issues with speakers, microphones and audio processing. This allows the test to isolate problems associated with sound generation and/or capture from transmission problems.
  • the use of data that can be easily quantified helps isolate perceived call-quality problems that are not due either to the call route or to the endpoint devices. For instance, background noise, poor placement of the microphone (e.g., relative to a user's mouth) or user hearing problems can each result in perceived call-quality problems. Sending data that is unaffected by any of these issues allows for increased accuracy in the testing of particular call-routing paths.
  • an originating endpoint device To establish a test connection, an originating endpoint device must first select/determine/discover another endpoint device with which to connect.
  • One method allows an endpoint device to request information about such an endpoint device from a server 306 .
  • the server can return connection information (e.g., telephone number or IP address) about one or more endpoint devices 310 with which the originating endpoint device can connect.
  • the originating endpoint device can then contact and establish a connection with one of the provided endpoint devices.
  • the originating endpoint device sends a connection request that indicates that a test connection is desired.
  • SIP allows for a request to include a definition of the nature of a request as part of the protocol.
  • the destination endpoint device can therefore implement the test connection in the background and, if desired, without user interaction.
  • the destination endpoint device does not ring or otherwise indicate a call is inbound.
  • the destination endpoint device can reject a test call. This may be the case where, for example, the destination endpoint device is operating on battery power that is low or where the destination endpoint device is engaged in operations that would be adversely affected by a test connection, e.g., operations requiring significant processing power or network bandwidth.
  • a multicast stream can be established by a server. Downstream routing, however, is controlled via the routing nodes of the network. The routing nodes forward the multicast stream only in the event that a device has subscribed to the multicast stream at some location beyond the routing node. In this manner, the originating server does not see a significant increase in bandwidth or server loading as the number of subscribing devices increases.
  • the server 306 can provide a number of different multicast streams (e.g., multicast streams 1 , 2 and 3 of FIG. 3 ), each including a different list of available endpoint devices for connection therewith.
  • the originating endpoint device 302 subscribes to one or more of the multicast streams to receive the available endpoint devices.
  • the example depicted in FIG. 3 shows endpoint device 302 subscribing to multicast stream 2 and receiving the corresponding data, which includes endpoint device 304 .
  • the endpoint device 302 then establishes a test connection with endpoint device 304 and then can (SIP) publish any call-quality metrics obtained from the test.
  • the different multicast streams can be defined using a variety of factors.
  • One such factor includes different logical or physical/geographical locations of the endpoint devices.
  • An originating endpoint device can thus select a location to specifically test routing thereto.
  • the different multicast streams can represent different types of endpoint devices (e.g., home computer, laptop or cellular telephones), different connection types (e.g., T1, modem or wireless) or different software versions.
  • each device maintains a locally-stored list that contains version data for various updatable components.
  • the devices can periodically subscribe to a multicast stream that contains a corresponding list of the most current version of updates available.
  • the endpoint device can compare the locally-stored list with the multicast list. If the endpoint device determines that an update is available, the endpoint device can subscribe to a corresponding multicast stream.
  • FIG. 4 depicts a functional diagram for an endpoint device, consistent with an embodiment of the present invention.
  • Endpoint device 402 provides a number of functions including implementation of a VoIP/VioIP-related protocol stack 404 .
  • This stack 404 can conform to any number of suitable protocols.
  • the example stack 404 is consistent with an H.323 approach, but the endpoint device need not be so limited.
  • a user of the endpoint device 402 communicates with a remote user through various input/output ports 406 and 408 .
  • a VoIP/VioIP capable phone would include some type of speaker arrangement for an output and a microphone for an input. Signals to and from the speaker/microphone can be conditioned and/or converted between digital and analog realms using audio/visual processing circuitry 410 and 412 . This data can be received and transmitted to a control application for processing according to the protocol stack 404 .
  • a quality metric/call routing application 414 monitors the quality of a call. As discussed herein, the quality metric application 414 uses a set of call-quality factors and/or weights, which can be stored in a local memory or database 416 . In certain embodiments, application 414 can also make call routing decisions based upon stored call-quality metrics, routing algorithms and/or monetary call-costs data.
  • an endpoint-application (EA) interface 418 provides a defined structure for users wishing to generate EAs 420 and 422 for interfacing with and controlling call routing and/or call quality metrics.
  • the EAs allow users to develop applications for a variety of applications within the parameters established by the EA interface 418 . This can include multiple EAs running on a single endpoint device.
  • Test-connection application 424 controls the establishment of test connections useful for characterizing call quality metrics and related issues.
  • Test-connection application 424 can respond to an incoming (VoIP/VioIP) connection request that includes a test-connection indication within the connection request. This allows for the test-connection application 424 to establish connections without bothering a user of the endpoint device.
  • the test-connection application 424 can also initiate a test connection by accessing a memory/database 426 storing a test-connection endpoint list. In one implementation, this list can be obtained from a server, which can optionally provide endpoint list(s) using multicast stream(s).
  • test-connection application 424 transmits and receives data using the test connection.
  • This data can be stored in memory/database 426 .
  • the data can be designed to simulate data transmitted during a typical (VoIP/VioIP) connection between endpoint devices and/or specifically constructed to test other aspects. For instance, the data can be designed to test bandwidth problems, processing-power issues and the like.
  • test-connection application 424 can perform internal testing of various components of the endpoint device. This can include processor loading, memory availability, loopback tests of audio circuitry, loopback testing of protocol stacks and various other tests.
  • Test-connection application 424 can then use the test results to modify the parameters used to determine the call-quality metrics. For instance, a test may indicate that the endpoint device lacks processor power. Poor call-quality metrics of calls would thereafter be attributed to the endpoint device (rather than a call-routing issue) assuming the tested factors of the metric are consistent with a lack of processing power. The published call quality metric could include such an indication, which allows the receiving call-routing server to properly attribute poor-call quality metrics to the endpoint device.

Abstract

A variety of methods, systems, devices and arrangements are implemented for assessing and/or controlling call routing for VoIP/VioIP calls. According to one such method, endpoint devices are used to monitor and/or assess the call-quality. The assessment is sent to a centralized server arrangement and call-routing is controlled therefrom. Endpoint devices employ a decentralized testing mechanism to further monitor and assess call quality including the use of test connections. Aspects of call quality are analyzed and attributed to endpoint devices and/or local connections or networks to distinguish intermediate routing issues from local/endpoint issues.

Description

FIELD OF THE INVENTION
The present invention relates generally to cost effective routing and to systems, methods and devices for defining and adjusting data routing across multiple platforms.
BACKGROUND
Voice over Internet Protocol (VoIP) represents a variety of different transmission technologies that are used to provide voice communications over Internet Protocol (IP) networks, such as the Internet or similar packet-switched networks. In a general VoIP-based example, a microphone converts sound into analog electrical signals. The analog signals are then converted to a digital form. If desired, compression techniques (e.g., audio codecs that encode speech) are used to reduce bandwidth requirements. The resulting data is formatted into Internet protocol (IP) packets for transmission over the Internet. The process is reversed at the receiving end eventually producing sound from a speaker.
The connection and disconnection processes that are implemented between two VoIP endpoint devices are sometimes referred to as set-up and tear-down, respectively. This set-up and tear-down of calls is implemented according to rules defined by various VoIP (and or video-based) session control protocols, such as, H.323, Session Initiation Protocol (SIP), Real-time Transport Protocol (RTP), and/or IP Multimedia Subsystem (IMS).
The growth of Voice-over-IP (VoIP) devices, services and products presents a number of issues. Call routing is an important consideration in terms of costs for VoIP capable devices. Other issues include call quality factors such as packet loss, packet delay, and packet jitter.
Another expanding area relates to Video-over-IP (VioIP) devices, services and products. Although the data requirements are at least partially different relative to VoIP, similar issues with quality and user experience arise with video transmissions. For instance, packet loss can cause intermittent freezing of a video stream as well as artifacts. Such aspects can be considerably frustrating to a viewer and even render the video stream unintelligible.
SUMMARY
Aspects of the present invention are directed to routing selections that address challenges including those discussed above, and that are applicable to a variety of voice, video and data applications, devices, systems and methods. These and other aspects of the present invention are exemplified in a number of implementations and applications, some of which are shown in the figures and characterized in the claims section that follows.
According to one embodiment of the present invention, endpoint devices are used to monitor and/or assess the call-quality. The assessment is sent to a centralized server arrangement and call-routing is controlled therefrom. Endpoint devices employ a decentralized testing mechanism to further monitor and assess call quality including the use of test connections. Aspects of call quality are analyzed and attributed to endpoint devices and/or local connections or networks to distinguish intermediate routing issues from local/endpoint issues.
Consistent with one embodiment of the present invention, a system provides call routing. The system includes a plurality of endpoint devices each having an Internet Protocol (IP) interface, an audio output for producing audible sounds, an audio input for converting audible sounds to electrical signals, and a circuit including at least one processor and programmed software instructions. When the programmed software instructions are executed by the at least one processor, the processor performs the steps of measuring a plurality of call quality factors for a VoIP call implemented using the IP interface, and publishing, using the IP interface, data representing the plurality of call quality factors. The system also includes at least one server that has a database containing call-quality metrics and call-cost metrics for various call-routing options. The at least one server is configured and arranged for: receiving the published data representing the plurality of call quality factors, assigning, to the received data, weight factors representing different portions of a call route for the VoIP call, respectively, and selecting a call route for a subsequent VoIP call using an algorithm based upon the assigned weight factors and the call-cost metrics.
According to another embodiment of the present invention, a Voice over Internet Protocol (VoIP) endpoint device is provided that includes an Internet Protocol (IP) interface; an audio output for producing audible sounds; an audio input for converting audible sounds to electrical signals; and a circuit that includes at least one processor and programmed software instructions. When the instructions are executed by the at least one processor, steps are performed that include measuring a plurality of call quality factors for a VoIP call implemented using the IP interface, assigning, to the measured plurality of call quality factors, weight factors representing different portions of a call route for the VoIP call, and publishing, using the IP interface, results of the assessment of the plurality of call quality factors.
The above summary is not intended to describe each illustrated embodiment or every implementation of the present invention.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention may be more completely understood in consideration of the following detailed description of various embodiments of the invention in connection with the accompanying drawings, in which:
FIG. 1 depicts a system for communicating between endpoint devices using VoIP/VioIP, consistent with an embodiment of the present invention;
FIG. 2 depicts a request/response transaction model, consistent with an embodiment of the present invention;
FIG. 3 depicts a flow diagram for establishing test connections between endpoint devices, consistent with embodiments of the present invention; and
FIG. 4 depicts a functional diagram for an endpoint device, consistent with an embodiment of the present invention.
While the invention is amenable to various modifications and alternative forms, specifics thereof have been shown by way of example in the drawings and will be described in detail. It should be understood, however, that the intention is not to limit the invention to the particular embodiments described. On the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.
DETAILED DESCRIPTION
The present invention is directed to routing decisions including routing packet-based communications over a network, such as the Internet, and related approaches, their uses and systems for the same. As discussed in more detail herein, many aspects of the present invention are particularly well-suited for Voice over Internet Protocol (VoIP) applications; however, aspects of the present invention are also found to be useful for Video over Internet Protocol (VioIP) communications (with or without accompanying audio). While the present invention is not necessarily limited to such applications, various aspects of the invention may be appreciated through a discussion of various examples using this context.
Embodiments of the present invention relate to systems and components of systems that work as part of a robust voice call-routing solution. Aspects of the invention are implemented at various points in a call system that provides VoIP/VioIP call services. Endpoint devices, which provide call functions directly to a human user, communicate with one another using VoIP/VioIP servers that provide call-lookup, proxy functionality, NAT traversal and other functionality. Particular implementations also relate to routing of video communications between endpoint devices. While the transmitted data and specific data protocols used to format and send the data may differ, video and audio calls sometimes use many of the same underlying protocols for establishing and maintaining data connections (e.g., similar setup and teardown procedures). Aspects of the present invention relate to call-routing decisions made by a centralized server that services multiple endpoint devices.
Various embodiments relate to providing highly-scalable solutions, which leverage off of the increasing complexity and quantity of endpoint devices with VoIP/VioIP capabilities. In certain embodiments, the endpoint devices can be configured to facilitate data collection and to offload some of the processing from the centralized server. Other aspects relate to decentralized call-routing decisions made by the endpoint devices. The various components can be implemented alone or in combination as should be apparent from the many possible combinations that are discussed herein. Such discussions, however, are not limiting and variations thereof are possible.
As discussed herein, various embodiments of the present invention relate to the use of call-quality metrics and call-cost metrics in selection of a routing path. Particular implementations are relatively robust and flexible allowing for use of many different underlying algorithms and methods. For instance, U.S. Pat. No. 7,352,852, to Cocherl, et al. and issued Apr. 1, 2008; and U.S. Pat. No. 7,339,934 to Mussman et al. and issued Mar. 4, 2008, each describe example least-cost routing algorithms and uses thereof. U.S. Pat. No. 7,222,190, to Klinker, et al. and issued May 22, 2007, describes various performance metrics for IP-based transmission including an Exponentially Weighted Moving Average (“EWMA”) method that establishes a moving threshold based on historic sampling that places an exponential weighting on the most recent samples. Each of these documents is fully incorporated herein by reference. These and other metrics can be used in connection with various embodiments of the present invention. For instance, aspects of the present invention allow for various factors, otherwise used in determining these call-quality metrics, to be attributed to endpoint devices and/or their immediate connection points and networks. Such factors can then be removed or discounted (e.g., by weighting) from consideration by the selected algorithm(s). In this manner, the results more accurately represent intermediate call route issues as opposed to local-route/endpoint issues.
According to one embodiment of the present invention, VoIP (or VioIP) capable endpoint devices (e.g., hand held devices, home computers or VoIP telephones) establish a VoIP/VioIP connection to another device over a particular call route. A call quality metric is determined for the call and associated with the particular call route. For future calls, call-routing decisions are made using an algorithm that can be configured to consider a variety of factors. A few factors include, but are not necessarily limited to, the call quality metric, financial costs associated with the routing, the type of service plan associated with the endpoint devices, the time of day and the type of endpoint device.
Call quality metrics can be designed as a function of a number of parameters. Example, non-limiting, parameters include jitter, packet loss, echoing and latency. Latency can be caused by delay factors, such as jitter buffer delay, propagation delay, transport delay and packetization/coding delays. Jitter buffer delay is caused by storage of received data in a buffer useful for compensating for varying arrival times of data. Propagation delay represents the time necessary for a data signal to physically traverse the network between two endpoint devices. Transport delay represents the delay necessary to traverse the various network devices within a data path. Packetization/coding delays are caused by data formatting and can include time necessary for conversions between analog and digital, compression and formatting of data into packets.
According to one embodiment of the present invention, the endpoint devices monitor call parameters during a call. Once the call is completed, the endpoint devices send the monitored call parameters to a remote server. In a particular implementation, the end point devices can send a Session Initiation Protocol (SIP) publish message that includes, within the body of the message, a call quality metric and/or the monitored parameters. The remote server then uses this data to determine preferred call routing for endpoint devices making subsequent calls.
In a particular implementation, the poor call quality metric results are attributed to specific portions or aspects of the call route. For instance, poor connections between an endpoint device and a local router, LAN or modem are a common cause of poor quality metric results. Thus, a quality metric for a particular endpoint device can be a poor indicator of the quality of a particular route for another endpoint device, particularly where the other endpoint device uses a different local connection point. Moreover, if the individual connection point is a significant cause of poor call quality, modifying call routing that occurs after the initial connection point may not solve the problem with the call quality. Accordingly, aspects of the present invention distinguish between different portions of the call route and attribute quality ratings to the respective portions. Intelligent call-routing decisions are then made using this additional data.
Certain symptoms of poor call quality are more likely to be caused by an individual connection point issue. For instance, bandwidth-related problems tend to be caused by individual connection point. Poor connections, connections to a bandwidth-limited service plan and/or heavily loaded connection points can limit effective bandwidth. Poor connections (wired or wireless) cause data to be corrupted or lost and thereby result in dropped or lost packets. Connection points vary in available bandwidth, which can reduce the call quality. Heavily loaded connection points can be caused by applications running on the endpoint device (e.g., file-sharing programs or malware/spyware) and other devices using the same connection point. Heavily loaded connection points cause a reduction in the available bandwidth. In another example, unwanted echoes are often caused by feedback or other problems within the endpoint device (e.g., poor lighting for video, feedback from speaker to microphone, electromagnetic crosstalk or poor speaker/microphone termination), as opposed to call routing, and can be attributed accordingly. Repeatedly poor latency can often be associated with problems in the call route and attributed in this fashion.
It should be noted that general tendencies of a particular symptom are not determinative and that many, if not most, symptoms can have several different causes. Accordingly, a particular implementation uses the symptoms to determine a weight factor for respective portions. This weight factor is then used as a correlation between a call quality metric and a respective portion. Strongly correlated portions suggest that the portions are a likely cause of a poor quality metric. This determination can be carried out by the endpoint devices or by one or more centralized servers. For instance, the endpoint devices could attribute a poor quality metric as 10% endpoint device, 70% local connection and 20% remote routing. This information could be locally stored and/or transmitted to a remote server.
The number of VoIP/VioIP capable devices is rapidly increasing due in part to increased usage of mobile/handheld devices with Internet capabilities. The mobility of the devices can complicate the ability to monitor and assess the likely source of poor call quality. For instance, mobile devices may connect to multiple different connection points within a single day. Each connection point can exhibit a different connection quality and use a different call route. The routing beyond the connection points can range from virtually identical or completely different, e.g., depending upon the relative location of the connection points. Moreover, the true connection point can be hidden and difficult to ascertain when, for example, the mobile device connection point is to a private network that uses NAT, firewalls and the like. As such, identification of the endpoint device does not necessarily correlate to a particular, or static, connection point.
One aspect of the present invention relates to an application that can be implemented on such mobile devices. Recognizing that the mobile device has visibility of the initial connection point and private network associated therewith, the mobile device tracks used connection points and an indication of the call quality metrics for the connection points. When establishing a new call, the application can make an initial routing decision based upon the stored call quality metric for the current connection point.
As an example, a mobile endpoint device may connect to a first wireless network access point and make a VoIP/VioIP call using this connection. The call quality metric of this call is recorded as being poor, and particularly, having quality factors that suggest that the connection point is a limiting factor. If the mobile device has other connection capabilities, such as cellular, PSTN, wired IP connections, or other available wireless networks, the mobile device can opt to use those connections. Another routing option is the selection of a particular VoIP/VioIP connection server or proxy. VoIP/VioIP servers may have preferences in terms of monetary costs (whether user or provided costs) to competing voice quality preferences (e.g., due to server performance or network location). Thus, if the voice quality metric for a particular connection is poor, the mobile device can select a server with a better quality metric over another server. Thus, the connection may exhibit a higher monetary cost but also have a higher quality metric.
Routing selections by the mobile device can be performed by applying a user profile that contains data regarding the respective costs of the different connection options. The application accesses this user profile in combination with the recorded quality metrics to determine the desired connection and/or call route. In a particular implementation, the user profile is controlled by the (VoIP/VioIP) service provider. The service provider is then able to perform offline analysis of the VoIP/VioIP service and adjust the user profiles accordingly. This allows for the service provider to control various aspects (e.g., server loads, overall voice quality or call-related costs) in combination with a distributed routing decisions system that uses the endpoint devices to implement call-routing decisions.
Another aspect of the present invention relates to an endpoint application (EA) that is designed to provide an interface for user-developed applications. User-developed applications are becoming increasingly useful. These applications can greatly increase the value of a particular service or device often in ways not originally contemplated. They also provide users with endless customizations and personalization of the product or service. The EA provides an interface to affect the routing decisions. This allows such user-developed applications to provide some level of input and control over the routing decisions. The service provider determines the precise amount of control given to the user application by the EA. Allowing the user-developed application to have less control means that the service provider is able to exhibit more control over how the calls are routed. Allowing the user-developed application to have more control increases the potential for different types of user applications.
User-developed applications can be organically created by individuals or generated by companies for download. For example, a number of VoIP applications are currently available for providing VoIP connections with cellular phones (e.g., Fring, Talkster, Nimbuzz or Barablu). Such applications can interface with the EA to provide customizable routing decisions.
One component of the EA is designed to provide an application interface that receives an input representing the importance of quality vs. cost to the user. The input could be a value on a scale (e.g., scale of 1 to 10 with 10 representing the highest quality importance, with little regard for cost). The EA receives the input and uses it as part of the routing decision. The EA can directly perform the routing decision based upon the input and/or forward the input to a remote server for routing decisions. The user-designed application could provide a value for the input based upon nearly any criteria. For example, the user application may designate calls to certain numbers (e.g., personal calls) as having lower priority of quality while others (e.g., business calls) have a higher priority of quality. Video could be given a lower priority than audio and vice versa. Another EA might automatically detect a physical location or a logical location (e.g., GPS-determined location or a connection-point-determined location) for the mobile device and adjust the input accordingly. The EA could also simply allow the user to directly set the input value through a graphical user interface (GUI).
Implementations of the EA receive, from the user application, inputs representing the importance of a number of different call-quality and call-cost criteria. For instance, the user application could indicate that jitter is highly important, while echoing is not as important. In another instance, the application could indicate that all factors are equally important.
The EA can also be designed to allow the user application to add one or more custom factors. Thus, the EA will continue to monitor jitter, packet loss, echoing and latency (and other factors) during calls; however, the user application can introduce additional factors stored as part of the call quality assessment. For instance, the user application could monitor audio-frequency components of the call or some other factor as yet undetermined. The input would then be added as a component of the call quality metric for the user's endpoint device and thereby be used as part of subsequent call routing decisions. One mode of the EA even allows the user application to fully control, set or define the algorithms used to determine call quality and/or the routing decisions.
The EA can set the level of control in response to a number of mechanisms. One such mechanism involves a tiered-service structure. In this manner, the EA provides additional control to users that have higher service plans.
Embodiments of the present invention also allow the endpoint devices to use various diagnostic procedures to help assess the likely cause of poor call quality. One such diagnostic procedure relates to endpoint-based problems with transmitting or receiving data packets. For example, insufficient processing power (e.g., due to design and/or other applications demanding processing resources) can result in degraded call quality. To help quantify such endpoint-related factors, the endpoint enters a diagnostic mode. In the diagnostic mode, the endpoint transmits a pseudo-data stream to itself. This can be accomplished using a loopback IP address (e.g., 127.0.0.1) as defined in the IP standards. Quality factors for the loopback transmission are measured accordingly. Problems incurred during this loopback transmission are largely limited to problems of the endpoint device. Thus, poor quality indications can be attributed to the endpoint device with high confidence. The quality indications from an actual call can then be adjusted to account for the endpoint device's internal quality factor. In this manner, the system can discount such endpoint device issues when assessing a particular call route.
While the circuit/processor measurable factors, such as jitter, packet loss, latency and echo, provide a good indication of call quality, they do not perfectly model the call quality perceived by a person using an endpoint device. Thus, the EA also uses input from users to assess and define the quality of a call route. In one implementation, the EA prompts a user to provide call-quality feedback (e.g., rate call from 1 to 10) and use this information as part of the call-quality assessment.
User participation, however, is sometimes difficult to obtain, and thus, the EA can be configured to obtain user input in other manners. A particular implementation takes advantage of mobile devices that have motion sensing components, such as gyroscopes. When a user experiences bad call quality, the user is encouraged to shake the device. The shaking indicates to the EA that the user may be experiencing poor call quality. If the shaking coincides with other indications of poor call quality, then the EA can be relatively certain that the user is providing negative feedback regarding the call quality. User participation is encouraged because it is believed that shaking the device is a natural response that requires less time and consideration than asking the user to input a numerical value. Moreover, the EA can respond to the shaking by attempting to establish a connection via a different call route. Once established, the EA can seamlessly switch the conversation to the second call route. If the user is aware of this general feature, it provides additional incentive to provide feedback by shaking as the shaking may result in an improved connection due to this re-routing of the call.
Although not limited thereto, a few example call quality metrics include Mean Opinion Score (MOS), ITU P.861 (Perceptual Speech Quality Measure or PSQM), ITU P.826 (Perceptual Evaluation of Speech Quality or PESQ), ITU P.563, or ITU P.800 (Perceptual Analysis/Measurement System or PAMS) as well as variations and combinations thereof. Example video quality metrics include, but are not limited to, ITU-T Rec. J.246 (RR) and J.247 (FR).
Collection and analysis of data obtained during active calls is a powerful tool in assessing call quality as a function of call routing; however, aspects of the present invention allow for active testing of call-routing parameters. In a particular implementation, when poor call quality is detected, additional information regarding the call route in question can be actively obtained.
One mechanism for actively obtaining call route information involves use of additional endpoint devices to dynamically test the state of the network by testing various call routes. These additional endpoint devices transmit test data along one or more data routes. The test data can be used to define the voice quality provided by a particular data route. This testing can be implemented in response to poor call quality being detected by a particular endpoint device. In certain implementations, this allows for the test to be conducted while a call associated with the particular endpoint device is still ongoing. The various quality metrics can then be directly correlated in time, which can be useful in determining a likely cause of poor call quality. For instance, a VoIP/VioIP server can identify an endpoint device that has a similar or identical location to the current endpoint device. The VoIP/VioIP server can then request a test connection with the identified-test endpoint device. The test endpoint device transmits data packets to and receives data packets from the VoIP/VioIP server. The call quality metric of this connection can be compared to that of the endpoint device that originally detected the poor call quality. If the call quality of the test connection is significantly better than that of the original connection, then portions of the route shared between the connections are less likely to be the main cause of the poor quality.
In another implementation, the original endpoint device can be configured to perform a test connection after completion of the poor-quality connection. The endpoint device requests a connection to a VoIP/VioIP server designed to receive and establish test connections. In a particular embodiment, the test connection can be implemented as a background application that the user of the endpoint device need not be aware of. The endpoint device can establish and complete the test connection over a relatively short time duration, which can be particularly useful for limiting processor or network loading that would be associated with the test connection.
In another implementation, the endpoint device can implement a test connection by contacting and connecting to other endpoint devices. This can be particularly useful for facilitating a scalable solution that uses distributed testing. For instance, using a centralized test server requires increasing network bandwidth and processing bandwidth as the number of requesting endpoint devices increases. A distributed architecture, however, naturally scales because test-requesting endpoint devices are also test-receiving endpoint devices.
Connections between two test endpoint devices can be facilitated using a VoIP/VioIP server. A requesting endpoint device contacts the VoIP/VioIP server to indicate a desire to establish a test connection. The VoIP/VioIP server identifies a suitable endpoint device and provides connection information back to the requesting endpoint device. Alternatively, endpoint devices can obtain one or more test endpoint devices from a streamed list of test endpoint devices. A VoIP/VioIP server can transmit a multicast stream according to the IPv6 multicast standard. The multicast stream includes a list of endpoint devices. A requesting endpoint device can subscribe to the multicast stream to obtain one or more endpoint devices with which to establish a test connection. In a particular implementation, multiple multicast streams can be provided and subscribed to according to desired parameters. The multicast streams can represent different locations of endpoint devices, different types of endpoint devices, different capabilities of endpoint devices or any other desirable distinction. Testing endpoint devices provide such test results to a VoIP/VioIP server (e.g., using SIP publish message) and can also keep the results for local routing determinations.
Turning now to the figures, FIG. 1 depicts a system for communicating between endpoint devices using VoIP/VioIP, consistent with an embodiment of the present invention. Telephone devices 102, 104 connect directly with local Public-Switched-Telephone Networks (PSTNs) 106, 108. A standard telephone call can be completed between such devices using the traditional telephone service. Private Branch Exchange (PBX)-based devices 110, 112, 114, 116, 118, 120, connect directly with PBX 122 or 124. The PBX-based devices can include any number of different devices including, but not limited to, analog telephones, digital telephones, Internet-enabled handheld devices, workstation computers, faxes and BRI-enabled devices. PBXes 122, 124 can provide direct connection to the standard telephone network via local PSTNs 106, 108 and/or connections to data network/Internet 126. They can also provide various calling features, such as call forwarding, extension dialing, programmable caller-ID, auto attendant and interactive voice response, to name a few. Internet-PBXes (IPBXes) 128, 130 provide PBX functions to devices while establishing VoIP/VioIP connections. An IPBX can provide services for local devices 132 and/or to remote endpoint devices 134, 136, 138. For example, the IPBX can be configured to receive calls destined for or arriving from remote devices that are associated with the IPBX.
The VoIP/VioIP quality server 140 receives, stores and analyzes call quality data received from various devices. For example, remote endpoint devices 134, 136, 138 establish connections between one another or to other endpoint devices (e.g., devices 102, 104, 110, 112, 114, 116, 118, 120 or 132). The endpoint devices monitor the quality parameters of a particular call. This data is then sent to the VoIP/VioIP quality server 140 for analysis using, for example, a SIP publish message. Future routing can be controlled using results of the analysis by VoIP/VioIP quality server 140. As an example, a VoIP/VioIP call routing server (not shown) can use data generated by the VoIP/VioIP quality server 140 to control call-routing for various ones of the endpoint devices.
Consistent with various embodiments, the system distinguishes between call quality issues associated with the endpoint devices and the initial connection point from call route-related issues. The VoIP/VioIP server can assign weight values to correspond to a determined percentage of call-related issues associated with each portion of the call (e.g., endpoint device issues, connection-point issues or network node issues).
In particular implementations, the endpoint devices can establish test connections between one another. The endpoint devices can send pre-defined test data to help isolate quality problems associated with the endpoint device from call route problems. For instance, quality effects due to poor speakers, microphones and circuitry for conversions of audio between analog and digital domains would be lessened or removed entirely during such test transmissions.
In one embodiment of the present invention, the endpoint devices receive a list of devices available for test connections by subscribing to a multicast session. The device can receive a partial list, a complete list or a single device. The selection of an appropriate device can be random or attributed to characteristics of the devices, which can also be provided as part of a multicast stream.
FIG. 2 depicts a request/response transaction model, consistent with an embodiment of the present invention. The transaction model is consistent with SIP protocols, but the specific connection steps and protocols between the endpoint devices need not be so limited. The invention is instead sufficiently robust to be compatible with various other existing and future protocols.
An originating endpoint device desires to establish a connection with a destination endpoint device. In a specific implementation, the connection is started when a user dials a telephone number that indicates a desired endpoint device or user to contact. The originating endpoint device sends an invite command that identifies the destination endpoint device (e.g., using a telephone number or IP-address). Optionally, proxy/ routing server 1 and 2 serve to control the connection process. Proxy servers receive connection requests and forward them on behalf of the requestor. Proxy server 1 receives the invite command and sends a trying response back to the originating endpoint device. Proxy server 1 determines the location of the destination endpoint device. In certain instances, the destination endpoint device is also behind a proxy server, in this case proxy server 2. Proxy server 1 forwards the invite request to proxy server 2, which responds with a trying response. Proxy server 2 identifies the IP address of the destination endpoint device and forwards the invite request thereto. The destination endpoint device receives the invite request and alerts a user of the endpoint device (e.g., the endpoint device/phone rings). The destination endpoint device sends a ringing response, which is routed back through the two proxies. Should the destination endpoint device user answer the call, the destination endpoint device transmits an O.K. response that indicates the call is being answered. Upon receipt of the O.K. response, the originating endpoint device sends an acknowledge response which allows a bidirectional media stream to be established between endpoint devices. Upon completion of the call, a sequence of bye and O.K. responses are sent.
During the call, and particularly during the bidirectional media stream phase, one or more of the endpoint devices can monitor call quality parameters. Upon completion of the call (or even during the call), the monitored parameters can be published to a VoIP/VioIP call quality server using, for example, SIP-based publish messages. The VoIP/VioIP call quality server can then process the received data and, if desired/necessary, send call-routing updates to the proxy servers.
In certain embodiments, endpoint devices can establish test connections to help quantify and assess call-quality issues. To establish such connections, the endpoint devices need to determine what device to connect with. In a first implementation, a VoIP/VioIP test server transmits a list of test-connection endpoint devices using a multicast stream. This multicast stream can be consistent with IPv6 specification which allows for intelligent routing by IP routers. For instance, IP routers forward multicast streams only if a downstream device has subscribed to the multicast stream.
In another embodiment, the endpoint devices can establish test connections by sending a connection request to one or more predetermined test connection addresses. A VoIP/VioIP server is associated with the test connection address and can forward the connection request on to available endpoint devices. For instance, an originating endpoint device can send a test connection request to an IP-address/port combination that routes the call to a VoIP/VioIP server while also identifying the request as a test-connection. The VoIP/VioIP server selects from a variety of other endpoint devices and forwards the test-connection request to this device, thereby acting as a proxy server. The endpoint devices then proceed to send test data and to monitor the call quality thereof.
FIG. 3 depicts a flow diagram for establishing test connections between endpoint devices, consistent with embodiments of the present invention. Endpoint devices 302 and 304 have the capability of establishing VoIP/VioIP communications over network 308. As discussed herein, call routing decisions are made based upon call quality metrics measured during calls. Moreover, test connections can be established between two endpoint devices.
Such test connections can be particularly useful as they allow for a number of variables to be isolated or removed from contributing factors of poor call quality. For instance, the endpoint devices can transmit predetermined or (randomly) generated test-data during a test connection. The call quality metrics on such data are independent of audio issues with speakers, microphones and audio processing. This allows the test to isolate problems associated with sound generation and/or capture from transmission problems. In another instance, the use of data that can be easily quantified helps isolate perceived call-quality problems that are not due either to the call route or to the endpoint devices. For instance, background noise, poor placement of the microphone (e.g., relative to a user's mouth) or user hearing problems can each result in perceived call-quality problems. Sending data that is unaffected by any of these issues allows for increased accuracy in the testing of particular call-routing paths.
To establish a test connection, an originating endpoint device must first select/determine/discover another endpoint device with which to connect. One method allows an endpoint device to request information about such an endpoint device from a server 306. The server can return connection information (e.g., telephone number or IP address) about one or more endpoint devices 310 with which the originating endpoint device can connect. The originating endpoint device can then contact and establish a connection with one of the provided endpoint devices. The originating endpoint device sends a connection request that indicates that a test connection is desired. For instance, SIP allows for a request to include a definition of the nature of a request as part of the protocol. The destination endpoint device can therefore implement the test connection in the background and, if desired, without user interaction. Thus, the destination endpoint device does not ring or otherwise indicate a call is inbound. In some instances, the destination endpoint device can reject a test call. This may be the case where, for example, the destination endpoint device is operating on battery power that is low or where the destination endpoint device is engaged in operations that would be adversely affected by a test connection, e.g., operations requiring significant processing power or network bandwidth.
While the above mechanism for obtaining a list of available endpoint devices works well in many situations, as the number of requesting devices grows, so too does the load on the server that responds to the requests. One aspect of the present invention provides a highly-scalable solution involving the use of multicast protocols, such as those built into the IPv6 standard. In particular, a multicast stream can be established by a server. Downstream routing, however, is controlled via the routing nodes of the network. The routing nodes forward the multicast stream only in the event that a device has subscribed to the multicast stream at some location beyond the routing node. In this manner, the originating server does not see a significant increase in bandwidth or server loading as the number of subscribing devices increases.
In a particular embodiment, the server 306 can provide a number of different multicast streams (e.g., multicast streams 1, 2 and 3 of FIG. 3), each including a different list of available endpoint devices for connection therewith. The originating endpoint device 302 subscribes to one or more of the multicast streams to receive the available endpoint devices. The example depicted in FIG. 3 shows endpoint device 302 subscribing to multicast stream 2 and receiving the corresponding data, which includes endpoint device 304. The endpoint device 302 then establishes a test connection with endpoint device 304 and then can (SIP) publish any call-quality metrics obtained from the test.
The different multicast streams can be defined using a variety of factors. One such factor includes different logical or physical/geographical locations of the endpoint devices. An originating endpoint device can thus select a location to specifically test routing thereto. As other, non-limiting examples, the different multicast streams can represent different types of endpoint devices (e.g., home computer, laptop or cellular telephones), different connection types (e.g., T1, modem or wireless) or different software versions.
In other embodiments, separate multicast streams can be provided for updates to the devices. These updates can include changes to the test data sent between devices, changes to the testing criteria used to assess call quality and/or various software updates. In a particular implementation, each device maintains a locally-stored list that contains version data for various updatable components. The devices can periodically subscribe to a multicast stream that contains a corresponding list of the most current version of updates available. The endpoint device can compare the locally-stored list with the multicast list. If the endpoint device determines that an update is available, the endpoint device can subscribe to a corresponding multicast stream.
The use of such multicast aspects can be particularly useful for addressing issues related to the (lack of) scalability for various VoIP/VoIP-related products and services.
FIG. 4 depicts a functional diagram for an endpoint device, consistent with an embodiment of the present invention. Endpoint device 402 provides a number of functions including implementation of a VoIP/VioIP-related protocol stack 404. This stack 404 can conform to any number of suitable protocols. The example stack 404 is consistent with an H.323 approach, but the endpoint device need not be so limited.
A user of the endpoint device 402 communicates with a remote user through various input/ output ports 406 and 408. For instance, a VoIP/VioIP capable phone would include some type of speaker arrangement for an output and a microphone for an input. Signals to and from the speaker/microphone can be conditioned and/or converted between digital and analog realms using audio/ visual processing circuitry 410 and 412. This data can be received and transmitted to a control application for processing according to the protocol stack 404. A quality metric/call routing application 414 monitors the quality of a call. As discussed herein, the quality metric application 414 uses a set of call-quality factors and/or weights, which can be stored in a local memory or database 416. In certain embodiments, application 414 can also make call routing decisions based upon stored call-quality metrics, routing algorithms and/or monetary call-costs data.
Consistent with one embodiment of the present invention, an endpoint-application (EA) interface 418 provides a defined structure for users wishing to generate EAs 420 and 422 for interfacing with and controlling call routing and/or call quality metrics. The EAs allow users to develop applications for a variety of applications within the parameters established by the EA interface 418. This can include multiple EAs running on a single endpoint device.
Test-connection application 424 controls the establishment of test connections useful for characterizing call quality metrics and related issues. Test-connection application 424 can respond to an incoming (VoIP/VioIP) connection request that includes a test-connection indication within the connection request. This allows for the test-connection application 424 to establish connections without bothering a user of the endpoint device. The test-connection application 424 can also initiate a test connection by accessing a memory/database 426 storing a test-connection endpoint list. In one implementation, this list can be obtained from a server, which can optionally provide endpoint list(s) using multicast stream(s).
Once a test connection is established, test-connection application 424 transmits and receives data using the test connection. This data can be stored in memory/database 426. The data can be designed to simulate data transmitted during a typical (VoIP/VioIP) connection between endpoint devices and/or specifically constructed to test other aspects. For instance, the data can be designed to test bandwidth problems, processing-power issues and the like. In addition to test connections, test-connection application 424 can perform internal testing of various components of the endpoint device. This can include processor loading, memory availability, loopback tests of audio circuitry, loopback testing of protocol stacks and various other tests.
Test-connection application 424 can then use the test results to modify the parameters used to determine the call-quality metrics. For instance, a test may indicate that the endpoint device lacks processor power. Poor call-quality metrics of calls would thereafter be attributed to the endpoint device (rather than a call-routing issue) assuming the tested factors of the metric are consistent with a lack of processing power. The published call quality metric could include such an indication, which allows the receiving call-routing server to properly attribute poor-call quality metrics to the endpoint device.
The various aspects of the present invention can take a variety of forms and be implemented according to a number of different embodiments including, but not limited to, a storage medium storing with executable instructions, computer processors configured with executable instructions, programmable logic, hardware circuit logic and combinations thereof.
The various embodiments described above are provided by way of illustration only and should not be construed to limit the invention. Based upon the above discussion and illustrations, those skilled in the art will readily recognize that various modifications and changes may be made to the present invention without strictly following the exemplary embodiments and applications illustrated and described herein. For example, the methods, devices and systems discussed herein may be implemented in connection with voice-over Internet services, streaming media and call-processing. The invention may also be implemented using a variety of approaches such as those involving a number of different operating systems and software programs/packages. Such modifications and changes do not depart from the true spirit and scope of the present invention, including that set forth in the following claims.

Claims (17)

What is claimed is:
1. A system for providing call routing, the system comprising:
a processor circuit;
at least one server including the processor circuit and configured to:
retrieve call quality data representing a plurality of call quality factors for a plurality of VoIP (Voice over Internet Protocol) calls, each call quality factor representing a call quality for a corresponding call route,
identify a particular call from the plurality of VoIP calls based upon the plurality of call quality factors indicating poor call quality for the particular call,
select, in response to identifying the particular call, a VoIP capable device,
request a test connection to the selected VoIP capable device;
compare a plurality of call quality factors for the test connection with the plurality of call quality factors indicating poor call quality for the particular call,
assign, based upon the comparing of the pluralities of call quality factors, a plurality of different weight values to each call quality factor for the particular call, each weight value signifying a likelihood that the quality indicated by a call quality factor is caused by a corresponding portion of a call route for the particular call, and
select a second call route for a subsequent VoIP call using an algorithm based upon the plurality of different weight values.
2. The system of claim 1, wherein the at least one server is further configured to:
compare the call quality for the test connection to the call quality for the particular call, and
determine, based upon at least comparing the call qualities, the weight values for the particular call.
3. The system of claim 1, wherein the at least one server is further configured to:
request the test connection to the selected VoIP capable device while the particular call is ongoing.
4. The system of claim 1, wherein the selected VoIP capable device is an endpoint for the particular call.
5. The system of claim 1, wherein the at least one server is further configured to:
select the VoIP capable device based upon a location for another VoIP capable device that is an endpoint for the particular call.
6. The system of claim 1, wherein the at least one server is further configured to send and receive test data packets from the selected VoIP capable device using the test connection.
7. The system of claim 1, wherein the at least one server includes a VoIP/VioIP server that is configured to:
receive SIP (session-initiation-protocol)-based publish messages from VoIP capable endpoint devices used in the plurality of VoIP calls, the SIP-based publish messages containing the plurality of call quality factors for the plurality of VoIP calls; and
send, in response to the plurality of different weight values, updates to proxy servers that are configured to control a connection process for the plurality of VoIP calls.
8. A Voice over Internet Protocol (VoIP) endpoint device comprising:
an Internet Protocol (IP) interface;
an audio output circuit for producing audible sounds;
an audio input circuit for converting audible sounds to electrical signals; and
a logic circuit including at least one processor and programmed software instructions that, when executed by the at least one processor:
measure a first plurality of call quality factors for a VoIP call implemented using the IP interface,
request, from a VoIP test server, a list of at least one endpoint device for establishing a test connection,
receive, from the VoIP test server, the list of at least one endpoint device for establishing a test connection,
established, based upon the received list and using the IP interface, a test connection with a particular endpoint device from the list, and
measure a second plurality of call quality factors for the test connection.
9. The VoIP endpoint device of claim 8, wherein the VoIP endpoint device is further configured to publish the first and second plurality of call quality factors using session-initiation-protocol (SIP)-based publish messages.
10. The VoIP endpoint device of claim 8, wherein the VoIP endpoint device is further configured to request the list by subscribing to a multicast stream.
11. The VoIP endpoint device of claim 8, wherein the VoIP endpoint device is further configured to send test data during the test connection with a particular endpoint device from the list, wherein the test data does not include data received from the audio input circuit.
12. The VoIP endpoint device of claim 8, wherein the VoIP endpoint device is further configured to establish a loopback test connection and to measure a third plurality of call quality factors for the loopback test connection.
13. The VoIP endpoint device of claim 8, wherein the VoIP endpoint device is further configured to:
receive an incoming test connection request,
establish another test connection, and
measure a third plurality of call quality factors for the another test connection.
14. The VoIP endpoint device of claim 13, wherein the VoIP endpoint device is further configured to establish the another test connection without first ringing.
15. A method for providing call routing, the method comprising:
using at least one server, that includes a processor circuit, to:
retrieve call quality data representing a plurality of call quality factors for a plurality of VoIP (Voice over Internet Protocol) calls, each call quality factor representing a call quality for a corresponding call route,
identify a particular call from the plurality of VoIP calls based upon the plurality of call quality factors indicating poor call quality for the particular call,
select, in response to identifying the particular call, a VoIP capable device,
request a test connection to the selected VoIP capable device;
compare a plurality of call quality factors for the test connection with the plurality of call quality factors indicating poor call quality for the particular call,
assign, based upon the comparing of the pluralities of call quality factors, a plurality of different weight values to each call quality factor for a particular call, each weight value signifying a likelihood that the quality indicated by a call quality factor is caused by a corresponding portion of a call route for the particular call, and
select a second call route for a subsequent VoIP call using an algorithm based upon the plurality of different weight values and the call quality factors.
16. The method of claim 15, further comprising using the at least one server to:
compare the call quality for the test connection to the call quality for the particular call, and
determine, based upon at least comparing the call qualities, the weight values for the particular call.
17. The method of claim 15, further comprising using the at least one server to:
receive SIP (session-initiation-protocol)-based publish messages from VoIP capable endpoint devices used in the plurality of VoIP calls, the SIP-based publish messages containing the plurality of call quality factors for the plurality of VoIP calls; and
send, in response to the plurality of different weight values, updates to proxy servers that are configured to control a connection process for the plurality of VoIP calls.
US14/947,015 2009-12-21 2015-11-20 Systems, methods, devices and arrangements for cost-effective routing Active US9769321B1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US14/947,015 US9769321B1 (en) 2009-12-21 2015-11-20 Systems, methods, devices and arrangements for cost-effective routing
US15/708,654 US10057428B1 (en) 2009-12-21 2017-09-19 Systems, methods, devices and arrangements for cost-effective routing
US16/105,373 US10547749B1 (en) 2009-12-21 2018-08-20 Systems, methods, devices and arrangements for cost-effective routing
US16/748,112 US11108913B1 (en) 2009-12-21 2020-01-21 Systems, methods, devices and arrangements for cost-effective routing
US17/411,768 US11659095B1 (en) 2009-12-21 2021-08-25 Systems, methods, devices and arrangements for cost-effective routing

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/643,733 US9203652B2 (en) 2009-12-21 2009-12-21 Systems, methods, devices and arrangements for cost-effective routing
US14/947,015 US9769321B1 (en) 2009-12-21 2015-11-20 Systems, methods, devices and arrangements for cost-effective routing

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/643,733 Continuation US9203652B2 (en) 2009-12-21 2009-12-21 Systems, methods, devices and arrangements for cost-effective routing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/708,654 Continuation US10057428B1 (en) 2009-12-21 2017-09-19 Systems, methods, devices and arrangements for cost-effective routing

Publications (1)

Publication Number Publication Date
US9769321B1 true US9769321B1 (en) 2017-09-19

Family

ID=44150983

Family Applications (6)

Application Number Title Priority Date Filing Date
US12/643,733 Active 2033-09-22 US9203652B2 (en) 2009-12-21 2009-12-21 Systems, methods, devices and arrangements for cost-effective routing
US14/947,015 Active US9769321B1 (en) 2009-12-21 2015-11-20 Systems, methods, devices and arrangements for cost-effective routing
US15/708,654 Active US10057428B1 (en) 2009-12-21 2017-09-19 Systems, methods, devices and arrangements for cost-effective routing
US16/105,373 Active US10547749B1 (en) 2009-12-21 2018-08-20 Systems, methods, devices and arrangements for cost-effective routing
US16/748,112 Active 2030-02-11 US11108913B1 (en) 2009-12-21 2020-01-21 Systems, methods, devices and arrangements for cost-effective routing
US17/411,768 Active US11659095B1 (en) 2009-12-21 2021-08-25 Systems, methods, devices and arrangements for cost-effective routing

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US12/643,733 Active 2033-09-22 US9203652B2 (en) 2009-12-21 2009-12-21 Systems, methods, devices and arrangements for cost-effective routing

Family Applications After (4)

Application Number Title Priority Date Filing Date
US15/708,654 Active US10057428B1 (en) 2009-12-21 2017-09-19 Systems, methods, devices and arrangements for cost-effective routing
US16/105,373 Active US10547749B1 (en) 2009-12-21 2018-08-20 Systems, methods, devices and arrangements for cost-effective routing
US16/748,112 Active 2030-02-11 US11108913B1 (en) 2009-12-21 2020-01-21 Systems, methods, devices and arrangements for cost-effective routing
US17/411,768 Active US11659095B1 (en) 2009-12-21 2021-08-25 Systems, methods, devices and arrangements for cost-effective routing

Country Status (1)

Country Link
US (6) US9203652B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170026258A1 (en) * 2015-03-26 2017-01-26 Linkedin Corporation Detecting and Alerting Performance Degradation During Features Ramp-up
CN107920175A (en) * 2017-11-04 2018-04-17 金陵科技学院 A kind of method of communication control device call route
US10547749B1 (en) 2009-12-21 2020-01-28 8X8, Inc. Systems, methods, devices and arrangements for cost-effective routing
US10666532B1 (en) 2015-12-17 2020-05-26 8X8, Inc. Analysis of system conditions from endpoint status information

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2720398C (en) 2008-04-02 2016-08-16 Twilio Inc. System and method for processing telephony sessions
US8837465B2 (en) 2008-04-02 2014-09-16 Twilio, Inc. System and method for processing telephony sessions
CN102227904A (en) 2008-10-01 2011-10-26 特维里奥公司 Telephony web event system and method
CN102415068B (en) 2009-03-02 2015-09-02 特维里奥公司 For the method and system of many tenants telephone network
US9210275B2 (en) 2009-10-07 2015-12-08 Twilio, Inc. System and method for running a multi-module telephony application
US9590849B2 (en) 2010-06-23 2017-03-07 Twilio, Inc. System and method for managing a computing cluster
US20120208495A1 (en) 2010-06-23 2012-08-16 Twilio, Inc. System and method for monitoring account usage on a platform
US8838707B2 (en) 2010-06-25 2014-09-16 Twilio, Inc. System and method for enabling real-time eventing
US8649268B2 (en) 2011-02-04 2014-02-11 Twilio, Inc. Method for processing telephony sessions of a network
US20140044123A1 (en) 2011-05-23 2014-02-13 Twilio, Inc. System and method for real time communicating with a client application
WO2012162397A1 (en) 2011-05-23 2012-11-29 Twilio, Inc. System and method for connecting a communication to a client
US9648006B2 (en) 2011-05-23 2017-05-09 Twilio, Inc. System and method for communicating with a client application
US10182147B2 (en) 2011-09-21 2019-01-15 Twilio Inc. System and method for determining and communicating presence information
US8861373B2 (en) * 2011-12-29 2014-10-14 Vonage Network, Llc Systems and methods of monitoring call quality
US9641562B2 (en) * 2011-12-29 2017-05-02 Vonage Business Inc. Systems and methods of monitoring call quality
US9495227B2 (en) 2012-02-10 2016-11-15 Twilio, Inc. System and method for managing concurrent events
US10003652B2 (en) 2012-03-05 2018-06-19 Omnitracs, Llc Managing selective access of a user equipment to internet-based services based on transport type
US9602586B2 (en) 2012-05-09 2017-03-21 Twilio, Inc. System and method for managing media in a distributed communication network
US9247062B2 (en) 2012-06-19 2016-01-26 Twilio, Inc. System and method for queuing a communication session
US8737962B2 (en) 2012-07-24 2014-05-27 Twilio, Inc. Method and system for preventing illicit use of a telephony platform
US8948356B2 (en) 2012-10-15 2015-02-03 Twilio, Inc. System and method for routing communications
US8938053B2 (en) 2012-10-15 2015-01-20 Twilio, Inc. System and method for triggering on platform usage
US9282124B2 (en) 2013-03-14 2016-03-08 Twilio, Inc. System and method for integrating session initiation protocol communication in a telecommunications platform
US9240966B2 (en) 2013-06-19 2016-01-19 Twilio, Inc. System and method for transmitting and receiving media messages
US9225840B2 (en) 2013-06-19 2015-12-29 Twilio, Inc. System and method for providing a communication endpoint information service
US9137127B2 (en) 2013-09-17 2015-09-15 Twilio, Inc. System and method for providing communication platform metadata
US9274858B2 (en) 2013-09-17 2016-03-01 Twilio, Inc. System and method for tagging and tracking events of an application platform
US9325624B2 (en) 2013-11-12 2016-04-26 Twilio, Inc. System and method for enabling dynamic multi-modal communication
US9553799B2 (en) 2013-11-12 2017-01-24 Twilio, Inc. System and method for client communication in a distributed telephony network
US20150201437A1 (en) * 2014-01-13 2015-07-16 Vonage Network, Llc Systems and methods for reducing signaling in an internet protocol telephony system
US9344573B2 (en) 2014-03-14 2016-05-17 Twilio, Inc. System and method for a work distribution service
US9226217B2 (en) 2014-04-17 2015-12-29 Twilio, Inc. System and method for enabling multi-modal communication
EP3162092B1 (en) * 2014-06-27 2021-10-20 Agora Lab, Inc. Systems and methods for improved quality of a visualized call over network
US9838544B2 (en) * 2014-06-27 2017-12-05 Agora Lab, Inc. Systems and methods for improved quality of a call over network with load leveling and last mile signal indication
US9246694B1 (en) 2014-07-07 2016-01-26 Twilio, Inc. System and method for managing conferencing in a distributed communication network
US9251371B2 (en) 2014-07-07 2016-02-02 Twilio, Inc. Method and system for applying data retention policies in a computing platform
US9516101B2 (en) * 2014-07-07 2016-12-06 Twilio, Inc. System and method for collecting feedback in a multi-tenant communication platform
US9774687B2 (en) 2014-07-07 2017-09-26 Twilio, Inc. System and method for managing media and signaling in a communication platform
CN105991854B (en) * 2014-09-29 2020-03-13 上海兆言网络科技有限公司 System and method for visualizing VoIP (Voice over Internet protocol) teleconference on intelligent terminal
EP3210350B1 (en) 2014-10-21 2020-05-20 Twilio, Inc. Method for providing a miro-services communication platform
US9477975B2 (en) 2015-02-03 2016-10-25 Twilio, Inc. System and method for a media intelligence platform
US9948703B2 (en) 2015-05-14 2018-04-17 Twilio, Inc. System and method for signaling through data storage
US10419891B2 (en) 2015-05-14 2019-09-17 Twilio, Inc. System and method for communicating through multiple endpoints
US9699226B1 (en) 2015-12-17 2017-07-04 8X8, Inc. Display dependent analytics
US10659349B2 (en) 2016-02-04 2020-05-19 Twilio Inc. Systems and methods for providing secure network exchanged for a multitenant virtual private cloud
US10594731B2 (en) 2016-03-24 2020-03-17 Snowflake Inc. Systems, methods, and devices for securely managing network connections
US11824827B1 (en) 2016-04-13 2023-11-21 8X8, Inc. Region-based network address translation
US11076051B1 (en) 2016-05-04 2021-07-27 8X8, Inc. Endpoint location update control for call routing decisions
US10542150B1 (en) 2016-05-04 2020-01-21 8X8, Inc. Server generated timing of location updates for call routing decisions
US10530934B1 (en) 2016-05-04 2020-01-07 8X8, Inc. Endpoint location determination for call routing decisions
US10326888B1 (en) 2016-05-04 2019-06-18 8X8, Inc. Location updates for call routing decisions
US10686902B2 (en) 2016-05-23 2020-06-16 Twilio Inc. System and method for a multi-channel notification service
US10063713B2 (en) 2016-05-23 2018-08-28 Twilio Inc. System and method for programmatic device connectivity
US10439956B1 (en) 2016-06-23 2019-10-08 8×8, Inc. Network path selection for routing data
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
US10992729B2 (en) 2017-04-18 2021-04-27 Microsoft Technology Licensing, Llc Endpoint configuration for a communication session
US11948577B1 (en) 2018-03-30 2024-04-02 8X8, Inc. Analysis of digital voice data in a data-communication server system
US11184481B1 (en) 2018-08-07 2021-11-23 First Orion Corp. Call screening service for communication devices
CN110445657B (en) * 2019-08-15 2022-01-04 北京计算机技术及应用研究所 Distributed networking management system based on block chain
US11563660B2 (en) * 2021-01-30 2023-01-24 Zoom Video Communications, Inc. Intelligent configuration of conferencing devices

Citations (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020105909A1 (en) 2001-02-07 2002-08-08 Mark Flanagan Quality-of-service monitor
US20020122429A1 (en) 2001-03-05 2002-09-05 Griggs Theodore Leon Mechanism and method for user selection of dynamic quality of service in telephony
US20030161460A1 (en) 2002-02-27 2003-08-28 At&T Wireless Services, Inc. Call path reduction via correlation of call legs in a hairpin loop scenario
US20040125803A1 (en) 2002-12-31 2004-07-01 Sangroniz Robert Leon Multicast optimization in a VLAN tagged network
US6788649B1 (en) * 1998-08-03 2004-09-07 Mci, Inc. Method and apparatus for supporting ATM services in an intelligent network
US20040208133A1 (en) 2003-04-21 2004-10-21 Dylan Jay Method and apparatus for predicting the quality of packet data communications
US20040264386A1 (en) 2001-11-06 2004-12-30 Kyung-Lim Ha Communication integration system for establishing fittest communication route depending on information of user's communication terminals and calling method using the same
US20050025123A1 (en) 2003-07-29 2005-02-03 Derek Mitsumori System and method for generating reports in a network
US20050201364A1 (en) 2004-03-11 2005-09-15 Transnexus, Inc. Method and system for routing calls over a packet switched computer network
US6961315B1 (en) * 2000-11-21 2005-11-01 At&T Corp. Technique for monitoring conversational voice over packet
US20050244015A1 (en) * 2004-05-03 2005-11-03 Sung Ho-Young Method and apparatus to evaluate sound quality according to a measuring mode
US20050271029A1 (en) * 2004-06-02 2005-12-08 Frederick Iffland Methods, apparatus and computer program products for testing a voice over Internet protocol communication system
US20060031576A1 (en) 2002-11-13 2006-02-09 Geoffrey Canright Method for routing messages from a source node to a destination node in a dynamic network
US20060268828A1 (en) 2005-05-12 2006-11-30 Yahoo! Inc. Selecting a network based on metrics for real time communication
US7222190B2 (en) 2001-11-02 2007-05-22 Internap Network Services Corporation System and method to provide routing control of information over data networks
US20070183440A1 (en) * 2005-11-14 2007-08-09 Bennet James D Communication device supporting both Internet and public switched telephone network telephony
US20070248012A1 (en) 2006-04-25 2007-10-25 Texas Instruments, Inc. Quality of service reporting for a communication device
US20080049738A1 (en) * 2006-08-24 2008-02-28 Innowireless Co., Ltd. Monitoring system and method for trunk gateway
US7339934B2 (en) 2001-04-06 2008-03-04 Level 3 Communications, Llc Alternate routing of voice communication in a packet-based network
US7352852B1 (en) 2003-04-29 2008-04-01 Sprint Communications Company L.P. Method and system for determining a least cost path for routing international communications traffic
US7388946B1 (en) 2003-09-02 2008-06-17 Level 3 Communications, Llc System and method for evaluating the quality of service in an IP telephony network using call forwarding
US20090147770A1 (en) 2007-12-11 2009-06-11 At&T Knowledge Ventures, Lp System and Method of Routing Voice Communications Via Peering Networks
US20090268713A1 (en) 2008-04-23 2009-10-29 Vonage Holdings Corporation Method and apparatus for testing in a communication network
US20100142377A1 (en) * 2008-12-10 2010-06-10 Razvan Caciula SIP Information Extraction
US20100172251A1 (en) * 2009-01-07 2010-07-08 Richard Adam Methods, systems, and computer readable media for combining voice over internet protocol (voip) call data with geographical information
US7773587B2 (en) 2003-07-23 2010-08-10 Current Technologies, Llc Voice over internet protocol network test device and method
US20100318665A1 (en) * 2003-04-14 2010-12-16 Riverbed Technology, Inc. Interception of a cloud-based communication connection
US20110096762A1 (en) * 2008-03-24 2011-04-28 Shoretel, Inc. Cloud voip system with bypass for ip media
US7940659B2 (en) 2006-06-02 2011-05-10 Telefonaktiebolaget Lm Ericsson (Publ) Devices and method for guaranteeing quality of service per service data flow through the bearer layer
US7965699B1 (en) 2006-08-29 2011-06-21 Tellme Networks, Inc. Routing/switching on a heterogeneous network
US20110188494A1 (en) * 2009-10-12 2011-08-04 Robert Johnson Dynamic intelligent data routing apparatus and method
US8046474B2 (en) * 2004-03-19 2011-10-25 Fujitsu Limited Method, apparatus, programs and storage medium for transferring data between different types of terminals
US8063928B2 (en) 2003-10-01 2011-11-22 Worldgate Service, Inc. Videophone system and method
US20140229614A1 (en) * 2013-02-12 2014-08-14 Unify Square, Inc. Advanced Tools for Unified Communication Data Management and Analysis

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7653002B2 (en) * 1998-12-24 2010-01-26 Verizon Business Global Llc Real time monitoring of perceived quality of packet voice transmission
US7197010B1 (en) * 2001-06-20 2007-03-27 Zhone Technologies, Inc. System for real time voice quality measurement in voice over packet network
US7046636B1 (en) * 2001-11-26 2006-05-16 Cisco Technology, Inc. System and method for adaptively improving voice quality throughout a communication session
US20040073690A1 (en) * 2002-09-30 2004-04-15 Neil Hepworth Voice over IP endpoint call admission
US7715403B2 (en) * 2003-10-01 2010-05-11 Genband Inc. Methods, systems, and computer program products for load balanced and symmetric path computations for VoIP traffic engineering
US8165109B2 (en) * 2004-11-10 2012-04-24 Cisco Technology, Inc. Method for managing the quality of encrypted voice over IP to teleagents
JP2007259320A (en) * 2006-03-24 2007-10-04 Fujitsu Ltd Speech sound quality evaluation system, communication system, test management apparatus and test communication device
WO2007140165A2 (en) * 2006-05-26 2007-12-06 Whaleback Systems Corporation Selecting routes through a network
US7864687B2 (en) * 2007-12-19 2011-01-04 At&T Intellectual Property Ii, L.P. Methods and apparatus for fault identification in border gateway protocol networks
US7953010B2 (en) * 2008-07-30 2011-05-31 Avaya Inc. System and method of controlling in-bound path selection based on historical and continuous path quality monitoring, assessment and predictions
US8081578B2 (en) * 2009-01-07 2011-12-20 Ixia Methods, systems, and computer readable media for automatically categorizing voice over internet protocol (VoIP) subscriber devices in accordance with VoIP test and call quality data
US20100250747A1 (en) * 2009-03-31 2010-09-30 Jeyhan Karaoguz ADAPTIVE MULTIPLE PATHWAY SESSION SETUP TO SUPPORT QoS SERVICES
US9203652B2 (en) 2009-12-21 2015-12-01 8X8, Inc. Systems, methods, devices and arrangements for cost-effective routing

Patent Citations (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6788649B1 (en) * 1998-08-03 2004-09-07 Mci, Inc. Method and apparatus for supporting ATM services in an intelligent network
US6961315B1 (en) * 2000-11-21 2005-11-01 At&T Corp. Technique for monitoring conversational voice over packet
US20020105909A1 (en) 2001-02-07 2002-08-08 Mark Flanagan Quality-of-service monitor
US20020122429A1 (en) 2001-03-05 2002-09-05 Griggs Theodore Leon Mechanism and method for user selection of dynamic quality of service in telephony
US7339934B2 (en) 2001-04-06 2008-03-04 Level 3 Communications, Llc Alternate routing of voice communication in a packet-based network
US7222190B2 (en) 2001-11-02 2007-05-22 Internap Network Services Corporation System and method to provide routing control of information over data networks
US20040264386A1 (en) 2001-11-06 2004-12-30 Kyung-Lim Ha Communication integration system for establishing fittest communication route depending on information of user's communication terminals and calling method using the same
US20030161460A1 (en) 2002-02-27 2003-08-28 At&T Wireless Services, Inc. Call path reduction via correlation of call legs in a hairpin loop scenario
US20060031576A1 (en) 2002-11-13 2006-02-09 Geoffrey Canright Method for routing messages from a source node to a destination node in a dynamic network
US20040125803A1 (en) 2002-12-31 2004-07-01 Sangroniz Robert Leon Multicast optimization in a VLAN tagged network
US20100318665A1 (en) * 2003-04-14 2010-12-16 Riverbed Technology, Inc. Interception of a cloud-based communication connection
US20040208133A1 (en) 2003-04-21 2004-10-21 Dylan Jay Method and apparatus for predicting the quality of packet data communications
US7352852B1 (en) 2003-04-29 2008-04-01 Sprint Communications Company L.P. Method and system for determining a least cost path for routing international communications traffic
US7773587B2 (en) 2003-07-23 2010-08-10 Current Technologies, Llc Voice over internet protocol network test device and method
US20050025123A1 (en) 2003-07-29 2005-02-03 Derek Mitsumori System and method for generating reports in a network
US7388946B1 (en) 2003-09-02 2008-06-17 Level 3 Communications, Llc System and method for evaluating the quality of service in an IP telephony network using call forwarding
US8063928B2 (en) 2003-10-01 2011-11-22 Worldgate Service, Inc. Videophone system and method
US20050201364A1 (en) 2004-03-11 2005-09-15 Transnexus, Inc. Method and system for routing calls over a packet switched computer network
US8046474B2 (en) * 2004-03-19 2011-10-25 Fujitsu Limited Method, apparatus, programs and storage medium for transferring data between different types of terminals
US20050244015A1 (en) * 2004-05-03 2005-11-03 Sung Ho-Young Method and apparatus to evaluate sound quality according to a measuring mode
US20050271029A1 (en) * 2004-06-02 2005-12-08 Frederick Iffland Methods, apparatus and computer program products for testing a voice over Internet protocol communication system
US20060268828A1 (en) 2005-05-12 2006-11-30 Yahoo! Inc. Selecting a network based on metrics for real time communication
US20070183440A1 (en) * 2005-11-14 2007-08-09 Bennet James D Communication device supporting both Internet and public switched telephone network telephony
US20070248012A1 (en) 2006-04-25 2007-10-25 Texas Instruments, Inc. Quality of service reporting for a communication device
US7940659B2 (en) 2006-06-02 2011-05-10 Telefonaktiebolaget Lm Ericsson (Publ) Devices and method for guaranteeing quality of service per service data flow through the bearer layer
US20080049738A1 (en) * 2006-08-24 2008-02-28 Innowireless Co., Ltd. Monitoring system and method for trunk gateway
US7965699B1 (en) 2006-08-29 2011-06-21 Tellme Networks, Inc. Routing/switching on a heterogeneous network
US20090147770A1 (en) 2007-12-11 2009-06-11 At&T Knowledge Ventures, Lp System and Method of Routing Voice Communications Via Peering Networks
US20110096762A1 (en) * 2008-03-24 2011-04-28 Shoretel, Inc. Cloud voip system with bypass for ip media
US20090268713A1 (en) 2008-04-23 2009-10-29 Vonage Holdings Corporation Method and apparatus for testing in a communication network
US20100142377A1 (en) * 2008-12-10 2010-06-10 Razvan Caciula SIP Information Extraction
US20100172251A1 (en) * 2009-01-07 2010-07-08 Richard Adam Methods, systems, and computer readable media for combining voice over internet protocol (voip) call data with geographical information
US20110188494A1 (en) * 2009-10-12 2011-08-04 Robert Johnson Dynamic intelligent data routing apparatus and method
US20140229614A1 (en) * 2013-02-12 2014-08-14 Unify Square, Inc. Advanced Tools for Unified Communication Data Management and Analysis

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
"Monitoring VoIP with Cisco Network Analysis Module White Paper Mar. 2009," pp. 1-13.
A. Khalifeh and A. El-Mousa, "Performance Evaluation of VoIP Using Shortest-Widest and Modified Widest-Shortest QoS Routing Algorithms," Proc. of the World Congress on Engineering, vol. 1, WCE 2007, Jul. 2-4, 2007, London, U.K.
Ditech Networks, "Feature Overview," "Experience Intelligence™ for VoIP Networks," www.ditechnetworks.com.
Squire Technologies, Signalling Specialists to the Telecoms Industry, "Offering Least Cost Routing (LCR)," (2009).
TelArix, "iXRoute®-Optimized Routing," www.telarix.com.
TelArix, "iXRoute®—Optimized Routing," www.telarix.com.

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10547749B1 (en) 2009-12-21 2020-01-28 8X8, Inc. Systems, methods, devices and arrangements for cost-effective routing
US11108913B1 (en) 2009-12-21 2021-08-31 8X8, Inc. Systems, methods, devices and arrangements for cost-effective routing
US11659095B1 (en) 2009-12-21 2023-05-23 8X8, Inc. Systems, methods, devices and arrangements for cost-effective routing
US20170026258A1 (en) * 2015-03-26 2017-01-26 Linkedin Corporation Detecting and Alerting Performance Degradation During Features Ramp-up
US9979618B2 (en) * 2015-03-26 2018-05-22 Microsoft Technology Licensing, Llc Detecting and alerting performance degradation during features ramp-up
US10666532B1 (en) 2015-12-17 2020-05-26 8X8, Inc. Analysis of system conditions from endpoint status information
US10708159B1 (en) 2015-12-17 2020-07-07 8X8, Inc. Monitor device for use with endpoint devices
US11206202B1 (en) 2015-12-17 2021-12-21 8X8, Inc. Analysis of system conditions from endpoint status information
US11323346B1 (en) 2015-12-17 2022-05-03 8X8, Inc. Monitor device for use with endpoint devices
CN107920175A (en) * 2017-11-04 2018-04-17 金陵科技学院 A kind of method of communication control device call route

Also Published As

Publication number Publication date
US9203652B2 (en) 2015-12-01
US10057428B1 (en) 2018-08-21
US11659095B1 (en) 2023-05-23
US11108913B1 (en) 2021-08-31
US20110149950A1 (en) 2011-06-23
US10547749B1 (en) 2020-01-28

Similar Documents

Publication Publication Date Title
US11659095B1 (en) Systems, methods, devices and arrangements for cost-effective routing
US9350642B2 (en) System and method for managing latency in a distributed telephony network
US7852749B2 (en) Methods and systems for routing telecommunications
US8797888B2 (en) VoIP quality bar and “toast” notifications
US20130070755A1 (en) Systems and methods of routing ip telephony data packet communications
US10230849B1 (en) Intelligent media relay selection
GB2476077A (en) Estimating VoIP call Quality before a call is set up
US9998424B1 (en) NAT traversal in VoIP communication system
US9215263B2 (en) Method and apparatus for rapid setup of a telephony communication using multiple communication channels
US8472342B1 (en) Systems and methods of routing IP telephony data packet communications
US9042541B2 (en) Multi-node predictive dialing for scalability
US20140153562A1 (en) Systems and methods of routing ip telephony data packet communciations
US20140153409A1 (en) Systems and methods of routing ip telephony data packet communciations
US10880343B2 (en) Conferencing system exploiting terminal diversity
US11115313B1 (en) Analysis of transmission characteristics in a voice-over-IP network
US20140153413A1 (en) Systems and methods of routing ip telephony data packet communciations
US8553570B1 (en) Systems and methods of routing IP telephony data packet communications
GB2583785A (en) Call control
Ali et al. Reliability analysis of VoIP system
Cruz et al. IMS centric communication supporting WebRTC endpoints
US9906567B2 (en) Systems and methods of routing IP telephony data packet communications
US20140086142A1 (en) Systems and methods of routing ip telephony data packet communications
Lemberg Integrating Web-Based Multimedia Technologies with Operator Multimedia Services Core
CA2833904C (en) Systems and methods of routing ip telephony data packet communications
WO2014085217A1 (en) Systems and methods of routing ip telephony data packet communications

Legal Events

Date Code Title Description
AS Assignment

Owner name: 8X8, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PETIT-HUGUENIN, MARC;JUDGE, GARTH;SIGNING DATES FROM 20091228 TO 20100101;REEL/FRAME:041640/0844

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

AS Assignment

Owner name: WILMINGTON SAVINGS FUND SOCIETY, FSB, DELAWARE

Free format text: INTELLECTUAL PROPERTY SECURITY AGREEMENT;ASSIGNORS:8X8, INC.;FUZE, INC.;REEL/FRAME:061085/0861

Effective date: 20220803

AS Assignment

Owner name: WILMINGTON SAVINGS FUND SOCIETY, FSB, DELAWARE

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBERS SECTION TO REMOVE APPLICATION NUMBERS 11265423, 11252205, 11240370, 11252276, AND 11297182 PREVIOUSLY RECORDED ON REEL 061085 FRAME 0861. ASSIGNOR(S) HEREBY CONFIRMS THE INTELLECTUAL PROPERTY SECURITY AGREEMENT;ASSIGNORS:8X8, INC.;FUZE, INC.;REEL/FRAME:066383/0936

Effective date: 20220803