summaryrefslogtreecommitdiffstats
path: root/src/host/layer23/include/osmocom/bb/mobile
Commit message (Collapse)AuthorAgeFilesLines
* Fix of wong Classmark 2 when doing CM Service Request.Andreas Eversberg2011-08-061-1/+2
| | | | | | Same reason as the commit below... (3b2b3b09a) Thanx again to Dieter for pointing this out.
* layer23: Add mobile support for sending / receiving voice frame through MNCCAndreas.Eversberg2011-07-283-1/+12
| | | | | | | Support GSM FR codec only so far. Written-by: Andreas Eversberg <jolly@eversberg.eu> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* [layer23/mobile] Improvement and fixes of idle mode processAndreas Eversberg2011-07-174-20/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch introduces cell re-relection. When camping on a cell, it scanns neighbour cells. If a 'better' cell is found, the cell is selected. If the cell is in a different location area, a location upating is performed under certain conditions. The 'better' cell depends on various informations that are broadcasted on the BCCH of a neihbour cell and of course the RX level. Most operators don't set these informations, so the 'better' cell depend on a better RX level for the same location area, or a much better RX level (6 dBm) at a different location area. There were many issues at the idle mode process that has been fixed. Expecially when moving, the state machines got stuck, so no more cell search was possible, or no further calls / location updating was possible. In order to see the process of cell selection, enter the VTY interface and enable the network monitor: enable monitor network 1 (where '1' is the instance of the MS) In order to see the current state of the processes, enter: show ms
* settings.h: IMSI is 15 bytes +1 \0 maximumHarald Welte2011-07-161-2/+2
| | | | | | | | If we use a larger field to store the IMSI, we can create overflows when copying the imsi to other structures that are only 16 bytes in size. Detected by Smatch: src/host/layer23/src/mobile/subscriber.c +195 gsm_subscr_testcard(39) error: strcpy() 'set->test_imsi' too large for 'subscr->imsi' (20 vs 16)
* [layer23] Adding Quadband support and GSM 4x0 supportAndreas.Eversberg2011-05-294-4/+52
| | | | | | | | This makes it possible to use GSM 850 and PCS 1900 bands, as used in the US. The support relies on the phone hardware. Each band (900, DCS, 850, PCS, 480 and 450) can be enabled and disabled individually for each setting.
* src: use namespace prefix osmo_timer*Pablo Neira Ayuso2011-05-155-15/+15
| | | | | | | | | | | | | | Summary of changes: s/struct timer_list/struct osmo_timer_list/g s/bsc_add_timer/osmo_timer_add/g s/bsc_schedule_timer/osmo_timer_schedule/g s/bsc_del_timer/osmo_timer_del/g s/bsc_timer_pending/osmo_timer_pending/g s/bsc_nearest_timer/osmo_timers_nearest/g s/bsc_prepare_timers/osmo_timers_prepare/g s/bsc_update_timers/osmo_timers_update/g s/bsc_timer_check/osmo_timers_check/g
* src: use new libosmogsm and include/osmocom/[gsm|core] path to headersPablo Neira Ayuso2011-04-263-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch changes include paths to get osmocom-bb working with the current libosmocore tree. Among all these renames, you can notice several tweaks that I added on purpose, and that require some explanation, they are: * hexdump() in osmocon.c and osmoload.c has been renamed to avoid clashing with hexdump() defined in libosmocore. * gsmmap now depends on libosmogsm. Actually I had to cleanup Makefile.am because I was experiencing weird linking problems, probably due to a bug in the autotools. With the change included in this patch, I got it compiled and linked here correctly. This patch has been tested with the phone Motorola C123 and the following images files: * firmware/board/compal_e88/hello_world.compalram.bin * firmware/board/compal_e88/layer1.compalram.bin Using the osmocon, bcch_scan and mobile tools. Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
* mobile: Store N.ba files in same directory as config fileHarald Welte2011-03-021-0/+2
| | | | This should remove the last dependency to hard-coded system-wide /etc/osmocom
* [layer23] Adding LAC and TMSI (both optional) to test card (rplmn)Andreas.Eversberg2010-11-202-1/+4
|
* [layer23] Cleanup of mobile applicationAndreas.Eversberg2010-11-142-0/+18
| | | | | | | | | | All functions for handling mobile instances and mobile relevant parts are moved to mobile/app_mobile.c, the mobile/main.c and mobile/mncc.c become a simple out-of-the-box mobile application. (making calls) The mobile/main.c can be replaced easily by a different application now. this application may have it's own call control implementation (layer 4). Full configurations via VTY is still possible and required in this case.
* [layer23] Added support for multiple MS instancesAndreas.Eversberg2010-11-133-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | To create another instance: 'ms <name> create' To remove an instance: 'no ms <name>' If no instance exists, 'ms 1' is created automatically on startup. Each instance can be enabled / disabled by using 'shutdown' or 'no shutdown'. Multiple instances may share the same layer2 socket (same phone hardware), but in this case only one instance can be enabled at the same time. This makes it much easier to select different settings without modifying them. A 'shutdown' initiates the IMSI detach procedure before shutdown is completed. A 'shutdown force' will immidiately shutdown. There is no need to restart the software anymore, if fundamental settings are changed. In this case, a 'shutdown' followed by a 'no shutdown' will do the job. If you already have an old osmocom.cfg, you need to "no shutdown" it. Everything else behaves as before.
* layer23/mobile: Add configuration option for automatically answering callsSteve Markgraf2010-10-271-0/+1
| | | Signed-off-by: Steve Markgraf <steve@steve-m.de>
* [layer23] Moving sysinfo.c and gps.c (.h) to liblayer23Andreas.Eversberg2010-10-243-190/+1Star
| | | | This makes sense, since multiple applications use it.
* [layer23] Moving decoding of SYSTEM INFORMATION to sysinfo.cAndreas.Eversberg2010-10-241-0/+29
| | | | This way the decoding can be re-used by other applications.
* [layer23] Fix of GPS statesAndreas.Eversberg2010-10-241-0/+1
|
* [layer23] Completed GPS reading processAndreas.Eversberg2010-10-201-3/+9
| | | | | This includes "double" values of logitude and latitude, as well as time stamp, and if the values are valid or not (GPS fix).
* [layer23] DTMF supportAndreas.Eversberg2010-10-152-6/+18
|
* [layer23] Adding abbreviated dialing to VTYAndreas.Eversberg2010-10-141-0/+11
| | | | | It is possible to store phone numbers with abbreviations now. Dialing these abbreviation makes testing of mobile originated calls much easier too.
* [layer23] Implementation of signal loss criteria as defined in TS 05.08Andreas.Eversberg2010-10-122-0/+4
| | | | | | | | There are two criterions for lossing a signal, idle mode and dedicated mode. A counter counts down when a frame is dropped, and counts up when a valid frame is received on certain channel. The loss criterion is reached, if the counter reaches 0. The values added to / removed from the counter and the limits depend on the process.
* [layer23] Rework of "support"-features, features can be disabled nowAndreas.Eversberg2010-10-033-9/+28
| | | | | | Supported features of hardware (support.c) can be disabled by config. This way the full featured mobile can be downgraded to indicate less features to the network, like disabling speech support or crypto support.
* [layer23] Minimum RX-level is now a configuratio optionAndreas.Eversberg2010-10-011-0/+1
| | | | | The default (if config not yet created/updated), is still taken from settings.c.
* [layer23] Remove obsolete function from header fileAndreas.Eversberg2010-10-011-1/+0Star
|
* [layer23] Alter simulated-delay via VTY on the fly (active channel)Andreas.Eversberg2010-09-271-0/+1
|
* [layer23] Speech codec selection and negotiation with networkAndreas.Eversberg2010-09-262-0/+8
|
* [layer23] Adding application generated measurement reportAndreas.Eversberg2010-09-262-22/+20Star
| | | | | | | | | | | | | The cell provides SYSTEM INFORMATION 5* and 6. These are used to create a list of neighbor cells to monitor. Because there is no neighbor cell monitoring supported by layer1, the list has no valid results yet. Currently the average RX level of received frames are used to generate a new report every second. The report is transmitted to layer1 and used there whenever a measurement report has to be transmitted. The timing advance and the current transmit power (as requested by network), is included with every report.
* [layer23] Fixed and completed SIM's PIN handlingAndreas.Eversberg2010-09-191-1/+2
| | | | | | | | | | | | | | | | Use VTY to handle PIN: enable sim pin 1 xxxx sim change-pin 1 xxxx yyyy sim disable-pin 1 xxxx sim enable-pin 1 xxxx sim unlock-pin 1 uuuuuuuu yyyy 1 = mobile station "1" xxxx = current PIN yyyy = new PIN uuuuuuuu = unlock key (PuK)
* [layer23] SIM client completionAndreas.Eversberg2010-09-181-273/+0Star
| | | | | | | | | | | | | | | The SIM client is now complete. Because it usefull for multiple applications, i moved it to the layer23/src/common directory. The SIM reader works together with mobile process. Fixes were made. Thanx to all for testing, finding bugs, and making it work as it is supposed to do. The current version uses special L1CTL messages to send and receive APDUs. This will change in the future, when BTSAP interface is completed. Please note that this client will not work until the layer1 SIM reader fixes and extensions are committed.
* [layer23] Added XOR and COMP128 encryption to test SIMAndreas.Eversberg2010-09-172-5/+8
| | | | | | | | | | | | | | To define/change a key for the test SIM, use the following sequence: conf t ms 1 test-sim ki comp128 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx end write or use: ki xor xx xx xx xx xx xx xx xx xx xx xx xx
* [layer23] CM service is now accepted when ciphering has startedAndreas.Eversberg2010-09-171-0/+2
| | | | | | Sylvain pointed out that CM SERVICE ACCEPT message is not requred, if ciphering has been completed. In this case, an RR_SYNC_IND is sent to mobility management, and treated there as CM SERVICE ACCEPT.
* [layer23 / layer1] Added interface for changing crypto mode of DSPAndreas.Eversberg2010-09-111-1/+1
| | | | | | | | The layer23 will now set crypto mode and key when CIPHERING MODE COMMAND is received. After crypto mode has been set, CIPHERING MODE COMPLETE is sent. NOTE: Layer1 implements only the interface, there is no functionality to it yet.
* [layer23] SIM client accepts status code 61xx as a positive resultAndreas.Eversberg2010-08-301-0/+1
|
* [layer23] "show cell 1 <arfcn>" gives better overview of cell allocationAndreas.Eversberg2010-08-291-1/+0Star
|
* [layer23] Fixed security issueAndreas.Eversberg2010-08-292-1/+2
| | | | | Authentication must not be performed using SIM client, if different IMSI is used, to protect identity of caller.
* [layer23] Layer 3 now uses SIM client to request and update SIM dataAndreas.Eversberg2010-08-283-12/+33
| | | | | The SIM reader can be selected via VTY, but because it is not yet implemented in layer1, nothing happens when selecting it.
* [layer23] Adding SIM clientAndreas.Eversberg2010-08-281-0/+272
| | | | | | | | | | The SIM client is not the SIM reader. It is used to process higher layer requests. One request may be: "read the IMSI file" or "unlock SIM card, here is the key". It then selects the right file of SIM card and processes the request by exchanging APDUs with the SIM reader. NOTE: Because the reader inside layer 1 is not yet finished, the SIM client will not work and cannot be tested yet.
* [layer23] Radio ressource protocol completed except for handover, meas.Andreas.Eversberg2010-08-211-4/+13
| | | | | | Assignment command is now complete as well as frequency redifinition. The handover process is partly complete. Further functionality depends on layer1 capabilites. The measurement report is also incomplete.
* [layer23] Added (incomplete) ASSIGNMENT COMMAND handlingAndreas.Eversberg2010-08-141-5/+12
| | | | | | | This commit features handling of ASSIGNMENT COMMAND. Currently only channel descriptions "after time" are processed, which is mostly the case. The ASSIGNMENT COMMAND is essential, because public networks assign an SDCCH4/8 before actually assigning a TCH.
* [layer23] Paging response depends on the supported channels: SDCCH, TCH/F, ↵Andreas.Eversberg2010-08-111-0/+5
| | | | and TCH/H
* Added support for NMEA GPS receiverAndreas.Eversberg2010-08-101-0/+33
| | | | | | | This early support does not use the received postion, it just dumps it. Later it can be used to set clock of the phone. Also it can be used to calculate the location of a BTS.
* Added sequence number to L3 messages (see GSM 04.08 Clause 3.1.4.3)Andreas.Eversberg2010-08-101-0/+3
| | | | | | | | | This is required to detect duplicated messages during assignment or handover. Each PDISC uses its own sequence number, but MM+CC+SS share the same. The sequence number is only required in uplink direction. Dieter: Please check, if your tester eats it now. Also try to trace if the sequence number is set correctly.
* [layer23] use gsm48_decode_freq_list() which has been moved into libosmocoreHarald Welte2010-08-041-6/+2Star
|
* [layer23] Correctly release a call, if not yet acknowledged by the networkAndreas.Eversberg2010-08-011-0/+1
|
* layer23: Fix Makefile.am noinst_HEADERS for vty.hSylvain Munaut2010-07-301-1/+1
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* layer23: Split [2/2] -> The header filesSylvain Munaut2010-07-2712-0/+1231
This split the headers and adapt the source. We use osmocom/bb as a prefix because libosomore also uses osmocom and generic names such as misc & common could conflict in the future. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>