Appunti su extensions.conf
Questo e` un esempio di extensions.conf per Asterisk 1.6. Qui provo a usare una feature sperimentale di Asterisk 1.6, quella della creazione automatica delle entry in extensions.conf per gli interni e per gli hint. E` una configurazione molto semplice (e peraltro contiene incongruenze, per esempio nei numeri degli interni).
[general] static=yes writeprotect=yes autofallthrough=yes clearglobalvars=no priorityjumping=no [globals] ; "globals" e` vuoto in questo esempio. ; ######################################################### ; il context default dove non dovrebbe finire ; nulla, pero` siccome il sip.conf vuole un context ; dove mettere la roba che entra e che non sa dove mettere ; l'ho fatto. ; ######################################################### [default] ; default e` volutamente vuoto ; ############################## ; Il context per i miei interni ; ############################## [interni] ;;; Gestione del dialstatus (risultato della chiamata col comando Dial) ;;; La faccio centralmente cosi` non devo ripeterla per ogni interno. ;;; Ho le variabili ${chiamante} e ${chiamato} che contengono i numeri del CID ;;; del chiamante e dell'interno chiamato (questo solo se la chiamata viene da un altro interno) exten => gest_dialstatus,1,NoOp(${DIALSTATUS} ${chiamante} ${chiamato}) exten => gest_dialstatus,n,Goto(${DIALSTATUS}) exten => gest_dialstatus,n(NOANSWER),Hangup exten => gest_dialstatus,n(BUSY),Busy exten => gest_dialstatus,n(CONGESTION),Congestion exten => gest_dialstatus,n(CHANUNAVAIL),Congestion exten => gest_dialstatus,n(CANCEL),Hangup ; Se chiamo il 10, suonano tutti gli interni ; exten => 10,1,Dial(SIP/11&SIP/12&SIP/13&SIP/14&SIP/15&SIP/20&IAX2/13,40) ; hint automatici a 3 cifre. In pratica questa sola riga dovrebbe sostituire tutte quelle degli hint degli interni. exten => _XXX,hint,SIP/${EXTEN} ; Una sola configurazione dinamica per tutti gli interni a 3 cifre che iniziano per 3 exten => _3XX,1,Set(__PICKUPMARK=${EXTEN}) exten => _3XX,n,Dial(SIP/${EXTEN}&IAX2/${EXTEN},40) exten => _3XX,n,set(_chiamante=${CALLERID(num)}) exten => _3XX,n,set(_chiamato=${EXTEN}) exten => _3XX,n,goto(gest_dialstatus,1) ; Inclusioni nel context degli interni ; Servizi (segreteria, echo test) include => servizi ; Sistema di call parking include => parkedcalls ; Provider per le chiamate uscenti include => chiamate_uscenti ; ############################## ; Context per i servizi ; ############################## [servizi] ; Sistema di paging, usa il vivavoce dei GXP ; richiede due configurazioni sul GXP: ; Allow Auto Answer by Call-Info: YES ; Turn off speaker on remote disconnect: YES exten => *10,1,SIPAddHeader(Call-Info: answer-after=0) exten => *10,n,Page(SIP/11&SIP/12) ; chiamando **<interno> si fa il pickup via BLF ; funziona con i GXP-2000 che chiamano quel numero ; quando si pigia un bottone BLF il cui interno ; sta suonando (lampeggia rosso) exten => _**XXX,1,Pickup(${EXTEN:2}) exten => _**XXX,2,Hangup ; Chiama il 6 per verificare l'eco e la latenza exten => 6,1,Playback(demo-echotest) ; Let them know what's going on exten => 6,2,Echo ; Do the echo test exten => 6,3,Playback(demo-echodone) ; Let them know it's over ; Chiama 1 per ascoltare la segreteria 1 (numero dell'ufficio) ; la riga "Answer" serve se chiamo la segreteria dal chan IAX. ; exten => 1,1,Answer() exten => 1,1,VoicemailMain(s1@default) exten => 1,n,Hangup ; Chiama 2 per ascoltare la segreteria 2 (numero di casa) ;exten => 2,1,VoicemailMain(s2@default) ;exten => 2,n,Hangup ; chiama il 5 per ascoltare la musica exten => 5,1,Answer exten => 5,n,MusicOnHold ; ############################################### ; Context da includere per consentire le chiamate ; verso l'esterno ; ############################################### [chiamate_uscenti] exten => _0.,1,Dial(DAHDI/g1/${EXTEN:1}) exten => _0.,n,Goto(${DIALSTATUS}) exten => _0.,n(NOANSWER),Hangup exten => _0.,n(BUSY),Busy exten => _0.,n(CONGESTION),Congestion exten => _0.,n(CHANUNAVAIL),Congestion exten => _0.,n(CANCEL),Hangup exten => _9.,1,Dial(SIP/ehiweb2/${EXTEN:1}) exten => _9.,n,Goto(${DIALSTATUS}) exten => _9.,n(NOANSWER),Hangup exten => _9.,n(BUSY),Busy exten => _9.,n(CONGESTION),Congestion exten => _9.,n(CHANUNAVAIL),Congestion exten => _9.,n(CANCEL),Hangup ; ###################################################### ; il context dove entrano le chiamate da ehiweb ; ###################################################### [ehiweb] exten => 0510546228,1,Set(CALLERID(num)=0${CALLERID(num)}) exten => 0510546228,n,Set(CALLERID(name)=${DB(cidname/${CALLERID(num)})}) exten => 0510546228,n,SIPAddHeader(Alert-Info:\;info=due) exten => 0510546228,n,Dial(SIP/11&SIP/12&SIP/13&SIP/14&SIP/15&SIP/20&IAX2/13,40) exten => 0510546228,n,VoiceMail(1@default,su)