O IP PBX Asterisk permite voce capturar chamadas usando o proprio dialplan, com o comando:
Pickup(extension[@context])
Como exemplo podemos fazer um contexto proprio para ele:
[captura-chamadas]
exten => _55.,1,Pickup(${EXTEN:2})
[from-internal]
;RAMAIS ESCRITORIO
exten => _48XX,1,Dial(SIP/${EXTEN},60,Ttr)
exten => _48XX,n,Hangup()
include => captura-chamadas
desta forma voce somente precisará incluir ele aos outros contextos para poder capturas as chamadas nas extenções, discando 55[numero_do_ramal_que_esta_chamando]
Bem simples e funciona muito bem aqui, veja o log do asterisk:
– Executing Dial(”SIP/4828-b540a310″, “SIP/4820|60|Ttr”) in new stack
– Called 4820
– SIP/4820-08182620 is ringing
– Executing Pickup(”SIP/4824-b54076f0″, “4820″) in new stack
– SIP/4824-b54076f0 answered SIP/4828-b540a310
== Spawn extension (from-internal, 4820, 1) exited non-zero on ‘SIP/4828-b540a310′
Ate mais! :)