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/[EMAIL PROTECTED])

Then as soon as the call is bridged, my 'h' extension gets run:

   -- Executing [EMAIL PROTECTED]:1] Dial("Local/[EMAIL PROTECTED],2", 
"SIP/491")
in new stack
   -- Called 491
   -- SIP/491-00aa22d0 is ringing
   -- Local/[EMAIL PROTECTED],1 is ringing
   -- SIP/491-00aa22d0 answered Local/[EMAIL PROTECTED],2
   -- Local/[EMAIL PROTECTED],1 answered SIP/427-9d849a90
 == Spawn extension (agents, 491, 1) exited non-zero on '
Local/[EMAIL PROTECTED],2'
   -- Executing [EMAIL PROTECTED]:1] PauseQueueMember("Local/[EMAIL 
PROTECTED],2",
"|Local/[EMAIL PROTECTED]") 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/[EMAIL PROTECTED]/n|PAUSEALL|
1183671940|1183671934.5745|emerg_nccc_ld_ts|Local/[EMAIL PROTECTED]
|CONNECT|6|1183671934.5746
1183672005|1183671934.5745|emerg_nccc_ld_ts|Local/[EMAIL PROTECTED]
|TRANSFER|7777|from-somecontext|6|65

If I use /n when adding the channel to the queue:

AddQueueMember(queuename,Local/[EMAIL PROTECTED]/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/[EMAIL PROTECTED]
/n|CONNECT|5|1183672119.5840
1183672135|1183672119.5839|emerg_nccc_ld_ts|Local/[EMAIL PROTECTED]
/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

Reply via email to