[asterisk-bugs] [JIRA] (ASTERISK-29658) app_queue: Multiple members in same queue with same state interface don't all reflect proper state

Bill Kervaski (JIRA) noreply at issues.asterisk.org
Thu Sep 16 08:56:35 CDT 2021


    [ https://issues.asterisk.org/jira/browse/ASTERISK-29658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=256335#comment-256335 ] 

Bill Kervaski commented on ASTERISK-29658:
------------------------------------------

In the case of our usage, we use PJSIP as well as our own app that uses WSS via a Local channel push notification in a loop for the duration of the dial from the queue.  It works great, with the exception that the state interface won't update for the local channel so our web based queue monitor reflects the same.  It would be great, if someone was so inclined, to have the local channel sync up with the hints.  I would do more damage than good to the Asterisk source, I haven't messed with it since 0.9, so we are happy to offer a bounty to anyone that can get it patched supporting this usage and accepted in an upcoming release.  Cheers, all :)

> app_queue: Multiple members in same queue with same state interface don't all reflect proper state
> --------------------------------------------------------------------------------------------------
>
>                 Key: ASTERISK-29658
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29658
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Applications/app_queue
>    Affects Versions: 18.6.0
>         Environment: CentOs Stream
>            Reporter: Bill Kervaski
>         Attachments: debug_log.txt
>
>
> Here is an Asterisk 18.6.0 setup that perfectly duplicates the issue, it's very easily reproducible.
> It's running on CentOs Stream (latest) and compiled with only "-with-jansson-bundled".
> The local queue member will only update its state when you change the timestamp of queues.conf and reload the members:
> touch queues.conf; asterisk -rx "queue reload members" (the "refresh" fix)
> core show hints
> > 801 at default         : PJSIP/801             State:**InUse&Ringing**   Presence:not_set         Watchers  2
> > 800 at default         : PJSIP/800             State:Idle            Presence:not_set         Watchers  0
> > 802 at default         : PJSIP/802             State:Idle            Presence:not_set         Watchers  0
> queue show 200
> > 200 has 1 calls (max unlimited) in 'ringall' strategy (0s holdtime, 0s talktime), W:0, C:0, A:3, SL:0.0%, SL2:0.0% within 0s
> >    Members: 
> >       801 (Local/801 at local from hint:801 at default) (ringinuse enabled) (**Ring+Inuse**) has taken no calls yet
> >       801 (PJSIP/801 from hint:801 at default) (ringinuse enabled) (**Not in use**) has taken no calls yet
> >    Callers: 
> >       1. PJSIP/801-0000000c (wait: 0:05, prio: 0)
> Just as a footnote, if you answer ...
> > 200 has 0 calls (max unlimited) in 'ringall' strategy (1s holdtime, 0s talktime), W:0, C:0, A:4, SL:0.0%, SL2:0.0% within 0s
> >    Members: 
> >       801 (Local/801 at local from hint:801 at default) (ringinuse enabled) (**On Hold**) has taken no calls yet
> >       801 (PJSIP/801 from hint:801 at default) (ringinuse enabled) (in call) (**Not in use**) has taken no calls yet
> >    No Callers
> ... and then run the "refresh" fix ...
> > 200 has 0 calls (max unlimited) in 'ringall' strategy (1s holdtime, 16s talktime), W:0, C:1, A:4, SL:0.0%, SL2:0.0% within 0s
> >    Members: 
> >       801 (Local/801 at local from hint:801 at default) (ringinuse enabled) (**On Hold**) has taken no calls yet
> >       801 (PJSIP/801 from hint:801 at default) (ringinuse enabled) (**On Hold**) has taken no calls yet
> >    No Callers
> ... everything syncs up properly.
> queues.conf
> > [general]
> > 
> > [200]
> > member=>PJSIP/801,,801,hint:801 at default
> > member=>Local/801 at local,,801,hint:801 at default
> extensions.conf
> > [general]
> > 
> > [default]
> > exten => s,1,Playback(beep)
> > exten => s,n,Wait(30)
> > exten => s,n,Hangup
> > 
> > exten => _8XX,1,Dial(PJSIP/${EXTEN}&Local/${EXTEN}@local)
> > 
> > exten => 200,1,Queue(200)
> > 
> > exten => 800,hint,PJSIP/800
> > exten => 801,hint,PJSIP/801
> > exten => 802,hint,PJSIP/802
> > 
> > [local]
> > exten => _8XX,1(start),NoOp( *** ${EXTEN} *** )
> > exten => _8XX,n,Wait(3)
> > exten => _8XX,n,Goto(start)
> pjsip.conf
> > [global]
> > 
> > [default-udp-transport]
> > type=transport
> > protocol=udp
> > bind=0.0.0.0
> pjsip_wizard.conf
> > [extension](!)
> > type=wizard
> > accepts_auth=yes
> > accepts_registrations=yes
> > endpoint/disallow=all
> > endpoint/allow=g722
> > aor/max_contacts=1
> > aor/remove_existing=yes
> > 
> > [800](extension)
> > endpoint/transport=default-udp-transport
> > endpoint/context=default
> > inbound_auth/username=800
> > inbound_auth/password=800
> > 
> > [801](extension)
> > endpoint/transport=default-udp-transport
> > endpoint/context=default
> > inbound_auth/username=801
> > inbound_auth/password=801
> > 
> > [802](extension)
> > endpoint/transport=default-udp-transport
> > endpoint/context=default
> > inbound_auth/username=802
> > inbound_auth/password=802



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list