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 a954b789f0
commit 09a051fcaa

View File

@@ -323,12 +323,6 @@ bool callManagementDispatchGSM(TransactionEntry *transaction, GSM::LogicalChanne
} }
else{ else{
transaction->MODSendCANCEL(); 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();
} }
return false; return false;
} }
@@ -359,6 +353,11 @@ bool callManagementDispatchGSM(TransactionEntry *transaction, GSM::LogicalChanne
LCH->send(GSM::L3ChannelRelease()); LCH->send(GSM::L3ChannelRelease());
transaction->GSMState(GSM::NullState); transaction->GSMState(GSM::NullState);
transaction->MODWaitForOK(); 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; return true;
} }
@@ -1051,6 +1050,7 @@ void Control::MTCController(TransactionEntry *transaction, GSM::TCHFACCHLogicalC
LOG(DEBUG) << "sending SIP Ringing"; LOG(DEBUG) << "sending SIP Ringing";
transaction->MTCSendRinging(); transaction->MTCSendRinging();
} }
/*
// Check for SIP cancel, too. // Check for SIP cancel, too.
if (transaction->MTCCheckForCancel()==SIP::MTDCanceling) { if (transaction->MTCCheckForCancel()==SIP::MTDCanceling) {
LOG(INFO) << "MTCCheckForCancel return Canceling"; LOG(INFO) << "MTCCheckForCancel return Canceling";
@@ -1064,6 +1064,7 @@ void Control::MTCController(TransactionEntry *transaction, GSM::TCHFACCHLogicalC
LOG(DEBUG) << "Call failed"; LOG(DEBUG) << "Call failed";
return abortAndRemoveCall(transaction,TCH,GSM::L3Cause(0x7F)); return abortAndRemoveCall(transaction,TCH,GSM::L3Cause(0x7F));
} }
*/
} }
// FIXME -- We should also have a SIP.Timer.F timeout here. // FIXME -- We should also have a SIP.Timer.F timeout here.