Dialer

Admin dashboard

EmailRoleActions
Tip: use “Reset PW” to change a user’s password without re-creating them.

Call data by connection

ConnectionTotalSuccessfulFailedHangupMachineNo answerIn progressLast call

Recent calls

TimeConnectionCustomerOutcomeCustomerAssistantRepRecording
Page 1

Connection dashboard

Shared app URLs are now loaded from backend/php/config.local.php, not saved per connection.
NameStatusTwilio → VapiRepActions

Help — New connection setup

Use these steps every time you add a new Twilio main account or subaccount connection. The Twilio number, Account SID, Auth Token, API Key, API Secret, and TwiML App SID must all belong to the same Twilio account/subaccount.

1. Select the correct Twilio account

  1. Open Twilio Console.
  2. Use the account switcher at the top-left.
  3. Select the main account or the subaccount that owns the phone number.
  4. Do not mix main-account credentials with a subaccount number.

2. Get Account SID and Auth Token

  1. Twilio Console → Account Dashboard.
  2. Find Account Info.
  3. Copy Account SID. It starts with AC.
  4. Reveal and copy Auth Token.
  5. Paste them into: Twilio Account SID and Twilio Auth Token.

3. Create API Key SID and Secret

  1. Twilio Console → Account → API keys & tokens.
  2. Click Create API key.
  3. Choose Standard key type.
  4. Name it like: AI Dialer API Key.
  5. Copy API Key SID. It starts with SK.
  6. Copy API Secret immediately. Twilio shows it only one time.
  7. Paste them into: Twilio API Key SID and Twilio API Key Secret.

4. Create TwiML App and get App SID

  1. Twilio Console → Develop → Voice → TwiML Apps.
  2. Click Create new TwiML App.
  3. Name: AI Dialer Monitor App.
  4. Set Voice Request URL:
https://aidialers.kemmisys.com/backend/php/twiml/monitor_dial.php
  1. Method: POST.
  2. Save.
  3. Copy the TwiML App SID. It starts with AP.
  4. Paste it into: Twilio Monitor App SID.

5. Configure the Twilio phone number webhook

  1. Twilio Console → Phone Numbers → Manage → Active Numbers.
  2. Click the number you will use as Twilio From Number.
  3. Under Voice Configuration, set A call comes in to Webhook.
  4. Set URL:
https://aidialers.kemmisys.com/backend/php/twiml/inbound_voice.php
  1. Method: POST.
  2. Save.

For outbound dialer calls, your backend creates calls and uses the webhooks below automatically. The phone number inbound webhook is mainly for inbound calls to that Twilio number.

6. Webhook URLs used by this dialer

These URLs are used by code when placing calls, AMD, call status, and conference events.

AMD Status Callback: https://aidialers.kemmisys.com/backend/php/webhooks/amd_status.php
Voice Status Callback: https://aidialers.kemmisys.com/backend/php/webhooks/voice_status.php
Conference Events Callback: https://aidialers.kemmisys.com/backend/php/webhooks/conference_events.php
Monitor TwiML App Voice URL: https://aidialers.kemmisys.com/backend/php/twiml/monitor_dial.php

7. WebSocket / shared URL config

These are shared for all connections and should stay in:

backend/php/config.local.php
BASE_URL = https://aidialers.kemmisys.com/backend/php WS_PUBLIC_URL = wss://aidialers.kemmisys.com/liveaudio WS_TWILIO_URL = wss://aidialers.kemmisys.com/twilio

Do not enter these in each connection. They are no longer saved in the database.

8. Save connection in dashboard

  1. Go to the Connections tab.
  2. Enter a clear connection name.
  3. Paste Account SID, Auth Token, API Key SID, API Secret, and Monitor App SID.
  4. Enter Twilio From Number in E.164 format, for example +14165551234.
  5. Enter Vapi Outbound Number. This is the Vapi/AI assistant number dialed into the conference after the customer answers.
  6. Enter Vapi Inbound Number. This is used for inbound call routing when someone calls back.
  7. Vapi Public Number Legacy/Fallback is optional. Use it only if you still have an older connection that depends on the legacy fallback field.
  8. Rep Phone Optional is optional. The current dialer uses the browser monitor/WebRTC flow instead of automatically dialing this phone number.
  9. Set Active = active.
  10. Click Save connection.

Required: connection name, active status, Twilio Account SID, Twilio Auth Token, Twilio API Key SID, Twilio API Key Secret, Twilio Monitor App SID, Twilio From Number, Vapi Outbound Number, and Vapi Inbound Number.

Optional: Vapi Public Number Legacy/Fallback, Rep Phone Optional, and Notes.

9. Test after saving

  1. Refresh the dialer page.
  2. Confirm the new connection appears in the connection dropdown.
  3. Place one test call.
  4. Open Twilio call logs and confirm status callbacks are hitting your server.
  5. Check the Recent calls tab for the new call record.

If Recent calls updates, the database and callbacks are working.