Added separate setting for enabling sending changeback and changeover between linksets.

This setting is disabled by default so time controlled diversion is used between linksets.


git-svn-id: http://voip.null.ro/svn/yate@3730 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
paulc 2010-10-20 08:08:35 +00:00
parent b43ef61320
commit 8346fdf2d2
2 changed files with 8 additions and 4 deletions

View File

@ -305,9 +305,11 @@ static const TokenDict s_dict_control[] = {
SS7Management::SS7Management(const NamedList& params, unsigned char sio)
: SignallingComponent(params.safe("SS7Management"),&params),
SS7Layer4(sio,&params), m_changeMsgs(true), m_neighbours(true)
SS7Layer4(sio,&params),
m_changeMsgs(true), m_changeSets(false), m_neighbours(true)
{
m_changeMsgs = params.getBoolValue("changemsgs",m_changeMsgs);
m_changeSets = params.getBoolValue("changesets",m_changeSets);
m_neighbours = params.getBoolValue("neighbours",m_neighbours);
}
@ -751,6 +753,7 @@ bool SS7Management::control(NamedList& params)
return false;
m_changeMsgs = params.getBoolValue("changemsgs",m_changeMsgs);
m_changeSets = params.getBoolValue("changesets",m_changeSets);
m_neighbours = params.getBoolValue("neighbours",m_neighbours);
const String* addr = params.getParam("address");
if (cmd < 0 || TelEngine::null(addr))
@ -924,7 +927,7 @@ void SS7Management::notify(SS7Layer3* network, int sls)
for (txSls = 0; m_changeMsgs && (txSls < 256); txSls++)
localLink = (linkAvail[txSls] = (txSls != sls) && network->inService(txSls)) || localLink;
// if no link is available in linkset rely on another linkset
linkAvail[256] = !localLink;
linkAvail[256] = m_changeSets && !localLink;
for (unsigned int i = 0; m_changeMsgs && (i < YSS7_PCTYPE_COUNT); i++) {
SS7PointCode::Type type = static_cast<SS7PointCode::Type>(i+1);
unsigned int local = network->getLocal(type);
@ -1028,11 +1031,11 @@ void SS7Management::notify(SS7Layer3* network, int sls)
}
if (force) {
if (linkUp) {
Debug(this,DebugWarn,"Could not changeback link %d, activating anyway [%p]",sls,this);
Debug(this,DebugMild,"Could not changeback link %d, activating anyway [%p]",sls,this);
network->inhibit(sls,0,SS7Layer2::Inactive);
}
else {
Debug(this,DebugWarn,"Could not changeover link %d, deactivating anyway [%p]",sls,this);
Debug(this,DebugMild,"Could not changeover link %d, deactivating anyway [%p]",sls,this);
network->inhibit(sls,SS7Layer2::Inactive,0);
}
}

View File

@ -7607,6 +7607,7 @@ private:
bool timeout(SignallingMessageTimer& timer, bool final);
SignallingMessageTimerList m_pending;
bool m_changeMsgs;
bool m_changeSets;
bool m_neighbours;
};