Commit Graph

1073 Commits

Author SHA1 Message Date
Harald Welte a5312fdd2b add notes about proposed handover algorithm 2009-11-29 17:41:22 +01:00
Harald Welte 1a79d36440 RSL: catch inconsistent parameters ofr channel_mode_from_lchan() 2009-11-27 08:55:16 +01:00
Harald Welte ad3c844b2d [wireshark] patch to correctly decode SYSTEM INFORMATION on BCCH FILLING 2009-11-26 23:47:21 +01:00
Steffen Neubauer f326267fb7 [SMS] Implement TP-VPF-ENHANCED
While doing so, we also restructure/reorganize the vailidity period
parsing in general.
2009-11-26 12:28:41 +01:00
Holger Hans Peter Freyther 2d501ea26a [vty] Add option to disable RF on a given TRX.
- Make sure that on runtime the Radio Carrier can be
  locked and unlocked. The vty code calls into the
  Abis NM to lock/unlock the channel and the state is
  stored there.

- Make sure that on start the Radio Carries remains
  offline and we are not starting it. On start the
  radio carrier is either locked or unlocked. This means
  the RSL will not connect until the RF is unlocked. It
  will connect then. To see RSL bringup failures one
  needs to parse the RSL nack message.

- When the TRX is locked on startup the RSL link will
  only be established after it will be unlocked.
2009-11-24 13:08:50 +01:00
Holger Hans Peter Freyther 1ce10f3854 [bsc_init] Activate the RC and the RSL link from the Software Activated Callback
On cold start the RSL link will not be brought up. Wait for the
Software to be Activated before starting the RSL link. This is
working reliable on the BTS I have tested with.

This is a partial revert of 8406ec2437 and
was discussed on the mailinglist.
2009-11-24 10:49:59 +01:00
Holger Hans Peter Freyther fdd0ddf7e9 [sms] Fix compile warning by including gsm_data.h
In file included from sms_test.c:27:
../../include/openbsc/gsm_utils.h:33: warning: `enum gsm_band' declared inside parameter list
../../include/openbsc/gsm_utils.h:33: warning: its scope is only this definition or declaration, which is probably not what you want
../../include/openbsc/gsm_utils.h:34: warning: `enum gsm_band' declared inside parameter list
2009-11-22 18:01:42 +01:00
Holger Hans Peter Freyther 4642d4917f [network] Make use of T3113 for paging
Add it to the configuration files and make use
of it in the the paging.c.
2009-11-22 05:28:24 +01:00
Holger Hans Peter Freyther 23975e718f [network] Add config option for the remaining network timers
There are all set to 0 and not used within the code yet but
should be used in the future.
2009-11-22 05:28:23 +01:00
Holger Hans Peter Freyther c4d88ad971 [network] Make T3101 configurable and use it in abis_rsl 2009-11-22 05:28:23 +01:00
Holger Hans Peter Freyther d61654cf54 [chan] Alloc SDCCH for certain reserved types
Follow notes:
    2.) Allocate a SDCCH for type "LMU"
    2a.)Allocate a SDCCH for the three reserved types
    2b.)Pick LCHAN type none to "ignore" the request
2009-11-22 05:28:23 +01:00
Holger Hans Peter Freyther a8816dd9c7 [talloc] Provide a copy of strnlen on OSX
The implementation is taken from a blogspot and I don't think
it is copyrightable...
2009-11-22 05:28:14 +01:00
Holger Hans Peter Freyther 7466351026 [misc] Fix the make distcheck
Mention the two new header files, do not list isdnsync twice
2009-11-20 17:58:52 +01:00
Holger Hans Peter Freyther adb8bcea5f [contrib] Add a utility to convert an IE page to an enum
This script is parsing the values, converting the bits into
a number and replacing the text... This should help to go from
spec to code more quickly... next thing would be this for the
structs used...
2009-11-20 17:29:33 +01:00
Holger Hans Peter Freyther b9b8c6dbb6 Merge branch 'on-waves/mgcp' 2009-11-20 14:12:12 +01:00
Holger Hans Peter Freyther 4ec389e58f [mgcp] Make the number of endpoints configurable...
Allow to configure the number of endpoints at start. Currently
this will not be changed at runtime but one needs to save the
config and restart the system.
2009-11-20 14:05:17 +01:00
Holger Hans Peter Freyther 8ea4b5688a [mgcp] The nanoBTS is not binding a RTCP port
Do not guess the RTCP port as it might be the RTP port
of another connection.
2009-11-20 14:05:17 +01:00
Holger Hans Peter Freyther 39e94ebbd2 [mgcp] The initialisation is done inside CRCX, remove here 2009-11-20 14:05:17 +01:00
Holger Hans Peter Freyther 48ecad48c7 [mgcp] Do not forward or find the BTS if the endpoint is unused
Forget where the bts and network is located on DLCX and CRCX otherwise
we would have forwarded BTS data to the wrong endpoint and would have
not tried to discover the BTS again.

In the case of early bind we might get data from the BTS before
the CRCX and after DLCX... just ignore it then
2009-11-20 14:05:17 +01:00
Holger Hans Peter Freyther 17e791666d [mgcp] Add a show command for the mgcp... 2009-11-20 14:05:17 +01:00
Holger Hans Peter Freyther 5fddf475d5 [mgcp] Fix writing the configuration file 2009-11-20 14:05:17 +01:00
Holger Hans Peter Freyther 338fa562c0 [mgcp] Add telnet interface for mgcp. 2009-11-20 14:05:17 +01:00
Holger Hans Peter Freyther 1cf9cf3eeb [mgcp] MGCP... update config file to use AMR 2009-11-20 14:05:17 +01:00
Holger Hans Peter Freyther 138b7ecd5e [mgcp] Add option to route audio back to both ends
This is a simple echo functionality in the MGCP... it
will send the audio back to the network|bts..
2009-11-20 14:05:17 +01:00
Holger Hans Peter Freyther f67945f004 [mgcp] Add a simple mgcp gateway used for the BSC
The python script is a simple call-agent driving the
client. Currently it is sending a AuditEndpoint message
and is printing the result.

The bsc_mgcp.c is a standalone process that will implement
a MGCP Gateway for the MSC. On call handling the Call-Agent
will ask the Gateway to "CreateConnection" and then this
gateway needs to communicate with OpenBSC.

Currently CreateConnection,ModifiyConnection,DeleteConnection
and Endpoint auditing is implemented.

[mgcp] Send RSIP on start and on first receive of any message

Ignore the first request and send a RSIP. We do that because
we might tunnel UDP through some other things and have no direct
way to connect to the call-agent.
Also the transaction is not checked and we ignore the response
from the call-agent, actually we print the '200 ' or any other
value as unhandled...

[mgcp] Print the MGCP command next to the response code

This allows to see which commands were sent by the server

mgcp: Terminate it with a new line

[mgcp] Make number of endpoints static...

For now this is fixed to the number of endpoints as of the GSM
specification...

[mgcp] The endpoint names seem to be base 16... use strtoul to parse

Use strtoul to parse the base 16 number from the mgw string.

[mgcp] Log the endpoints as hex numbers...

[mgcp] Only send the RSIP on the first incoming message..

Remove call_agent option (also remove the number from the getopt
call).

[mgcp] Start couting at 1 for the mgcp

[mgcp] Slight attempt to improve the grammar of the strings

[mgcp] Share validation routines between DLCX and MDCX

[mgcp] Remove help for dead config options

[mgcp] Specify a different IN addr in the SDP records

In case of NAT traversal be able to listen on a given
interface (like 127.0.0.1) but claim to receive data
at the beginning of the tunnel.

[mgcp] Fix the static copy of the SDP file

WIP verify out factoring broken..

[mgcp] Introduce VTY to the mgcp for config file parsing...

Parse the MGCP config file via the VTY framework.

[mgcp] Handle SDP parameters through VTY..

Currently the payload type, name and rate can be specified
in the config file.

[mgcp] Add an option to bind all rtp ports early

This can be useful for testing and in deployment to make sure
no runtime resource limit can be hit.

[mgcp] Add some API doc comment

[mgcp] Convert the packets of the example server to ascii

This will allow to easily patch the call id... to run the
server in a loop and make it work with the mediagateway

[mgcp] Assign CI_UNUSED... to be more obvious...

[mgcp] Use DEBUG and not DEBUGPC and specially not printf

Improve the logging a bit in the mgcp

[mgcp] Change the fake server to change the call id

This assume the call-agent will just increment the id
as well.... this is true for our implementation

[mgcp] Generate the transaction id dynamically..

This way wireshark will be more happy about it...

[mgcp] Recognize responses from the network..

This is just recognizing the response code and
then is doing nothing with it. Also change the
script to generate response messages...

[mgcp] Improve debug messages for CRCX/MDCX..

Log on which ports the media gateway is listening
and where the other (server) gateway is located
2009-11-20 14:05:04 +01:00
Holger Hans Peter Freyther b1b0bc2ace Merge branch 'on-waves/sccp' 2009-11-20 13:14:54 +01:00
Holger Hans Peter Freyther 3b9516e0d8 [sccp] Implement sending the Inactivity Test on a connection..
Currently this will send a dummy inactivity test message,
there is currently no parsing or API to receive the messages.

The sequencing and credit entries are empty as sequencing
is currently not used at all.

The test is currently limited to send the message and see
if the application is crashing or not.
2009-11-20 13:09:15 +01:00
Holger Hans Peter Freyther ac96770ad7 [sccp] Implement parts of ITU SCCP for use in the A-Interface
include/sccp/sccp_types.h contain Q.713 and GSM definitions
include/sccp/sccp.h is the application interface resembling
                    the esentials of the UNIX socket interface.

src/sccp.c is the actual implementation of SCCP featuring
           connection and UDT1 support.

tests/sccp/sccp.c is testing connection creation and formating
                  of the SCCP messages used by the A-interface. And
                  it contains a simple fuzzing test to test the
                  robustnes of the implementation.
2009-11-20 13:09:15 +01:00
Holger Hans Peter Freyther ff5fa4e455 [debug] Add a debug area for the MGCP code of On Waves 2009-11-20 13:07:02 +01:00
Holger Hans Peter Freyther 32201c50a5 [debug] Add a debug area for MSC 2009-11-20 13:06:44 +01:00
Holger Hans Peter Freyther ed0a47b9c5 [debug] Add a debug area for SCCP 2009-11-20 13:06:28 +01:00
Holger Hans Peter Freyther f926ed6b6f [vty] Remove tab to make the cell_identity nicely indent 2009-11-19 17:33:01 +01:00
Holger Hans Peter Freyther d54c337a83 [vty] Write out the neci configuration 2009-11-19 17:32:47 +01:00
Holger Hans Peter Freyther ea52802762 [lchan] RSL and RR need the multirate config, place it in the lchan
Both GSM 04.08 RR and GSM 08.58 RSL need the multirate config
in the channel modify. Place the config in the lchan, change
the gsm48 methods to not take the argument, change the RSL
implementation to make use of it with the right IE.

The other code should use the t(l)v_put routines as well but
were left untouched for now.
2009-11-19 11:42:03 +01:00
Holger Hans Peter Freyther 251e991372 [wireshark] Remove patches that are already upstream 2009-11-19 09:53:37 +01:00
Holger Hans Peter Freyther 45b0243a41 [lchan] Fix the SAPI reset in the chan allocation...
Reset the whole array instead of just the first element.
2009-11-19 09:40:03 +01:00
Holger Hans Peter Freyther b9bda7bebd [wireshark] Fix decoding of ipacc MDCX messages
- Rename BIND to CRCX
- Rename CONNECT to MDCX
- Add break to properly decode the MDCX RSL packets
2009-11-19 09:40:03 +01:00
Holger Hans Peter Freyther 25b1e25dd4 [gsm48] Send the IPA CRCX after the chan modify ack
Change the CRCX after the channel has been modified.
2009-11-19 09:40:03 +01:00
Holger Hans Peter Freyther 231163d365 [ipa] Change names of RTP methods to follow MGCP naming
IPA is naming these functions CRCX, MDCX, DLCX to follow
the naming of the MediaGatewayControlProtocol. Change the
code to go from BIND to CRCX (create connection) and from
CONNECT to MDCX (modify connection).

Connect indicates that it is only possible to call it once
while it is possible to call it more than once to modify
the audio parmaters and such. So the IPA terminology is
making a bit more sense here (now that we know it).
2009-11-19 09:40:03 +01:00
Holger Hans Peter Freyther 25f30ba00a misc: Add routine to generate backtrace from within the application
E.g. to analyze the subscr_get/subscr_put behavior one can place
the generate_backtrace into the functions, recompile and then filter
the output with contrib/bt.py to get the function name, file and line.
2009-11-19 09:40:03 +01:00
Harald Welte a8dffc512b Merge remote branch 'origin/master' 2009-11-18 09:23:11 +01:00
Harald Welte 61a83b2aec max_power_limit: the limit is 24 dB ! 2009-11-18 09:20:22 +01:00
Holger Hans Peter Freyther a6bcc74716 [gsm48] When picking AMR we need to supply the multirate config
On channel mode modify and assignment command when using
the a multirate code the multirate configuration must be
present in the packet.
Add a parameter and add a warning when using it in a
broken way.
2009-11-17 18:20:17 +01:00
Holger Hans Peter Freyther 135a7c65cd [neci] Separate handling of chan requested for paging any
Allow to handle the channel requested differently based
on the NECI value for the "paging any" case. This will allow
to open a TCH/H, TCH/F depending on the neci mode.
2009-11-17 18:19:25 +01:00
Holger Hans Peter Freyther 843b44d261 [neci] Use the correct length when going over the array
Use the correct length when going over the array instead
of using the neci0 values. Remove the fixme from the method
as well as the issue has been addressed by adding a parameter
to the method.
2009-11-17 18:19:19 +01:00
Holger Hans Peter Freyther fe9da827fd [paging] In expiration handling remove the request before doing the callback
Not doing this could lead to a double deletion due the paging
request being removed during the callback and afterwards as
well. Change the code to save the callback data, remove the
request, do the callback.

A patch was proposed by Andreas Eversberg and this one is
based on it.
2009-11-17 10:16:46 +01:00
Andreas.Eversberg 1059deb782 Fix configuration file generation
Assign the encryption status to the right variable.

Signed-off-by: Holger Freyther <zecke@selfish.org>
2009-11-17 09:55:26 +01:00
Holger Hans Peter Freyther f7d752f7ac [si] Make it possible to set the NECI value...
Allow to configure the NECI value... and change code
that is relying on the NECI value.
2009-11-17 09:46:33 +01:00
Holger Hans Peter Freyther 0fef39a8ac [rsl] Improve error message when the lchan allocation is failing 2009-11-17 09:46:33 +01:00
Holger Hans Peter Freyther 057fec5336 ipaccess-config.c: Spelling fix in the config mode 2009-11-17 09:46:33 +01:00