David's suggestions to the RRLP stuff. Tested and working.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3049 19bc5d8c-e614-43d4-8b26-e1612bc8e597
This commit is contained in:
kurtis.heimerl
2012-01-17 08:31:11 +00:00
parent 4325a7ede2
commit 9ec878c0aa
6 changed files with 79 additions and 33 deletions

View File

@@ -283,6 +283,14 @@ void Control::MOSMSController(const GSM::L3CMServiceRequest *req, GSM::LogicalCh
ack.parse(*CM);
LOG(INFO) << "CPAck " << ack;
/* MOSMS RLLP request */
if (gConfig.defines("Control.SMS.QueryRRLP")) {
// Query for RRLP
if (!sendRRLP(mobileID, LCH)) {
LOG(INFO) << "RRLP request failed";
}
}
// Done.
LCH->send(GSM::L3ChannelRelease());
gTransactionTable.remove(transaction);
@@ -456,18 +464,13 @@ void Control::MTSMSController(TransactionEntry *transaction, GSM::LogicalChannel
transaction->GSMState(GSM::SMSDelivering);
LOG(INFO) << "transaction: "<< *transaction;
/* first RLLP request */
/* MTSMS RLLP request */
if (gConfig.defines("Control.SMS.QueryRRLP")) {
// Query for RRLP
RRLPServer wRRLPServer(transaction->subscriber(), LCH);
if (!wRRLPServer.assist()) {
LOG(INFO) << "RRLPServer::assist problem";
if(!sendRRLP(transaction->subscriber(), LCH)){
LOG(INFO) << "RRLP request failed";
}
// can still try to check location even if assist didn't work
if (!wRRLPServer.locate()) {
LOG(INFO) << "RRLPServer::locate problem";
}
}
}
bool success = deliverSMSToMS(transaction->calling().digits(),transaction->message(),
transaction->messageType(),transaction->L3TI(),LCH);
@@ -592,6 +595,18 @@ void Control::InCallMOSMSController(const CPData *cpData, TransactionEntry* tran
ack.parse(*CM);
LOG(INFO) << "CPAck " << ack;
/* I had a hell of a time testing this with my B100
I know it went off, that's all. If things fail, look
here -kurtis */
/* MOSMS RLLP request */
if (gConfig.defines("Control.SMS.QueryRRLP")) {
// Query for RRLP
if (!sendRRLP(transaction->subscriber(), LCH)) {
LOG(INFO) << "RRLP request failed";
}
}
gTransactionTable.remove(transaction);
}