Properly handle the MGCP transaction timeouts in the circuits.

Drop a call for which a CRCX or MDCX had timed out.


git-svn-id: http://voip.null.ro/svn/yate@4311 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
paulc 2011-04-18 11:57:14 +00:00
parent 23bee28ded
commit 1c6bd805ca
1 changed files with 3 additions and 1 deletions

View File

@ -1811,7 +1811,7 @@ bool MGCPCircuit::sendEvent(SignallingCircuitEvent::Type type, NamedList* params
// Process incoming events for this circuit
bool MGCPCircuit::processEvent(MGCPTransaction* tr, MGCPMessage* mm)
{
if (tr->state() < MGCPTransaction::Responded)
if (tr->state() < MGCPTransaction::Responded && !tr->timeout())
return false;
DDebug(&splugin,DebugAll,"MGCPCircuit::processEvent(%p,%p) [%p]",
tr,mm,this);
@ -1820,6 +1820,8 @@ bool MGCPCircuit::processEvent(MGCPTransaction* tr, MGCPMessage* mm)
tr->userData(0);
m_msg = mm;
m_tr = 0;
if (tr->timeout())
enqueueEvent(SignallingCircuitEvent::Disconnected,"Timeout");
}
}
else if (tr->initial() && (tr->initial()->name() == "DLCX")) {