La idea de lo que pretendes es guardar esta entrada en una variable y luego pasarla como parámetro en el AGI.
Hmmmm así a bote pronto desde el Dialplan y de forma directa no se si podría hacerse. Aunque pensandolo un poquito más despacio podrías tener algo tal que:
exten => s,1,Background(pulsa la tecla)
exten => _[0-9].,1,SetVar(Pulsacion=${EXTEN})
exten => _[0-9].,2,AGI(cti.agi,${Pulsacion})
Si te das cuen, la asignación de la variable podrías omitirla pero por si acaso te hiciera falta luego más tarde 😉 También usé un contexto independiente, lo digo para que no se te mezclen las pulsaciones de la IVR con las extensiones que tengas en tu DialPlan.
El tema de los Agentes, eso está chungo. Llevo un tiempo investigando y al final por lo que veo toca pelearse con el API del Manager y capturar los eventos Link :?
Según tengo entendido los paquetes XC-Ast y AstGUIClient, ofrecen esta funcionalidad. Pero es que estos son demasiado completos/complejos y sinceramente no los he probado.
Saludos