Prevent misrouting or inadvertently handling SS7 messages in silent transfer scenarios.

git-svn-id: http://yate.null.ro/svn/yate/trunk@4067 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
paulc 2011-01-25 15:31:42 +00:00
parent 54131d93fc
commit a81cbca96b
1 changed files with 4 additions and 1 deletions

View File

@ -869,9 +869,12 @@ HandledMSU SS7Router::receivedMSU(const SS7MSU& msu, const SS7Label& label, SS7L
default:
break;
}
// maintenance must stop here, others may be transferred out
if ((msu.getSIF() == SS7MSU::MTN) || (msu.getSIF() == SS7MSU::MTNS))
return HandledMSU::Rejected;
unsigned int dpc = label.dpc().pack(label.type());
bool local = getLocal(label.type()) == dpc;
if (network && !local && (ret != HandledMSU::NoCircuit))
if (network && !local && (ret != HandledMSU::NoCircuit) && !m_transferSilent)
local = network->getLocal(label.type()) == dpc;
if (local)
return m_sendUnavail ? HandledMSU::Unequipped : HandledMSU::Failure;