Method, system, and computer-readable medium for optimized inter-session border controller (SBC) attended call transfer with transfer target session reuse
The method optimizes SIP call transfer by using custom headers and signaling across multiple SBCs to reuse existing media sessions, addressing the challenge of session load balancing and ensuring seamless call transfer.
Patent Information
- Application Number
- JP2023543166
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-01-19
- Filing Date
- 2021-12-17
- Publication Date
- 2025-11-18
- Estimated Expiration
- 2041-12-17
AI Technical Summary
Existing SIP call transfer methods fail when session load balancing is implemented across multiple Session Border Controllers (SBCs, as the SBC handling the original call does not know about the media session between the transferor and the transfer target, preventing the reuse of the existing media session.
A method and system for optimized inter-SBC attended call transfer that involves establishing media sessions between transferor and transferee, and transferor and transfer target, using SIP INVITE messages with custom headers to identify and reuse existing media sessions across multiple SBCs, and signaling to establish a direct media path between them.
Enables successful attended call transfer even when sessions are distributed across different SBCs, optimizing call transfer by reusing existing media sessions and maintaining session continuity.
Smart Images

Figure 0007772803000001 
Figure 0007772803000002 
Figure 0007772803000003
Abstract
Description
[Technical Field]
[0001] Priority claim This application claims the benefit of priority to U.S. Patent Application Serial No. 17 / 152,731, filed January 19, 2021, the disclosure of which is incorporated herein by reference in its entirety.
[0002] Technical Field The subject matter described herein relates to call transfer, and more particularly, to a method, system, and computer-readable medium for optimized inter-session border controller (SBC) attended call transfer with transfer target session reuse. [Background technology]
[0003] background Call transfer (or call forwarding) is a mechanism for reassigning a telephone call from one phone to another. Every transfer event involves three parties, known as user agents in a voice over Internet protocol (VoIP) network. These three parties are: transferor: the party initiating the call transfer; transferee: The party whose call or session is being connected or transferred to the transfer target; and Transfer target: The new party being brought into the conversation with the transferee.
[0004] For voice over IP calls, call transfer can be achieved using the session initiation protocol (SIP) REFER method. The SIP REFER method is specified in Internet Engineering Task Force (IETF) Request for Comments (RFC) 3515. One of the uses of the SIP REFER method is call transfer. For example, IETF RFC 3515 states: The SIP REFER method can be used to enable many uses, including call transfer. For example, if Alice is on a call with Bob and Bob decides he needs to speak to Carol, Alice can instruct her SIP user agent (UA) to send a SIP REFER request to Bob's UA, providing Carol's SIP contact information. Assuming Bob gives it permission, Bob's UA will attempt to call Carol using the contact information. Bob's UA will then report whether it was successful in contacting Alice's UA. In the above citation, IETF RFC 3515 indicates that the SIP REFER method can be used to implement call transfers.
[0005] To transfer a call via the SIP REFER method, Blind or unattended call transfers; There are two ways to do this: attended call forwarding.
[0006] In blind or unattended call transfer, the transferring party provides the transfer target's contact information for the transferee to initiate a call with the transfer target directly. In attended call transfer, the transferring party places the transferee on hold, establishes a call with the transfer target to inform the transfer target of the impending transfer, places the target on hold, and then proceeds with the transfer by sending a SIP REFER message to the transferee with a Replaces header field in the Refer-To header. The information in the Replaces header field is then conveyed by the transferee to the transfer target as part of an INVITE request for the new call. The transfer target uses this information to identify its session with the transferring party and correlate the session with the new call.
[0007] The SBC performs the signaling used to establish and tear down media sessions between user agents, including the signaling used to perform attended call transfers. In one type of attended call transfer, the SBC can use the SIP Re-INVITE procedure to reuse the media session between the transferor and the transfer target rather than requiring the transferee to establish a new media session with the transfer target. However, the Re-INVITE approach works only if the SBC using the Re-INVITE procedure to perform the call transfer knows about the media session between the transferor and the transfer target. If the network implements session load balancing, the SBC for the original call between the transferee and the transferor may be different from the SBC for the call between the transferor and the transfer target. In such a case, the SBC that established the original call between the transferee and the transferor does not know about the call between the transferor and the transfer target and therefore cannot use the Re-INVITE procedure to reuse the call between the transferor and the transfer target, which may result in the call transfer attempt failing.
[0008] In light of these challenges, there is a need for improved methods, systems, and computer-readable media for attended call transfer in networks that provide session load balancing between SBCs. Summary of the Invention
[0009] overview A method for optimized inter-Session Border Controller (SBC) attended call transfer with transfer target session reuse is provided. The method includes establishing, at a first SBC, a first media session between a transferor and a transferee. The method further includes establishing, at a second SBC, a second media session between the transferor and the transfer target in response to a Session Initiation Protocol (SIP) INVITE message initiated by the transferor and routed to the second SBC by a session router. The method further includes receiving, at the first SBC, a SIP REFER message initiated by the transferor and including a dialog ID associated with the second media session, and in response, determining that the dialog ID does not correspond to a media session currently handled by the first SBC and sending a SIP INVITE message to multiple SBCs, including a second SBC in a load sharing group with the first SBC, the SIP INVITE message including the dialog ID associated with the second media session. The method further includes receiving, at the second SBC, the SIP INVITE message, recognizing the SIP INVITE message as requesting an attended call transfer to the transfer target, and in response, signaling with the transfer target and the first SBC to reuse the second media session to establish a media session between the transferee and the transfer target.
[0010] According to another aspect of the subject matter described in this specification, establishing the first media session includes establishing the first media session in response to a SIP INVITE message originating from the forwarded party and forwarded by a session router to a first SBC, wherein the session router uses call distribution logic to select the first SBC to handle the first media session.
[0011] According to another aspect of the subject matter described herein, a SIP INVITE message initiated by a forwarder is sent to a second SBC based on call distribution logic of a session router.
[0012] According to another aspect of the subject matter described herein, receiving the SIP REFER message includes receiving a SIP REFER message having a Replaces header that includes a dialog ID associated with the second media session.
[0013] According to another aspect of the subject matter described herein, sending a SIP INVITE message including a dialog ID associated with the second media session includes adding a custom header to the SIP INVITE message indicating that the SIP INVITE message is for initiating an attended call transfer that reuses the second media session.
[0014] According to another aspect of the subject matter described herein, signaling with the first SBC and the transfer target to reuse the second media session to establish a media session between the transferee and the transfer target includes sending a SIP Re-INVITE message to the transfer target, receiving a success response from the transfer target, and sending the success response to the first SBC in response to receiving the success response from the transfer target.
[0015] According to another aspect of the subject matter described herein, a method for optimized inter-SBC attended call transfer includes establishing a media session between a first SBC and a second SBC. Note that even though signaling is performed to establish the media session between the first SBC and the second SBC, media packets may not be exchanged over the inter-SBC media session. In other words, "establishing a media session" as described herein includes signaling to set up the media session, but does not necessarily include exchanging media packets over the media session.
[0016] According to another aspect of the subject matter described in this specification, a method for optimized inter-SBC attended call transfer using target session reuse includes, at a first SBC, replacing an out-dialog of a first media session with an out-dialog of a media session between the first SBC and a second SBC, and, at the second SBC, replacing an in-dialog of a second media session with an in-dialog of a media session between the first SBC and the second SBC.
[0017] According to another aspect of the subject matter described in this specification, a method for optimized inter-SBC attended call transfer using target session reuse includes, at a first SBC, sending a BYE message to a transferor and releasing resources associated with an out-of-dialog session of the first media session.
[0018] According to another aspect of the subject matter described in this specification, a method for optimized inter-SBC attended call transfer using targeted session reuse includes, at a second SBC, sending a BYE message to a transferor and releasing resources associated with an in-dialog of the second media session.
[0019] According to another aspect of the subject matter described herein, there is provided a system for optimized inter-Session Border Controller (SBC) attended call transfer using transfer target session reuse. The system includes a first SBC for establishing a first media session between a transferor and a transferee. The system further includes a second SBC for establishing a second media session between the transferor and the transfer target in response to a Session Initiation Protocol (SIP) INVITE message initiated by the transferor and routed to the second SBC by a session router. The first SBC is configured to receive a SIP REFER message from the transferor, the SIP REFER message including a dialog ID associated with the second media session, and in response, determine that the dialog ID does not correspond to a media session currently handled by the first SBC, and to send a SIP INVITE message to multiple SBCs, including the second SBC in a load sharing group with the first SBC, the SIP INVITE message including the dialog ID associated with the second media session. The second SBC is configured to receive the SIP INVITE message, recognize the SIP INVITE message as requesting an attended call transfer to the transfer target, and in response, signal with the transfer target and the first SBC to reuse the second media session to establish a media session between the transferee and the transfer target.
[0020] According to another aspect of the subject matter described herein, the first SBC is configured to establish a first media session in response to a SIP INVITE message originating from a forwarded party and forwarded to the first SBC by a session router, and the session router uses call distribution logic to select the first SBC to handle the first media session.
[0021] According to another aspect of the subject matter described herein, the second SBC is configured to establish a second media session in response to a SIP INVITE message originating from the forwarding party and forwarded to the session router, and the session router uses call distribution logic to select the second SBC to handle the second media session.
[0022] According to another aspect of the subject matter described herein, the SIP REFER message includes a Replaces header that includes a dialog ID associated with the second media session.
[0023] According to another aspect of the subject matter described herein, the first SBC is configured to include a dialog ID associated with the second media session in a custom header of the SIP INVITE message, the custom header indicating that the SIP INVITE message is for initiating an attended call transfer that reuses the second media session.
[0024] According to another aspect of the subject matter described herein, when signaling with the first SBC and the transfer target to reuse the second media session to establish a media session between the transferee and the transfer target, the second SBC is configured to send a SIP Re-INVITE message to the transfer target, receive a success response from the transfer target, and, in response to receiving the success response from the transfer target, send a success response to the first SBC.
[0025] According to another aspect of the subject matter described herein, a first SBC and a second SBC are configured to establish a media session between the first SBC and the second SBC.
[0026] According to another aspect of the subject matter described in this specification, the first SBC is configured to replace out-dialog of the first media session with out-dialog of the media session between the first SBC and the second SBC, and the second SBC is configured to replace in-dialog of the second media session with in-dialog of the media session between the first SBC and the second SBC.
[0027] According to another aspect of the subject matter described in this specification, the first SBC is configured to send a SIP BYE message to the transferor to release resources associated with the out-dialog of the first media session, and the second SBC is configured to send a SIP BYE message to the transferor to release resources associated with the in-dialog of the second media session.
[0028] According to another aspect of the subject matter described herein, a non-transitory computer-readable medium is provided having stored thereon executable instructions that, when executed by a processor of the computer, control the computer to perform a plurality of steps. The plurality of steps includes establishing, at a first Session Border Controller (SBC), a first media session between a transferor and a transferee. The plurality of steps further includes establishing, at a second SBC, a second media session between the transferor and a transfer target in response to a Session Initiation Protocol (SIP) INVITE message initiated by the transferor and routed to the second SBC by a session router. The plurality of steps further includes receiving, at the first SBC, a SIP REFER message initiated by the transferor and including a dialog ID associated with the second media session, and in response, determining that the dialog ID does not correspond to a media session currently handled by the first SBC, and sending a SIP INVITE message to multiple SBCs, including a second SBC in a load sharing group with the first SBC, the SIP INVITE message including the dialog ID associated with the second media session. The steps further include, at the second SBC, receiving the SIP INVITE message, recognizing the SIP INVITE message as requesting an attended call transfer to the transfer target, and in response, signaling with the transfer target and the first SBC to reuse the second media session to establish a media session between the transferee and the transfer target. The subject matter described herein may be implemented in hardware, software, firmware, or any combination thereof. Thus, the terms "function," "node," or "module" as used herein refer to hardware that may also include software and / or firmware components for implementing the described features.In one exemplary implementation, the subject matter described herein may be implemented using a computer-readable medium having stored thereon computer-executable instructions that, when executed by a processor of the computer, control a computer to perform a number of steps. Exemplary computer-readable media suitable for implementing the subject matter described herein include non-transitory computer-readable media, such as disk memory devices, chip memory devices, programmable logic devices, and application-specific integrated circuits. In addition, computer-readable media implementing the subject matter described herein may be located on a single device or computing platform, or may be distributed among multiple devices or computing platforms.
[0029] BRIEF DESCRIPTION OF THE DRAWINGS The subject matter described herein will now be described with reference to the accompanying drawings. [Brief explanation of the drawings]
[0030] [Figure 1] FIG. 10 is a message flow diagram illustrating example messages exchanged for attended call transfer using a single SBC where the single SBC relays a REFER message from the transferor to the transferee to refer the transferee to the transfer target. [Figure 2] FIG. 10 is a message flow diagram illustrating example messages exchanged for attended call transfer using a single SBC where the single SBC initiates a session with the transfer target instead of relaying the REFER message to the transferee. [Figure 3] FIG. 10 is a message flow diagram illustrating example messages exchanged for attended call transfer using a single SBC, where the single SBC uses a Re-INVITE procedure to reuse a previously established session between the transferor and the transfer target. [Figure 4]A message flow diagram illustrating example messages exchanged for a failed attended call transfer when the initial session and the session with the transfer target are on different SBCs. [Figure 5] FIG. 2 is a block diagram illustrating an SBC and the dialog maintained by the SBC to perform an attended call transfer. [Figure 6] FIG. 10 is a message flow diagram illustrating example messages exchanged for attended call transfer with target session reuse when the original session and the session with the transfer target are on different SBCs. [Figure 7] 1 is a block diagram illustrating two SBCs and a dialog associated with an attended call transfer when the media sessions associated with the attended call transfer are on different SBCs. [Figure 8] 10 is a flowchart illustrating an example process for attended call transfer with targeted session reuse by two SBCs, from receiving a REFER message to sending a Re-INVITE message. [Figure 9] 1 is a flowchart illustrating an example process for attended call transfer with targeted session reuse by two SBCs from receiving a response to an INVITE message until the call is transferred. DETAILED DESCRIPTION OF THE INVENTION
[0031] Detailed Description The subject matter described herein relates to a method, system, and computer-readable medium for attended call transfer when multiple SBCs are involved and sessions with transfer targets are reused. For purposes of illustrating the subject matter described herein, an original call is initiated by "A" to "B," who then transfers the call to "C." In this case, "A" is the transferee, "B" is the transferring party, and "C" is the transfer target. Note that the proposed solution would function similarly if "A" instead of "B" initiated the transfer. In that case, the roles of "A" and "B" would be swapped. Also, the terms "call" and "session" are used interchangeably. Additionally, the terms "transferor," "transferee," and "transfer target" are intended to refer to fixed or mobile communication devices used by end users to establish media sessions and perform attended call transfer. In the example described herein, attended call transfer occurs between user equipment (UE). Although the term UE is typically used to refer to a mobile device, the methods and systems for inter-SBC attended call transfer using target session reuse described herein are applicable when any one of the transferor, transferee, and transfer target is a fixed VoIP phone.
[0032] An SBC is a network element deployed in a VoIP network to monitor and control the signaling and media streams in Internet telephone calls. Because all signaling passes through the SBC, it inherently supports SIP call transfer procedures by transparently routing call-related signaling to and from user agents. As described in detail below, existing SIP IP call transfer procedures involve a single SBC. However, when a session router is used to load balance sessions between SBCs, the new session may reside on a different SBC, and existing SIP call transfer procedures do not support attended call transfer with targeted session reuse without the modifications described herein.
[0033] Figure 1 is a signaling message flow diagram showing example SIP messages exchanged for attended call transfer involving a single SBC. Referring to Figure 1, UE A100 initiates a call with UE B102 via SBC 104. The call setup process begins at line 1, where UE A100 sends a SIP INVITE message to SBC 104. SBC 104 recognizes UE B102 as the called party and sends the SIP INVITE message to UE B102 at line 2. At line 3, UE B102 sends a SIP 200 OK message to UE A100 via SBC 104, and UE A100 responds with an ACK (acknowledgement) message. After the exchange of the SIP 200 OK and ACK messages, a media session or call is set up between UE A100 and UE B102 via SBC 104, as evident from line 4.
[0034] At line 5, UE B102 initiates the establishment of a call with the transfer target by sending a SIP INVITE message to SBC 104. SBC 104 recognizes UE C106 as the called party and sends a SIP INVITE message to UE C106 at line 6. At line 7, UE C106 sends a SIP 200 OK message to UE B102 via SBC 104. After line 7, a second session or call is established between UE B102 and UE C106 via SBC 104, as evident from line 8.
[0035] At line 9 of the message flow diagram, UE B102 initiates a call reference from UE A100 to UE C106 by sending a SIP REFER message to UE A100 via SBC104. At line 10, SBC104 sends the SIP REFER message to UE A100. At line 11, UE A100 sends a SIP 202 message to UE B102 via SBC104. At line 12, SBC104 sends the SIP 202 message to UE B102.
[0036] At line 13 of the message flow diagram, UE A100 begins the process of establishing a media session with UE C106 by sending a SIP INVITE message to UE C106 via SBC 104. At line 14, SBC 104 sends the SIP INVITE message to UE C106. The SIP INVITE message includes a Replaces header indicating that the media session between UE B102 and UE C106 should be replaced with the newly established media session between UE A100 and UE C106.
[0037] At line 15, SIP 200 OK and ACK messages are exchanged, and after line 15, as evident from line 16, a media session is established between UE A 100 and UE C 106 via SBC 104.
[0038] At lines 17 and 18, UE A 100 notifies UE B 102 about the transfer (NOTIFY), and the resources associated with the media session between UE A and UE B are released. At line 19, SBC 104 and UE C 106 signal to release the resources associated with the media session between UE B 102 and UE C 106.
[0039] Thus, in Figure 1, attended call transfer is performed using a single SBC and the SIP REFER method. In Figure 1, after receiving the SIP REFER message at line 10, UE A100 sends an INVITE message to begin the process of connecting a media session with the transfer target. In some cases, the SBC is intelligent enough to participate in the call transfer to optimize the process by acting on behalf of one or more parties in the call transfer.
[0040] For example, when an SBC receives a REFER from B on an A-B session, the SBC can optionally generate an INVITE towards "C" instead of A. This allows the call to be transferred without the need to proxy the REFER back to A. Upon successful establishment of a SIP dialog with C, the SBC internally replaces B with C in the existing A-B session, thus connecting C to A without explicitly notifying A about the call transfer. After the transfer is successful, the SBC also optionally releases the dialog towards B on the A-B session. This applies to both blind and attended call transfers, and the associated signaling for the attended call transfer case is shown in Figure 2.
[0041] Referring to FIG. 2 , in lines 1-3, UE A100 and UE B102 exchange signaling messages via SBC 104 to establish a media session between UE A100 and UE B102 through SBC 104. For example, in line 1, UE A100 sends a SIP INVITE message to SBC 104. SBC 104 recognizes UE B102 as the called party and sends a SIP INVITE message to UE B102 in line 2. In line 3, UE B102 sends a SIP 200 OK message to UE A100 via SBC 104, and UE A100 responds with an ACK message. After the exchange of the SIP 200 OK and ACK messages, a media session or call is set up between UE A100 and UE B102 via SBC 104, as is evident from line 4.
[0042] In lines 5-7, UE B102 signals with SBC104 to establish a media session between UE B102 and UE C106 via SBC104 for attended call transfer. In line 5, UE B102 sends a SIP INVITE message to SBC104. SBC104 recognizes UE C106 as the called party and sends a SIP INVITE message to UE C106 in line 6. In line 7, UE C106 sends a SIP 200 OK message to UE B102 via SBC104. After line 7, a second session or call is established between UE B102 and UE C106 via SBC104, as evident from line 8.
[0043] At line 9 of the message flow diagram, UE B102 sends a SIP REFER message to SBC104, and at line 10, SBC104 sends a SIP 202 accepted message to UE B102. This differs from the call flow in FIG. 1, in which the REFER message is forwarded to UE A100. At line 11, SBC104 sends an INVITE message to UE C106 on behalf of UE A100 to establish a media session between UE A100 and UE C106. At line 12, UE C106 acknowledges receipt of the INVITE message by sending a SIP 200 OK message to SBC104, and SBC104 responds with an ACK message. After the exchange of the 200 OK and ACK messages at line 12, a media session is established between UE A100 and UE C106 via SBC104, as is evident from line 13.
[0044] At line 14, SBC 104 signals UE B 102 to inform UE B 102 about the transfer. At lines 15 and 16, UE B 102 ends the call with UE A 100 and the associated media resources are released. At lines 17-19, UE C 106 signals SBC 104 to release the resources associated with the media session between UE B 102 and UE C 106. Thus, Figure 2 illustrates the case where attended call transfer is performed using a single SBC, where the single SBC sends the INVITE message on behalf of the transferee.
[0045] In another example of attended call transfer, the two calls involved in the transfer (i.e., the A-B call and the B-B call) are established to the same SBC. The SBC can optionally send a Re-INVITE towards C on the already established B-B session to reuse the existing session instead of sending a new INVITE which would then create a new session. This is done to accommodate some user agents that do not support the Replaces header in the INVITE message. After the call transfer, the SBC can also optionally release the call leg towards B on the A-B session as well as the B-C session. This method is illustrated in Figure 3 and is called the Re-INVITE approach.
[0046] 3, to establish a call between UE A 100 and UE B 102 via SBC 104, the signaling on lines 1-4 is the same as in Figures 1 and 2. Similarly, the signaling and media on lines 5-8 establish a call between UE B 102 and UE C 106 via SBC 104.
[0047] Similar to Figure 2, in lines 9-10, UE B102 sends a REFER message to SBC104 to refer UE A100 to UE C106. In line 11, the signaling in Figure 3 differs from the signaling in Figure 2. In line 11 of Figure 2, SBC104 sends a new INVITE to UE C106 on behalf of UE A100 to start a new media session between UE A100 and UE C106. In line 11 of Figure 3, SBC104 sends a Re-INVITE to UE C106 to reuse resources in SBC104 associated with the existing media session between UE B102 and UE C106.
[0048] 3, UE C106 accepts the Re-INVITE by sending a SIP 200 OK message to SBC 104, which responds with an ACK message. After line 12, a media session is set up between UE A100 and UE C106 via SBC 104. The media session between UE A100 and UE C106 reuses resources of SBC 104 that were previously used for the media session between UE B102 and UE C106.
[0049] Lines 14-16 are the same as the corresponding signaling in Figure 2 when UE B 102 and SBC 104 signal to release resources associated with the media session between UE A 100 and UE B 102. In lines 17 and 18, SBC 104 signals with UE B 102 to release resources associated with the media session between UE B 102 and UE C 106. Thus, Figure 3 shows the case of attended call transfer using a single SBC when the single SBC uses the Re-INVITE method.
[0050] The Re-INVITE approach shown in Figure 3 works well as long as the two calls are associated with a call forwarding or established through the same SBC. However, in some cases, a pair of SBCs is deployed behind a session load balancer / router or session router (SR) that is used to distribute new incoming calls between the SBCs. This poses a problem for the scenario described above, where the A-B and B-C calls are established through different SBCs. In this case, if an SBC receives a REFER from B on an A-B session to forward to C, and the SBC does not host the B-C session, the SBC cannot proceed with the Re-INVITE approach. This is shown in Figure 4. When this occurs, the SBC will typically send an error response, transparently relay the REFER to its intended recipient, A, or fall back to its standard behavior of sending a new invite to C. In any of these cases, the media session between B and C cannot be reused because the SBC receiving the REFER message has no knowledge of the referenced media session.
[0051] 4, at line 1, UE A 100 initiates a call with UE B 102 by sending an INVITE message to a session router (SR) 400. The session router 400 performs its load balancing algorithm and determines that the call should be sent to an SBC 104. Therefore, at line 2, the SR 400 sends an INVITE message to the SR 104.
[0052] At line 3, SBC 104 sends an INVITE message to UE B 102, the called party. At line 4, UE B 102 sends a 200 OK message to UE A 100 via SBC 104, and UE A 100 responds with an ACK message. After line 4, a call or session is established between UE A 100 and UE B 102, as evident from line 5.
[0053] At line 6, UE B102 initiates a call with UE C106, the transfer target for call forwarding. The process begins by sending an INVITE message to SR400. SR400 determines that the inter-BC call should be carried on SBC402, so at line 7, SR400 sends an INVITE message to SBC402, which forwards the INVITE message to UE C106 at line 8. At line 9, UE C106 sends a 200 OK message to UE B102 via SBC402, and UE B102 responds with an ACK message. After line 9, a media session is set up between UE B102 and UE C106 via SBC402, as is evident from line 10. However, it should be noted that SBC104 has no knowledge of this media session.
[0054] At line 11, UE B 102 sends a REFER message to SBC 104 to refer the transferee party to the transfer target (UE A 100 to UE C 106). The REFER message includes a Replaces header to refer A to C. Since SBC 104 does not know about BC-to-BC calls, at line 12, SBC 104 responds with an error message that terminates the call transfer.
[0055] Users of SBCs, such as network operators and enterprises, expect the Re-INVITE approach to work even in load-balanced cases because the SBC and SR are viewed as a single unit, especially when all of the equipment is provided by the same supplier. The subject matter described herein provides an optimized solution to facilitate the Re-INVITE approach for attended call transfers when the two calls involved in the transfer are established through different SBCs located behind a session router that load balances sessions between the SBCs.
[0056] The subject matter described herein includes methods for establishing a new call between two SBCs that anchor two calls involved in a call transfer and exchanging custom information between the SBCs to enable attended call transfer using a Re-INVITE approach. To perform attended call transfer between SBCs using the Re-INVITE approach, the SBCs act as back-to-back user agents to manage sessions between the UEs or user agents involved in the call. For each call or session, the SBC maintains two dialogs: an in-dialog with the calling party and an out-dialog with the called party. This is shown in FIG. 5. Referring to FIG. 5, the SBC 104 maintains two sessions: session 1 500 between UE A 100 and UE B 102 and session 2 502 between UE B 102 and UE C 106. In session 1 500, the SBC 104 maintains an in-dialog 504 with UE A 100 and an out-dialog 506 with UE B 102. Similarly, for session 2 502, SBC 104 maintains an in-dialog 508 with UE B 102 and an out-dialog 510 with UE C 106.
[0057] 6 is a message flow diagram illustrating attended call transfer using multiple SBCs and the Re-INVITE method. Referring to FIG. 6, in lines 1-4, UE A100 signals UE B102 to establish a call between UE A100 and UE B102 via SBC 104. After line 1, SR 400 selects SBC 104 for the first call. The corresponding call or media session is shown by line 5.
[0058] In lines 6-9, UE B 102 signals with UE C 106 to establish a media session or call between UE B 102 and UE C 106. In this example, similar to Figure 4, SR 400 routes the second call to SBC 402. The second call or media session is indicated by line 10.
[0059] At line 11 of the message flow diagram, UE B 102 sends a REFER message to SBC 104. The REFER message includes a Replaces header to refer A to C. When SBC 104 receives the REFER message from UE B 102 on the A-B session for an attended call transfer to C, SBC 104 first tries to find a matching in-dialog corresponding to the B-C session using the dialog identifier from the Replaces header in the REFER message. If SBC 104 cannot find a matching dialog or session, SBC 104 will send a new INVITE message to all SBCs in the same load balancing or load sharing group as SBC 104. The INVITE message will carry a custom header indicating this is a special call to trigger an attended call transfer towards the B-C session. The session description protocol (SDP) portion of the INVITE is derived from the SDP portion of the INVITE message received by SBC 104 for the A-B session and may include SBC 104 media information such as IP address and port.
[0060] The presence of the custom header will serve as an indication to the receiving SBC to treat the INVITE message as a special INVITE and not route the call further. If the SBC receiving the special INVITE message does not host a call matching the dialog ID in the Replaces header, the SBC may send an error response message.
[0061] If the receiving SBC has an in-dialog that matches the dialog identifier in the Replaces header, the SBC will initiate a Re-INVITE process that refers A to C. The Re-INVITE will carry the same SDP information received from SBC 104.
[0062] Returning to the message flow of Figure 6, at line 13, SBC 104 determines that it does not have an in-dialog matching the dialog identified in the REFER message and sends an INVITE message to all SBCs in the load sharing group. SBC 402 is the only SBC that contains an in-dialog matching the dialog in the Replaces header of the INVITE message. Therefore, at line 14, SBC 402 sends a Re-INVITE message to UE C 106 to begin the process of connecting the media session or out-dialog for the media session at line 10 to the in-dialog for the media session with UE A at line 5. At line 15, UE C 106 responds with a 200 OK (success) response message.
[0063] Upon receiving the success response from UE C106 at line 15 of the message flow diagram, SBC402 replaces the inter-BC session in-dialog with the new session in-dialog being created between SBC402 and SBC104, hereafter referred to as the S1-S2 session, and sends a success response to SBC104 at line 16 to complete the establishment of the S1-S2 session, along with the session description carried in the SDP part of the 200 OK received from UE C106 at line 15. Transparently exchanging the session description in the SDP part of the 200 OK message between SBC104 and UE C106 establishes a direct media path between SBC104 and UE C106, thus optimizing the media route. As shown by line 17, the establishment of the S1-S2 session completes the media session between SBC104 and SBC402, or between UE A100 and UE C106 via SBC104 and SBC402.
[0064] Figure 7 shows the dialog states during and after the call transfer. As described in the previous paragraph, upon receiving a successful response from UE C106 at line 15 of the message flow diagram of Figure 6, SBC402 replaces the IN dialog of the BC-to-BC session with the IN dialog of the S1-S2 session. Similarly, upon receiving a successful response from SBC402 at line 16 of the message flow diagram, SBC104 replaces the OUT dialog in the A-B call with the OUT dialog from the S1-S2 call. SBC104 will then continue signaling exchanges (i.e., NOTIFY and BYE) with UE B102 on the A-B call in the same manner as it would have if both calls were hosted on SBC104. After creating a media path 700 between UE A100 and UE C106, SBC104 signals UE B102 to delete or release resources associated with the OUT dialog for the A-B session. Similarly, once the in-dialog on the BC-to-BC session is replaced with the in-dialog from the S1-S2 session, the SBC 402 may release the resources associated with the in-dialog for the BC-to-BC session.
[0065] 8 and 9 are flowcharts illustrating an example process performed by SBCs 104 and 402 when performing an attended call transfer when the original call and the call associated with the transfer target are established on separate SBCs. Referring to FIG. 8, the process begins when SBC 104 receives a REFER message from UE B. As described above with respect to line 11 of FIG. 6, the REFER message may include a Replaces header. SBC 104 extracts a dialog ID from the Replaces header. In step 802, SBC 104 determines whether the dialog ID extracted from the Replaces header is in the list of existing dialogs handled by SBC 104. If a dialog is found, this means that the call to which the caller is referred is handled by SBC 104, and control proceeds to step 804, where REFER processing without an inter-SBC call is performed.
[0066] In step 802, if the dialog from the Replaces header is not found in the list of existing dialogs handled by the SBC 104, control proceeds to step 806, where the SBC 104 creates a new INVITE message with custom header information that identifies the INVITE message as a request for an inter-SBC attended call transfer.
[0067] In step 808, the SBC 104 adds an SDP part to the INVITE message containing the IP address and port of the SBC 104 or party A (the transferee in these examples). In step 810, the SBC 104 adds a custom header with the dialog ID extracted from the REFER message to the INVITE message. In step 812, the SBC 104 sends the INVITE message to all SBCs in the same load sharing group as the SBC 104. SBCs receiving the special INVITE message will perform a lookup in their respective lists of dialogs to determine whether they are handling the dialog present in the Replaces header of the INVITE message. If the dialog ID is not present in the list of dialog IDs handled by the SBC, the SBC will respond with a 4XX response. If the dialog ID from the Replaces header of the special INVITE message is found in the list of dialogs handled by the SBC, the receiving SBC signals the sending SBC to complete the call transfer.
[0068] The SBC 402 receives the INVITE message and determines whether a custom header is present in step 814. If a custom header is not present, control proceeds to step 815, where normal call processing occurs on the SBC to establish the session indicated by the INVITE message. If a custom header is determined to be present in step 814, control proceeds to step 816, where the SBC 402 extracts the dialog ID from the custom header.
[0069] In step 818, the SBC 402 determines whether the dialog ID extracted from the Replaces header exists in the list of dialogs handled by the SDP. If the dialog is not found, control proceeds to step 820, where the SBC 402 sends a 4XX error response. If the dialog is found, control proceeds to step 822, where the SBC 402 sends a Re-INVITE message carrying the SDP information received from the SBC 104 to the forwarding target.
[0070] 9, the process begins when SBC 402 receives a response from UE C 106. In step 824, SBC 402 determines whether the response indicates success in response to the Re-INVITE message. If the response does not indicate success, control proceeds to step 826, where SBC 402 sends a 4XX error response to SBC 104. In step 828, SBC 402 removes the call between S1 and S2 by releasing resources.
[0071] If in step 824 the SBC 402 determines that a successful response was received from the forwarding target, control proceeds to step 832, where the SBC 402 links the out-dialog of the inter-BC call with the in-dialog of the S1-S2 call. In step 824, the SBC 402 optionally sends a BYE message to UE B 102 on the in-dialog of the inter-BC call to release resources. In step 834, the SBC 402 sends a successful response to SBC 104 carrying the SDP information received from UE C 106.
[0072] Upon receiving a response to the special INVITE message, the SBC 104 determines whether the response indicates success in step 836. If the response does not indicate success, control proceeds to step 838, where the SBC 104 determines whether responses have been received from all SBCs in the load sharing group.
[0073] If responses have not been received from all SBCs, control proceeds to step 840, where SBC 104 waits for INVITE responses from other SBCs in the load sharing group. If responses have been received from all SBCs in step 838 and none of the responses indicate success, control proceeds to step 842, where SBC 104 sends a NOTIFY message with a 4XX error code to UE B 102 indicating that the call transfer was not successful.
[0074] In step 836, if the response to the special INVITE message is successful, control proceeds to step 844, where the SBC 104 links the out-dialog of the S1-S2 call with the in-dialog of the A-B call. Control then proceeds to step 846, where the SBC 104 sends a NOTIFY message to UE B 102 indicating that the transfer was successful. In step 848, the SBC 104 optionally sends a BYE message to UE B 102 on the out-dialog of the A-B call to release resources associated with that dialog.
[0075] It will be understood that various details of the presently disclosed subject matter can be changed without departing from the scope of the presently disclosed subject matter. Further, the foregoing description is for purposes of illustration only, and not for purposes of limitation.
Claims
1. 1. A method for optimized inter-Session Border Controller (SBC) attended call transfer with transfer target session reuse, the method comprising: establishing a first media session between a forwarder and a forwardee at a first SBC; establishing, at a second SBC, a second media session between the transferor and a transfer target in response to a Session Initiation Protocol (SIP) INVITE message initiated by the transferor and routed by a session router to the second SBC; receiving, at the first SBC, a SIP REFER message initiated by the forwarder and including a dialog ID associated with the second media session, and in response determining that the dialog ID does not correspond to a media session currently being handled by the first SBC, and sending a SIP INVITE message to a plurality of SBCs, including the second SBC, in a load sharing group with the first SBC, wherein the SIP INVITE message includes the dialog ID associated with the second media session; and the method further comprising: receiving, at the second SBC, the SIP INVITE message sent by the first SBC, recognizing the SIP INVITE message sent by the first SBC as requesting an attended call transfer to the transfer target, and in response, signaling with the transfer target and the first SBC to reuse the second media session to establish a media session between the transferee party and the transfer target; establishing a media session between the first SBC and the second SBC; replacing, at the first SBC, an out-dialog of the first media session with an out-dialog of the media session between the first SBC and the second SBC; and replacing, at the second SBC, an in-dialog of the second media session with an in-dialog of the media session between the first SBC and the second SBC.
2. 2. The method of claim 1, wherein establishing the first media session comprises establishing the first media session in response to a SIP INVITE message originated by the transferee party and forwarded by the session router to the first SBC, the session router using call distribution logic to select the first SBC to handle the first media session.
3. The method of claim 1 or claim 2, wherein the SIP INVITE message initiated by the forwarder is sent to the second SBC based on call distribution logic of the session router.
4. 4. The method of claim 1, wherein receiving the SIP REFER message comprises receiving the SIP REFER message with a Replaces header including the dialog ID associated with the second media session.
5. 5. The method of claim 1, wherein the step of sending the SIP INVITE message including the dialog ID associated with the second media session comprises adding a custom header to the SIP INVITE message indicating that the SIP INVITE message is for initiating an attended call transfer that reuses the second media session.
6. signaling with the first SBC and the transfer target to reuse the second media session to establish a media session between the transferee and the transfer target, sending a SIP Re-INVITE message to the transfer target; receiving a success response from the transfer target; and b. in response to receiving the success response from the transfer target, sending a success response to the first SBC.
7. The method of any one of claims 1 to 6, comprising the step of: at the first SBC, sending a BYE message to the transferor to release resources associated with the out-dialog of the first media session.
8. The method of any one of claims 1 to 7, comprising the step of: at the second SBC, sending a BYE message to the transferor to release resources associated with the in-dialog of the second media session.
9. 1. A system for optimized inter-Session Border Controller (SBC) attended call transfer using transfer target session reuse, the system comprising: a first SBC for establishing a first media session between a forwarder and a forwardee; a second SBC for establishing a second media session between the transferor and a transfer target in response to a Session Initiation Protocol (SIP) INVITE message initiated by the transferor and routed to the second SBC by a session router; the first SBC is configured to receive from the forwarding party a SIP REFER message including a dialog ID associated with the second media session, and in response determine that the dialog ID does not correspond to a media session currently being handled by the first SBC, and send a SIP INVITE message to a plurality of SBCs, including the second SBC, in a load sharing group with the first SBC, the SIP INVITE message including the dialog ID associated with the second media session; the second SBC is configured to receive the SIP INVITE message sent by the first SBC, recognize the SIP INVITE message sent by the first SBC as requesting an attended call transfer to the transfer target, and in response, signal with the transfer target and the first SBC to reuse the second media session to establish a media session between the transferee party and the transfer target; the first SBC and the second SBC are configured to establish a media session between the first SBC and the second SBC; the first SBC is configured to replace an out-dialog of the first media session with an out-dialog of the media session between the first SBC and the second SBC; The second SBC is configured to replace an in-dialog of the second media session with an in-dialog of the media session between the first SBC and the second SBC.
10. 10. The system of claim 9, wherein the first SBC is configured to establish the first media session in response to a SIP INVITE message originated by the forwarded party and forwarded to the first SBC by the session router, and the session router uses call distribution logic to select the first SBC to handle the first media session.
11. 11. The system of claim 9 or claim 10, wherein the SIP INVITE message initiated by the forwarder is sent to the second SBC based on call distribution logic of the session router.
12. The system of any one of claims 9 to 11, wherein the SIP REFER message includes a Replaces header that includes the dialog ID associated with the second media session.
13. 13. The system of claim 9, wherein the first SBC is configured to include the dialog ID associated with the second media session in a custom header of the SIP INVITE message, the custom header indicating that the SIP INVITE message is for initiating an attended call transfer that reuses the second media session.
14. When signaling with the first SBC and the transfer target to reuse the second media session to establish a media session between the transferee and the transfer target, the second SBC: Sending a SIP Re-INVITE message to the transfer target; receiving a success response from the transfer target; The system of any one of claims 9 to 13, configured to send a success response to the first SBC in response to receiving the success response from the transfer target.
15. 15. The system of claim 9, wherein the first SBC is configured to send a SIP BYE message to the transferor and release resources associated with the out-dialog of the first media session, and the second SBC is configured to send a SIP BYE message to the transferor and release resources associated with the in-dialog of the second media session.
16. A program comprising executable instructions which, when executed by a processor of a computer, control the computer to perform the method of any one of claims 1 to 8.
Citation Information
Patent Citations
Session border controller system, control method for the same, and program
JP2015233231A
Distribution device and distribution method
JP2018170710A
Mesh conferencing
US20170272479A1
Methods and apparatus for load balancing in SDN networks
US20180077229A1