Configurare un trunk PJSIP in Asterisk: registra un numero ZuteSIP

Aggiornato il 2026-09-30 · A cura del team ZuteSIP (ZuteSIP Inc.)

In breve: Per collegare Asterisk a ZuteSIP, aggiungi a pjsip.conf cinque sezioni per un trunk: una registration che punta a sip.zutesipdialer.com, un auth con username e password SIP, un aor, un endpoint limitato a ulaw e alaw e un identify che riconosce il nostro server. Poi instrada il DID in extensions.conf e chiama in uscita tramite l'endpoint.

Questa è la versione per Asterisk puro, per chi gestisce direttamente i file di configurazione. Segue lo schema di trunk degli esempi ufficiali di res_pjsip, con i valori di ZuteSIP già inseriti.

01

Cosa ti serve

  • ✓ Un numero ZuteSIP con username e password SIP presi dalla pagina del numero nella dashboard.
  • ✓ Asterisk con res_pjsip caricato (qualsiasi versione attualmente supportata).
  • ✓ Accesso shell per modificare /etc/asterisk/pjsip.conf ed extensions.conf, e la CLI di Asterisk per i test.
02

Valori ZuteSIP usati nella configurazione

ImpostazioneValore
Server SIP / registrar / dominiosip.zutesipdialer.com
Trasporto e portaUDP o TCP 5060; TLS 5061
Username<SIP_USERNAME> (dalla pagina del numero nella dashboard)
Password<SIP_PASSWORD> (dalla stessa pagina)
AutenticazioneDigest (username + password), basato su registrazione
CodecG.711 µ-law (PCMU) e G.711 A-law (PCMA)
DTMFRFC 2833 (eventi RTP) o SIP INFO
DID in entrata<YOUR_NUMBER> in formato E.164
03

pjsip.conf: trasporto e trunk

Incolla questo in pjsip.conf e sostituisci i segnaposto. Salta il blocco transport se hai già un trasporto UDP. Per TCP o TLS crea il trasporto corrispondente e usa la porta 5061 con TLS.

Identify riconosce le chiamate in base all'indirizzo di origine del nostro traffico SIP; Asterisk risolve l'hostname quando carica la configurazione.

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
; behind NAT also set:
; external_media_address=<PUBLIC_IP>
; external_signaling_address=<PUBLIC_IP>
; local_net=192.168.0.0/16

[zutesip]
type=registration
transport=transport-udp
outbound_auth=zutesip-auth
server_uri=sip:sip.zutesipdialer.com:5060
client_uri=sip:<SIP_USERNAME>@sip.zutesipdialer.com
contact_user=<YOUR_NUMBER>
retry_interval=60

[zutesip-auth]
type=auth
auth_type=userpass
username=<SIP_USERNAME>
password=<SIP_PASSWORD>

[zutesip]
type=aor
contact=sip:sip.zutesipdialer.com:5060
qualify_frequency=60

[zutesip]
type=endpoint
transport=transport-udp
context=from-zutesip
disallow=all
allow=ulaw,alaw
dtmf_mode=rfc4733
outbound_auth=zutesip-auth
aors=zutesip
from_user=<SIP_USERNAME>
from_domain=sip.zutesipdialer.com
callerid=<YOUR_NUMBER>
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes

[zutesip]
type=identify
endpoint=zutesip
match=sip.zutesipdialer.com
04

extensions.conf: dialplan in entrata e in uscita

Le chiamate in entrata arrivano nel contesto from-zutesip con il tuo numero come interno composto. Lo schema in uscita invia tramite il trunk i numeri composti con il più iniziale.

Nella riga in uscita, ${EXTEN} è la variabile di canale di Asterisk con il numero composto. Sostituisci 1001 con il tuo interno o gruppo di squillo.

[from-zutesip]
; inbound: DID = your ZuteSIP number
exten => <YOUR_NUMBER>,1,NoOp(Inbound call on ZuteSIP DID)
 same => n,Dial(PJSIP/1001,30)
 same => n,Hangup()
; catch other DID formats (with or without +)
exten => _X.,1,Goto(from-zutesip,<YOUR_NUMBER>,1)

[from-internal]
; outbound: dial +<country code><number>
exten => _+X.,1,Set(CALLERID(num)=<YOUR_NUMBER>)
 same => n,Dial(PJSIP/${EXTEN}@zutesip,60)
 same => n,Hangup()
05

Passo dopo passo: carica e testa

  1. 1Salva entrambi i file ed esegui pjsip reload e dialplan reload nella CLI di Asterisk (asterisk -rvvv).
  2. 2Esegui pjsip show registrations e verifica che zutesip risulti Registered.
  3. 3Esegui pjsip show endpoint zutesip per controllare i codec, il contact dell'aor e la corrispondenza dell'identify.
  4. 4Chiama il tuo numero ZuteSIP da un altro telefono e osserva la CLI: la chiamata deve entrare in from-zutesip e far squillare l'interno 1001.
  5. 5Componi un numero internazionale da un interno locale nel formato +paese e verifica che il destinatario veda il tuo numero ZuteSIP.
06

ID chiamante in uscita

Imposta come ID chiamante il numero a cui appartiene l'account SIP, con callerid sull'endpoint oppure con CALLERID(num) nel dialplan come mostrato. Mantienilo coerente con le credenziali del trunk. Le chiamate in uscita usano i 1.000 minuti al mese inclusi nel numero.

07

Risoluzione dei problemi

  • ✓ Registrazione 401/403: username o password non corrispondono, oppure la sezione auth non è collegata tramite outbound_auth. Esegui pjsip set logger on e leggi lo scambio REGISTER.
  • ✓ Chiamate in entrata rifiutate come anonime o con «No matching endpoint found»: manca la sezione identify oppure l'indirizzo di origine non corrisponde. Verifica che l'hostname venga risolto sul tuo server e ricarica.
  • ✓ Audio a senso unico: imposta external_media_address, external_signaling_address e local_net sul trasporto, lascia attivi rtp_symmetric e force_rport e apri nel firewall l'intervallo di porte di rtp.conf.
  • ✓ 488 Not Acceptable Here: codec non compatibili. Mantieni allow=ulaw,alaw.
  • ✓ DTMF non rilevato: mantieni dtmf_mode=rfc4733 (il metodo a eventi RTP definito in RFC 2833); usa info solo se l'altra parte richiede SIP INFO.
FAQ

Domande frequenti

Servono sia la sezione registration sia la sezione identify?
Sì. La registration indica a ZuteSIP dove inviare le tue chiamate, mentre identify permette ad Asterisk di associare quelle chiamate in entrata all'endpoint zutesip.
rfc4733 è la stessa cosa del DTMF RFC 2833?
Sì. RFC 4733 ha aggiornato RFC 2833 e descrive lo stesso metodo a eventi RTP, che è quello usato dall'impostazione rfc4733 di Asterisk.
Posso usare chan_sip invece di PJSIP?
chan_sip è stato rimosso dalle versioni attuali di Asterisk, quindi PJSIP è la strada supportata. Server, credenziali e codec restano gli stessi.
Posso usare TLS con Asterisk?
Sì. Crea un trasporto TLS, punta registration e aor alla porta 5061 e fai riferimento a quel trasporto. La cifratura dei media SRTP non è disponibile.
Come aggiungo un secondo numero ZuteSIP?
Duplica le sezioni registration, auth, aor, endpoint e identify con un nuovo nome e le credenziali di quel numero, e aggiungi il suo DID al dialplan.
ZuteSIP offre un'API per Asterisk?
No. Non esistono API per i clienti né webhook; Asterisk si collega tramite SIP standard con le credenziali di ogni numero.
→
SRC
✓

Tutto incluso in ogni numero

  • ✓ SMS in entrata illimitati
  • ✓ Chiamate in entrata illimitate
  • ✓ 500 SMS in uscita al mese
  • ✓ 1.000 minuti in uscita al mese
  • ✓ Credenziali SIP per qualsiasi softphone o centralino
  • ✓ Inoltro di chiamata verso qualsiasi telefono
  • ✓ Dialer web nell'area clienti
  • ✓ Il numero resta tuo finché vuoi
  • ✓ Garanzia di sostituzione di 7 giorni — nuovo numero gratis

Da $1.80/mese · fatturato annualmente ($21.60).

Garanzia di sostituzione di 7 giorni

Se entro 7 giorni dall'acquisto il numero non funziona per te, ad esempio perché un'app non lo accetta o i codici non arrivano, lo sostituisci gratis con un nuovo numero dello stesso paese con un clic dalla dashboard, fino a 2 volte, che tu l'abbia usato o no. E se non è stato usato per nessuna chiamata o SMS, puoi invece ottenere un rimborso completo.

Vedi tutti i numeri →

Le pagine di registrazione e checkout sono solo in inglese.