Queue hint state unavailable

Hello community, (FreePBX 14.0.5.25)
I have been trying to get a BLF button to display to a dynamic queue agent their logged in or out state into a queue. i’m subscribing the button to 45dddqqq (device, queue) tried with a leading underscore and without. but nothing works.
core show hints is always the same (agent logged in or out)>>>
_45X.@ext-queues : ${DB(AMPUSER/${EXTEN State:Unavailable Presence: Watchers 0
_46X.@ext-queues : ${DB(AMPUSER/${EXTEN State:Unavailable Presence: Watchers 0
_45XXXXXXXXX@ext-q: Custom:QUEUE${EXTEN: State:Unavailable Presence: Watchers 0

any ideas? anyone?

Some ideas. No solutions, just some ideas.

All of my hint watching comes from Chan-SCCP-B Cisco phones, and I know how that works intimately. Having said that, this experience is probably worthless on a regular SIP Phone.

  • Your examples are all getting screwed up because you are not escaping the characters you are sending us, so what we see is garbled up. Using the backslash (\) character to escape these formatting character would help.

  • When I want to watch a hint, I have to be specific and the hint has to be spelled exactly the same way it is in the system. The “Time Conditions” hints (for example) have a crap-ton of letters in them that do not show up in the hints list. Make sure the “class” of the hint is spelled right.

  • The system may not be marking your hints in a way that your phone is willing to track. Every phone is different in this regard. For example, on my Ciscos, I get two choices (on/off).

  • There are lots of phones that do all kinds of crazy junk and use all kinds of different buttons to watch and manage things. The Sangoma phones have some buttons that do different things based on whether the light is on or not, and some of the things use half-presses, and I think there’s a feature that allows you to boop your cat and dial the vet…

Like I said, no solutions at all. Every phone handles button states differently, and some have long lists of different things that the buttons can do, and not all buttons are created equally.

To get some help, you are going to have to be a lot more specific. Remember, all I use in any quantity is Cisco Skinny phones, which are different than everything else. Every other phone is basically the same - they are all different from each other and from Cisco.

Now, in the actual hints - you need to stay in touch with the hint code in the contexts if you want to control what’s happening. It’s possible that the level of detail you are looking for isn’t present in the hints, or that the specific person you are trying to monitor doesn’t get a hint set. I haven’t played around with the agent code in queues in years, but there could be a bug or the agent code may not actually set anything.

For more information on what is getting set, you need to look through the log file at /var/log/asterisk/full and find the spot in the log where the agent logs in or out. At that point, you will need to find the place where the hint is set or cleared and try tracking that.

Hi Dave, thank you for the extensive reply. I am using cisco SPA 525g2 phone the BLF sub=_*45ddd*qqq is what is documented in multiple literature. I can see in the debug that the queue login/ou is generating the follwing>>>
Executing [sstate@app-queue-toggle:5] Set(“SIP/2000-00000806”, “DEVICE_STATE(Custom:QUEUE2000*10001)=INUSE”) in new stack

What’s bugging me is why the core show hints command displaying >>>>
_*45XXXX*XXXXX@ext-q: Custom:QUEUE${EXTEN: State:Unavailable Presence: Watchers 0

This tells me that the state is not being set. should i interpret it differently?

is different from

If I’m interpreting this correctly, look for the hint *452000*1001@ext-queues… where queses… is the name of the rest of the hint. I’m not sure what the rest of that context name is, but the answer is out there (it’s open source). That may be the complete name - I just don’t know.

It’s possible that the hint isn’t getting set, but your code snippet would imply that it is…

Perhaps one of the BLF wizards can help us out?

Yeah, this is starting to become annoying…
i traced the process to the following:
when *452000*10002 is dialed from a phone the from-internal context leads to ext-queues context which has the following lines

exten => _*45XXXX*XXXXX,1,Set(QUEUENO=${EXTEN:8:5})
exten => _*45XXXX*XXXXX,n,Set(QUEUEUSER=${EXTEN:3:4})
exten => _*45XXXX*XXXXX,n,Goto(app-queue-toggle,s,start)
exten => _*45XXXX*XXXXX,hint,Custom:QUEUE${EXTEN:3}

notice the hint at the end. in the CLI for i see the hangup happening after the extension is read out loud

– Executing [s@app-queue-toggle:21] Playback(“SIP/2000-0000087f”, “agent-loginok”) in new stack
– <SIP/2000-0000087f> Playing ‘agent-loginok.ulaw’ (language ‘en’)
– Executing [s@app-queue-toggle:22] SayDigits(“SIP/2000-0000087f”, “2000”) in new stack
– <SIP/2000-0000087f> Playing ‘digits/2.ulaw’ (language ‘en’)
– <SIP/2000-0000087f> Playing ‘digits/0.ulaw’ (language ‘en’)
– <SIP/2000-0000087f> Playing ‘digits/0.ulaw’ (language ‘en’)
– <SIP/2000-0000087f> Playing ‘digits/0.ulaw’ (language ‘en’)
– Executing [s@app-queue-toggle:23] Macro(“SIP/2000-0000087f”, “hangupcall,”) in new stack
– Executing [s@macro-hangupcall:1] GotoIf(“SIP/2000-0000087f”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,3)
– Executing [s@macro-hangupcall:3] ExecIf(“SIP/2000-0000087f”, “0?Set(CDR(recordingfile)=)”) in new stack
– Executing [s@macro-hangupcall:4] NoOp(“SIP/2000-0000087f”, " monior file= ") in new stack
– Executing [s@macro-hangupcall:5] AGI(“SIP/2000-0000087f”, “attendedtransfer-rec-restart.php,”) in new stack
– Launched AGI Script /var/lib/asterisk/agi-bin/attendedtransfer-rec-restart.php
– <SIP/2000-0000087f>AGI Script attendedtransfer-rec-restart.php completed, returning 0
– Executing [s@macro-hangupcall:6] Hangup(“SIP/2000-0000087f”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 6) exited non-zero on ‘SIP/2000-0000087f’ in macro ‘hangupcall’
== Spawn extension (app-queue-toggle, s, 23) exited non-zero on ‘SIP/2000-0000087f’

I’m not sure if the hint is not being triggered because the code is existing in the app-queue-toggle context and not returning to the ext-queues context. i tried to insert the hint line before the call to the app-gueue-toggle context but in any case the hint monitor does not show any state.

freepbx*CLI> core show hint _*45
_*45*X.@ext-queues  : ${DB(AMPUSER/${EXTEN  State:Unavailable     Presence:                Watchers  0
_*45XXXXXXXXX*XXXXX@: Custom:QUEUE${EXTEN:  State:Unavailable     Presence:                Watchers  0
_*45XXX*XXXXX@ext-qu: Custom:QUEUE${EXTEN:  State:Unavailable     Presence:                Watchers  0
_*45XXXX*XXXXX@ext-q: Custom:QUEUE${EXTEN:  State:Unavailable     Presence:                Watchers  0
4 hints matching extension _*45

even though the devstate list command shows clearly the device state has toggled

--- Name: 'Custom:QUEUE2000*10001' State: 'INUSE'

useful link >>> Using Custom Device States

Any one can crack this riddle? Although it’s not like me, i’m contemplating giving up on agent queue BLF…

@Stewart1 is pretty good at this stuff, maybe hooking him into the discussion will help? I’m stumped too.

edit - original content deleted

I just tested with queues module ver 14.0.2.23 using a BLF button programmed with

*455014*700

extension 5014 in queue 700. Hint works as expected:

freepbx*CLI> core show hint *455014*700
*455014*700@ext-queu: Custom:QUEUE5014*700  State:InUse           Presence:not_set         Watchers  1
1 hint matching extension *455014*700


freepbx*CLI> core show hint *455014*700
*455014*700@ext-queu: Custom:QUEUE5014*700  State:Idle            Presence:not_set         Watchers  1
1 hint matching extension *455014*700

Thank you for the test @lgaetz i am running the same module version tested it now from two separate installs same behavior. No hint info available. Which asterisk/fpbx version are you running? any special settings while setting up the queue or extension? i’m entering the bare minimum (number name destination)

No special config. I’m running FreePBX 14 with Queues module version noted above and Asterisk 13.

i have the same versions. just to recap, I am:

  • creating a queue (10001) that accepts any dynamic agents
  • creating a Chan_SIP extension (2000)
  • configuring a BLF on cisco SPA525G2: sub=*452000*10001, ext=*452000*10001
  • pressing the button, i get confirmation that i logged into the queue but the blf stays off
  • devstate list shows the extension is in use
  • queues list shows that 2000 is in 10001
  • core show hints shows state unavailable for _*45XXXX*XXXXX

i am trying it tomorrow on a fresh install, unless i am doing something wrong somewhere in the process described above…

One thing, I have the extension listed in the dynamic agents field for the queue config.

Finally got what i was doing wrong. something as simple as including the @pbx-ip-address:5060 in the sub parameter of the BLF buttin. i was just putting the *452000*10001 instead of *452000*10001@ip-of-pbx:5060
once i included the @ everything worked. Is there a way to debug BLF subscription requests server side?
Thanks for your input @lgaetz and @cynjut that was a good training in hints and device states

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.