This is exten.bot - the OenaAI Realtime Voice Bot

Project status: In development

exten.bot is a Django-based web interface for creating VoIP voice bots that can be connected to any software or hardware PBX supporting SIP. The system is built on an OpenSIPS server and the opensips-ai-voice-connector module, using the OpenAI real-time API for artificial intelligence. The platform supports dify.ai workflows ( or other MCP servers), allowing the design of bot logic and integration with other systems via function calls.

Function Calling by the Bot

The functionality of the voice bot can be greatly expanded by connecting additional functions that it will call during a dialogue.

In the personal account, you can add a function and then link it to one or several voice bots.

Function fields:

  1. Name: human-readable name of the function
  2. URL: webhook address that processes requests for this function and returns a response
  3. Bearer Token: authorization token (if required)
  4. Function Description (Json schema): structured description of the function for the bot. Example.
  5. Input Schema for Webhook: template for the webhook’s input data

After adding a function, you can link it to the bot in the bot editing form.

Examples and more details about working with functions are available here.

Screenshot from 2025-08-30 16-36-54

Creating a Voice Bot with exten.bot

To create a simple voice consultant bot based on a text instruction, go to Settings - Bots and create a new bot.

Types of exten.bot Voice Bots:

Since an exten.bot voice bot is a SIP account, depending on its role (server or client), you can create two types of records:

  1. Server (registrar), default: SIP account credentials are provided by the exten.bot server. Use them on your server to connect to exten.bot.
  2. Client (registrant): when creating a bot, specify the SIP account credentials (login, password, domain) issued by your server. exten.bot will connect to your server as a client.

Bot field descriptions:

SIP connection parameters

Connecting the Voice Bot to the FreePBX

To connect the voice bot to the PBX, use the obtained username and password, and the domain exten.bot for registration.

The example shows the PJSIP trunk settings in FreePBX.

Add PJSIP Trunk - General - Trunk Name = <username>

Screenshot from 2025-05-25 19-08-20

-- pjsip Settings - General -

Screenshot from 2025-05-25 19-14-22

PJSIP Settings - Advanced

Screenshot from 2025-05-25 19-15-55

Connecting a Voice Bot to FusionPBX

1. Accounts > Gateways > Add

Screenshot from 2025-06-27 12-16-49

2. Applications > Bridges > Add

Screenshot from 2025-06-27 12-22-24

3. Dialplan > Outbound Routes > Add

Screenshot from 2025-06-27 12-25-52

Then call 500 ext to connect to the OpenAI voice bot