Commit Graph

4139 Commits

Author SHA1 Message Date
Holger Hans Peter Freyther 9e1952a901 si: Share the ARFCN selection condition between the two statements
This makes reading the condition more easy and allows me to fix it
for GSM1900 more easily and I can remove one level of indention.
2013-01-17 19:30:05 +01:00
Holger Hans Peter Freyther 164ee307b2 rsl: Properly parse the RLM cause from the error indication
The code predates the TLV parser and we were parsing the RLM from the
wrong offset. In general we were using the length of the TLV which
happened to be equal to the T200 indication.

After consulting the RLM cuases not every of them should generate a
BSC_RLLR_IND_ERR_IND as these are forwarded to the MSC as a SAPI reject
right now.

TLV parsing now generates this due a bug in the osmo-bts code:
abis_rsl.c:1605 (bts=0,trx=0,ts=2,ss=0) SAPI=0 <0000> abis_rsl.c:1547 (bts=0,trx=0,ts=2,ss=0) ERROR INDICATION cause=Fraeme not implemented
2013-01-16 21:07:43 +01:00
Daniel Willmann 69665f8722 osmo-bsc: Add ctrl cmd bts RF state
Returns opearional, administrational state and RF policy
2013-01-15 22:19:44 +01:00
Daniel Willmann 7d10983865 osmo-bsc: Add VTY command show position 2013-01-15 16:53:51 +01:00
Holger Hans Peter Freyther 2a896070a7 bsc: Auto RF Off in case of missing MSC connection
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-15 13:52:00 +01:00
Holger Hans Peter Freyther 036b25fb7f nat: Fail if the control interface can not be initialized 2013-01-15 13:48:18 +01:00
Holger Hans Peter Freyther c7de8ef014 Merge branch 'zecke/feature/location-control'
Merge the code from the On-Waves branch. Use the internal RF control
interface to switch the TRXs on/off. This code has the necessary delays
to not crash the nanoBTS. Introduce signals for re-connection of the
BSC on the A-link.
2013-01-15 11:33:00 +01:00
Holger Hans Peter Freyther 431ceada36 bsc: Create a better error message for when RF commands are rejected
Provide an error message that makes it more clear that the command
is rejected because RF handling is not enabled in the BSC.
2013-01-15 11:27:28 +01:00
Holger Hans Peter Freyther 25eca0bfdc bsc: Simplify the trap sending by using the location state method 2013-01-15 11:27:28 +01:00
Holger Hans Peter Freyther 23446844a8 bsc: Send a TRAP with the locations on a MSC connection
Send the current position when the MSC connection is established.
2013-01-15 11:27:28 +01:00
Holger Hans Peter Freyther 7b6ea56f41 bsc: Use the BSC RF CTRL to change the RF state of the TRXs
Use the delayed scheduling feature of the osmo_bsc_rf class to
avoid crashing the site controller of the nanoBTS.
2013-01-15 11:27:28 +01:00
Holger Hans Peter Freyther baa1a2df20 bsc: Do not re-start the grace timer when we are in the grace period 2013-01-15 11:27:28 +01:00
Holger Hans Peter Freyther ed0374ffeb bsc: Introduce an authenticated signal for the MSC connection
Send the signal whenever a MSC appears to be authenticated.
2013-01-15 11:27:28 +01:00
Holger Hans Peter Freyther ba36bf4c5d sms: Avoid infinite CP-ERROR/CP-ACK loop with sms.
The issue can be reproduced by typing the following 9 or more times.
 OpenBSC> subscriber id 2 sms sender id 2 send bla

For some unknown reason the phone sends us a CP-ERROR for a transaction
identifier we have allocated and used but don't remember. Due the way
we use the SMC/SMR we 'establish' the machine and this results in a CP-ACK
being sent out. But the CP-ERROR is not having the content we want for
an establish so we send out a RP-ERROR. This will result in a CP-ERROR
because the phone does not know the transaction...

Avoid the issue by checking the direction of the transaction. If we do
not know the transaction and it is supposed to be allocated by us then
just ignore it and do not create a new transaction.
2013-01-13 17:30:00 +01:00
Holger Hans Peter Freyther 30a3d2f0fe debug: Fix typo in the debug category 2013-01-11 18:11:21 +01:00
Holger Hans Peter Freyther 4babba62b8 ctrl: Work on the cmd->node instead of the data pointer passed
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-11 18:11:13 +01:00
Holger Hans Peter Freyther 3749dc93a3 ctrl: Fix the signature of the string control commands
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-11 18:11:05 +01:00
Andreas Eversberg f2621e506d si: Do not schedule SI1 to SI4 on the second TRX 2013-01-08 19:34:24 +01:00
Holger Hans Peter Freyther 608ac2a8a4 abis: Fix the verification of BCCH/SDCCH8 on TRX != 0 for the BS11
The SDCCH8 is only allowed on trx 0 if there is no BCCH/SDCCH4 on it.
2013-01-08 19:30:14 +01:00
Holger Hans Peter Freyther bac7dcc367 Merge branch 'zecke/feature/improve-audio-codec-selection'
Allow to select the AMR multirate config using the VTY.
2013-01-07 16:22:00 +01:00
Holger Hans Peter Freyther 75077955e9 audio: Make AMR multirate configurable for the osmo-bsc
Provide VTY options to allow/forbid the usage of a
specific multirate option.
2013-01-07 16:14:08 +01:00
Holger Hans Peter Freyther 25aa749f10 audio: Make the BSC handle the new mr_config request of the BSC API
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-07 16:10:31 +01:00
Holger Hans Peter Freyther ff799f0912 Merge branch 'zecke/feature/move-calls'
Be able to move a call from one MSC to another MSC based on a regexp
for the phone number and pre-defined dial plan.
2013-01-07 15:50:38 +01:00
Holger Hans Peter Freyther 0b19d55dd6 bsc: Blind fix to deal with phones sending a dialplan of 0 2013-01-07 15:50:14 +01:00
Holger Hans Peter Freyther c7db4dce4a bsc: Fix crash when the new route is not available
When we are asked to route calls on a local link and
the link is not available we would crash when trying
to send a packet over a deadline. When we have decided
to move a connection it is guranteed that the current
SCCP connection will vanish, we either migrate to another
MSC or the RSL/subscriber connection will be closed.
2013-01-07 15:50:14 +01:00
Holger Hans Peter Freyther d5edc4f84d bsc: Add VTY code for the local area prefix 2013-01-07 15:50:14 +01:00
Holger Hans Peter Freyther 83d2d38a3c bsc: Inspect a CC Setup message and attempt to reroute the traffic
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-07 15:47:32 +01:00
Holger Hans Peter Freyther ea46b77f3e Merge remote-tracking branch 'origin/zecke/barr-subscribers'
Allow to merge barr certain subscribers with a given error code
2013-01-07 15:03:29 +01:00
Holger Hans Peter Freyther aa191adce6 nat: Send a CM Service Reject for NAT_CON_TYPE_SSA as well
For USSD we remember that it is a supplementary service but this
means we sent no CM Service Reject down to the subscriber. Treat
NAT_CON_TYPE_CM_SERV_REQ and NAT_CON_TYPE_SSA the same and send
a cm service reject.
2013-01-07 15:02:34 +01:00
Holger Hans Peter Freyther 1f8276e588 nat: Introduce a global IMSI barr list using red-black trees 2013-01-07 15:02:34 +01:00
Holger Hans Peter Freyther 0434faedc9 nat: Simplify the code and call auth_imsi from the main method
Do the auth check in bsc_nat_filter_sccp_cr, remove the cause from
the signature again. For the bsc_nat_filter_dt restructure the flow
but leave the auth inside the id response message.

Return 1 when the IMSI has been extracted as indicator for running
the auth check. 1 has not been used before and is safe to be used
as this indicator.
2013-01-07 15:02:34 +01:00
Holger Hans Peter Freyther 184950e298 nat: Get the cause into the imsi_auth method in preparation
For the new barr feature get the cause struct down to the imsi_auth
code so we can add the blacklist there.
2013-01-07 15:02:34 +01:00
Holger Hans Peter Freyther bdf764a025 nat: Allow the filter to select the reject cause
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-07 15:02:34 +01:00
Holger Hans Peter Freyther adc2e87372 nat: Move the IMSI/TMSI filtering to a new and dedicated file
Move all routines related to filtering to a separate file.
2013-01-07 15:02:34 +01:00
Holger Hans Peter Freyther 6fbd864a65 nat: Fix a typo in the log message for out of memory 2013-01-07 15:02:34 +01:00
Holger Hans Peter Freyther 6ecb3cb599 nat: Extract the message re-writing from the utils to a dedicated file
Move the code around to make it more clear what the routines should do.
2013-01-07 15:02:34 +01:00
Holger Hans Peter Freyther b9b828b1e5 Revert "libbsc: With the new SAPI states we don't need sacch_deact anymore"
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 0c282f5268.
2013-01-01 19:20:51 +01:00
Holger Hans Peter Freyther b5ae7288a9 Merge branch 'daniel/t3212-work'
This implements exipiry of subscribers, requires a schema change. A permanent
attachment (time set to 0) is not supported any more and would require some
more work. This code was used at the 29C3.
2013-01-01 17:31:07 +01:00
Jan Luebbe 1c201c6055 osmo-nitb: Add a timer to regularly expire 2013-01-01 17:19:47 +01:00
Jan Luebbe bfbdeec714 libmsc: Track and update the location update expiry
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-01 17:19:47 +01:00
Daniel Willmann 4d62d63151 Stricter limits for T3212 (location update period)
libcommon: Default to 30min location update period
libbsc: Limit VTY value for periodic update and disallow the value 0

According to GSM 04.08 Table 10.5.33 "The value 0 is used for infinite
timeout value i.e. periodic updating shall not be used within the cell."

This was the default value until now, but the code that deals with
expiring inactive subscribers in the next commit can't handle that case
so this remains a TODO for now.
2013-01-01 17:19:46 +01:00
Holger Hans Peter Freyther 4d2a68cf11 misc: Do not use else when using return in the previous branch 2013-01-01 17:18:27 +01:00
Sylvain Munaut 39c31dea2e libbsc: Make argument optional in some 'show' commands
The actual command implementation was already for this, but some
bad vty parsing prevented optional range arguments from working
properly.

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2013-01-01 17:04:52 +01:00
Sylvain Munaut 01c13a3a45 libmsc: Allow to set sender id when sending SMS from the VTY
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2013-01-01 17:04:38 +01:00
Sylvain Munaut 11c1b6e014 libmsc: Refuse service to anyone not attached
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2013-01-01 17:03:15 +01:00
Daniel Willmann 977cd13741 gsm_04_08: Display debug message correctly on DETACH INDICATION
Log messages would get mangled before if we receive detach by TMSI or
IMSI.
2012-12-29 12:47:31 +01:00
Daniel Willmann 0c282f5268 libbsc: With the new SAPI states we don't need sacch_deact anymore 2012-12-29 12:42:29 +01:00
Daniel Willmann 324c8052ae gsm_data_shared.h: Keep a list of SAPI states per lchan 2012-12-29 12:42:16 +01:00
Holger Hans Peter Freyther 4173b174eb libmsc: One of assign_compl and assign_fail will always be called
Remove the log messages and comments as they are wrong for now. Even
for the mode modify we will get the assign complete call.
2012-12-26 21:44:12 +01:00
Daniel Willmann 56260b648c tests: Don't delete atconfig in clean
This file is created in ./configure so we shouldn't remove it with make.
Otherwise ./configure && make clean && make check fails with:

make[3]: *** No rule to make target `atconfig', needed by `check-local'.
Stop.
2012-12-26 12:26:09 +01:00