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.

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.

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.

Asterisk/CallPickUp (last edited 2009-04-12 17:33:24 by localhost)