Queues and External (PSTN) Agents

Currently I have an app that does realtime Queues and Agents, and it works. The problem is the Agents are dialed at a local interface (Local/1234@context), in which the context sets a few channel vars and dials an external PSTN phone number of the logged in agent. From what I can tell, only SIP devices can tell the Asterisk Queue that it is busy. Local does not report back to Asterisk Queues that it is busy. From the queues.conf:

; If you want the queue to avoid sending calls to members whose devices are ; known to be 'in use' (via the channel driver supporting that device state) ; uncomment this option. (Note: only the SIP channel driver currently is able ; to report 'in use'.) ; ; ringinuse = no

Can I make a SIP connection to my own server and “pretend” that the end user is a SIP phone, then use that SIP connection (ie SIP/1234@localhost), then add to my default context (where unregistered SIP calls go for me) _1XXX that then does a realtime lookup then a DIAL(Local/12125004000@outbound)? Is it possible to somehow spit an “In Use” signal via SIP back to Asterisk Queue so that agent is marked “In Use?”

Let’s say that doesn’t work. Should I add a Dial() Macro that marks the agent as paused when they answer, and then when it hangs up unpause them? Is that the best implementation to get this done?

I simply need to tell Asterisk that a queue does or does not have available agents, when those agents are not connected via SIP phones (soft or hard).

Is it possible to trick Asterisk into faking a SIP extension status, maybe using a dummy sip channel, so that it marks a Queue Agent as busy or “in use” even though the Agent is not really at a SIP device but connected via PSTN? Or do I have to fake it by Pausing the Agent using a Macro upon answer and another upon hangup?