This first filed application for this invention.
Not Applicable.
This application relates in general to the delivery of enhanced communications services and, in particular, to a method and system for dynamic call anchoring to conserve subscriber termination equipment resource and bandwidth requirements.
Providing enhanced communications services to subscribers served by a public branch exchange (PBX) telephone network requires routing all calls associated those subscribers, including intra-network calls, to a converged services node (CSN) in a Voice over Internet Protocol (VoIP) or an Internet Protocol Multimedia Subsystem (IMS) network. Routing all such calls to the CSN can tax hardware resources at the public branch exchange (PBX) and/or their Internet Protocol (IP) bandwidth. It is well known that only certain calls require enhanced communications services. However, it is impossible to predict in advance whether any particular call will require, or continue to require, the use of enhanced communications services.
There therefore exists a need for a method and system that permits calls to be dynamically anchored in the CSN only while a requirement for enhanced communications service features exists.
It is therefore an object of the invention to provide a method and a system for dynamic call anchoring to limit PBX resource and IP bandwidth usage by dynamically anchoring calls in the CSN only while enhanced call services are required.
The invention therefore provides a method of dynamic call anchoring to support call continuity for a subscriber who roams between an enterprise network and another network, comprising: on call setup between a device operated by the subscriber and a device operated by another party, storing call context information about the call so that the call context information is available to be retrieved via a data network by an authorized application that requires the call context information when criteria are satisfied for a handover of the call form the enterprise network to the other network or from the other network to the enterprise network; when the criteria are satisfied, retrieving the call context information and formulating a call setup message to release the call from the one network and dynamically anchor the call in the other network without disconnecting the device operated by the other party, by using the call context information to invoke a replaces functionality in a switch in the enterprise network.
The invention further provides a system for dynamically anchoring selected calls to support call continuity for a subscriber who roams between an enterprise network and another network, comprising: an application client executed by communications devices operated by the subscriber, the application client being programmed to collect call context information respecting calls set up to/from the subscriber and to store the call context information in a data store; and a converged services node in a service provider network, comprising a dynamic call anchoring application programmed to: retrieve the call context information from the data store; to formulate a call setup message containing the call context information to invoke replaces functionality in a switch in the enterprise network when handover of a call to/from the subscriber is required; and, to forward the call setup message to the switch in the enterprise network.
The invention yet further provides an application client for dynamically anchoring selected calls to support call continuity for a subscriber who roams between an enterprise network and another network, comprising: program instructions for collecting call context information when a call is set up to/from the subscriber and program instructions for storing the call context information; and program instructions for launching a call setup message when criteria are satisfied for handover of a call from the enterprise network to the other network or handover of the call from the other network to the enterprise network.
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 should be noted that throughout the appended drawings, like features are identified by like reference numerals.
The invention provides a system and method for dynamic call anchoring to reduce cost and enable the provision of enhanced services to subscribers served by a PBX or an Internet Protocol public branch exchange (IP/PBX) with limited call handling resources and/or limited IP bandwidth. The system includes a mobile handset provisioned with an application client adapted to perform dynamic call anchoring in cooperation with a service provider converged services node (CSN). The mobile handset cooperates with but operates independently of the CSN. In one embodiment, the CSN is embodied as a Session Initiation Protocol (SIP) application server in a VOIP or an IMS network. As used in this document, the word “call” means any communications session, including but not limited to voice and video communications sessions.
The hosted VoIP network 10 is provisioned with the CSN 20, which acts as a SIP Application Server to provide inter-working functions for specific services between the PSTN/PLMN 14 and the VoIP networks 10, 12. The hosted VoIP network 10 further includes one or more feature servers 24 which receive incoming communications session requests from the session border controller(s) 16 via communications link(s) 36 in a manner well known in the art. The hosted VoIP network 10 further includes other SIP application servers 26 and media servers 28, both of which are known in the art. Each of the servers are connected to a core SIP Proxy 30a which has global knowledge of the hosted VoIP network 10 and controls intra-network routing. An inter-network routing server 32 provides routing control when calls must be routed to other connected networks 12, 14. Soft switches 34 perform soft switching services within the hosted VoIP network 10. The soft switches 34 are connected by signaling links 52 to PSTN/PLMN network 14 and are IP connected as indicated at 50 to the Media Gateways 18. Communication channel 58 connects the session border controllers 16 and the Media Gateways 18. Trunks 56 connect the Media Gateways 18 to the PSTN/PLMN 14. IP interfaces 38, 40, 42, 44, 46 and 48 respectively connect the feature servers 24, CSN 20, SIP application servers 26, media servers 28, inter-network routing server 32 and soft switches 34 to the core SIP Proxy 30a in a manner well known in the art. IP interfaces 36 and 37 connect the session border controllers 16 to the feature servers 24 and the core SIP Proxy 30a, likewise in a manner known in the art.
It should also be noted that the CSN 20 may be connected to the signaling network of the PSTN/PLMN 14 by any version or variant of Transaction Capabilities Application Part (TCAP) signaling links 22. This permits the CSN 20 to coordinate and control calls originating in the PSTN/PLMN 14, the hosted VoIP network 10, or other untrusted VoIP networks 12, provided that signaling routes provisioned in the respective networks are configured to route signaling messages to the CSN 20 as explained in detail in applicant's co-pending United States Patent Application Publication No. 20060142010 entitled Method, System and Apparatus for Call Path Reconfiguration filed Dec. 27, 2004, the specification of which is incorporated herein by reference.
A Serving Call Session Control Function (S-CSCF) 30b functions in a way similar to the core SIP Proxy 30 described with reference to
As described above with reference to
The application client 102 includes a user interface 104 provisioned with a user interface manager 110. The user interface manager 110 controls a microphone 112, a speaker 114, and a visual display 116 and accepts inputs from a keypad 118 in a manner well known in the art. The application client 102 further optionally includes a call setup and handover control 106, which is provisioned with a first line 120 (Line 1) and a second line 122 (Line 2). Line 1 (120) and Line 2 (122) are used to enable subscriber features such as “call waiting”, “3-way conference” and “call hold”, all of which are known in the art.
Network interfaces 108 support a cellular stack 124, and a packet network stack 126. The cellular stack 124 includes a set of layered protocols that are used in existing cellular networks. These protocols are used to send information to and receive information from an MSC via a base station using a cellular radio 128. Similarly, the packet network stack 126 includes a set of layered protocols for sending and receiving information via a packet network using a packet radio 130. The mobile handset 100 may be provisioned with a Subscriber Identity Module (SIM) 140 for GSM 2G/2.5G devices; a Universal Subscriber Identity Module (USIM) 140 for GSM 3G devices; or an embedded User Identity Module (UIM) 140 for 2G/2.5G CDMA devices.
As understood by those skilled in the art, in certain cellular modes a data channel is not available to transmit data messages while a call is in progress. The application client 102 therefore checks current call connection mode (216) to determine whether the current call connection mode is packet mode. If so, the application client 102 transmits the queued DCA message to the data store 98 (218) using an available data messaging channel. The application client 102 then determines (220) whether the criteria for handover to the public cellular network have been satisfied. As understood by those skilled in the art, those criteria may include: policy rules respecting packet/cellular use; and, availability and/or relative strength of the packet/cellular signals. If it is determined that the criteria for cellular handover have been satisfied, a call is launched (222) to the CSN 20 using a preprogrammed handover number, as will be explained below in detail with reference to
If it is determined at 216 that the current call mode is cellular mode, the application client determines (230) whether a data channel is available. If so, the queued DCA message is transmitted (232) using the available data channel. If not, the queued DCA message remains queued. The application client 102 then determines (234) whether the criteria for handover to the enterprise network (WiFi (packet mode)) have been satisfied. As explained above, the criterion/criteria may include any one or more of: policy rules respecting packet/cellular use; network connectivity; and/or relative signal strength of the respective packet and cellular network signals. If the criterion or criteria for WiFi handover has/have not been satisfied, the application client determines (242) whether the call has ended and if so transmits any queued messages including the DCA cleanup message, as explained above. If it is determined at 234 that the criteria for WiFi handover have been satisfied, the application client 102 switches to Wi-Fi mode and transmits (236) the queued DCA message to the data stored 98 using an available data messaging channel. The application client 102 then queries (238) the data store 98 for call context information using the available data messaging channel. When a response is received from the data store 98, the call context information is used to formulate a SIP INVITE message (240) to launch a WLAN call to the IP/PBX that serves the mobile handset 100. The SIP INVITE message contains a Replaces header or other convention for invoking replaces functionality of the IP/PBX, as will be explained below in more detail with reference to
If the received message is not a DCA cleanup message, call context information is extracted from the DCA message (314). The call context information is used to check for a match in current call context records (316) to determine whether the DCA message is redundant (318). If so, the DCA message is discarded (320). If not, the call context information is stored (322) for potential use in responding to queries received from the CSN 20 or the mobile handset 100, as explained above. In either case, the data store returns to monitoring its dated interface (300).
If a match is found (326), the CSN 20 receives the matching call context information in a query response from the data store 98 (330). The CSN then formulates a SIP INVITE message using the call context information (332), and sends the SIP INVITE message to connect the subscriber using a cellular/packet connection that replaces a packet/cellular connection currently being used by the subscriber (334), as will be explained below in more detail with reference to
B-Party responds to ringing of the mobile handset 100 by answering the call (411). This prompts the mobile handset 100 to return a SIP 200 OK message (412). The IP/PBX 90 responds with a SIP ACK message (414) and sends (416) a SIP 200 OK message to the IP telephone 88, which in turn responds with a SIP ACK message (418). A packet voice connection (420) is established between the IP telephone 88 and the mobile handset 100. In this example, Real Time Protocol (RTP) is used for the packet voice connection. After the packet voice connection is set up, the mobile handset 100 extracts call context information associated with the call and forwards it (422) to the data store 98, as explained above with reference to
At some time during the conversation between A-Party and B-Party, B-Party begins leaving the enterprise and moving out of Wi-Fi range (424) of the enterprise packet network. The mobile handset 100 determines that the criteria for public cellular network handover have been satisfied, as explained above with reference to
On receipt to the query message sent by the CSN 20, the data store 98 searches the call context records, as explained above with reference to
On receipt of the SIP INVITE message, the IP/PBX 90 responds with a SIP 100 trying message (440). After analyzing the SIP INVITE message, the IP/PBX 90 releases the packet voice connection to the packet radio 128 of the mobile handset 100 by sending a SIP BYE (442) to the mobile handset 100. The mobile handset 100 responds with a SIP 200 OK message (444) and the packet voice connection is torn down.
The IP/PBX 90 may refresh the call leg that connects the IP PBX 90 and A-party 88, the IP/PBX 90 then formulates a SIP 200 OK message containing the SDP of the IP/PBX 90 and forwards the message (446) to the CSN 20. Meanwhile, the mobile handset 100 formulates a DCA cleanup message which it sends (448) to the data store 98. The data store 98 responds by discarding the call context information associated with the torn down packet voice connection between A-Party and B-Party. Simultaneously, the CSN 20 responds to the IP/PBX 90 with a SIP ACK message (452), and sends a SIP 200 OK message containing the SDP of the IP/PBX 92 the service provider network 10 (454). The service provider network 10 responds with a SIP ACK message (456) and a voice connection is reestablished between A-Party and B-Party (458). As explained above with reference to
The service provider network 10 then formulates a SS7 signaling message to set up a call to the cellular radio of the mobile handset 100 and forwards the message (612) to the cellular network 14. The cellular network 14 in turn formulates a Setup message that is sent to the cellular radio of the mobile handset 100 (614) and B-Party answers the call (615). This causes the cellular network 14 to return an Answer message (616) to the SP network 10. As explained above, the SS7 signaling used to establish the cellular call is well known and is not illustrated in detail. On receipt of an Answer message (not shown), the service provider network 10 formulates a SIP 200 OK message containing the SDP of the cellular radio of the mobile handset 100 and sends the message (618) to the CSN 20. The CSN 20 returns a SIP ACK message (620) and sends a SIP 200 OK message containing the SDP of the cellular radio to the IP/PBX 90 (622). The IP/PBX 90 responds with a SIP ACK message (624) and sends a SIP 200 OK message containing the SDP corresponding to the mobile handsets cellular radio to the IP telephone 88 (626). The IP telephone 88 returns a SIP ACK message (628). Since the connection to the subscriber is a cellular connection, the CSN 20 serves as a proxy to the mobile handset 100 and formulates a DCA message containing the call context information associated with dialog 2 and sends (629) the DCA message to the data store 98. Meanwhile, the mobile handset 100 queues a DCA message containing the call context information (630). A voice connection (631) is thus established between A-Party and B-Party. The voice connection (631) is a packet connection between the IP telephone 88 and the service provider network 10 and a TDM connection between the service provider network 10 and the mobile handset 100.
During the conversation between A-Party and B-Party, B-Party moves (632) into Wi-Fi a range of the enterprise WLAN. The mobile handset 100 detects the WLAN signal and sends a registration message (633) to the IP/PBX 90. An authentication process ensues (634) and the mobile handset 100 is subsequently registered (not shown) with the IP/PBX 90, On registration, the IP data channel becomes available and the mobile handset 100 sends (635) queued DCA message(s) to the data store 98. Policy rules stored on the mobile handset 100 dictate in this example that the enterprise WLAN be used when it is available. Consequently, the application client 102 formulates a query message containing the A-Party number, and sends the query message (636) to the data store 98. The data store 98 processes the query message and returns (637) the dialog 2 information. The application client uses the dialog 2 information to formulate a SIP INVITE message (638) to invoke the replaces functionality, as explained above. The SIP INVITE message contains the call context information collected by the mobile device 100 at 630. In response to the SIP INVITE message, the IP/PBX 90 returns a SIP 100 Trying message (640).
The SIP INVITE message received at 638 instructs the IP/PBX 90 to release the cellular connection to the mobile handset 100. The IP/PBX 90 therefore formulates a SIP BYE message which it forwards (642) to the CSN 20. The CSN 20 responds with a SIP 200 OK BYE message (644), and sends a BYE message (646) to the service provider network 10. The service provider network 10 returns a SIP 200 OK BYE message (648), and sends a Release message (650) to the cellular network 14. The cellular network 14 sends a Disconnect message to the cellular radio of the mobile handset 100 (652), and the cellular voice connection between the service provider network 10 and the mobile handset 100 is torn down. The mobile handset 100 therefore sends a DCA cleanup message to the data store 98 containing dialog 2 information, and the data store deletes (not shown) any stored records associated with the torn down call. Details of the SS7 signaling for tearing down the TDM connection are not shown. Meanwhile, the IP PBX 90 formulates and sends a SIP 200 OK message containing the SDP of the A-Party telephone 88 to the packet radio of the mobile handset 100 (654). A packet voice connection (656) is thereby establish between A-Party and B-Party. In accordance with policy, the mobile handset 100 sends a DCA message (658) to the data store 98 containing the call context information that is stored in the call context records, as explained above.
While still engaged in the conversation with A-Party, B-Party begins to move out of the enterprise Wi-Fi range (722). When it is determined that the criteria for cellular handover have been satisfied (see
It should also be understood that alternatively PBX park and pickup functionality can be used to complete a transfer of a call between the WiFi and cellular modes of the mobile handset 100. In that case, the mobile handset 100 transfers the call to a pickup number in message sent at 724, and subsequently the CSN 20 forwards a SIP INVITE message to the pickup number in the message sent at 744.
Although the examples presented in
B-Party responds to ringing of the IP/WiFi device 99 by answering the call (811). This prompts the IP/WiFi device 99 to return a SIP 200 OK message (812). The IP/PBX 90 responds with a SIP ACK message (814) and sends (816) a SIP 200 OK message to the IP telephone 88, which in turn responds with a SIP ACK message (818). A packet voice connection (820) is established between the IP telephone 88 and the IP/WiFi device 99. In this example, Real Time Protocol (RTP) is used for the packet voice connection. After the packet voice connection is set up, the IP/WiFi device 99 extracts call context information associated with the call and forwards it (822) to the data store 98, as explained above with reference to
At some time during the conversation between A-Party and B-Party, B-Party decides to leave the enterprise (824). B-Party therefore uses the mobile handset 100 to launch a cellular call through the cellular radio 128 to a handover number associated with the CSN 20. A Setup message (828) for the cellular call is received by the public cellular network 14, which formulates a Setup message that is forwarded (830) through the public cellular network 14 to the service provider network 10. As explained above, the SS7 signaling required for the cellular call setup is well understood by those skilled in the art and not illustrated in detail. On receipt of the Setup message, the service provider network 10 formulates a SIP INVITE message containing the handover number and a service description protocol (SDP) corresponding to the cellular radio of the mobile handset 100, and forwards the SIP INVITE message (832) to the CSN 20. The handover number is associated with the dynamic call anchoring service. Consequently, the CSN 20 uses the calling party number to query (834) the data store 98 in order to retrieve call context information stored at 822.
On receipt to the query message sent by the CSN 20, the data store 98 searches the call context records, as explained above with reference to
The IP/PBX 90 then formulates a SIP 200 OK message containing the SDP of the IP/PBX 90 and forwards the message (846) to the CSN 20. Meanwhile, the IP/WiFi device 99 formulates a DCA cleanup message which it sends (848) to the data store 98. The data store 98 responds by discarding the call context information associated with the torn down packet voice connection between A-Party and B-Party. Simultaneously, the CSN 20 responds to the IP/PBX 90 with a SIP ACK message (852), and sends a SIP 200 OK message containing the SDP of the IP/PBX 92 the service provider network 10 (854). The service provider network 10 responds with a SIP ACK message (856) and a voice connection is reestablished between A-Party and B-Party (858). As explained above with reference to
The invention thereby provides simple, reliable and economical methods for permitting service providers to support dynamic call anchoring on an on-demand basis in order to provide enhanced call features to enterprise customers with limited telephone service termination hardware resources and/or IP bandwidth, without undue network overhead or pre-provisioning.
The invention also reduces capital investment and bandwidth service fee requirements on the part of service subscribers by dynamically anchoring calls in accordance with policy established to meet the specific needs of each enterprise subscriber.
It should be understood that although the invention has been described with reference to a dedicated data store 98, this is not necessary. For example, call context information can simply be synchronized between the mobile handset 100, or any other device used by the subscriber, and the CSN 20, in which case a dedicated data store 98 is not required. The synchronization of call context information between the mobile handset 100 and the CSN 20 can be accomplished using algorithms that are well known in the art.
It should also be understood that the above-described networks, equipment and algorithms are exemplary only, and that dynamic call anchoring in accordance with the invention can be supported between an enterprise network and any other network, including: another enterprise network; a service provider network; a PLMN; or the like. The scope of the invention is therefore intended to be limited solely by the scope of the appended claims.