aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include
AgeCommit message (Collapse)AuthorFilesLines
2013-03-12IPA: Allow RSL connection to different IP address as OMLHarald Welte1-0/+1
This patch adds a new VTY command "ip.access rsl-ip A.B.C.D" at the BTS level. If you set this IP address, the BTS will be instructed to establish the RSL link to the indiciated IP address, rather than using the same as for the OML link (default). Use "ip.access rsl-ip 0" to disable the feature.
2013-03-11BTS: Add S counter for link loss criterion to lchan structureAndreas Eversberg1-0/+2
2013-03-10si: Another round of PCS related fixesHolger Hans Peter Freyther1-1/+1
Inside the SI1 rest_octets we will need to indicate if the ARFCN is band 1800 or 1900. If the BTS is either 850 or 1900 we assume we are running a PCS network, otherwise it is a DCS network. The band indicator is not documented in GSM 04.08 but it is in the GSM 05.14 version 6.1.0 Release 1997.
2013-02-08Fix of IMMIDIATE ASSIGNMENT REJECT messageAndreas Eversberg1-0/+1
The message was corrupt at several points. They are fixed now and successfully tested. A default T3122 timer value of 10 is defined by default now. If set to 0, the reject message will not be sent. Note that when using existing configs with T3122 value set to 0.
2013-01-28bsc: Allow to page a BTS that is excluded from the RF lockHolger Hans Peter Freyther2-2/+7
The RF lock excluded BTS was not paged at all. Now forward the paging message to the handler and call a function that will check if this LAC can be paged right now. Introduce a new paging method that allows to page on a dedicated bts, refactor the code to use this method for paging.
2013-01-28bsc: A BTS excluded from the RF lock should be allowed to make a connectionHolger Hans Peter Freyther1-3/+3
When introducing the exclude for the BTS lock the RF stayed up but all connections were immediately released. Optionally pass the BTS as second parameter and check the exclude bit. Tested-with: rf-lock-exclude/RFLockExcludeTest.st
2013-01-28bts: Allow to exclude a BTS from the global RF lock handlingHolger Hans Peter Freyther1-0/+3
Some BTS might be in locations where they can run all the time, allow to exclude them from the global lock handling.
2013-01-15osmo-bsc: Add VTY command show positionDaniel Willmann1-0/+2
2013-01-15bsc: Auto RF Off in case of missing MSC connectionHolger Hans Peter Freyther2-0/+4
For short IP failures we want the RF to stay up and wait for the re-connect but in case the A-link is gone too long it is good to switch off the RF and wait for commands to enable it again.
2013-01-15bsc: Use the BSC RF CTRL to change the RF state of the TRXsHolger Hans Peter Freyther1-0/+1
Use the delayed scheduling feature of the osmo_bsc_rf class to avoid crashing the site controller of the nanoBTS.
2013-01-15bsc: Introduce an authenticated signal for the MSC connectionHolger Hans Peter Freyther1-0/+1
Send the signal whenever a MSC appears to be authenticated.
2013-01-11ctrl: Work on the cmd->node instead of the data pointer passedHolger Hans Peter Freyther1-9/+9
Make the macros use the cmd->node instead of the data pointer. The naming of the variable inside the macro already indicates that it should use the nodes data structure.
2013-01-11ctrl: Fix the signature of the string control commandsHolger Hans Peter Freyther1-2/+7
Like with all type unsafe callbacks we will need to cast from void to the dtype. This addresses some compiler warnings. Make it possible to only include the control_cmd.h to use the macros defined in this file.
2013-01-07audio: Make the BSC handle the new mr_config request of the BSC APIHolger Hans Peter Freyther2-0/+9
Handle the mr_config request and set the AMR multirate config for the given MSC. Initialize the mr_config with the AMR5.9 default we have been using until now.
2013-01-07bsc: Inspect a CC Setup message and attempt to reroute the trafficHolger Hans Peter Freyther1-0/+7
Inspect the CC Setup messages and if the dialed number is matching the regexp of the local MSC the connection will be rerouted. The original MSC will get a GSM0808 CLEAR REQUEST, a new connection with a CC Setup message will be opened.
2013-01-07nat: Introduce a global IMSI barr list using red-black treesHolger Hans Peter Freyther1-0/+15
2013-01-07nat: Allow the filter to select the reject causeHolger Hans Peter Freyther1-2/+9
In preparation for another kind of black-list allow the filter code to decide how the connection should be rejected. Introduce a new struct that will carry the reject causes for certain operations.
2013-01-01Revert "libbsc: With the new SAPI states we don't need sacch_deact anymore"Holger Hans Peter Freyther1-0/+1
For now we need to keep the sacch_deact in OpenBSC as we couldn't get the new activation/de-activation code working. This reverts commit 0c282f52684ac033e20ab411ab206e8559d564c9.
2013-01-01libmsc: Track and update the location update expiryJan Luebbe3-0/+6
Set the subscriber expiry timeout to twice the duration of the location update period and provide functions subscr_expire() and db_subscriber_expire() to mark subscribers offline that have missed two location update periods. This patch increases the DB revision to 3, so the hlr will be incompatible with prior versions. We should allow 0 for T3212 as well to disable the location update period. In that case we will need a way to indicate that in the database.
2013-01-01libmsc: Allow to set sender id when sending SMS from the VTYSylvain Munaut1-1/+1
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2012-12-29libbsc: With the new SAPI states we don't need sacch_deact anymoreDaniel Willmann1-1/+0
2012-12-29gsm_data_shared.h: Keep a list of SAPI states per lchanDaniel Willmann1-0/+13
2012-12-26handover: Fix the handover signalling for IP based BTSesHolger Hans Peter Freyther2-10/+3
This was reported by Kevin when he was testing handover. The problem is the order of the signal handlers for S_ABISIP_CRCX_ACK. Right now the handover signal handler is called before the one inside the libmsc gsm_04_08.c. This means S_HANDOVER_ACK is signalled _before_ there is a rtp socket created for the channel. The result is that the MDCX will never be sent and the called will not be properly switched _after_ the handover detection. I do not want to play with the order of signal handlers, remove the CRCX ack handling from the handover_logic.c and force the NITB (and later the BSC) to check if the lchan is involved with a handover and do the switching in there. This means right now we do what two signal handlers did in one. Reproduced and tested with the FakeBTS Handover test. Log message: <0004> abis_rsl.c:1954 (bts=1,trx=0,ts=3,ss=0) IPAC_CRCX_ACK ... <000c> gsm_04_08.c:1400 no RTP socket for new_lchan <001a> rtp_proxy.c:533 rtp_socket_create(): success <001a> rtp_proxy.c:615 rtp_socket_bind(rs=0x48703c8, IP=0.0.0.0): ...
2012-12-26gsm: Do not attempt to release SAPI=0 if it was never allocatedHolger Hans Peter Freyther1-0/+2
In case of handover (but probably on RACH) we would send a RLL for SAPI=0 even if this SAPI was never established. After we have released all SAPI>0 locally check that SAPI=0 is established and if not release the rf channel directly.
2012-12-23lchan: Introduce T3109 handling for the release procedureHolger Hans Peter Freyther2-0/+2
T3109 is started when the SACCH is deactivated. It is stopped when the phones sends the DISC/UA/UM on LAPDm for the main signalling link. In case of timeout the abnormal release procedure will be initiated. Make sure to not issue the SACCH Deactivate twice to avoid confusing the equipment. This is still not fully spec compliant. In case of a timeout the abnormal release handling will be started which involves starting T3111+2. The error handling should be split out of the rf channel release method, e.g. lchan_release should be called and check if the channel release was already initiated.
2012-12-23lchan: Introduce a BROKEN state for the lchanHolger Hans Peter Freyther1-0/+2
If the CHAN ACTIV is NACKED we set the state backto NONE. This is problematic as our channel allocator will allocate from the front or from the back and if the channel is early in the list it might cause permanent failures. Introduce a BROKEN state and use it when the channel activation is failing for an unknown reason. Copy the cause so it can be inspected later.
2012-12-23lchan: Release the lchan more quickly, align with GSM 04.08Holger Hans Peter Freyther2-4/+4
* Release all channels with SAPI > 0 with the "local end release" (as of NOTE 1 of GSM 04.08). * No need to wait for all SAPIs to be torn down and the normal REL_IND/REL_CONF will call rsl_handle_release and the channel should be released. * Update the documentation
2012-12-23rsl: Rename the reason to release_mode and use the enum valueHolger Hans Peter Freyther3-4/+5
The API with 0 and 1 as legal values is hard to understand. Use the recently introduced enum values instead.
2012-12-20osmo-bts: Include lapdm.h to fix autoconf usability testHolger Hans Peter Freyther1-0/+4
Include the LAPDm header file so the size of struct lapdm_channel is known and gsm_data_shared.h can be included by itself.
2012-12-19abis: Activate the newest available installed on the BTSHolger Hans Peter Freyther1-0/+1
Select thew newest software from all available file versions.
2012-12-19abis: Create a routine that can parse all SW Descriptions of a SW ConfigHolger Hans Peter Freyther1-0/+15
Be able to parse the entire SW Config IE. Parse the SW Descruption into a struct provided by the caller.
2012-12-16mgcp: Allow to freely control the a=fmtp line for experimentsHolger Hans Peter Freyther2-0/+3
In case of AMR one can specify the available codecs out-of-band. Allow to configure this line statically in the configuration file.
2012-12-10mgcp: Test and implement re-transmission handlingHolger Hans Peter Freyther2-1/+5
MGCP is used over UDP and a response might be lost. The MGCP RFC asks for keeping a list of responses and then using the previous response to answer a duplicate request. I tried to conserve memory and just wanted to remember the last transaction identifier and result-code and re-generate the result from that. This made the code look bad and this is why the entire response will now be stored. It sadly increases the memory usage but can not be avoided at this time. Remove the msg->l3h pointer for the RQNT callback as strtok has modified the content of it.
2012-12-10mgcp: Methods generating a response now include the endpoint pointerHolger Hans Peter Freyther1-1/+0
This is required for remembering the last result in a central place and is required to properly implement detection of re-transmissions.
2012-12-03bsc: Send the USSD message after the location updating accept.Holger Hans Peter Freyther2-2/+5
Make sure to accept the phone first before sending the USSD message.
2012-12-01sms: Kill the linkid as we are using SAPI=3 all the timeHolger Hans Peter Freyther1-2/+0
For GSM (not GPRS) we will never use a SAPI!=3. Simplify the code and remove the link_id=0.
2012-12-01sms: Replaced the SMR process by new implementation in libosmocoreAndreas Eversberg1-2/+2
Rebased, tested and fixed by Holger Freyther. Release the transaction only once the SMC is asking for the release and set the cb's to NULL to catch a use after free early.
2012-12-01sms: Replaced the SMC process by new implementation in libosmocoreAndreas Eversberg1-3/+3
This has been rebased and fixed by Holger Freyther. The change of the debug area was split out in a previous commit and the is_mt was put back into the transaction code. The transaction is now freed from the RELEASE_REQ sent by the SMC layer and not inside the error path. When clearing the SMC instance we also clear the callbacks.
2012-12-01nitb: Release the channel if there is nothing on itHolger Hans Peter Freyther1-0/+1
This is more a work around and one still needs to implement a proper dispatch on the opening of the connection. If there is no operation left, no transaction and no silent call, close down the channel.
2012-11-29mgcp: Begin handling of the RQNT message as needed for DTMFHolger Hans Peter Freyther1-2/+4
Introduce a callback for the request and forward the signalrequest to the callback. This is not a full implementation of MGCP RQNT.
2012-11-24SMPP: add small utility program 'smpp_mirror'Harald Welte1-3/+1
This program binds as ESME transceiver to a SMSC and simply mirrors back all SMS that it receives.
2012-11-24SMPP: Implement support for MO SMSHarald Welte1-0/+8
Each ESME can have a number of prefix-matching routes, or it can be a 'default route' to whcih all otherwise unknown SMS destinations are routed.
2012-11-24SMPP: VTY configuration of SMPP code, authentication supportHarald Welte1-0/+2
2012-11-21sms: Use the DLSMS instead of the DSMS category throughout our codeHolger Hans Peter Freyther1-1/+0
2012-11-16SMPP: Implement transaction mode for SUBMIT-SMHarald Welte1-0/+17
WARNING: if the ESME disconnects, osmo_esme gets freed, and sms->smpp.esme might point to invalid/unallocated memory!
2012-11-16Initial support of SMPP interface for MT-SMSHarald Welte1-0/+1
2012-11-12nat: Move the ctrl handling code into a separate fileHolger Hans Peter Freyther1-0/+4
Move to the control command handling out of the main file into a dedicated module. There are still some calls embedded into the main code but it will be moved soon.
2012-11-12mgcp: Send the jitter statistics at the end of the callHolger Hans Peter Freyther1-0/+1
2012-11-12mgcp: Calculate the jitter with the formula/code from the appendixHolger Hans Peter Freyther1-0/+2
Use a usec timestamp for the local time. The seconds to usec will swap over to the lower bits but this appears to be correct. The CLOCK_MONOTONIC is used to fulfill the RFC 3550 requirement even if it is a bit slower than the gettimeofday. Make sure to initialize transit in a way that the first transit time will be 0. Otherwise the jitter will contain the difference of the localtime and the remote time.
2012-11-12mgcp: Calculate the packet loss as of Appendix A of RFC 3550Holger Hans Peter Freyther1-2/+5
Calculate the expected packages and packet loss as of RFC 3550. The values should be clamped but our packet loss counter is 32 bits and not 24 and we should clamp at other values but I am waiting for some issues first before dealing with that.