Search:
Asterisk tips Queue Member ackcall
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]

Page Changes
