Configuração de cliente SIP
Qualquer cliente SIP que consiga fazer uma chamada por meio de um proxy pode usar um trunk Bird. Isso inclui PBXs, softphones de desktop e ferramentas de linha de comando. Esta página mapeia os detalhes de conexão do trunk para os campos comuns de cliente e configurações de autenticação.
O que um cliente precisa
Quatro valores, todos da página do trunk:
| Campo do cliente | O que preencher |
|---|---|
| Servidor SIP, domínio, host ou proxy | O domínio SIP do trunk |
| Porta e transporte | Uma das portas suportadas do trunk |
| Usuário de autenticação, auth user ou login | bird |
| Senha ou secret | O secret de uma chave API permitida no trunk |
Um trunk que usa apenas sua lista de IPs permitidos precisa dos dois primeiros. As credenciais são o que a autenticação por chave API adiciona.
Os exemplos usam YOUR_TRUNK_DOMAIN, YOUR_CALLER_ID e YOUR_API_KEY_SECRET. Copie o domínio completo da página do trunk. Bird recusa chamadas para outro domínio antes que elas cheguem ao seu registro de chamadas. Quando conectado com o Bird CLI, execute bird voice tools test-call --dry-run para imprimir esses valores como uma linha de conta do baresip.
Deixe realm ou authentication domain vazio para que o cliente use o realm do challenge de Bird. Se um cliente exigir um valor, use o ID do espaço de trabalho sem o prefixo wsp_, seguido de .sip.bird.com. O realm do espaço de trabalho é diferente do domínio SIP do trunk.
Faça chamadas sem registrar
Bird autentica cada INVITE com base na lista de IPs permitidos do trunk ou por meio de um challenge de senha. Os clientes não se registram no trunk.
Verifique o registro antes de fazer uma chamada:
- Em um PBX, configure Bird como um trunk e deixe o registro desativado. No Asterisk, isso significa nenhuma seção type=registration; no FreeSWITCH, significa register=false no gateway; FreePBX e 3CX têm um modo de registro para definir como none.
- Em um softphone, desative o registro nas configurações avançadas da conta, se houver essa opção. Quando não houver, a tentativa de registro que falha é apenas cosmética e a discagem continua funcionando, porque atuamos no INVITE e não no registro.
Duas identidades, dois campos
Seu cliente deve enviar duas identidades diferentes:
- O caller ID vai no header From e precisa ser um número que você tenha verificado, no formato E.164: um + inicial seguido do código do país e do número nacional. Na maioria dos clientes, esse é o campo de usuário ou caller ID da conta.
- O digest username é sempre bird. Na maioria dos clientes, esse é o campo de usuário de autenticação ou login.
Disque em E.164 também, já que é assim que Bird roteia e precifica.
Softphones
Um softphone é a forma mais rápida de provar que um trunk novo funciona antes de direcionar tráfego de produção para ele.
baresip
Adicione uma linha em ~/.baresip/accounts, com seu caller ID como usuário da conta e bird como auth user:
Exemplo de código
<sip:YOUR_CALLER_ID@YOUR_TRUNK_DOMAIN>;auth_user=bird;auth_pass=YOUR_API_KEY_SECRET;regint=0;outbound="sip:YOUR_TRUNK_DOMAIN;transport=udp"regint=0 é o que impede o baresip de se registrar. Inicie-o e disque com /dial +31612345678.
Zoiper
Adicione uma conta SIP manualmente. Defina Domain como o domínio SIP do trunk, Username como seu caller ID verificado e Password como o secret da chave API. Nas configurações avançadas, defina Auth username como bird, desative o registro na inicialização e escolha o transporte.
Linphone
Adicione uma conta com bird como auth user da identidade SIP e seu caller ID como username, depois desative o registro na conta. Em linphonerc, a mesma conta é uma seção [proxy_N] com reg_sendregister=0.
MicroSIP
Em Account: SIP server é o domínio SIP do trunk, Username seu caller ID verificado, Login bird, Password o secret da chave API. Deixe Domain igual ao servidor SIP.
PBXs
Asterisk
Em pjsip.conf, um endpoint com autenticação de saída e sem seção de registro:
Exemplo de código
[bird-auth]
type=auth
auth_type=userpass
username=bird
password=YOUR_API_KEY_SECRET
[bird-aor]
type=aor
contact=sip:YOUR_TRUNK_DOMAIN:5060
[bird]
type=endpoint
context=from-internal
outbound_auth=bird-auth
aors=bird-aor
from_user=YOUR_CALLER_ID
from_domain=YOUR_TRUNK_DOMAINfrom_user é o caller ID que Bird verifica, então precisa ser um número verificado. Disque com Dial(PJSIP/+31612345678@bird).
FreePBX
Em Connectivity > Trunks, adicione um trunk SIP (chan_pjsip). Em pjsip Settings, defina Username como bird, Secret como o secret da chave API, SIP Server como o domínio SIP do trunk, Authentication como outbound e Registration como none. Defina o caller ID de saída do trunk como um número verificado.
FreeSWITCH
Um gateway em conf/sip_profiles/external/bird.xml:
Exemplo de código
<include>
<gateway name="bird">
<param name="proxy" value="YOUR_TRUNK_DOMAIN"/>
<param name="register" value="false"/>
<param name="username" value="bird"/>
<param name="password" value="YOUR_API_KEY_SECRET"/>
<param name="from-domain" value="YOUR_TRUNK_DOMAIN"/>
<param name="caller-id-in-from" value="true"/>
</gateway>
</include>Com caller-id-in-from definido, o caller ID da perna da chamada passa a ser o número From, então defina-o como um número verificado ao originar.
3CX
Adicione um trunk SIP genérico e desative o registro. Defina o host como o domínio SIP do trunk, o authentication ID como bird e a senha como o secret da chave API. Defina o caller ID de saída como um número verificado.
Próximos passos
| Página | O que aborda |
|---|---|
| Solução de problemas de voz | Diagnosticar uma chamada que não é completada, a partir do sintoma |
| Trunks SIP | Os detalhes de conexão, as listas de permissão e a oferta Digest |
| Fazer chamadas | O que Bird espera no INVITE e como uma chamada é precificada |
| Caller IDs | Registrar um número e provar que você é o dono com uma chamada de verificação |
| Registro de chamadas | Confirmar que uma chamada foi feita e quanto custou |
Recursos relacionados
Continue com a documentação, guias e exemplos sobre este tópico. Os recursos estão em inglês.
Entenda o conceitoWhat is a voice API?Explore a funcionalidadeVoiceGuia de implementaçãoVoice overview
Obtenha um resumo de implementação