mirror of
https://github.com/RangeNetworks/openbts.git
synced 2025-11-02 04:43:16 +00:00
r4162 in private:
Detect busy users and respond with 486 Busy Here. This fixes one complaint, but is a stop-gap until we implement a proper multi-transaction state machine in GSM L3. git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4174 19bc5d8c-e614-43d4-8b26-e1612bc8e597
This commit is contained in:
@@ -358,6 +358,7 @@ bool SIPInterface::checkInvite( osip_message_t * msg)
|
||||
|
||||
// Find any active transaction for this IMSI with an assigned TCH or SDCCH.
|
||||
GSM::LogicalChannel *chan = gTransactionTable.findChannel(mobileID);
|
||||
bool userBusy = false;
|
||||
if (chan) {
|
||||
// If the type is TCH and the service is SMS, get the SACCH.
|
||||
// Otherwise, for now, just say chan=NULL.
|
||||
@@ -366,6 +367,7 @@ bool SIPInterface::checkInvite( osip_message_t * msg)
|
||||
} else {
|
||||
// FIXME -- This will change to support multiple transactions.
|
||||
chan = NULL;
|
||||
userBusy = (serviceType==L3CMServiceType::MobileTerminatedCall);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -469,6 +471,12 @@ bool SIPInterface::checkInvite( osip_message_t * msg)
|
||||
LOG(INFO) << "MTC MTSMS make transaction and add to transaction table: "<< *transaction;
|
||||
gTransactionTable.add(transaction);
|
||||
|
||||
if (userBusy) {
|
||||
transaction->MODSendERROR(msg, 486, "Busy Here", false);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// If there's an existing channel, skip the paging step.
|
||||
if (!chan) {
|
||||
// Add to paging list.
|
||||
|
||||
Reference in New Issue
Block a user