# Nvoip IP Provisioner

Provisionador Windows para configuração inicial de telefones IP e ATAs em rede local.

## Objetivo

A ferramenta foi criada para ajudar na implementação da Nvoip, reduzindo configuração manual por interface web e padronizando o provisionamento SIP.

O uso é gratuito. Consulte `Ajuda > Licença de uso` dentro do app para os termos exibidos ao usuário.

## Perfis disponíveis

- Grandstream GXP/HT: XML Grandstream + fallback via API interna validado no GXP1625.
- Yealink SIP-T/W/CP: arquivos CFG por MAC, boot/common CFG e bootstrap pela tela Auto Provision.
- Intelbras TIP120/TIP125: XML de auto provisionamento por MAC e arquivos `tip120system.xml`/`tip125system.xml`.

## Fluxo de uso

1. Digite o IP manualmente ou use `Descobrir rede` para localizar aparelhos suportados.
2. Selecione o perfil do aparelho, se o discovery não preencher automaticamente.
3. Selecione a conta SIP que será configurada, quando o perfil suportar múltiplas contas.
4. Em `Conta SIP`, escolha `Nvoip` ou `Outro Provedor`.
5. Para Nvoip, use DNS padrão `app.nvoip.com.br` ou marque `Usar IP ao invés do DNS` quando o telefone tiver falha de resolução DNS.
6. Informe usuário SIP e senha SIP.
7. Confirme usuário/senha web do aparelho. Os perfis já preenchem `admin/admin` por padrão quando aplicável.
8. Clique em `Provisionar telefone`.

O app busca o MAC por ARP durante o provisionamento, gera os arquivos esperados pelo perfil, sobe um servidor HTTP local temporário, aponta o telefone para esse servidor e tenta acionar o provisionamento.

Também há ações rápidas para `Forçar provisioning` e `Reiniciar aparelho`. Essas ações dependem do login web do aparelho.

## Interface

- O log técnico fica oculto por padrão em `Exibir > Mostrar log técnico`.
- O menu `Ajuda` inclui criação de conta Nvoip, licença de uso e informações sobre a ferramenta.
- Ao fechar, o app pergunta se o usuário gostou do provisionador e abre o site da Nvoip com UTMs de rastreamento.

## Gerar o `.exe` no Windows

No PowerShell, dentro desta pasta:

```powershell
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\build-windows.ps1
```

Ou pelo Prompt/PowerShell usando o `.bat`:

```bat
.\build-windows.bat
```

O arquivo final fica em:

```text
dist\Nvoip-IP-Provisioner.exe
```

## Observações

- O PC e o telefone precisam estar na mesma rede.
- O Windows precisa permitir o servidor HTTP local no firewall.
- O telefone precisa estar com a interface web habilitada.
- Usuário/senha web são necessários para o bootstrap inicial, pois o app precisa apontar o telefone para o servidor local e acionar provisioning/reboot.
- `Nova senha se exigir troca` só é usada quando o firmware bloqueia o primeiro login exigindo troca de senha.
- Yealink e Intelbras foram implementados por documentação e ainda precisam de validação em aparelho físico por modelo/firmware.
- O XML/CFG contém senha SIP em texto claro enquanto o servidor local estiver ativo. Use apenas em rede controlada.
- Contas suportadas no perfil atual: Grandstream GXP/HT 1-2, Yealink genérico 1-16, Intelbras TIP120/TIP125 1.
