aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include/openbsc
AgeCommit message (Collapse)AuthorFilesLines
2018-05-21sms charging: Implement SMS online ECUR charging based on 3GPP TS 32.274Ivan Klyuchnikov2-0/+48
Event Charging with Unit Reservation (ECUR) principle is used for SMS online charging in osmo-nitb. Osmo-nitb generates Reserve Units information which is transferred to OCS. For this purpose, osmo-nitb utilizes the Reserve Units procedure that is specified in TS 32.274 and TS 32.299. The Reserve Units procedure employs the Reserve Units Request and Reserve Units Response messages. Change-Id: I12b681f65cdcdb281da04b49a63ceb140be7e643
2018-05-21sms charging: Add socket for connection to OCS for sms chargingIvan Klyuchnikov1-0/+2
We use implementation of gsup client for this connection, but it makes sense to implement a separate client for these types of connection. Change-Id: I5089c2b68fd8c67dd838290256e677c213416d46
2018-05-21sms charging: Implement Session Id to support charging sessionsIvan Klyuchnikov3-0/+14
Session Id: - identify specific charging session - must be globally and eternally unique - h and l are decimal representations of the high and low 32 bits of a monotonically increasing 64-bit value Change-Id: I986d62c34be849f3911cf2e4c83ead0ac8044571
2017-08-23handover: Implement proper handover procedure handling at any stage of the callIvan Kluchnikov2-0/+3
Enhancements for each stage of handover procedure should be implemented in order to support handover at any stage of the call. For these purposes new in_handover state and ho_queue for call control messages was introduced for gsm_subscriber_connection. Stage 1: HO-Command is sent to MS gsm_subscriber_connection state should be changed to in_handover=1. In this state all transmission of signalling layer messages (except RR messages needed for handover procedure) should be suspended until resuming is indicated. All call control messages for connection received from network side should be buffered in ho_queue. All call control messages for connection received from MS side should be ignored. Channel mode modification procedures should be also suspended. Stage 2: HO-Detect is received from MS Audio path should be switched on network side. Stage 3-1: HO-Complete is received from MS Resumption procedure after successful handover should be performed: - gsm_subscriber_connection state should be changed to normal (in_handover=0). - all buffered call control messages (ho_queue) should be sent to MS on new lchan. - suspended channel mode modification procedures should be performed on new lchan. Stage 3-2: HO-Fail is received from MS Resumption procedure after failed handover should be performed: - gsm_subscriber_connection state should be changed to normal (in_handover=0). - all buffered call control messages (ho_queue) should be sent to MS on old lchan. - suspended channel mode modification procedures should be performed on old lchan. Stage 3-3: T3103 expired: Handover has failed without HO-Complete or HO-Fail Resumption procedure should not be performed in case of T3103 expired: - gsm_subscriber_connection state should be changed to normal (in_handover=0). - all buffered call control messages (ho_queue) should be cleaned without sending them to MS. - suspended channel mode modification procedures should not be performed. Change-Id: Icb9b5c35ef0c894af2ea762e539f1a9216447fb7
2017-08-23transaction: Add new function trans_find_by_lchanIvan Kluchnikov1-0/+1
Function returns transaction for given lchan. In case of active call hold procedure it could be two transactions in a list with links to the same lchan: * transaction for call on hold * transaction for active call. In this case function ignores transaction which was put on hold and returns active call transaction. Change-Id: I41171d4e61abfa5f2b01d6fbf4a0ac98073d97a9
2017-07-11libcommon: Fix log output for bts>0.Alexander Chemeris1-1/+1
Fixes regression probably introduced in c696cc28. For bts>0 logging doesn't show bts number correctly when printing lchan identification string - it will always show it as "bts=0". The reason for this is that the identification string is cached before bts->nr value is set to a proper value. This patch sets bts->nr as part of the first step of the bts structure initialization, before caching happens thus making sure the cached identification string is cached with the correct values. Change-Id: I61c18a7f021fcb1ec00d34a745f4e3ab03416c2d
2017-07-04Implement handover support for mncc bridge modeIvan Kluchnikov1-0/+1
* Introduced mncc message with type MNCC_RTP_MODIFY for forwarding modified rtp info to external application. * Added handler for HANDOVER_DETECT signal, which forwards rtp info (modified during handover process) to external application via mncc.
2017-02-07gsup: Update code after rebase to updated gsup implementationIvan Klyuchnikov3-7/+9
2017-02-07osmo-nitb: Send purge ms to reg-proxy and handle responseIvan Kluchnikov1-0/+1
2017-02-07reg-proxy: Implement purge ms forwarding and handlingIvan Kluchnikov2-1/+4
2017-02-07fixup after rebaseSergey Kostanbaev1-3/+0
2017-02-07sms: Route all sms from/to subscribers with extension length = 5 to local smscIvan Kluchnikov1-0/+2
2017-02-07sup: pass subscriber group parameter to subscr_get_by_extension functionIvan Kluchnikov1-0/+1
Subscriber group parameter should be set for subscriber in subscr_get_by_extension function, because it is used in connection_for_subscr function.
2017-02-07sms: Add functions for forwarding/handling SMS in RP format to/from external ↵Ivan Kluchnikov2-0/+7
application
2017-02-07sms: Add new socket for forwarding/receiving SMS in RP format to/from ↵Ivan Kluchnikov1-0/+1
external application
2017-02-07trans: Add new parameter message reference for SMS and function for finding ↵Ivan Kluchnikov1-0/+5
transaction by this reference
2017-02-07manual merge SS from sup-ussd-on-master-ss-wipSergey.Kostanbaev6-12/+63
2017-02-07msc: Implement 'remote-closed' authentication policyIvan Kluchnikov1-0/+1
This mode is modified version of 'remote' policy. Osmo-nitb uses remote subscription data only if the MS is activated in local HLR, otherwise osmo-nitb rejects subscriber.
2017-02-07reg-proxy: Added configuration parameter for setting registration expiry timeIvan Kluchnikov2-2/+4
2017-02-07ussd: handle UCS-2 codingSergey Kostanbaev1-2/+8
2017-02-07libmsc: use message type as an entry point and handle release complete messageSergey Kostanbaev1-0/+3
2017-02-07libmsc: Create a separate SUP socket for USSD.Alexander Chemeris1-0/+1
2017-02-07libmsc: Fix comment style.Alexander Chemeris1-1/+1
2017-02-07libmsc: Remove sup_init() to make SUP socket initialiaton generic.Alexander Chemeris1-2/+3
2017-02-07libmsc: Rename sup_client to hlr_sup_client in preparation for multiple SUP ↵Alexander Chemeris1-1/+1
clients.
2017-02-07USSD MAP external interface over SUPSergey Kostanbaev4-2/+14
2017-02-07Revert "ussd: Add band-aid for interrogationSS"Ivan Klyuchnikov1-2/+2
This reverts commit 5085e0bf4c9674fb26754fd16b8e0c58113e1638.
2017-02-07reg-proxy: add application which allows translate SUP to SIP and SIP to SUPIvan Kluchnikov6-0/+157
2017-02-07msc: Implement 'remote' authentication policyIvan Kluchnikov3-1/+11
- All location update requests should be send to the remote HLR and accepted. - Authentication info should be also received from remote HLR. - SUP is used for sending/handling subscription data to/from remote HLR.
2017-02-07sup: Add functions to create/handle SUP messagesIvan Kluchnikov1-0/+16
- Add functions to send location update request and handle responses. - Add functions to query auth info and handle responses.
2017-02-07debug: Add DSUP debug category for subscriber update protocolIvan Kluchnikov1-0/+1
2017-02-07gprs/sgsn: rename sgsn_mm_ctx_alloc() -> sgsn_mm_ctx_alloc_gb()Alexander Couzens1-1/+1
Postfix the ran type to clarify the purpose. Because of the new support of the Iu ran type, there are 2 functions to allocate a mm ctx. For Iu it's sgsn_mm_ctx_alloc_iu(). For gb it should be named in the same way. Change-Id: Ic49009e8c20c12308855e1409c09004698c79b95
2017-02-07gprs/sgsn: rename gprs->mm_state -> gmm_stateAlexander Couzens1-4/+4
GMM is the right term. MM state is already occupied. Change-Id: I9cfdcf921e4ebd14a5e7ce7489ec4ce5d1f5515f
2017-02-03gsm48_tx_mm_auth_req(): support UMTS AUTNNeels Hofmeyr1-1/+2
To be able to do R99 UMTS authentication, we need to send along AUTN bytes in the Authentication Request. Add autn parameter to gsm48_tx_mm_auth_req() and conditionally append the R99 AUTN TLV to the Authentication Request message. Change-Id: I0d644559088706aa06b42b9bfe1f8c21ca6fa4da
2017-02-02paging.h: use '<>' include, not '""'Neels Hofmeyr1-2/+3
Also separate openbsc includes from osmocom/core includes. Change-Id: I4da0cb32476202d06902531d07faed8004f689f9
2017-02-02osmo_bsc_grace.h: use '<>' include, not '""'Neels Hofmeyr1-1/+1
Change-Id: I2f22be93d1a5fd6f229b85305a1d2a2cf6a43ce2
2017-01-27rsl: Fix dropping of LAPDm UA message.Minh-Quang Nguyen1-0/+2
In some cases, when successive mobile originated calls are made, the LAPDm UA message gets lost because the channel is relased to early. Too overcome the problem we do not send release indications immediately. Instead a flag will be set and the message stored and sent on the next TCH-RTS-IND. This commit adds the required flag and the msg-buffer to struct gsm_lchan. See also coresponding change in osmo-bts.git: Change-Id Ie4f70c75f0137b4bd72d579b3a32575bac2fca38 This patch is is a slightly improved/reformatted version of: https://gitlab.com/nrw_noa/osmo-bts/commit/95d1f15ad108c1c1869c1965144acd64c1395d8c Change-Id: I15fc1ef8e9e83f009bde96de9a8e95702cffbce6
2017-01-26Implement VTY configuration to control Early Classmark SendingHarald Welte1-0/+1
The SI3 rest octests contain a flag that indicates if early classmark sending is allowed in this cell or not. So far we always set this to one, now it is configurable using the 'early-classmark-sending' command at the VTY node. Change-Id: Ia0b1cc5ab45673f3da70c59ae8917eba343f9862
2017-01-26remove unused struct members of 'struct sgsn_pdp_ctx'Harald Welte1-5/+0
There were some members that we neither set nor read, so let's shrink the struct size and remove those unused members. Change-Id: I02136e3aa91e58b2afc923c09c8693095497fdd7
2017-01-23Prevent segfault in range encodingMax1-0/+4
* Explicitly check when ARFCN array split is impossible and return gracefully instead of using negative index. * Separate range encoding into generic function and use it for all SI-related things. * Propagate the error into that function and to its callers. * Add separate test-case for the segfault previously triggered by this bug. Change-Id: I3e049ab2d7c1c4d6c791b148f37e10636a8e43e0 Related: RT#7379
2017-01-06Cosmetic fixes around SI generationMax2-4/+3
* add missing spaces after comma and minus * prevent useless recursion calls * mark static functions as such * name and explicitly use enum for ARFCN range Change-Id: If5b717445c8b24668bad0e78fd5bb51f66c4d18e
2016-12-23sndcp: Allow empty SNDCP-XID indicationsPhilipp1-6/+8
In some rare cases the modem might send a xid indication that does not contain anything except the version number field. The sgsn ignors such SNDCP-XID indications by stripping the entire field from the response. We found a modem in the wild that started to act problematic when the empty SNDCP-XID was missing in the response. This patch changes the XID negotiation behaviour in a way that if a modem should send empty SNDCP-XID indications, the reply will also contain an empty SNDCP-XID indication. Apart from that the SNDCP-XID version number is now parsed and echoed in the response. This ensures that we always reply with the version number that the modem expects. (The version was 0 in all cases we observed so far) Change-Id: I097a770cb4907418f53e620a051ebb8cd110c5f2 Related: OS#1794
2016-12-21Improve GPRS loggingMax1-1/+3
* log xid type as string instead of int * log packet encryption status, algorithm and IOV-UI in debug mode * print encryption parameters when dumping llme via vty * log key propagation from MM to LLC Related: OS#1794 Change-Id: I30c38fdeb0b88bb39bdb9928851300bc79e6aec6
2016-12-13rename oap.h to oap_client.hNeels Hofmeyr4-3/+3
Related: OS#1592 Change-Id: I05bd65ff81b0f70f68217b2e0a9466e160bdbdec
2016-12-13oap: rename public API from oap_ to oap_client_Neels Hofmeyr3-17/+21
Mainly to differentiate the OAP messaging API (osmo_oap_ in libosmocore) from the OAP client. This is in preparation for moving the oap client to libcommon, which is in turn preparation for libvlr. Add the osmo_ prefix, as all public Osmocom API should have. We also have OAP messages code in libosmocore, so clarify by naming this osmo_oap_client, and by also renaming the oap_test to oap_client_test. This reshuffling will allow an easy move of OAP to libosmocore if we should want to do that. A number of patches will follow up on this. Related: OS#1592 Change-Id: Id447d2bebc026a375567654adafa5f82439ea7e1
2016-12-13move OAP messages implementations to libosmocoreHarald Welte2-71/+0
This corresponds to change-id If5099e60681a215e798b6675f21813f26769c253 in libosmocore, which is now required to build openbsc. Related: OS#1592 Change-Id: I2f06aaa6eb54eafa860cfed8e72e41d82ff1c4cf
2016-12-13rename gprs_gsup_client.h to gsup_client.hNeels Hofmeyr2-1/+1
This is in preparation for moving gsup to libcommon, which is in turn preparation for libvlr. Related: OS#1592 Change-Id: I9c95d00f1a9420887a44c938b1d0ee3e20586f4c
2016-12-13gprs_gsup_client*: remove the gprs_ prefixNeels Hofmeyr2-21/+22
Make sure everything is named gsup_client_ / GSUP_CLIENT_. Rename static gsup_client_send() to client_send() to avoid clash with public gprs_gsup_client_send() being renamed to gsup_client_send(). This is in preparation for moving gsup to libcommon, which is in turn preparation for libvlr. libvlr and osmo-sgsn will use the same GSUP client code. A number of patches will follow up on this, also for the the OAP client. Related: OS#1592 Change-Id: I57433973b1c4f6cc1e12e7b1c96b5f719f418b51
2016-12-13Revert "Support Deactivate PDP Context Request from network"Neels Hofmeyr1-2/+0
This reverts commit 1611df5226199da2bf2fba3d22d93cc1a6c6c777. This is due to a segfault introduced to the asan build only. See: http://lists.osmocom.org/pipermail/openbsc/2016-December/009966.html Subject: new sanitizer breakage: SIGSEGV in sgsn_create_pdp_ctx() Date: Tue Dec 13 12:08:32 UTC 2016 Change-Id: Ic926c0e6778947b516994822e3a21d4fde25bb02
2016-12-12Support Deactivate PDP Context Request from networkPravin Kumarvel1-0/+2
Enable Deactivate PDP context based on the IMSI of the subscriber. When there are PDP contexts present for a MM context, PDP context will be deactivated along with GMM Detach(MM context deletion). If there are no PDP present, MM context will be deleted to avoid further PDP context request from the MS. Test cases is added to check this functionality. Change-Id: Ia0a41aa2218ec2fda4ea17a37c8cc55cba63dd13