Piccolo suggerimento che spiega come attivare due trunk SIP su FreePBX senza ricevere l’errore HANGUPCAUSE = 21.
Nel mio scenario i trunk erano tre e tutti provenienti dallo stesso provider, ogni provider aveva il suo prefisso di teleselezione.
Ho notato che i primi due non funzionavano, mentre il terzo sì. Provandoli singolarmente con un telefono VoIP funzionavano tutti senza problemi.
L’errore che riscontravo era “Dial failed for some reason with DIALSTATUS = CONGESTION and HANGUPCAUSE = 21”. Il SIP phone falliva la chiamata in uscita dando come errore “forbidden”.
Attivando il debug sulla shell di Asterisk.
sip set debug on
ho notato che ricevevo dal provider degli “access denied” o “login failed”. Ho controllato le credenziali ed ovviamente era tutto giusto.
Guardando su internet ho poi scoperto che con FreePBX (ma mi immagino anche con asterisk o altre soluzioni), in caso di trunk multipli, dobbiamo specificare anche l’utente da utilizzare. Andremo quindi nella sezione “Trunk”, selezioneremo il trunk desiderato e aggiungeremo l’opzione fromuser= nel form PEER details.
Questo è il mio box PEER details:
username=XXXXX type=peer secret=supersegreta host=sip.myprovidervoip.com insecure=very dtmfmode=rfc2833 canreinvite=no context=from-pstn fromuser=XXXXX
Aggiungendo fromuser= ad ogni trunk, tutte e tre le linee telefoniche hanno iniziato a funzionare correttamente.