Media degradation recovery during a communication session

Embodiments disclosed herein provide systems, methods, and computer readable media for recovering from media degradation during a communication session. In a particular embodiment, a method provides, during a communication session between a first user system operated by a first user and a second user system operated by a second user, receiving a first indication from the first user system indicating a degraded condition of media received by the first user system from the second user system. Responsive to receiving the indication, the method provides attempting to establish a connection with a third user system associated with the second user when the degraded condition comprises inactivity of the media being received by the first user system from the second user system. Upon establishing the connection with the third user system, the method provides connecting the third user system to the first user system to continue the communication session.

TECHNICAL FIELD

Aspects of the disclosure are related to improving user experience during a communication session and, in particular, to mitigating the effects of media degradation during the communication session.

TECHNICAL BACKGROUND

Communications between two end user systems can sometimes become degraded, which may adversely affect the experience of the users on the communication. In some situations, the communications may even become completely disconnected. Traditionally, a user may disconnect the communication and then attempt to reestablish the communication in hopes that the issues are resolved when the communication is reestablished. While that solution may work in some cases, reestablishing the communication between the same two user systems, and possibly through the same intervening systems (e.g. gateways), may result in the the reestablished communication suffering from the same issues as the prior communication. In fact, one of the user systems itself may have failed, which would prevent the other user system from contacting that user system when attempting to reestablish the communication.

OVERVIEW

Embodiments disclosed herein provide systems, methods, and computer readable media for recovering from media degradation during a communication session. In a particular embodiment, a method provides, during a communication session between a first user system operated by a first user and a second user system operated by a second user, receiving a first indication from the first user system indicating a degraded condition of media received by the first user system from the second user system degraded. Responsive to receiving the indication, the method provides attempting to establish a connection with a third user system associated with the second user when the degraded condition comprises inactivity of the media being received by the first user system from the second user system. Upon establishing the connection with the third user system, the method provides connecting the third user system to the first user system to continue the communication session.

In some embodiments, attempting to establish the connection with the third user system comprises identifying a plurality of user systems associated with the second user and attempting to establish a connection with each of the plurality of user systems in sequence. In these embodiments, the third user system comprises a first one of the plurality of user systems to which a connection can be established.

In some embodiments, the sequence is determined based on a preference for each of the plurality of user systems.

In some embodiments, the plurality of user systems comprises a mobile phone, a forwarded device, a covered device, and a voicemail system. In these embodiments, the sequence comprises the mobile phone first, the forwarded device second, the covered device third, and the voicemail system fourth.

In some embodiments, the method further comprises transferring a second indication to the first user system indicating that an attempt is being made to re-establish the communication session.

In some embodiments, the method further provides attempting to contact the first user system for reconnection before attempting to establish a connection with the third user system.

In some embodiments, the media passes through a first media gateway between the first user system and the second user system, and the method further provides, responsive to receiving the indication, reconfiguring the communication session to pass through a second media gateway when the degraded condition comprises the media having a lower than a threshold quality when received by the first user system from the second user system.

In some embodiments, the first indication is transferred by the first user system at the instruction of the first user.

In some embodiments, the method provides performing diagnostics on the first media gateway to determine what caused the degraded condition and attempting to rectify what caused the degraded condition before reconfiguring the communication session.

In another embodiment, a method provides, during a communication session passing through a first media gateway between a first user system operated by a first user and a second user system operated by a second user, receiving a first indication from the first user system indicating a first degraded condition of media received by the first user system from the second user system. The method then provides, responsive to receiving the indication, reconfiguring the communication session to pass through a second media gateway when the degraded condition comprises the media having a lower than a threshold quality when received by the first user system from the second user system.

In some embodiments, the first indication is transferred by the first user system at the instruction of the first user.

In some embodiments, the method provides performing diagnostics on the first media gateway to determine what caused the degraded condition and attempting to rectify what caused the degraded condition before reconfiguring the communication session.

In some embodiments, the method provides, responsive to receiving the indication, attempting to establish a connection with a third user system associated with the second user when the degraded condition comprises inactivity of the media being received by the first user system from the second user system. Upon establishing the connection with the third user system, the method provides connecting the third user system to the first user system to continue the communication session.

In some embodiments, attempting to establish the connection with the third user system comprises identifying a plurality of user systems associated with the second user and attempting to establish a connection with each of the plurality of user systems in sequence. In these embodiments, the third user system comprises a first one of the plurality of user systems to which a connection can be established.

In some embodiments, the sequence is determined based on a preference for each of the plurality of user systems.

In some embodiments, the plurality of user systems comprises a mobile phone, a forwarded device, a covered device, and a voicemail system, and the sequence comprises the mobile phone first, the forwarded device second, the covered device third, and the voicemail system fourth.

In some embodiments, the method provides transferring a second indication to the first user system indicating that an attempt is being made to re-establish the communication session.

In some embodiments, the method provides attempting to contact the first user system for reconnection before attempting to establish a connection with the third user system.

In yet another embodiment, a communication control system is provided having one or more computer readable storage media and a processing system operatively coupled with the one or more computer readable storage media. Program instructions stored on the one or more computer readable storage media, when read and executed by the processing system, direct the processing system to, during a communication session passing through a first media gateway between a first user system operated by a first user and a second user system operated by a second user, receive a first indication from the first user system indicating a first degraded condition of media received by the first user system from the second user system. Responsive to receiving the indication the program instructions direct the processing system to reconfigure the communication session to pass through a second media gateway when the degraded condition comprises the media having a lower than a threshold quality when received by the first user system from the second user system. Also, the program instructions direct the processing system to attempt to establish a connection with a third user system associated with the second user when the degraded condition comprises inactivity of the media being received by the first user system from the second user system and, upon establishing the connection with the third user system, connect the third user system to the first user system to continue the communication session.

In some embodiments, the program instructions that direct the processing system to attempt to establish the connection with the third user system comprise program instructions that direct the processing system to identify a plurality of user systems associated with the second user and attempt to establish a connection with each of the plurality of user systems in sequence based on a preference for each of the plurality of user systems. In these embodiments, the third user system comprises a first one of the plurality of user systems to which a connection can be established.

DETAILED DESCRIPTION

FIG. 1Aillustrates communication environment100A for recovering from media degradation during a communication session. Communication environment100A includes user system101, user system102, user system103, and communication control system104. User system101and communication control system104communicate over communication link111. User system102and communication control system104communicate over communication link112. User system101and user system102communicate over communication link113. User system103and communication control system104communicate over communication link114. In some embodiments described herein an additional communication link between user system101and user system103may also be created so as user system101and user system103can exchange communications without going through communication control system104.

FIG. 1Billustrates communication environment100B for recovering from media degradation during a communication session. Communication environment100B also includes user system101, user system102, user system103, and communication control system104. Communication environment100B further includes media gateway105and media gateway106. Elements101-106communicate over communication links111-112and115-121as shown.

In operation, communication control system104facilitates communication sessions between user system101and user system102. Typically, the facilitation of communication sessions involves the exchange of control messages between user system101, user system102, and any other involved system to setup, maintain, and takedown a communication session. Communication environment100B includes media gateway105and media gateway106through which media for communications pass, whereas user system101and user system102in communication environment100A do not exchange media through a media gateway. In some cases, though not consequential for the purposes of this disclosure, media for a communication session (e.g. audio, video, graphics, etc.) may also pass through communication control system104. It should be understood that communication control system104may facilitate communication sessions between more than just those user systems shown in communication environment100A and communication environment100B.

FIG. 2illustrates method200of operating either communication environment100A or communication environment100B to recover from media degradation during a communication session. Method200occurs after a communication session between user system101and user system102has already been established and media is being exchanged between user system101and user system102for that communication session on behalf of users of user system101and user system102. As noted above, the media in communication environment100B passes through one of media gateway105and media gateway106while the media in communication environment100A does not. The media may include audio (e.g. voice), video, graphical, or any other type of media that can be exchanged over a communication network.

During the communication session, method200provides communication control system104receiving an indication from user system101indicating a degraded condition of media received by user system101from user system102(201). In this embodiment, the degraded condition comprises a complete or substantially complete inactivity of media being received from user system102. The inactivity of media may be determined based on user system101detecting the absence of packets being received from user system102by user system101. For example, user system101may be configured with a threshold amount of time within which a media packet should be received from user system102. If no additional media packets are received in that threshold amount of time since a most recent media packet was received, then user system101determines that a loss of media communication with user system102has occurred for the communication session. User system101then sends communication control system104an indication of that loss in accordance with step201.

Responsive to receiving the indication, method200provides communication control system104attempting to establish a connection with user system103(step202). User system103is associated with a user of user system102. For instance, user system103may be a mobile phone, a forwarded device, a covered device, voicemail system, or any other type of system or device associated (e.g. owned by, operated by, or otherwise) with the user of user system102. In some cases, user system103may be selected by communication control system104from multiple user systems associated with the user of user system102. That selection may be based on a priority assigned to each of the multiple user systems. For example, communication control system104may attempt to connect with each of the multiple user systems in order of their priority, with higher priority systems first, until a connection is made. In some examples, communication control system104may transfer a message to user system101indicating that communication control system104is attempting to reestablish the communication session with another system associated with the user of user system102. User system101may then present (e.g. audibly, visually, or otherwise) an indication of such to its user.

Upon establishing the connection with user system103, method200provides communication control system104connecting user system103to user system101to continue the communication session (203). Once the connection is made to user system103, the media for the communication session may be exchanged through communication control system104or the communication session may be configured by communication control system104such that the media between user system101and user system103does not pass through communication control system104. Regardless of the path taken by the media, the users of user system101and user system102can continue their communication session by using user system101and user system103.

FIG. 3illustrates method300of operating communication environment100B to recover from media degradation during a communication session. As was the case with method200, method300occurs after a communication session between user system101and user system102has already been established and media is being exchanged between user system101and user system102for that communication session on behalf of users of user system101and user system102. In this embodiment, the media between user system101and user system102for the communication session traverses media gateway105. The media may include audio (e.g. voice), video, graphical, or any other type of media that can be exchanged over a communication network.

During the communication session, which is passing through media gateway105between user system101and user system102, method300provides communication control system104receiving an indication from user system101indicating a degraded condition of the media received by user system101from user system102(step301). In this example, the degraded condition comprises the media having a lower than a threshold quality when received by user system101from user system102. The threshold may be preset in user system101and user system101may automatically monitor the quality of the media received from user system102to determine whether that quality falls below the threshold. The threshold may define quality based percentages, ratios, or otherwise of errored packets, lost packets, delayed packets, or some other parameter that could affect the quality of media received by user system101. In some cases, an indication that the quality has fallen below the threshold may be received from input of a user of user system101indicating that the user has noticed degradation in the media as it is presented by user system101.

Responsive to communication control system104receiving the indication, method300provides communication control system104reconfiguring the communication session to pass through media gateway106(302). The reconfiguring may include notifying user system101, user system102, media gateway105, and media gateway106that media gateway106will now be used to exchange the media between user system101and user system102. The notification to each system and gateway may include providing network addresses so that user system101, user system102, and media gateway106all know where packets carrying the media should be sent. Once media gateway106is being used to pass the media for the communication session, any quality issues that were caused by media gateway105are now gone since media gateway105is no longer in the communication path for the media.

In some examples, communication control system104may perform diagnostics on media gateway105to try to determine what may have caused the media degradation. In some cases, the diagnostics may be performed after media gateway106has been configured to handle the media while, in other cases, the diagnostics may be performed prior to media gateway106being configured to handle the media. In the latter case, if communication control system104determines that media gateway105is working normally and is not causing the media degradation, then communication control system104may keep media gateway105configured to handle the media. Additionally, when diagnostics are performed prior to media gateway being configured to handle the media, communication control system104may first try to rectify any issue found during the diagnostics. If the issue is resolved, then media gateway105may continue to be used for the media and, if the issue remains, then communication control system104may configure media gateway106to handle the media.

It should be understood that, in the case of communication environment100B, communication control system104may be capable of performing both method200and method300. In other words, upon receiving the indication of media degradation, communication control system104will perform method200or method300depending on the type of degradation indicated by user system101. Method200is performed if the degradation comprises a complete or substantially complete inactivity of media being received from user system102. Alternatively, method300is performed if the degradation comprises the media having a lower than a threshold quality when received by user system101from user system102. In some cases, one of methods200and300may be performed after the other method has already been performed.

Referring back toFIG. 1, communication control system104comprises a computer processor system and communication interface. Communication control system104may also include other components such as a router, server, data storage system, and power supply. Communication control system104may reside in a single device or may be distributed across multiple devices. While shown separately, communication control system104may be incorporated into one or more of user systems102and103. Communication control system104may be an audio communication server, video communication server, application server, personal computer workstation, network gateway system, or some other computing system—including combinations thereof.

User systems user system101-103each comprise a computer processor system and a communication interface. User systems101-103may further include at least one microphone or may be operatively coupled to at least one microphone for capturing audio. User systems101-103may also include other components such as a router, server, data storage system, and power supply. User systems101-103may each reside in a single device or may be distributed across multiple devices. User systems101-103may be a telephone, computer, tablet, conference room system, e-book, mobile Internet appliance, network interface card, media player, game console, application server, proxy server, or some other communication apparatus—including combinations thereof.

Communication links111-121use metal, glass, air, space, or some other material as the transport media. Communication links111-121could use various communication protocols, such as Time Division Multiplex (TDM), Internet Protocol (IP), Ethernet, communication signaling, Code Division Multiple Access (CDMA), Evolution Data Only (EVDO), Worldwide Interoperability for Microwave Access (WIMAX), Global System for Mobile Communication (GSM), Long Term Evolution (LTE), Wireless Fidelity (WIFI), High Speed Packet Access (HSPA), or some other communication format—including combinations thereof. Communication links111-121could be direct links or may include intermediate networks, systems, or devices.

Communication network406comprises network elements that provide communications services to connected systems and devices. Communication network406may comprise switches, wireless access nodes, Internet routers, network gateways, application servers, computer systems, communication links, or some other type of communication equipment—including combinations thereof. Communication network406may be a single network, such as a local area network, a wide area network, a public switched telephone network (PSTN), or the Internet, or may be a combination of multiple networks.

In this example, user system401and user system402comprise communication systems that exchange packet based media for communication sessions. User system401and user system402may comprise dedicated communication devices, such as IP telephones, may comprise computing devices that execute application software to perform packet communication functionality, or may comprise some other form of communication system—including combinations thereof. Mobile phone421, forwarded device422, covered device423, and voicemail system424are collectively associated systems420that are associated with a user of user system402. Each of associated systems420may communicate using packets to transfer media like user system401and user system402or may use other communication modes. For instance, mobile phone421may communicate over a traditional cellular voice channel or covered device423may be a circuit switched telephone that communicates over a PSTN. In some cases, it may be preferable for an associated system to use a different communication mode than user system402to increase the likelihood that communication control system403can connect with one of associated systems420.

FIG. 5illustrates an operational scenario500of operating communication environment400to recover from media degradation during a communication session. In scenario500, media is being exchanged in packets between user system401and user system402. This media may or may not pass through communication control system403. Likewise, the media may or may not pass through media gateway404or media gateway405. The media may include audio (e.g. voice), video, graphical, or any other type of media that can be exchanged over a communication network.

User system401detects inactivity of the media being received by user system user system401from user system402. In response to detecting the inactivity, user system401transfers a message to communication control system403indicating that user system401has detected the inactivity. Upon receiving the message, communication control system403transfers a message to user system401indicating that communication control system403is attempting to reconnect the communication session with the user(s) of user system402via other devices associated with user system402. User system401may then present its user(s) with an indication that communication control system403is attempting to reconnect with the user of user system402.

In this example, communication control system403attempts to reconnect the communication session by connecting with one of associated systems420. Associated systems420may be defined to communication control system403by the user of user system402or by some other user, such as an administrator in charge of communication control system403. Each of associated systems420may be defined based on contact information, such as phone number, network address, or otherwise. The priority of each of associated systems420may also be defined by a user or communication control system403may automatically determine the priority for each of associated systems420(e.g. communication control system403may set a priority based on device type).

The priority in this case indicates that mobile phone421should be tried first, followed by forwarded device422, and covered device423. Last in priority is voicemail system424, which will continue the communication session by allowing the user of user system401to leave a voicemail for the user of user system402. Communication control system403will stop attempting to connect with one of associated systems420and move onto the next priority system when either no response is received to communication control system403's attempt to connect to the associated system (e.g. no one answers) or the user responding on the associated system indicates that the user of user system402is not available through that associated system. In an example of the latter situation, communication control system403may query the responding user either audibly or visually about whether the user of user system402is available and the responding user can indicate their response either vocally (e.g. via voice recognition) or using input on the associated system itself (e.g. pressing a button on the device).

Upon determining that the user of user system402is available at one of the associated systems, communication control system403connects the associated system with user system401to continue the communication session. For example, if the user of user system402is not available at mobile device421but then is available at forwarded device422, then communication control system403connects user system401to forwarded device422. If forwarded system422was not available, then communication control system403would have tried covered device423and then voicemail system424. In some cases, if voicemail system424is down or otherwise unavailable, then communication control system403may transfer a message to user system401notifying user system401that communication control system403was unable to connect with one of associated systems420.

FIG. 6illustrates operational scenario600of operating communication environment400to recover from media degradation during a communication session. In scenario600, media is being exchanged for a communication session between user system401and user system402. During the exchange of media, user system401detects that the media is degraded. The detection may be based on input from a user of user system401or automatically based on a threshold(s) preset in user system401, which may be updated by communication control system403.

In response to receiving the message from user system401, communication control system403performs diagnostics on media gateway404, which is currently handling the media for the communication session, to determine whether there are any problems with media gateway404. If communication control system403determines that media gateway404is not having any problems, then communication control system403may allow the media to continue passing though media gateway404. However, if the diagnostics determine that media gateway404is having problems and is unable to rectify the problems satisfactorily, then communication control system403reconfigures the communication session so that media gateway405handles the media between user system401and user system402. The media is therefore no longer affected by any of the problems caused by media gateway404.

FIG. 7illustrates communication control system700. Communication control system700is an example of communication control systems104and403, although systems104and403may use alternative configurations. Communication control system700comprises communication interface701, user interface702, and processing system703. Processing system703is linked to communication interface701and user interface702. Processing system703includes processing circuitry705and memory device706that stores operating software707.

Communication interface701comprises components that communicate over communication links, such as network cards, ports, RF transceivers, processing circuitry and software, or some other communication devices. Communication interface701may be configured to communicate over metallic, wireless, or optical links. Communication interface701may be configured to use TDM, IP, Ethernet, optical networking, wireless protocols, communication signaling, or some other communication format—including combinations thereof.

User interface702comprises components that interact with a user. User interface702may include a keyboard, display screen, mouse, touch pad, or some other user input/output apparatus. User interface702may be omitted in some examples.

Processing circuitry705comprises microprocessor and other circuitry that retrieves and executes operating software707from memory device706. Memory device706comprises a non-transitory storage medium, such as a disk drive, flash drive, data storage circuitry, or some other memory apparatus. Operating software707comprises computer programs, firmware, or some other form of machine-readable processing instructions. Operating software707includes degradation detection module708and media recovery module709. Operating software707may further include an operating system, utilities, drivers, network interfaces, applications, or some other type of software. When executed by circuitry705, operating software707directs processing system703to operate communication control system700as described herein.

In particular, criteria module708directs processing system703to during a communication session passing through a first media gateway between a first user system operated by a first user and a second user system operated by a second user, receive a first indication from the first user system indicating a first degraded condition of media received by the first user system from the second user system. Responsive to receiving the indication, media recovery module709directs processing system703to reconfigure the communication session to pass through a second media gateway when the degraded condition comprises the media having a lower than a threshold quality when received by the first user system from the second user system. When the degraded condition comprises inactivity of the media being received by the first user system from the second user system, media recovery module709directs processing system703to attempt to establish a connection with a third user system associated with the second user and, upon establishing the connection with the third user system, connect the third user system to the first user system to continue the communication session.