Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
This was spotted by zecke, thanks.
|
|
|
|
|
|
|
|
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.
|
|
* 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.
|
|
|
|
|
|
|
|
|
|
This is much more optimal than checking if the context exists every
time we allocate the respective object.
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
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).
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
to reflect that we now know their true names/meanings
|
|
|
|
we also rename some existing attributes to reflect reality
|
|
It appears to be the table of TS 05.02.
|
|
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.
|
|
|
|
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.
|
|
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.
|
|
Just a beginning...
|
|
IT sems that if a MS uses the TMSI of a previous network, we did not start
the reject timer. Thanks to Andreas Eversberg.
|
|
As Andreas points out, we already check for this condition some 10 lines
below, no need to check twice.
|
|
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.
|
|
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.
|
|
As Andreas Eversberg has pointed out, we need to use signal_data
rather than handler_data.
|
|
This reportedly fixes the problem that we didn't see MEASurement REPort
messages from the BS-11.
|
|
|
|
|
|
|
|
|