Local Channels Trick
by admin on Mar.15, 2011, under Asterisk, Telefonia
Supponiamo che il titolare dell’interno 444 debba essere sempre reperibile, per cui, quando non lo sia all’interno dell’ufficio, lo debba essere al cellulare.
Una soluzione diffusa a questa esigenza consiste nel far squillare per un certo tempo l’interno, diciamo 20 secondi, e solo al termine di tale tentativo, avviare la chiamata verso il cellulare.
Tuttavia questa soluzione non è la più efficiente, infatti, nel caso in cui il destinatario si trovasse fuori sede, chi chiama dovrebbe attendere inutilmente tutto il tempo necessario a completare la prima chiamata, fino a raggiungere il timeout per essa impostato, e quindi tutto il tempo necessario al setup della seconda chiamata, prima che il cellulare inizi realmente a squillare.
Inoltre chi chiama avrebbe maggiori probabilità di stancarsi della attesa, e chiudere in anticipo la chiamata.
Un’altra soluzione diffusa, che consiste nel chiamare contemporaneamente l’interno ed il cellulare, potrebbe risultare in pratica più fastidiosa che vantaggiosa.
Come fare se volessimo ad esempio chiamare l’estensione 444, far suonare l’interno per gli abituali 20 secondi, e chiamare anche il corrispondente cellulare, ma aspettando diciamo solo 6 secondi prima di avviare questa seconda chiamata?
Ecco una soluzione basata sull’utilizzo di due local Channels:
context ael_local_devices {
NoOp(Chiamo l'interno ed il cellulare con un breve ritardo);
Dial(Local/interno-444@ael_local&Local/cellulare-444@ael_local,30);
Voicemail(444@default,${IF($[${DIALSTATUS} = BUSY]?b:u)});
Hangup();
};
context ael_local {
interno-444 => {
NoOp(Chiamo l'interno);
Dial(SIP/444) ;
};
cellulare-444 => {
NoOp(Chiamo il cellulare con un breve ritardo);
Dial(SIP/myprovider/3207654321) ;
};
};

