Optimizing social information signaling

A method and apparatus for optimizing social information signaling in a communication network are disclosed. For example, the method receives an indication that social information associated with a first endpoint device has changed, determines whether the social information is to be forwarded to a second endpoint device in a list of the first endpoint device based upon a behavior parameter, wherein the behavior parameter comprises a strength of relationship, and forwards the social information to the second endpoint device if the behavior parameter is above a pre-defined level.

The present disclosure relates generally to reducing signaling in a communication network and, more particularly, to a method and apparatus for optimizing social information signaling.

BACKGROUND

The way people communicate over a communication network is changing. For example, over the top (OTT) service providers are providing free services that utilize a communication network service provider's bandwidth. Many of the services offered by the OTT service providers require a large amount of signaling back and forth between two endpoints and the communication network service provider's network. This additional signaling can overload the communication network service provider's network and, sometimes, even completely shut down the communication network service provider's network. This can create a loss of revenue to the communication network service provider and a dissatisfying customer experience for the communication network service provider's customers.

SUMMARY

In one embodiment, the present disclosure provides a method for optimizing social information signaling in a communication network. For example, the method receives an indication that social information associated with a first endpoint device has changed, determines whether the social information is to be forwarded to a second endpoint device in a list of the first endpoint device based upon a behavior parameter, wherein the behavior parameter comprises a strength of relationship, and forwards the social information to the second endpoint device if the behavior parameter is above a pre-defined level.

The present disclosure provides a second embodiment of a method for optimizing social information signaling in a communication network. For example, the method receives a social information query of a second endpoint device from a first endpoint device, queries a server having social information associated with second endpoint device to determine if the social information of the second endpoint device is available, and forwards the social information to the first endpoint device in response to the social information query if the social information of the second endpoint device is available in the network address book associated with the second endpoint device.

The present disclosure provides a third embodiment of a method for optimizing social information signaling in a communication network. For example, the method synchs social information associated with a first endpoint stored on the network address book with a presence server, receives at the network address book an indication that social information associated with a first endpoint device has changed, and forwards, via the network address book, the indication that the social information associated with the first endpoint device has changed to a second endpoint device of a user that is associated with the first endpoint device.

DETAILED DESCRIPTION

The present disclosure broadly discloses a method, non-transitory (i.e., tangible or physical) computer readable medium and apparatus for optimizing social information signaling in a communications network. As noted above, many of the services offered by the OTT service providers require a large amount of signaling back and forth between two endpoints and the communication network service provider's network.

For example, social networking services may leverage status information of users. In addition the social network services may be used by a variety of endpoint devices, including mobile endpoint devices. The status information has become the new “dial tone” for endpoint devices. However, maintaining the status information of user's endpoint devices requires a large amount of signaling and “chatter” across the communication network service provider's network.

This additional signaling can overload the communication network service provider's network and, sometimes, even completely shut down the communication network service provider's network. This can create a loss of revenue to the communication network service provider and a dissatisfying customer experience for the communication network service provider's customers.

One embodiment of the present disclosure provides methods for optimizing social information signaling in a communication network. For example, minimizing the amount of signaling messages that are sent across the communication network to obtain social information would increase the available bandwidth in the communication network, reduce costs and generate more revenue for the communication network service provider.

FIG. 1is a block diagram depicting one example of a communication network100. The communication network100may be any type of communication network, such as for example, a traditional circuit switched network (e.g., a public switched telephone network (PSTN)) or a packet network such as an Internet Protocol (IP) network (e.g., an IP Multimedia Subsystem (IMS) network, an asynchronous transfer mode (ATM) network, a wireless network, a cellular network (e.g., 2G, 3G, and the like), a long term evolution (LTE) network, and the like) related to the current disclosure. It should be noted that an IP network is broadly defined as a network that uses Internet Protocol to exchange data packets. Additional exemplary IP networks include Voice over IP (VoIP) networks, Service over IP (SoIP) networks, and the like.

In one embodiment, the network100may comprise a core network102. The core network102may be in communication with one or more access networks122and124. The access networks122and124may include a wireless access network (e.g., a WiFi network and the like), a cellular access network, a PSTN access network, a cable access network, a wired access network and the like. In one embodiment, the access networks122and124may all be different types of access networks, may all be the same type of access network, or some access networks may be the same type of access network and other may be different types of access networks. The core network102and the access networks122and124may be operated by different service providers, the same service provider or a combination thereof.

In one embodiment, the core network102may include an application server (AS)104, a database (DB)106, a presence server (PS)108, one or more session border controllers (SBC)110and112and one or more network address books (NABs)114,116,118and120. Although only a single AS104, a single DB106and a single PS108are illustrated, it should be noted that any number of application servers104, databases106or presence servers108may be deployed. Although the AS104, the DB106and the PS108are illustrated as different devices, it should be noted that the functions of the AS104, the DB106and the PS108may be combined into a single device or server. In addition, although two SBCs110and112are illustrated and four NABs114,116,118and120are illustrated any number of SBCs and NABs may also be deployed.

In one embodiment, the AS104may comprise a general purpose computer as illustrated inFIG. 5and discussed below. In one embodiment, the AS104may perform various functions in the core network102such as for example, data compression, smart signaling aggregation, and the like.

In one embodiment, the DB106may store information used for user behavior based signaling optimization discussed in further detail below. The information may include, for example, various parameters that may be user defined or automatically determined by intelligence in the core network102(e.g., the AS104). A few examples of the parameters may include data that is determined to be critical or non-critical, an importance level of a relationship with other users, a frequency of use of other devices, and the like. In another embodiment, the parameters may be dynamic. For example, the strength of a relationship with other users may be initially set based upon monitoring a level of communication with a particular endpoint device and may change as the level of communication increases or decreases over a pre-defined time period.

In one embodiment, the PS108may store various information and be responsible for transmitting various social information to one or more endpoints. For example, the PS108may be used to store a friends list (broadly referred to as a list) for a user, provide various social information services (e.g., status updates), store device capabilities of each endpoint device, and the like. In one embodiment, social information may include, for example, a status, a location, an avatar, a profile picture, a mood, and the like.

In one embodiment, one or more subscribers may be subscribed to an NAB. For example, the user associated with a user endpoint (UE)126may be associated with the NAB114, the user associated with a UE132may be associated with the NAB116, the user associated with a UE134may be associated with the NAB118and the user associated with a UE136may be associated with the NAB120. It should be noted that all subscribers do not necessarily need to be subscribed to an NAB. The NABs114,116,118and120use a specialized signaling protocol known as synchronization markup language (SynchML). SynchML does not support signaling of social information between devices of different users, but may still be leveraged in the communication network100to optimize social information signaling and be interworked with the PS108and other device client peer to peer (P2P) approaches.

In one embodiment, the access network122may be in communication with one or more UEs126,128and130. In one embodiment, one or more UEs126,128and130may each be associated with a same user and the NAB114. The one or more UEs126,128and130may be any type of UE including for example, a mobile telephone, a smart telephone, a tablet computer, a netbook computer, a laptop computer, a desktop computer, and the like.

In one embodiment, the access network124may be in communication with one or more UEs132,134and136. In one embodiment, the UEs132,134and136may each be different users. In one embodiment, the UEs132,134and136may be on a friends list associated with the UE126. Each one of the UEs132,134and136may have a different strength of relationship with the UE126.

It should be noted that the communication network100has been simplified. For example, the network100may include other network elements (not shown) such as border elements, routers, switches, policy servers, security devices, gateways, a content distribution network (CDN) and the like.

In one embodiment, the example communication network100may be used to exchange social information between UEs126,128,130,132,134and136. One example of social information signaling may be when a status of the UE126changes. As noted above, the status of the UE126is the new “dial tone”. The status may indicate, for example, whether the user of the UE126is online, offline, active, inactive, busy, available, and the like.

Currently, social information, such as a status update, may be sent in a push or pull model. In the push model, when the status of the UE126changes, a session initiation protocol (SIP) publish message may be sent across the access network122to the PS108in the core network102. The PS108may then send a SIP notify message to each friend on the friends list of the UE126. For example, if the UEs132,134and136were each on the friends list of the UE126, three SIP notify messages would be sent from the PS108across the access network124to the UEs132,134and136.

In the pull model, each one of the UEs132,134and136may send a SIP options message across the access network124through the core network102across the access network122to the UE126requesting a status of the UE126. In response, the UE126would send a response using the SIP options message back across the access network122, through the core network102and across the access network124to the UEs132,134and136.

Notably, the push and pull models are typically performed periodically and can lead to a large number of signaling messages being sent across the access networks122and124and the core network102. As noted above, this can consume much of the resources and bandwidth available in the communication network100leading to possible network crashes and poor customer experiences.

In one embodiment, the social information signaling can be optimized to reduce the overall number of signaling messages sent across the communication network100by using a behavior model. One example of a method for optimizing social information signaling in a communication network is described inFIG. 2.FIG. 2illustrates an example flowchart of one embodiment of a method200for optimizing social information signaling in a communication network. In one embodiment, the method200may be performed by the PS108in the core network102. In one embodiment, the steps, functions, or operations of method200may be performed by a computing device500as described in connection withFIG. 5.

The method200begins at step202. At step204, the method200receives an indication that social information associated with a first endpoint has changed. In one embodiment, the social information may be a status of an endpoint. For example, the status of UE126may change from offline to online. As a result, the PS108may receive a SIP publish message from the UE126indicating that the status of UE126has changed from offline to online.

At step206, the method200determines whether the social information should be forwarded to a second endpoint in a friends list of the first endpoint based upon a behavior parameter, wherein the behavior parameter comprises a strength of relationship. In one embodiment, the method200may determine whether the social information should be forwarded to each one of a plurality of endpoints (e.g., all endpoints of friends on the user's friends list).

As noted above, previous push and pull methods for social information signaling would tax a communication network by sending a large number of signaling messages across the access networks and core network. However, by using the behavior parameter, the number of messages may be reduced significantly.

In one embodiment, the behavior parameter may comprise the strength of relationship. In one embodiment, the strength of relationship may be pre-defined or automatically determined. For example, the UE126may pre-define the relationships with the users of the UEs132,134and136. The user of UE132may be a family member, the user of UE134may be a friend and the user of UE136may be a co-worker. In one embodiment, the user of the UE126may pre-define a family member as being the strongest relationship, a friend as being a medium strength of relationship and a co-worker as being a lowest strength of relationship.

In another embodiment, the strength of relationship may be pre-defined via a numerical value from a scale of 1 to 10, for example, with 10 being the strongest relationship and 1 being the weakest. For example, the UE126may assign a value of 10 to the relationship with the user of UE132, a value of 5 to the relationship with the user of UE134and a value of 1 to the relationship with the user of UE136.

In another embodiment, the strength of relationship may be automatically determined. For example, communications between the UE126and the UEs132,134and136may be monitored for a pre-defined time period to track how many communications occur between two UEs, when the communications occur between two UEs, how the communications occur between two UEs, when the communications occur between two UEs, a geographic proximity between two UEs, and the like.

In some embodiments, multiple parameters may be used to automatically determine the strength of relationship to eliminate false positives. For example, if only how many communications occurred between two UEs is used, and if a user calls a customer service representative numerous times because they are unreachable, the customer service representative may be mistakenly assigned a high value for the strength of relationship. In one embodiment, such false positives can be identified by the user via a feedback mechanism and are eliminated accordingly.

Based upon the monitoring, a strength of relationship between the UE126and each of the UEs132,134and136may be calculated. In one embodiment, a numerical score reflecting the strength of relationship may be assigned to each of the UEs132,134and136based upon the monitored communications. For example, a numerical scale from 1 to 10 may be used with 10 being the highest value or strongest relationship. In another example, a scoring system may be applied using a weighted score for each of the parameters that are monitored as described above. For example, a score for how the communications occurred between two UEs may be weighted higher than the raw number of how many times communications occurred between two UEs and the values may be added together to obtain an overall score.

In one embodiment, the strength of relationship may be a dynamic parameter. In other words, after the initial strength of relationship is set, whether it is pre-defined or automatically determined, the strength of relationship may change. For example, the communications between the UE126and the UEs132,134and136may be continuously monitored or tracked. For example, if the frequency of communications between the UE126and the UE132increases over time, the strength of relationship between the UE126and the UE132may be increased. In another example, if the location of the UE134is detected to be within the same town as the UE126, the strength of relationship between the UE126and the UE134may be increased. In another example, if the frequency of communications between the UE126and the UE136decreases over time, the strength of relationship between the UE126and the UE136may be decreased.

In one embodiment, the behavior parameter may include other parameters such as, for example, a device usage. For example, the device usage may describe whether a friend's UE is active or inactive or how often the friend's UE is used.

In one embodiment, a criticality of the social information may also be considered when determining whether the social information should be forwarded. In one embodiment, the user may pre-define the social information as being critical (e.g., a location change greater than “x” number of miles) or not critical (e.g., a mood change). Since determining what is critical and noncritical is very subjective, one user may define one behavior parameter as critical whereas another user will define the very same behavior parameter as noncritical.

In another embodiment, the criticality of the social information may be automatically determined based upon a type of social information, key words, whether the social information has historically been considered to be critical or not critical, and the like.

In one embodiment, based upon the behavior parameter the method200may determine whether the social information should be forwarded. In other words, unlike previous methods that blindly transmit the social information to all of the endpoint devices associated with people listed in a user's friends list, the present disclosure may only forward the social information based upon the behavior parameter. In one embodiment, the additional parameters discussed above may also be considered such as the device usage and/or the criticality of the social information.

At step208, the method200forwards the social information to the second endpoint if the behavior parameter is above a pre-defined level. As discussed above, in one embodiment, the behavior parameter may be a strength of relationship. The pre-defined level may be a pre-defined level of relationship, for example, only a highest level of relationship (e.g., a family member) or some predefined scores. As a result, if the UEs on the friends list of the UE126are not at the highest level of relationship, the social information associated with the UE126would not be forwarded to the UEs on the friends list of the UE126that are not at the highest level of relationship.

Other behavior parameters and the criticality of information may also be associated with a pre-defined level. For example, the behavior parameter of device usage may have a pre-defined level of “on”. In other words, the endpoint must be turned “on”. Otherwise, the PS108will not forward the social information to that UE even if the UE meets the pre-defined level of relationship. Another example of a pre-defined level for device usage may be a pre-defined number of communications with the UE126within a pre-defined time period. For example, the social information should only be forwarded to those UEs which have communicated with the UE126at least once in the past 24 hours, past week, and so on. In one embodiment, the pre-defined level for the criticality of information may be set to only forward social information that is deemed critical.

In one embodiment, one or more of these parameters and associated pre-defined levels may be used to determine if the social information should be forwarded. As a result, a significant amount of the social information signaling may be reduced in the communication network100. For example, the PS108may only forward the status update from the UE126if a UE on the friends list of UE126has a highest level of relationship (e.g., a family member) with the UE126. Thus, using the above example, the PS108would only forward the social information to the UE132. Consequently, in the above example, only one signaling message would move across the access network124as opposed to three signaling messages in the push model and six signaling messages in the pull model.

In one embodiment, the behavior model may also be applied to signaling aggregation. For example, based upon the behavior model of the UEs the signaling aggregation may be performed via dynamic windowing as opposed to static windowing. To illustrate, if the behavior model suggests that UEs132,134and136tend to communicate with the UE126most during the hours of 5:00 PM to 6:00 PM, the signaling messages may be aggregated in a window of time between 5:00 PM to 6:00 PM to wait for the social information signaling expected from the UEs132,134and136. Subsequently, the aggregation may be performed during the normal aggregation time window, e.g., 30 minutes.

At a later time, the UE132may send social information that is deemed to be critical. As a result, the social information may be immediately sent instead of waiting for the aggregation to be performed during the normal aggregation time window.

In another embodiment, if the behavior model determines that certain social information is not critical, the social information may be held to be aggregated with additional messages for a pre-defined period of time or until a critical social information is received. The method200ends at step210.

FIG. 3illustrates an example flowchart of another embodiment of a method300for optimizing social information signaling in a communication network. In one embodiment, the steps, functions, or operations of the method300may be performed by the SBC110, the SBC112in the core network102or a general purpose computer or computing device described inFIG. 5and discussed below.

The method300begins at step302. At step304, the method300receives a social information query of a second endpoint from a first endpoint. For example, the UE126may send a SIP options message to request a status update from each one of the friends UEs132,134and136. The request may be intercepted by the SBC110.

At step306, the method300queries a server having social information associated with the second endpoint to determine if the social information of the second endpoint is available. In one embodiment, the server may be either a presence server or a network address book depending how the second endpoint that is being queried communicates its social information in the communication network. For example, if the second endpoint is associated with a NAB, then the SBC110may query the NAB associated with the second endpoint. If no NAB exists, the SBC110may query a presence server.

At step308, the method300forwards the social information to the first endpoint in response to the social information query if the social information of the second endpoint is available in the server. For example, the UEs132and134may be associated with the NAB116and the NAB118, respectively. The UEs132and134may send their status information to the NAB116and the NAB118, respectively, via SynchML messages. The SBC110may query the NAB116and the NAB118to obtain the status of the UE132and the UE134. Subsequently, the SBC110may forward the status information back to the UE126that sent the query.

Similarly, the UE136may not be associated with a NAB. The SBC110may query the PS108to obtain the status information of the UE136. The status information of the UE136may then be forwarded back to the UE126via the SBC110.

As a result, social information signaling messages are reduced. Previously, the social information query sent by the UE126would be sent across the access network124to each of the UEs132,134and136. As a result, double the social information signaling messages would be required. However, in the present embodiment, the UEs132,134and136need only send their social information to the respective NAB116or118or the PS108. Subsequently, the social information may then be obtained by the SBC110and forwarded back to the UE126without having to forward the original social information query from the UE126back across the access network124.

It should be noted that if the PS108or the NABs116and118do not contain the social information, then the social information query would be processed as traditionally performed via a peer-to-peer signaling method. In other words, the social information query would be sent to the UEs132,134and136and the UEs132,134and136would send a response accordingly. The method300ends at step310.

FIG. 4illustrates an example flowchart of another embodiment of a method400for optimizing social information signaling in a communication network. In one embodiment, the steps, functions, or operations of the method400may be performed by an NAB, e.g., the NAB114, in the core network102or a general purpose computer or computing device described inFIG. 5and discussed below.

The method400begins at step402. At step404, the method400synchs a network address book associated with a first endpoint with a presence server. For example, the NAB114may synch with the PS108to ensure the NAB114has the latest social information associated with the UE126from the PS108. In other words, after the synching is performed, the social information associated with the UE126would be identical in the NAB114and the PS108.

At step406, the method400receives at the network address book an indication that an aspect of the social information associated with the first endpoint has changed. For example, the status of the UE126may change from unavailable to available. As a result, the UE126may send a SynchML message to the NAB114.

At step408, the method400forwards, via the network address book, the indication that the social information associated with the first endpoint has changed to a second endpoint of a user that is associated with the first endpoint. In other words, as noted above, the UEs126,128and130may all belong to the same user. The UE126may be the user's smart phone, the UE128may be the user's tablet computer and the UE130may be the user's desktop computer. If the user changes his or her status to available on the UE126, then the same status should appear on all of the UEs of the user. Thus, the NAB114may forward the social information that has changed (e.g., the status change from unavailable to available) via a SynchML message to the user's other UEs128and130.

Due to the fact that the NAB114and the PS108were synched in step404, the PS108would not send duplicate SIP notify messages to the UEs128and130as previously done. In other words, previous methods would require both the NAB114and the PS108to send the same social information to the user's UEs128and130. However, by synching the NAB114and the PS108, the number of social information signaling messages that is transmitted in the communication network100may be cut in half.

The method400may perform optional step410. In one embodiment, the method400may forward the indication that the social information associated with the first endpoint has changed to a third endpoint associated with a friend of the user via the presence server and a second network address book associated with the third endpoint using a synchronization markup language. For example, if the other UEs on the friends list of the UE126also are associated with a NAB, the NAB114may forward the indication that the status of the UE126has changed to the PS108, which may then forward it to the appropriate NAB. For example, if the indication that the status of the UE126has changed is going to the UE132, the PS108may forward the indication to the NAB116, which may then forward the indication via a SynchML message to the UE132.

The NAB116would be synchronized with the PS108similar to the synchronization between the NAB114and the PS108, as described above in step404. As a result, the PS108would not send additional SIP notify messages to the UE132, thereby, again reducing the number of social information signaling messages that are sent across the communication network100.

Notably, if the UE132is not associated with an NAB, then the indication would be forwarded normally via a SIP notify message from the PS108and step410would not need to be performed. The method400ends at step412.

It should be noted that although not explicitly specified, one or more steps or operations of the methods200,300and400described above may include a storing, displaying and/or outputting step as required for a particular application. In other words, any data, records, fields, and/or intermediate results discussed in the methods can be stored, displayed, and/or outputted to another device as required for a particular application. Furthermore, steps, operations or blocks inFIGS. 2-4that recite a determining operation, or involve a decision, do not necessarily require that both branches of the determining operation be practiced. In other words, one of the branches of the determining operation can be deemed as an optional step. Furthermore, operations, steps or blocks of the above described methods can be combined, separated, and/or performed in a different order from that described above, without departing from the example embodiments of the present disclosure.

FIG. 5depicts a high-level block diagram of a general-purpose computer suitable for use in performing the functions described herein. As depicted inFIG. 5, the system500comprises a processor or hardware processor element502(e.g., a microprocessor, a central processing unit (CPU) and the like), a memory504, e.g., random access memory (RAM) and/or read only memory (ROM), a module505for optimizing social information signaling in a communication network, and various input/output devices506, e.g., a camera, a video camera, storage devices, including but not limited to, a tape drive, a floppy drive, a hard disk drive or a compact disk drive, a receiver, a transmitter, a speaker, a display, a speech synthesizer, an output port, and a user input device (such as a keyboard, a keypad, a mouse, and the like).

It should be noted that the present disclosure can be implemented in software and/or in a combination of software and hardware, e.g., using application specific integrated circuits (ASIC), a general purpose computer or any other hardware equivalents, e.g., computer readable instructions pertaining to the method(s) discussed above can be used to configure a hardware processor to perform the steps, functions and/or operations of the above disclosed methods. In one embodiment, the present module or process505for optimizing social information signaling in a communication network can be implemented as computer-executable instructions (e.g., a software program comprising computer-executable instructions) and loaded into memory504and executed by hardware processor502to implement the functions as discussed above. Alternatively, the hardware processor502having executed the computer-executable instructions may cause one or more elements of system500to implement one or more functions as discussed above.

As such, the present method505for optimizing social information signaling in a communication network as discussed above in methods200,300and400(including associated data structures) of the present disclosure can be stored on a non-transitory (e.g., tangible or physical) computer readable storage medium, e.g., RAM memory, magnetic or optical drive or diskette and the like.