Connect MeiSIM to Vapi
Give your Vapi assistant a real US mobile number on a national carrier. It answers calls to the number and calls out with the number as caller ID. These are the exact steps and JSON we used, tested end to end on November 12, 2026. It takes about ten minutes.
Need a number first?
A voice line is $45 a number a month, texts included. Two months minimum on the first term.
What you need
- A MeiSIM voice line and your MeiSIM API key.
- A Vapi account and its private API key. These steps use Vapi's US region (
api.vapi.ai).
How the two connect
Vapi connects to a phone carrier through what it calls a BYO SIP trunk. On our side the line runs in trunk mode: our switch keeps the number connected to the carrier, and the line gets a SIP login of its own.
- Calls out: Vapi sends the call to our switch and signs in with the line's SIP login. The person called sees your MeiSIM number.
- Calls in: our switch forwards the call to your trunk's address at Vapi, with the caller's number as caller ID.
Vapi never registers with a carrier, and trunk mode does not need it to.
Step 1. Switch the line to trunk mode
A new voice line shows sip_mode: "register" until you do this.
Keep sip.user and sip.password. The password is in this answer and is never shown again. If you lose it, POST /api/v1/sms/lines/7185550100/sip/rotate gives a new one.
Step 2. Create the SIP trunk in Vapi
- Use the address
45.77.205.201, not the namesip.meisimusa.com. Vapi accepts only a numeric address on a gateway that receives calls. It is the same switch. - One gateway carries both directions.
- The name can be 40 characters at most.
- Keep the
idin the answer. It is your credential id, and you need it in steps 4 and 5.
Step 3. Have an assistant ready
Any Vapi assistant works. Three of its settings matter on a phone line:
silenceTimeoutSecondsends a call when nobody speaks. Vapi's default is 30 seconds.maxDurationSecondsends every call at that length. Vapi's default is 600, which is ten minutes.keypadInputPlan: { "enabled": true }lets the assistant receive digits the caller presses.
If your calls stop by themselves after a pause or at ten minutes, it is one of the first two.
Step 4. Import the number into Vapi
Write the number with +1 in front. Keep the id in the answer: it is the phone number id you place calls with.
Step 5. Send the line's incoming calls to Vapi
Calls to the number now go to +17185550100@YOUR_CREDENTIAL_ID.sip.vapi.ai, from our address 45.77.205.201. It is live within a minute.
Step 6. Test it
Call the number from any phone. Your assistant answers.
Then place a call out:
The phone you call shows your MeiSIM number.
What we tested
| Test | Result |
|---|---|
| A call in | Answered about one second after it reached us. Audio both ways. Vapi sees the caller's number. |
| A call out | The called phone shows the line's number. Either side can end the call. |
| A second call while one is up | Refused. A number carries one call at a time. |
| A long call | 16 minutes with audio both ways the whole time. |
| Keypad digits | Vapi received the digits the caller pressed. |
| A text while the line is on Vapi | Still reached the webhook and the API. |
When a call fails
Vapi shows a short reason on the call. Our call log says the rest: GET /api/v1/sms/calls lists every call with how it ended, the reason in plain words and the fix.
| What Vapi shows | What happened |
|---|---|
customer-busy, no charge | The line was already on a call. One number carries one call at a time, so calls at the same moment need more numbers. |
call.in-progress.error-providerfault-outbound-sip-403-forbidden | Our switch refused the SIP login: the user or the password does not match. Our call log says which. |
call.in-progress.error-sip-outbound-call-failed-to-connect | Our switch did not place the call. These lines call US numbers only, and our call log names the reason. |
| A call in never reaches the assistant | Check the line's forwarding: sip.inbound in GET /api/v1/sms/lines. With none set, the caller hears busy. We email you once when calls into a line start failing, with the reason and the fix. |
After you rotate the SIP password, create a new trunk in Vapi with the new password and point the number at it (PATCH /phone-number/YOUR_PHONE_NUMBER_ID with the new credentialId). In our test, a password changed on an existing trunk was not used by calls placed right after, and a new trunk worked within half a minute.
Good to know
- Caller ID is always the line's own number.
- Calls out reach US numbers only, and a call lasts 60 minutes at most.
- Number format: send
+1and ten digits, as above. Our switch also accepts1and ten digits, or ten digits alone. - Use UDP, as shown. That is the setup we tested end to end. We have not finished testing encrypted calls (TLS with SRTP) with Vapi.
- Texts on the number are not part of Vapi. They keep arriving at your webhook or over our API.
Questions
Does Vapi need to register the number?
No. Vapi sends each call with the line's SIP login, and our switch forwards incoming calls to your trunk's address. Nothing registers.
Can one number take several calls at once?
No. One number carries one call at a time, in either direction. Ten calls at once means ten numbers, each imported into Vapi the same way.
What does the person I call see?
Your MeiSIM number. It is a real US mobile number on a national carrier.
Where do I see why a call failed?
In our call log, GET /api/v1/sms/calls, or the Call log window in your dashboard. Each call has its result, the reason in plain words and the fix when there is one.