question

Kushal Dsouza avatar image
Kushal Dsouza asked Kushal Dsouza commented

How can I transfer a live call to IVR

I have a recording message containing terms and conditions that I have added as an audio prompt within an IVR menu. I have mapped the resulting key presses to call queues that transfer the call back to the user.


How can I initiate the playback of the recorded message from within a live call? I have tried transferring the call to the extension assigned to the IVR Menu, however, this does not work.

ivrtransferring calls
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Phong Vu avatar image
Phong Vu answered

I am not 100% sure about how yo set your IVR and what you want to achieve. But as far as I could try to understand.

You have an IVR menu with prompt message and key presses set. The prompt message is your terms and conditions and one of the key press will transfer the call to a call queue.

There is an incoming call to a user extension, the call is then connected (this is what you call a live call), and now you want to transfer the connected call to the IVR above, then the caller will hear the terms and conditions and can press a key to get the call transferred to a call queue or a user extension?

Is that what you want and if so how did you try it, using the RC app or using API?

1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Kushal Dsouza avatar image
Kushal Dsouza answered Phong Vu commented

@Phong Vu That is correct. The scenario that you describe is exactly how I have the IVR set up. From within the RC app, when I am on a live call, I press the transfer button, and then dial the extension associated with the IVR menu. At that point, I expect the pre-recorded audio prompt associated with the IVR menu to be played, however, this does not happen and the call just disconnects.

1 comment
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Phong Vu avatar image Phong Vu ♦♦ commented ·

Ok, I just tested your use case scenario and it worked perfectly.

While the call is connected, I transferred (blind transfer) the call to the IVR menu by the IVR extension number. Then the call was transferred and I heard the prompt message and I could press a key to connect to a call queue (my IVR is set to press 1 to connect to a call queue).

screen-shot-2023-01-11-at-115136-am.png


screen-shot-2023-01-11-at-115156-am.png


Since you are doing this using the RC app. You should contact RingCentral customer support to help you checking the settings to make it work.

0 Likes 0 ·
Kushal Dsouza avatar image
Kushal Dsouza answered Phong Vu commented

@Phong Vu Thank you! I got this to work with your guidance. Could you please point me towards the documentation through which I can perform the same actions as above via the API. Now that I have got the above working, I would like the leverage the API to integrate the aforementioned functionality into our product without having to trigger the playback of the recorded message through the RingCentral App. Specifically, I want to be able to make an API call on a certain user action, to trigger the playback of the audio prompt via the IVR.

Thank you so much for your help!

1 comment
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Phong Vu avatar image Phong Vu ♦♦ commented ·

To perform the same action using RingCentral platform API, you can transfer (blind transfer) an active call to an extension by extension number using this call control API. You can get the active call telephonySessionId and the partyId from the user (the user extension who currently on the call) active calls using this API. When calling the call transfer API, set the right telephonySessionId, the right partyId (the partyId of the user extension, not the other partyId), and the IVR extension number (not the extension id!)

Something like this

async function blindTransferCall(){
  var endpoint = '/restapi/v1.0/account/~/telephony/sessions/'
  endpoint += "ActiveCall_telephonySessionId"
  endpoint += "/parties/ActiveCall_partyId/transfer"
  try{
    var resp = await platform.post(endpoint, {
      extensionNumber : "IVR_Extension_Number"
    } )
    var jsonObj = await resp.json()
    console.log(JSON.stringify(jsonObj))
  }catch(e){
    console.log(e)
  }
}
0 Likes 0 ·
Kushal Dsouza avatar image
Kushal Dsouza answered Kushal Dsouza commented

@Phong Vu Thank you for this information. One last question, is there any way to auto transfer the call back to the user who initited the IVR? I am doing a POC where I am migrating over from another system and the functionality that we currently have is as follows:


The user initiates the playback of a recorded message through a button click, after the message is played to the customer, we want the customer to be able to continue the conversation with the user without pressing any prompts. Is it possible to do this in RingCentral? Using the IVR menu, I don't see an option to transfer the call back to the user unless, I set up prompts which will allow the customer to press a button that is mapped to transfer the call back to the user.

3 comments
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Kushal Dsouza avatar image Kushal Dsouza commented ·

@Phong Vu Is there any way that we can configure the playback of a recorded message without using a transfer of a call? Our use case is as follows:

We want to playback a recorded message containing some terms and conditions which a customer must either agree to or decline. However, the issue I am running into with the setup as described above is that, once a call is transferred to an IVR, it puts the ring central user back into the call queue where they can then receive calls from other users. Meanwhile, the user whom they were already on a call with will have finished listening to the voice prompt and then be waiting in the call queue again to continue the conversation.

0 Likes 0 ·
Phong Vu avatar image Phong Vu ♦♦ Kushal Dsouza commented ·

Then it won't work that way. There is no API to transfer a call from an IVR to a user.

Unfortunately, we don't have an API to playback audio to a call. There might be someway to implement it but it is very complicated and I am not sure if it would work 100%. If you would like to explore the possibility, first read these blogs to learn how to implement a SIP phone.

https://medium.com/ringcentral-developers/pjsip-and-ringcentral-part-1-get-started-67df16b10956

https://medium.com/ringcentral-developers/pjsip-and-ringcentral-part-2-handle-audio-medias-c26b8ea61319

0 Likes 0 ·
Kushal Dsouza avatar image Kushal Dsouza Phong Vu ♦♦ commented ·

Hi @Phong Vu Thank you for the above information.

0 Likes 0 ·

Developer sandbox tools

Using the RingCentral Phone for Desktop, you can dial or receive test calls, send and receive test SMS or Fax messages in your sandbox environment.

Download RingCentral Phone for Desktop:

Tip: switch to the "sandbox mode" before logging in the app:

  • On MacOS: press "fn + command + f2" keys
  • On Windows: press "Ctrl + F2" keys