aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2009-11-20Merge branch 'master' into on-waves/bsc-masteron-waves/0.1Holger Hans Peter Freyther2-2/+3
Conflicts: openbsc/include/openbsc/Makefile.am openbsc/src/Makefile.am
2009-11-20[misc] Fix the make distcheckHolger Hans Peter Freyther2-2/+3
Mention the two new header files, do not list isdnsync twice
2009-11-20[configure] Add onwaves to the version tagHolger Hans Peter Freyther1-1/+1
2009-11-20HACK patch the network code..Holger Hans Peter Freyther1-1/+10
Report to the MSC with the right code and patch it on the air...
2009-11-20[vty] Add option to disable RF on a given TRX.Holger Hans Peter Freyther5-4/+52
- 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.
2009-11-20[bsc_init] Activate the RC and the RSL link from the Software Activated CallbackHolger Hans Peter Freyther1-27/+22
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.
2009-11-20[lchan] Release the channel ones its' usecount drops to zeroHolger Hans Peter Freyther10-52/+44
Remove the timer handling from the LCHAN and release the channel ones the use count is dropping to zero. Change code that was sending/using the lchan after the release and change the send data method to warn in case the lchan is used after it has been freed.
2009-11-20[bssap] Open a traffic channel for the paging any reasonHolger Hans Peter Freyther1-2/+2
In the case the MS is requesting a channel with the paging any channel reason, use a TCH. This allows us to keep using very early assignment and the SDCCHs are kept free for location updating requests.
2009-11-20[rsl] Speculative crash fix in the RSL rcv messageHolger Hans Peter Freyther1-1/+13
The theory is that the BTS is almost dead and sends out a incomplete message and we crash with that. I have not been able to completely verify that.
2009-11-20Merge branch 'on-waves/gsm0808' into on-waves/bsc-masterHolger Hans Peter Freyther17-7/+2550
2009-11-20[bssap] Support multiple multiplexers in the assignment commandHolger Hans Peter Freyther1-7/+12
When more than one trunk group is allocated to the BSC the MSC will start to assign channels from the different multiplexer. We will map them the following way onto MGCP endpoints Multiplex 0: 0 -> 1 1 -> signalling 2 -> 2 .. -> .. 16 -> signalling (might be 15) 30 -> 30 Multiplex 1: 0 -> 31 2 -> 32 ... Multiplex 3: ..
2009-11-20[bsc] Add a rtp base port to the BSC config tooHolger Hans Peter Freyther5-3/+20
Stop having a global variable... keep it in the gsm network or the mgcp
2009-11-20[vty] Write out BSC specific network parameters tooHolger Hans Peter Freyther1-0/+18
2009-11-20[bssap] Cope with weird channel mapping on the network sideHolger Hans Peter Freyther1-1/+5
The timeslot of the network maps the following way 0 -> 1 1 -> n/a 2 -> 2 ... -> ... 31 -> 31
2009-11-20[ipacc] Add a way to override the rtp payload for MDCXHolger Hans Peter Freyther3-1/+17
2009-11-20[bsc] Send the SCCP IT message in a given intervalHolger Hans Peter Freyther2-0/+21
Send the message every 60 seconds on every SCCP connection. The 60 seconds were taken from a protocol trace obtained on the network.
2009-11-20[bsc] Unref the lchan when the MSC is closing the SCCP connectionHolger Hans Peter Freyther1-0/+5
Currently we are not sending the Inactivity Test message so the MSC will close the specific sccp connection but we would keep the lchan open and then end up with resource issues. Change the code to close the lchan before closing the SCCP connection..
2009-11-20[bssap] Send multirate config for HR AMR with 5.9kHolger Hans Peter Freyther1-0/+6
Send a hardcoded multirate config when usin the AMR codec. This should be more configurable in the future.
2009-11-20[bsc] Add a test_mode function that can be used to inject packagesHolger Hans Peter Freyther1-0/+40
This method can be called from the main method to inject a test message into a "fake" network with sccp connection.
2009-11-20[bssap] Attempt to allow selecting the speech mode from configHolger Hans Peter Freyther1-14/+86
It is possible to specify a list of possible speech codecs and we will try to match the assignment command with the one from the config file. This is not tested yet and we have one problem. We assume we can modify the channel to hold the speech value... this will require more work.
2009-11-20[vty] Add configuration for the preferred speech versionHolger Hans Peter Freyther2-0/+78
Add network configuration option to specify which audio codecs are supported by the BTS. This allows the BSC to pick the audio codec in the GSM0808 Assignment Request.
2009-11-20[bssap] Pick the A5/0 vs A5/1 setting from the gsm_networkHolger Hans Peter Freyther1-3/+43
Follow the configuration of the gsm network. If the Cipher Mode Request does not allow our preferred format we will reject it. Otherwise send the cipher mode command to the mobile station. This code is mostly untested.
2009-11-20[bsc] Add BSC specific config option... currently and empty show is implementedHolger Hans Peter Freyther3-6/+49
In the future this should give a list of SCCP connections and their allocated radio resources/users...
2009-11-20[bssap] Implement generating a classmark update messageHolger Hans Peter Freyther2-0/+21
Generate a classmark update message from a given payload this might need to be changed to get the version2 and version3 parameters
2009-11-20[bssmap] Fix the chosen encryption in assignment completeHolger Hans Peter Freyther1-1/+1
Send the RSL value... it is the right value
2009-11-20[bssmap] Unconditionally include the chosen encryption in cipher mode completeHolger Hans Peter Freyther3-13/+9
2009-11-20[bssmap] Assignment handling fixes and improvementsHolger Hans Peter Freyther1-4/+23
- Fix the generation of the assignment failure message - Parse the permitted indicator of the assignment request message
2009-11-20[bssap] Fix generation of the failure messageHolger Hans Peter Freyther1-2/+3
2009-11-20[bssap] Only start establish when the link is not yet establishedHolger Hans Peter Freyther1-1/+1
This is fixing a bug when we try to submit a SMS from the MS to the network. We send the RLS ESTABLISH REQUEST but as the MS already established this SAPI we waited for the timeout and failed..
2009-11-20[bssap] Improve log messages...Holger Hans Peter Freyther2-2/+2
2009-11-20[bssap] First go at implementing channel assignment...Holger Hans Peter Freyther4-11/+77
2009-11-20[bssap] First go at implementing ASSIGNMENT REQUESTHolger Hans Peter Freyther4-6/+401
2009-11-20[bssap] Add a "#warning" that cipher mode is not properly handledHolger Hans Peter Freyther1-0/+1
2009-11-20[bssap] Start to queue messages to the BTS and to the MSCHolger Hans Peter Freyther4-14/+195
For the MSC we need to queue GSM04.08 messages until the SCCP connection is confirmed to be open and then can send the stored messages. The queue is limited to 10 messages at which point new ones will be dropped. Currently the only messages we get are measurement indication messages but it is better to be safe than sorry. The SCCP messages are sent as soon as the connection is considered established and then no queueing happens any more. While replacing sccp_connection_write calls various memory leaks has been fixed. For the MS we might have received a DTAP and need to do an operation that requires a roundtrip and want to send wait until this has happened. The two scenerios are sending a SMS to the phone that requires to do something special for the different SAPI. Currently it is assumed that only one SAPI=0 -> SAPI=3 change happen during the connection. For the first SAPI != 0 we will send the rll_ request and then wait for the timeout or confirmation. In case of timeout a SAPI "n" reject is sent and in case of success the queue is getting emptied.
2009-11-20[bssap] Implement SAPI "N" Reject messageHolger Hans Peter Freyther2-1/+18
This message will be needed when no RLL connection on a different SAPI can be established or we don't want to establish it.
2009-11-20[bsc_msc_ip] This is a BSC that connects to real MSC via IPHolger Hans Peter Freyther13-5/+1486
This is a BSC to be used by on-waves.com to connect to a real MSC using SCCP over IP. The following messages and features are currently implemented: - IPA identity ack's - COMPLETE LAYER3 INFORMATION - DTAP - PAGING COMMAND - CLEAR COMPLETE/CLEAR REQUEST - CIPHER MODE COMMAND/ REJECT /COMPLETE It comes with a tool to create the enum's from the spec and a very simple test server to do the handshaking.
2009-11-20[contrib] Add a utility to convert an IE page to an enumHolger Hans Peter Freyther1-0/+37
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-20Merge branch 'on-waves/mgcp'Holger Hans Peter Freyther6-1/+1299
2009-11-20[mgcp] Make the number of endpoints configurable...Holger Hans Peter Freyther2-1/+14
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[mgcp] The nanoBTS is not binding a RTCP portHolger Hans Peter Freyther1-4/+2
Do not guess the RTCP port as it might be the RTP port of another connection.
2009-11-20[mgcp] The initialisation is done inside CRCX, remove hereHolger Hans Peter Freyther1-2/+0
2009-11-20[mgcp] Do not forward or find the BTS if the endpoint is unusedHolger Hans Peter Freyther1-0/+8
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[mgcp] Add a show command for the mgcp...Holger Hans Peter Freyther1-0/+20
2009-11-20[mgcp] Fix writing the configuration fileHolger Hans Peter Freyther1-0/+4
2009-11-20[mgcp] Add telnet interface for mgcp.Holger Hans Peter Freyther2-4/+6
2009-11-20[mgcp] MGCP... update config file to use AMRHolger Hans Peter Freyther1-5/+6
2009-11-20[mgcp] Add option to route audio back to both endsHolger Hans Peter Freyther1-23/+36
This is a simple echo functionality in the MGCP... it will send the audio back to the network|bts..
2009-11-20[mgcp] Add a simple mgcp gateway used for the BSCHolger Hans Peter Freyther6-1/+1242
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-20Merge branch 'on-waves/sccp'Holger Hans Peter Freyther10-3/+2451
2009-11-20[sccp] Implement sending the Inactivity Test on a connection..Holger Hans Peter Freyther4-0/+55
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.