Queue member status not showing "ONHOLD"


I am trying to capture the status of the queue member status using AMI events.

In which precisely, i am looking at the event “QueueMemberStatus”

Here, I and not able to get the “ONHOLD” status i.e. Status: 8 for queue member, when member puts the call on hold.

The status it maintains is Status: 2 i.e. “inuse”, although the call went already “ONHOLD”.

How can I update/configure queue member status to be on hold at the same time?

I can’t see queue member status on hold once it puts call on hold.

How do you know the call is on hold? Through AMI? Physical observation?

Sorry for delay reply, its physical observation where i know agent is putting callers call on hold but, at the backend on asterisk CLI or AMI events i don’t have any info available to identify which agent from queue has put callers call on hold

Can i get some help here. I am stuck here and unable to complete the solution

How is the phone signalling hold to the PABX?

As you haven told us anything about the phone, analogue is a possibility and there is no way for analogue phones to signal an on hold status.

So our agents are loggin into the queue via webrtc extensions which is based on JSSip.
There, on the frontend interface agent is putting callers call on hold.

Please capture the SIP signalling with “pjsip set logger on”, or the corresponding, but different, command for the deprecated driver, if you are still using that.

hold_logstxt_27102022.txt (21.6 KB)
As requested please refer attached log file for the calls.
We are using PJSIP channel only and i have captured this logs via sngrep as we have very high call flow so logs might miss.


It does seem to have signalled hold to Asterisk.

How is the agent device state connected to the queue member?

Are you aware that app_queue treats hold as the same as in use, in terms of whether it will use the member?

I don’t have any such configured, can you help with more detail on this.

Do i have to change this config?

No (From what others have said, you really need to be able to read these protocol logs before you try to use WebRTC.)

What do you have as the member entry for the aqent? If not not the actual endpoint, how is the endpoint associated with the member entry and how is its device state associated with the member entry.

We have PJSIP endpoints configured as the member entry for agent. But, there is no configuration of device state associated with member entry.

How can I associate devicestate with member entry and can it be done using realtime config as we have everything configured in database.

The device state is taken from the device listed for the member, unless a state interface is specified. If the actual device were a local channel, you would have needed a state interface for the underlying endpoint.

Can we use PJSIP endpoint as a state interface while logging into queue?

How the state interface helps in getting queue member status as hold when member is putting callers call on hold?

What do you mean by logging into the queue? Are you using some sort of GUI? If so, this the wrong forum for support, as GUIs tend to come with 100s of lines of dialplan and lots of restrictions.

Logging in means we are using AMI action QueueAdd to add agent to the queue.

Currently supported versions of Asterisk have a StateInterface setting for this action.

I tried adding state interface as PJSIP endpoint of the member even after that agent status is not changing to hold once agent is putting callers call on hold.

If you need more clarification or logs to understand i can help with it. But for this i need some solution on how to get queue member status when member is putting call on hold.