Session Initiation Protocol (SIP) is an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants or end-nodes. These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences. The ability to request asynchronous notification of events proves useful in many types of SIP services for which cooperation between end-nodes is required. Examples of such services include automatic callback services (based on terminal state events), buddy lists (based on user presence events), message waiting indications (based on mailbox state change events), and Public Switched Telephone Network (PSTN), and Internet Internetworking (PINT) status (based on call state events).
Example embodiments of the present invention may be implemented in the form of a method or corresponding apparatus that communicates information in a session initiated protocol (SIP) network. A method and corresponding apparatus according to one embodiment of the present invention includes, while requesting a SIP server, notify a SIP subscriber during a SIP dialog with information of a state of a resource or of an event, informing the SIP server that the SIP subscriber uploads information other than a state of a resource or an of an event, and uploading the information as informed to the SIP server during the SIP dialog.
A method and corresponding apparatus according to another embodiment of the present invention includes creating a subscription responsive to a SIP subscriber requesting to be notified with information of a state of a resource or of an event during a SIP dialog, and responsive to the SIP subscriber informing that the SIP subscriber uploads information other than a state of a resource or of an event during the SIP dialog. And during the SIP dialog, notifying the SIP subscriber with information of a state of a resource or of an event as requested, while being uploaded by the SIP subscriber with information other than a state of a resource or an of an event as informed.
A method and corresponding apparatus according to yet another embodiment of the present invention includes creating a subscription by requesting to be notified by a SIP server with information of a state of a resource or of an event during a SIP dialog, and informing the SIP server that the SIP server is to be uploaded with information other than a state of a resource or of an event during the SIP dialog. And during the SIP dialog, uploading the SIP server with information other than a state of a resource or of an event as informed, while being notified by the SIP server with information of a state of a resource or of an event as requested.
The foregoing will be apparent from the following more particular description of example embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating embodiments of the present invention.
A description of example embodiments of the invention follows.
Collecting diagnostic information from a remote device is common practice for many communication devices. Currently, only limited system related information can be retrieved from a management system. There is no way to obtain data such as usage behavior of a user. Vendors of commercial products or services are always interested in understanding, for example, how their products, services or advertisements are perceived by end users in each household.
Current approaches for collecting diagnostic information include: i) using a dial-up data call to transmit such information through a plain old telephone system (POTS); and ii) using file transfer protocol (FTP), or the like, to transmit such information through an internet protocol (IP) network. These current approaches are inadequate because: i) a session for transmitting the information is not always up; ii) is not “future proof,” and iii) FTP does not allow instruction or event update from an FTP server.
The SUBSCRIBE message 115 conveys or otherwise communicates from the SIP subscriber 105 to the SIP server 110 an information package 120. The information package 120 defines a set of state information to be reported by the SIP server 110 to the SIP subscriber 105. The information package 120 also defines a set of information to be uploaded or otherwise reported by the SIP subscriber 105 to the SIP server 110. In a convenient embodiment, the information package 120 defines further syntax and semantics to convey user, application, and system information including, but not limited to, text, extensible markup language (XML), and multimedia type of data.
The SIP server 110 acknowledges with a 200 OK message 125 the request by the SIP subscriber 105 to be notified with information of a state of a resource or of an event. With the same 200 OK message 125, the SIP server 110 also acknowledges of being informed that the SIP subscriber 105 uploads information other than state of a resource or of an event.
The SIP server 110 notifies the SIP subscriber 105 with a NOTIFY message 130 of information of a state of a resource or of an event. The NOTIFY message 130 conveys or otherwise communicates from the SIP server 110 to the SIP subscriber 105 an information as requested 135. The information as requested 135 corresponds to the information requested with the SUBSCRIBE message 115 and defined by the information package 120. The SIP subscriber 105 acknowledges with a 200 OK message 125 being notified of, for example, a state of a resource or an event occurring.
Continuing with
As illustrated, both the SIP subscriber 105 and the SIP server 110 notify. Accordingly, it may be said that a notification is an act by either a notifier (e.g., the SIP server 110) or a subscriber (e.g., the SIP subscriber 105) sending a notify message (e.g., the NOTIFY message 130 or 140) to the subscriber or the notifier to inform, for example, a state of a resource located on the notifier or subscriber. For the purpose of discussion only, informing a subscriber (or SIP subscriber) with information is referred to hereinafter as “notifying” the subscriber of the information, and informing a notifier (or SIP server) with information is referred to hereinafter as “uploading” the information onto the notifier.
In a convenient embodiment, uploading information other than information of a state of a resource or of an event (e.g., the information as informed 145) onto a SIP server uses substantially the same NOTIFY message (at least in terms of format) for notifying a SIP subscriber with information of a state of a resource or of an event (e.g., the information as requested 135). It is important to distinguish, however, the NOTIFY message is being used for different purposes. The purpose of notifying with a NOTIFY message is to inform the SIP subscriber of a subscribed to state of a resource or event. The purpose of uploading with a NOTIFY message is to inform the SIP server of information not subscribed to and independent of a state of resource or event.
In a convenient embodiment, for SIP services requiring cooperation between end nodes, the foregoing requesting and notifying are performed in accordance with request for comments (RFC) 3265. Example of such services include automatic callback services (based on terminal state events), buddy lists (based on user presence events), message waiting indications (based on mailbox state change events), and PSTN and Internet Internetworking (PINT) status (based on call state events).
Information other than a state of a resource or of an event may not be required, but nonetheless may be useful to upload. Example embodiments upload information to provide, for example:
(1) a rating company with viewing behavior of internet protocol television (IPTV) customers. With internet group management protocol (IGMP) joins and leaves, example embodiments can determine what channel a customer watches at a certain point in time. Additionally, when a customer joins and leaves a channel (e.g., during commercials) or what channels are being watched more frequently;
(2) a rating company with web surfing behavior of high speed internet customers;
(3) a carrier with statistics on use of an optical network terminal (ONT )in a passive optical network (PON). For network planning purposes, the carrier can use example embodiments to understand how the ONT is being used; and
(4) in cases in which a field outage occurs, example embodiments may be used as a tool to send a post-mortem dump from the ONT out to, for example, a server for analysis.
Further it may be useful to upload information and to be notified of information during the same SIP dialog.
To summarize, in accordance with example embodiments of the present invention, a SIP subscriber exhibits the following features: i) receives a NOTIFY request or message from a SIP server, the NOTIFY requests contains information about the state of a resource in which the SIP subscriber is interested; and ii) generates a NOTIFY request or message for the purpose of uploading user, application, and system information onto the SIP server. Further, a SIP server: i) generates a NOTIFY request or message for the purpose of notifying a SIP subscriber of the state of a resource or of an event; and ii) processes a NOTIFY request or message uploading user, application, and system information onto the SIP server.
In this example, the SUBSCRIBE message 215 conveys or otherwise communicates from the SIP subscriber 205 to the SIP server 210 a video-rating information package 220. The video-rating information package 220 defines that the SIP server 210 notify the SIP subscriber 205 with: i) a state of the video viewing survey, ii) identify of the video viewing survey account, iii) a total number of videos viewed since last report, and iv) a number of videos viewed in the last report. The video-rating information package 220 also defines that the SIP subscriber 205 upload the SIP server 210 with: i) a total number videos viewed from last report, ii) a number of videos viewed in the last report, and iii) identity of the videos viewed.
The SIP server 110 acknowledges with a 200 OK message 225 the request by the SIP subscriber 205 to be notified with the information as requested and defined the video-rating information package 220. With the same 200 OK message 225, the SIP server 110 also acknowledges of being informed that the SIP subscriber 105 uploads the information as informed and defined the video-rating information package 220.
As the video-rating information package 220 of this example demonstrates, embodiments of the present invention inform a SIP server that a SIP subscriber uploads information other than information of a state of a resource or of an event. In this particular example, the SIP subscriber 205 informs the SIP server 210 that it uploads the identity of videos viewed by the user.
In this example, the SIP server 210 notifies the SIP subscriber 205 with: i) the state of the video viewing survey (viz., on), ii) the identity of the video viewing survey account (viz., sip:ONT@survey.example.com), iii) the total number of videos viewed since last report (viz., 0), and iv) the number of videos viewed in the last report (viz., 0).
The SIP subscriber 205 acknowledges with a 200 OK message 225 being notified with the foregoing.
In this example, the SIP subscriber 205 uploads the SIP server 210 with: i) the total number videos viewed from last report (viz., 2), ii) the number of videos viewed in the last report (viz., 0), and iii) the identity of the videos viewed (viz., 13784434989@youtube.com and 13684434990@youtube.com). The SIP server 210 acknowledges with a 200 OK message 225 being informed with the foregoing.
The SIP server 110 acknowledges with the 200 OK message 225 the request by the SIP subscriber 205 to be notified with the information as requested and defined the video-rating information package 220. With the same 200 OK message 225, the SIP server 110 also acknowledges of being informed that the SIP subscriber 105 uploads the information as informed and defined by the video-rating information package 220.
The SIP subscriber process 400 and the SIP server process 450 start (401) and (451), respectively.
The SIP subscriber process 400 determines (405) whether to upload information. If the SIP subscriber process 400 determines (405) to upload information, the SIP subscriber process 400 initiates (410) a subscription with a SUBSCRIBE message 411 (described above); else the SIP subscriber process 400 continues to determine (405) whether to upload information.
The SIP server process 450 determines (455) whether the SUBSCRIBE message 411 is received. Upon determining (455) that the SUBSCRIBE message 411 is received, the SIP subscriber process 400 and the SIP server process 450 participate in authenticating and authorizing (415) and (460), respectively, with authentication and authorization data 416. The SIP subscriber process 400 and the SIP server process 450 may also participate in accounting.
The SIP subscriber process 400 uploads (420) information with a NOTIFY message 421 (described above). In uploading (420) the information, the SIP subscriber process 400 may collect or otherwise retrieve the information to be uploaded with the NOTIFY message 421.
The SIP server process 450 determines (465) whether the NOTIFY message 421 uploading information is received. If the SIP server process 450 determines (465) that the NOTIFY message 421 is received, the SIP server process 450 configures (470) a data store (or database) on the basis of the SUBSCRIBE message 411 and stores the information uploaded with the NOTIFY message 421.
Recall, a SUBSCRIBE message conveys or otherwise communicates from a SIP subscriber to a SIP server, an information package. The information package defines a set of information to be uploaded or otherwise reported from the SIP subscriber to the SIP server. As such, the SIP server process 450 configures (and stores) (470) per an information package.
The SIP subscriber process 400 determines (425) whether to upload information. The SIP subscriber process 400 may determine (425) to upload information on a timed or scheduled basis. Alternatively, the SIP subscriber process 400 may determine (425) to upload information on an event basis. In a convenient embodiment, when or a time the SIP subscriber process 400 uploads (420) information or otherwise determines (425) to upload information may be defined by an information package.
If the SIP subscriber process 400 determines (425) there is no information to upload, the SIP subscriber process 400 then determines (430) whether to release or otherwise end the SIP dialog. If the SIP subscriber process 400 determines (430) to release the SIP dialog, the SIP subscriber process 400 un-subscribes (435) with a SUBSCRIBE message 436 with the time to expire set to zero; else the SIP subscriber process 400 continues to determine (425) whether there is no information to upload.
The SIP server process 450 determines (475) whether the SUBSCRIBE message 436 with the time to expire set to zero is received. If the SIP server process 450 determines (475) that the SUBSCRIBE message 436 with the time to expire set to zero is received, the SIP server process 450 acknowledges that the SIP subscriber process 400 has no information to upload and un-subscribes (480) with a 200 OK message; else the SIP server process 450 continues to determine (465) whether the NOTIFY message 421 uploading information is received.
Alternatively, the SIP server process 450 releases (not shown) the SIP dialog and notifies (not shown) the SIP subscriber process 400 with a NOTIFY message that synchronizes the current state of the subscribed subscription.
The SIP subscriber process 400 and SIP server process 450 end (440) and (485), respectively, with information in the SIP network communicated.
The upload unit 510, using a NOTIFY message 520, during the SIP dialog, uploads the SIP server with information other than a state of a resource or of an event as informed 525, while being notified by the SIP server with information of a state of a resource or of an event as requested 530. Although, a NOTIFY message is normally used by a SIP server to notify a SIP subscriber during a SIP dialog with information of the state of the resource or of the event, in a convenient embodiment, the NOTIFY message 520 communicates or otherwise conveys both the information other than a state of a resource or of an event as informed 525 and the information of a state of a resource or of an event as requested 530.
The information as informed 525 includes, for example, information about a user, application or system. The apparatus 500 may collect the information as informed 525. Alternatively, the information as informed 525 may be given by, for example, a user, application or system using or otherwise associated with the apparatus 500.
The notification unit, using a NOTIFY message 570, during the SIP dialog, notifies the SIP subscriber with information of a state of a resource or of an event as requested 575, while being uploaded by the SIP subscriber with information other than a state of a resource or of an event as informed 580. Although, a NOTIFY message is normally used by a SIP server to notify a SIP subscriber during a SIP dialog with information of the state of the resource or of the event, in a convenient embodiment, the NOTIFY message 570 communicates or otherwise conveys both the information of a state of a resource or of an event as requested 575 and the information other than a state of a resource or of an event as informed 580.
The information as requested 575 includes information required for services, such as automatic callback services (based on terminal state events), buddy lists (based on user presence events), message waiting indications (based on mailbox state change events), and PSTN, and Internet Internetworking (PINT) status (based on call state events).
While this invention has been particularly shown and described with references to example embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention encompassed by the appended claims.
It should be understood that the network, flow, and block diagrams may include more or fewer elements, be arranged differently, or be represented differently. It should be understood that implementation may dictate the network, flow, and block diagrams and the number of network, flow, and block diagrams illustrating the execution of embodiments of the invention.
It should be understood that elements of the network, flow, and block diagrams described above may be implemented in software, hardware, or firmware. In addition, the elements of the network, flow, and block diagrams described above may be combined or divided in any manner in software, hardware, or firmware. If implemented in software, the software may be written in any language that can support the embodiments disclosed herein. The software may be stored on any form of computer readable medium, such as random access memory (RAM), read only memory (ROM), compact disk read only memory (CD-ROM), and so forth. In operation, a general purpose or application specific processor loads and executes the software in a manner well understood in the art.