NOTE: The below described setup has been tested as working in a scenario where the IVR-Proxy sender is deployed on one machine and the tester (mrcp client, vxml platform, etc.) is on a different machine. Running the test client and the IVR-Proxy docker on the same machine may cause some issues with UDP traffic, depending on how the traffic is routed from the host to the docker and vice versa. Thus we do not recommend test on the same machine.
Here are all steps needed to get the IVR Proxy running starting from creating Account with Voicegain.
- Log into Voicegain Web Console
- If you do not have an account, sign up for an account. Select the MRCP ASR feature to get access to the MRCP ASR tools in the Web Console. You may also select additional features that you require.
- Once logged into the Web Console, select a "default" Context in the drop down menu in the header. You may also create a new context, e.g. "ivr-testing"
- Also in the side menu, go to ASR -> MRCP proxy.
- Enter the IP address of the machine where the proxy will be installed.
- A link to download the IVR proxy bootstrap configuration should appear. Copy the link into a new browser tab and download the configuration file (.tar).
- Install Docker Desktop on the Windows machine if it is not installed already. On older machines, virtualization may need to be enabled on the computer to get Docker running successfully. Visit the Docker Desktop install page or use this direct download link to download Docker Desktop.
- Extract the contents of the IVR proxy file (.tar) into a desired location.
- Using Powershell or an equivalent command line shell, change directories into the extracted folder.
- Once in the directory, run the command "docker-compose up".
- IVR-Proxy sender should now be running.
- Once it connects successfully to the Receiver in Voicegain Cloud you should see the following in the log every 15 seconds:
ivr-proxy-sender_1 | 10-02-2020 03:47:34.433 [IVR-SenderHandler-Thread-1] INFO c.resolvity.ivr.proxy.SenderHandler.senderImpl - Sending keep-alive signal...
ivr-proxy-sender_1 | 10-02-2020 03:47:34.934 [IVR-SenderHandler-Thread-1] INFO c.resolvity.ivr.proxy.SenderHandler.senderImpl - Keepalive feedback received.
- You will also see the following in the Web Console
- You can tail logs from another command shell window using:
docker-compose logs -f --tail 10
- To stop the IVR Proxy use Ctrl+C and then type "docker-compose down".
The IVR Proxy uses the following ports:
- Outbound traffic - to connect to Voicegain cloud
- 443 TCP - for initial negotiations
- 9000 TCP - for command traffic
- 9000 UDP - for audio traffic
- Inbound traffic - ports on which IVR proxy listens to MRCP client (e.g. VXML platform)
- MRCP v1:
- 1554 TCP: for RTSP
- 5001-5050 UDP: for RTP
- MRCP v2
- 8060 TCP and UDP: for SIP- we strongly suggest using TCP SIP - with UDP sometimes the traffic from our MRCP to the client gets blocked and session is not established.
- 1544 TCP: for RTSP
- 5001-5050 UDP: for RTP
- MRCP v1:
You can verify that MRCP and IVR Proxy is listening on all the ports buy running the following command in e.g. Powershell (shell has to be Run as Administrator)
on the host machine. The output should contain lines like:
TCP 0.0.0.0:1544 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1554 0.0.0.0:0 LISTENING
TCP 0.0.0.0:8060 0.0.0.0:0 LISTENING
UDP 0.0.0.0:5001 *:*
UDP 0.0.0.0:5002 *:*
UDP 0.0.0.0:5003 *:*
UDP 0.0.0.0:5050 *:*
UDP 0.0.0.0:8060 *:*
One way to test this setup is using Aspect Prophecy VMXL. See these instructions how to configure Prophecy.