aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/gsm_04_08.c
AgeCommit message (Collapse)AuthorFilesLines
2009-11-20[lchan] Release the channel ones its' usecount drops to zeroHolger Hans Peter Freyther1-3/+2
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-19[lchan] RSL and RR need the multirate config, place it in the lchanHolger Hans Peter Freyther1-1/+1
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[ipa] Change names of RTP methods to follow MGCP namingHolger Hans Peter Freyther1-5/+5
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-17[gsm48] When picking AMR we need to supply the multirate configHolger Hans Peter Freyther1-1/+1
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-06[mncc] Fix possible transaction/subscriber and real life subscriber leakHolger Hans Peter Freyther1-1/+6
In the case a transaction has been already scheduled return 0 was called but the subscriber and transaction would leak. Fix it by calling subscr_put and trans_free. After claiming the channel also remove the reference on the subscr.
2009-10-27[gsm48] Handle the RR CHAN MODIFY ACK in the gsm04_08_utilsHolger Hans Peter Freyther1-5/+1
Move the handling code to the gsm_04_08_utils.c and add a note that the method value needs to be checked.
2009-10-27[gsm48] Move RR CHANNEL MODIFY to gsm_04_08_utils.cHolger Hans Peter Freyther1-42/+3
Be able to send RR CHANNEL MODIFY from the BSC/MSC code as well. Move the method that knows about the IPAccess RTP and issues the "bind" to the utils tool
2009-10-26Add USDD code from Mike HabenHarald Welte1-1/+4
This is the initial checkin of the USSD code from Mike Haben. I didn't put it in the main branch as I think it still needs some cleanup.
2009-10-23[gsm48] Make method name consistent...Holger Hans Peter Freyther1-2/+2
We use rx_rr to indicate that we have received a radio resource message but one method was using rr_rx. Fix that.
2009-10-22[rrlp] Fix compiler warningsHolger Hans Peter Freyther1-1/+1
The apdu is static const u_int8_t. Change the signature to have a const in there to make the compiler happy, include chan_alloc.h for lchan methods.
2009-10-22Fix warnings by removing unused variablesHolger Hans Peter Freyther1-2/+0
2009-10-06[gsm0408] Move encryption message creation to gsm_04_08_utils.cHolger Hans Peter Freyther1-24/+0
Be able to use the cipher mode command message from the MSC code.
2009-10-05[ipaccess] Add nanoBTS 1900 supportMike Haben1-2/+1
Add support for 1900 nanoBTS by using unified bts_type GSM_BTS_TYPE_NANOBTS for 900, 1800 and 1900 versions. Reduce the nanoBTS enum values to one and derive the version from the user supplied band. In the future we might want to do auto band detection. The configuration file needs to be changed to refer to nanobts instead of nanobts900/nanobts1800. Signed-off-by: Mike Haben <michael.haben@btinternet.com> Signed-off-by: Holger Hans Peter Freyther <zecke@selfish.org>
2009-09-28[gsm0408] Move paging handling to gsm_04_08_utils.cHolger Hans Peter Freyther1-31/+3
Add one method to extract the MI which will allow to load the gsm_subscriber depending on the MSC/BSC setup and then use gsm48_handle_paging_resp to finish the paging response handling.
2009-09-28[gsm0408] Move send_siemens_mrpci to gsm_04_08_utils.cHolger Hans Peter Freyther1-16/+0
2009-09-28[tmsi] Make the tmsi a 4 octet numberHolger Hans Peter Freyther1-8/+9
tmsi is four octets long, there is no need to make it a string and then jump through hoops to convert it to a number. Keep the database using it as a string to benefit from the NULL handling of the db. Introduce the reserved tmsi which has all bits set to 1 according to GSM 03.03 §2.4 and start checking for it and make sure the db code will never allocate such a tmsi.
2009-09-27Merge branch 'master' into encryptionHarald Welte1-5/+8
2009-09-27[gsm_04_08] Fix gsm48_send_rr_ciph_mode algorithm IDSylvain Munaut1-1/+1
The algorithm ID used in the GSM 04.08 RR message is (x-1) for A5/x. In RSL it's (x+1) for A5/x so there is a difference of 2. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2009-09-27[gsm_04_08] Fix gsm48_tx_mm_auth_req implementationSylvain Munaut1-3/+5
It was mainly missing the key_seq field, causing the command to just be rejected by the ME. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2009-09-26non-call related SS (USSD) is not unknown, but unimplementedMike Haben1-2/+3
also, if we write 0x in front of a number, it should be hex.
2009-08-30A5 support for RSL and 04.08 (not used yet)Harald Welte1-0/+27
This just adds the 04.08 and RSL bits for A5, but not the logic for performing authentication. The caller would first set lchan->encr and then call gsm48_send_rr_ciph_mode(lchan), which encapsulates the 04.08 CIPHERING MODE COMMAND into a RSL ENCRYPTION COMMAND and sends it to the BTS for execution + forwarding.
2009-08-20[gsm48] Introduce a gsm48_generate_mid_from_imsi methodHolger Hans Peter Freyther1-1/+1
Prefix generate_mid_from_tmsi with a gsm48_, create a new method to binary encode the imsi. Add a unit test for parsing and decoding. The implementation can parse the data it generated and the last octet seems to be filled with the end mark.
2009-08-20[gsm48] Move parsing of the MI from to gsm_04_08_utils.cHolger Hans Peter Freyther1-63/+10
The parsing of the IMSI is needed for the MSC part as well. Move it to the gsm_04_08_utils.c so it can be used.
2009-08-17[bsc] Move the GSM 04.08 helper functions to gsm_04_08_utils.cHolger Hans Peter Freyther1-278/+4
The existing gsm_04_08.c implementation is mixing BSC and MSC behavior. Move some simple parsing and generation functions over to gsm_04_08_utils.c to allow a different MSC to define the policy.
2009-08-17actual code running at end of har2009Harald Welte (local)1-1/+8
2009-08-16store all APDU's received from the MS in the databaseHarald Welte (local)1-1/+1
This helps us to analyze data such as RRLP location information for later analysis.
2009-08-15add support for APPLICATION INFO RR messagesHarald Welte (local)1-0/+42
2009-08-15move talloc context creation out of on_dso / constructorsHarald Welte (local)1-3/+1
the various constructors get called in a non-obvious, linker determined order, which makes certain objects disappear from the talloc report. This change moves the talloc context creation into a new talloc_ctx.c file
2009-08-14respect the link_id, not only the SAPI from SMS codeHarald Welte (local)1-2/+2
SMS related messages are all sent over SAPI=3. But in addition to that, we also need to send it over the correct link identifier, i.e. SACCH or main signalling channel
2009-08-13when in token auth mode, accept phones that are authorizedHarald Welte (local)1-0/+2
2009-08-13Encode the network name int the MM info messages in GSM 7bit alphabet.Daniel Willmann1-1/+34
2009-08-13remove FIRST_CONTACT signal, the subscriber flag is sufficientHarald Welte (local)1-10/+4
2009-08-13replace the command line option -a with the auth-policy config optionJan Luebbe1-10/+8
2009-08-12add functions to send AUTH REQ and REJECTHarald Welte1-0/+28
2009-08-12look up subscriber in memory before loading from DBJan Luebbe1-2/+9
2009-08-12flag new subscriber structs in memory and send a signalJan Luebbe1-1/+8
2009-08-10rename rsl_channel_release to rsl_rf_channel_releaseHarald Welte1-1/+1
and add some more comments to help understand the complex release procedures.
2009-08-10add code to GSM 04.08 to send MRPCI message once we have classmark2Harald Welte1-0/+22
* afert we receive a CM SERVICE REQUEST * after we receive a PAGING RESPONSE
2009-08-10revert commit b400dd8f646a69f7fe0013065fa9b4711f60a45e regarding NECI=0Harald Welte1-6/+6
As it turns out, we start to allocate SDCCH for voice calls. Since we don't yet implement switching from SDCCH to TCH during call setup, this leads to various problems.
2009-08-10We're using NECI=0, but the channel reauest reasons we're seeing from MS's ↵Harald Welte1-6/+6
are wrong So we don't know what's the problem. Using the NECI=1 tables makes us allocate SDCCH for MO SMS, which is good.
2009-08-09ensure we send the LOCATION UPDATE ACCEPT before issuing any signalHarald Welte1-2/+10
2009-08-09move search for existing lchan for subscriber to new functionHarald Welte1-21/+3
There's now a new function called 'lchan_for_subscr()' which can be used to determine if there is any existing lchan for this subscriber.
2009-08-08first 'working' SMS implementationHarald Welte1-1/+2
we now have the full path from the MS into the database (SUBMIT), as well as back from the database to the MS (DELIVER). The database gets correctly updated once a SMS has been successfully delivered. What's still missing is the periodic scan over all undelivered messages, trying to deliver them to the respective MS. So far, you have to manually trigger this on the telnet interface with 'sms send pending 1'
2009-08-01gsm_04_08 no longer needs to iterate over all BTS in LACHarald Welte1-16/+3
this task is performed by the paging.c code already.
2009-07-29Merge branch 'master' into smsHarald Welte1-7/+19
2009-07-29generalize channel activation / channel mode modifyHarald Welte1-0/+1
* we only need one piece of code to calculate rsl_ie_chan_mode from our run-time data structures (gsm_lchan) * add some more channel modes for TCH/H and data * use enum's to make the compiler warn us about unhandled enum values * make sure the caller determines the (signalling,speech,data) mode
2009-07-29postpone IPAC_BIND until we do a LCHAN_MODIFYHarald Welte1-7/+18
only after the LCHAN_MODIFY we know the final mode of the channel, so we have to postpone our IPAC_BIND until then to make sure we set the correct speech codec.
2009-07-28Merge branch 'master' into smsHarald Welte1-22/+110
2009-07-28add RTP proxy mode for ip.accessHarald Welte1-22/+110
Up until now, we only supported direct RTP streams between ip.access BTS. With this commit, the user can specify '-P' to the command line to enable a RTP/RTCP proxy inside OpenBSC. The nanoBTS will then send all their voice data to OpenBSC, which will relay it to the respective destination BTS (which can be the same BTS). The default behaviour remains unchanged. Without '-P' on the command line, RTP/RTCP is exchanged directly.
2009-07-28Merge branch 'master' into smsHarald Welte1-3/+2
Conflicts: openbsc/include/openbsc/transaction.h openbsc/src/gsm_04_11.c openbsc/src/transaction.c