At 11:32 AM on 15 Oct 2009, C. Chad Wallace wrote:

> At 3:37 PM on 15 Oct 2009, Benny Amorsen wrote:
> 
> > Perhaps the problem could be restated in a different way: After a
> > queue member rejects a call (instead of just not answering), the
> > queue should wait X amount of time before sending the next call.
> > Queues.conf has a million settings, but I can't find one which does
> > this.
> 
> To pause an agent, store the "unpause time" per agent in the AstDB.
> Then when you're deciding whether to give out a call (in the Local
> channel), look up "${DB(AgentPaused/<agentid>)}" and compare it to the
> current time.  If there is no record or the time has passed, put the
> call through; otherwise, skip that agent.
> 
> Sorry, no example code yet...  I just wanted to get the idea out
> there.

OK, I decided to write it up in AEL.  It's incomplete and untested, but
it probably gets the idea across a little better.

context agentcalls {
  _2XX => {
    Set(AGENT=${EXTEN});  // Assuming agent ID is extension.
    
    if (${EPOCH}>${DB(AgentPaused/${AGENT})}) {
      // Let the call through to the cell phone
      Dial(...);

      if (<cell call was rejected>) {
        // Flag agent as paused for the next 30 seconds.
        Set(DB(AgentPaused/${AGENT})=$[${EPOCH}+30]);
      };
    }
    else {
        // Agent still paused.
    };
  };
};


-- 

C. Chad Wallace, B.Sc.
The Lodging Company
http://www.skihills.com/
OpenPGP Public Key ID: 0x262208A0

Attachment: signature.asc
Description: PGP signature

_______________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

AstriCon 2009 - October 13 - 15 Phoenix, Arizona
Register Now: http://www.astricon.net

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to