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

James FitzGibbon james.fitzgibbon at gmail.com
Thu Jul 5 17:20:13 CDT 2007


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 


More information about the asterisk-users mailing list