aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/gsm_04_08.c
AgeCommit message (Collapse)AuthorFilesLines
2011-03-03re-structure the OpenBSC directory layoutHarald Welte1-3340/+0
The new structure divides the code into a number of libraries for the BSC core functionality, MSC core functionality, Abis transport, TRAU and other bits. This doesn't introduce any functional code change but simply moves around files and alters Makefile.am accordingly. Next step would be to disentangle a lot of the inter-library dependencies and make the individual bits of code more independent.
2011-02-19Fix various compiler warnings all over the codeHarald Welte1-2/+2
2011-01-16mncc: Fix crash when memory allocation is failingHolger Hans Peter Freyther1-2/+2
2011-01-06subscr: Stop stopping paging requests behind the back of subscrHolger Hans Peter Freyther1-9/+30
The transaction layer was stopping paging requests that might or might not have been owned by the transaction. This makes the subscr code get stuck delivering requests. This code is mostly a band aid and just makes sure that we will kick the queue if it is needed.
2011-01-06subscr: Remember if we need to call subscr_put_channel at the end.Holger Hans Peter Freyther1-0/+1
Remember if this channel got opened due a paging response and in that case when we close it down we will call subscr_put_channel that will try to page the subscriber again. This highlights the lack of a good subscriber management in the MSC code.
2011-01-06msc: Attempt to fix a bug with 'stuck' SMS due RF failure on authHolger Hans Peter Freyther1-0/+7
If we have a RF failure between the paging response and the auth success we will not inform the subscriber layer of the failed paging and instead just 'drop' the SMS. In case we have not completed the auth and close the channel we will now send an auth failure.
2011-01-06mncc: Do not print the BTS at all as it might not be presentHolger Hans Peter Freyther1-4/+3
In contrast to the previous believe we may not have a conn here as we are still paging for the sub. Instead of printing the BTS print the lac where we think the subscriber is located.
2011-01-06mncc: bts can be NULL, attempt to find the bts from the transactionHolger Hans Peter Freyther1-1/+1
Follow trans->conn->lchan to the BTS instead of using the BTS that is guranteed to be NULL in the codepath we have entered here. The trans->conn should still be there, and the lchan should be valid as well as we have reordered the clear statements.
2011-01-06mncc: Do not use bts->nr as it might be NULL.Holger Hans Peter Freyther1-2/+3
2011-01-06rtp: Move the RTP Proxy code out of RSL into the BSC/MSC domainHolger Hans Peter Freyther1-0/+81
Instead of creating the sockets in the RSL code we will do this in the CRCX_ACK, MDCX_ACK, DLCX_IND signal handler of gsm_04_08. Introduce a handover signal so we can repatch the RTP sockets in the gsm_04_08 as well.
2011-01-01MNCC: avoid segfault in DEBUGP due to non-existing conn->lchanHarald Welte1-1/+1
2011-01-01MNCC: fix copy+paste mistake in log message and change it to DEBUGHarald Welte1-1/+1
2011-01-01mncc_sock: Fix potential segfault in case MNCC app diesHarald Welte1-1/+3
We create a loop by not setting trans->callref = 0 before calling trans_free(), as the latter would again send a MNCC_REL_IND up the stack. Also: Fix memory leak in case we try to read from mncc_sock but socket is just gone.
2011-01-01GSM 04.08 / MNCC interface: verbuse logging of incoming MNCC primitivesHarald Welte1-5/+22
2011-01-01mncc_sock: Clear all calls if MNCC application (LCR) disconnectsHarald Welte1-0/+12
2011-01-01MNCC: rename mncc_send() to mncc_tx_to_cc()Harald Welte1-1/+1
This name clearly indicates: MNCC api transmits to Call Control, i.e. down from the L4/application into the L3 04.08 code.
2011-01-01MNCC: rename mncc_upq_enqueue() to cc_tx_to_mncc()Harald Welte1-1/+1
The new function name clearly indicates: The Call Control (TS 04.08, msc-side in OpenBSC) wants to transmit something to the MNCC interface.
2011-01-01License change: We are now AGPLv3+ instead of GPLv2+Harald Welte1-6/+5
The reason for this is quite simple: We want to make sure anyone running a customized version of OpenBSC to operate a network will have to release all custom modifiations to the source code.
2010-12-27lchan: Every SS_LCHAN signal now sends a struct lchan_sig_dataHolger Hans Peter Freyther1-2/+8
The SS_LCHAN signals now always include the lchan_sig_data. For the measurement report it will optionally include the measurement report as well. Attempt to update all handlers of this signal as well
2010-12-27auth: Release the security operation after we sent out a messageHolger Hans Peter Freyther1-1/+3
The release might release the lchan we want to send the response on. Reorder the code to first send the message and then give up the security operation which might release the lchan.
2010-12-25paging: Introduce a GSM_PAGING_BUSY event for a special timeoutHolger Hans Peter Freyther1-0/+1
Start counting the attempts of each paging request and call the callback with the PAGING_BUSY type when the paging request timed out but the subscriber was not paged at all. This can only happen with a huge paging backlog. In case the system has so many pending paging
2010-12-24BSC Call Control: Actually implement call statisticsHarald Welte1-0/+7
The existing call realated statistics counters apparently were never used. This introduces a new set of counters, two for the MO and MT case.
2010-12-23Authentication: use ENUM instead of magic numbersHarald Welte1-2/+2
This improves readability of the code...
2010-12-22gsm48: Release the LU procedure only after the TMSI REALL_COMPLHolger Hans Peter Freyther1-2/+6
We send a LU Accept with the TMSI as the MI. According to the spec the phone should store this new TMSI and send a TMSI REALLOCATION COMPLETE to us. We will release the LU then and this should trigger the release procedure.
2010-12-22MNCC: introduce mncc_upq_enqueue() wrapper around msgb_enqueue()Harald Welte1-1/+1
This wrapper will allow us to add queue related code at one single location in the code as opposed to three locations.
2010-12-22gsm48: Use NULL instead of 0 for pointers in C.Holger Hans Peter Freyther1-1/+1
2010-12-21gsm48_tx_release_compl(): Don't use transaction after trans_free()Harald Welte1-1/+4
In commit 39e2eadc99c38876c39700cc2f8fa2a2973c1fdd a bug was introduced that used the 'trans' after trans_free() had already been called. This became visible now when the openbsc+lcr combination was calling an unknown/invalid telephone number in a MO call, resulting in a segfault.
2010-12-01gsm_04_08: Make gsm48_secure_channel available globallySylvain Munaut1-2/+2
Can't declare it in gsm_04_08.h tough ... gsm_cbfn is defined in gsm_data.h and trying to include that in gsm_04_08 just creates a huge mess. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-12-01gsm_04_08: Use subscr_get_channel instead of directly paging_requestSylvain Munaut1-3/+4
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-12-01gsm_04_08: Don't set ciphering manually but call gsm0808_cipher_modeSylvain Munaut1-10/+4
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-11-15bsc_api: Change submit dtap to allow to automatically use the SACHHolger Hans Peter Freyther1-1/+1
For SAPI=3 on a TCH it might be nice to use the SACH to submit the message. The api allows to automatically use the SACH if a message like this is submitted.
2010-11-15bsc_api: Look into the msg and call the right API functionsHolger Hans Peter Freyther1-3/+0
For certain messages we will need to call other GSM0808 functions. To keep the bsc_hack working we will try to send this through the normal messages first and then fallback to dtap if no handler is registered. The gsm_04_08.c code is not forced to handle the IPA activation and channel modify ack anymore. This is done transparently by the BSC API now.
2010-11-15bsc_api: Fix a use after free error in the Clear Request pathHolger Hans Peter Freyther1-2/+0
The implementation of bsc_hack would call subscr_con_free before the BSC API has had the chance to call gsm0808_clear to try to release other channels. Fix that by adding a return value.
2010-09-30gsm_04_80: Require libosmocore for creating USSD messagesHolger Hans Peter Freyther1-0/+1
Use the libosmocore to create USSD messages, increase the minimum version of libosmocore, add header files, remove the code.
2010-09-30gsm0408: Reorder the includes, openbsc first, osmocore secondHolger Hans Peter Freyther1-6/+7
2010-09-18janitor: Move the * to the variable nameHolger Hans Peter Freyther1-1/+1
2010-09-16bsc_api: Do not free the subscriber conn on clear and clear requestHolger Hans Peter Freyther1-0/+2
Do not free the GSM Subscriber Connection when a channel is failing or if a clear is requested, instead just give up _all_ the channels, reset them to NULL and free the remaining channels.
2010-08-12gsm48: Add method to send a separate facility message...Holger Hans Peter Freyther1-1/+19
Send a facility messages with notifySS/CNAP as payload to the phone... the function is not called from anywhere in the tree yet but I use it locally.
2010-07-05msc: Create a dummy operation to keep the channel open for five secondsHolger Hans Peter Freyther1-0/+39
* We should create the transaction for SMS, CC on the CM Service Request but for now we will use a band aid and create a dummy operarion to wait five seconds for the transaction to be opened.
2010-06-30msc: Add includes to silence a compiler warning.Holger Hans Peter Freyther1-0/+1
2010-06-28bsc_msc: Remove use_count from the subscriber connectionHolger Hans Peter Freyther1-16/+8
A channel will be released in case of * Errors via the clear_request callback... * no more transactions and operations are going on. This means that if we do something without a transaction the channel might be closed down right away. The bug fix will be to create a transaction/operation.
2010-06-21bsc_api: Remove the lchan usage from the Paging Response handling.Holger Hans Peter Freyther1-4/+4
2010-06-21silent_call: Use the gsm_subscriber_connection instead of lchan->connHolger Hans Peter Freyther1-2/+2
2010-06-17bsc_api: Set the l3h header from within the dtap methodHolger Hans Peter Freyther1-1/+0
This is fixing USSD which broke when the code was switched to use the BSC API.
2010-06-17bsc_api: Remove the lchan from the USSD code...Holger Hans Peter Freyther1-1/+1
2010-06-17bsc_api: Kill &lchan->conn usage, stop msg->lchan too..Holger Hans Peter Freyther1-49/+37
2010-06-17bsc_api: Move gsm48_rcvmsg into the BSC API and dispatch.Holger Hans Peter Freyther1-3/+3
The next step in the way to the BSC API. We have a clear a new connection was opened signal now... and the MSC could use it...
2010-06-17bsc_api: Make paging/silent call work with the subscriber_connectionHolger Hans Peter Freyther1-4/+4
Do not use the lchan for the paging but operate on the subscriber_connection, change the signals too to not carry the lchan but the subscriber connection... the silent call and vty code still assume there is a lchan inside the subscriber connection.
2010-06-16bsc_api: Pass the subscriber connection to the SMS...Holger Hans Peter Freyther1-1/+1
2010-06-16bsc_api: Use gsm_subscriber_connection in rrlp.cHolger Hans Peter Freyther1-3/+3