Esta aplicacion trabaja con el modulo app_directed_pickup.
ejemplo de configuración para jalar llamadas:
[funciones]
exten => _**1XXX,1,PickUp(${EXTEN:2}@PICKUPMARK)
[anexos]
exten=>_1XXX,1,Macro(extension,SIP/${EXTEN},${EXTEN},20,Ttr)
[macro-extension]
exten => s,1,Set(Anexo=${ARG2})
exten => s,n,Dial(${ARG1},${ARG3},${ARG4})
exten => s,n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?s-NOANSWER,1)
exten => s,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?s-BUSY,1)
exten => s,n,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?s-NOANSWER,1)
exten => s,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?s-NOANSWER,1)
exten => s,n,Hangup()
exen => s-BUSY,1,Voicemail(${Anexo},b)
exten => s-BUSY,n,Hangup()
exten => s-NOANSWER,1,Voicemail(${Anexo},u)
exten => s-NOANSWER,n,Hangup()
Nota:
exten =>_**1XXX,1,Pickup(${EXTEN:2}@PICKUPMARK)
Para poder jalar la llamada con la aplicacion Pickup, tenemos que tener la variable PICKUPMARK definida en el CANAL que esta timbrando,
Asterisk tiene una funcionalidad que consiste en la herencia de variables entre los canales. Podemos hacer que una variable este definida en todos los canales que se generen después, precediendo su nombre con 2 guiones bajos (__). Por lo tanto, lo que tenemos que hacer para poder coger cualquier llamada, es definir la variable de la siguiente manera:
exten => _1XXX,1,Set(__PICKUPMARK=${EXTEN})
exten => _1XXX,n,Dial(SIP/${EXTEN})