0

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?

fiscme
  • 422
  • 1
  • 6
  • 20

1 Answers1

0

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----
  1. 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:

Community
  • 1
  • 1
jsantander
  • 4,972
  • 16
  • 27
  • @fiscme Did you manage to get call transfers to work with plivo and the hardware button? If so can you elaborate on the solution? – user3128809 Jul 22 '15 at 04:27
  • @user3128809 the simple answer is that standard SIP transfers won't work through Plivo, but most phones allow you to modify what those soft buttons actually do. I changed them to send ## as DTMF tones to the phone which i told plivo to recognise and react accordingly. – fiscme Jul 27 '15 at 08:48