path: root/openbsc
AgeCommit message (Collapse)AuthorFilesLines
2010-02-08Bump the configure.in to 0.3on-wave.on-waves/0.3Holger Hans Peter Freyther1-1/+1
2010-01-28Revert "[bssap] Open a traffic channel for the paging any reason"Holger Hans Peter Freyther1-2/+2
This reverts commit 55a0716da7d06860addfba1812c309eac6d82f1a. Using a TCH/H, TCH/F for paging purpose any will break the MT-SMS case because this needs a SDCCH to establish SAPI=3. The On Waves BSC Master branch has support for early assignment now so this hack is not needed anymore.
2010-01-28[bsc] Implement early assignment for CC for the MT case.Holger Hans Peter Freyther3-9/+149
In case we need to handle speech but we are currently on a SDCCH we need to assign a new channel and close the old one. This implementation should have the correct flow of things but we might need to fix some error situations properly. It is implemented by keeping a secondary_lchan pointer that will be swapped into the lchan pointer after the assignment complete message from the MS. The old lchan will be deactivated (the SACCH should stay open). We have to manually remove the subscr from the lchan structure to properly close things down.
2010-01-28[bssap] Use switch/case for the signal handlerHolger Hans Peter Freyther1-26/+30
Use switch/case, switch/case for the subsys and signal to prepare to handle more signals in the future.
2010-01-28[gsm48] Use optional Chan Mode 1 for the assignment commandHolger Hans Peter Freyther1-0/+2
Specify how we intend to use the assigned channel. This is needed to make CC with early assignment work properly.
2010-01-28[gsm48] Allow to send the assignment command on a different lchanHolger Hans Peter Freyther2-3/+3
Change the signature to take the lchan were the message is supposed to be sent and the lchan which is supposed to be assigned.
2010-01-28[rsl] Send the MultiRateConfig in the RSL Channel Activate msgHolger Hans Peter Freyther1-0/+4
If the lchan has AMR as speech codec we also need to send the multirate config IE in the channel activation. This is already done for the RSL Channel Modify message.
2010-01-27[sccp] Separate connection parsing and policy for connection requestHolger Hans Peter Freyther1-48/+60
The same concept as with the previous patch, make the reject method work on the source local reference instead of passing it the header.
2010-01-27[sccp] Move the UDT parsing to a new methodHolger Hans Peter Freyther1-50/+89
Separate SCCP UDT parsing and handling into two methods. This way the parsing can be reused by the BSC NAT.
2010-01-27[sccp] Invent new API to be used by the BSC NATHolger Hans Peter Freyther1-1/+16
I want to reuse the SCCP code for header parsing in the BSC NAT to identify data and patch the source local reference. To do this the current handle_* methods will be changed into two parts one is strictly parsing the other is handling the parsed data.
2010-01-27[paging] Increase the time used to send paging messages to the BTSHolger Hans Peter Freyther1-2/+2
Send a Paging Request to the BTS every two seconds. This way it is unlikely that a phone will try to respond to two paging requests as it is currently happening.
2010-01-27[bsc_msc] Start the Inactivity Timer only when the connection is establishedHolger Hans Peter Freyther1-5/+9
Start the SCCP IT timer only after the MSC has confirmed the SCCP connection. It is safe to call bsc_del_timer even if it was never started. This could happen on a connection refusal.
2010-01-27[msc] Fix compilation by adding blocked_gsm to the structHolger Hans Peter Freyther1-0/+1
2010-01-27[msc] Attempt to fix MT SMS with ciphering enabled.Holger Hans Peter Freyther3-1/+27
The MSC is asking us to enable ciphering and then immediately sends a DTAP msg for SAPI=3. We handle this correctly by attempting to establish SAPI=3 but we never get an establishment confirm for this SAPI. Attempt to fix it by not sending any DTAP message when we receive the Cipher Mode Request and unblock the queue when the ciphering is confirmed. The unblocking currently works by taking all messages out of the queue and then submitting them again. This will attempt to establish the SAPI=3 and such automaticaly. And the MSC stopped sending me SMS so this needs to be verified at a later time.
2010-01-27[rest_octets] Change data_len to the sizes of the specHolger Hans Peter Freyther1-5/+5
Is that right?
2010-01-27[system_information] Initialize the buffer before moving itHolger Hans Peter Freyther1-2/+4
In the case of ipaccess we are doing a ++output but then still try to write 23 bytes into it and on my system this is leading to a stack corruption.
2010-01-25[nat] Handle write errors with a warning to make the compiler happyHolger Hans Peter Freyther1-1/+6
Make the compiler happy by checking the write error and printing a message to the console.
2010-01-21[nat] Add a bsc_filter.c which will carry out the analysis and filteringHolger Hans Peter Freyther5-8/+83
The first part is to analyze the IP Access Header and only forward SCCP messages for now. In the future we might want to do MGCP signalling through this protocol and connection as well and need to update this then.
2010-01-14[mgcp] In forward mode we need to rediscover the BTS more oftenHolger Hans Peter Freyther1-1/+1
In plain forward mode we don't have DLCX which will clean and reset the configuration. We will need to remember the last GSM BTS port and send data to it.
2010-01-14[mgcp] Handle BTS and NET being on the same hostHolger Hans Peter Freyther1-4/+5
* Do not only check the IP but also the port to figure out where to send the data * Do not memset the endp->remote inside the bind_rtp but from inside the crcx as this will be modified by the MDCX
2010-01-13[mgcp] Warn about unknown messages...Holger Hans Peter Freyther1-1/+3
2010-01-13[mgcp] Allow to forward to a different portHolger Hans Peter Freyther1-7/+23
2010-01-13[mgcp] Rename rtp and rtcp variables to net_rtp and net_rtcpHolger Hans Peter Freyther1-11/+11
Rename the variables to refer to the fact that they are the ports of the remote. So we have: rtp_port as the local address we are binding to net_rtp for the network rtp bsc_rtp for the bsc rtp
2010-01-13[mgcp] Make it possible to not specify a bts ipHolger Hans Peter Freyther1-7/+8
This way the mgcp will allow anyone to be the BTS.. in the future we might need to communicate things properly between BSC and MGCP.
2010-01-13[nat] Use the right len for the packages..Holger Hans Peter Freyther1-2/+2
2010-01-13[sccp] Add a utility for the nat..Holger Hans Peter Freyther2-0/+14
Add a small helper to determine the type of a message
2010-01-13[nat] Really forward the data to the BSCHolger Hans Peter Freyther1-0/+1
2010-01-13[nat] Make sure the ipaccess_bsc_cb will be called..Holger Hans Peter Freyther1-0/+1
2010-01-13[nat] Unregister the fd before leaving..Holger Hans Peter Freyther1-0/+1
2010-01-13[nat] First code to simply forward data from the MSC to the real BSCHolger Hans Peter Freyther1-0/+97
First code to simply forward the data, no filtering or patching is in place. This will need to happen soon.
2010-01-13[ipaccess] Create a method to send the ID ACK messagesHolger Hans Peter Freyther2-1/+8
2010-01-12[nat] Turn off compiler warning...Holger Hans Peter Freyther1-0/+1
2010-01-12[nat] Security will become important at some point...Holger Hans Peter Freyther1-0/+1
2010-01-12[nat] Start to listen for the incoming BTSHolger Hans Peter Freyther1-1/+74
2010-01-12[nat] Connect to the MSC like the real BSCHolger Hans Peter Freyther1-0/+107
Use the connect_to_msc method to connect to the MSC and create structure to handle and forward messages to the real BSC.
2010-01-12[bsc_msc] Move the connect to the MSC routine into a new fileHolger Hans Peter Freyther5-49/+109
2010-01-11[bsc-nat] Start with a simple NAT/MUX for a BSCHolger Hans Peter Freyther2-1/+119
Harald actually pointed out that this feature is just NAT. We want to connect n-real BSCs to one BSC Mux. We will talk the ip.access protocol and SCCP over of this link. The mux will drop certain GSM messages (like the reset), it will replace source local reference (NAT functionality) and it will handle some GSM08.08 specially. Get the thing started...
2010-01-08[on-waves] Use a default rtp_base_port, write it out in the configHolger Hans Peter Freyther3-1/+3
Currently "write memory" will not store the rtp_base_port of the network. Fix that by writing it out in write_net. Also set it to 4000 by default in the MGCP and in the BSC.
2010-01-07Tag on-waves 0.2 releaseon-waves/0.2Holger Hans Peter Freyther1-1/+1
2010-01-07[bssap] Return u_int16_t from the get_*_code methodsHolger Hans Peter Freyther1-4/+4
The LAI generation wants to have 16bit unsigned, just keep them like this already. This means the int32_t will be truncated inside the get_*_code methods which is better than doing it somewhere else.
2010-01-07[bssap] More brown paper... Make variables really signedHolger Hans Peter Freyther1-2/+2
-1 is assigned in case the variables are not set. This means it must be a signed type (as the comment says), now really use a signed type.
2010-01-07[bssap] Fix brown paper bag... Keep the air id ...*sigh*Holger Hans Peter Freyther1-2/+2
We want to use the real number on the Um... Using the core network code is totally wrong in this scope...
2010-01-07[bssap] Allow to use a different country code tooHolger Hans Peter Freyther4-16/+42
* Be able to have a country code in the air but use a different country code when talking to the core network. * Now both country and network code can be different on air and on the MSC communication.
2010-01-06[rsl] Partial revert of the GSM speech mode for the nanoBTSHolger Hans Peter Freyther1-23/+3
This is partially reverting 0603c9d9e58b5d29105361a89ab8cb295da29366, it is true that the ip.access Wireshark dissectors differentiate TCH/H from TCH/F but in my test I'm unable to send RTP on to the BTS. It might be that the RTP payload provided in the MDCX is not the one it will accept with the 0x05 mode. More work needs to be done to understand this, that is the reason it is comitted to the on-waves's branch instead of master.
2010-01-05[bsc_msc_ip] Turn the MNC hack into a config optionHolger Hans Peter Freyther4-6/+37
* Make it possible to have a different MNC in the RSL traffic than in the core network. * Introduce the "core network code NUMBER" variable. If it is set this network code will be used in traffic with the MSC. * Use the core_network_code number when sending a packet to the MSC * Regenerate the LAI (this is where I could have a bug) when sending packets to the BTS. * Add size checks. This is not tested, I might got something wrong.
2010-01-05[bsc_mgcp] Set the right remote rtp and rtcp portHolger Hans Peter Freyther1-0/+2
* It is the same as local endpoint port
2010-01-05[bsc_mgcp] Fix writing of the config file...Holger Hans Peter Freyther1-0/+2
* Add the new forward audio option
2010-01-05[bsc_mgcp] Print a message which mode is configuredHolger Hans Peter Freyther1-0/+4
2010-01-05[bsc_mgcp] Add a new forward only mode to the bsc_mgcpHolger Hans Peter Freyther1-25/+61
With forward IP in the config and early bind on we will simply forward RTP data on the endpoints from BTS to the forward IP address. This is implemented by disabling MGCP functionality when a forward IP address was specified, setting the forward IP in the endp->remote and assigning a ci != CI_UNUSED. Early bind will make sure the sockets are created, the BSC FD's are registered and then the normal dispatch code will do the forwarding.
2010-01-05[bssap] Set the right GSM08.08 speech version indicatorHolger Hans Peter Freyther1-6/+13
* For half rate we also need to set the 3rd bit to one * See GSM08.08 § and then §