This invention relates in general to communications, and more particularly to a system and method for providing status notification for conventional telephony devices in a Session Initiation Protocol (SIP) environment.
The field of communications has become increasingly important in today's society. In particular, the ability to quickly and effectively interact with an individual (through any suitable communications media) presents a significant obstacle for component manufacturers, system designers, and network operators. This obstacle is made even more difficult due to the plethora of diverse communication technologies that exist in the current marketplace.
As new communication architectures (such as the Session Initiation Protocol (SIP) and the Voice Over Internet Protocol (VoIP)) become available to the consumer, new processes need to be developed in order to optimize this emerging technology. For example, VoIP and SIP have created a foundation for supporting enhanced services based on presence information, but communication systems often have a variety of devices and protocols that are unable to exchange such information natively. For presence information to be truly empowering, communication systems need to be able to collect and publish the status of all devices in a heterogeneous environment, regardless of hardware or protocol.
In accordance with the present invention, the disadvantages and problems associated with collecting and publishing status information in a heterogeneous communications environment have been substantially reduced or eliminated.
In accordance with one embodiment of the present invention, a method is provided for status notification. The method comprises receiving a subscription message from a first endpoint requesting status data for a second endpoint; detecting a change in status data of the second endpoint; and notifying the first endpoint of the change in status. The subscription message comprises a resource identifier associated with the second endpoint.
In accordance with another embodiment of the present invention, a system is provided for status notification. The system comprises a subscriber component for receiving a subscription message from a first endpoint requesting status data for a second endpoint, the subscription message comprising a resource identifier associated with the second endpoint; a subscription manager component for detecting a change in status data of the second endpoint; and a notifier component for sending a notify message to the first endpoint to describe the change in status.
An important technical advantage of certain embodiments of the present invention includes functionality for collecting status information, such as presence data, from a wide variety of devices in a heterogeneous communications environment. Other technical advantages of the present invention may be readily apparent to one skilled in the art from the following figures, descriptions, and claims. Moreover, while a specific advantage has been enumerated above, various embodiments may not include this enumerated advantage, or may include additional or alternative advantages not enumerated.
For a more complete understanding of the present invention and its advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
For purposes of teaching and discussion, it is useful to provide an overview of a communication system in which certain features of the present invention may be implemented. The following foundational information may be viewed as a basis from which the present invention may be properly explained. Such information is offered earnestly for purposes of explanation only and, accordingly, should not be construed in any way to limit the broad scope of the present invention and its potential applications.
Each domain may include suitable network equipment and appropriate infrastructure (e.g., switches, routers, LANs, gateways, etc.) to facilitate a SIP session. Domain 12a represents a residential location, which consists of a computer 40 and a telephone 42. Telephone 42 may be an Internet protocol (IP) telephone or a standard telephone operable to interface with computer 40 such that one or more calling capabilities are enabled through telephone 42. Accordingly, two types of telephones are illustrated in
Domain 12c represents a medium business entity, which consists of a LAN, router, a private branch exchange (PBX) or key system, several computers 40, and several telephones 42. Domain 12d is a large business entity, which consists of a LAN, a router, a switch, a line gateway, several computers 40, and several telephones 42. Note that domains 12c and 12d each include a communications platform 50, which is operable to communicate with any number of “endpoints” (e.g., telephones 42 and/or computer 40). In one embodiment, communications platform 50 is a Call Manager element, which is manufactured by Cisco Systems, Inc. of San Jose, Calif. The Call Manager element is SIP-enabled. In other embodiments, communications platform 50 may be any suitable unit operable to interface with end-user devices (e.g., telephone 42, computer 40, etc.).
Note that the term “endpoint” encompasses a myriad of potential devices and infrastructure that may benefit from the operations of communication system 10. Endpoints may represent a personal digital assistant (PDA), a cellular telephone, a standard telephone (which may be coupled to a personal computer), an IP telephone, a personal computer, a laptop computer, a mobile telephone, or any other suitable device or element (or any appropriate combination of these elements) that is operable to receive data or information.
It should also be noted that the internal structure of the endpoints are malleable and can be readily changed, modified, rearranged, or reconfigured in order to achieve their intended operations, as they pertain to certain features of the present invention. Note also that the endpoints can each include a link to communications platform 50, which is operable to communicate with any number of endpoints/user agents/devices. As indicated above, in one embodiment, communications platform 50 may be a Call Manager element, which is manufactured by Cisco Systems, Inc. of San Jose, Calif. The Call Manager element is SIP-enabled, and it can readily accommodate other protocols (e.g., H.323). In other embodiments, communications platform 50 is any suitable component (e.g. a gateway, a switch, a router, a bridge, a state machine, a processor, etc.) that is operable to interface with endpoints/end-users.
As outlined above, software and/or hardware may reside in communications platform 50 in order to achieve certain teachings of the present invention. However, due to its flexibility, communications platform 50 may alternatively be equipped with (or include) any suitable component, device, application specific integrated circuit (ASIC), processor, microprocessor, algorithm, read-only memory (ROM) element, random access memory (RAM) element, erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), field-programmable gate array (FPGA), or any other suitable element or object that is operable to facilitate the operations thereof. Considerable flexibility is provided by the structure of communications platform 50 in the context of communication system 10 and, accordingly, it should be construed as such.
Endpoints in communication system 10 communicate with each other and with communications platform 50 through various communication protocols, including SIP. Thus, for purposes of teaching and discussion, it is useful to provide some overview of the way in which the following invention operates in a SIP environment. The following foundational information may be viewed as a basis from which the present invention may be properly explained. Such information is offered earnestly for purposes of explanation only and, accordingly, should not be construed in any way to limit the broad scope of the present invention and its potential applications.
SIP is an application-layer control protocol that can establish, modify, and terminate multimedia sessions (conferences) such as Internet telephony calls. SIP can also invite participants to already existing sessions, such as multicast conferences. Media can be added to (and removed from) an existing session. SIP transparently supports name mapping and redirection services, which supports personal mobility. End users can maintain a single externally visible identifier regardless of their network location.
In general, SIP supports five facets of establishing and terminating multimedia communications: 1) user location (determining the end system to be used for communication); 2) user availability (determining the willingness of the called party to engage in communications); 3) user capabilities (determining the media and media parameters to be used); 4) session setup (“ringing” and establishment of session parameters at both called and calling party locations); and 5) session management (including transfer and termination of sessions, modifying session parameters, and invoking services).
A standard SIP platform does not provide services. Rather, SIP provides primitives that can be used to implement different services. For example, SIP can locate a user and deliver an opaque object to his current location. If this primitive is used to deliver a session description written in SDP, for instance, the endpoints can agree on the parameters of a session. SIP can function with SOAP, HTTP, XML, SDP, and a variety of other protocols to implement services.
Endpoints in a SIP environment communicate by exchanging messages, which may be either a “request” or a “response.” Generally, an endpoint (also sometimes referred to as a “user agent” or “UA” in a SIP environment) operates as either a User Agent Client (UAC) or a User Agent Server (UAS), although a single endpoint can (and often does) operate as both a UAC and a UAS. A UAC generates requests and sends them to one or more UASs. A SIP proxy, such as SIP proxy 46 in
SIP also provides a mechanism for endpoints to be notified of certain events within a SIP environment. In particular, SIP provides a SUBSCRIBE method and a NOTIFY method (which may include an event package). A first SIP endpoint (i.e. the “subscriber”) sends a SIP request with a SUBSCRIBE method to a second SIP endpoint (i.e. the “notifier”) to request state information about some resource. If the subscription is accepted, the notifier is responsible for sending SIP messages with the NOTIFY method to notify provide the requested state information to the subscriber. Notifications may be triggered by a certain event, a timer, or some other mechanism. For example, a first endpoint may send a SUBSCRIBE message to a second endpoint, requesting notification of changes in the second endpoint's state. If the second endpoint accepts subscription from the first endpoint, the second endpoint will then send a NOTIFY message when its state changes.
For purposes of teaching, it is assumed that communication platform 50 is configured to monitor the state of endpoints and other devices within communication system 10. Thus, communication platform 50 may detect state changes in one or more telephones 42. In accordance with certain teachings of the present invention, communication platform 50 also may be configured to accept SIP SUBSCRIBE requests and send corresponding SIP NOTIFY messages. In one embodiment of the present invention, SIP SUBSCRIBE requests may comprise a “resource identifier” that identifies a particular endpoint in communication system 10. A resource identifier may correspond to a line number, a uniform resource indicator (URI), or any other type of identifier within a given addressing scheme. In accordance with certain teachings of the present invention, communication platform 50 analyzes the resource identifier in a SUBSCRIBE request and compares it to a pre-configured pattern collection. Each pattern in the collection represents a set of addresses that are bound to different resources. In many cases, the addresses bind to an endpoint or a gateway. If communication platform 50 determines that the URI is associated with an endpoint (SIP or non-SIP) within its domain, then communication platform 50 acts on behalf of the endpoint to provide notifications. If the URI is associated with a SIP endpoint external to the domain of communication platform 50, then communication platform 50 generates a new SUBSCRIBE request and sends it to the appropriate network. Thus, given a SUBSCRIBE request with a resource identifier, communication platform 50 may identify an endpoint within communication system 10, maintain or forward a SIP subscription for the endpoint, and issue SIP NOTIFY messages describing an endpoint state—even if the endpoint is not a SIP endpoint.
To further illustrate certain features of the present invention, an embodiment of the invention is described below in which communication platform 50 is a Call Manager (CM) element. A “Sub/Not” component and event package classes in the CM support the SIP SUBSCRIBE and NOTIFY messages, as specified in IETF RFC 3265. The Sub/Not component provides the infrastructure to understand the semantics of the SIP SUBSCRIBE and NOTIFY messages. It also performs SIP protocol specific subscription handling, such as subscription renewal, response, notification, termination and timer handling.
Internal to CM, the SIP Sub/Not component consists of new SDL processes, “Subscriber” and “Notifier,” and event package objects. A “SIPStation” component creates the Notifier in order to process SIP Subscribe messages coming into CM, and to send out notifications. It also creates the Subscriber in order to send out SIP Subscribe requests from CM and to receive Notify messages coming into CM. A given Notifier or Subscriber SDL process will handle only one event package instance in a SIP subscription, since every event package instance corresponds to a separate subscription state machine.
Additionally, the Sub/Not SDL processes interface with other components of CM. For example, to obtain line status information, they interface with a Subscription Manager, which holds the list of current subscriptions, and brokers the line status on behalf of endpoints.
Although the present invention has been described with several embodiments, a myriad of changes, variations, alterations, transformations, and modifications may be suggested to one skilled in the art, and it is intended that the present invention encompass such changes, variations, alterations, transformations, and modifications as fall within the scope of the appended claims.