Este projeto é uma plataforma de gestão de telefonia IP que integra o Asterisk PBX com um backend Django. O sistema permite a gestão de ramais via API e a originação de chamadas através de comandos AMI (Asterisk Manager Interface).
- Linguagem: Python 3.12
- Framework Web: Django 6.0.3
- API Toolkit: Django REST Framework 3.16.1
- Telefonia: Asterisk PBX (configurações SIP, AMI e AGI)
- Base de Dados: SQLite
/asterisk: Contém os ficheiros de configuração do Asterisk (sip.conf,extensions.conf,manager.conf) e scripts AGI./backend: Core do sistema desenvolvido em Django, responsável pela API de gestão./backend/ramais: Aplicação Django que gere o modelo de dados de extensões/ramais.
Antes de começar, instale:
-
Asterisk 👉 https://www.asterisk.org/downloads/
-
Python 3.10+
-
OpenSSL (já vem na maioria dos sistemas Linux)
git clone https://github.com/Maikoandre/Sistema-VoIP.git
cd https://github.com/Maikoandre/Sistema-VoIP.gitCopie o arquivo de exemplo:
mv .env-example .envEdite o .env com seu IP e domínio:
SERVER_HOST=192.168.0.0
SERVER=192.168.0.0/24Execute o script:
chmod +x ./asterisk/generate_keys.sh
sudo ./asterisk/generate_keys.shEsse script irá:
- Copiar arquivos
.confpara/etc/asterisk - Substituir variáveis
${ENV} - Gerar certificados TLS
sudo asterisk -cvvv- Na CLI do Asterisk, rode:
core restart now
Antes de usar o sistema:
👉 Acesse no navegador e aceite o certificado:
https://SEU_IP:8089/ws
Exemplo:
https://192.168.0.137:8089/ws
Instale dependências:
uv syncExecute o servidor:
uv run python manage.py runserver_plus --cert-file cert.crt 0.0.0.0:8000Depois de aceitar o certificado do Asterisk:
👉 Acesse:
https://SEU_IP:8000
| Ramal | Senha |
|---|---|
| 1001 | 1234 |
| 1002 | 1234 |
| 1003 | 1234 |
| 1004 | 1234 |
| 1005 | 1234 |