Istruzioni per la configurazione dei dispositivi VoIP Asterisk PJSIP

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.