0
votes

I am struggling with call transfers.

I have connected a hardware phone with a SIP endpoint from Plivo. I can make and receive calls without any problems but call transfers using the inbuilt "TRANSFER" button on the phone dont work.

Dialling into the SIP phone from a mobile works great. Then i press transfer on the phone and the mobile hears hold music, then the sip phone dials the new number, then all the connections just seem to die. I know its trying a blind transfer (from logs on the SIP phone)

I assume i have to set it up in Plivo and the SIPTransfer XML element, but i cant see what URL gets called during that SIP transfer. Could anyone please give me a basic guide on how the process works? How much is down o the phone itself, or plivo?

1

1 Answers

0
votes

Transfer works in potentially two different ways:

1) End-point based

In this mode: A transfer B to C by requesting (REFER) B to establish a new call to C. If Plivo is B, it needs to support REFER for this to work.

A              B              C
<=conversation=>
----REFER------>
<-202 Accepted--
               ----INVITE----->
               <---200 OK------
               ----ACK-------->
               <=conversation=>
<---NOTIFY-----
---- 200 OK--->
---BYE-------->
<--- 200 OK----

2) Network based.

In this mode: A transfer B to C by sending a REFER (or perhaps other signal) to a network application server (e.g. TAS implementating supplementary services in IMS). The TAS (as B2BUA between A & B) will be the one handling the REFER:

A             TAS              B              C
<=conversation=><=conversation=>
----REFER------>
<-202 Accepted--
               ----RE-INVITE--->
               <---200 OK ------
               ----INVITE--------------------->
               <---200 OK----------------------
               ----ACK--------->
               ------------ACK---------------->
               <=conversation=>
               <=conversation=================>
<---NOTIFY-----
---- 200 OK--->
---BYE-------->
<--- 200 OK----

In this case, B doesn't receive any REFER, it only needs to support to receive RE-INVITE (that will switch voice connection from A to C)

Which one is used, depends on your voice provider. In simple, PBX-like environment, you can probably see 1). In network, IMS-like environments, it is likely that you will see 2).

Network based works similarly to PSTN transfer (specially billing-wise) as the transfer-target leg is usually still associated to A (and will be billed for it) and B's connection is not really affected.

While in the end-point based transfer, B just does blindly A's request (and if that has some billing implications they will be B's responsibility).

Some references are: