|
| 1 | +--- |
| 2 | +title: Ultravox |
| 3 | +--- |
| 4 | + |
| 5 | +The Ultravox hosted app allows you to connect a call to an Ultravox agent and provide an initial prompt to the agent, optionally you can also allow Ultravox to transfer the |
| 6 | +call to a live human agent by specifying a transfer type, method and the appropriate carrier details. |
| 7 | +It can be used for both inbound and outbound calls, with outbounds calls you would initiate the call by making a REST API request to the [Create Call endpoint](https://docs.jambonz.org/reference/rest-call-control/calls/create-call) |
| 8 | + |
| 9 | +## Requirements |
| 10 | +Before setting up the hosted application you will need: |
| 11 | +- A Jambonz Account |
| 12 | +- An Ultravox account, signup up [ultravox.ai](https://app.ultravox.ai/) |
| 13 | +- An API key from ultravox, from the Settings page of the ultravox app |
| 14 | +- A Carrier configured in your jambonz account |
| 15 | +- If you are using the warm transfer option, a Text to Speech provider to be setup in your jambonz account for playing the summary. |
| 16 | + |
| 17 | +## Get started |
| 18 | + |
| 19 | +Login to your jambonz account, goto applications and click the + icon to create a new application. |
| 20 | + |
| 21 | +Enter the name of your application, this can be anything, we suggest starting out with `ultravox` |
| 22 | +Enter the Calling Webhook below, the same value should be automatically copied to the Call Status Webhook. |
| 23 | +```txt Calling Webhook |
| 24 | +wss://ultravox.jambonz.app |
| 25 | +``` |
| 26 | + |
| 27 | +<Frame> |
| 28 | + <img src="../../assets/images/application-webhook-ultravox.png" alt="Setting the calling webhook"/> |
| 29 | +</Frame> |
| 30 | + |
| 31 | +When you enter the webhook some new fields will then appear beneath that as shown below, these are the Application Environment variables |
| 32 | +for this hosted application. We'll go through how you should configure these next. |
| 33 | + |
| 34 | +<Frame> |
| 35 | + <img src="../../assets/images/applicaiton-ultravox-envvars.png" alt="application environment variables for ultravox"/> |
| 36 | +</Frame> |
| 37 | + |
| 38 | +## Configuration |
| 39 | + |
| 40 | +### ULTRAVOX_APIKEY |
| 41 | +This is the API key for your ultravox account, by default the value will be hidden in the UI but you can check it using the eye icon |
| 42 | + |
| 43 | +### ULTRAVOX_PROMPT |
| 44 | +The the system prompt given to the agent at the start of the call instructing it what to do, see [https://docs.ultravox.ai/gettingstarted/prompting]for more details. |
| 45 | +Note: You cannot use additional tools with the hosted application, if you wish to expose tooling to the agent you will need to run your own application. |
| 46 | + |
| 47 | +### ULTRAVOX_VOICE |
| 48 | +The voice ultravox will use to respond to the caller, see [https://docs.ultravox.ai/voices/overview] for details, we default to the `Tanya-English` voice |
| 49 | + |
| 50 | +### FIRST_SPEAKER |
| 51 | +Who is expected to speak first on the call, typically this would be the **Agent** for an inbound call or the **User** for an outbound call. |
| 52 | + |
| 53 | + |
| 54 | +### CALL_TRANSFER |
| 55 | +If you want to enable the feature that allows Ultravox to initiate a transfer to a human agent, set this to either `Cold` or `Warm`, It will then expose a tool to the agent and add some instruction to the prompt. |
| 56 | + |
| 57 | +**Cold** Will just transfer the caller to the human agent number with no introduction, also known as Unattended Transfer |
| 58 | + |
| 59 | +**Warm** Will call the human agent and when they answer play a short summary of the call so far before connecting the caller to the agent, the caller does not hear this summary, also known as Attended Transfer |
| 60 | + |
| 61 | +<Warning>If using warm transfer the TRANSFER_TYPE must be set to Dial, & you must have a Text to Speech provider configured for the application to read the summary.</Warning> |
| 62 | + |
| 63 | +### TRANSFER_TYPE |
| 64 | +How Jambonz should initiate the call leg to the human agent, |
| 65 | + |
| 66 | +**Refer** will send a SIP REFER message to the carrier of the user call instructing it to transfer directly to the human agent number, once complete Jambonz will be out of the call. |
| 67 | + |
| 68 | +**Dial** will initiate a new outbound call from Jambonz and then connect the user to that dropping the connection to Ultravox, Jambonz remains in the call path. |
| 69 | + |
| 70 | +### TRANSFER_TO |
| 71 | +The number that calls should be transferred to |
| 72 | + |
| 73 | +### TRANSFER_FROM |
| 74 | +If using a Dial this is the CallerID that will be sent on the call to the agent. |
| 75 | + |
| 76 | +### TRANSFER_CARRIER |
| 77 | +If using a Dial this is the Carrier Jambonz will use for the new outbound call. |
| 78 | + |
| 79 | + |
| 80 | + |
| 81 | +## Other Configuration |
| 82 | +Finally, set the other Jambonz applicaiton parameters, if you are using the Warm Transfer option then you will need to select a Speech Provider here that you have configured settings for, the other parameters can be left as default. |
| 83 | + |
| 84 | +Optionally you may want to enable call recording for this application. |
| 85 | + |
| 86 | +## Help & support |
| 87 | +If you experience any issues with using the Hosted application via Jambonz.cloud then please email support@jambonz.org and include a call_sid for an example call that shows the issue along with the date & time of the call. |
| 88 | + |
| 89 | +Please also mention that you are using the Ultravox Hosted application. |
| 90 | + |
| 91 | +You can view the code for this application on our [GitHub](https://github.com/jambonz/ultravox-hosted) |
| 92 | + |
| 93 | + |
0 commit comments