[asterisk-bugs] [JIRA] (ASTERISK-28922) Attended transfer not swapping channel
Robert Sutton (JIRA)
noreply at issues.asterisk.org
Wed Jun 3 00:57:25 CDT 2020
[ https://issues.asterisk.org/jira/browse/ASTERISK-28922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=251009#comment-251009 ]
Robert Sutton commented on ASTERISK-28922:
------------------------------------------
Upon reviewing the call recordings it doesn't look like the parties became bridged.
Here is another example call
{noformat}
2020-06-03T03:24:20.849270119Z -- Executing [55512341236 at routesv2-inbound:1] Set("PJSIP/trunk-00007073", "AGIEXITONHANGUP=yes") in new stack
2020-06-03T03:24:20.854578844Z -- Executing [55512341236 at routesv2-inbound:2] Set("PJSIP/trunk-00007073", "recovery-did=55512341236") in new stack
2020-06-03T03:24:20.854628635Z -- Executing [55512341236 at routesv2-inbound:3] AGI("PJSIP/trunk-00007073", "agi://127.0.0.1/route?targ=55512341236&ctx=Pre-Inbound") in new stack
2020-06-03T03:24:26.485758564Z == Begin MixMonitor Recording PJSIP/trunk-00007073
2020-06-03T03:24:26.501662881Z -- Started music on hold, class 'queue17', on channel 'PJSIP/trunk-00007073'
2020-06-03T03:24:27.332354027Z -- PJSIP/139-00007074 is ringing
2020-06-03T03:24:27.332564550Z -- PJSIP/139-00007074 is ringing
2020-06-03T03:24:32.204200096Z -- PJSIP/139-00007074 answered
2020-06-03T03:24:32.204428655Z -- Executing [activity-agi at noojee-activity:1] Set("PJSIP/139-00007074", "AGIEXITONHANGUP=yes") in new stack
2020-06-03T03:24:32.204536628Z -- Executing [activity-agi at noojee-activity:2] AGI("PJSIP/139-00007074", "agi://127.0.0.1/activityAgi") in new stack
2020-06-03T03:24:32.206292738Z -- Started music on hold, class 'default', on channel 'PJSIP/139-00007074'
2020-06-03T03:24:32.206408007Z -- Stopped music on hold on PJSIP/139-00007074
2020-06-03T03:24:32.226121203Z == Begin MixMonitor Recording PJSIP/trunk-00007073
2020-06-03T03:24:32.226569302Z -- AGI Script Executing Application: (bridge) Options: (PJSIP/trunk-00007073,x)
2020-06-03T03:24:32.226961487Z -- Stopped music on hold on PJSIP/trunk-00007073
2020-06-03T03:24:32.227720243Z == Spawn extension (routesv2-inbound, 55512341236, 3) exited non-zero on 'Surrogate/PJSIP/trunk-00007073'
2020-06-03T03:24:32.228644614Z -- Channel PJSIP/trunk-00007073 joined 'simple_bridge' basic-bridge <cbfbb690-f7f7-4df1-a5ba-68eb4fb6ea5c>
2020-06-03T03:24:32.228657365Z -- Channel PJSIP/139-00007074 joined 'simple_bridge' basic-bridge <cbfbb690-f7f7-4df1-a5ba-68eb4fb6ea5c>
2020-06-03T03:24:32.365138981Z == Begin MixMonitor Recording PJSIP/trunk-00007073
2020-06-03T03:24:32.866628699Z OK == End MixMonitor Recording PJSIP/trunk-00007073
2020-06-03T03:24:32.916866421Z OK == End MixMonitor Recording PJSIP/trunk-00007073
2020-06-03T03:26:05.178322027Z -- Started music on hold, class 'default2', on channel 'PJSIP/trunk-00007073'
2020-06-03T03:27:27.147709996Z -- Stopped music on hold on PJSIP/trunk-00007073
2020-06-03T03:28:12.159161972Z -- Started music on hold, class 'default2', on channel 'PJSIP/trunk-00007073'
2020-06-03T03:28:20.357329832Z -- PJSIP/139-000070b1 is ringing
2020-06-03T03:28:20.357853432Z -- PJSIP/139-000070b1 is ringing
2020-06-03T03:28:22.277879639Z -- PJSIP/139-000070b1 answered
2020-06-03T03:28:22.278630439Z -- Executing [55512341235 at routesv2-handset:1] Set("PJSIP/139-000070b1", "AGIEXITONHANGUP=yes") in new stack
2020-06-03T03:28:22.278848578Z -- Executing [55512341235 at routesv2-handset:2] AGI("PJSIP/139-000070b1", "agi://127.0.0.1/route?targ=55512341235&ctx=Pre-Handset") in new stack
2020-06-03T03:28:22.416985194Z -- AGI Script Executing Application: (mixmonitor) Options: (/var/spool/asterisk/monitor/1591154899.38777--55512341235-O-1.wav,,curl 'http://127.0.0.1:8080/rest/recordingMigration/migrate?guid=1591154902415-62483&apiKey=xxxxxxxx')
2020-06-03T03:28:22.417306143Z == Begin MixMonitor Recording PJSIP/139-000070b1
2020-06-03T03:28:22.434042490Z -- PJSIP/139-000070b1 Internal Gosub(set-clid,1,1(55512341234,)) start
2020-06-03T03:28:22.434123870Z -- Executing [1 at set-clid:1] Verbose("PJSIP/139-000070b1", "1,preparing to set clid") in new stack
2020-06-03T03:28:22.434195764Z -- Executing [1 at set-clid:2] Set("PJSIP/139-000070b1", "CALLERID(num)=55512341234") in new stack
2020-06-03T03:28:22.434323697Z -- Executing [1 at set-clid:3] Set("PJSIP/139-000070b1", "CALLERID(name)=") in new stack
2020-06-03T03:28:22.434558336Z -- Executing [1 at set-clid:4] Return("PJSIP/139-000070b1", "") in new stack
2020-06-03T03:28:22.434682006Z == Spawn extension (routesv2-handset, 55512341235, 2) exited non-zero on 'PJSIP/139-000070b1'
2020-06-03T03:28:22.434696409Z -- PJSIP/139-000070b1 Internal Gosub(set-clid,1,1(55512341234,)) complete GOSUB_RETVAL=
2020-06-03T03:28:22.439141280Z -- PJSIP/trunk-000070b3 Internal Gosub(set-header,1,1) start
2020-06-03T03:28:22.439469881Z -- Executing [1 at set-header:1] Verbose("PJSIP/trunk-000070b3", "1,preparing to set headers") in new stack
2020-06-03T03:28:22.439496683Z -- Executing [1 at set-header:2] Set("PJSIP/trunk-000070b3", "AGIEXITONHANGUP=yes") in new stack
2020-06-03T03:28:22.439535849Z -- Executing [1 at set-header:3] Set("PJSIP/trunk-000070b3", "PJSIP_HEADER(add,Call-Info)=") in new stack
2020-06-03T03:28:22.440035744Z -- Executing [1 at set-header:4] ExecIf("PJSIP/trunk-000070b3", "1?return()") in new stack
2020-06-03T03:28:22.440333869Z == Spawn extension (routesv2-inbound, 55512341235, 1) exited non-zero on 'PJSIP/trunk-000070b3'
2020-06-03T03:28:22.440353838Z -- PJSIP/trunk-000070b3 Internal Gosub(set-header,1,1) complete GOSUB_RETVAL=
2020-06-03T03:28:22.527152300Z == Begin MixMonitor Recording PJSIP/139-000070b1
2020-06-03T03:28:22.621167046Z == Begin MixMonitor Recording PJSIP/139-000070b1
2020-06-03T03:28:23.098093551Z OK == End MixMonitor Recording PJSIP/139-000070b1
2020-06-03T03:28:23.149926199Z OK == End MixMonitor Recording PJSIP/139-000070b1
2020-06-03T03:28:26.568434624Z -- PJSIP/trunk-000070b3 is making progress passing it to PJSIP/139-000070b1
2020-06-03T03:28:26.568690871Z -- PJSIP/trunk-000070b3 is making progress passing it to PJSIP/139-000070b1
2020-06-03T03:28:34.884984499Z -- PJSIP/trunk-000070b3 answered PJSIP/139-000070b1
2020-06-03T03:28:34.886288019Z -- Channel PJSIP/trunk-000070b3 joined 'simple_bridge' basic-bridge <45abb372-a940-4e5e-b60b-57cf81e89aa6>
2020-06-03T03:28:34.886574156Z -- Channel PJSIP/139-000070b1 joined 'simple_bridge' basic-bridge <45abb372-a940-4e5e-b60b-57cf81e89aa6>
2020-06-03T03:28:34.920705231Z == Begin MixMonitor Recording PJSIP/139-000070b1
2020-06-03T03:28:34.997179763Z == Begin MixMonitor Recording PJSIP/trunk-000070b3
2020-06-03T03:28:35.107008107Z == Begin MixMonitor Recording PJSIP/trunk-000070b3
2020-06-03T03:28:35.565087787Z OK == End MixMonitor Recording PJSIP/139-000070b1
2020-06-03T03:28:35.635236129Z OK == End MixMonitor Recording PJSIP/trunk-000070b3
2020-06-03T03:28:50.052485553Z -- Started music on hold, class 'default2', on channel 'PJSIP/trunk-000070b3'
2020-06-03T03:28:50.322835005Z -- Stopped music on hold on PJSIP/trunk-00007073
2020-06-03T03:28:53.819300906Z -- Channel PJSIP/139-00007074 left 'simple_bridge' basic-bridge <cbfbb690-f7f7-4df1-a5ba-68eb4fb6ea5c>
2020-06-03T03:28:53.819899905Z -- Channel PJSIP/trunk-00007073 left 'simple_bridge' basic-bridge <cbfbb690-f7f7-4df1-a5ba-68eb4fb6ea5c>
2020-06-03T03:28:53.821052656Z == Spawn extension (noojee-activity, activity-agi, 2) exited non-zero on 'PJSIP/139-00007074'
2020-06-03T03:28:53.896461826Z [Jun 3 13:28:53] NOTICE[91]: manager.c:4491 action_hangup: Request to hangup non-existent channel: PJSIP/139-00007074
2020-06-03T03:28:55.438142879Z OK == End MixMonitor Recording PJSIP/trunk-00007073
2020-06-03T03:38:37.942288492Z -- Stopped music on hold on PJSIP/trunk-000070b3
2020-06-03T03:38:37.942956798Z -- Channel PJSIP/trunk-000070b3 left 'simple_bridge' basic-bridge <45abb372-a940-4e5e-b60b-57cf81e89aa6>
2020-06-03T03:38:37.943355251Z -- Channel PJSIP/139-000070b1 left 'simple_bridge' basic-bridge <45abb372-a940-4e5e-b60b-57cf81e89aa6>
2020-06-03T03:38:37.945822649Z -- <PJSIP/139-000070b1>AGI Script agi://127.0.0.1/route?targ=55512341235&ctx=Pre-Handset completed, returning 0
2020-06-03T03:38:37.946106991Z -- Executing [55512341235 at routesv2-handset:3] ExecIf("PJSIP/139-000070b1", "0?goto(failed)") in new stack
2020-06-03T03:38:37.946499118Z -- Executing [55512341235 at routesv2-handset:4] Hangup("PJSIP/139-000070b1", "") in new stack
2020-06-03T03:38:38.027230229Z == Spawn extension (routesv2-handset, 55512341235, 4) exited non-zero on 'PJSIP/139-000070b1'
2020-06-03T03:38:38.027358146Z -- Executing [h at routesv2-handset:1] Hangup("PJSIP/139-000070b1", "") in new stack
2020-06-03T03:38:38.027464144Z == Spawn extension (routesv2-handset, h, 1) exited non-zero on 'PJSIP/139-000070b1'
2020-06-03T03:38:42.105281779Z OK == End MixMonitor Recording PJSIP/trunk-000070b3
2020-06-03T03:38:42.169912002Z OK == End MixMonitor Recording PJSIP/139-000070b1
{noformat}
> 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: Unassigned
>
> 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