Usando o FOP você consegue capturar, mas é por tela.. nem todo mundo trabalha com ela..
Via discagem a captura (Pickup) trabalha em cima de ramais/extensões, e chamadas na espera da fila que não estão chamando/ringando no ramal ele não captura.
Uma forma simples eu desconheço.. mas dá pra fazer um esquema..
Eu fiz assim já quando precisei.. no seu caso é Elastix, teria que colocar esses blocos abaixo do "from-internal-custom", no arquivo extensions_custom.conf
exten => _pick.,1,Verbose(Captura Canal);
same => n,Set(RAMAL=${EXTEN:4});
same => n,Answer();
same => n,Ringing();
same => n,Wait(3); Espera 3 segundos e chama ramal que fez captura
same => n,Dial(Local/${RAMAL}@from-internal,20,Ttr);
same => n,Wait(5); Espera mais 5 e chama denovo
same => n,Dial(Local/${RAMAL}@from-internal,20,Ttr);
same => n,Hangup(); // nao atendeu, derruba
;; Para capturar a chamada espera fila - ** + numero fila ( * * 100 no seu caso )
exten => _**XXXX,1,Agi(queuecapture.agi,${EXTEN:2}); Identifica canal esperando na fila...
same => n,Pickup(${EXTEN:2}); // Se estiver ringando no ramal, captura..
same => n,Verbose(CANAL PARA CAPTURAR : ${WAITCHAN});
same => n,Verbose(${CHANNEL});
same => n,ChannelRedirect(${WAITCHAN},from-internal,pick${CALLERID(num)},1);
same => n,Hangup();
Criar o arquivo AGI "/var/lib/asterisk/agi-bin/queuecapture.agi", com o seguinte conteudo..
#!/usr/bin/php -f
<?php
require("phpagi.php");
$agi = new Agi();
$queue = $argv[1];
exec("/usr/sbin/asterisk -rx 'queue show $queue' | egrep 'wait' | awk '{print $2}'",$ret);
$agi->exec("Playback","beep");
if( count($ret) == 0 ){
$agi->verbose("Nenhuma chamada na espera da fila $queue");
$agi->hangup();
exit(0);
}
$channel = $ret[0];
$agi->set_variable("WAITCHAN","$channel");
exit(0);
?>
Abraço..