Fabriciojf.com Wiki
  • FAQ
    • APIs
      • FAQs Favoritos

        Qual é a sua dúvida?

        •  Página inicial do FAQ
        • Asterisk
        • Configurando Asterisk + WebRTC

        Configurando Asterisk + WebRTC

        Passos Importantes

        Passo 1

        Edite o arquivo /etc/asterisk/modules.conf
        nano /etc/asterisk/modules.conf
        Adicione o conteúdo abaixo no final do arquivo
        load = res_crypto
        load = res_http_websocket
        load = res_pjsip_transport_websocket
        load = codec_opus
        load = res_srtp

        Passo 2

        Edite o arquivo http.conf

        nano /etc/asterisk/http.conf

        Ajuste o conteúdo para aceitar os certificados let's encrypt ou outro certificado que você tenha disponibilizado para o asterisk

        [general]
        enabled=yes
        bindaddr=0.0.0.0
        bindport=8088

        ;; tls certificados
        tlsenable=yes
        tlsbindaddr=0.0.0.0:8089

        tlscertfile=/etc/asterisk/keys/cert9.pem ;; lets encrypt
        tlsprivatekey=/etc/asterisk/keys/privkey9.pem ;; lets encrypt

        Passo 3

        Edite o arquivo pjsip.conf

        nano /etc/asterisk/pjsip.conf

        Ajuste o conteúdo para conter as informações transport-wss, dtls_auto_generate_cert e webrtc

        [general]
        allowguest = no

        [transport-udp]
        type = transport
        protocol = udp
        bind = 0.0.0.0:5060
        external_media_address = 191.252.218.81 ;; Public IP
        external_signaling_address = 191.252.218.81 ;; Public IP
        local_net = 172.50.50.90/255.255.255.0 ;; Docker IP

        [transport-wss]
        type=transport
        protocol=wss
        bind=0.0.0.0
        external_media_address = 191.252.218.81 ;; Public Ip
        external_signaling_address = 191.252.218.81 ;; Public Ip
        local_net = 172.50.50.90/255.255.255.0 ;; Docker Ip

        ;;
        ;; Ramais
        ;;

        ;;
        ;; 7000 UDP
        ;;

        [7000]
        type = aor
        max_contacts = 1
        remove_existing=yes

        [7000]
        type=auth
        auth_type=userpass
        password=your_pass
        username=7000

        [7000]
        type = endpoint
        transport = transport-udp
        context = from-internal
        disallow = all
        allow = alaw
        aors = 7000
        auth = 7000
        webrtc=no


        ;;
        ;; 7001 Webrtc
        ;;

        [7001]
        type = aor
        max_contacts = 1
        remove_existing=yes

        [7001]
        type=auth
        auth_type=userpass
        password=your_pass
        username=7001

        [7001]
        type = endpoint
        transport = transport-wss ;; important
        context = from-internal
        disallow = all
        allow = alaw
        aors = 7001
        auth = 7001
        dtls_auto_generate_cert=no ;; important
        webrtc=yes ;; important
        force_rport=yes ;; important
        direct_media=yes ;; important

         

        Passo 4

        Edite o arquivo rtp.conf

        nano /etc/asterisk/rtp.conf

        Ajuste o conteúdo

        [general]
        rtpstart=10000
        rtpend=10099
        icesupport=yes ;; important
        strictrtp=no ;; important
        stunaddr=stun.l.google.com:19302 ;; important

         

        Passo 5

        • Reinicie o Asterisk 
        • Acesse o endereço do servidor pelo browser para verificar se o certificado é válido
          • https://IP_ASTERISK:8089/ws

        Passo 6

        Instalando o Codec_opus

        $ apt-get install curl -y
        • Acesse o link: http://downloads.digium.com/pub/telephony/codec_opus/ e escolha a versão para o seu sistema operacional
        • Baixe o arquivo correspondente
        $ cd /usr/local/src
        $ wget http://downloads.digium.com/pub/telephony/codec_opus/asterisk-16.0/x86-64/codec_opus-16.0_1.3.0-x86_64.tar.gz

        Extraia o arquivo baixado

        $ tar -zxvf codec_opus-16.0_1.3.0-x86_64.tar.gz
        $ cd codec_opus-16.0_1.3.0-x86_64

        Copie o codec para a pasta de modulos

        $ cp -av codec_opus.so /usr/lib/asterisk/modules/

        Copie a licença para a pasta de documentações

        $ cp -av codec_opus_config-en_US.xml /var/lib/asterisk/documentation/thirdparty

        Reinicie o Asterisk

        $ service asterisk restart
        ou
        $ docker restart asterisk

        Verifique se o codec foi instalado corretamente

        $ rasterisk
        $ module show like opus

        Deve aparecer uma linha contendo informações sobre o codec

        de0a0151a673*CLI> module show like opus
        Module                         Description                              Use Count  Status      Support Level
        codec_opus.so                  OPUS Coder/Decoder                       0          Running          extended

        Arquivo codecs.conf

        Mova o arquivo codecs.conf original para um snapshot

        $ cd /etc/asterisk
        $ mv codecs.conf codecs.conf.snap

        Crie o novo arquivo codecs.conf

        $ nano codecs.conf

        Insira o conteúdo abaixo

        [speex]
        quality => 3
        complexity => 2
        enhancement => true
        vad => true
        vbr => true
        abr => 0
        vbr_quality => 4
        dtx => false
        preprocess => false
        pp_vad => false
        pp_agc => false
        pp_agc_level => 8000
        pp_denoise => false
        pp_dereverb => false
        pp_dereverb_decay => 0.4
        pp_dereverb_level => 0.3

        [plc]
        genericplc => true
        genericplc_on_equal_codecs => false

        [silk8]
        type=silk
        samprate=8000
        fec=true
        packetloss_percentage=10
        maxbitrate=10000

        [silk12]
        type=silk
        samprate=12000
        maxbitrate=12000
        fec=true
        packetloss_percentage=10;

        [silk16]
        type=silk
        samprate=16000
        maxbitrate=20000
        fec=true
        packetloss_percentage=10;

        [silk24]
        type=silk
        samprate=24000
        maxbitrate=30000
        fec=true
        packetloss_percentage=10;

         

        Passo 7

        • Abra o softfone WebRTC
        • Abra a aba ExpertMode
          • Marque apenas as opções
            • Disable Video: True
            • Enable RTCWeb Breaker: False
            • WebSocket Server URL: wss://IP_ASTERISK:8089/ws
            • SIP outbound Proxy URL: Deixar em branco
            • ICE Servers: [{url:'stun:stun.l.google.com:19302'}]
            • Max bandwidth (kbps): Deixar em branco
            • Disable 3GPP Early IMS[7]:
            • Disable debug messages[8]:
            • Cache the media stream[9]:
          • Salve os ddos
        • Abra as configurações de registro do Softfone
          • Configure as opções
            • Display Name: 1001
            • Private Identity*: 1001
            • Public Identity*: sip:1001@IP_ASTERISK
            • Password: PASS_SIP
            • Realm*: asterisk.org
          • Faça o Login

         

        Erro ao efetuar o login: certifique-se que realizou o acesso ao servidor através do browser como descrito no # Passo 3

        Lets Encrypt

        $ apt install certbot python-certbot-apache
        $ certbot --apache
        $ certbot certonly --apache
        $ certbot renew --dry-run
        $ cd /etc/letsencrypt/live
        $ ls

         

        Links Úteis

        • SipMl5
        • Ast+WebRtc
         Página inicial do FAQ
        • FAQ
          • APIs
            • FAQs Favoritos

              © Copyright 2025 Fabriciojf.com  Criado por FábioCostaMKT   Pastes   Administração