Age | Commit message (Collapse) | Author | Files | Lines |
|
If we have tried SMPP first and it was not routable, and then
tried the local delivery there is no point in trying SMPP with
the same parameters again. Leave early and return unknown sub
to the caller.
|
|
default-route would only be looked at after there has been
no subscriber in the local database. Depending on the setup
this is not what one wants. This has been discussed at the
OsmoDevCon and there have been hacks in some branches. Let's
introduce a VTY command to select if SMPP should be consulted
first and then fallback to the current behavior.
|
|
|
|
Even if it is using BSC/NITB types let's put it in the header
file than just declaring it at a place that could bitrot in a
way that doesn't lead a warning.
|
|
The "default-route" for SMPP will be used after a local
subscriber look-up. Sometimes we want to route everything
to SMPP. Make this possible by changing this routine.
|
|
|
|
|
|
|
|
Prefix is added before randomly generated extension.
Prefix is useful in case of "accept-all" authentication mode is used
and routing based on number prefix is used.
Added optional configuration parameter "extension-prefix".
|
|
|
|
Otherwise you have to restart BTS or at least break the RSL connection
to apply the change.
|
|
The code to do that doesn't belong to the control interface, so abstract it out
to a separate function gsm_bts_set_system_infos().
|
|
|
|
Changes:
* Apply change even if the supplied value is odd, just warn that it is rounded.
* Apply change even if the supplied value is higher than the 24dB maximum
suggested by the standard, just warn about this.
* Apply change to the BTS over OML immediately.
|
|
- enable smpp support
- disable the gbproxy test (failing)
|
|
succeeded
setup_trig_pag_evt function can receive parameter conn = NULL, if T3113 expires.
|
|
The caller's most preferred codec is selected out of the union of codecs,
which both parties support.
Since codec negotiation is done automatically, there is no need to define
codec for TCH/F and TCH/H via VTY anymore.
Conflicts:
openbsc/src/libmsc/gsm_04_08.c
openbsc/src/libmsc/vty_interface_layer3.c
|
|
If MNCC application requests a half rate channel, the channel might not be
available, due to different cell configuration, so the full rate channel
is used instead.
|
|
|
|
Conflicts:
openbsc/include/openbsc/gsm_data_shared.h
openbsc/src/libbsc/bsc_vty.c
openbsc/src/libbsc/chan_alloc.c
|
|
Some RTP endpoints may not check for bad frame indications, so a frame
that is marked as bad may be still forwarded, which creates anoying noise.
This patch drops these frames. It depends on the other RTP endpoint how
dropped frames are handled. (insert silence, extrapolate speech...)
|
|
Traffic cannot sent to BTS, if there is (currently) no logical channel
associated with the transaction.
This happens, if TCH traffic is received from upper layer, but there is
no lchan available before completing immediate assignment, handover or
assignment process.
|
|
The same radio link timeout value is used for BTS and MS side.
|
|
|
|
Since EFR/AMR/HR codecs use dynamic RTP payload, the payload type can
be set. If it is set, the frame type must be set also, so OpenBSC
knows what frame types are received via RTP.
This modification only affects traffic beween application and MNCC
interface, not the RTP traffic between OpenBSC and BTS.
Conflicts:
openbsc/src/libtrau/rtp_proxy.c
|
|
Instead of forwarding traffic through MNCC interface, traffic can
be forwarded to a given RTP peer directly. A special MNCC message
is used to control the peer's destination. The traffic can still be
forwarded through MNCC interface when this special MNCC message is
not used.
It also works with E1 based BTSs.
In conjunction with LCR's "rtp-bridge" feature, the RTP traffic
can be directly exchanged with a remote SIP endpoint, so that the
traffic is not forwarded by LCR itself. This way the performance
of handling traffic only depends on OpenBSC and the remote SIP
endpoint. Also the traffic is exchanged with the SIP endpoint
without transcoding, to have maximum performance.
Increment MNCC version to 5.
Conflicts:
openbsc/tests/gbproxy/gbproxy_test.c
|
|
When communicating with a GGSN that is not the OpenGGSN
the PDP context activation does fail. This is because on
the activation of the first PDP context we need to supply
a MSISDN. Extend the protocol, parse the MSISDN and then
send it to the GGSN. The second item is that we have only
forwarded the requested QoS of the subscriber. In most
cases this is 0x0, 0x0, ... which means one requests a
rate 0 byte/sec which the GGSN will not allow. Make it
possible to receive, store and use the subscribed QoS of
the Subscriber.
|
|
|
|
|
|
If QoS is only three bytes it does not include the allocation/
retention policy. Otherwise it does. Copy it depending on that.
We should have a macro for the clamping to reduce code duplication.
The insanity does come from the MAP data and this seems to be
the easiest in terms of complexity. It is an array of bytes that
is transported from MAPProxy to the SGSN and then simply forwarded.
The case of more than three bytes is neither unit nor manually
tested so far.
|
|
sgsn_create_pdp_ctx should use the subscribed QoS. When selecting
the PDP context we inject the QoS to be used into the TLV structure
and use it during the request. Assume a "qos-Subscribed" structure
only with three bytes and prepend the Allocation/Retention policy
to the request.
|
|
The MSISDN should be present for "security" reasons in the first
activation of a PDP context. Take the encoded MSISDN, store it for
future use and then put it into the PDP activation request.
The MM Context contains a field for a decoded MSISDN already. As
we need to forward the data to the GGSN I want to avoid having to
store TON and NPI in another place. Simply store the data in the
encoded form.
|
|
Add roundtrip test for the new QoS IE. It will be consumed in
later commits.
|
|
Extract the new MSISDN IE from the GSUP message and verify that
it is read/written to the message.
|
|
QoS is a mess. In MAP there is qos-Subscribed which is then extended
using ext-QoS-Subscribed, ext2-QoS-Subscribed, ext3-QoS-Subscribed
and maybe even ext4-QoS-Subscribed by now. The MAP ASN1 files defined
how these need to be "linearized". Instead of copying this I have
decided to include the two semantics with/without the Allocation/Retention
policy using the size of the data.
|
|
When asking the GGSN to create/open a PDP context one needs
to send a MSISDN. The MSISDN can only be provided through the
GSUP interface.
|
|
Integrate the change and see how it is going. The unit tests
for the NAT look good so we might not have regressions.
|
|
In case we filter the request and it was a Location Updating
Procedure we should reject it.
|
|
|
|
It is a bit arbitary to decide which one is the global
and which one is the local one. We might change it around.
I don't think we want to introduce it based on BTS.
|
|
|
|
|
|
Remove the last occurence of NAT datastructures in the filtering
module and add the ctx to the filter request structure.
|
|
|
|
|
|
With the "local" and "global" list name we might pick the
wrong argument. Avoid it by passing them as a struct.
|
|
Push back the parameters we need to pass. auth_imsi doesn't
know anything about the nat now.
|
|
For the BSC we will have the gsm48_hdr and don't need to
find data within SCCP. For legacy reasons we need to
initialize con_type, imsi, reject causes early on and
need to do the same in the filter method.
|
|
|
|
|