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 use on the same machine.
NOTE: This setup is meant mainly for testing and not recommended for scenarios with more than 5 concurrent sessions (generally not recommended for prod use).
Here is a overview (MRCP v1 and v2 versions):
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 external IP address of the machine where the proxy will be installed. This article has more details about what this IP should be - we suggest you check it out because if wrong IP is used then your MRCP Client will not be able to open the connection to the MRCP Server.
- 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".
- Note: it is important to let the docker-compose start up fully before sending MRCP traffic to it.
The IVR Proxy uses the following ports:
- Outbound traffic - to connect to Voicegain cloud. If these ports are not open you will see TCP timeout errors in the log under ivr-proxy-sender_1. You will see e.g. TCP connecting to ivr.voicegain.ai/126.96.36.199:9000 but there will be no indication that connection was successful.
- api.ascalon.ai (188.8.131.52) 443/TCP - for initial negotiations
- ivr.voicegain.ai (184.108.40.206) 9000/TCP - for command traffic
- ivr.voicegain.ai (220.127.116.11) 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.