https://a.storyblok.com/f/270183/1368x665/61f7aeead8/build-your-own-call-center_asterisk-sip-trunking.png

Crie seu próprio call center usando o Asterisk e o SIP Trunking da Vonage

Publicado em October 30, 2024

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:

Diagram of the architecture to implement the call center using Asterisk and Vonage SIP trunkingFig-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

Zoiper configuration wizard to set up a username and passwordFig-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)

The Zoiper configuraiton wizard to stablish the hostname (IP)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:


The screen shows the main screen of ZoiperFig-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”.

The image shows the dialog of the Vonage dashboard to set up a voice call forwardingFig-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.

The image shows Zoiper receiving a phone callFig-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:

https://a.storyblok.com/f/270183/400x400/620f535ce9/atique-khan.jpg
Atique Khan

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.