Commit Graph

110 Commits

Author SHA1 Message Date
Harald Welte d158605db1 only set BCCH INFO on first TRX (C0) of BTS 2009-08-06 17:41:19 +02:00
Harald Welte ac56e8b442 use HARDCODED_BTSn_TS defines from bsc_hack.c 2009-08-06 17:40:24 +02:00
Harald Welte 63589bef52 add HARDCODED_BTSn_TS to define the base TS for each BTS 2009-08-06 17:38:10 +02:00
Harald Welte ac606dcf92 use talloc_free() rather than free()
Fix two bugs in OML software download code where we allocate data structures
using talloc, but free() them using the system memory allocator.  Spotted by
dexter.
2009-08-06 15:44:18 +02:00
Harald Welte 4e55d6883b e1_config now supports up to three BTS
Each BTS gets its own E1 line data structure.  They are meant to bind
each to their own (virtual?) mISDN device.

BTS0 uses TS01 (siganlling) and TS02/03 (TRX0), TS04/05(TRX1)
BTS1 uses TS11 (siganlling) and TS12/13 (TRX0), TS14/15(TRX1)
BTS2 uses TS21 (siganlling) and TS22/23 (TRX0), TS24/25(TRX1)
2009-08-04 14:13:35 +02:00
Harald Welte 9e85b54799 prepare mISDN driver for multiple lines/instances
In order to use multiple mISDN cards, we need to:
1) move driver initialization out of line initialization
2) make sure we allow partial (virtual) E1 cards with < 30 B-channels
2009-08-04 14:11:49 +02:00
Harald Welte 602f2b88d6 fix \n at end of line of certain RSL debug messages 2009-08-04 02:50:21 +02:00
Harald Welte f89abbd16a alter initial MS RF power to 100mW 2009-08-04 02:31:55 +02:00
Harald Welte 2da8629b7c parse and decode Siemens specific T_MSRFPCI message 2009-08-04 02:31:05 +02:00
Harald Welte fad0559aee fix initialization of TRX1 / TS0
also fix a minor error when printing BTS/TRX number
2009-08-04 01:31:53 +02:00
Harald Welte d46299da00 make channel allocator policy multi-TRX aware
For now, we assume that TRX1 (and higher) all have a TCH/F configuration
on all of their timeslots
2009-07-29 16:46:37 +02:00
Harald Welte 67b4c30a9d complete TRX1 support for BS11
* remove old HAVE_TRX1 definition, replace it with '-1' commandline argument
* make sure we actually configure the OML TRX attributes with a different
  ARFCN than TRX0
* make sure we configure timeslot 0 of TRX1 also in TCH/F mode

This code is untested, but if you have a dual-trx BS-11, and the second TRX
is activated, you should be able to run bsc_hack with the -1 option to enable
and use the second trx.  It works like this:
* TRX1 shares E1 timeslot 0 for signalling
* TRX1 RSL link uses TEI2 (TRX0 uses 1)
* TRX1 on ARFCN+2, i.e. if you have TRX0 on 122, TRX1 will be 124
2009-07-29 16:42:16 +02:00
Harald Welte 9943c5bbac generalize channel activation / channel mode modify
* we only need one piece of code to calculate rsl_ie_chan_mode from
  our run-time data structures (gsm_lchan)
* add some more channel modes for TCH/H and data
* use enum's to make the compiler warn us about unhandled enum values
* make sure the caller determines the (signalling,speech,data) mode
2009-07-29 15:41:29 +02:00
Harald Welte 58ca5b7ae7 actually derive the ip.access speech mode from tch_mode
also make sure we always print the speech_mode on IPAC_BIND
and IPAC_CONNECT.
2009-07-29 12:12:18 +02:00
Harald Welte 13cac66bb7 postpone IPAC_BIND until we do a LCHAN_MODIFY
only after the LCHAN_MODIFY we know the final mode of the channel,
so we have to postpone our IPAC_BIND until then to make sure we set
the correct speech codec.
2009-07-29 12:10:35 +02:00
Harald Welte 470abb773b add support for more RSL channel modes 2009-07-29 11:38:15 +02:00
Harald Welte 849427d895 Merge commit 'origin/master' 2009-07-29 10:58:08 +02:00
Harald Welte 198f3f559d fix typo when using sizeof() to determine the size of the RTCP header
This was spotted by zecke, thanks.
2009-07-29 10:47:28 +02:00
Holger Hans Peter Freyther 89acf061c2 rtp_proxy.c: Spelling fix, kook -> look 2009-07-29 06:46:26 +02:00
Holger Hans Peter Freyther 430b59ce64 vty/command.c: Fix compile warning by including gsm_subsriber.h 2009-07-29 06:44:31 +02:00
Harald Welte 805f64486b add RTP proxy mode for ip.access
Up until now, we only supported direct RTP streams between ip.access BTS.
With this commit, the user can specify '-P' to the command line to enable
a RTP/RTCP proxy inside OpenBSC.  The nanoBTS will then send all their voice
data to OpenBSC, which will relay it to the respective destination BTS (which
can be the same BTS).

The default behaviour remains unchanged.  Without '-P' on the command line,
RTP/RTCP is exchanged directly.
2009-07-28 18:25:29 +02:00
Harald Welte aea9a98dc2 improve ip-access BIND/CONNECT RTP support
* explicitly set the "ip speech mode" IE during BIND and CONNECT messages,
  depending on the speech codec used by the voice call
* more verbose debug messages regarding IPAC_BIND and IPAC_CONNECT
* do not always blindly specify RTP payload type, but use the value
  returned by BIND_ACK, _if_ it is present.
2009-07-28 18:11:56 +02:00
Harald Welte 5e98a5366e send a [new] signal in case of IPAC_DISCONNECT_INDication 2009-07-28 18:02:05 +02:00
Harald Welte 9869c0a0c8 implement human-readable RSL cause printing 2009-07-28 17:58:09 +02:00
Harald Welte 716fa9f0d2 enable select.c handler to support removal of two consecutive fd's 2009-07-28 13:32:00 +02:00
Harald Welte 5f2134f12a Merge branch 'master' into rtp_proxy 2009-07-28 08:21:40 +02:00
Harald Welte 7bfc267496 move allocation of talloc contexts into link-time constructor
This is much more optimal than checking if the context exists every
time we allocate the respective object.
2009-07-28 00:41:45 +02:00
Harald Welte ead7a7b320 add new rtp_proxy code, but not use it yet
The rtp_proxy.[ch] code is intended to be used as a transparent
RTP/RTCP proxy, relaying the media streams from one ip.access BTS
to another.  In an 'ideal' network, this is obviously not needed,
since the BTS's can send those streams directly between each other.

However, for debugging, 'lawful interception', transcoding or interfacing
a TRAU/E1 based BTS, we actually need to process those RTP streams
ourselves.
2009-07-28 00:01:58 +02:00
Harald Welte b49248bf48 move allocating new transaction_ids to transaction.c 2009-07-23 21:39:00 +02:00
Harald Welte c072ad6e29 add missing files to git 2009-07-23 21:25:48 +02:00
Harald Welte 6f5aee07e5 trans->transaction_id now reflects the actual (unshifted) value 2009-07-23 21:21:14 +02:00
Harald Welte 39e2eadc99 centralize the code that needs to deal with transaction_id
There were many places in the code where we had to explicitly
reference the transaction_id and put it into a packet.  By introducing
and optional gsm_trans parameter to gsm48_sendmsg(), we can implement
this code once rather than dozens of time.
2009-07-23 21:13:03 +02:00
Harald Welte 761e944182 make sure subscr->net is always set
since a subscriber is an element of the gsm_network, we have to ensure
subscr->net is always set correctly.  We do this by using gsm_network
as an argument to all functions that resolve or create a subscriber.
2009-07-23 19:21:02 +02:00
Harald Welte b3c3faee94 remove bogus 'network' member of 'struct gsm_transaction'
Since a transaction is associated to a gsm_subscriber, and the subsciber
is part of a network, we don't need to have a dedicated transaction->network
pointer.
2009-07-23 19:10:19 +02:00
Harald Welte aa0b29c265 gms_transactions data model reorganization
This changeset factors out gsm_transaction as something independent
of call control in preparation to re-use the code from SMS.  A
transaction is uniquely identified by either its callref, or by
a tuple of (transaction_id, protocol, subscriber).
2009-07-23 19:10:12 +02:00
Harald Welte f8d536def9 allow user to set BSIC and TSC from command line 2009-07-21 22:13:36 +02:00
Harald Welte 814c4b7984 use actual bts->tsc rather than hard-coded value 2009-07-21 22:13:28 +02:00
Harald Welte e6c22d9db7 use the TSC that is configured in bts->tsc rather than hardcoded value 2009-07-21 22:13:22 +02:00
Harald Welte ae0f2362bb send DEACTIVATE SACCH when sending RR CHANEL RELEASE
As per specification, we first send the RR CHANNEL RELEASE to the MS,
and then tell the BTS to disable the SACCH on that channel.
2009-07-19 18:36:49 +02:00
Harald Welte 7543eb72d0 fix copy+paste mistake in ecnoding short net name in mm info 2009-07-19 17:51:36 +02:00
Harald Welte 565547171c some more comments for BS11 attributes 2009-07-18 16:18:11 +02:00
Holger Hans Peter Freyther 03582a8bdc bsc_hack.c: Make adding of (nano)BTS to the network dynamic
Fix the FIXME and replace the hardcoded site_id's of the
nanoBTS with a command line option. You can use -i DEVICE_X
for every BTS you want to handle.
2009-07-16 15:27:09 +02:00
Harald Welte d83a127bb3 add more ipaccess 12.21 object classes, NSVC only exists once 2009-07-12 10:56:06 +02:00
Harald Welte ab46d7455b more ip.access RSL TLV parser definitions 2009-07-12 09:56:39 +02:00
Harald Welte 20855547bf rename ip.access structure field members and variables
to reflect that we now know their true names/meanings
2009-07-12 09:50:35 +02:00
Harald Welte 86c162dce8 give ip.access RSL IE's their proper names 2009-07-12 09:45:05 +02:00
Harald Welte 0efe9b7006 more ip.access abis_nm attributes
we also rename some existing attributes to reflect reality
2009-07-12 09:33:54 +02:00
Holger Hans Peter Freyther 3d57183910 abis_rsl.c: Clarify from which specification this table comes from
It appears to be the table of TS 05.02.
2009-07-09 20:43:16 +02:00
Holger Hans Peter Freyther a7cd9fc0d1 ipacess-config: Handle NVATTR NACKs in ipaccess-config
Currently we send the attribute changes in a send and forget
fashion. But sometimes the nanoBTS is sending us a NACK, e.g
with a invalid unit id. Start handling the NACK and provide
an error message to the user. The error message is not yet
describing the cause of the error but this is a slight progress
to the previous silent failure.
2009-07-08 23:13:58 +02:00
Harald Welte d5651d5ced Merge commit 'origin/master' 2009-07-05 14:19:06 +02:00