Esempio di configurazione della connessione Asterisk PJSIP a Zadarma.
Dati indicati nell'esempio:
- 111111 Il tuo numero SIP dall'area personale.
- Password la tua password dal numero SIP, dalla sezione "Impostazioni-Connessione SIP" dall'area personale.
- 1234-100 - Il tuo numero interno del centralino dall' area personale
- Password - la tua password dal numero interno del centralino dall'area personale
- 101 Numero interno Asterisk a cui si collega il softphone/telefono IP per ricevere chiamate in entrata ed effettuare chiamate in uscita.
Esempio standard di configurazione
Le chiamate in uscita dal numero interno 101 vengono indirizzate al trunk 111111 Le chiamate in entrata vengono ricevute al momento della registrazione e indirizzate al numero interno 101
Le chiamate in uscita dal numero interno 101 vengono indirizzate al trunk 1234-100 Le chiamate in entrata vengono ricevute al momento della registrazione e indirizzate al numero interno 101
Modifichiamo pjsip.conf
[udp-transport] type=transport protocol=udp bind=0.0.0.0 [111111] type=registration transport=udp-transport outbound_auth=111111_auth server_uri=sip:sip.zadarma.com client_uri=sip:111111@sip.zadarma.com retry_interval=60 expiration=120 contact_user=111111 [111111_auth] type=auth auth_type=userpass password=Password username=111111 [111111] type=aor contact=sip:sip.zadarma.com [111111] type=endpoint transport=udp-transport context=zadarma-in disallow=all allow=alaw allow=ulaw outbound_auth=111111_auth aors=111111 from_user=111111 from_domain=sip.zadarma.com direct_media=no [111111] type=identify endpoint=111111 match=sip.zadarma.com[udp-transport] type=transport protocol=udp bind=0.0.0.0 [1234-100] type=registration transport=udp-transport outbound_auth=1234-100_auth server_uri=sip:pbx.zadarma.com client_uri=sip:1234-100@pbx.zadarma.com retry_interval=60 expiration=120 contact_user=1234-100 [1234-100_auth] type=auth auth_type=userpass password=Password username=1234-100 [1234-100] type=aor contact=sip:pbx.zadarma.com [1234-100] type=endpoint transport=udp-transport context=zadarma-in disallow=all allow=alaw allow=ulaw outbound_auth=1234-100_auth aors=1234-100 from_user=1234-100 from_domain=pbx.zadarma.com direct_media=no [1234-100] type=identify endpoint=1234-100 match=pbx.zadarma.com
Numero interno 101 al quale sarà collegato il softphone/telefono IP per ricevere chiamate in entrata ed effettuare chiamate in uscita.
[101]
type=endpoint
transport=udp-transport
context=zadarma-out
disallow=all
allow=alaw
allow=ulaw
auth=101
aors=101
[101]
type=auth
auth_type=userpass
password=101
username=101
[101]
type=aor
max_contacts=10
L'instradamento in entrata e in uscita viene configurato nel file extensions.conf
[zadarma-in] exten => 111111,1, Dial(PJSIP/101) ; tutte le chiamate in entrata dal numero 111111 vengono inoltrate al numero interno 101 [zadarma-out] exten => _XXX,1,Dial(PJSIP/${EXTEN}) ; chiamate a numeri interni a tre cifre di asterisco exten => _XXX.,1,Dial(PJSIP/${EXTEN}@111111) ; chiamate verso numeri composti da quattro o più cifre tramite il trunk 111111[zadarma-in] exten => 1234-100,1, Dial(PJSIP/101) ; tutte le chiamate in entrata dal numero 1234-100 vengono inoltrate al numero interno 101 [zadarma-out] exten => _XXX,1,Dial(PJSIP/${EXTEN}) ; chiamate a numeri interni a tre cifre asterisco exten => _XXX.,1,Dial(PJSIP/${EXTEN}@1234-100) ; chiamate verso numeri composti da quattro o più cifre tramite il trunk 1234-100
Configurazione standard completata.
P-Asserted-Identity (per utenti esperti).
Per le chiamate in uscita, è possibile utilizzare l'intestazione SIP P-Asserted-Identity per selezionare il Callerid dall'elenco dei numeri collegati al servizio.
Il numero dall'intestazione P-Asserted-Identity verrà utilizzato come priorità. Se l'intestazione non viene trasmessa o viene impostato un numero errato/non collegato, verrà utilizzato il numero predefinito.
[zadarma-out]
exten => _XXX.,1,Set(_SET_PAI=)
exten => _XXX.,n,Dial(PJSIP/${EXTEN}@111111,,b(add_header_pai^add^1))
[add_header_pai]
exten => add,1,Set(PJSIP_HEADER(add,P-Asserted-Identity)=${SET_PAI})
exten => add,n,Return()
Se hai collegato più numeri diretti, per comodità puoi assegnare a ciascun numero un “nome”, ad esempio manchester e london, e configurare l'instradamento in entrata in base a questo parametro. Il “nome” del numero virtuale viene trasmesso nel parametro CALLERID(name).
Nell'esempio seguente, le chiamate dal numero manchester vengono indirizzate al numero interno 101, le chiamate dal numero london vengono indirizzate al numero interno 102, mentre tutte le altre chiamate vengono rifiutate da Asterisk con il segnale “Occupato”.
[zadarma-in]
exten => _X.,1,GotoIf($["${CALLERID(name)}" = "manchester"]?2:3)
exten => _X.,2,Dial(PJSIP/101)
exten => _X.,3,GotoIf($["${CALLERID(name)}" = "london"]?4:5)
exten => _X.,4,Dial(PJSIP/102)
exten => _X.,5,Busy
Il tuo numero diretto su cui entra la chiamata viene trasferito all'header CALLED_DID Puoi configurare l'instradamento della chiamata in entrata in base a questo parametro.
Nel prossimo esempio, le chiamate provenienti dal numero 442045770077 vengono indirizzate al numero interno 101, quelle provenienti dal numero 442037691880 vengono indirizzate al numero interno 102, mentre tutte le altre chiamate vengono rifiutate da Asterisk con il segnale "Occupato".
[zadarma-in]
exten => _X.,1,GotoIf($["${PJSIP_HEADER(read,CALLED_DID)}" = "442045770077"]?2:3)
exten => _X.,2,Dial(PJSIP/101)
exten => _X.,3,GotoIf($["${PJSIP_HEADER(read,CALLED_DID)}" = "442037691880"]?4:5)
exten => _X.,4,Dial(PJSIP/102)
exten => _X.,5,Busy
Configurazione completata.
Esempio di impostazioni №2 (SIP URI)
Se il server con Asterisk si trova su un indirizzo IP “bianco” (non tramite router ma, ad esempio, nel centro dati) le chiamate in entrata possono essere risposte senza registrazione tramite lo schema SIP URI. Dati indicati nell'esempio:
- 15555555555 - Il tuo numero virtuale collegato a Zadarma.
- 2.20.190.41 - Indirizzo IP del tuo server con Asterisk.
Nell'area personale, nella sezione “Impostazioni/Numero virtuale”, inoltra le chiamate dal numero virtuale a un server esterno (SIP URI) nel formato 15555555555@2.20.190.41
Modifichiamo pjsip.conf
[15555555555]
type=aor
contact=sip:sip.zadarma.com
[15555555555]
type=endpoint
transport=udp-transport
context=zadarma-in
disallow=all
allow=alaw
allow=ulaw
aors=15555555555
direct_media=no
[15555555555]
type=identify
endpoint=15555555555
match=sipurifr.zadarma.com
match=sipde.zadarma.com
match=sipuriny.zadarma.com
Instradamento in entrata nel file extensions.conf
[zadarma-in]
exten => 15555555555,1, Dial(PJSIP/101)
Configurazione completata.
Attivazione della crittografia
1.Nel file pjsip.conf aggiungiamo quanto segue
[transport-z]
type=transport
protocol=tls
verify_server=no
bind=0.0.0.0:7065
method=tlsv1_2
2.In server_uri, dopo l'indirizzo del server, è necessario aggiungere :5061.
Esempio di configurazione quando si utilizza l'autorizzazione tramite indirizzo IP.