Allow sending MTN and MTNS messages over inhibited or unchecked links.

Never try to reroute a maintenance message to another link.


git-svn-id: http://voip.null.ro/svn/yate@3508 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
paulc 2010-08-25 11:28:56 +00:00
parent 1ec6b7f06c
commit c421352fc9
1 changed files with 6 additions and 1 deletions

View File

@ -840,6 +840,7 @@ int SS7MTP3::transmitMSU(const SS7MSU& msu, const SS7Label& label, int sls)
return -1;
}
bool maint = (msu.getSIF() == SS7MSU::MTN) || (msu.getSIF() == SS7MSU::MTNS);
// Try to find a link with the given SLS
ObjList* l = (sls >= 0) ? &m_links : 0;
for (; l; l = l->next()) {
@ -849,7 +850,7 @@ int SS7MTP3::transmitMSU(const SS7MSU& msu, const SS7Label& label, int sls)
SS7Layer2* link = *p;
if (link->sls() == sls) {
XDebug(this,DebugAll,"Found link %p for SLS=%d [%p]",link,sls,this);
if (link->operational() && !link->inhibited()) {
if (link->operational() && (maint || !link->inhibited())) {
if (link->transmitMSU(msu)) {
DDebug(this,DebugAll,"Sent MSU over link '%s' %p with SLS=%d%s [%p]",
link->toString().c_str(),link,sls,
@ -859,6 +860,10 @@ int SS7MTP3::transmitMSU(const SS7MSU& msu, const SS7Label& label, int sls)
}
return -1;
}
if (maint) {
Debug(this,DebugNote,"Dropping maintenance MSU for SLS=%d, link is down",sls);
return -1;
}
// found link but is down - reroute
Debug(this,DebugMild,"Rerouting MSU for SLS=%d, link is down",sls);
break;