# Patent

## Title
Method and system for providing talking call waiting in a SIP-based network

## Abstract

A method and system of an embodiment of the present invention may include receiving a call request directed to a called party, identifying announcement information associated with the call request, inserting the announcement information into a field of the call request and forwarding the call request.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This patent application claims priority to U.S. Provisional Patent Application No. 60/719,465, filed Sep. 22, 2005, which is hereby incorporated by reference herein in its entirety.
BACKGROUND INFORMATION
Session Initiation Protocol (SIP) is a call control signaling protocol for Internet Protocol (IP) networks. SIP is designed to be device-agnostic—that is, it is intended to provide a highly flexible call signaling capability that is not tailored to the capabilities of any particular device. Analog telephone signaling, on the other hand, is device-specific and highly constrained because of the historical legacy of the services delivered to the device. As a result, many call features available in traditional analog telephone devices are not easily integrated in a SIP-based network.



BRIEF DESCRIPTION OF THE DRAWINGS
In order to facilitate a fuller understanding of the exemplary embodiments of the present inventions, reference is now made to the appended drawings. These drawings should not be construed as limiting, but are intended to be exemplary only.
FIG. 1 is an exemplary SIP-based network system, according to an embodiment of the present invention.
FIG. 2 illustrates an exemplary implementation where a SIP Device is embedded in a FTTP network, according to an embodiment of the present invention.
FIG. 3 illustrates an exemplary implementation where a SIP Device is embedded in an ATA device attached to an IP network, according to an embodiment of the present invention.
FIG. 4 is a flowchart depicting a method of providing announcement text in a call request, according to an embodiment of the present invention.
FIG. 5 is a flowchart depicting a method of providing a call announcement to a user, according to an embodiment of the present invention.



DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
An exemplary embodiment of the present invention provides talking call waiting over a SIP based network to an analog based device. The talking call waiting may alert the called party by injecting an announcement into an audio signal to be heard by the called party. The announcement may include the caller's phone number, name and/or other call identifying data. In addition, the announcement may be a personalized message, voice signal and/or other audio. The announcement may be synthesized and may allow the user to respond using call waiting functionality.
FIG. 1 is an exemplary SIP-based network system, according to an embodiment of the present invention. System 100 illustrates an exemplary system for supporting SIP communication, in particular, talking call waiting. As illustrated, SIP Device 110 may be coupled to User Interface 114. SIP Device 110 may include a SIP User Agent 112 for communicating across IF Network 120 to a SIP Server 122. SIP Server 122 may provide communication to other SIP devices, as shown by SIP Element 130 and SIP element 132, through IP Network 124. TTS Server 126 may provide text to speech synthesis functionality to SIP elements through IP network 120. The various components of system 100 may be further duplicated, combined and/or integrated to support various applications and platforms. Additional elements may also be implemented in the system to support various applications. A SIP-based network may also include an IP network, packet switched based network or other type of network. The elements referred to in the Figures may include other network or packet switched based elements. For example, the elements referred to as “SIP” may include other network devices, elements, components, etc.
SIP Device 110 may represent a device that manages User Interface 114. User Interface 114 may include a traditional telephone and other data communication device using voiceband or other signaling, including but not limited to data modems, facsimile devices, teletype (TTY) equipment, etc. SIP Device 110 may contain SIP User Agent 112. SIP User Agent 112 may be integrated with SIP Device 110 or remote from SIP Device 110. SIP User Agent 112 may perform interworking between SIP signaling and user interface actions. For example, SIP User Agent 112 may manage an exchange of media (e.g., audio, etc.) between User Interface 114 and a Real Time Protocol (RTP) media stream of a media session set up by the SIP signaling. SIP Device 110 may originate calls to and receive calls from other users. SIP Device 110 may communicate through IP Network 120 to SIP Server 122.
SIP Server 122 may represent a SIP proxy or application server that acts on behalf of SIP Device 110. For example, SIP Server 122 may manage a SIP Address of Record (AOR) on behalf of SIP Device 110. SIP Device 110 may register with SIP Server 122 and send SIP signaling through SIP Server 122 to other SIP elements, such as SIP Element 130 and SIP Element 132. For example, a call to the SIP AOR may be delivered to SIP Server 122, which in turn delivers the call to SIP Device 110. SIP Server 122 may perform some service on behalf of SIP Device 110, or may simply forward SIP messages to and from SIP Device 110. SIP Device 110 communicates through IP Network 124 to SIP Element 130 and/or SIP Element 132.
TTS Server 126 may represent a Text To Speech (TTS) server that may respond to a request, such as a Text to Speech HTTP request, from SIP Device 110. For example, TTS Server 126 may respond to a HTTP Get request with a call waiting announcement text provided in the URL of the request from SIP Device 110. In response to the request, TTS Server 126 may synthesize an audio file containing the talking call waiting text and may return the audio file to SIP Device 110. In some embodiments, the audio file may be returned as streaming audio, according to another embodiment of the present invention. SIP Device 110 may insert the audio file into a signal sent to User Interface 114.
SIP Element 130 and SIP Element 132 may represent users with which the user of SIP Device 110 communicates. SIP Element may be a SIP Device, SIP Server, and/or other SIP enabled device. In addition, SIP Element may also represent a PSTN device that may be reached by a gateway that, directly or indirectly, acts as a SIP User Agent.
In the preferred embodiment, SIP User Agent 112 may receive an INVITE request from a SIP element while SIP Device 110 is currently engaged in a call with another SIP element. For example, SIP User Agent 112 may receive an INVITE request which may include a SDP (Session Description Protocol) offer which may be in compliance with RFC 3264, “An Offer/Answer Model with Session Description Protocol.” Other protocol standards may be used. A SIP User Agent 112 may construct an audio message which identifies the call using one or more characteristics of the call. For example, the audio message may be inserted into the audio signal to be heard by the called party. In some embodiments, this may interrupt the audio signal from the other SIP element currently engaged in a call with SIP Device 110 while the audio message is transmitted. The identifying characteristics of the audio message may include the caller's name, the caller's phone number, other identifying attributes of the caller and/or other data. Other examples contemplate a SIP Device enabling the personalization of announcements to user specified numbers. For example, a user may specify a ring tone to be associated with a specified phone number. A message may also announce a call without providing identifying characteristics of the call. In one or more embodiments, a SIP Server 122 may construct text representing the Talking Call Waiting (TCW) announcement and insert a URL referencing the TCW text into a constructed Alert Info Header of a INVITE request before sending the INVITE request to SIP Device 110. According to an embodiment of the present invention, SIP User Agent 112 may be configured with a cancel call waiting code. In such embodiments, SIP User Agent 112 may enable a user to dial the cancel call waiting service code as a prefix to an outbound call, following a service request or in conditions. For example, dialing a cancel call waiting service code prior to an outbound call may disable call waiting for the duration of the call. Dialing a cancel call waiting service code following a service request may provide a confirmation tone to a user, return a user to a current call and may respond to any subsequent call requests with a busy signal for the duration of the call.
FIGS. 2 and 3 show exemplary implementations of a SIP Device. FIG. 2 illustrates an exemplary implementation where a SIP Device is used in connection with a Fiber-to-the-Premises (FTTP) network, according to an embodiment of the present invention. FIG. 3 illustrates an exemplary implementation where a SIP Device is embedded in an Analog Telephony Adaptor (ATA) which is used in connection with a traditional (e.g., electrical) IP-enabled access network, according to an embodiment of the present invention. Other implementations with other devices and/or networks may also be realized.
As shown in FIG. 2, User Interface 114 may be connected to SIP Device 110. SIP Device 110 may be embedded in Optical Network Terminal (ONT) 210 or otherwise integrated. ONT 210 may be connected to an Optical Line Terminal (OLT) 230 via a Passive Optical Network (PON) 220 acting as an access network for communications between ONTs 210 and OLTs 230. According to an exemplary application, OLT 230 may be located at a Central Office. ONT 210 may be connected over PON 220 to the OLT 230, which in turn passes that connection through transport IP network 120 to SIP Server 122. According to an exemplary application, OLT 230 may maintain an IP connection between SIP Device 110 on the ONT 210 and the transport IP network 120. In this exemplary application, the OLT 230 may not process SIP signaling, but rather allows SIP signaling to pass through to its destination.
FIG. 3 illustrates SIP Device 110 embedded in an Analog Telephone Adapter (ATA) 310 in a home or other location that subscribes to a broadband service delivered via an access network, such as DSL or cable modem service. The ATA device may be attached to a network, such as a broadband data network, IP network and/or other network. User Interface 114 may be connected to SIP Device 110. ATA 310 may be connected to Broadband Router 320, which in turn may be connected to a DSL or cable modem 330, which in turn may be connected to access network 340. Access network 340 may provide connectivity to transport IP network 120 through which the SIP Device 110 may communicate with SIP Server 122. In one example, as shown in FIG. 3, data multiplexer (MUX) 350 may provide a point of connection for transmissions between access network 340 and the transport IP network 120.
The various components of systems 200 and 300 as shown in FIGS. 2 and 3 may be further duplicated, combined and/or integrated to support various applications and platforms. Additional elements may also be implemented in the systems described above to support various applications.
FIG. 4 provides a flow chart depicting an exemplary method for enabling an announcement associated with a call request, according to an embodiment of the present invention. According to one or more embodiments, flow chart 400 may begin at step 410.
At step 420, a call request to a called party may be received. In one or more embodiments, the call request may be an INVITE request received over a SIP based network, for example, on behalf of a calling party. The INVITE request may be a SIP INVITE request that complies with RFC 3261 and may include a Session Description Protocol (SDP) offer which may be in compliance with RFC 3264, “An Offer/Answer Model with Session Description Protocol.” In some embodiments, other protocol standards may be used. The call request may be received by a SIP server associated with the called party on a SIP based network.
At decision block 430, it may be determined whether the called party has the call waiting service enabled. For example, the SIP server associated with the called party may query certain information associated with the called party to determine if the called party has subscribed to the call waiting service. Such information may be stored at SIP server or located elsewhere and accessible via the IP network. If the called party does not have the call waiting service enabled, processing may continue to step 470 for normal call processing. Otherwise, the process continues to step 440. In some embodiments, the determination of this decision block 430 may be omitted.
At step 440, announcement information may be associated with the call request. According to an embodiment of the present invention, announcement information may be identified or constructed at a SIP server or other network element. The announcement information may be based on and/or contain identifying criteria of a calling party. By way of non-limiting example, identifying criteria of a calling party may include a calling party name, a calling party number, call origin location or other call request attributes. In some embodiments, announcement information may contain text of a generic announcement of the incoming call, such as “Incoming call from <phone number>.”.
According to other exemplary embodiments, the announcement may be customized. For example an announcement such as “Bob's cell phone” may be announced with a certain call. A SIP server or other network device may store a mapping of user provided audio labels which may be associated with phone numbers so that the phone number or other identifying criteria of an incoming call may be associated with a customer provided audio label. In some embodiments, a user may be able to dial a phone number, type in an identifying phone number to be labeled, be prompted for a message and then record a message to be played when a call is received from the identified number. In some embodiments, a user may be provided with a phone menu to choose among recording customized announcements for user provided phone numbers, choosing ring tones for user provided phone numbers, choosing sound effects for user provided numbers, and/or choosing other audio signals to identify user provided numbers. Other examples may contemplate providing a web based interface to allow a user to specify ring tones, sound effects, customized announcements and/or other audio signals for specified numbers. Users may specify a default audio signal for numbers not customized. In other embodiments, a device at the customer premises or other location may store a mapping of user specified phone numbers to customized announcements. In addition, the announcement may be personalized by the calling party, receiving party or other entity.
At step 450, a resource address may be identified. A resource address may be a URL or other address identifying a server accessible on an IP network. For example, the address may be the address of a text-to-speech server available over the IP network. In such a case, the URL may contain the announcement text to be submitted to the text to speech server. In one or more embodiments, a SIP server may construct the announcement text. According to other examples, an additional resource address such as a URI referencing a notification alert pattern may be identified. In one or more embodiments a SIP server may construct the URI. In other examples, the address may identify a server capable of providing a ring tone associated with a phone number. Other resource addresses may provide call identifying attributes specified in a URL.
At step 460, the announcement information may be added to the call request. In some embodiments, the SIP server may add the announcement information to a header of the call request. According to an embodiment, the call request may be a SIP INVITE request containing an “alert info” field in the header (such as specified in RFC 3261), and the added announcement information is inserted in the “alert info” field. In some embodiments, the announcement information is a URL containing an address of a text-to-speech server and announcement text associated with the call request. In other embodiments the announcement information is a URL of a server resource accessible via the IP network (e.g., a server capable of providing).
At step 470, the call request may be sent. In some examples, the call request may be sent by a SIP server to a SIP device on an IP network. Other implementations may be realized.
At step 480, the process may end.
FIG. 5 is a flowchart depicting a method of providing a call announcement to a user, according to an embodiment of the present invention. According to one or more embodiments, flow chart 500 may begin at step 510.
At step 520, a call request may be received. In some embodiments, a SIP device may receive a call request from a SIP server. A SIP device may be engaged in an active call with a SIP element on an IP network. By way of non-limiting example, SIP Device 110 may be engaged in an active call with SIP Element 130. SIP Element 132 may initiate a call by sending an INVITE request to SIP Device 110. A SIP Server 122 may receive a SIP invite request from SIP Element 132 and may forward the request to SIP Device 110. For example, an INVITE request may be a SIP INVITE request that complies with RFC 3261 and may include an SDP (Session Description Protocol) offer which may be in compliance with RFC 3264, “An Offer/Answer Model with Session Description Protocol.” Other protocol standards may be used. SIP server 122 may include in the INVITE request announcement text, a resource address, and/or other information, as described above with respect to FIG. 4. Alternatively, SIP server 122 may not include any additional information.
At step 530, the call request may be examined. For example, a SIP device may examine the header of a call request to determine if call announcement text or a resource address are provided. In the preferred embodiment, the SIP device examines the “alert info” field of the header of the SIP INVITE message. In some embodiments, SIP device may determine whether a talking call waiting feature has been enabled (for example, by determining whether configuration information of the SIP device specifies the talking call waiting service). This determination may be alternative to or in combination with examining the call request, depending on the implementation.
At decision block 540, if no information is provided in an “alert info” field of the call request and/or talking call waiting is not enabled, the process may flow to step 594. At decision block 540, if information is provided in an “alert info” field of the call request and/or talking call waiting is enabled, the process may flow to step 550.
At step 550, the information in the call request is retrieved. In at least one example, a SIP device may identify a URL in the “alert info” field of the call request which contains an address of a resource, announcement text and/or other information. In other examples, the SIP device may retrieve caller identification information from the call request (e.g., calling party number, calling party name, etc.).
At decision block 560, if the device state is capable of playing audio associated with the call request the process may proceed to step 570. If the device state is not capable of playing audio associated with the call request the process may continue at step 594. For example, the SIP device 110 may include configuration information that identifies the capabilities of user interface 114.
At step 570, audio associated with the call request is retrieved. In one or more embodiments, a SIP Device may process a talking call waiting URL in an “alert info” field of an invite request. Processing the talking call waiting URL may include a SIP Device sending an HTTP request to a Text To Speech (TTS) server identified by the URL. The HTTP request may be a GET request containing talking call waiting announcement text in the URL which the TTS server may process. In some embodiments where talking call waiting has been enabled and a SIP Device receives an invite request without talking call waiting announcement text in an “alert info” field of the request, the SIP Device may construct talking call waiting text from the calling party information included in the SIP Invite request. In some embodiments where talking call waiting has been enabled and a SIP Device receives an invite request without address information associated with a resource in an “alert info” field of the request, the SIP Device may construct a resource address based on configuration information stored at the SIP Device (e.g., a Text To Speech server 126 designated for use by the SIP device).
A TTS Server may process the announcement text received from the SIP device. According to an embodiment of the present invention, the TTS Server may be a separate TTS Server located on the network and identified by the URL supplied in the call request. According to other embodiments of the present invention, the SIP Server may contain TTS capabilities and may process TTS requests. By way of non-limiting example, TTS Server 126 may process the TCW text received from SIP device 110 and may synthesize an audio file, which it then sends to the SIP device. In other examples of the present invention, ITS Server 126 may return streaming audio.
In yet another embodiment, the address may specify an address of a server capable of returning a ring tone, customized greeting, sound effect, or other personalized greeting which a user has associated with the phone number of the incoming call. In such a case, the URL received by the server may include information identifying the requested audio or capable of use by the server in identifying the desired audio.
At step 580, audio associated with the call request may be played. By way of non-limiting example, SIP Device 110 may receive an audio file returned from TTS Server 126 and may interrupt the audio signal of the call from SIP element 130 while the received audio file is played to user interface 114, or intermix the audio from the audio file with the audio signal of the call from SIP element 130. Where the audio is provided in streaming format, the streamed audio may likewise be provided to user interface 114, either as an interruption to the audio signal of the call with SIP element 130 or intermixed with the audio signal of the call with SIP element 130.
At step 590, a user may decide to ignore the talking call waiting audio played at user interface 114 or may respond to the talking call waiting audio using call waiting functionality provided by user interface 114. By way of non-limiting example, the user of user interface 114 may respond to the alert notification using a “hookflash” facility of user interface 114, which may be interpreted by SIP device 110 as an indication to connect the user interface 114 to the new call associated with the received call request.
If the process is routed to step 594, an alternate alerting pattern may be provided. In some embodiments, an default alerting pattern is provided if there is no address provided in a call request. In some examples, a default alerting pattern may be an alert which is provided if a user interface device is in a state not capable of playing audio. By way of non-limiting example, a user interface device may receive an alert tone.
At step 592, the process may end.
In one or more embodiments a server receiving a call request may forward the call request for processing to a second server containing SIP capabilities as well as text to speech functionality. In such embodiments, the second server may handle all TTS requests as well as communication with a called SIP device.
In the preceding specification, various preferred embodiments have been described with reference to the accompanying drawings. It will, however, be evident that various modifications and changes may be made thereto, and additional embodiments may be implemented, without departing from the broader scope of the invention as set forth in the claims that follow. The specification and drawings are accordingly to be regarded in an illustrative rather than restrictive sense.

## Claims

1. A method, comprising:
providing a web based interface to receive an announcement customization, comprising an audio label, from a called party for a number;
receiving a call request directed to the called party;
identifying, using at least one computer processor, announcement information comprising the announcement customization associated with the call request;
determining that the call request is associated with a number having the announcement customization;
customizing the announcement information based at least in part on the announcement customization;
identifying an identifier referencing a notification alert pattern, wherein the identifier is a URL referencing the notification alert pattern;
adding the identifier to the announcement information;
inserting the announcement information into a field of the call request wherein the field is an alert info field in a header of a SIP INVITE message; and
forwarding the call request.

2. The method of claim 1 wherein the call request is received at a server associated with the called party.

3. The method of claim 1, further comprising:
determining that the called party has a call waiting service enabled.

4. The method of claim 1 wherein the announcement information further comprises one or more attributes associated with a calling party.

5. The method of claim 4 wherein the one or more attributes of the calling party comprise one or more of: a caller number, a caller name and a caller location.

6. The method of claim 1 further comprising:
identifying an address referencing a resource for synthesizing audio for the audio label; and
adding the address to the announcement information.

7. The method of claim 6 wherein the address is a URL referencing a server with text to speech synthesis functionality.

8. The method of claim 1, wherein identifying the announcement information includes generating announcement text based on one or more attributes of the calling party and including the announcement text in the announcement information.

9. The method of claim 8 wherein the audio retrieved is an alerting pattern identified by a URL in the call request.

10. The method of claim 8 further comprising:
determining a user interface device state; and
sending notification information corresponding to the device state.

11. The method of claim 1, wherein identifying the announcement information includes selecting a notification alert pattern based on one or more attributes of the calling party, and including an indicator of the notification alert pattern in the announcement information.

12. A non-transitory computer readable media comprising: code to perform the acts of the method of claim 1.

13. A method comprising:
transmitting via a web based interface announcement customizations for one or more numbers;
receiving a call request from a packet-switched network;
identifying, using at least one computer processor, announcement information associated with the call request wherein identifying the announcement information comprises identifying information located in an alert info field of the call request and wherein further the announcement information includes a URL;
determining that the call request is associated with a number having a customized announcement comprising an audio label specified by and recorded by a called party;
customizing the announcement information based at least in part on the customized announcement;
identifying an identifier referencing a notification alert pattern, wherein the identifier is a URL referencing the notification alert pattern;
adding the identifier to the announcement information;
retrieving audio associated with the announcement information from a network element communicatively coupled to the packet-switched network; and
providing the audio to a user interface.

14. The method of claim 13 wherein the URL references a server with text to speech synthesis functionality.

15. The method of claim 13 wherein retrieving the audio comprises sending an HTTP request to a server with text to speech functionality, the HTTP request including announcement text, and receiving a synthesized audio file generated from the announcement text contained in the HTTP request.

16. A non-transitory computer readable media comprising: code to perform the acts of the method of claim 13.

17. A system comprising:
a web based interface to receive announcement customizations for one or more numbers;
a server communicatively coupled to an IP network to:
receive a SIP INVITE directed to a called party from the IP network,
determine that the called party has a call waiting service enabled,
identify announcement information based on calling party information in the SIP INVITE,
customize the announcement information in the event the SIP INVITE is associated with a number having a customized announcement, wherein the customization is based at least in part on a customization specified by the called party for a number associated with a calling party and comprises at least in part an audio label;
identify an identifier referencing a notification alert pattern, wherein the identifier is a URL referencing the notification alert pattern;
add the identifier to the announcement information;
insert the announcement information comprising announcement text corresponding to the audio label into the SIP INVITE into an alert info field,
transmit the SIP INVITE; and

a SIP device associated with the called party and coupled to the server, the SIP device including a SIP user agent, to:
receive the SIP INVITE from the server,
identify the announcement information in the SIP INVITE,
retrieve audio information from a network element communicatively connected to the IP network based on the announcement information, and
provide the audio information to a user interface connected to the SIP device, wherein the audio information is a conversion of the announcement text to speech.

18. The system of claim 17 wherein the audio information comprises one or more audio files.