Managing subscriptions for an out-of-network mobile device

Methods are disclosed for managing the subscription of a mobile device to various applications that are accessible by the mobile device. A registration message is received at a home network indicating that the mobile device is currently registered with a foreign network. Applications that are accessible to the mobile device are identified. A subscribe message is sent to an application associated with the foreign network, such that the home network and the foreign network have an established relationship that allows a subscription manager to manage the subscription of the application on behalf of the mobile device.

SUMMARY

In brief and at a high level, this disclosure describes, among other things, methods, systems, and computer-readable media for managing subscriptions of a mobile device to various applications that are accessible to the mobile device. A subscription manager, for example, may send subscribe messages to the applications on behalf of the mobile device when the subscription manager has been notified that the mobile device has registered with the network. Likewise, the subscription manager may send unsubscribe messages to the applications when the subscription manager has been notified that the mobile device has deregistered from the network. The subscription manager may also provide the services outlined above for mobile devices and applications that are not associated with the home network, or the network associated with the subscription manager. One or more of the mobile device or an application may be associated with a foreign network, and therefore information, such as registration notifications and subscribe messages, is transferred to and from the home network across a security boundary, which may include firewalls, session border controllers, or the like.

DETAILED DESCRIPTION

The subject matter of the present invention is described with specificity herein to meet statutory requirements. However, the description itself is not intended to define the invention, which is what the claims do. Rather, the claimed subject matter might be embodied in other ways to include different steps or combinations of steps similar to the ones described in this document, in conjunction with other present or future technologies. Moreover, although the term “step” or other generic term might be used herein to connote different components or methods employed, the terms should not be interpreted as implying any particular order among or between various steps herein disclosed unless and except when the order of individual steps is explicitly described.

Throughout this disclosure, several acronyms and shorthand notations are used to aid the understanding of certain concepts pertaining to the associated system and services. These acronyms and shorthand notations are solely intended for the purpose of providing an easy methodology of communicating the ideas expressed herein and are in no way meant to limit the scope of the present invention. The following is a list of these acronyms:AC Authentication CenterBGCF Breakout Gateway Control FunctionCDMA Code Division Multiple AccessCSCF Call Session Control FunctionGPRS General Packet Radio ServiceGPS Global Positioning SystemGRE Generic Routing EncapsulationGSM Global System for Mobile communications (Groupe Special Mobile)HLR Home Location RegisterHSS Home Subscriber ServerIMEI International Mobile Equipment IdentityIMS Internet Protocol Multimedia SubsystemIMSI International Mobile Subscriber IdentityIP Internet ProtocolLED Light Emitting DiodeMRF Media Resource FunctionMSISDN Mobile Subscriber ISDN NumberNNI Network-to-Network InterfacePDA Personal Data AssistantPSTN Public Switched Telephone NetworkSBC Session Border ControllerSIP Session Initiation ProtocolTDMA Time Division Multiple AccessTMSI Temporary Mobile Subscriber IdentityUMTS Universal Mobile Telecommunications SystemVPN Virtual Private Network

Further, various technical terms are used throughout this description. An illustrative resource that fleshes out various aspects of these terms can be found in Newton's Telecom Dictionary by H. Newton, 24th Edition (2008).

Turning now toFIG. 1, a block diagram of an illustrative mobile computing device (“mobile device”) is provided and referenced generally by the numeral100. Although some components are shown in the singular, they may be plural. For example, mobile device100might include multiple processors or multiple radios, etc. A mobile device may be one of many devices, including, but not limited to, a mobile phone, a laptop, a PDA, a handheld device, etc. As illustratively shown, mobile device100includes a bus110that directly or indirectly couples various components together including memory112, a processor114, a presentation component116, a radio117, input/output ports118, input/output components120, and a power supply122.

We previously have described various memory components that memory112might take the form of. Thus, we will not elaborate more here, only to say that memory component112can include any type of medium that is capable of storing information (e.g., a datastore112A). Processor114might actually be multiple processors that receive instructions and process them accordingly. Presentation component116includes the likes of a display, a speaker, as well as other components that can present information (such as a lamp (LED), or even lighted keyboards).

Radio117is a radio that facilitates communication with a wireless telecommunications network. Illustrative wireless telecommunications technologies include CDMA, GPRS, TDMA, GSM, and the like. In some embodiments, radio117might also facilitate other types of wireless communications including Wi-Fi communications and GIS communications.

Input/output port118might take on a variety of forms. Illustrative input/output ports include a USB jack, stereo jack, infrared port, proprietary communications ports, and the like. Input/output components120include items such as keyboards, microphones, touch screens, and any other item usable to directly or indirectly input data into mobile device100. Power supply122includes items such as batteries, fuel cells, or any other component that can act as a power source to power mobile device100.

Turning now toFIG. 2, an illustrative operating environment is provided and referenced generally by the numeral200, which depicts an illustrative networking environment that enables a subscription manager to send subscribe and unsubscribe messages to various applications on behalf of a mobile node (e.g., a mobile device). Initially,FIG. 2illustrates a mobile device210. Mobile device210is the type of device described in connection withFIG. 1, in one embodiment, and may include a client application that helps carry out aspects of the technology described herein. Whenever we speak of an application, software, or the like, we are really referring to one or more computer-readable media that is embodied with a set of computer-executable instructions that facilitate various actions to be performed. We will not always include this lengthy terminology because doing so would make this document more difficult to read.

A call-control component220generally manages the registrations of mobile devices with the communications network (e.g., IMS network), and knows how to route calls placed by a mobile device. The mobile device sends a registration request to the call-control component220, which in turn downloads the user-service profile associated with the mobile device from a subscriber server230. The subscriber server230is generally a database where subscribers are provisioned and stores the user-service profiles that indicate which services or applications the mobile device can access. The subscriber server230also handles calls, as it contains subscription-related information in the form of the user-service profiles, and also performs authentication and authorization of the mobile device to the network. Additionally, the subscriber server230contains other information associated with the mobile device, including its physical location and IP information, such as the IP address corresponding to the mobile device.

A subscription manager240manages the subscription of the mobile device to various applications to which the mobile device210has access. In one embodiment, the applications are located within a single service provider's network, but in another embodiment, one or more applications are located in a different service provider's network. While traditionally the mobile device sends subscribe and unsubscribe messages to the applications at a time interval dependent upon an expiration timer contained in each message, here, the subscription manager240is responsible for sending these messages to the applications on behalf of the mobile device. This drastically cuts down on the number of messages and information passing through the network, thus reducing traffic from the carrier interfaces. The subscription manager240, in one embodiment, is aware of the applications to which the mobile device has access. In one instance, this information is communicated to the subscription manager240by way of a provisioning feed sent by an upstream source.

A provisioning feed is sent to the subscription manager240and the applications including various types of information. For example, a provisioning feed sent to the subscription manager240may include an indication of those applications to which the mobile device210can access, or in another embodiment, it may include an indication of those applications the mobile device is attempting to access so that the subscription manager240knows the applications to which to send a subscribe message once the device has registered with the network. The subscription manager240manages the subscription of the mobile device210to the applications, including a first application250, a second application260, and a third application270. While three applications are shown inFIG. 2, it is contemplated that any number of applications may be accessible to a mobile device. Three applications are shown as only one exemplary embodiment of the invention.

The subscription manager240may communicate a subscription (e.g., a one-time subscription) to the subscriber server230to subscribe to a registration event corresponding to a mobile device or multiple mobile devices. The registration event indicates to the subscription manager240whether the mobile device210has become registered with or unregistered from the communications network. In one embodiment, the mobile device registers with the network per standard RFC3265. In one instance, once the subscription manager240subscribes for the mobile device's210registration event, such as communicating a message to the subscriber server230indicating that it wants to know when the mobile device210is registered and when it becomes unregistered to the communications network, the subscriber server230will respond to the subscription manager240by communicating a message to the subscription manager240with either a register or a deregister event. These events indicate the mobile device's210current registry status. Once the subscription manager240knows that the mobile device210is registered, it may proceed to send subscribe messages to one or more of the applications that can be accessed by the mobile device. Some of these applications require a paid subscription, such as if the user of the mobile device must pay a monthly fee to gain access to the application. Similarly, the subscriber server230may send a deregister notification to the subscription manager240when the mobile device has deregistered from the network. The subscription manager240may then send out unsubscribe messages to the one or more applications to which the mobile device is currently subscribed, including a first application250, a second application260, and a third application270.

In one embodiment, the subscription manager240, once it has received notification that the mobile device210is registered with the network, accesses an internal database to determine a subscription status of the applications that are accessible to the mobile device. For instance, one or more applications may have a subscribed status, and one or more applications may have an unsubscribed status. In other instances, none of the applications may have a subscribed status, or none of the applications may have an unsubscribed status. Which applications the subscription manager240sends a subscribe or unsubscribe message to may be dependent upon the status of each application.

The subscriber server230may send updates to the subscription manager240after it sends the initial register event. For instance, if the IP address or location information (e.g., physical location) associated with the mobile device has changed since the register notification was sent, the subscriber server230may send an update to the subscription manager240so that the subscription manager240can update the applications. Some applications (e.g., location-based services) send notifications that are dependent upon the location of the mobile device, such as a current zip code in which the mobile device is located. This may include weather or global positioning system (GPS) applications. As such, the subscription manager240may need to be updated with this and other types of information. In one instance, an update message is sent, but in another embodiment, a deregister event or deregistration notification is sent to the subscription manager240, followed by a registration notification that includes the updated information.

Further, in one embodiment, the subscription manager240may not send a subscribe message to every application that is accessible by the mobile device once it receives notification that the mobile device is registered with the network. For instance, the subscription manager240may have the intelligence to determine which applications the mobile device needs to be subscribed to at that time. Some applications may be ranked as more important than others. For example, applications such as voicemail may always be subscribed to when the mobile device is registered, as the user of the mobile device will want to receive a notification indicating that a voicemail has been left (e.g., message waiting indicator (MWI)). Subscribing to a voicemail application, for instance, tells the voicemail application that the mobile device is ready to be notified when an event, such as a voicemail, occurs.

In one embodiment, the networking environment ofFIG. 2is an Internet protocol (IP) multimedia subsystem (IMS). IMS is an architectural framework for delivering IP multimedia services, and in one instance, uses the Session Initiation Protocol (SIP) to communicate information between components. Exemplary components of an IMS network may include a home subscriber server (HSS), a call session control function (CSCF), application servers, media servers (e.g., media resource function (MRF)), and breakout gateway control function (BGCF), Public Switched Telephone Network (PSTN) gateways. IMS networks generally aid in the access of multimedia and voice applications from wireless and wireline terminals. As such, in one embodiment, the call-control component220is a call session controller function (CSCF) that is used to process SIP signaling packets. There are various types of CSCFs, including a proxy CSCF, a serving CSCF, and an interrogating CSCF. The proxy CSCF is a SIP proxy that provides subscriber access to network-based services. The serving CSCF is the primary call controller for the operator network, and the interrogating CSCF is a SIP proxy that can be optionally used by a network operator to hide internal configurations.

Further, in an embodiment, the subscriber server230is a home subscriber server (HSS), which handles centralized provisioning, management, and authentication and authorization of the mobile device to the network. Prior to a SIP connection, the CSCF consults with the HSS, in that, as mentioned above, the CSCF may download a user-service profile associated with the mobile device. The HSS may include various components, such as a home location register (HLR) and an authentication center (AC). The HLR is a database that stores and manages subscriptions, and that stores permanent information about subscribers, such as the user-service profiles, location information, and activity status. In one embodiment, a “Cx” interface, used with the Diameter protocol, is used for communication between the CSCF and the HSS. As noted above, the subscriber server230and the subscription manager240communicate so that the subscription manager240is aware of when the mobile device is registered and when it is no longer registered with the network. The interface used to communicate this information may be a “Sh” interface, which is an interface used in conjunction with the Diameter protocol.

Turning now toFIG. 3, an illustrative flow diagram for managing subscribe and unsubscribe messages sent to various applications that a mobile device is authorized to use is depicted. The embodiment ofFIG. 3includes various components, which have each been described herein in relation toFIG. 2. These components include a mobile device310, a call-control component312, a subscriber server314, a subscription manager316, a first application318, and a second application320. Initially, the mobile device310communicates322a register message324to the call-control component312indicating that the mobile device310would like to register with the network. The register message may include information needed to register the mobile device onto the network. For exemplary purposes and not limitation, this information may include a user identification, such as an international mobile subscriber identify (IMSI), a temporary mobile subscriber identify (TMSI), an international mobile equipment identity (IMEI), a mobile subscriber ISDN number (MSISDN), or the like. IMSI is a unique phone identity, and TMSI is generated based on a geographical location of the mobile device meant to improve privacy. IMEI is a unique device identity and is phone specific, while MSISDN is a telephone number of a user.

At step326, the call-control component312may perform various functions, such as determining an identifier associated with the mobile device310, and based on this, determining a home domain of the mobile device310. The call-control component312then communicates328a request to download a user-service profile330from the subscriber server314. As mentioned, the subscriber server314is responsible for storing user-service profiles corresponding to the mobile devices. The subscriber server314then communicates332the user-service profile334back to the call-control component312such that the user-service profile is downloaded onto the call-control component312. As previously mentioned, a provisioning feed sends various information to the subscription manager316, including the applications to which the mobile device310has access. This is shown at step336. The subscription manager316then communicates338a subscribe message340to the subscriber server314indicating that the subscription manager316wants to know when a particular mobile device, such as mobile device310, is registered or unregistered with the network so that it knows when to send subscribe and unsubscribe messages to the applications.

It should be noted that various steps shown inFIG. 3are shown in a particular order.FIG. 3is illustrated simply as one embodiment of the invention. As such, the steps may be performed in a different order as shown inFIG. 3. For example, steps336-340may be performed prior to the mobile device being registered with the network, or may be performed later in the process shown inFIG. 3. The steps shown are not intended to limit the order in which the steps are performed in embodiments other than the embodiment ofFIG. 3.

At step342, the subscriber server314determines that the mobile device310has registered with the network. The subscriber server314then provides an indication as to the registration status of the mobile device310by communicating344a register event346to the subscription manager316, thus indicating that the mobile device310is registered with the network. The subscription manager316, in one embodiment, may access its local database to determine a subscription status of each application that is accessible to the mobile device310. Any applications that currently have an unsubscribed status may be sent a subscribe message. As shown, a subscribe message350is communicated348to a first application318, and a subscribe message354is also communicated352to a second application320. In one instance, the subscription manager316has the intelligence to determine the application to which a subscribe message is sent based on the importance of each application to the user of the mobile device310. The applications may be prioritized according to the user; or according to an algorithm used by the subscription manager316, which may determine which applications are subscribed to the mobile device310; or according to another factor.

At step356, the mobile device310takes some action that indicates that it is to be deregistered from the network. This action may occur at any time after it has registered with the network, such as when the phone is turned off, when a timer has expired, etc. The mobile device310then communicates358a deregister message360to the call-control component312, which forwards362the deregister message364to the subscriber server314. A deregister event368is communicated366to the subscription manager316so that it is aware that the mobile device is no longer registered with the network. As described herein, the subscription manager316subscribes to the register event for the mobile device310. As a result, the subscription manager316is notified each time that mobile device310registers or deregisters from the network. As a result of being notified that the mobile device310has deregistered from the network, the subscription manager316communicates370an unsubscribe message372to the first application318, and also communicates374an unsubscribe message376to the second application320.

FIG. 4depicts an illustrative method400for managing subscription messages that are communicated to various applications that are accessible by a mobile device, in accordance with an embodiment of the present invention. Initially, an indication is received at step410of applications that are accessible to a mobile device. The mobile device, at this point, may have or may not have already been registered with the communications network. The mobile device registers with the communications network, in one embodiment, by communicating a registration request to the call-control component, which downloads a user-service profile corresponding to the mobile device from the subscriber server. These applications may include any type of software that can be used by a mobile device, such as voicemail, gaming, presence, GPS, or the like. Whether or not a mobile device has access to an application may depend on whether the user of the mobile device has signed up for a particular application, whether the user of the mobile device subscribes to the applications, such as a paid subscription, etc. Many times, this determination is predetermined, and an indication of the applications to which the mobile device can access are stored in a database, which may include, in one embodiment, the subscriber server.

At step420, a registration notification is requested. The registration notification indicates that the mobile device becomes registered with a communications network. The requesting of a registration notification is also termed subscribing for a registration event, as mentioned above. The subscription manager subscribes for a registration event associated with a particular mobile device, and another component, such as a subscriber server, is notified that it is to alert the subscription manager anytime that mobile device registers with or deregisters from the network. In one embodiment, the communications network is an IMS network having components such as an HSS, a CSCF, application servers, media servers (e.g., MRF), BGCF, and PSTN gateways. The registration notification is received at step430at the subscription manager. In one embodiment, a subscriber server, such as an HSS, communicates the registration notification to the subscription manager, and the registration notification may be communicated by way of an Sh interface, which is associated with Diameter protocol.

At step440, the subscription manager communicates a subscribe message to the applications on behalf of the mobile device. These applications may include at least one application to which the mobile device has access. In one embodiment, the subscription manager accesses a database to determine which applications to which the mobile device is currently subscribed. As a result, the subscription manager may send a subscribe message on behalf of the mobile device to at least one of the applications to which the mobile device is not currently subscribed. There is no need for the subscription manager to send a subscribe message to those applications to which the mobile device is currently subscribed. The subscribe message enables the mobile device to communicate with the applications to which the subscribe message is sent. Subscribe messages may include various information, including, for example and not limitation, location information associated with the subscribe message, an expiration time associated with the subscribe message, and an IP address corresponding to the mobile device. Some subscribe messages may contain all of this information, some may contain none, and others may contain one or more of the types of information listed above. Location information may be used, for example, for applications that provide location-based services. Further, many subscribe messages expire after a certain time (e.g., 30 minutes, 2 hours, 24 hours, 72 hours), and therefore may include an expiration timer indicating when a new subscribe message is to be sent before the subscription expires.

In one embodiment, as detailed above in relation toFIG. 3, the mobile device will deregister from the network at some time after it becomes registered. A deregistration notification may then be communicated to the subscription manager by, for instance, the subscriber server, The deregistration notification may be sent to the subscription manager as a result of the subscription manager subscribing to the register event for the mobile device (e.g., requesting a registration notification). The subscription manger may then determine which of the applications to which an unsubscribe message is to be sent and may communicate the unsubscribe message to each of the applications to which the mobile device is subscribed. This effectively unsubscribes the mobile device from these applications. Subscribe and unsubscribe messages may be sent from the subscription manager to the applications by way of an interface used in conjunction with SIP.

Some of the responsibilities of the subscription manager include prioritizing subscribe and unsubscribe messages sent to the applications, as well as managing notifications that are to be sent to the mobile device from the applications. For example, subscribe messages may be sent at the same time to the applications to which the mobile device has access, or may be sent based on a predetermined priority. This predetermined priority may be determined by a user of the mobile device, or may be determined by an algorithm that includes intelligence to identify those applications to which subscribe messages should be sent first. In one embodiment, the subscription manager may determine the applications to which a subscribe message is to be sent depending on the type of mobile device that has registered with the network. For example, a single user may be associated with a mobile phone and a laptop. The laptop may be able to use different applications than the mobile phone, and therefore just because the user of both devices is allowed access to a certain application doesn't mean the device should be subscribed to all of these applications each time it becomes registered with the network. The subscription manager may have the intelligence to know that if the device is a laptop, only certain applications need to be sent a subscribe message, but if the device is a mobile phone, other applications need to be sent a subscribe message.

As mentioned, the subscription manager may also manage the transmittal of the notifications sent from the applications to the mobile device. Some applications may have a predetermined priority over the others, and thus, in one embodiment, the notifications from these priority applications may be sent to the mobile device prior to other notifications. In another embodiment, in order to decrease traffic across the network, notifications sent to the subscription manager may be collected by the subscription manager over a certain amount of time (e.g., 1 minute, 5 minutes, 30 minutes) and sent to the mobile device in one message, as opposed to sending an individual message to the mobile device each time a notification arrives at the subscription manager. Further, in one embodiment, the subscription manager has the intelligence (e.g., by way of an algorithm or status notifications) to know the status of the user of the mobile device, such as whether the user is currently on a call, in a meeting, or away from his mobile device. In these instances, the subscription manager may hold the notifications until the user's status has changed, or until the user is no longer on a call, and then send the notifications either all at once or based on priority of the notifications.

Referring now toFIG. 5, a method500is shown for managing subscription messages that are communicated to various applications that are accessible by a mobile device, in accordance with an embodiment of the present invention. Initially, a registration notification is retrieved at step510for the mobile device's IMS registration. The registration notification indicates that the mobile device has registered with a communications network, such as an IMS network, thus enabling the mobile device to communicate with one or more applications to which it has access. Retrieving the registration notification may include the subscription manager requesting from a component, such as a subscriber server, that it be notified when a particular mobile device registers with or deregisters from the network. This may also be described as the subscription manager subscribing for a register event associated with the mobile device. The subscription manager is then sent a registration notification when the mobile device becomes registered with the network, and a deregistration notification when the mobile device becomes deregistered from the network.

At step520, the mobile device is subscribed to the various applications by way of the subscription manager. These applications are ones that are accessible to the mobile device. Subscribing the mobile device to the applications may include various steps, including a determination of the applications to which the mobile device has access. As previously mentioned, one embodiment includes a provisioning feed that informs the subscription manager as to those applications to which the mobile device has access. In another embodiment, the subscriber server sends the subscription manager, in addition to the registration notification, an indication of the applications to which the mobile device can access. Further, the subscription manager may access a database to determine a current status of each of the applications. The current status may be a subscribed status or an unsubscribed status. A subscribe message may be communicated to those applications that currently have an unsubscribed status. The subscribe message may include one or more of location information associated with the mobile device, an expiration time associated with the subscribe message, or an IP address corresponding to the mobile device. As mentioned, only a subset of these applications may be sent a subscribe message, as the subscription manager, in one embodiment has the intelligence to determine the applications to which the user of the mobile device wishes to be subscribed. These may include a voicemail application, for example.

A deregistration notification is received at step530, which indicates that the mobile device is no longer registered with the IMS network. At step540, an unsubscribe message is communicated to at least one of the applications to which the mobile device is currently subscribed, thus unsubscribing the mobile device from these applications.

FIG. 6depicts an illustrative operating environment600suitable for practicing an embodiment of the present invention. Like the embodiment described in relation toFIG. 2, a subscription manager manages subscribe and unsubscribe messages sent from the device to one or more applications to which the mobile device has access. The embodiment ofFIG. 6, however, allows for a subscription manager to manage subscribe and unsubscribe messages for a mobile device and various applications that are associated with a foreign network, or a network that is different than the network that is associated with the subscription manager (e.g., the home network). For instance, service provider A may lease its services provided by a subscription manager to other service providers, such as service provider B. As shown inFIG. 6, a mobile device610, a call-control component612, and a subscriber server614may each be associated with a service provider A. This association means that these components are owned by, located within, operated by, leased by, etc., service provider A, which in one embodiment, is a wireless service provider.

Service provider B's network may include, at least, a mobile device616, a call-control component618, and a subscriber server620. These components perform the same or similar functions as those in service provider A's network. For instance, the call-control component618manages the registrations of mobile devices with the service provider's network, which, in one embodiment, is an IMS network. The call-control component618has the intelligence to route calls placed by a mobile device, such as mobile device616. The mobile device616sends a registration request to the call-control component618, which in turn downloads the user-service profile associated with the mobile device616from a subscriber server620. The subscriber server620is generally a database where subscribers are provisioned and stores the user-service profiles that indicate which services or applications the mobile device can access. The subscriber server620also handles calls, as it contains subscription-related information in the form of the user-service profiles, and also performs authentication and authorization of the mobile device to the network. Additionally, the subscriber server620contains other information associated with the mobile device, including its physical location and IP information, such as the IP address corresponding to the mobile device.

As mentioned, the subscription manager622performs the same functions as those described in relation to subscription manager240inFIG. 2. For instance, subscription manager622manages the subscription of the mobile device to various applications to which the mobile device210has access. But here, one or more of the mobile devices and the applications are associated with a different service provider, such as service provider B. In one embodiment, the mobile device is associated with a foreign network (e.g., service provider B's network) and the subscription manager and the applications are associated with a home network (e.g., service provider A's network). In another embodiment, the mobile device is associated with a home network (e.g., service provider A's network) and the applications are associated with a foreign network (e.g., service provider B's network). In yet another embodiment, both the mobile device and the applications are associated with a foreign network (e.g., service provider B's network) while the subscription manager622is associated with the home network (e.g., service provider A's network).

While traditionally the mobile device sends subscribe and unsubscribe messages to the applications at a time interval dependent upon an expiration timer contained in each message, here, the subscription manager622is responsible for sending these messages to the applications on behalf of the mobile device, whether the applications and/or the mobile device are associated with a foreign network or the home network. As a result, the number of messages and information passing through the network drastically decreases, thus reducing traffic from the carrier interfaces.

A provisioning feed is sent to the subscription manager622and the applications, and includes various types of information. The provisioning feed may be sent by some upstream source. For example, a provisioning feed sent to the subscription manager622may include an indication of those applications to which various mobile devices, such as mobile devices610and616, can access, including applications that are associated with other service providers, such as foreign networks. In one embodiment, a home network and a foreign network, such as service providers A and B, may have a preexisting relationship that allows the subscription manager622to manage subscriptions for mobile devices associated with the foreign network. The relationship may also allow the subscription manager622to subscribe a mobile device to applications associated with the foreign network.

In one embodiment, the provisioning feed includes an indication of those applications that the mobile device is attempting to access so that the subscription manager622knows the applications to which to send a subscribe message once the device has registered with the network. The subscription manager622manages the subscription of the mobile device610or616to the applications, including a first application624, a second application626, a third application628, a fourth application630, a fifth application632, and a sixth application634. While six applications are shown inFIG. 6, it is contemplated that any number of applications may be accessible to a mobile device. Six applications are shown as only one exemplary embodiment of the present invention. As shown here, applications624,626, and628are associated with service provider A's network, while applications630,632, and634are associated with service provider B's network.

The subscription manager622is alerted when a mobile device registers with the network. For instance, as described above, the subscription manager may communicate a subscription (e.g., a one-time subscription) to the subscriber server614to subscribe to a registration event corresponding to a mobile device or multiple mobile devices associated with service provider A. Similarly, the subscription manager622may subscribe to a registration event corresponding to mobile devices in foreign networks, such as mobile device616associated with service provider B. The registration event indicates to the subscription manager622whether the mobile device has become registered with or unregistered from the communications network. In one embodiment, the mobile device registers with the network per standard RFC3265.

Depending on which network the mobile device is associated with, the subscriber server in that network (e.g., subscriber server614or620) responds to the subscription manager622by communicating a message to the subscription manager622with either a register or a deregister event. These events indicate the mobile device's current registry status. Once the subscription manager622is aware that the mobile device is registered, it may proceed to send subscribe messages to one or more of the applications that can be accessed by the mobile device, whether the applications are in the home or foreign network. Similarly, the subscriber server614or620may send a deregister notification to the subscription manager622when the mobile device has deregistered from the network. The subscription manager622may then send out unsubscribe messages to the one or more applications to which the mobile device is currently subscribed, including applications624,626,628,630,632, and634.

In one embodiment, the networking environment ofFIG. 2is an Internet protocol (IP) multimedia subsystem (IMS). IMS is an architectural framework for delivering IP multimedia services and, in one instance, uses the Session Initiation Protocol (SIP) to communicate information between components. Exemplary components of an IMS network may include a home subscriber server (HSS), a call session control function (CSCF), application servers, media servers (e.g., media resource function (MRF)), breakout gateway control function (BGCF), and PSTN gateways. IMS networks generally aid in the access of multimedia and voice applications from wireless and wireline terminals. As such, in one embodiment, the call-control components612and618are call session controller functions (CSCF) that are used to process SIP signaling packets. The various types of CSCFs are described above in relation toFIG. 2. Further, in one embodiment, the subscriber servers614and620are home subscriber servers (HSS), which handle centralized provisioning, management, and authentication and authorization of the mobile device to the network.

The embodiment ofFIG. 6illustrates how a subscription manager is able to manage the subscription of a mobile device to one or more applications when the mobile device and/or the applications are associated with a network or domain that is different than the network associated with the subscription manager. This effectively allows the subscription manager622to manage subscriptions for mobile devices located in a different network, or to manage subscriptions for a mobile device when the subscriptions are for applications associated with a different network, such as a competitor's network. For instance, multiple applications associated with service provider A may seek registration across several IMS-enabled networks, including, for example, service provider B's network. Instead of the mobile device sending subscribe and unsubscribe messages directly to the applications, it can now send them to the subscription manager, even if the subscription manager is associated with a different network, so long as the two networks (e.g., home network and foreign network) have an established relationship that allows for this.

When a subscribe message or an unsubscribe message is sent from the subscription manager622associated with service provider A to an application associated with service provider B, the message must cross a security boundary (e.g., border) that separates the two networks or domains. A border refers to a point of demarcation between one part of a network and another, such as the edge of a corporate network, where some type of security protection may be located. Further, when the subscription manager622receives a notification from the subscriber server620located in a foreign network that indicates whether the mobile device616, also located in the foreign network, is registered with the network, this message must also cross a security boundary between the two networks. Depending on the security protection set up by individual service providers, the security boundary may include, for instance, one or more session border controllers (SBC), one or more firewalls, or the like. An SBC is a device used to exert control over the signaling and media streams involved in setting up, conducting, and tearing down telephone calls or other interactive media communications. SBCs are typically positioned between two service provider networks in a peering environment and commonly offer security in protecting the network and other devices from attacks. Information, in one embodiment, is transferred across the border by way of a network-to-network interface (NNI).

Referring toFIG. 7, an illustrative flowchart is shown of a method700for managing subscription messages for a foreign network, the subscription messages being communicated to various applications that are accessible by a mobile device, in accordance with an embodiment of the present invention. Initially, at a home network, an indication of the applications to which a mobile device, associated with a foreign network, has access is received, shown at step710. The home network may be a first service provider's network, and the foreign network may be a second service provider's network. The home network and the foreign network, in one embodiment, are IP multimedia subsystem networks. This information may be received by way of a provisioning feed, as described above. In one embodiment, in order for a subscription manager in a home network to manage subscriptions for a mobile device in a foreign network, or for the subscription manager in a home network to communicate subscribe messages to applications associated with a foreign network, the home and the foreign networks may have an established relationship. This preexisting, established relationship also allows for information, such as subscribe messages or registration notifications to be communicated from one network to another.

At step720, a registration notification is received from the foreign network. The registration notification indicates that the mobile device is currently registered with the foreign network. In one instance, the registration notification is communicated to the subscription manager by way of a “Sh” interface. To register with the foreign network, the mobile device communicates a register message to a call-control component, such as call-control component618described in relation toFIG. 6. The register message indicates that the mobile device would like to register with the network and may include information needed to register the mobile device onto the network. For exemplary purposes and not limitation, this information may include a user identification, such as an IMSI, a TMSI, an IMEI, an MSISDN, or the like. IMSI is a unique phone identity, and TMSI is generated based on a geographical location of the mobile device meant to improve privacy. IMEI is a unique device identity and is phone specific, while MSISDN is a telephone number of a user.

The call-control component may perform various functions, such as determining an identifier associated with the mobile device, and based on this, determining a home domain of the mobile device. The call-control component then communicates a request to download a user-service profile from the subscriber server, such as the subscriber server620described in relation toFIG. 6. As mentioned, the subscriber server is responsible for storing user-service profiles corresponding to the mobile devices. The subscriber server then communicates the user-service profile back to the call-control component such that the user-service profile is downloaded onto the call-control component. At this point, the mobile device is registered with the network. The subscription manager may subscribe to the mobile device's registration event, thus requesting a registration request from the subscriber server. In one embodiment, the subscriber server is an HSS and the call-control component is a CSCF. Both may communicate with other components by way of SIP.

Returning toFIG. 7, at step730, a subscribe message is communicated to the applications to which the mobile device has access, regardless of whether the applications are associated with the home network or the foreign network. The subscribe message enables the mobile device to communicate with the applications to which the subscribe message is sent. To determine which applications to which the mobile device is currently subscribed, a database in the home network may be accessed. The database may be updated in real-time or close to real-time such that it contains accurate information as to which mobile devices are currently subscribed to which applications. In one embodiment, the subscription manager manages a prioritization of the subscribe messages communicated to the applications such that if one application is flagged or marked as being of more importance than another application, the more important application would receive a subscribe message before the other less important application.

In one embodiment, at least a portion of the applications to which the subscribe message is sent are associated with the foreign network and, as such, the subscribe message is communicated across a security border, as described above in relation toFIG. 6. For instance, depending on the security protection set up by individual service providers, the security boundary may include, for instance, one or more session border controllers (SBC), one or more firewalls, or the like. Information may be transferred across the border, in one embodiment, by way of a network-to-network interface. As also mentioned above, the subscribe message may include various types of information, including, at least, location information associated with the mobile device, an expiration time associated with the subscribe message, an IP address corresponding to the mobile device, an identification of the home network, etc.

Further, a deregistration notification may be received from the foreign network indicating that the mobile device is no longer registered with the foreign network. Once this happens, an unsubscribe message is communicated to the applications to which the mobile device is currently subscribed, thereby unsubscribing the mobile device from the applications. The subscribe and unsubscribe messages that are communicated to the applications, in one embodiment, are communicated by way of SIP.

Turning now toFIG. 8, an illustrative flowchart of a method800for managing subscription messages for a foreign network is shown, wherein the subscription messages are communicated to various applications that are accessible by a mobile device, in accordance with an embodiment of the present invention. At step810, a registration message is received stating that the mobile device is currently registered with a foreign network. This registration message is received at a home network. At step820, identifications of applications are received, wherein the applications are accessible to the mobile device.

At least one of the applications is determined to be associated with the foreign network at step830. Generally, an application is associated with the foreign network by way of being owned, operated, or being leased by a service provider associated with the foreign network. As such, both the mobile device and one or more of the applications are not associated with the home network, and thus the subscription manager, which is associated with the home network, may be leased by the foreign network from the home network. If this is the case, information, such as subscribe messages, unsubscribe messages, and registration notifications are communicated across the border between networks. Depending on the security protection set up by individual service providers or networks, the security boundary may include, for instance, one or more session border controllers (SBC), one or more firewalls, or the like, and an NNI may be used to transfer the information. In another instance, a virtual private network (VPN) is used to communicate the subscribe message from one network to another. A VPN is a computer network that creates a private scope of computer communications and that provides a secure extension of a private network into an insecure network, such as the Internet.

At step840, it is determined that the home network has an established relationship with the foreign network, which allows the subscription manager in the home network to manage subscriptions of the applications on behalf of the mobile device, even if the mobile device is associated with the foreign network. The subscribe message is communicated to the applications at step850. Because the application may be located in a foreign network, the subscribe message may be communicated from the home network to the foreign network.

FIG. 9depicts an illustrative flowchart of a method900for managing subscription messages for a foreign network, the subscription messages being communicated to various applications that are accessible by a mobile device, in accordance with an embodiment of the present invention. At step910, a registration notification is retrieved from a foreign network. The registration notification indicates that the mobile device has registered with an IP multimedia subsystem network in the foreign network. The IMS network enables the mobile device to communicate with the applications accessible to the mobile device. At step920, the mobile device is subscribed to an application associated with the foreign network. Subscribing the mobile device to applications initially includes determining that the mobile device has access to the applications. In one instance, this includes accessing a database that contains identifications of applications to which various mobile devices have access. Or, a provisioning feed is sent to the subscription manager alerting the subscription manager as to which applications are accessible to the mobile device.

Further, a database may be accessed to determine a current status of each application. A current status may be a subscribed status or an unsubscribed status. If it is determined that an application has an unsubscribed status and that application is accessible to the mobile device, a subscribe message is communicated to the application, thereby enabling the mobile device to communicate with the application. A subscribe message may include one or more of location information associated with the mobile device, an expiration time associated with the subscribe message, an IP address corresponding to the mobile device, or an identification of the home network, such that the receiving application knows from where the subscribe message is coming. As mentioned above, applications may be associated (e.g., owned, leased, operated) with a home network or a foreign network, and if associated with a foreign network, the subscribe message is communicated across a security boundary, such as a border, between the home and foreign networks. The security boundary may include one or more of a session border controller or a firewall. Some boundaries may include more than one of an SBC and/or a firewall. The information, such as the subscribe message, may be communicated by way of an NNI.

At step930, a deregistration notification is received from the foreign network indicating that the mobile device is no longer registered with the IMS network. As such, an unsubscribe message is communicated to the application to which the mobile device is currently subscribed, shown at step940. Now, the mobile device is unsubscribed from this application.

Referring toFIG. 10, an illustrative operating environment1000suitable for practicing an embodiment of the present invention is shown.FIG. 10appears similar toFIG. 2, but includes several differences. Initially,FIG. 10includes a mobile device1010, a call-control component1020, and a subscriber server1030, all of which have been described in detail above. The components illustrated inFIG. 10are included to provide an illustrative example of components that may be used, but it is contemplated that more or less components than those shown may be included to carry out the embodiment of the present invention described with respect toFIG. 10. Here, though, a subscription/notification manager1040is illustrated.FIG. 2includes a subscription manager, but here, a notification manager has been added. It should be noted that while the subscription manager and the notification manager are illustrated as a single component, other embodiments of the present invention use a separate component for each of the subscription manager and the notification manager. Generally, when a mobile device is subscribed to an application, that application sends notifications directly to the mobile device. A notification indicates an occurrence of an event associated with one of the applications from which the notification is sent. One such example of a notification is a voicemail message that is sent from a voicemail application to the mobile device. Another example is a presence application that sends notifications to a mobile device of updates of another user's location. Weather updates are another example of notifications that are sent from a weather application to a mobile device.

Further, three applications are illustrated inFIG. 10, including a first application1050, a second application1060, and a third application1070. While subscribe and unsubscribe messages are sent from the subscription/notification manager to the applications, notifications are sent from the applications to the subscription/notification manager1040. Notifications that are received by the subscription/notification manager1040are collected, queued, and sent to the mobile device in a configurable periodic manner. The manner in which the notifications are sent to the mobile device may vary, but in one embodiment, notifications sent to the subscription/notification manager1040are held for a certain period of time, such as for five minutes, for example, and every five minutes, the notifications are sent to the mobile device in the form of a single notification message. This greatly reduces the amount of traffic on the network thus increasing the network efficiency. Additionally, the user of the mobile device receiving the notifications may not want to receive a presence update each time another user moves location, but may want to know every five, ten, or fifteen minutes, for example, where that user is located.

In another embodiment, the notifications are held at the subscription/notification manager1040until a certain predetermined number of notifications have been received, and once that number of notifications has been received, a notification message is sent to the mobile device that includes those notifications. In still another embodiment, how and when notifications are sent to the mobile device depends on the current amount of traffic on the network at that particular time. If network congestion is sensed, the notifications may be held until a time when less congestion is present on the network. In a further embodiment, the type of service provided by the application dictates when and how the notifications are sent to the mobile device. For instance, a user of the mobile device may want to receive voicemails immediately after they are left on the voicemail system but may not want or need to receive notifications relating to the weather each time they are issued or sent by the weather application. In one instance, the notifications that are included in a notifications message may be from a single application, or may be from more than one application. Once received by the subscription/notification manager1040, the notification manager sends the notification message to the mobile device1010through the call-control component1020. While the same or similar components are illustrated inFIG. 10and other figures described herein, the components inFIG. 10have been given different reference numbers for ease of discussion. Different numbers does not necessarily imply that the components are different.

FIG. 11depicts an illustrative flow diagram1100for managing notification messages sent by various applications to a mobile device, in accordance with an embodiment of the present invention. Initially, the flow diagram ofFIG. 11includes various components, including a mobile device1110, a call-control component1112, a notification manager1114, a first application1116, and a second application1118. The components illustrated inFIG. 11are provided for an illustrative example of components that may be used, but it is contemplated that more or less components than those shown may be included to carry out the embodiment of the present invention described with respect toFIG. 11. As such, although two applications are illustrated inFIG. 11, less or more than two may be provided. Here, the first application1116communicates1120a notification1122to the notification manager1114, and the second application1118also communicates1124a notification1126to the notification manager1114. These notifications may be received at the notification manager1114at the same time, or at different times.

The notification manager1114, at step1128, determines how and when the notifications are to be communicated to the mobile device1110. Notifications may be sent to the mobile device1110according to one or more of several factors. For instance, in one embodiment, notifications sent to the notification manager1114are held for a certain period of time, such as for five minutes, for example, and every five minutes, the notifications are sent to the mobile device in the form of a single notification message. This greatly reduces the amount of traffic on the network thus increasing the network efficiency. Additionally, the user of the mobile device receiving the notifications may not want to receive a presence update each time another user moves location but may want to know every five, ten, or fifteen minutes, for example, where that user is located. The time interval may be determined by the user, the service provider, or may be automatically determined based on other factors, including the time of the day, user settings, etc.

In another embodiment, the notifications are held at the notification manager1114until a certain predetermined number of notifications have been received, and once that number of notifications has been received, a notification message is sent to the mobile device that includes those notifications. In still another embodiment, how and when notifications are sent to the mobile device depends on the current amount of traffic on the network at that particular time. If network congestion is sensed, the notifications may be held until a time when less congestion is present on the network. In a further embodiment, the type of service provided by the application dictates when and how the notifications are sent to the mobile device. For instance, a user of the mobile device may want to receive voicemails immediately after they are left on the voicemail system but may not want or need to receive notifications relating to the weather each time they are issued or sent by the weather application. In one instance, the notifications that are included in a notifications message may be from a single application, or may be from more than one application.

Regardless of when or how the notifications are determined to be communicated to the mobile device1110, a notification message1132is communicated1130to the call-control component1112, which determines, at step1134, the mobile device to which the notification message is to be sent and may also determine a route to send the message. The call-control component1112then communicates1136the notification message1138to the mobile device1110, which receives the notification message1138and may display the various notifications on the device. As mentioned, although two notifications1122and1126are illustrated inFIG. 11as being sent to the notification manager1114, any number of notifications may be sent to the notification manager1114.

In one embodiment, the mobile device and/or one or more of the applications are located in a foreign network. As such, the notifications and/or the notification message may be communicated across a security boundary, such as a border. As discussed above, one or more of a firewall or an SBC may be used to keep harmful information out of the network. The home and foreign networks may have an established relationship such that each network is already aware of the other network and knows to allow information from the other network. Information may be transferred to the other network by way of an NNI.

Turning toFIG. 12, an illustrative flowchart of a method1200for managing notification messages that are communicated from various applications and that are intended for a mobile device is shown, in accordance with an embodiment of the present invention. Initially, a plurality of notifications are received from the applications that are accessible by the mobile device, shown at step1210. Each of the notifications indicates an occurrence of an event associated with one of the applications from which the notification was sent. Notifications may be continuously received at the notification manager. At step1220, it is determined that the mobile device is currently registered with a communications network. The communications network may be the home network or a foreign network. In one instance, the communications network is an IMS network. Registrations typically take place by the mobile device sending a registration request to a call-control component that downloads from the subscriber server a user-service profile corresponding to the mobile device. A registration notification may be requested by the notification manager or the subscription manager, or both. Another component, such as the subscriber server, may send this notification to the subscription or the notification component when the mobile device has registered with the network.

At step1230, a first set of applications to which the mobile device is currently subscribed is identified. In one embodiment, these applications are identified by searching a database containing mobile devices and identifications of applications to which the mobile device is currently subscribed. This database may be updated in real-time, or near real-time. Subscribe messages are communicated to the applications that comprise the first set of applications to subscribe the mobile device to the applications. A first set of notifications that is to be communicated to the mobile device is identified at step1240. Each notification in the first set of notifications is associated with an application from the first set of applications. As such, a notification may not be communicated to the mobile device if it is associated with an application to which the mobile device is not currently subscribed. If notifications are received but the mobile device is not currently subscribed to that application, those notifications may be queued and held until the mobile device is subscribed to that application. At step1250, a first notification message is communicated to the mobile device. This notification message includes the first set of notifications. In one embodiment, the first notification message is communicated to the mobile device by way of a call-control component that manages registration of the mobile device with the communications network.

In one embodiment, a second set of notifications is identified. Each of these notifications in the second set is associated with an application in a second set of applications, wherein each application in the second set of applications is subscribed to by the mobile device. A second notification message may then be communicated to the mobile device, which includes the second set of notifications. Notifications may be sent to the mobile device according to one or more of several factors. For instance, in one embodiment, notifications sent to the notification manager are held for a certain period or interval of time, such as for five minutes, for example, and every five minutes, the notifications are sent to the mobile device in the form of a single notification message. This greatly reduces the amount of traffic on the network thus increasing the network efficiency. Additionally, the user of the mobile device receiving the notifications may not want to receive a presence update each time another user moves location, but may want to know every five, ten, or fifteen minutes, for example, where that user is located. The time interval may be determined by the user, the service provider, or may be automatically determined based on other factors, including the time of the day, user settings, etc.

In another embodiment, the notifications are held at the notification manager until a certain predetermined number of notifications have been received, and once that number of notifications has been received, a notification message is sent to the mobile device that includes those notifications. In still another embodiment, how and when notifications are sent to the mobile device depends on the current amount of traffic on the network at that particular time. If network congestion is sensed, the notifications may be held until a time when less congestion is present on the network. In a further embodiment, the type of service provided by the application dictates when and how the notifications are sent to the mobile device. For instance, a user of the mobile device may want to receive voicemails immediately after they are left on the voicemail system but may not want or need to receive notifications relating to the weather each time they are issued or sent by the weather application. In one instance, the notifications that are included in a notifications message may be from a single application, or may be from more than one application. If the mobile device is not currently registered with the communications network, the notifications may be queued and held until the mobile device is registered.

FIG. 13illustrates an exemplary flowchart of a method1300for managing notification messages that are communicated from various applications and that are intended for a mobile device, in accordance with an embodiment of the present invention. At step1310, a first notification is received from a first application upon an occurrence of a first event. At step1320, a second notification is received from a second application upon the occurrence of a second event. An event, for example, may be a voicemail, a location of a user, a weather update, an alert from a game, or the like. An indication is received at step1330that the mobile device is currently registered with a communications network. This indication may be received from a subscriber server and may be sent to the notification manager as a result of the notification manager or the subscription manager requesting that a registration notification be sent as soon as the mobile device is registered with the network, or as soon as the mobile device has become unregistered from the network.

At step1340, it is determined that the mobile device is currently subscribed to the first and second applications such that the mobile device is enabled to communicate with the applications by way of the communications network. This determination may be made, for instance, by performing a lookup in a database that contains up-to-date information on which mobile devices are subscribed to which applications. Alternatively, this information could be received in the form of a provisioning feed. As mentioned, the notification manager and the subscription manager may be one component, or may be separate components. As such, the notification manager could receive information, such as the subscription status for a particular mobile device, from the subscription manager, or vice versa. At step1350, a notification message is communicated to the mobile device. The notification information includes the first and the second notification, and may also include other types of information, including from where the message is sent, which applications sent the notifications, a time and/or date that the notifications were sent to the notification manager, etc. In embodiments, the applications from which the notifications are sent that are included in the notification message may be the same applications, and as such, the first and the second applications may be the same.

Further, the notification message may be communicated to the mobile device at a time that is determined by one of many factors. For instance, the notification message may be communicated to the mobile device at a predetermined interval of time after a previous notification message has been communicated to the mobile device. This interval of time may be determined by the service provider, the user, etc. Therefore, any notifications that are received between the sending of notification messages are queued and held until the next notification message is sent. Alternatively, notification messages may be sent to the mobile device when a predetermined number of notifications are received at the notification manager such that the user of the mobile device is not receiving a large amount of notifications separately, which results in an overcrowded and inefficient network. In yet another alternate embodiment, the time when the notification message is communicated to the mobile device is dependent upon the current usage of the communications network, such that the message would not be sent at a time when usage is at its highest, thus eliminating excess traffic from the network at that time.

Referring now toFIG. 14, an illustrative flowchart of a method1400is shown for managing notification messages that are communicated from various applications and that are intended for a mobile device, in accordance with an embodiment of the present invention. At step1410, notifications are received from one or more applications to which the mobile device has access. Each of the received notifications represents an occurrence of an event associated with the application from which the notification is sent. At step1420, the received notifications are stored in, for instance, one or more databases. It is determined at step1430that the mobile device is capable of receiving at least one of the notifications. The mobile device can receive a notification if an indication has been received that the mobile device is currently registered with a communications network and if it is determined that the mobile device is currently subscribed to the application from which the notification is sent. It may be determined that the mobile device is subscribed to a first set of applications. A first set of notifications is identified at step1440. Each of these notifications is associated with an application in the first set of applications. As previously stated, it has been determined that the mobile device is subscribed to the applications in the first set of applications. At step1450, a notification message is communicated to the mobile device, and includes the first set of notifications. The notification message is communicated at a predetermined time interval since a communication of a previous notification message to the mobile device. This time interval may be determined by the user of the mobile device, the service provider, or may be automatically determined.

In one embodiment, the mobile device and/or one or more of the applications are associated (e.g., owned, located, operated, leased) with a foreign network, or a network different than that associated with the notification manager. In this case, information, such as a registration notification, subscribe messages, notifications, notification messages, etc., may be sent across a security boundary or border. To ward off unwanted information, the border may include one or more firewalls, one or more SBCs, or the like. Further, information may be transferred via an NNI.