FreePBX Manager is a Discord bot designed to manage FreePBX configurations. Please note that this project is currently a hot mess and may not be suitable for production use.
-
User-created extensions
-
Automatic extension creation
-
Extension deletion
-
Extension status
-
Extension list
-
Probably some more stuff that I forgot to write down lol
To set up the config file, follow the steps below:
-
Clone the repository:
git clone https://github.com/ChrisChrome/discord-freepbx-manager.git cd discord-freepbx-manager
-
Install the required dependencies:
npm install --save
-
Create a new file named
config.json
in the root directory of the project and fill it with the following content:{ "ntfyUrl": "ntfy-url", "freepbx": { "server": "sip-server-ip", "url": "pbx-api-url", "clientid": "gql-client-id", "allowedscopes": "gql", "secret": "gql-secret", "startExt": 1000 }, "discord": { "token": "bot-token", "guildId": "guild-id", "roleId": "user-role", "logId": "log-channel", "extList": "extension-list-channel", "developers": ["your-user-id"] }, "mariadb": { "host": "db-hostname0here", "user": "bot", "password": "bot", "database": "asterisk", "connectionLimit": 5 }, "cdrdb": { "host": "db-hostname-here", "user": "bot", "password": "bot", "database": "asteriskcdrdb", "connectionLimit": 5 }, "status": { "interval": 60, "url": "uptime-kuma-link" } }
-
Replace the placeholders with your own values:
ntfyUrl
: The URL of the NTFY server.sip-server-ip
: The IP address of the SIP server.pbx-api-url
: The URL of the FreePBX API.gql-client-id
: The client ID for the GraphQL API.gql-secret
: The secret for the GraphQL API.bot-token
: The token of the Discord bot.guild-id
: The ID of the Discord guild.user-role
: The ID of the role that users must have to use the bot.log-channel
: The ID of the channel where logs will be sent.extension-list-channel
: The ID of the channel where the extension list will be sent.your-user-id
: Your Discord user ID.db-hostname-here
: The hostname of the MariaDB server.uptime-kuma-link
: The URL of the Uptime Kuma instance.
-
Run the bot:
node .
-
Invite the bot to your Discord server using the following link:
https://discord.com/oauth2/authorize?client_id=YOUR_BOT_ID&scope=bot&permissions=8
-
You're all set! The bot should now be up and running.