Added support to call controller to raise a Verify event when requested by descendants.

git-svn-id: http://voip.null.ro/svn/yate@1838 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
marian 2008-03-24 09:39:09 +00:00
parent 97bea50166
commit 19b93078f4
2 changed files with 29 additions and 0 deletions

View File

@ -43,6 +43,7 @@ static TokenDict s_dictCicLock[] = {
SignallingCallControl::SignallingCallControl(const NamedList& params,
const char* msgPrefix)
: Mutex(true),
m_verifyEvent(false),
m_circuits(0),
m_cicLock(0),
m_strategy(SignallingCircuitGroup::Increment),
@ -187,6 +188,14 @@ SignallingEvent* SignallingCallControl::getEvent(const Time& when)
return event;
}
}
// Verify ?
if (m_verifyEvent) {
m_verifyEvent = false;
SignallingMessage* msg = new SignallingMessage;
SignallingEvent* event = new SignallingEvent(SignallingEvent::Verify,msg,this);
buildVerifyEvent(msg->params());
return event;
}
// Terminate if exiting and no more calls
//TODO: Make sure we raise this event one time only
if (exiting() && !m_calls.skipNull())

View File

@ -793,6 +793,13 @@ protected:
SignallingCall* call = 0)
{ return 0; }
/**
* Build the parameters of a Verify event
* @param params The list of parameters to fill
*/
virtual void buildVerifyEvent(NamedList& params)
{}
/**
* Clear call list
*/
@ -829,6 +836,12 @@ protected:
*/
String m_msgPrefix;
/**
* Draw attention to call controller's user that something changed by
* raising a Verify event
*/
bool m_verifyEvent;
private:
SignallingCircuitGroup* m_circuits; // Circuit group
int m_cicLock; // Flags to be locked when a circuit group is attached to this controller
@ -5291,6 +5304,12 @@ protected:
virtual SignallingEvent* processCircuitEvent(SignallingCircuitEvent& event,
SignallingCall* call = 0);
/**
* Build the parameters of a Verify event
* @param params The list of parameters to fill
*/
virtual void buildVerifyEvent(NamedList& params);
/**
* Length of the Circuit Identification Code in octets
*/
@ -5348,6 +5367,7 @@ private:
int m_lockFlags; // Current request flags: blocking/unblocking,hw-failure/maintenance
unsigned int m_lockCicCode; // Current (un)blocking cic code
String m_lockMap; // The sent circuit map (contains 1 element for single circuit request)
bool m_lockChanged; // Lock changed flag used when building a Verify event
};
/**