Search:
     
3CX Phone System for Windows Download the Free Edition

Asterisk tips Queue Member ackcall

First, setup a queue, then have a context for your queue members. In this case, I used members as the context. This is also using AEL. Sorry, but it works best for me.

I needed to do research for about a day and a lot of troubleshooting to fix the problem.

The problem was that every time the macro would run to acknowledge, if the callee hung up, it aborted the call, forcing it to hangup on the person in the queue.
This lets you acknowledge or hangup, thus leaving the person in the queue for the next person.

In default context:
611 => { Answer(); Queue(NewQueue,n,180); Hangup();}

context members {
_XXXXX => { Dial(SIP/${EXTEN}@${SIPHOST},25,M(ackcall|${EXTEN})); }
}

The magical macro:
macro ackcall(extension) {
__MACRO_RESULT=CONGESTION; //This is what leaves the caller in the queue if the person that receives the call just hangs up.
Read(ACK,ackcall,1); //ackcall.gsm: You are receiving a call from the queue. Press 1 to accept it, 3 to pause or logout of the queue.
switch (${ACK}){
case 1: __MACRO_RESULT=ANSWERED; break;
case 3: PauseQueueMember(|Local/${extension}@members); // This assumes that asterisk can execute the PauseQueueMember
          Playback(youarepaused); // You have been paused in the queue. Remember to log back in
          break;
default: __MACRO_RESULT=BUSY;
           break;
};
}
Created by: dalbaech,Last modification on Wed 11 of Feb, 2009 [14:12 UTC]


Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - support@voip-info.org

Page Changes | Comments

 





Search: