This invention relates generally to telecommunications networks. More particularly, the invention concerns systems and methods for completing session initiation requests based on the use of external parties and triggers within the requests.
Internet telephony is becoming increasingly popular as a means to avoid the high cost of conventional wired-line telephone charges. It is also becoming popular due to additional features that may be provided over standard telephone usage, such as the availability of inexpensive multimedia sessions. Other features are also available due to the transfer of data in addition to voice messages, such as executing preferences in telephone software and call processing software. Further features may be provided through methods for initiating and processing call sessions.
Session Initiation Protocol (SIP) is a standard protocol for initiating an interactive user session involving multimedia elements such as video, games, voice, virtual reality and the like. In addition to initiating multimedia sessions, SIP can establish and maintain Internet telephone calls. SIP provides application layer signaling that normally runs over UDP or TCP. The SIP standard is described further in IETF RFC 2543 entitled “SIP: Session Initiation Protocol” dated March 1999. As a request-response protocol, SIP accepts requests from clients and delivers responses from servers with participants identified by URIs. SIP establishes call parameters at either end of the communication session and handles call transfer and call termination.
Call processing languages may be used to tailor and adapt call control services to user preferences based on context information such as location, time, availability, or any other personal context information. The Internet Engineering Task Force (IETF) is currently standardizing a call processing language known as “CPL,” thereby enabling such call processing functionality (see IETF Internet Draft “draft-ietf-iptel-cpl-06.txt,” which expires July 2002). The IETF approach, however, is restricted to location and time information. Additionally, in the IETF approach, the entire call processing logic has been assumed to be located in the SIP-compliant proxy.
Context-specific language extensions in CPL and the execution of context-specific functionality in an external trusted third party call processing entity have been discussed in related U.S. patent application Ser. No. 09/995,568 entitled “External Trusted Party Call Processing In SIP Environments.” As discussed therein, an “external-switch” element initiates a transfer of call processing to a URI specified as a parameter of the external-switch. The URI corresponds to an external trusted third party, which proceeds with context specific processing according to its programming.
The present invention provides methods for completing session initiation requests using triggers within the requests. The triggers cause the transfer of call processing from a call processing entity to one or more external third parties. As such, call processing of a session initiation request is transferred to a third party when an associated trigger is detected. The third party to which call processing is transferred may be identified within the session initiation request. Further, the third party may be a trusted third party with whom a user associated with the session request has a strong trust relationship. The call processing procedures performed at the external third party may be based on the trigger that caused the transfer.
The use of triggers in session initiation requests provides a large degree of flexibility in call processing, while keeping the processing at a call processing entity relatively simple. The triggers also permit the use of third parties, which may provide specialized processing and may perform processing based on private user context information. A call processing language, such as CPL, permits the introduction of actions for detecting the triggers and switches for transferring call processing based on the detection of associated triggers.
In one embodiment of the invention, the session initiation request is a session initiation protocol (SIP) INVITE message and the triggers are keywords contained in a sub-field of the original-destination field of the INVITE message. In such an embodiment, the call processing entity is a SIP-compliant proxy and the third parties are remote proxies.
In other embodiments of the invention, computer-executable instructions for implementing the disclosed methods are stored on computer-readable media. In one embodiment, computer-executable instructions are written in the language known as CPL. Other features and advantages of the invention will become apparent with reference to the following detailed description and figures.
The invention may be embodied in various forms. Referring now to
Additionally, suppose that the user in this example does not know the address for the entity he wishes to call, but that he has set up on third party 16 a database linking a keyword to a SIP address for various entities or persons he may desire to call. As such, third party 16 includes third party processing logic 18 that can evaluate a keyword provided in a SIP message and return the associated SIP address. In addition, terminal 12 includes programming for receiving input from the user that indicates a desire to place a call to an entity associated with, for example, the keyword “news.” After receiving such input, terminal 12 can create a SIP INVITE message 20 that includes a trigger 26, which includes the keyword “news.”
Call processing generally proceeds as follows, but will be discussed in more detail later. In general, to initiate the call, terminal 12 creates and transmits 22 INVITE message 20 to SIP Proxy 14. Upon reception of INVITE message 20, SIP Proxy 14 executes a user-specific CPL Script 24. In following the instructions of CPL Script 24, SIP Proxy 14 detects trigger 26 within SIP message 20, which causes an extension-switch 28 in CPL script 24 to be executed. Extension-switch 28 transfers call processing by forwarding SIP INVITE message 20 to third party 16. The message 20 is preferably encapsulated and transmitted via secure link. Upon reception of INVITE message 20, third party 16 evaluates keyword “news” and, according to its call processing logic 18, returns an address associated with the keyword to SIP Proxy 14 as part of an extension-result message 30. After SIP Proxy 14 receives extension-result 30, which includes a destination address, it continues call processing as it would for a standard SIP INVITE message.
As discussed, SIP INVITE message 20 may include one or more triggers 26. Trigger 26 may include a keyword, such as the example “news,” or it may include numerous other identifiers that are set up to be recognized as a trigger by a call processing entity. For example, triggers may include flags within certain fields of INVITE message 20. They could be keywords, specific addresses, time entries, registration information of the invited party, or numerous other examples. In accordance with the keyword example, one or more keywords are included in a subfield of the SIP INVITE message 20 in the “original-destination” or “destination” field. The keyword subfield may, for example, be a string in the format “keyword:word1 keyword:word2 keyword:word3 . . . .” In such an example, three keywords would be transmitted as part of the SIP INVITE message 20. The keywords may constitute one or more triggers depending on the programming of CPL script 24.
In the example of an outgoing session initiation request shown in
The call processing entity 14 may include a SIP-compliant proxy 14. As shown in
In order to support the approach of the present invention according to one variation, two language elements are added to CPL to define the underlying communication between the SIP-compliant proxy 14 and third party 16. CPL is used in embodiments described herein, but is not intended to be limiting. Further, the use of CPL in these embodiments is not intended to exclude any other call processing languages capable of interworking with SIP-compliant proxies or other call processing entities.
The first element added to CPL transfers the current call information to a third party 16, which performs, for example, keyword based call processing. The second element is a mechanism to return the results of the call processing performed by third party 16 to SIP proxy 14. The SIP proxy 14 is then able to use the results to complete call processing without processing, for example, keyword-related data. In another example, SIP proxy 14 avoids processing context-specific data, such as highly confidential personal data, thus ensuring that user's privacy is maintained and that CPL is kept simple. Highly confidential personal data can include, for example, password information related to a particular callee, health data such as current blood pressure and pulse rate, etc. Using informal syntax, the following two elements are defined in CPL to effect and support the present invention:
The format of the information transmitted to third party 16 is not specifically defined herein in order to keep it as generic as possible. However, a string-based mechanism is assumed hereinafter for ease of description. It should be further noted that SIP proxy 14 and third party 16 are not necessarily physically separate devices so that they may be realized in a common device. That is, SIP proxy 14 and third party 16 are logically separate entities, but they do not need to be implemented in physically separate devices. As a physically separate device, third party 16 may generally be configured similar to call processing entity 14. That is, as shown in
Referring specifically to
After third party 16 processes INVITE message 20, it returns an extension-result element 30, containing (based on the keyword) the modified call information. As shown in
In the context of the keyword example, the third party call processing is keyword specific so the extension-result 30 is a keyword result. For example, if only a keyword trigger is contained in SIP INVITE message 20, only an extension-switch related to the keyword will be executed. The SIP INVITE message 20 will therefore be transferred to a keyword-related URI (e.g. third party 16), which is represented by URL 54 specified in an associated extension-switch parameter 55. Based on the keyword, third party 16 performs processing logic and returns an address in the destination field of the SIP INVITE message. The processing may be more involved and may include the use of more than one trigger.
Suppose, for example, that third party call processing logic 18 also included an evaluation of context specific information, such as indications of the mood of the user or the current time. In such scenarios, the third party call processing is context-specific so the extension-switch is a context-switch. For example, suppose terminal 12 independently communicates with third party 16 to provide context specific information, such as health information related to the user's mood. Using the “news” keyword scenario, upon reception of the INVITE message 20 as part of extension-switch 28 and based on communications between terminal 12 and third party 16, third party 16 may determine that the user is more likely to appreciate news regarding lifestyle and art rather than the latest tragedy. As such, the extension-result 30 may return a context appropriate news address.
In another example, the current time could also be a context related factor considered by third party call processing logic 18. Additional keywords or triggers may also provide factors for use by third party call processing logic 18. Further, the results returned are context-specific so the extension-result is a context-result. It should be noted that other call processing functions other than those functions that are context-specific are possible. That is, the context-specific call processing described herein is exemplary and not intended to limit the uses or types of functions that can be processed by a third party call process entity.
Referring now to
As with the previous embodiment, based on inputs from a user, terminal 12 creates a SIP INVITE message 20. The INVITE message 20, however, includes a third party URI, such as URL 54, in addition to one or more triggers 26. Preferably, URL 54 is included in the original-destination or destination fields (not shown) of the INVITE message 20, which is transmitted to SIP proxy 14. Upon reception of INVITE message 20, SIP proxy 14 executes CPL script 24. Accordingly, XML interpreter 48 parses and translates the CPL language elements. Once trigger 26 is detected in INVITE message 20, extension-switch 28 is called and processed, thereby transferring call processing to third party 16. In processing extension-switch 28, extension-switch parameter 55 (see
As with the previous embodiment, third party 16 performs call processing according to third party call processing logic 18 and returns (extension-result 30) call processing to XML interpreter 48. The message transfers between SIP proxy 14 and third party 16 preferably include encapsulating the entire INVITE message 20. Alternatively, however, only portions relevant to third party processing may be transferred. Further, additional information, such as processing instructions, may be included in the encapsulated message.
The extension-result 30 may include the result (or action to be taken) or alternatively, a separate extension-result parameter may be defined. The action to be taken may then be decoded by SIP proxy 14. The decoding may be accomplished using a string comparison if the extension-result 30 and/or an extension-result parameter are in string form. Alternative decoding techniques include bit testing, bit manipulation, or any other character and arithmetic decoding techniques.
The extension-switch 28 and extension-result 30 parameters may be integrated in current SIP-compliant implementations, specifically in the CPL parser block. Additionally, the functionality to parse these elements can be added to the CPL language definition in XML parsers (interpreters). Finally, transfer capabilities between SIP proxy 14 and third party 16 may be implemented in SIP proxy 14.
Because the entire SIP call control message flow is standardized, the elements 28, 30 are easily detected.
Referring now to
While the present invention has been described in connection with the illustrated embodiments, it will appreciated and understood that modifications may be made without departing from the true spirit and scope of the invention. In particular, the invention may apply to different types of session initiation requests, call processing languages, call processing entities, and terminals. Additionally, the triggers may take various forms and the third parties may perform a wide variety of call processing.
The present application is a continuation of pending U.S. application Ser. No. 10/179,196, filed Jun. 26, 2002, which claims priority to U.S. Provisional Application Ser. No. 60/364,018 entitled “Trigger-Based Session Completion Using External Parties,” filed Mar. 15, 2002, the contents of all are incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
60364018 | Mar 2002 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10179196 | Jun 2002 | US |
Child | 12486904 | US |