Commit Graph

641 Commits

Author SHA1 Message Date
Harald Welte 3c06207338 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 bf5833e5ae 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 facf61238d send a [new] signal in case of IPAC_DISCONNECT_INDication 2009-07-28 18:02:05 +02:00
Harald Welte 26cc168f43 implement human-readable RSL cause printing 2009-07-28 17:58:09 +02:00
Harald Welte f955487ca3 enable select.c handler to support removal of two consecutive fd's 2009-07-28 13:32:00 +02:00
Harald Welte 1e9c5b4617 Merge branch 'master' into rtp_proxy 2009-07-28 08:21:40 +02:00
Harald Welte 932e20d3ac 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 0b0bbce55d 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 419c047ce9 move allocating new transaction_ids to transaction.c 2009-07-23 21:39:00 +02:00
Harald Welte f2b64645bd add missing files to git 2009-07-23 21:25:48 +02:00
Harald Welte 4861c82968 trans->transaction_id now reflects the actual (unshifted) value 2009-07-23 21:21:14 +02:00
Harald Welte 36fe2e8733 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 aae7a52c10 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 8dd09d6698 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 a54b48de1f 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 52281c1b23 allow user to set BSIC and TSC from command line 2009-07-21 22:13:36 +02:00
Harald Welte 63d23c804e use actual bts->tsc rather than hard-coded value 2009-07-21 22:13:28 +02:00
Harald Welte beeb28fa0b use the TSC that is configured in bts->tsc rather than hardcoded value 2009-07-21 22:13:22 +02:00
Harald Welte afe3c23937 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 f628471393 fix copy+paste mistake in ecnoding short net name in mm info 2009-07-19 17:51:36 +02:00
Harald Welte c7d7506348 some more comments for BS11 attributes 2009-07-18 16:18:11 +02:00
Holger Hans Peter Freyther a6429e363f 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 6fca008f17 yet again some more ip.access RSL definitions + parsing 2009-07-12 21:59:04 +02:00
Harald Welte b47467ae47 again some parser improvements for ip.acccess
most notably we now parse a number of the GPRS IE's
2009-07-12 20:46:43 +02:00
Harald Welte 5b27eb9fb3 add some more ip.access RTP related definitions 2009-07-12 11:17:16 +02:00
Harald Welte 8f92cce8d6 add more ipaccess 12.21 object classes, NSVC only exists once 2009-07-12 10:56:06 +02:00
Harald Welte 1610d30d3a more ip.access RSL TLV parser definitions 2009-07-12 09:56:39 +02:00
Harald Welte 8cdeaadfdb 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 b9498951a9 give ip.access RSL IE's their proper names 2009-07-12 09:45:05 +02:00
Harald Welte 4206d98317 more ip.access abis_nm attributes
we also rename some existing attributes to reflect reality
2009-07-12 09:33:54 +02:00
Harald Welte ffc00402da abis_oml wireshark plugin now builds without compiler warnings 2009-07-11 21:06:29 +02:00
Harald Welte e71eb0d6b0 fix parsing of ip.access GPRS OML attributes and RSL IP + Port 2009-07-11 21:06:21 +02:00
Harald Welte f6f96d43cf fix some minor issues in the wireshark patch
This is the version that has been submitted to wireshark as
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3697
2009-07-10 19:43:06 +02:00
Holger Hans Peter Freyther 4e0fdfd543 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 c35a4bc9bc Merge branch 'holger/ipacess' 2009-07-09 00:16:29 +02:00
Holger Hans Peter Freyther 72baef356e 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 a58188dd82 Merge commit 'origin/master' 2009-07-05 14:19:06 +02:00
Harald Welte f6845a7d9f Store classmark1/2/3 in equipment SQL table
For further evaluation/analysis, this patch stores the classmark 1, 2 and 3
values of every equipment in the SQL database.  We can use this non-volatile
data to determine the supported features for each handset that we've ever
seen on our network.
2009-07-05 14:08:13 +02:00
Harald Welte c1c4a95f73 remove SI3 and SI4 rest octets
As Dieter has pointed out, we currently send incorrect information
in the rest octets, particularly about our GPRS capability.  Since
the format of the rest octets is highly complex, and we don't
actually need any of those features yet, we might just fill them
with padding.
2009-07-05 13:41:40 +02:00
Holger Hans Peter Freyther 5bcfb4fdef ipaccess-config: Add --help to the ipaccess-config
Just a beginning...
2009-07-04 11:53:10 +02:00
Harald Welte ccd693645b make sure we always schedule a location updating reject
IT sems that if a MS uses the TMSI of a previous network, we did not start
the reject timer.  Thanks to Andreas Eversberg.
2009-07-04 10:18:00 +02:00
Harald Welte 6e1536e30e remove bogus extra check for data->imsi[0] in mncc_send
As Andreas points out, we already check for this condition some 10 lines
below, no need to check twice.
2009-07-04 10:11:24 +02:00
Harald Welte df0c65037a remove superfluous check for lchan->use > 0
If we receive one of those strange BS-11 "Cause 22" errors,  we don't need
to check if the lchan use counter is > 0.  If it was 0, the lchan gets
released anyway.
2009-07-04 10:05:51 +02:00
Harald Welte 692f5857e5 release channel on ERROR INDICATION
This was proposed by Andreas Eversberg.  I made it conditional on the T200
timer expired cause, as I'm not sure if we really should give up that quickly
on other errors such as just simply receiving an unsolicited response.
2009-07-04 09:40:05 +02:00
Harald Welte 12560da2ca gsm48 lchan signal handling: use correct pointer
As Andreas Eversberg has pointed out, we need to use signal_data
rather than handler_data.
2009-07-04 09:35:21 +02:00
Harald Welte cde20850f0 make sure misdn plugin handles DL_UNITDATA_IND
This reportedly fixes the problem that we didn't see MEASurement REPort
messages from the BS-11.
2009-07-04 09:28:00 +02:00
Harald Welte 8f19a27af6 update wireshark patches to current svn (28938) 2009-07-04 04:11:21 +02:00
Harald Welte 637896b872 support parsing of ip.access 12.21 test reports 2009-07-03 12:46:47 +02:00
Harald Welte 90a93cf9e5 add more TLV parser definitiosn for IPA NM attributes 2009-07-03 12:46:27 +02:00
Harald Welte 21460f0f4f add code to ipaccess-config set nanoBST NVRAM attributes 2009-07-03 11:26:45 +02:00