You can make SIP calls to Vapi Assistants.

1

Create an Assistant

We’ll create an assistant with POST /assistant endpoint. This is no different than creating an assistant for other transports.

1{
2 "name": "My SIP Assistant",
3 "firstMessage": "Hello {{first_name}}, you've reached me over SIP."
4}
2

Create a SIP Phone Number

We’ll create a SIP phone number with POST /phone-number endpoint.

1{
2 "provider": "vapi",
3 "sipUri": "sip:[email protected]",
4 "assistantId": "your_assistant_id"
5}

sipUri is the SIP URI of the phone number. It must be in the format sip:[email protected]. You are free to choose any username you like.

3

Start a SIP call

You can use any SIP softphone to test the Assistant. Examples include Zoiper or Linphone.

You just need to dial sip:[email protected] and the Assistant will answer your call.

There is no authentication or SIP registration required.

4

Send SIP Headers to Fill Template Variables

To fill your template variables, you can send custom SIP headers.

For example, to fill the first_name variable, you can send a SIP header x-first_name: John.

The header name is case insensitive. So, X-First_Name, x-first_name, and X-FIRST_NAME are all the same.

5

Use a Custom Assistant For Each Call

You can use a custom assistant for SIP calls same as phone calls.

Set the assistantId to null and the serverUrl to the URL of your server which will respond to the assistant-request.

PATCH /phone-number/:id

1{
2 "assistantId": null,
3 "serverUrl": "https://your_server_url"
4}

Now, every time you make a call to this phone number, the server will receive a assistant-request event.