From 19b93078f417fd9c4cc1a4412ef0ba8940dfc0fb Mon Sep 17 00:00:00 2001 From: marian Date: Mon, 24 Mar 2008 09:39:09 +0000 Subject: [PATCH] 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 --- libs/ysig/sigcall.cpp | 9 +++++++++ libs/ysig/yatesig.h | 20 ++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/libs/ysig/sigcall.cpp b/libs/ysig/sigcall.cpp index 1ecf6563..46811e7c 100644 --- a/libs/ysig/sigcall.cpp +++ b/libs/ysig/sigcall.cpp @@ -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()) diff --git a/libs/ysig/yatesig.h b/libs/ysig/yatesig.h index 3690a222..8b01a328 100644 --- a/libs/ysig/yatesig.h +++ b/libs/ysig/yatesig.h @@ -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 }; /**