
Compartilhar:
Atique is a computer graduate and proficient Python developer with a passion for exploring new technologies. With a strong background in programming and system engineering, he holds over 10 years of experience in automation, testing, and integration. His interests span single-board computers, software-defined radios, and continuous experimentation with generative AI tools.
Crie seu próprio call center usando o Asterisk e o SIP Trunking da Vonage
Tempo de leitura: 6 minutos
Introdução
Os call centers são um aspecto importante de qualquer negócio que envolva comunicação com o cliente. Para pequenas e médias empresas, os call centers podem ser hospedados internamente para economizar nos custos de hospedagem na nuvem e reduzir a latência de rede entre o servidor e os atendentes do call center. Além disso, isso proporciona controle total sobre todas as operações e permite que você gerencie e faça alterações sem complicações.
Neste artigo, vamos configurar uma versão minimalista de um call center para fazer e receber chamadas com requisitos mínimos.
Visão geral da arquitetura
O SIP Trunking é um método de fornecimento de serviços telefônicos e comunicações unificadas aos clientes por meio da Internet, em vez de linhas telefônicas tradicionais. O SIP Trunking permite que as empresas substituam as linhas PRI (Interface de Taxa Primária) tradicionais e utilizem o VoIP (Voz sobre Protocolo de Internet) para gerenciar suas comunicações a um custo muito menor.
O SIP Trunking requer um provedor de SIP Trunk (por exemplo, Vonage) conectado a um sistema IP-PBX (por exemplo, Asterisk) para processar chamadas VoIP. O sistema IP-PBX pode ser instalado e hospedado internamente sem qualquer complicação. Para fazer uma ligação, um softphone (por exemplo, o Zoiper) instalado em um computador é conectado a um sistema IP-PBX com um número de ramal dedicado e credenciais de autenticação. Todo esse sistema pode ser visualizado no diagrama a seguir:
Fig-1.1 Sip trunking architecture overview
Pré-requisitos
Para implementar uma solução completa de call center interna, será necessário alguns itens, pois isso facilitará o processo de instalação e configuração.
Em primeiro lugar, você precisará obter uma chave de API e um número de Discagem Direta Interna (DID) da Vonage. A Vonage é uma provedora líder no setor de comunicações que oferece aos desenvolvedores acesso a APIs para enviar chamadas de voz, vídeo e mensagens com recursos avançados, como verificações contra fraudes e de identidade.
Ao criar um Account gratuito, você terá acesso a crédito gratuito e a uma documentação para usar as APIs da Vonage.
Assim que o cadastro estiver concluído, prossiga para adquirir um número de discagem direta (DID) com o código de país de sua preferência. Esse número também é conhecido como Número Virtual Longo da Vonage (LVN) e ajuda as empresas a ampliar sua presença local.
Além disso, você precisará de um servidor Linux, de preferência Debian ou Ubuntu, para hospedar a instalação do Asterisk. O Asterisk pode ser instalado em um sistema com CPU x86 de 1 GHz e 512 MB de RAM, mas, para um melhor desempenho, recomenda-se uma CPU de 3 GHz e 1 GB de RAM.
Para que as chamadas VoIP funcionem corretamente, é necessário abrir as seguintes portas no firewall:
SIP: 5060 (UDP)
RTP: 10.000 a 20.000 (UDP)
Há mais uma opção, mas o recomendado é obter um nome de domínio ou um endereço IP estático. Esse nome de domínio ou endereço IP estático sempre apontará para o servidor Asterisk, facilitando o encaminhamento das chamadas. Se você não tiver um nome de domínio ou um endereço IP estático disponível, pode tentar várias outras opções possíveis, como DynDNS ou Duck DNS
Configuração do Asterisk
Instale o servidor Asterisk
O servidor Asterisk é muito leve e possui requisitos mínimos de hardware em um servidor Linux. Aqui está uma breve visão geral dos comandos para instalar o servidor Asterisk no Debian 11 (bullseye):
sudo apt update # updates the package list from the repositories
sudo apt install wget build-essential subversion # install essential tools
cd /usr/src
sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz # download asterisk
sudo tar -xvf asterisk-18-current.tar.gz # extract files
# following set of commands will compile and install asterisk
# with example configuration files
cd asterisk-18*/
sudo contrib/scripts/install_prereq install
sudo ./configure
sudo make
sudo make install
sudo make samples
sudo make config # start asterisk automatically when system boots
sudo ldconfig # updates the system's shared library cache
sudo systemctl start asterisk # starts asterisk service
sudo systemctl enable asterisk # auto-start asterisk at boot time
Configurar o servidor Asterisk
Faça login na sua Account de SIP Trunking da Vonage para obter a chave de API, por exemplo, Master (c85…..), e o segredo de API, que serão usados como nome de usuário e senha SIP. Para o servidor SIP (proxy), consulte a documentação para escolher o endpoint mais próximo de acordo com sua localização (por exemplo, sip-eu-3.vonage.com).
Para se conectar ao terminal SIP da Vonage, acesse o servidor Asterisk via SSH e adicione a seguinte configuração SIP no arquivo /etc/asterisk/sip.conf:
[general]
context=public
allowguest=no
udpbindaddr=0.0.0.0
tcpenable=no
transport=udp
srvlookup=yes
nat=force_rport,comedia
register => SIP_USERNAME:SIP_PASSWORD@ip.nexmo.com
[outbound]
type=friend
context=from-internal
host=sip-eu-3.vonage.com
username=SIP_USERNAME
secret=SIP_PASSWORD
insecure=port,invite
canreinvite=no
disallow=all
allow=ulaw
nat=force_rport,comedia
Substituir SIP_USERNAME e SIP_PASSWORD pelas suas credenciais da Vonage.
O próximo passo é adicionar um plano de discagem, o que permitirá que os usuários se conectem ao Asterisk e comecem a fazer chamadas de saída. Para isso, edite /etc/asterisk/extensions.conf:
[globals]
TRUNK=SIP/outbound
[from-internal]
; Extension for making an outgoing call
exten => _9.,1,NoOp(Outgoing call through SIP trunk)
same => n,Dial(${TRUNK}/${EXTEN:1})
same => n,Hangup()Neste exemplo:
As seção globals define uma variável global TRUNK que aponta para o tronco SIP de saída definido em sip.conf.
O contexto "from-internal" é usado para extensões que fazem chamadas de saída.
O padrão _9. corresponde a qualquer número que comece com 9 e seja seguido por um ou mais dígitos. Isso é comumente usado para diferenciar chamadas internas das externas.
${EXTEN:1} remove o 9 inicial antes de enviar o número para o tronco SIP.
Configuração do softphone
A instalação de um softphone requer a configuração tanto do servidor quanto do cliente. Primeiro, vamos adicionar um usuário de softphone com a extensão “1001”, inserindo a seguinte configuração no arquivo /etc/asterisk/sip.conf😀
[1001]
type=friend
context=from-internal
host=dynamic
secret=yourpassword
disallow=all
allow=ulaw
nat=force_rport,comedia
Reinicie o Asterisk para aplicar todas as alterações usando sudo systemctl restart asterisk .
Para configurar o cliente, baixe um softphone como Zoiper ou linphone. Assim que o download estiver concluído, execute o instalador no seu computador e inicie o softphone. No exemplo abaixo, estamos usando o aplicativo de desktop Zoiper como cliente. Para registrar o softphone Zoiper no servidor Asterisk, digite 1001 como nome de usuário, seguido de sua senha
Fig-5.1 Zoiper username and passwordEm seguida, forneça o endereço IP local do servidor Asterisk (que normalmente começa com 192.168.x.x)
Fig-5.2 Zoiper IP configurationClique em “Pular” para ver outras opções e, por fim, será exibida a mensagem de que o cliente Zoiper está conectado:
Fig-5.3 Zoiper main screen
Para testar a configuração das chamadas de saída, disque um número precedido pelo 9; por exemplo, para ligar para 18012312312, você deve discar 918012312312
Configurar o encaminhamento de chamadas
Até agora, configuramos nosso softphone para fazer chamadas. Para começarmos a receber chamadas no softphone, precisamos configurar o número de Discagem Direta para Entrada (DID) fornecido pela Vonage — também conhecido, às vezes, como Número Virtual Longo (LVN) — para receber chamadas e encaminhá-las para o URI SIP hospedado pelo servidor Asterisk.
Para fazer isso, acesse Painel do Numbers e edite o número para acessar a janela de configuração. Na janela de configuração, selecione SIP na opção “Encaminhar”, insira o URI SIP hospedado pelo servidor Asterisk e clique em “Salvar”.
Fig-6.1 Vonage Voice Forwarding
Assim que a configuração for salva, as chamadas serão encaminhadas automaticamente para o servidor Asterisk. Aqui, precisamos editar /etc/asterisk/extensions.conf para definir qual extensão atenderá às chamadas recebidas. Neste exemplo, estamos encaminhando as chamadas recebidas para o agente com a extensão 1001.
[provider]
exten => _X.,1,NoOp(Someone is calling from provider) ; dial any number
same => n,Answer()
same => n,Wait(1)
same => n,Dial(SIP/1001,30,r)
Reinicie o Asterisk para aplicar todas as alterações usando sudo systemctl restart asterisk . A partir de agora, se um chamador discar um número LVN (conforme descrito na Fig. 6.1), a chamada será encaminhada para o agente do call center com a extensão 1001 usando o softphone.
Fig-6.2 Testing the call center
Configuração adicional
Embora isso não seja abordado aqui, é possível ativar configurações adicionais, se necessário. Por exemplo: gravação de chamadas, sistema IVR, monitoramento e relatórios. Todos esses recursos são ativados por meio de planos de discagem. Para mais detalhes, consulte documentação do Asterisk.
Conclusão
Neste artigo, instalamos e configuramos com sucesso uma versão minimalista do Asterisk, capaz de atender chamadas e também de realizar chamadas de saída. Essa configuração do servidor pode ser ampliada para adicionar recursos extras sem complicações. Para aproveitar ao máximo a eficiência dos serviços SIP, é altamente recomendável conhecer a solução de trunking SIP elástica, sob demanda e oferecida pela Vonage oferecida pela Vonage.
Entre em contato
Tem dúvidas ou comentários sobre este tutorial? Compartilhe suas ideias conosco no Twitter) ou no nosso canal da Comunidade Vonage no Slack , mencionando este artigo para obter uma resposta rápida. Você também pode entrar em contato com mim no Twitter.
Boa sorte e aproveite o SIP Trunking!
Compartilhar:
Atique is a computer graduate and proficient Python developer with a passion for exploring new technologies. With a strong background in programming and system engineering, he holds over 10 years of experience in automation, testing, and integration. His interests span single-board computers, software-defined radios, and continuous experimentation with generative AI tools.