Marco25 ma dnsmasq dove?

Edit: il DNS è 85.38.28.2
Qua c’è la configurazione che us(avo): https://blog.eutampieri.eu/tim-asterisk/ (perdona i colori)
Qua il ruolo ansible https://gitlab.com/eutampieri/ansible_asterisk
Qua il playbook:


---
- name: Configure asterisk PBX
  hosts: pbx
  
  vars:
    sip_peers:
      # Trunks
      - name: telecom2
        register: true
        incoming_exten:
        username:
        context: provider
        password: 
        nat: force_rport,comedia
        codecs: ulaw,alaw
        host: telecomitalia.it
        insecure: invite,port
        outboundproxy: dxxxx.co.imsw.telecomitalia.it
        fromdomain: telecomitalia.it
        fromuser: num tel
  • Marco25 ha risposto a questo messaggio

    eutampieri Su un Raspberry Pi nella rete locale. La direttiva --server=/google.com/1.2.3.4 permette di usare un dns specifico per dominio specificato, ma ho fatto prima un test con dig e quei DNS non rispondono.

    EDIT: 85.38.28.2 risponde, grazie. Come lo hai trovato e sai perché gli altri non rispondono?

      Marco25 ma scusa, se non l’hai cambiato sul router potresti usare quello. Comunque quell'IP viene dal mio router quindi dovrebbe essere giusto

      • [cancellato]

      Marco25

      AFAIK TIM usa un certo numero di server DNS - dovresti guardare cosa viene assegnato al tuo router automaticamente. Poi credo che i DNS TIM rispondano solo da rete TIM.

        [cancellato] beh spero che sia su rete TIM, altrimenti non potrebbe nemmeno usare il VoIP

          • [cancellato]

          • Modificato

          eutampieri

          Non so se magari prova anche da un telefono che non è su rete TIM - meglio "puntualizzare" 🙂

          Qua comunque manca secondo me la considerazione principale, ovvero che la ricezione delle chiamate, soprattutto su iOS, richiede le notifiche push altrimenti non va

          Ovviamente ho fatto il test su rete TIM. Il router non mi dice i DNS assegnati dall'ISP perché si serve del Raspberry. Pensavo TIM avesse solo quei due citati sopra ma a quanto pare non rispondono. 85.38.28.2 e 85.38.28.3 invece sì.

          Già un problema, il forwarding condizionale funziona, ma quando lo smartphone esegue la query xxxxx.co.imsw.telecomitalia.it verso il resolver TIM la risposta è NODATA-IPv4.

            • [cancellato]

            Marco25

            TIM se non ricordo male ha una gestione un po' complessa dei proxy VoIP - ce ne sono diversi, codificati per distertto/area gegrafica e vanno fatte interrogazioni DNS SRV per avere l'elenco di quelli per la connessione specifica - e non so se dipende anche dai DNS che dovrebbero essere usati dalla connessione.

            • Marco25 ha risposto a questo messaggio

              [cancellato] vanno fatte interrogazioni DNS SRV per avere l'elenco di quelli per la connessione specifica

              Ecco, il dialer a quanto pare fa una query A ma non trovo l'opzione per le query SRV.

              Mmmh, ho ricavato l'indirizzo dell'outbound proxy manualmente tramite nslookup ma provando a chiamare ottengo "Number unreachable" e la chiamata termina immediatamente. Il log di Android non fornisce altre informazioni...

              EDIT: ho riavviato e riesco a chiamare, ma non si riesce a rispondere alle chiamate in ingresso, perché finiscono immediatamente tra le chiamate perse, come se non si riuscisse a mantenere la connessione aperta.

              Niente, non ricevo. Ho catturato il traffico con tcpdump e ho notato questo possibile errore quando il client comunica con l'outbound proxy:

              Request-Line: OPTIONS sip:telecomitalia.it SIP/2.0
              Status-Line: SIP/2.0 500 Cx Unable To Comply NUMERO_ESADECIMALE

              Qualche suggerimento?

                Marco25 prova con asterisk. Io lo uso e mi funziona

                • Marco25 ha risposto a questo messaggio

                  eutampieri È ciò a cui stavo pensando. Tuttavia è un software che non conosco, quindi ho dubbi su alcune questioni:

                  1. È semplice da installare e mantenere per casi d'uso che prevedono un solo telefono VoIP, senza funzionalità particolari e requisiti di disponibilità?
                  2. L'installazione del centralino pone rischi per la sicurezza? Ad esempio attacchi dall'esterno? Può essere abusato per chiamate illegittime? Vanno aperte porte sul router?
                  3. Vedo che siamo alla versione 19 ma nei repo di Debian/Raspbian siamo alla versione 16. Dovrei compilare l'ultima?
                  4. Comincio da qui?

                  Operativamente poi come si comporta? Una volta configurato asterisk da CLI, collego il telefono VoIP al server asterisk locale piuttosto che al server TIM e chiamo?

                    Marco25 È semplice da installare e mantenere per casi d'uso che prevedono un solo telefono VoIP, senza funzionalità particolari e requisiti di disponibilità?

                    Più si che no

                    Marco25 L'installazione del centralino pone rischi per la sicurezza? Ad esempio attacchi dall'esterno? Può essere abusato per chiamate illegittime? Vanno aperte porte sul router?

                    No

                    Marco25 Vedo che siamo alla versione 19 ma nei repo di Debian/Raspbian siamo alla versione 16. Dovrei compilare l'ultima?

                    No

                    Marco25 Comincio da qui?

                    Io ho cominciato da dei video di una società tedesca, ma in pratica devi modificare sip.conf aggiungendo quello che ti ho linkato (era la configurazione che usavo io) più un peer

                    [username]
                    	type=friend
                    	disallow=all
                    	allow=alaw,ulaw
                    	secret=password
                    	host=dynamic
                    	context=phones

                    Devi anche modificare extensions.conf

                    [provider]
                    exten => <il numero alla fine della register String>,1,Goto(phones,0,1)
                    [phones]
                    exten =>  0,1,NoOp
                    same => n,Progress()
                    same => n,PrivacyManager(1)
                    same => n,Dial(SIP/username)
                    
                    exten => _X!,1,NoOp()
                    same => n,Progress
                    same => n,Dial(SIP/telecom/${EXTEN},60,KT)
                    exten => _+39X!,1,NoOp()
                    same => n,Progress
                    same => n,Dial(SIP/telecom/${EXTEN},60,KT)
                    exten => 0039X!,1,NoOp()
                    same => n,Progress
                    same => n,Dial(SIP/telecom/${EXTEN},60,KT)

                    Occhio che non mi vanno le chiamate in uscita verso gli altri numeri fissi TIM

                    • Marco25 ha risposto a questo messaggio

                      eutampieri Occhio che non mi vanno le chiamate in uscita verso gli altri numeri fissi TIM

                      Beh non è un problema da niente.

                        Marco25 No infatti, ma potrebbe essere un problema di codec che non ho abilitato (infatti la TIM richiede alaw e g729 e io avevo ulaw e alaw). Qua è il codec che ho compilato, vediamo se va...

                        13 giorni dopo

                        Aggiornamento, dopo parecchie decine di ore di studio sulla wiki di Asterisk, YouTube, FibraClick, e vari forum, sono arrivato a creare queste configurazioni, che mi permettono di chiamare e ricevere. Mi aspettavo problemi col NAT eppure sia SIP che RTP funzionano, non ho effettuato alcun port forwarding, non uso STUN, né SIP ALG sul router.

                        Ecco pjsip.conf (bob è il telefono VoIP)

                        [udp_transport]
                        type = transport
                        protocol = udp
                        bind = 0.0.0.0
                        
                        [bob]
                        type = endpoint
                        context = internal
                        disallow = all
                        allow = ulaw,alaw
                        aors = bob
                        auth = bob_auth
                        
                        [bob]
                        type = aor
                        max_contacts = 1
                        qualify_frequency = 25
                        
                        [bob_auth]
                        type = auth
                        auth_type = userpass
                        username = bob
                        password = 12345678
                        
                        [telecom]
                        type = endpoint
                        aors = telecom
                        outbound_proxy = sip:xxxxx.co.imsw.telecomitalia.it\;lr
                        disallow = all
                        allow = ulaw,alaw
                        context = external
                        outbound_auth = telecom_auth
                        direct_media = no
                        
                        [telecom]
                        type = aor
                        contact = sip:telecomitalia.it
                        outbound_proxy = sip:xxxxx.co.imsw.telecomitalia.it\;lr
                        qualify_frequency = 25
                        
                        [telecom_auth]
                        type = auth
                        auth_type = userpass
                        username = +39NUM_TEL
                        password = SIP_KEY
                        realm = telecomitalia.it
                        
                        [telecom_reg]
                        type = registration
                        endpoint = telecom
                        transport = udp_transport
                        outbound_auth = telecom_auth
                        server_uri = sip:telecomitalia.it
                        client_uri = sip:+39NUM_TEL@telecomitalia.it
                        outbound_proxy = sip:xxxxx.co.imsw.telecomitalia.it\;lr
                        contact_user = +39NUM_TEL
                        expiration = 86400
                        line = yes
                        
                        [telecom_id]
                        type = identify
                        endpoint = telecom
                        match = xxxxx.co.imsw.telecomitalia.it
                        srv_lookups = yes

                        E il dialplan extensions.conf. Permette solo chiamate verso l'Italia.

                        [external]
                        exten => +39NUM_TEL,1,Goto(internal,001,1)
                        
                        [internal]
                        exten => 001,1,Verbose(2, Chiamata in entrata da "${CALLERID(num)}")
                        same => n,Dial(PJSIP/bob)
                        same => n,Hangup()
                        
                        exten => _X.,1,Set(SAFE_EXTEN=${FILTER(0-9,${EXTEN})})
                        same => n,Set(ORIGINAL_EXTEN=${EXTEN})
                        same => n,GotoIf($["${EXTEN}" != "${SAFE_EXTEN}"]?error,1)
                        same => n,Verbose(2, Chiamata in uscita verso "${SAFE_EXTEN}")
                        same => n,Dial(PJSIP/${SAFE_EXTEN}@telecom)
                        same => n,Hangup()
                        
                        exten => _+39X.,1,Set(SAFE_EXTEN=+39${FILTER(0-9,${EXTEN:3})})
                        same => n,Set(ORIGINAL_EXTEN=${EXTEN})
                        same => n,GotoIf($["${EXTEN}" != "${SAFE_EXTEN}"]?error,1)
                        same => n,Verbose(2, Chiamata in uscita verso "${SAFE_EXTEN}")
                        same => n,Dial(PJSIP/${SAFE_EXTEN}@telecom)
                        same => n,Hangup()
                        
                        exten => error,1,Verbose(2, Chiamata in uscita rifiutata, numero "${ORIGINAL_EXTEN}" non valido)
                        same => n,Hangup()

                        @eutampieri Confermo che le chiamate in uscita verso TIM funzionano. Inoltre, alla luce di quanto scritto qui credo che il tuo dialplan sia bypassabile per chiamare all'estero.

                          Informativa privacy - Informativa cookie - Termini e condizioni - Regolamento - Disclaimer - 🏳️‍🌈
                          P.I. IT16712091004 - info@fibraclick.it

                          ♻️ Il server di questo sito è alimentato al 100% con energia rinnovabile