Actions

Call transfer: Difference between revisions

(Added diagrams)
mNo edit summary
 
Line 1: Line 1:
{{DISPLAYTITLE:Call Transfer}}
Toolpack software provides call transfer support, either by relaying call transfer requests and responses between two bridges call legs, or by locally processing the call transfer (making a new outgoing call leg, joining incoming call leg to the new outgoing call, dropping the original outgoing call leg).
Toolpack software provides call transfer support, either by relaying call transfer requests and responses between two bridges call legs, or by locally processing the call transfer (making a new outgoing call leg, joining incoming call leg to the new outgoing call, dropping the original outgoing call leg).


Line 6: Line 7:
* ''Transfer Target'': The second outgoing call leg, which is later made and joined to the ''Transferee''
* ''Transfer Target'': The second outgoing call leg, which is later made and joined to the ''Transferee''


* ''Redirecting number'': Number from which the call is tranferred from (called number of the ''Transferor'')
* ''Redirecting number'': Number from which the call is transferred from (called number of the ''Transferor'')
* ''Redirection number'': Number toward which the call transfer is made
* ''Redirection number'': Number toward which the call transfer is made
* ''Original called number'': Called number that the ''Transferee'' was originally calling
* ''Original called number'': Called number that the ''Transferee'' was originally calling
Line 28: Line 29:
== Call transfer modes ==
== Call transfer modes ==
=== Call transfer forwarding ===
=== Call transfer forwarding ===
In this mode, call transfer request, call transfer progress, and call transfer response messages are simply being forwarded between the two bridged call legs. Toolpack is not taking any local decision. It's expected that other equipments in the network will process the call transfer request and respond to it.
In this mode, call transfer request, call transfer progress, and call transfer response messages are simply being forwarded between the two bridged call legs. Toolpack is not taking any local decision. It's expected that other equipment in the network will process the call transfer request and respond to it.


If the incoming call leg is using a protocol that's not supported for call transfer, the call transfer request will be ignored.
If the incoming call leg is using a protocol that's not supported for call transfer, the call transfer request will be ignored.
Line 52: Line 53:
** [[Early_Media|Early media]] is handled (according to profile):
** [[Early_Media|Early media]] is handled (according to profile):
*** Ring tone may be played to ''Transferee'' if appropriate
*** Ring tone may be played to ''Transferee'' if appropriate
*** Or Audio data path may be joined between ''Transferee'' and ''Transferor'' call legs if ''Transferor'' advertized early media
*** Or Audio data path may be joined between ''Transferee'' and ''Transferor'' call legs if ''Transferor'' advertised early media
** [[Route_retry|Route retry]] is handled:
** [[Route_retry|Route retry]] is handled:
*** In case of failure of a route, or in case of timeout, next mathing route is attempted
*** In case of failure of a route, or in case of timeout, next mathing route is attempted
Line 62: Line 63:
** [[Tmedia_Routing|Routing]] is made (using retirection number), a new outgoing call is made (the ''Transfer Target'')
** [[Tmedia_Routing|Routing]] is made (using retirection number), a new outgoing call is made (the ''Transfer Target'')
** Audio data path is unjoined between ''Transferee'' and ''Transferor''
** Audio data path is unjoined between ''Transferee'' and ''Transferor''
** Optionally, the ''Transferor'' is hungup (according to profile)
** Optionally, the ''Transferor'' is hung up (according to profile)
** [[Early_Media|Early media]] is handled (according to profile):
** [[Early_Media|Early media]] is handled (according to profile):
*** Ring tone may be played to ''Transferee'' if appropriate
*** Ring tone may be played to ''Transferee'' if appropriate
*** Or Audio data path may be joined between ''Transferee'' and ''Transferor'' call legs if ''Transferor'' advertized early media
*** Or Audio data path may be joined between ''Transferee'' and ''Transferor'' call legs if ''Transferor'' advertised early media
** [[Route_retry|Route retry]] is handled:
** [[Route_retry|Route retry]] is handled:
*** In case of failure of a route, or in case of timeout, next mathing route is attempted
*** In case of failure of a route, or in case of timeout, a next mathing route is attempted
* Call transfer fails (Call transfer timeout, or explicit termination of ''Transfer Target'' before it's answered)
* Call transfer fails (Call transfer timeout, or explicit termination of ''Transfer Target'' before it's answered)
** ''Transfer Target'' leg is terminated
** ''Transfer Target'' leg is terminated

Latest revision as of 10:18, 8 September 2022

Toolpack software provides call transfer support, either by relaying call transfer requests and responses between two bridges call legs, or by locally processing the call transfer (making a new outgoing call leg, joining incoming call leg to the new outgoing call, dropping the original outgoing call leg).

Call transfer terms:

  • Transferee: The incoming call leg, that is initially speaking with the Transferor, then later transferred to the Transfer Target.
  • Transferor: The outgoing call leg that is initiating the call transfer request, and that gets disconnected once the transfer has been completed.
  • Transfer Target: The second outgoing call leg, which is later made and joined to the Transferee
  • Redirecting number: Number from which the call is transferred from (called number of the Transferor)
  • Redirection number: Number toward which the call transfer is made
  • Original called number: Called number that the Transferee was originally calling

Supported call transfer protocols

  • SS7: Not supported
  • ISDN: 4ESS-5ESS Facility message containing a codeset 6 Facility IE
  • CASR2: Not supported
  • SIP: Using SIP Refer

Toolpack configuration

The Call transfer behavior is configured per profile. In the web portal:

  • Click on Profiles in the left menu
  • Select the profile to edit: the profile used on the Transferor call leg (outgoing call leg)
  • Expand section 'Call Transfer Options'
  • Choose appropriate options:
    • Call Transfer Mode: Indicates if call transfer requests from outgoing leg must be relayed to incoming leg, or locally processed
    • Terminate Transferor immediately: When checked, the Transferor all leg is immediately terminated when new outgoing call leg is made. Otherwise, it's terminated only once the Transfer Target answers, and may be re-joined later with Transferee if Transfer Target fails or times out.
    • Call Transfer timeout: Timeout waiting for Transfer Target to answer before declaring the call transfer as failed.

Call transfer modes

Call transfer forwarding

In this mode, call transfer request, call transfer progress, and call transfer response messages are simply being forwarded between the two bridged call legs. Toolpack is not taking any local decision. It's expected that other equipment in the network will process the call transfer request and respond to it.

If the incoming call leg is using a protocol that's not supported for call transfer, the call transfer request will be ignored.

Call transfer processing

In this mode, the call transfer request is processed locally by Toolpack. The call transfer is processed as follows:

Simplified call flow

  • Incoming call is routed and joined to an outgoing call leg
  • A call transfer request is received from incoming or outgoing call leg
  • A new outgoing call leg (Transfer Target) is routed and made
  • Audio is unjoined between incoming and outgoing call leg
  • Transfer Target answers
  • Call transfer request leg is hung-up
  • Audio is joined between the remaining leg and the Transfer Target

ISDN to SIP call transfer from outgoing leg (Refer).png SIP to ISDN call transfer from incoming leg.png

Complete call flow

  • Initial call establishment:
    • Incoming call is received (the Transferee)
    • Routing is made (based on incoming leg's called number), outgoing call is made (the Transferor)
    • Early media is handled (according to profile):
      • Ring tone may be played to Transferee if appropriate
      • Or Audio data path may be joined between Transferee and Transferor call legs if Transferor advertised early media
    • Route retry is handled:
      • In case of failure of a route, or in case of timeout, next mathing route is attempted
    • Transferor answers the call
    • Audio data path is joined between Transferee and Transferor call legs
  • Call transfer request processing
    • A Call Transfer Request is received from the Transferor
    • Call Transfer Progress is sent back to the Transferor
    • Routing is made (using retirection number), a new outgoing call is made (the Transfer Target)
    • Audio data path is unjoined between Transferee and Transferor
    • Optionally, the Transferor is hung up (according to profile)
    • Early media is handled (according to profile):
      • Ring tone may be played to Transferee if appropriate
      • Or Audio data path may be joined between Transferee and Transferor call legs if Transferor advertised early media
    • Route retry is handled:
      • In case of failure of a route, or in case of timeout, a next mathing route is attempted
  • Call transfer fails (Call transfer timeout, or explicit termination of Transfer Target before it's answered)
    • Transfer Target leg is terminated
    • Transferee is re-joined with Transferor (unless Transferor has been terminated or has hung-up)
    • Call Transfer Response (with appropriate cause) is sent back to Transferor leg
  • Call transfer succeeds (Transfer Target answers the call)
    • Call Transfer Response (with success cause) is sent back to Transferor (unless already terminated)
    • Transferor is terminated (if not already)
    • Audio data path is joined between Transferee and Transfer Target
    • Transfer Target now becomes the new Transferor (in case it also sends a Call Transfer Request)