Il sistema di call parking: configurazione e funzionamento (asterisk 1.8)
ATTENZIONE, QUESTO SISTEMA NON FUNZIONA CON LE VERSONI PIU` RECENTI DI ASTERISK
Il call parking consente di parcheggiare delle chiamate trasferendole ad un interno fittizio, per poi poterle riprendere in un secondo momento. Se una chiamata resta parecheggiata oltre il timeout impostato, Asterisk richiama il telefono che l'ha parcheggiata per riconnettere la chiamata parcheggiata con il parcheggiatore.
Configurazione del call parking
La configurazione del call parking, assieme con altre configurazioni, si trova nel file /etc/asterisk/features.conf.
La configurazione originale prevede 20 slot di parcheggio, dal 701 al 720. Il numero 700 viene usato per inserire una chiamata nel primo slot libero. Questo e` un estratto della configurazione originale in Asterisk 1.8, escludendo i commenti e i comandi commentati.
[general] parkext=700 parkpos => 701-720 context => parkedcalls
Per utilizzare il sistema di parking "di base" e` sufficiente includere in extensions.conf nel context dove si trovano i vostri interni il context "parkedcalls" (indicato prima nel features.conf). Tale context non e` codificato in extensions.conf, ma esiste nella mappa dei context in memoria di asterisk. E` un context dinamico che contiene i numeri dal 700 in poi, secondo la configurazione impostata in features.conf, a seconda di quante chiamate sono in parcheggio in quel momento. Di default, a parcheggio "vuoto", contiene solo il numero 700 che consente di parcheggiare una chiamata nel primo slot libero.
[interni] include => parkedcalls
Funzionamento del call parking di base
Per parcheggiare una chiamata durante una comunicazione si trasferisce la chiamata all'interno (fittizio) numero 700. La chiamata viene "parcheggiata" su un interno compreso fra 701 e 720 (il primo libero). Da qualsiasi altro telefono che si trovi nel context che include quello delle "parkedcalls", e` possibile chiamare l'interno 7xx giusto (diciamo 701 per la prima chiamata parcheggiata) per riprendere la chiamata. Se la chiamata non viene ripresa fuori dal parcheggio entro il tempo massimo (default a 45 secondi) allora tornera` a suonare sul telefono che l'ha parcheggiata.
E` opportuno effettuare un "attended transfer" quando si parcheggia una chiamata, perche` cosi` facendo si ascoltera` un annuncio vocale che indica in quale slot di parcheggio e` stata parcheggiata la propria chiamata, altrimenti la chiamata viene parcheggiata ma non si sa in quale slot, quindi non si ha modo di riprenderla.
Sistema di call parking evoluto per telefoni Grandstream con pulsanti BLF
Questo sistema consente di gestire il parcheggio delle chiamate esattamente come con il sistema tradizionale (indicato qui sopra) consentendo pero` in piu` di vedere lo stato degli slot di parcheggio (occupati o liberi) e di parcheggiare una chiamata in uno slot libero, o di riprendere una chiamata da uno slot occupato, a mezzo dei tasti BLF dei telefoni Grandstream. Ragionevolmente funziona anche con telefoni di marche diverse che abbiano i tasti BLF.
Principio di funzionamento
- Quando si vuole parcheggiare una chiamata da un telefono Grandstream, si preme "transfer" e poi un tasto BLF configurato su uno degli slot di parcheggio che non sia occupato (led verde). Questo effettua un trasferimento "unattended" e quindi mette immediatamente nello slot indicato la chiamata. Notare che in questo caso noi non facciamo un trasferimento al numero 700, ma indichiamo esattamente in quale slot vogliamo mettere la chiamata, premendo un tasto BLF specifico (ad esempio il 705) purche` sia libero (verde).
- Quando si vuole riprendere una chiamata, si preme il tasto BLF (rosso) corrispondente con lo slot (occupato) che vogliamo riprendere. Questo provoca la ripresa della chiamata parcheggiata.
- Ovviamente e` possibile combinare l'uso di un telefono Grandstream con i tasti BLF con l'uso di un telefono normale senza funzioni evolute, infatti nessuno ci vieta di parcheggiare una chiamata con il sistema tradizionale del trasferimento attended al numero 700, e di riprenderla premendo il tasto BLF (rosso) relativo allo slot che e` stato occupato dalla chiamata trasferita. Allo stesso modo, possiamo trasferire una chiamata con il tasto BLF (verde) in uno slot libero specifico, e poi riprenderla chiamando da un telefono normale il numero 7XX dello slot dove avevamo parcheggiato la chiamata.
Vale la pena di soffermarsi sulla logica con cui questo sistema funziona. La pressione del tasto BLF (sia che sia verde sia che sia rosso) effettua una semplice chiamata al numero in esso programmato (diciamo il 705). Quando vogliamo parcheggiare una chiamata, effettuiamo un trasferimento verso il numero programmato (705). Questo causa l'esecuzione di un pezzo di dialplan appositamente creato (vedi sotto) che forza Asterisk a parcheggiare la chiamata in uno specifico slot, corrispondente con il numero a cui abbiamo trasferito la chiamata (705). Ora che una chiamata parcheggiata e` presente nello slot 705, nel context speciale "parkedcalls" e` presente una estensione dinamica con il numero 705 che prima non c'era. Siccome il context speciale "parkedcalls" e` incluso dentro al context degli interni PRIMA di quello che abbiamo creato noi (BLF-parking), allora se noi premendo il tasto BLF (rosso) del 705 effettuiamo una chiamata al numero 705, ecco che anziche` richiamare la nostra extension nel context BLF-parking, chiameremo la 705 del context parkedcalls, che ora esiste e prima non esisteva, e che quindi "viene prima" di quella di BLF-parking. In questo modo noi otteniamo due comportamenti diversi quando chiamiamo il numero 705 a seconda che lo slot 705 sia vuoto o sia occupato da una chiamata in parcheggio.
Configurazione del file featrues.conf
Il file features.conf e` configurato come nell'esempio precedente (ovvero a default nell'asterisk 1.8 su Debian)
Configurazione del file extensions.conf
Nel file extensions.conf, il context degli interni deve contenere due "include", uno al context "parkedcalls" e uno al context "BLF-parking". E` importante che siano in questo ordine e che siano in cima al file di configurazione degli interni, ovvero che vengano prima di eventuali definizioni di interni generici (specie se a tre cifre) perche` queste potrebbero "sovrapporsi" a quelle degli slot 7XX. . Ecco un estratto di extensions.conf, creato per gestire al massimo 20 slot, dal 701 al 720, come da configurazione di default:
; ###################################### ; Context dove si registano gli interni ; ###################################### [interni] ; Sistema di call parking (standard + sistema BLF per i Grandstream) ; IMPORTANTE: includere i due context in questo ordine e IN CIMA al context degli ; interni. include => parkedcalls include => BLF-parking ; Definizione degli hint (701-720) che servono a indicare a mezzo dei tasti BLF ; (rosso=occupato, verde=libero) quali slot sono in uso. exten => _70X,hint,park:${EXTEN}@parkedcalls exten => _71X,hint,park:${EXTEN}@parkedcalls exten => 720,hint,park:${EXTEN}@parkedcalls ; ############################### ; Funzioni di gestione del ; parcheggio chiamate per GXP ; ############################### [BLF-parking] ; questi due gruppi comprendono tutti i numeri ; da 700 a 719 + il 720. In realta` a noi interessano ; i numeri da 701 a 720. ; Ricordiamoci che quando uno slot e` occupato una chiamata non arrivera` mai fino a qui ; ma verra` gestita dentro al context parkedcalls. Quando uno slot e` libero invece ; allora la chiamta arriva qui. ; Lo scopo di questa funzione e` di parcheggiare la chiamata nello slot indicato. exten => _70X,1,Answer exten => _70X,n,Set(PARKINGEXTEN=${EXTEN}) exten => _70X,n,Park exten => _70X,n,hangup exten => _71X,1,Answer exten => _71X,n,Set(PARKINGEXTEN=${EXTEN}) exten => _71X,n,Park exten => _71X,n,hangup exten => 720,1,Answer exten => 720,n,Set(PARKINGEXTEN=${EXTEN}) exten => 720,n,Park exten => 720,n,hangup
Configrazione del telefono Grandstream
Per configurare il telefono e` sufficiente impostare un certo numero di tasti BLF (idealmente un numero uguale al numero degli slot definiti in features.conf) con i numeri degli slot stessi, quindi 701, 702, 703, 704, eccetera. Non va configurato il numero 700.