== Configurazione del sistema di Call Pickup == Il sistema di call pickup consente a un interno di prendere la chiamata destinata ad un altro interno mentre sta ancora suonando. L'uso piu` ovvio e` prendere la chiamata destinata ad un collega assente quando si sente che il suo telefono suona. Il call pickup va configurato in modo da definire chi puo` prendere le chiamate di chi, fondamentalmente. Le configurazioni del pickup si fanno in due posti: il primo e` il file che definisce i telefoni interni (diciamo sip.conf nella maggior parte dei casi, ma potrebbe anche essere altro, se si usano interni con protocolli diversi dal SIP), il secondo e` nel file extensions.conf, necessario solo se si vogliono fare funambulismi particolari. Il comando di default per effettuare il pickup e` chiamare il numero "*8". E` possibile modificarlo in features.conf. Usando il comando di pickup "generico", cioe` "*8" (di default) si prende la ultima chiamata che ha suonato in ordine di tempo. Se ci sono piu` chiamate che suonano contemporaneamente (nel proprio pickup group) allora sarebbe meglio usare un pickup "diretto" che prende la chiamata. Per farlo, si puo` usare il comando "pickup" (asterisk 1.2) ==== Configurazione in sip.conf ==== Nella definizione di un terminale ci sono due voci relative al pickup, una e` {{{callgroup}}} e l'altra e` {{{pickupgroup}}}. * La direttiva '''callgroup''' indica a quale gruppo appartiene il terminale * La direttiva '''pickupgroup''' indica che il terminale in questione puo` fare il pickup per le chiamate dirette al gruppo indicato nella voce callgroup. So che non e` molto chiaro, ma un esempio aiutera`. Supponiamo di avere degli interni in protocollo sip, e di volere che uno di questi interni possa prendere le chiamate degli altri. * Tutti i telefoni interni avranno la direttiva {{{callgroup=1}}} * Il telefono che puo` prendere le chiamate degli altri, avra` la direttiva {{{pickupgroup=1}}} E` consentito appartenere a un solo gruppo, quindi {{{callgroup}}} non ha parametri multipli, mentre e` possibile avere il diritto di fare pickup da piu` di un gruppo, quindi {{{pickupgroup}}} puo` avere parametri multipli, per esempio {{{pickupgroup=1,2,3}}} oppure range {{{pickupgroup=1-5}}} o un misto dei due {{{1-5,8,12}}}. Per fare funzionare il comando di pickup diretto per gruppo in extensions.conf, occorre mettere ogni telefono in un callgroup privato, in cui c'e` solo lui. Questo e` un esempio di file sip.conf in cui tutti e due i telefoni appartengono allo stesso gruppo e possono prendersi le chiamate a vicenda. {{{ [Int101] type=friend context=interni username=Int101 secret=password101 host=dynamic dtmf=rfc2833 allow=alaw callerid= "Interno 101" <101> canreinvite=no pickupgroup=1 callgroup=1 [Int102] type=friend context=interni username=Int102 secret=password102 allow=alaw host=dynamic callerid= "Interno 102" <102> canreinvite=no pickupgroup=1 callgroup=1 }}} Questo e` un esempio di configurazione in cui ogni telefono e` in un callgroup privato (in cui c'e` solo lui) e pero` ogni telefono e` autorizzato a fare il pickup di tutti i gruppi. In pratica cosi` il comando di pickup generico (*8) funziona come nel caso precedente, pero` posso usare il comando pickup in extensions.conf per fare un pickup di una singola linea. {{{ [10] type=friend context=interni username=Int101 secret=password101 host=dynamic dtmf=rfc2833 allow=alaw callerid= "Interno 10" <10> canreinvite=no pickupgroup=0-63 callgroup=10 [11] type=friend context=interni username=Int102 secret=password102 allow=alaw host=dynamic callerid= "Interno 11" <11> canreinvite=no pickupgroup=0-63 callgroup=11 }}} Attenzione, i pickup group sono limitati da 0 a 63, quindi in teoria sono limitato a 63 interni singolarmente prendibili con il comando pickup. Inoltre per comodita` sarebbe meglio tenere, se si vuole configurare un pickupgroup per interno, il numero del gruppo uguale a quello dell'interno, questo vincola gli interni ad avere di fatto i numeri da 10 a 63. (se si vuole mantenere la regola che gli interni hanno due cifre) ==== Configurazione in extensions.conf ==== In extensions.conf posso mettere una configurazione che consente di fare il pickup degli interni Esempio: {{{ exten => _**.,1,Pickup(${EXTEN:2}) exten => _**.,2,Hangup }}} Questa configurazione consente di fare il pickup di una singola chiamata che sta suonando su un singolo interno chiamando il numero "**interno" (ad esempio, **10). Questa configurazione funziona con i telefoni GXP2000 e superiori, che chiamano il numero "**interno" se si preme il tasto del BLF mentre l'interno in questione sta suonando, e consente di fare il pickup usando i tasti del BLF. ==== Comando pickupchan ==== In teoria il comando pickupchan dovrebbe consentire di fare il pickup di un canale specifico, e potrebbe essere usato per evitare di dover definire un callgroup per ogni interno. Purtroppo in asterisk 1.2 e` bacato, e rimuove il il numero di interno dal canale, in pratica il comando sarebbe: {{{ exten => _**.,1,PickupChan(SIP/${EXTEN:2}) exten => _**.,2,Hangup }}} Purtroppo pero` questo viene interpretato come se non avessi specificato l'estensione. Il comando pickupchan(SIP/11) di fatto fa il pickup di "SIP" e non di "SIP/11", quindi prende l'ultimo canale SIP che ha iniziato a suonare, e non, come vorrei io, il canale SIP 11.