Call Transfer Requests
Introduction
Toolpack allows that Call transfer requests are relayed from one leg to the other, or to process them locally (making another outgoing call to replace the call that requested the call transfer).
If the chosen Call transfer mode is to process requests locally, upon reception of a call transfer request (SIP REFER or ISDN Facility), routing script will be called once again, to select the routes for the new outgoing call (call transfer target).
How to route call transfer request
Routing of a call transfer request is done exactly like routing of a normal incoming call. The routing script generally does not need any modification to support that.
In some cases, the routing script may want to use information related to the transfer request to perform routing, or to insert information in the outgoing call leg. Additional information is provided to the routing script, allowing routing decisions using information from the call transfer request (SIP REFER or ISDN Facility). See below...
params[ :call ] content during transfer request
When processing a call transfer request, the params[ :call ] hash contains the information from the inbound call (same as was passed to the routing script upon arrival of the inbound call)
One exception (convenient because it allows a unmodified routing script to process call transfer request the same way as any other routing request):
Complementary information:
These fields will also be included in the outgoing call made after routing:
original called number and redirecting number are existing fields on SS7 and ISDN calls
SIP "diversion" header is used for SIP calls
params[ :transfer ] content
(this if valid only for release 2.7.102 and above) When processing a call transfer request, information from the call transfer request message (SIP REFER, ISDN Facility) is provided in params[ :transfer ]:
The following field is always present:
Examples of other fields that may be present, when appropriate:
These fields are 'read-only'. They will not be included in the outgoing call, as they represent the contents of the call transfer request, and not the outgoing call to be made.
To insert/modify attributes of the outgoing call, the parameters from params[ :call ] must be edited instead.
Last updated
Was this helpful?