Open-Source Enterprise IP PBX Management Portal & Unified Communications
Asterisk 22 · PHP 8 · MariaDB · WebRTC · Instant Messaging · Android & iOS Apps
🌐 Official Website & Documentation: mahirgul.github.io/AiPBX
Quick Install • Features • Architecture • Website • Contributing
# Clone the repository
git clone https://github.com/mahirgul/AiPBX.git /opt/aipbx
cd /opt/aipbx
# Run the installer as root
sudo bash install.sh
The installer will:
/root/aipbx-credentials.txtRequirements: Ubuntu 22.04 / 24.04 / 26.04 LTS · 2 GB RAM · 10 GB disk · root access
After install, open https://<your-server> in your browser and log in with the credentials shown.
*81 queue login (all or *81<queue>), *80 queue logout, *72 call forward, *60 DND, *43 intercom, *88 spy/whisperfrom-trunk-kapanma-tonu) for analog/legacy trunks without out-of-band hangup signaling*81/*80) with audio confirmation (queue-agentlogin-success / beeps) or web UIfindCallerChannelForAgent) prevents dropped lines during attended transfer/cc-agent)aipbx-chat)+ Yeni Grup), conversation filter chips (All, Direct, Groups), participant management, admin roles, and real-time WebSocket updates.ipa and Simulator .zip artifacts<= 768px) with hardware/browser back-button popstate support/my_phone), Role Permission Matrix (/roles), Mobile Push Settings (/push-settings), and Pending Sync (/pending-sync)
mod_proxy_wstunnel and .htaccess compatibility/ws) and Go Chat (/chat/ws)conf/nginx/aipbx.conf.examplesys_role_permissions) with strict read-only viewer mode, including my_phone and chat controlst() functionAiPBX/
├── conf/ # Nginx & web server production templates
│ └── nginx/aipbx.conf.example
│
├── web/ # PHP MVC Web Portal
│ ├── src/
│ │ ├── controllers/ # 35 page controllers
│ │ ├── services/ # 24 business logic services
│ │ ├── repositories/ # 28 database repositories
│ │ └── sync/ # 13 Asterisk config generators
│ ├── templates/views/ # 34 PHP view templates
│ ├── api/ # REST API layer
│ ├── assets/ # CSS, JS, fonts
│ ├── lang/ # Language files (tr/en)
│ └── db/migrations/ # Phinx database migrations
│
├── android/ # Kotlin Android App
│ └── app/src/main/
│ └── java/com/mhrgl/aipbx/
│
├── ios/ # Swift & SwiftUI iOS App (GitHub Actions CI/CD)
│ ├── AiPBX/ # App, Models, Services, Views, Resources
│ └── AiPBX.xcodeproj/ # Xcode project & schemes
│
├── chat/ # Go WebSocket Chat Service
│ ├── main.go
│ ├── hub.go # WebSocket hub
│ ├── handlers.go # HTTP/WS handlers
│ └── db.go # Database layer
│
├── asterisk-config/ # Asterisk reference configuration
│ └── pbx/ # Modular dialplan, PJSIP, queue files
│
├── db/ # Database schema
│ ├── schema.sql # Table definitions
│ └── seed.sql # Initial seed data
│
├── install.sh # One-command installer
└── README.md
| Layer | Technology |
|---|---|
| PBX | Asterisk 22 (PJSIP, res_fax, AMI, ODBC) |
| Web Backend | PHP 8.x, strict MVC, Composer |
| Web Frontend | Vanilla JS + CSS (no framework) |
| Database | MariaDB (Phinx migrations) |
| Chat | Go + gorilla/websocket |
| Android | Kotlin, PJSIP, WebRTC, FCM |
| iOS | Swift 5.9, SwiftUI, WebKit, CallKit, Combine |
| WebRTC | coturn TURN/STUN, DTLS-SRTP, Opus |
| Security | fail2ban, RBAC, CSRF, CAPTCHA |
All credentials (admin password, DB passwords, AMI key, TURN secret) are generated randomly during install and saved to /root/aipbx-credentials.txt.
You can change all passwords later from Admin Panel → Settings → System.
To add a real TLS certificate after install (if you skipped Let's Encrypt):
certbot --apache -d your-domain.com
Contributions are welcome! Please check out our Contributing Guidelines for details on code style, commit conventions, and sandbox testing.
git checkout -b feat/my-feature)git commit -m 'feat: add awesome feature')git push origin feat/my-feature)This project is licensed under the MIT License.
46 commits
PHP
63.4%
Kotlin
12.5%
JavaScript
7.2%
Swift
5.3%
Go
3.3%
Python
3.0%
HTML
2.1%
CSS
1.9%
Shell
1.2%
Open-Source Enterprise IP PBX Management Portal & Unified Communications
Asterisk 22 · PHP 8 · MariaDB · WebRTC · Instant Messaging · Android & iOS Apps
🌐 Official Website & Documentation: mahirgul.github.io/AiPBX
Quick Install • Features • Architecture • Website • Contributing
# Clone the repository
git clone https://github.com/mahirgul/AiPBX.git /opt/aipbx
cd /opt/aipbx
# Run the installer as root
sudo bash install.sh
The installer will:
/root/aipbx-credentials.txtRequirements: Ubuntu 22.04 / 24.04 / 26.04 LTS · 2 GB RAM · 10 GB disk · root access
After install, open https://<your-server> in your browser and log in with the credentials shown.
*81 queue login (all or *81<queue>), *80 queue logout, *72 call forward, *60 DND, *43 intercom, *88 spy/whisperfrom-trunk-kapanma-tonu) for analog/legacy trunks without out-of-band hangup signaling*81/*80) with audio confirmation (queue-agentlogin-success / beeps) or web UIfindCallerChannelForAgent) prevents dropped lines during attended transfer/cc-agent)aipbx-chat)+ Yeni Grup), conversation filter chips (All, Direct, Groups), participant management, admin roles, and real-time WebSocket updates.ipa and Simulator .zip artifacts<= 768px) with hardware/browser back-button popstate support/my_phone), Role Permission Matrix (/roles), Mobile Push Settings (/push-settings), and Pending Sync (/pending-sync)
mod_proxy_wstunnel and .htaccess compatibility/ws) and Go Chat (/chat/ws)conf/nginx/aipbx.conf.examplesys_role_permissions) with strict read-only viewer mode, including my_phone and chat controlst() functionAiPBX/
├── conf/ # Nginx & web server production templates
│ └── nginx/aipbx.conf.example
│
├── web/ # PHP MVC Web Portal
│ ├── src/
│ │ ├── controllers/ # 35 page controllers
│ │ ├── services/ # 24 business logic services
│ │ ├── repositories/ # 28 database repositories
│ │ └── sync/ # 13 Asterisk config generators
│ ├── templates/views/ # 34 PHP view templates
│ ├── api/ # REST API layer
│ ├── assets/ # CSS, JS, fonts
│ ├── lang/ # Language files (tr/en)
│ └── db/migrations/ # Phinx database migrations
│
├── android/ # Kotlin Android App
│ └── app/src/main/
│ └── java/com/mhrgl/aipbx/
│
├── ios/ # Swift & SwiftUI iOS App (GitHub Actions CI/CD)
│ ├── AiPBX/ # App, Models, Services, Views, Resources
│ └── AiPBX.xcodeproj/ # Xcode project & schemes
│
├── chat/ # Go WebSocket Chat Service
│ ├── main.go
│ ├── hub.go # WebSocket hub
│ ├── handlers.go # HTTP/WS handlers
│ └── db.go # Database layer
│
├── asterisk-config/ # Asterisk reference configuration
│ └── pbx/ # Modular dialplan, PJSIP, queue files
│
├── db/ # Database schema
│ ├── schema.sql # Table definitions
│ └── seed.sql # Initial seed data
│
├── install.sh # One-command installer
└── README.md
| Layer | Technology |
|---|---|
| PBX | Asterisk 22 (PJSIP, res_fax, AMI, ODBC) |
| Web Backend | PHP 8.x, strict MVC, Composer |
| Web Frontend | Vanilla JS + CSS (no framework) |
| Database | MariaDB (Phinx migrations) |
| Chat | Go + gorilla/websocket |
| Android | Kotlin, PJSIP, WebRTC, FCM |
| iOS | Swift 5.9, SwiftUI, WebKit, CallKit, Combine |
| WebRTC | coturn TURN/STUN, DTLS-SRTP, Opus |
| Security | fail2ban, RBAC, CSRF, CAPTCHA |
All credentials (admin password, DB passwords, AMI key, TURN secret) are generated randomly during install and saved to /root/aipbx-credentials.txt.
You can change all passwords later from Admin Panel → Settings → System.
To add a real TLS certificate after install (if you skipped Let's Encrypt):
certbot --apache -d your-domain.com
Contributions are welcome! Please check out our Contributing Guidelines for details on code style, commit conventions, and sandbox testing.
git checkout -b feat/my-feature)git commit -m 'feat: add awesome feature')git push origin feat/my-feature)This project is licensed under the MIT License.
46 commits
PHP
63.4%
Kotlin
12.5%
JavaScript
7.2%
Swift
5.3%
Go
3.3%
Python
3.0%
HTML
2.1%
CSS
1.9%
Shell
1.2%