SIP Extensions periodically stop accepting incoming calls

Asterisk Ver. 10.12.1
FreePBX Ver. 2.11.02
iSymphony Ver. 2.7.2 Rev 4210 (Registered: 15 Clients, 4 Queues)

Symptom:

SIP extensions suddenly appearing as Busy to asterisk for no reason. A user could be in a call one minute, then 5 minutes later a call could be in the queue, and that user is not in any call, nor within the wrap-up time either. Even when trying to use iSymphony to listen to a voicemail, the phone will not ring. And the agent’s extension will not get the call. I’ve been analyzing call logs, and the same thing keeps showing up (DIALSTATUS=BUSY) when this happens. As if somehow when they are in a call, or returning from a break, they either toggle themselves off of Do Not Disturb using iSymphony, or they take themselves off of pause. And their DIALSTATUS is not being reset…? I really don’t know.

[2013-06-14 10:18:36] VERBOSE[4391] pbx.c: -- Executing [s@macro-dial-one:48] NoOp("Local/104@from-queue-00000279;2", "Returned from dial-one with nothing to call and DIALSTATUS: BUSY") in new stack

Basically their DIALSTATUS=BUSY is being seen, or is not being reset after their last call, or something…?

Now we’ve learned that if we place the extension on Do Not Disturb using iSym and then toggle it Do Not Disturb back off in iSymphony. Then the extension is now able to accept incoming connections.

This is not a SIP client issue, I don’t think, because some of the SIP peers are ATA’s connected to analog phones, others are SIP peers that are softphones.

This leads me to believe it’s either a macro bug in FreePBX, or iSymphony? The same issue was occurring in FreePBX 2.10.

If anyone has any insight as to what could be causing this, or can tell me what other information I need to post to help me solve this problem please let me know.

I am extremely desperate for any help I can get at this point. I cannot intentionally re-create these circumstances either. But it seems to happen only to those users who are members of queues. So that’s why I think it’s some kind of bug in one of the dialplan macros.