• [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.

                      Marco25 si sì, con il mio dialplan prendo anche i numeri tipo 00xx quindi si chiama all’estero. In quello vero in realtà tutte le chiamate che iniziano con +qualcosa o 00qualcosa con qualcosa diverso da 39 vengono fatte uscire su un altro trunk per evitare salassi 😉

                      Mi sa che ci risentiremo per le chiamate in uscita su rete TIM.
                      @[cancellato] può essere che il problema derivi dal fatto che OP abbia usato PJSIP e io SIP “normale”?

                        Marco25 pjsip.conf

                        A proposito, migrerò il mio template a PJSIP visto che pare che sia meglio (questo mio setup è così da asterisk 13 è solo da poco ha questo problema)

                        Grazie per il link a safe asterisk, lo leggerò fu sicuro!

                        • [cancellato]

                        eutampieri può essere che il problema derivi dal fatto che OP abbia usato PJSIP e io SIP “normale”?

                        Può essere - magari c'è qualcosa che viene parsato o riconosciuto in modo diverso - ma non sono un esperto di Asterisk.

                        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