[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 09:19:33 CDT 2021


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

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

That makes sense, thanks for the reply.  We have a work around by just using one interface and spawn both the PJSIP (and all registered devices via PJSIP_DIAL_CONTACTS) and WSS calls from that, however, in that case BLINDTRANSFER and ATTENDEDTRANSFER aren't logged by the queue and the agent gets credit for the entire call (beyond just their participation).  Typing that out gave me an idea, a possible alternative to both, going off to test it.

> 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