Commit Graph

831 Commits

Author SHA1 Message Date
Harald Welte f4e79f24fc 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:28:14 +02:00
Harald Welte 888b11462a send a [new] signal in case of IPAC_DISCONNECT_INDication 2009-07-28 18:28:07 +02:00
Harald Welte 8830e07efb implement human-readable RSL cause printing 2009-07-28 18:27:59 +02:00
Harald Welte 709f2fd8c0 enable select.c handler to support removal of two consecutive fd's 2009-07-28 18:27:52 +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 3366a94d6c Merge branch 'master' into sms
Conflicts:
	openbsc/include/openbsc/transaction.h
	openbsc/src/gsm_04_11.c
	openbsc/src/transaction.c
2009-07-28 00:44:49 +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 f3efc597d1 further steps towards better, transaction based SMS 2009-07-27 20:11:35 +02:00
Harald Welte 0803b98cc0 move definition of 'struct gsm_trans' to transaction.h 2009-07-26 14:24:11 +02:00
Harald Welte b8b4073e18 look-up by (subscriber, protocol, transaction_id) tuple
... rather than the previous incomplete (lchan, transaction_id) tuple
2009-07-23 21:58:40 +02:00
Harald Welte b49248bf48 move allocating new transaction_ids to transaction.c 2009-07-23 21:39:00 +02:00
Harald Welte 78283ef151 move allocating new transaction_ids to transaction.c 2009-07-23 21:36:44 +02:00
Harald Welte c072ad6e29 add missing files to git 2009-07-23 21:25:48 +02:00
Harald Welte 9ee4825bbf add missing files to git 2009-07-23 21:25:08 +02:00
Harald Welte 88f0425197 Merge branch 'master' into sms 2009-07-23 21:24:28 +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 90055df59e Merge branch 'master' into sms 2009-07-23 19:09:01 +02:00
Harald Welte 596fed40f0 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:06:52 +02:00
Harald Welte dcaf5654db 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 18:56:43 +02:00
Harald Welte 9176bd46e3 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 18:46:00 +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 9f93c7d61b allow user to set BSIC and TSC from command line 2009-07-21 22:12:23 +02:00
Harald Welte 66ae83b0c9 use actual bts->tsc rather than hard-coded value 2009-07-21 20:55:56 +02:00
Harald Welte fe6a45a228 use the TSC that is configured in bts->tsc rather than hardcoded value 2009-07-21 20:40:05 +02:00
Harald Welte ae05d247af Merge branch 'master' into sms 2009-07-19 18:49:15 +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 559d97db66 parse ip.access connection statistics and speech type 2009-07-12 23:10:28 +02:00
Harald Welte a1f0ac7eb3 yet again some more ip.access RSL definitions + parsing 2009-07-12 21:59:04 +02:00
Harald Welte c9b484ff4c 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 0427a9f31a add some more ip.access RTP related definitions 2009-07-12 11:17:16 +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