[asterisk-users] Missing TRANSFER event in queue log when using Local Channels

Anthony Francis anthonyf at rockynet.com
Thu Jul 5 17:40:43 CDT 2007


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-users
I 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.



More information about the asterisk-users mailing list