[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r10088 - openbts/branches/developers/dburgess00/veryea
From: |
dburgess00 |
Subject: |
[Commit-gnuradio] r10088 - openbts/branches/developers/dburgess00/veryearly/Control |
Date: |
Fri, 28 Nov 2008 23:27:42 -0700 (MST) |
Author: dburgess00
Date: 2008-11-28 23:27:41 -0700 (Fri, 28 Nov 2008)
New Revision: 10088
Modified:
openbts/branches/developers/dburgess00/veryearly/Control/CallControl.cpp
Log:
Forgot mode change for MOC call control.
Modified:
openbts/branches/developers/dburgess00/veryearly/Control/CallControl.cpp
===================================================================
--- openbts/branches/developers/dburgess00/veryearly/Control/CallControl.cpp
2008-11-29 06:20:48 UTC (rev 10087)
+++ openbts/branches/developers/dburgess00/veryearly/Control/CallControl.cpp
2008-11-29 06:27:41 UTC (rev 10088)
@@ -559,8 +559,21 @@
// If we need a TCH assignment, we do it here.
gTransactionTable.update(transaction);
CLDCOUT("MOC: transaction: " << transaction);
- if (veryEarly)
MOCController(transaction,dynamic_cast<TCHFACCHLogicalChannel*>(LCH));
- else assignTCHF(dynamic_cast<SDCCHLogicalChannel*>(LCH),TCH);
+ if (veryEarly) {
+ // For very early assignment, we need a mode change.
+ static const L3ChannelMode mode(L3ChannelMode::SpeechV1);
+ LCH->send(L3ChannelModeModify(LCH->channelDescription(),mode));
+ const L3ChannelModeModifyAcknowledge *ack =
+
dynamic_cast<L3ChannelModeModifyAcknowledge*>(getMessage(LCH));
+ if (!ack) throw UnexpectedMessage();
+ // Cause 0x06 is "channel unacceptable"
+ if (ack->mode() != mode) return
abortCall(transaction,LCH,L3Cause(0x06));
+
MOCController(transaction,dynamic_cast<TCHFACCHLogicalChannel*>(LCH));
+ } else {
+ // For late assignment, send the TCH assignment now.
+ // This dispatcher on the next channel will continue the
transaction.
+ assignTCHF(dynamic_cast<SDCCHLogicalChannel*>(LCH),TCH);
+ }
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r10088 - openbts/branches/developers/dburgess00/veryearly/Control,
dburgess00 <=