Ciao, apro una nuova discussione per fare seguito a una dell'anno scorso sullo stesso argomento: premesso che non sono un esperto di Asterisk o FreePBX, ho provato a replicare la configurazione descritta QUI compilando sia dall'interfaccia web che nei file di configurazione i parametri indicati per costruire il trunk PJSIP.
In breve, dopo aver aggiunto una rotta in uscita e una in ingresso di default, le chiamate in uscita funzionano ma quelle in ingresso no.

Per riferimento, sto utilizzando l'immagine izPBX in un container agganciato alla rete dell'host (il ping IPv6 funziona e il container stesso ha un IPv6 sulla LAN).
Inoltre, nelle impostazioni della Iliadbox ho disattivato la porta TEL e il firewall IPv6 per poter anche solo riuscire ad effettuare la registrazione del trunk PJSIP in Asterisk (ma se non era necessario o c'era un altro modo, correggetemi pure).

Vorrei chiedere l'aiuto di quancuno più esperto, magari anche per costruire assieme un riferimento completo per la configurazione del VoIP Iliad in una sola discussione.

Riporto di seguito l'output di alcuni comandi di diagnostica che ho trovato citati nella documentazione di Asterisk

CLI> pjsip show registrations

Premi per mostrare Premi per nascondere

...
Registration/ServerURI: Iliad/sip:voip.iliad.it
Auth: Iliad
Status: Registered (exp. 3476s)

CLI> pjsip show endpoints

Premi per mostrare Premi per nascondere

...
Endpoint: Iliad
State: Not in use
Channels: 0 of inf
OutAuth: Iliad/07XXXX
Aor: Iliad
MaxContact: 0
Contact: Iliad/sip:voip.iliad.it
Hash: 85XXXX
Status: NonQual
RTT: nan
Transport: ipv6-udp
Type: udp
COS: 3
TOS: 96
BindAddress: [::]:5060
Identify: Iliad/Iliad
Match: 2a01:X::X/128

CLI> pjsip show history

Premi per mostrare Premi per nascondere

No. Timestamp (Dir) Address SIP Message
===== ========== ============================== ===================================

Riporto inoltre il messaggio di errore che ottengo in presenza delle chiamate in ingresso, le quali finiscono direttamente nella segreteria telefonica Iliad:

Log della categoria core con verbosità a 4

Premi per mostrare Premi per nascondere

[2024-01-03 17:40:22] DEBUG[1177]: res_pjsip/pjsip_distributor.c:472 ast_sip_get_distributor_serializer: Calculated serializer pjsip/distributor-0000003c to use for Request msg INVITE/cseq=828268894 (rdata0x7fa4840049a8)
[2024-01-03 17:40:22] DEBUG[142273]: res_pjsip_outbound_registration.c:570 line_identify: Determined relationship to outbound registration 'Iliad' based on line 'cemucjh', using configured endpoint 'Iliad'
[2024-01-03 17:40:22] DEBUG[142273]: res_pjsip_session.c:4301 session_on_rx_request: (null session) Request: INVITE
[2024-01-03 17:40:22] DEBUG[142273]: res_pjsip_session.c:4127 handle_new_invite_request: Request:
[2024-01-03 17:40:22] ERROR[142273]: res_pjsip.c:1161 create_dialog_uas: Could not create dialog with endpoint Iliad. Invalid URI (PJSIP_EINVALIDURI)
[2024-01-03 17:40:22] DEBUG[142273]: res_pjsip_session.c:4142 handle_new_invite_request: Failure in pre session setup
[2024-01-03 17:40:22] DEBUG[142273]: res_pjsip_session.c:4321 session_on_rx_request: (null session) Handled request INVITE ? yes
[2024-01-03 17:40:22] DEBUG[1177]: res_pjsip/pjsip_distributor.c:394 find_dialog: Could not find matching transaction for Request msg ACK/cseq=828268894 (rdata0x7fa4840049a8)
[2024-01-03 17:40:22] DEBUG[1177]: res_pjsip/pjsip_distributor.c:472 ast_sip_get_distributor_serializer: Calculated serializer pjsip/distributor-0000003c to use for Request msg ACK/cseq=828268894 (rdata0x7fa4840049a8)
[2024-01-03 17:40:22] DEBUG[142273]: res_pjsip_outbound_registration.c:570 line_identify: Determined relationship to outbound registration 'Iliad' based on line 'cemucjh', using configured endpoint 'Iliad'

Log della categoria pjsip con verbosità on

Premi per mostrare Premi per nascondere

<--- Received SIP request (965 bytes) from UDP:[2a01:X::X]:5060 --->
INVITE sip:07XX@[2a01:X::X]:5060;line=pdelzjd SIP/2.0
Call-ID: 30XXXX@voip.iliad.it
Contact: <sip:pcxxxx@[2a01:X::X]:5060>
Content-Type: application/sdp
CSeq: 835787473 INVITE
From: <sip:38XXXX@voip.iliad.it;user=phone>;tag=30xxxx
Max-Forwards: 28
Record-Route: <sip:[2a01:X::X]:5060;lr>;session=5926
Supported: 100rel
To: <sip:07XXXX@172.30.20.1;user=phone>
Via: SIP/2.0/UDP [2a01:X::X]:5060;branch=z9xxxx
Allow: INVITE,ACK,BYE,CANCEL,UPDATE,REFER,INFO,PRACK
User-Agent: Cirpack/v4.88 (gw_sip)
Content-Length: 272
...
v=0
o=anonymous 170436626831 170436626831 IN IP6 2a01:X::X
s=SIP Call
c=IN IP6 2a01:X::X
t=0 0
m=audio 13386 RTP/AVP 8 101
b=AS:82
a=rtpmap:8 PCMA/8000/1
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
a=sendrecv
...
[2024-01-04 12:04:29] ERROR[3592]: res_pjsip.c:1161 create_dialog_uas: Could not create dialog with endpoint Iliad. Invalid URI (PJSIP_EINVALIDURI)
<--- Transmitting SIP response (532 bytes) to UDP:[2a01:X::X]:5060 --->
SIP/2.0 500 Server Internal Error
Via: SIP/2.0/UDP [2a01:X::X]:5060;rport=5060;received=2a01:X::X;branch=z9xxxx
Record-Route: <sip:[2a01:X::X]:5060;lr>;session=5926
Call-ID: 30xxxx@voip.iliad.it
From: <sip:38XXXX@voip.iliad.it;user=phone>;tag=30xxxx
To: <sip:07XXXX@172.30.20.1;user=phone>;tag=z9xxxx
CSeq: 835787473 INVITE
Server: FPBX-16.0.40.7(20.5.0)
Content-Length: 0
...
<--- Received SIP request (443 bytes) from UDP:[2a01:X::X]:5060 --->
ACK sip:07XXXX@[2a01:X::X]:5060;line=pdelzjd SIP/2.0
Call-ID: 30xxxx@voip.iliad.it
CSeq: 835787473 ACK
From: <sip:38XXXX@voip.iliad.it;user=phone>;tag=30xxxx
Max-Forwards: 28
To: <sip:07XXXX@172.30.20.1;user=phone>;tag=z9xxxx
Via: SIP/2.0/UDP [2a01:X::X]:5060;branch=z9xxxx
Content-Length: 0

Per completezza, l'unica rotta in ingresso è configurata nel modo seguente: tutti i parametri sono a default eccetto "Set destination", impostato verso una estensione collegata a un soft-phone sul mio smartphone (la rotta l'ho configurata tramite l'interfaccia web PBX, e non so a quale file corrisponda: se può aiutare cercherò di ottenere le righe del/dei file che vengono interessate da questa impostazione)

Ringrazio in anticipo gli utenti del forum per il tempo speso, sia nella discussione passata sia per chi vorrà partecipare in questa.

    procsiab Aggiungo il segmento di history PJSIP che non ho incollato come output del comando pjsip show history

    Premi per mostrare Premi per nascondere

    00000 1704534992 * <== [2a01:X::X INVITE sip:07XXXX@[2a01:X::X]:5060;line=jxltyna SIP/2.0
    00001 1704534992 * ==> [2a01:X::X SIP/2.0 500 Server Internal Error
    00002 1704534992 * <== [2a01:X::X ACK sip:07XX@[2a01:X::X]:5060;line=jxltyna SIP/2.0

    procsiab From: <sip:[38XXXX@voip.iliad.it](mailto:38XXXX@voip.iliad.it);user=phone>;tag=30xxxx
    To: <sip:07XXXX@172.30.20.1;user=phone>;tag=z9xxxx
    CSeq: 835787473 INVITE

    Mi perplimono queste righe: in particolare to 172.30.20.1

    Come se freepbx stesse mandando al proxy SIP iliad il suo IPv4 privato al posto dell’IPv6.

    procsiab Match: 2a01:X::X/128

    Nel match cosa hai messo ?
    Ci va l’IP del proxy Iliad qui.

      gandalf2016 La ringrazio per la sua risposta: effettivamente quell'IPv4 che inizia con 172 non l'ho neanche "censurato" dai log, proprio perché non corrisponde con nessuno dei miei dispositivi, almeno credo; aggiungo che non ho nessuna sottorete che comprenda quell'indirizzo, non lo ritrovo su nessuno dei miei dispositivi.

      Dal server che esegue Asterisk:
      ip -br addr

      Premi per mostrare Premi per nascondere
      lo               UNKNOWN        127.0.0.1/8 ::1/128 
      enp5s0           UP             192.168.1.55/24 2a01:X::Xa/128 fe80:X::X6/64 
      podman0          UP             10.88.0.1/16 fe80:X::Xe/64 
      veth0@if2        UP             fe80:X::Xb/64 
      tailscale0       UNKNOWN        X.X.X.X/32 fe80:X::Xa/64

      Confermo che l'indirizzo IPv6 nel campo Match corrisponde con l'indirizzo che ottengo risolvendo via DNS il mio proxy col seguente comando:

      resolvectl query proxy-voip-1.iliad.it

      Infine, dato che uso FreePBX e non conosco esattamente la corrispondenza delle impostazioni nei file di configurazione di Asterisk, ho cercato la stringa 172 all'interno della cartella /etc/asterisk ma non ho avuto risultati per file in linea; invece, ho trovato un parametro di default sotto la cartella backup:

      $ cd /etc/asterisk
      $ grep -R 172
      backup/sip.conf.bk.1704139227:;rtpbindaddr=172.16.42.1        ; IP address to bind RTP listen sock to (default is disabled). When
      backup/sip.conf.bk.1704139227:;contactpermit=172.16.0.0/255.255.0.0  ; restrict at what IPs your users may
      backup/sip.conf.bk.1704139227:;      localnet=172.16.0.0/12           ; Another RFC1918 with CIDR notation
      backup/sip.conf.bk.1704139227:; media_address = 172.16.42.1
      backup/sip.conf.bk.1704139227:;directmediapermit=172.16.0.0/16; which RTP source IPs should be able to pass directmedia to

      Potrebbe essere uno di questi default che in qualche modo entra in gioco se non specificato diversamente? In tal caso, dove potrei provare ad impostarlo?

      Gli uri tra <> dei campi From e To di un messaggio SIP normalmente non causano problemi, quelli che contano sono i parametri tag=.

      Considerato che la INVITE arriva in terminazione ma viene scartata dal tuo Agent, suppongo che ci sia un problema di check troppo restrittivo. Le ipotesi sono due:

      1. Potrebbe non andargli bene come scritto sopra un indirizzo IP4 nel uri del campo To (dovrebbe essere l’indirizzo del Agent che usi)
      2. Non gli va bene l’uri del campo Request-URI della INVITE:
        sip:07XX@[2a01:X::X]:5060;line=pdelzjd
        Forse non accetta quel campo line=*

      Per me è un baco

        trabattaro Per me è un baco

        Proverò a testare la stessa configurazione su versioni differenti di Asterisk/FreePBX, che in effetti ancora non ho fatto. Vi riporterò nuovamente i log per le chiamate in ingresso per le stesse categorie che ho citato nel mio primo messaggio. Nel frattempo sono aperto a fare eventuali tentativi, se a qualcuno venisse in mente qualcos'altro.

        Fino ad ora, tutte le mie prove sono state effettuate su:

        • Asterisk 20
        • FreePBX 16

        trabattaro Ho testato con Asterisk 18.15.0, mantenendo FreePBX 16, e con la stessa identica configurazione riesco a ricevere le chiamate in ingresso... Sono propenso a darle ragione sulla ipotesi del bug.

        Per questa prova ho utilizzato l'immagine container docker.io/izdock/izpbx-asterisk:18.16.14, abbinata al database MariaDB alla specifica versione 10.6.10 (quella supportata dall'immagine appena citata), usando l'immagine container docker.io/library/mariadb:10.6.10.

        Mi chiedo se ci sia un metodo empirico per confrontare in generale l'installazione con Asterisk 20.5.0 (versione che ho utilizzato fin dall'inizio) e questa versione 18 LTS precedente, oppure se potrei scovare il problema controllando il codice stesso dell'applicazione.

        Non mi sento di dire di aver risolto il mio problema iniziale, dato che in generale molti moduli NPM che vengono impacchettati con la versione 18 sono fuori supporto: proverò ad allineare questa versione al punto più recente possibile coi repository dei moduli e aggiornerò la discussione di conseguenza.

        Sono riuscito a configurare Asterisk 18 tramite FreePBX 16 come desideravo, e ad aggiornare tutti i moduli deprecati anche tramite il gestore moduli. Rimane il fatto che quindi in Asterisk 20 si pone qualche condizione differente, forse per le rotte in ingresso...

        Aggiungo che, sfruttando l'immagine container izPBX (basata su Rocky Linux 8) il server di posta integrato Postfix non si avvia correttamente, sto indagando questo problema al momento e ho messo da parte il confronto con Asterisk 20.

        Una volta messo a punto il tutto, vorrei pubblicare qui le istruzioni per configurare il minimo indispensabile e ottenere chiamate in ingresso e uscita, dopo la creazione del trunk.

        Buonasera, dopo un po' di tentativi con differenti versioni di Asterisk, sono in grado di riprodurre in modo affidabile l'errore che ho descritto nel mio primo messaggio a partire dalla versione 20.5.0

        Al contrario, da Asterisk 20.4.0 a ritroso l'errore di URI sul trunk per le chiamate in ingresso non si verifica.

        Per il momento sono soddisfatto della configurazione che riporto a seguire, tuttavia se qualcuno avesse idee per tentare di scovare il problema sono a disposizione per fare tentativi.

        Sistema e software

        PBX

        Utilizzo l'immagine container docker.io/izdock/izpbx-asterisk:20.16.9 che è basata su Rocky Linux 8 e comprende Asterisk 20.4.0 e FreePBX 16; con essa, utilizzo MariaDB alla esatta versione 10.11.4, come indicato dall'autore, tramite l'immagine docker.io/library/mariadb:10.11.4

        Utilizzo Podman per eseguire i due container in un Pod, ma lo steso autore utilizza Docker Compose e documenta questo secondo caso d'uso.

        Iliadbox

        Per poter utilizzare un centralino virtuale su un dispositivo nella propria LAN, è necessario modificare le seguenti opzioni della Iliadbox:

        • Parametri della Iliadbox (Modalità avanzata)
          • (connessione internet) Configurazione IPv6
            • (Generale) Firewall > Attiva il firewall IPv6: off
            • (DHCPv6) Abilita il DHCPv6: ON
          • (Telefonia) Cablato
            • SIP > Attiva porta TEL su iliadbox Server: off

        Nell'ultima schermata citata sarà inoltre possibile trovare i dati per configurare il trunk PJSIP

        NOTA: subito dopo aver cambiato le impostazioni per la porta TEL e IPv6, io ho riavviato la Iliadbox.

        Trunk PJSIP

        Configurazione

        Impostato come descritto da questo post; si noti che è necessario modificare sia le impostazioni di FreePBX dalle schede indicate, sia alcuni file di Asterisk.

        Assumendo che il numero di telefono sia 07XXXX (senza il prefisso +39), il proxy sia proxy-voip-1.iliad.it e il dominio sia voip.iliad.it (questi dati sono accessibili dalla schermata "Cablato" della sezione "Telefonia" nei "Parametri della Iliadbox") segue un modello di trunk configurato:

        • Connectivity
          • Trunks
            • Add Trunk > Add SIP (chan_pjsip) Trunk
              • General
                • Trunk name: Iliad
                • Outbound CallerID: 07XXXX
              • pjsip Settings
                • General
                  • Username: 07XXXX
                  • Secret: password
                  • SIP Server: proxy-voip-1.iliad.it
                • Advanced
                  • Qualify Frequency: 0
                  • Outbound Proxy: sip:proxy-voip-1.iliad.it\;lr
                  • Contact User: 07XXXX
                  • From Domain: voip.iliad.it
                  • From User: 07XXXX
                  • Client URI: sip:07XXXX@voip.iliad.it
                  • Server URI: sip:voip.iliad.it
                  • AOR Contact: sip:voip.iliad.it

        Dopo aver apportato le seguenti modifiche, cliccare il bottone Submit in basso a destra della pagina, e una volta terminato il caricamento il bottone rosso Apply Config in alto a destra.

        Una volta ricaricata la pagina web, sarà necessario modificare altri tre file di configurazione; per comodità riporto i comandi che ho usato da un sistema Fedora IoT con Podman installato:

        1. Avviare una sessione di login all'interno del container di izPBX

          podman exec -it nomedelcontainer bash
        2. Spostarsi nella cartella di configurazione di Asterisk

          cd /etc/asterisk
        3. Modificare i tre file di configurazione, copiando e incollando i seguenti tre comandi

          cat << EOF >> pjsip.transports_custom_post.conf
          [ipv6-udp]
          type=transport
          protocol=udp
          bind=[::]:5060
          allow_reload=no
          tos=cs3
          cos=3
          EOF
          cat << EOF >> pjsip.endpoint_custom_post.conf
          [Iliad](+type=endpoint)
          transport=ipv6-udp
          EOF
          cat << EOF >> pjsip.registration_custom_post.conf
          [Iliad](+type=registration)
          transport=ipv6-udp
          EOF

        Arrivati a questo punto, sarà necessario riavviare il container dell'applicazione Asterisk/FreePBX; nel mio caso, riavvio il Pod izPBX che contiene sia il container che l'applicazione (il comando preciso varia in base al modo in cui viene gestito il container e allo strumento).

        Prova e rimedi

        Una volta riavviato il container di izPBX, ho controllato la situazione del trunk eseguendo una sessione all'interno del container e agganciandomi alla CLI di Asterisk coi seguenti comandi:

        podman exec -it nomedelcontainer bash
        asterisk -rvvvv
        pjsip set logger on

        NOTA: Il terzo comando potrebbe andare in errore: attendere che il servizio di Asterisk sia completamente disponibile, questo sarà denotato dalla riga "Asterisk Ready."

        Se notate dei messaggi di registrazione fallita per il trunk, controllate che esso sia in ascolto davvero su IPv6 col seguente comando:

        pjsip show endpoints

        Se l'indirizzo di ascolto risulta 0.0.0.0:5060 invece di [::]:5060, ci deve essere un errore nei file di configurazione o nel percorso dove sono stati posizionati, oppure il container non è stato riavviato correttamente.

        Avrete conferma che il trunk si è correttamente registrato se lo stato riportato dal seguente comando sarà "Registered":

        pjsip show registrations

        Ricevere chiamate

        Per ricevere chiamate è necessario decidere come esse verranno instradate all'interno del sistema: nel caso si voglia collegare la chiamata con un dispositivo fisico, come un telefono IP, sarà necessario aggiungere solamente una estensione, e poi configurare l'accesso su tale dispositivo.

        Per quanto mi riguarda, descrivo a seguire il mio caso specifico, per il quale vogliamo far squillare i nostri cellulari tramite client SIP installati su di essi e connessi al centralino:

        nel caso di una chiamata in arrivo, tutti i cellulari squilleranno; in assenza di risposta, la chiamata sarà inoltrata a una casella vocale condivisa per poter lasciare un messaggio.

        Estensioni

        Una estensione rappresenta un dispositivo fisico o software, che può interagire col centralino ricevendo ed effettuando chiamate. Creiamo una estensione SIP nel modo seguente:

        • Applications
          • Extensions
            • Quick Create Extension
              • Extension Number: 301 (scegliere un numero maggiore di 199)
              • Display Name: Asdrubale Temistocli
              • Email Address: indirizzo@postaelet.it
            • (Next)
            • (Finish)

        Cliccare Apply Config in alto a destra.

        NOTA: Per creare la casella vocale condivisa, ho aggiunto una estensione virtuale e poi ho permesso l'accesso la sua casella vocale dalle altre estensioni.

        Linphone

        Come client SIP abbiamo selezionato Linphone: per effettuare l'accesso dall'app Android è suficiente scegliere di aggiungere un account SIP generico, inserire il numero estensione (301) come "Utente" e l'IP della macchina che esegue izPBX come "Dominio".

        La password sarà visibile dalla scheda "General" per l'estensione appena aggiunta: per visualizzarla è necessario cliccare sul bottone con l'icona del foglio e matita a destra della riga dell'estensione, e spostare il cursore del mouse sulla casella di testo accanto all'etichetta "Secret"

        NOTA: Potete effettuare un test di eco della voce chiamando il numero *43 dal client appena registrato, per confermare che tutto funzioni correttamente.

        Registrazioni di sistema

        Per poter collegare la chiamata al centralino prima di compiere qualunque instradamento, ho scelto qusto metodo sul quale sono aperto a suggerimenti: usare un annuncio che riproduce una registrazione di lunghezza nulla, e poi instrada la chiamata a un "Ring group".

        In primo luogo, ho generato un file WAV vuoto col seguente comando:

        ffmpeg -f lavfi -t 2 -i anullsrc -bsf noise=drop=1 vuoto.wav

        Poi ho caricato il file nella sezione delle registrazioni:

        • Admin
          • System Recordings
            • Add Recording
              • Name: vuoto
              • Description: Proxy per ring group
              • Upload Recording (Browse) > selezionare il file vuoto generato
              • Convert To: selezionare anche alaw

        Ricordatevi di premere il bottone Submit in basso a destra, seguito dal bottone Apply Config in alto a destra, e attendete il caricamento.

        Ring Group

        Aggiungiamo il gruppo di estensioni da far squillare con l'oggetto Ring Group: prima di tutto, nel mio caso ho dovuto installare il relativo modulo; per farlo, seguire il percorso che riporto nei menù della pagina:

        • Admin
          • Module Admin
            • Check Online cliccare il bottone
              • (Applications) > Ring Groups espandere l'oggetto
                • Action: (Download and Install)
            • Process cliccare il bottone in basso a destra

        A questo punto cliccare Confirm, poi attendere l'installazione e cliccare Return e infine cliccare Apply Config in alto a destra.

        Aggiungiamo il Ring Group nel modo seguente:

        • Applications
          • Ring group
            • Add Ring Group
              • Ring Group Number: 400
              • Group Description: Squilla tutte le estensioni
              • Extension List: inserire numeri estensioni da far squillare separati da a capo
              • Ring Time: 60
              • Destination if no answer: Voicemail
              • selezionare dal menu a tendina la casella vocale in cui ricevere i messaggi in caso di mancata risposta

        Premere Submit in basso a destra, e poi Apply Config in alto a destra.

        Annunci

        Per poter innescare correttamente il Ring Group appena creato, aggiungiamo un annuncio che faccia da tramite verso di esso, usando la registrazione vuota creata in precedenza:

        • Applications
          • Announcements
            • Add
              • Description: Annuncio vuoto (proxy per ring group)
              • Recording: vuoto
              • Destination after Playback: Ring Groups
              • 400 Squilla tutte le estensioni

        Premere Submit in basso a destra, e poi Apply Config in alto a destra.

        Rotte in ingresso

        Finalmente inseriamo la rotta in ingresso che collegherà le chiamate esterne con le estensioni autenticate verso il centralino:

        • Connectivity
          • Inbound Routes
            • Add Inbound Route
              • General
                • Description: Predefinita
                • Set Destination: Announcements
                • Annuncio vuoto (proxy per ring group)

        Premere Submit in basso a destra, e poi Apply Config in alto a destra.

        A questo punto potete già testare chiamando il vostro numero di linea fissa da un altro numero esterno, e verificare che le estensioni nel Ring Group squillino tutte.

        Rotte in uscita

        A concludere questa guida, riporto come ho configurato una rotta in uscita abbastanza permissiva che permetta di chiamare numeri di 3, 10 e 11 cifre, con o senza prefisso italiano:

        • Connectivity
          • Outbound Routes
            • Add Outbound Route
              • Route Settings
                • Route Name: Nazionali
                • Trunk Sequence for Matched Routes: Iliad
              • Dial Patterns
                • (solamente come match pattern)
                  1XX
                  +391XX
                  XXXXXXXXXX
                  +39XXXXXXXXXX
                  XXXXXXXXXXX
                  +39XXXXXXXXXXX

        Premere Submit in basso a destra, e poi Apply Config in alto a destra.

        NOTA: Potete provare ad esempio a chiamare il 177.


        A disposizione per correzioni e spunti.

          6 mesi dopo

          procsiab Se l'indirizzo di ascolto risulta 0.0.0.0:5060 invece di [::]:5060, ci deve essere un errore nei file di configurazione o nel percorso dove sono stati posizionati, oppure il container non è stato riavviato correttamente.

          Avrete conferma che il trunk si è correttamente registrato se lo stato riportato dal seguente comando sarà "Registered":

          Ciao, io ho fatto circa tutto quello che hai menzionato, ma quando deve registrare il numero ottengo il seguente errore:

          [2024-06-30 08:13:52] WARNING[26590]: res_pjsip_outbound_registration.c:895 schedule_retry: No response received from 'sip:voip.iliad.it' on registration attempt to 'sip:091xxxxxx@voip.iliad.it', retrying in '60'

          9b0f02815be0*CLI> pjsip show endpoints
          
           Endpoint:  <Endpoint/CID.....................................>  <State.....>  <Channels.>
              I/OAuth:  <AuthId/UserName...........................................................>
                  Aor:  <Aor............................................>  <MaxContact>
                Contact:  <Aor/ContactUri..........................> <Hash....> <Status> <RTT(ms)..>
            Transport:  <TransportId........>  <Type>  <cos>  <tos>  <BindAddress..................>
             Identify:  <Identify/Endpoint.........................................................>
                  Match:  <criteria.........................>
              Channel:  <ChannelId......................................>  <State.....>  <Time.....>
                  Exten: <DialedExten...........>  CLCID: <ConnectedLineCID.......>
          ==========================================================================================
          
           Endpoint:  Iliad                                                Not in use    0 of inf
              OutAuth:  Iliad/numerotel
                  Aor:  Iliad                                              0
                Contact:  Iliad/sip:voip.iliad.it                    8582647730 NonQual         nan
            Transport:  ipv6-udp                  udp      3     96  [::]:5060
             Identify:  Iliad/Iliad
                  Match: 2a01:e10:9::2/128
          
          
          Objects found: 1

          cosa potrebbe essere?

          Ciao, in base alla mia esperienza un problema di registrazione da parte del server Asterisk potrebbe dipendere da impostazioni incomplete o non ancora applicate sulla Iliadbox, oppure problemi di rete sul PC dove esegui il container di izpbx (firewall configurato male, indirizzo IPv6 solo link local).

          Ho avuto un caso di un calo di tensione per cui mi si è riavviato il router ma non il PC col server asterisk, ma una volta acceso il router ha smandruppato l'assegnazione degli indirizzi IPv6 sulla rete locale e ho dovuto scollegare e ricollegare il PC col server asterisk per poter effettuare nuovamente la registrazione.

          3 mesi dopo

          Salve,
          riscontro lo stesso problema descritto in questa discussione. Dopo aver configurato un trunk PJSIP verso ILIAD su una distro FreePBX versione 17.0.19.13 e Asterisk 21.4.3, riesco ad effettuare le chiamate in uscita, ma per quanto riguarda quelle in ingresso si attiva sempre il servizio di segreteria telefonoco della ILIAD.
          Nei log mi viene sempre segnalato il messaggio di errore:

          ERROR[1073762]: res_pjsip.c:1161 create_dialog_uas: Could not create dialog with endpoint iliad. Invalid URI (PJSIP_EINVALIDURI)

          Ho verificato sia le impostazioni IPv6 del PBX che della ILIADBOX, e sono come già suggeriti nel discussione.

          Riporto l'output di alcuni comandi utilizzati per verificare la configurazione del trunk:

          ==========================================================================================
          PBX*CLI> pjsip show endpoints
          Endpoint: iliad Not in use 0 of inf
          OutAuth: iliad/08251466167
          Aor: iliad 0
          Contact: iliad/sip:voip.iliad.it 8582647730 NonQual nan
          Transport: ipv6-udp udp 3 96 [::]:5060
          Identify: iliad/iliad

          Match: 2a01:e09:ff01:1:209:0:1:1/128

          PBX*CLI> pjsip show aors
          Aor: iliad 0

          Contact: iliad/sip:voip.iliad.it 8582647730 NonQual nan

          PBX*CLI> pjsip show registrations
          iliad/sip:voip.iliad.it;lr iliad Registered (exp. 763s)

          Se qualcuno ha riscontrato lo stesso problema gli sarei molto grado se mi desse qualche dritta e ringrazio in anticipo gli utenti del forum che mi saranno di aiuto

            18 giorni dopo

            sabatomelillo ho riscontrato il tuo stesso problema e dovrei essere riuscito a risolvere rimuovendo il numero dal campo Trunk > pjsip Settings > Advanced > Contact User.
            Le mie impostazioni sono ora le seguenti. Riesco a fare chiamate in uscita e ricevere chiamate in ingresso.

            Trunk

            General

            • Outbound Caller ID: <Numero>

            pjsip settings

            General

            • Username: <Numero>
            • Secret: <Password>
            • SIP Server: <Proxy>

            Advanced

            • Outbound Proxy: sip:<Proxy>\;lr
            • Contact User: VUOTO
            • From Domain: voip.iliad.it
            • From User: <Numero>
            • Client URI: sip:<Numero>@voip.iliad.it:5060
            • Server URI: sip:void.iliad.it

            Restano necessarie le modifiche ai file di configurazione descritte da @procsiab .

            procsiab

            1. Spostarsi nella cartella di configurazione di Asterisk
              cd /etc/asterisk

            2. Modificare i tre file di configurazione, copiando e incollando i seguenti tre comandi

              cat << EOF >> pjsip.transports_custom_post.conf
              [ipv6-udp]
              type=transport
              protocol=udp
              bind=[::]:5060
              allow_reload=no
              tos=cs3
              cos=3
              EOF
                              
              cat << EOF >> pjsip.endpoint_custom_post.conf
              [Iliad](+type=endpoint)
              transport=ipv6-udp
              EOF 
                       
              cat << EOF >> pjsip.registration_custom_post.conf
              [Iliad](+type=registration)
              transport=ipv6-udp
              EOF

            Consiglio infine di riavviare tutto il container / VM prima di fare ulteriori tentativi.

              10 giorni dopo

              MarcoBuster
              Vi prego di scusare il fatto che sto scrivendo in inglese, presumo che tutti voi abbiate uno strumento di traduzione nel browser, se necessario.

              Thank you very much MarcoBuster, you are 100% correct and you solved a huge problem for me which I spent hours on trying to solve. The error when receiving incoming IPv6 calls with recent Asterisk versions "Could not create dialog with endpoint $PROVIDER-NAME. Invalid URI (PJSIP_EINVALIDURI)" disappears when removing the contact_user=xyz line from the pjsip endpoint configuration. I am not using iliad.it but instead have tried both easybell.de and sipgate.de - same issue on both when using IPv6 (the very same config with contact user works when connecting over IPv4).

              I can also confirm what @procsiab wrote that the issue started somewhat recently, I have looked at my "yum history" from a FreePBX 15/16 Installation and have asterisk package upgrades and then downgrades from 20.4.0 to 20.5.0 and back to 20.4.0 on Nov 15 and Nov 16 2023, so it was almost exactly a year ago when I first encountered the IPv6 Invalid URI (PJSIP_EINVALIDURI) issue and gave up at the time.

              I have opened a bug in the asterisk bug tracker for this: https://github.com/asterisk/asterisk/issues/985

                10 giorni dopo

                Great catch @Gerald ! Hopefully the commit with your proposed fix will be part of the next Asterisk release 💓

                Apparentemente si tratta di un bug nel codice di Asterisk, che dalla versione 20.5.0 in poi è presente nel software. Sulla pagina GitHub di Asterisk è stata già accettata la modifica che corregge questo problema, quindi prossimamente mi aspetterei di vederla diventare parte di una versione successiva quando decideranno di rilasciare.
                Non ho tentato il rimedio di @sabatomelillo , se avessi tempo di farlo aggiornerò questa discussione con la mia esperienza usando l'immagine container izpbx con una versione di Asterisk più recente.

                un mese dopo

                Server URI: sip:void.iliad.it

                MarcoBuster scusa ma sei sicuro di questo void.iliad.it?
                Io sto provando per la prima volta e sono completamente ignorante in materia, però ottengo sempre

                No response received from 'sip:void.iliad.it' on registration attempt to 'sip:**********@voip.iliad.it:5060', retrying in '60'

                Ma a dirla tutta anche con Server URI sip:voip.iliad.it ottengo

                No response received from 'sip:voip.iliad.it' on registration attempt to 'sip:**********@voip.iliad.it':5060, retrying in '60'

                e anche togliendo la porta :5060

                  Sono ripartito da zero sul notebook invece che sul server (poi capirò cosa sbagliavo)
                  Vedo che la registrazione va a buon fine (Status Registered)
                  Però quando provo a fare una chiamata verso un numero mobile ottengo sempre

                  pbx_spool.c:450 attempt_thread: Call failed to go through, reason (0) Call Failure (not BUSY, and not NO_ANSWER, maybe Circuit busy or down?)

                  Nel mio caso l'FTTH si poggia su OpenFIber, non ho l'IP full stack e su ipv4 ho il range porte 16000/32000 circa (ma se il tutto gira su ipv6 presumo la cosa non conti)
                  Il container izpbx ha l'ipv6 (host networking) e ping6 google.com funziona
                  Però ad esempio vedo che da terminale non riesco a risolvere voip.iliad.it, anche se non vedo loggate relative a problemi del genere su asterisk... serve qualche DNS particolare?

                  Qualcuno potrebbe condividere un esempio di callfile hello-world funzionante per una chiamata verso numero esterno?

                    MarcoBuster Confermo che con l'aggiustamento che proponi riesco anche a ricevere chiamate su Asterisk 20.9.2; a proposito dei numeri di versione, aggiungo che il problema segnalato da @Gerald è stato corretto e dalla versione 21.6.0 di Asterisk il problema è aggiustato 🎉

                    I dettagli li ho letti dalle note di rilascio

                    Gerald thank you! I'm glad you managed to fix the bug for everyone with your GitHub issue.

                    davidecavestro hai ragione, purtoppo è un typo e non posso modificare il messaggio originale.
                    Il Server URI corretto è sip:voip.iliad.it.

                    davidecavestro hai disabilitato la porta TEL su iliadbox?

                      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