James FitzGibbon
2007-Jul-05 22:20 UTC
[asterisk-users] Missing TRANSFER event in queue log when using Local Channels
Has anyone observed a problem where using Local channels with AddQueueMember results in missing TRANSFER events? Right now I'm using straight SIP channels when I call AddQueueMember(). I'm contemplating moving to Local channels because the non-state-based wrapuptime blows when you have a channel in multiple queues (they can hang up and get a call immediately so long as it's from a different queue). My grand plan is to use the 'h' extension in the context where app_queue calls my agents to invoke PauseQueueMember instead. The problem is with the /n suffix to the channel name. With it, I lose TRANSFER events. Without it, the 'h' extension gets invoked as soon as the call is bridged to the agent. My agent context looks like this: [agents] exten => 491,1,Dial(SIP/491,20) exten => h,1,PauseQueueMember(|${CUT(CHANNEL,,1)}) When I do something along the lines of: AddQueueMember(queuename,Local/XXXX at agents) Then as soon as the call is bridged, my 'h' extension gets run: -- Executing [491 at agents:1] Dial("Local/491 at agents-c002,2", "SIP/491") in new stack -- Called 491 -- SIP/491-00aa22d0 is ringing -- Local/491 at agents-c002,1 is ringing -- SIP/491-00aa22d0 answered Local/491 at agents-c002,2 -- Local/491 at agents-c002,1 answered SIP/427-9d849a90 == Spawn extension (agents, 491, 1) exited non-zero on ' Local/491 at agents-c002,2' -- Executing [h at agents:1] PauseQueueMember("Local/491 at agents-c002,2", "|Local/491 at agents") in new stack -- Stopped music on hold on SIP/427-9d849a90 Once the call is bridged, I transfer to 7777 from the agent softphone. This is what queue log looks like for this type of call: 1183671934|1183671934.5745|emerg_nccc_ld_ts|NONE|ENTERQUEUE||427 1183671937|NONE|NONE|Local/491 at agents/n|PAUSEALL| 1183671940|1183671934.5745|emerg_nccc_ld_ts|Local/491 at agents |CONNECT|6|1183671934.5746 1183672005|1183671934.5745|emerg_nccc_ld_ts|Local/491 at agents |TRANSFER|7777|from-somecontext|6|65 If I use /n when adding the channel to the queue: AddQueueMember(queuename,Local/XXXX at agents/n) Then my 'h' extension is not executed until the bridged call is actually over. I do the same transfer, but it doesn't show up in the queue log - the call appears to have been terminated by the caller. 1183672119|1183672119.5839|emerg_nccc_ld_ts|NONE|ENTERQUEUE||427 1183672124|1183672119.5839|emerg_nccc_ld_ts|Local/491 at agents /n|CONNECT|5|1183672119.5840 1183672135|1183672119.5839|emerg_nccc_ld_ts|Local/491 at agents /n|COMPLETECALLER|5|11|1 Any ideas? I need the Pause-on-agent-hangup behaviour (or something like it, short of adding proper wrapup state to app_queue), but I can't lose visibility of my transfers (especially not after I just introduced the sales people to them after never having visibility of this stat on a Nortel BCM) Much appreciated. -- j. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20070705/c9bc20f4/attachment.htm
Anthony Francis
2007-Jul-05 22:40 UTC
[asterisk-users] Missing TRANSFER event in queue log when using Local Channels
James FitzGibbon wrote:> Has anyone observed a problem where using Local channels with > AddQueueMember results in missing TRANSFER events? > > Right now I'm using straight SIP channels when I call > AddQueueMember(). I'm contemplating moving to Local channels because > the non-state-based wrapuptime blows when you have a channel in > multiple queues (they can hang up and get a call immediately so long > as it's from a different queue). My grand plan is to use the 'h' > extension in the context where app_queue calls my agents to invoke > PauseQueueMember instead. > > The problem is with the /n suffix to the channel name. With it, I > lose TRANSFER events. Without it, the 'h' extension gets invoked as > soon as the call is bridged to the agent. > > My agent context looks like this: > > [agents] > exten => 491,1,Dial(SIP/491,20) > exten => h,1,PauseQueueMember(|${CUT(CHANNEL,,1)}) > > When I do something along the lines of: > > AddQueueMember(queuename,Local/XXXX at agents) > > Then as soon as the call is bridged, my 'h' extension gets run: > > -- Executing [491 at agents:1] Dial("Local/491 at agents-c002,2", > "SIP/491") in new stack > -- Called 491 > -- SIP/491-00aa22d0 is ringing > -- Local/491 at agents-c002,1 is ringing > -- SIP/491-00aa22d0 answered Local/491 at agents-c002,2 > -- Local/491 at agents-c002,1 answered SIP/427-9d849a90 > == Spawn extension (agents, 491, 1) exited non-zero on > 'Local/491 at agents-c002,2' > -- Executing [ h at agents:1] > PauseQueueMember("Local/491 at agents-c002,2", "|Local/491 at agents") in > new stack > -- Stopped music on hold on SIP/427-9d849a90 > > Once the call is bridged, I transfer to 7777 from the agent > softphone. This is what queue log looks like for this type of call: > > 1183671934|1183671934.5745|emerg_nccc_ld_ts|NONE|ENTERQUEUE||427 > 1183671937|NONE|NONE|Local/491 at agents/n|PAUSEALL| > 1183671940|1183671934.5745|emerg_nccc_ld_ts|Local/491 at agents|CONNECT|6|1183671934.5746 > 1183672005|1183671934.5745|emerg_nccc_ld_ts|Local/491 at agents > |TRANSFER|7777|from-somecontext|6|65 > > If I use /n when adding the channel to the queue: > > AddQueueMember(queuename,Local/XXXX at agents/n) > > Then my 'h' extension is not executed until the bridged call is > actually over. I do the same transfer, but it doesn't show up in the > queue log - the call appears to have been terminated by the caller. > > 1183672119|1183672119.5839|emerg_nccc_ld_ts|NONE|ENTERQUEUE||427 > 1183672124|1183672119.5839|emerg_nccc_ld_ts|Local/491 at agents/n|CONNECT|5|1183672119.5840 > 1183672135|1183672119.5839|emerg_nccc_ld_ts|Local/491 at agents > /n|COMPLETECALLER|5|11|1 > > Any ideas? I need the Pause-on-agent-hangup behaviour (or something > like it, short of adding proper wrapup state to app_queue), but I > can't lose visibility of my transfers (especially not after I just > introduced the sales people to them after never having visibility of > this stat on a Nortel BCM) > > Much appreciated. > > -- > j. > ------------------------------------------------------------------------ > > _______________________________________________ > --Bandwidth and Colocation Provided by http://www.api-digital.com-- > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-usersI would suggest using the AMI to watch for the complete events and have your ami watcher fire in the pause, that way you could use actual device names or even dynamic members.