This is exten.bot: the OpenaAI Realtime VoIP Bot

Project status: Open Beta

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.

Integration with MCP Servers (Model Context Protocol)

An MCP server is a component of the Model Context Protocol (MCP) that acts as a bridge between language models and external systems, enabling them to interact with data and tools such as databases, web services, and other applications through a standardized interface.

MCP server parameters available when creating and editing:

Screenshot_from_2025-09-03_08-08-32

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-09-03_07-57-26

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