Fixed #40 in public. We now handle CMServiceAbort correctly.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3973 19bc5d8c-e614-43d4-8b26-e1612bc8e597
This commit is contained in:
Kurtis Heimerl
2012-07-31 23:07:04 +00:00
parent e27757e1b6
commit 6344347af0
2 changed files with 18 additions and 0 deletions

View File

@@ -714,6 +714,16 @@ void Control::MOCStarter(const GSM::L3CMServiceRequest* req, GSM::LogicalChannel
// Get the Setup message.
// GSM 04.08 5.2.1.2
GSM::L3Message* msg_setup = getMessage(LCH);
// Check for abort, if so close and cancel
if (const GSM::L3CMServiceAbort *cmsab = dynamic_cast<const GSM::L3CMServiceAbort*>(msg_setup)) {
LOG(INFO) << "received CMServiceAbort, closing channel and clearing";
//SIP Engine not started, just close the channel and exit
LCH->send(GSM::L3ChannelRelease());
delete cmsab;
return;
}
const GSM::L3Setup *setup = dynamic_cast<const GSM::L3Setup*>(msg_setup);
if (!setup) {
if (msg_setup) {

View File

@@ -88,6 +88,7 @@ L3MMMessage* GSM::L3MMFactory(L3MMMessage::MessageType MTI)
switch (MTI) {
case L3MMMessage::LocationUpdatingRequest: return new L3LocationUpdatingRequest;
case L3MMMessage::IMSIDetachIndication: return new L3IMSIDetachIndication;
case L3MMMessage::CMServiceAbort: return new L3CMServiceAbort;
case L3MMMessage::CMServiceRequest: return new L3CMServiceRequest;
// Since we don't support re-establishment, don't bother parsing this.
//case L3MMMessage::CMReestablishmentRequest: return new L3CMReestablishmentRequest;
@@ -201,6 +202,13 @@ void L3IMSIDetachIndication::text(ostream& os) const
void L3CMServiceAbort::parseBody(const L3Frame& src, size_t &rp)
{
//Nothing to parse -kurtis
}
void L3CMServiceReject::writeBody(L3Frame& dest, size_t &wp) const
{
mCause.writeV(dest,wp);