Fixed canceling bug in Public. I'm missing my personal radio (loaned to class) and so it's not well tested... something is up with FS and cancels.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3244 19bc5d8c-e614-43d4-8b26-e1612bc8e597
This commit is contained in:
Kurtis Heimerl
2012-02-28 01:30:24 +00:00
parent 7244fa7271
commit 915aa7b1f7

View File

@@ -322,13 +322,7 @@ bool callManagementDispatchGSM(TransactionEntry *transaction, GSM::LogicalChanne
transaction->MODSendBYE();
}
else{
transaction->MODSendCANCEL();
//if we disconnect, we don't get another
//of these, wait here? -kurtis
transaction->MODWaitForOK();
//server can optionally send a 487 Request Terminated message
//handle it if they do
transaction->MODWaitFor487();
transaction->MODSendCANCEL();
}
return false;
}
@@ -359,6 +353,11 @@ bool callManagementDispatchGSM(TransactionEntry *transaction, GSM::LogicalChanne
LCH->send(GSM::L3ChannelRelease());
transaction->GSMState(GSM::NullState);
transaction->MODWaitForOK();
//if we cancel the call, Switch might send 487 Request Terminated
//listen for that
if (transaction->SIPState() == SIP::Canceled){
transaction->MODWaitFor487();
}
return true;
}
@@ -1051,6 +1050,7 @@ void Control::MTCController(TransactionEntry *transaction, GSM::TCHFACCHLogicalC
LOG(DEBUG) << "sending SIP Ringing";
transaction->MTCSendRinging();
}
/*
// Check for SIP cancel, too.
if (transaction->MTCCheckForCancel()==SIP::MTDCanceling) {
LOG(INFO) << "MTCCheckForCancel return Canceling";
@@ -1064,6 +1064,7 @@ void Control::MTCController(TransactionEntry *transaction, GSM::TCHFACCHLogicalC
LOG(DEBUG) << "Call failed";
return abortAndRemoveCall(transaction,TCH,GSM::L3Cause(0x7F));
}
*/
}
// FIXME -- We should also have a SIP.Timer.F timeout here.