[asterisk-bugs] [JIRA] (ASTERISK-28922) Attended transfer not swapping channel

George Joseph (JIRA) noreply at issues.asterisk.org
Fri May 29 08:36:25 CDT 2020


     [ https://issues.asterisk.org/jira/browse/ASTERISK-28922?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

George Joseph updated ASTERISK-28922:
-------------------------------------

    Assignee: Robert Sutton
      Status: Waiting for Feedback  (was: Triage)

Robert, is this something new you're seeing with 16.10 or was it happening with earlier versions?  If earlier versions, do you remember which version it started to appear?

There are multiple threads involved in this scenario and I'm thinking that events are being generated on one thread before the swap is completed on another.


> Attended transfer not swapping channel
> --------------------------------------
>
>                 Key: ASTERISK-28922
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-28922
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Bridges/bridge_simple
>    Affects Versions: 16.10.0
>         Environment: ubunutu 18.04, docker, asterisk 16.10, pjsip
>            Reporter: Robert Sutton
>            Assignee: Robert Sutton
>
> occasionally an attended transfer results in the agents channel name appearing in the bridge instead of the callers.
> It appears that asterisk fails to swap the channel names.
> The connected parties are as expected but the channel names are wrong which is causing problems for reporting and some of our other external systems.
> I can't recreate this on demand, I would estimate the frequency at about 1 in 500 attended transfers.
> There are 4 channels in volved
> a (000005c6) caller
> b (000005d1) agent -> a
> c (000005cb) agent -> d
> d (000005d2) other
> The call flow is:
> 1 incoming call (a) answered by agent (b).
> 2 AMI originate a second call (c) to the agent.
> 3 agent answers second call (c) (the far end (d) is making progress, but not yet answered).
> 4 agent uses "swap" button on phone to talk to original caller (b).
> 5 agent transfers the caller to the other call (b,c) , simultaneously the other call (d) answers.
> 6 the bridge shows channels (d) and (b) in the bridge instead of (a) and (d)
> 7 the expected parties are bridged and call completes normally
> {noformat}
> 2020-05-28T22:44:49.125240532Z     -- Called 147
> 2020-05-28T22:44:49.470682765Z     -- PJSIP/147-000005d1 is ringing
> 2020-05-28T22:44:49.470716891Z     -- PJSIP/147-000005d1 is ringing
> 2020-05-28T22:44:50.344321032Z     -- PJSIP/147-000005d1 answered
> 2020-05-28T22:44:50.344493873Z     -- Executing [55512341234 at routesv2-handset:1] Set("PJSIP/147-000005d1", "AGIEXITONHANGUP=yes") in new stack
> 2020-05-28T22:44:50.344574542Z     -- Executing [55512341234 at routesv2-handset:2] AGI("PJSIP/147-000005d1", "agi://127.0.0.1/route?targ=55512341234&ctx=Pre-Handset") in new stack
> 2020-05-28T22:44:50.348169514Z     -- AGI Script Executing Application: (Progress) Options: ()
> 2020-05-28T22:44:50.348553523Z     -- AGI Script Executing Application: (Playtones) Options: (ring)
> 2020-05-28T22:44:50.353520608Z     -- AGI Script Executing Application: (StopPlayTones) Options: ()
> 2020-05-28T22:44:50.478424444Z   == Begin MixMonitor Recording PJSIP/147-000005d1
> 2020-05-28T22:44:50.496147459Z     -- AGI Script Executing Application: (dial) Options: (PJSIP/55512341234 at trunk,30,rb(set-header^1^1)B(set-clid^1^1(55533332222,)))
> 2020-05-28T22:44:50.496431063Z     -- PJSIP/147-000005d1 Internal Gosub(set-clid,1,1(55533332222,)) start
> 2020-05-28T22:44:50.496449977Z     -- Executing [1 at set-clid:1] Verbose("PJSIP/147-000005d1", "1,preparing to set clid") in new stack
> 2020-05-28T22:44:50.496458410Z  preparing to set clid
> 2020-05-28T22:44:50.496536886Z     -- Executing [1 at set-clid:2] Set("PJSIP/147-000005d1", "CALLERID(num)=55533332222") in new stack
> 2020-05-28T22:44:50.496557244Z     -- Executing [1 at set-clid:3] Set("PJSIP/147-000005d1", "CALLERID(name)=") in new stack
> 2020-05-28T22:44:50.496646457Z     -- Executing [1 at set-clid:4] Return("PJSIP/147-000005d1", "") in new stack
> 2020-05-28T22:44:50.496658470Z   == Spawn extension (routesv2-handset, 55512341234, 2) exited non-zero on 'PJSIP/147-000005d1'
> 2020-05-28T22:44:50.496664422Z     -- PJSIP/147-000005d1 Internal Gosub(set-clid,1,1(55533332222,)) complete GOSUB_RETVAL=
> 2020-05-28T22:44:50.502254652Z     -- PJSIP/trunk-000005d2 Internal Gosub(set-header,1,1) start
> 2020-05-28T22:44:50.502276235Z     -- Executing [1 at set-header:1] Verbose("PJSIP/trunk-000005d2", "1,preparing to set headers") in new stack
> 2020-05-28T22:44:50.502324362Z  preparing to set headers
> 2020-05-28T22:44:50.502533577Z     -- Executing [1 at set-header:2] Set("PJSIP/trunk-000005d2", "AGIEXITONHANGUP=yes") in new stack
> 2020-05-28T22:44:50.502548007Z     -- Executing [1 at set-header:3] Set("PJSIP/trunk-000005d2", "PJSIP_HEADER(add,Call-Info)=") in new stack
> 2020-05-28T22:44:50.503072316Z     -- Executing [1 at set-header:4] ExecIf("PJSIP/trunk-000005d2", "1?return()") in new stack
> 2020-05-28T22:44:50.503272445Z   == Spawn extension (routesv2-inbound, 55512341234, 1) exited non-zero on 'PJSIP/trunk-000005d2'
> 2020-05-28T22:44:50.503314327Z     -- PJSIP/trunk-000005d2 Internal Gosub(set-header,1,1) complete GOSUB_RETVAL=
> 2020-05-28T22:44:50.503323399Z     -- Called PJSIP/55512341234 at trunk
> 2020-05-28T22:44:50.579111153Z   == Begin MixMonitor Recording PJSIP/147-000005d1
> 2020-05-28T22:44:50.679223223Z   == Begin MixMonitor Recording PJSIP/147-000005d1
> 2020-05-28T22:44:51.063049680Z OK  == End MixMonitor Recording PJSIP/147-000005d1
> 2020-05-28T22:44:51.124326992Z OK  == End MixMonitor Recording PJSIP/147-000005d1
> 2020-05-28T22:44:51.789749843Z     -- Call on PJSIP/trunk-000005d2 placed on hold
> 2020-05-28T22:44:51.792444137Z     -- Started music on hold, class 'default2', on channel 'PJSIP/trunk-000005d2'
> 2020-05-28T22:44:51.911628373Z     -- Stopped music on hold on PJSIP/trunk-000005c6
> 2020-05-28T22:44:52.632191581Z     -- Channel PJSIP/147-000005cb left 'simple_bridge' basic-bridge <44009243-408d-4889-8839-bc60e4ad46db>
> 2020-05-28T22:44:52.632661038Z     -- Channel PJSIP/trunk-000005c6 left 'simple_bridge' basic-bridge <44009243-408d-4889-8839-bc60e4ad46db>
> 2020-05-28T22:44:52.632735669Z   == Spawn extension (company-activity, activity-agi, 2) exited non-zero on 'PJSIP/147-000005cb'
> 2020-05-28T22:44:56.511197717Z     -- PJSIP/trunk-000005d2 is making progress passing it to PJSIP/147-000005d1
> 2020-05-28T22:44:56.511370052Z     -- PJSIP/trunk-000005d2 is making progress passing it to PJSIP/147-000005d1
> 2020-05-28T22:44:59.166297182Z     -- PJSIP/trunk-000005d2 answered PJSIP/147-000005d1
> 2020-05-28T22:44:59.167460733Z     -- Channel PJSIP/trunk-000005d2 joined 'simple_bridge' basic-bridge <d8d44dd2-9386-40ed-9782-b1c9f71d225a>
> 2020-05-28T22:44:59.167681295Z     -- Channel PJSIP/147-000005d1 joined 'simple_bridge' basic-bridge <d8d44dd2-9386-40ed-9782-b1c9f71d225a>
> 2020-05-28T22:44:59.200426835Z   == Begin MixMonitor Recording PJSIP/147-000005d1
> 2020-05-28T22:44:59.285524521Z   == Begin MixMonitor Recording PJSIP/147-000005d1
> 2020-05-28T22:44:59.306030575Z   == Begin MixMonitor Recording PJSIP/trunk-000005d2
> 2020-05-28T22:44:59.723198569Z OK  == End MixMonitor Recording PJSIP/147-000005d1
> 2020-05-28T22:44:59.756330292Z OK  == End MixMonitor Recording PJSIP/147-000005d1
> {noformat}



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



More information about the asterisk-bugs mailing list