The present invention pertains to the field of communication networks and in particular to a method and apparatus for paging an application on a user equipment (UE) or other such electronic device (ED).
An application server can be required to contact an application operating on a user equipment (UE) to support for example, WebPush or other notification mechanisms. For example, WebPush can be used to push new email to a mail application operating on the UE. Push-based messaging allows a server to transmit data to a UE, without the UE initiating a transmission. An alternative to Push-based messaging is having the UE check the server to see if there is new data available, which is referred to as UE-based polling. Push-based messaging is popular because it provides immediate access to messages and data, where polling typically introduces an additional latency into messaging. Push-based messaging can encounter latency when provided in an IP-based or mobile environment. Firewalls can prevent application servers from initiating sessions (such as HTTP(s) sessions) with a UE and the applications resident upon the UE. Additionally, a UE can have reception problems when mobile if there is a change to the internet protocol (IP) address associated with the mobile UE. To address these issues, and provide push-like functionality, many application servers (AS) employ long polling. In a long poll, a UE initiates a poll request with the AS, but specifies a long interval for the timeout value. This allows the AS to leave the logical connection alive and transmit a response to the UE when new data is available. If no data arrives within the timeout window, the connection is terminated by the timeout, and the UE can initiate a new long poll.
As noted above, polling methods (and associated keep alive messaging) are employed to support application server initiated transmissions to a UE. However a consequence of this strategy is that it generates substantial traffic and overhead signalling. Additional, it prevents UEs from remaining in idle mode by forcing the UEs to periodically reattach to the network to transmit keep alive messaging. The network overhead is both in the transmission of long poll requests that are allowed to expire, and in the signalling required for the UE to reattach just to transmit a long poll request. The less frequently data arrives at the AS for delivery to the UE, the greater the percentage of overall local network traffic that can be attributed to the signalling overhead.
Therefore there is a need for a method and apparatus which enables an application server to contact a user equipment that is not subject to one or more limitations of the prior art.
This background information is provided to reveal information believed by the applicant to be of possible relevance to the present invention. No admission is necessarily intended, nor should be construed, that any of the preceding information constitutes prior art against the present invention.
An object of the present invention is to provide a method and apparatus for paging an application on a user equipment or electronic device. In accordance with an aspect of the present invention, there is provided a method for paging an application operating on (or associated with) a user equipment (UE) or electronic device (ED). The method includes transmitting, by the UE, an identifier, the identifier at least indicative of the application and receiving, by the UE, a notification, the notification including data indicative of the identifier. In addition, the method includes determining, by the UE, if the notification is a paging notification and identifying the application associated with the identifier when the notification is a paging notification.
In accordance with another aspect of the present invention, there is provided a method for paging an application operating on a UE or ED. The method includes receiving, by an application server, an identifier, the identifier at least indicative of the application and transmitting, by the application server, a paging notification, the paging notification including data indicative of the identifier.
According to embodiments, the paging notification is transmitted as a short message service (SMS) message. According to embodiments, the paging notification is transmitted to a locator function configured to locate the UE.
In accordance with another aspect of the present invention, there is provided a method for paging an application operating on or associated with a UE or ED. The method includes receiving, by a network based locator function which may be instantiated upon a network node, an identifier, the identifier at least indicative of the application and the UE. The method further includes determining, by the network based locator function or network node, one or more mobility managers which serve the UE, wherein determining is based at least in part on the identifier. In addition, the method includes transmitting, by the network based locator function or network node, a paging request to the one or more determined mobility managers, the paging request including data indicative of the identifier.
Further features and advantages of the present invention will become apparent from the following detailed description, taken in combination with the appended drawings, in which:
It will be noted that throughout the appended drawings, like features are identified by like reference numerals.
The present invention provides a method and apparatus for paging an application on a UE or ED. According to embodiments, the application server initiates an application paging notification process on an as needed basis for initiating contact with an application operating on a UE. As such, an application operating on the UE does not maintain a connection or defined connection path with the application server, thereby mitigating the required overhead signalling and keep alive messages.
According to the instant application, when an application server is to push a notification or other data to an application operating on the UE, the application server transmits an application paging notification, for transmission to the UE. Prior to the transmission of an application paging notification by the application server, the application at the UE can provide an identifier to the application server. The identifier includes details relating to the application and the associated UE. The identifier can be used by communication nodes and functions, located between the application server and the UE, to direct the application paging notification to the relevant UE. According to embodiments, the identifier is further used for directing the application paging notification to the desired application operating on the UE
According to embodiments, the application paging notification can use a locator function, which may operate in a manner similar to a domain name service (DNS) server. The DNS-like locator function (LF) can be used to communicate with the operator network which provides communication connectivity to the UE. The operator network can subsequently be instructed to transmit a suitable paging notification to the UE. For example a suitable paging notification can include a portion of the application paging notification, which may enable the application to identify the application server which is the origin of the application paging notification. According to some embodiments, a suitable paging notification can include a portion of the application paging notification, which may enable the application to identify and authenticate or validate the origin of the application paging notification. According to embodiments, the locator function is operating on a network node. It should be understood that in some situations, a UE may not be on a home network, and may be roaming on a different network. The LF can, in some embodiments, make use of operator specific information to determine the visiting network through which the UE is connected, while in other embodiments, the home network can forward information to the visiting network on behalf of the AS.
In some embodiments, the application paging notification can be configured to resemble a short message service (SMS) message which is directed to the UE. In other embodiments the application paging notification can be transmitted using the SMS system which it typically already present in a network. This application paging notification can include information indicative of the identifier. Upon receipt of the application paging notification, which may resemble a SMS message, the UE can determine the application with which the application paging notification is associated. By configuring the SMS-like message associated the application paging notification to have a defined structure (or a parsable structure), the UE can determine the application in accordance with the SMS-like message. For example, the determined application can be the intended target of the application paging notification. The AS or application can be identified in the SMS-like message associated with the application paging notification, and may be identified by a sending or sender's address. For example the sender's address can be associated with the SMS-like message. If the identified application is operating, the application paging notification can be forwarded to the application through the UE operating system. If the identified application is not operating on the UE, in some embodiments, the UE may launch the appropriate application and forward the application paging notification to the identified application. It would be understood that the forwarding of the SMS-like message associated with the application paging notification may in fact be forwarded after determining that the launched application is sufficiently responsive.
According to embodiments, the application paging notification includes data which results in the application performing one or more desired actions. For example the data associated with the application paging notification, upon inspection by the application, can cause the application to initiate a connection with the application server, perform a function, display particular data to the user, store the message for later use, acknowledge the function status of the application or perform another action as would be readily understood by a worker skilled in the art.
With further reference to
In some embodiments, the UE is configured to evaluate the responsiveness of the application and in some instances the UE is configured to reply to the application server in order to inform the application server of the status of the UE or status of the application operating on the UE or both. The initiation of this type of reply can be based on the configuration of the UE or may be in response to a reply request included in the application paging notification. In addition, according to embodiments, the UE is configured to provide feedback within a response to the RAN paging of the UE, using for example a Zadov-Chu sequence on a predefined channel or an uplink transmission grant provided within the paging information. The RAN can forward this reply to the application server without requiring the UE to establish a communication session with the application server.
In some embodiments, additional security, for example in the form of a token or content data, may be resubmitted by the UE for reactivation of a previously paused communication session. This additional security can provide authorization and re-establish authentication for restoration of a TCP session between the application server and UE that was previously in use. In some embodiments, additional security can be configured as a token provided by the application server in the application paging notification. In this embodiments, the UE's application can be able to validate and certify an application paging notification as an authentic application paging notification originating from the application server.
With further reference to
Having particular regard to
RAN 820 (or a node within a RAN, such as a base station or other such access node) to which it is communicatively connected and further through a gateway function (GW) 825. In some embodiments, the GW function may be a Packet Gateway (PGW) and in other embodiments it may be a User Plane Gateway (UPGW). According to embodiments, the authorization message 852 includes an indication of the specific application server, for example application_identifier.com, and also an identifier associated with the application resident on the UE. For example, using application_name.com as an example of an application server, the identifier may be configured as:
application_identifier@UEID.PLMN.com,
application_identifier@UEID.carrier_name. com,
UEID.carrier_name.com/application_identifier, ueid.plmn.com: 452, where 452 is representative of a port number associated with the application, or other configuration as would be readily understood. According to some embodiments, the identifier can be configured as a temporary domain name which can be provided by the UE. In some instances this temporary domain name can be valid for a predetermined time. The NCEF 830 can transmit a configuration message to the locator function (LF) 840 such that the LF can provide the application server with location parameters relating to the UE within the network and may provide the application server with specific parameters relating to the application associated with the UE. For example, the NCEF 830 can configure the LF 840 to reply to an application/UE specific request by the application server “application_name. com” with the UE specific IP address and port number associated with the application operating on the UE. As such, upon receipt of a request for access 858 to a particular application operating on a particular UE, the LF can provide 862 the specific IP address associated with the requested UE and the port number associated the particular application resident on that UE. The application server 845 can then use this information to transmit a notification towards the specific application resident on a specific UE 864. The notification transmitted by the application server can include the specific IP address associated with the requested UE and the port number associated the particular application resident on that UE (as provided by LF 840). Upon receipt of this notification by the UE, the UE can subsequently use the identified port number for forwarding 866 this notification to the appropriate application.
With further reference to
According to some embodiments, when a firewall 835 is positioned at an intermediate location between the application server and the UE, the LF 840 can transmit an authorization 860 to the firewall to allow passage of a transmission from a particular application server to a particular UE. According to some embodiments, this authorization can include a validity time window, wherein during this time window passage of this transmission is allowed and outside of this time window the transmission is denied. According to some embodiments, an authorization to the firewall to allow passage of a transmission from a particular application server to a particular UE may be transmitted to the firewall by a communication network management entity other than the locator function. For example, the authorization can be transmitted to the firewall by the NCEF.
According to embodiments, the method and apparatus for paging an application on a UE can require a standardized, or operator network supported method of initiating the paging by the sending of an application paging notification, for example an application paging notification which includes the application ID. According to embodiments, if the locator function is a DNS server (or a server similar in nature to a DNS server), minimal modification of the DNS server would be required in order to support the required functionality of the locator function, as the functionality of the locator function is similar to the functionality of a DNS server. In some embodiments, the locator function can be configured to use a get/post method on an operator network server, wherein a universal resource locator (URL) is provided.
According to embodiments, when the UE contacts the application server to provide the identifier of the application and UE upon which the application operates, the identifier can include one or a combination of a phone number; MAC address; IMEI; MSIN; operator network information, for example international country code and operator network code; preferred server address to page, for example the operator network's paging server IP address, DNS server name or URL; information indicative of method of access of the application on the UE if this access is not predefined; and OS type of the UE which may identify a method to identify the application operating on the UE.
According to embodiments, when the application server sends a request, for example an application paging notification, to the locator function wherein this request includes the identifier, the application server can additionally send information indicative of the application server's identification which can be transmitted to the UE via the paging notification. For example, the application server can provide one or more of application name or ID on the UE; executable name used in the UE's OS; port number which is configured on the UE to trigger the application or socket information relating to the application; application server IP address or URL; information indicative of the method to access the application server for a reply, for example the TCP port number, HTTP or get/post details; and acceptable latency for the transmission of the paging notification, for example can the transmission of the paging notification be buffered with one or more additional paging notifications.
In some embodiments, the UE provides configuration details to the locator function, wherein these configuration details define how an application paging notification is to be sent to that UE. For example the configuration details can include information indicative of protocol, port number, universal resource locator (URL) or the like or combination thereof. In some embodiments, the locator function is configured to translate the application paging notification into a format that can be received and processed by the UE.
According to embodiments, the locator function can reply with an acknowledgement upon receiving the application paging notification. The locator function may reply with a response that the application paging notification has been rejected. The locator function may reply to the paging notification with additional information if that additional information is available at the time of the sending of the response. In some embodiments, the locator function can respond with information that is indicative of acknowledgement of the request, that the UE is present in the operator network, that the paging notification has been transmitted or that the UE is unreachable, or a combination thereof.
According to embodiments, within the initial paging request or notification transmission or alternately subsequent to the acknowledgment of receipt of the paging request, the application server can send additional information for use by the UE upon receipt of the paging notification. In some embodiments, this additional information can be instructions for the UE to execute a specific command. This specific command may be sent as a specific series of bytes identifying the command as predefined by the application server and the application on the UE. For example, a specific command can be to contact the application server, changes status of the application, change context information which may relate to security or information relating to a previously paused communication session. In some embodiments, the additional information can be instructions to restore a context of a previous connection, for example a URL extension which the UE's end application can use, context identification or a security code for authentication or a coded passphrase or cryptogram. In some embodiments, the additional information can be the form of a notification of new mail and may optionally include a summary of the new mail. In some embodiments, the additional information may be indicative of a delay for validity of the paging notification. For example, if the UE does not answer the paging notification within the defined delay period, a future response from the UE will be dropped or the paging notification will be disregarded.
In some embodiments the UE may use the additional information received in the paging notification to perform one or more additional actions. For example, the UE can use the additional information to verify that the connection, notification or command request is valid and trusted. The UE may use the additional information to compute an answer to enable verification application server upon contact by the application. For example the answer determined by the UE may be indicative of the particular paging notification that triggered the establishment of a communication session by the application. In some embodiments, the additional information in the paging notification can be indicative of the UE's previous context information that may be stored within the UE, thereby enabling verification of the application server by the UE.
In some embodiments, if the OS of the UE is not able to forward the paging notification or payload to the application, the OS can reply to the paging request or notification with an application dead or application unreachable message, which may subsequently be forwarded to the application server. In some embodiments, replies directly to the application server if the additional information includes directives to respond. In some embodiments, the OS of the UE can respond to the application server via the operator network's paging function through the locator function, or via and extended acknowledgement/negative acknowledgement reply to the paging, or a message which identifies the status of the application, or acknowledgement or negative acknowledgement of full delivery of the additional information.
According to embodiments, security of the communication is implicit as it is the operator network that is paging the UE and respective application. However, it is the UE which has to originally register with or contact the application server in order to provide at least the identifier which enables the application server to subsequently contact the UE. As such, in some embodiments, a further layer of security is provided in order for the UE to provide the identifier to the application server. For example, when initially communication with the application server, the UE is required to go through an authentication/authorization process in order to officially register for the paging notification service with the application server. For example, the authentication/authorization may be provided by a service similar to OAuth which is an open standard for authorization for Internet users to log in to third party websites using their Google, Facebook and the like accounts without exposing their password. This type of authorization specifies a process for resource owners to authorize third-party access to their server resources without sharing their credentials.
According to some embodiments, the identifier includes a limited amount of additional information. For example, a portion of the identifier is used to define the application, which an additional portion of the identifier is used to define one or more actions to be taken by the application. As an example the identifier includes a total of 8 bits, 6 bits may be used to define port numbers which may be able to define a total of 64 different applications. The remaining 2 bits can be used to provide one of four action instructions to the application. These four actions may: instruct the application to connect to the application server; inform the application the application of a non urgent notification that can be fetched when the UE is in an active state; instruct the application to take a measurement and store the data; instruct the application to request forwarding of stored data. As would be readily understood, the number of bits used in the identifier can be different and the particular instructions defined by the bits can take a variety of forms.
According to some embodiments, there is a preferential paging method for contacting an application operating on a UE. In some embodiments, there is a preferential order of paging method use for the contacting of an application operating on a UE. The preferential paging method or preferential order of paging method use can be dependent on the application, the UE or the combination of the application. In some embodiments, the identification of a preferential paging method or a preferential order of paging method of use can be associated with the identifier that is provided to the application server by the UE. For example, an application operating on a UE is preferentially contacted by the application server using SMS paging discussed above, and this preferential paging method of contact can be defined by the identifier provided to the application server. As another example, a particular application/UE combination is to be preferentially contacted by the application server using SMS paging, however the same particular application/UE combination may be contacted locator function paging as discussed above. The transition to the locator function paging may occur when the application server is unable to contact the application via SMS paging or unable to contact the application by SMS paging for a predetermined amount of time. It will be readily understood that these are merely examples of a preferential paging method or a preferential order of paging method.
According to embodiments, the paging of the application directly rather than paging the UE, can reduce the number of times that the UE will have to reconnect to the communication network upon receipt of a paging notification. For example, when a UE is paged, it is forced to reconnect to the communication network in order to determine the reason for the receipt of the page notification. By paging the application operating on the UE directly, the UE does not have to reconnect due to the receipt of the paging notification, however the UE will be directed to proceed in a manner that is in line with potential instructions included in the page. For example, the paging notification may instruct the application to perform a particular function that does not require the reconnection of the UE to the communication network.
According to embodiments, the paging notification received by the application, which can include a payload, for example additional information, requires an acknowledgement from the UE to be forwarded or translated to the requesting application server. In some embodiments, the acknowledgement can be provided in a one-time uplink transmission where the grant is included in the paging data. In some embodiments, the acknowledgement can be provided by a low level signalling transmitted by the UE to inform the RAN of proper reception of the paging notification. For example, the low level signalling can be configured as a Zadoff-Chu sequence.
The memory may include any type of non-transitory memory such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), read-only memory (ROM), any combination of such, or the like. The mass storage element may include any type of non-transitory storage device, such as a solid state drive, hard disk drive, a magnetic disk drive, an optical disk drive, USB drive, or any computer program product configured to store data and machine executable program code. According to certain embodiments, the memory or mass storage may have recorded thereon statements and instructions executable by the processor for performing any of the aforementioned method steps described above.
Through the descriptions of the preceding embodiments, the present invention may be implemented by using hardware only or by using software and a necessary universal hardware platform. Based on such understandings, the technical solution of the present invention may be embodied in the form of a software product. The software product may be stored in a non-volatile or non-transitory storage medium, which can be a compact disk read-only memory (CD-ROM), USB flash disk, or a removable hard disk. The software product includes a number of instructions that enable a computer device (personal computer, server, or network device) to execute the methods provided in the embodiments of the present invention. For example, such an execution may correspond to a simulation of the logical operations as described herein. The software product may additionally or alternatively include number of instructions that enable a computer device to execute operations for configuring or programming a digital logic apparatus in accordance with embodiments of the present invention.
Although the present invention has been described with reference to specific features and embodiments thereof, it is evident that various modifications and combinations can be made thereto without departing from the invention. The specification and drawings are, accordingly, to be regarded simply as an illustration of the invention as defined by the appended claims, and are contemplated to cover any and all modifications, variations, combinations or equivalents that fall within the scope of the present invention.
This application claims the benefit of U.S. Provisional Application Ser. No. 62/395,166 titled “Method and Apparatus for Paging an Application on a User Equipment” filed on Sep. 15, 2016, which is incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
62395166 | Sep 2016 | US |