Commit Graph

47 Commits

Author SHA1 Message Date
Andreas Eversberg 4930da8e0c C-Netz: Add capability of non-standard OgK channel(s) 2022-06-19 06:51:28 +02:00
Andreas Eversberg 423bc42429 Refactoring validity check and prefix processing of dialed number
Command line help shows how many digits and what prefixes can be dialed.

Giving a station ID via command line will be checked for being valid.

The number to call the mobile statione will be checked for being valid.

Prefixes that are defined for a nework will be removed from station ID
automatically.

Multiple station ID lengths are supported:
 * C-Netz: 7 or 8 digits, depending on area code length
 * A-Netz: 5 or 7 digits; number is truncated to last 5 digits.
 * IMTS/MTS: 5 or 7 digits, depending on phone's selector switch.
2021-11-07 20:00:42 +01:00
Andreas Eversberg 6fa74a1296 Refactor global variables for signal processing
These are:
	device, sample rate, buffer, latency
Called now:
	dsp_device, dsp_samplerate, dsp_buffer, dsp_latency
Call audio device:
	call_device, call_samplerate, call_buffer
2021-10-24 06:25:10 +02:00
Martin Hauke a07764f0d9 Fixed typos in cli output and source code comments 2021-01-03 09:57:03 +01:00
Andreas Eversberg ed72e29dbb Add tx-gain option 2020-10-29 07:39:27 +01:00
Andreas Eversberg 7189984bbb C-Netz: At correct timeslot switch channel mode
Without this, the first BQ(K) message came to early, so that BSA 51
released when receiving ZFZ(K) one frame too early.
2020-10-29 07:35:50 +01:00
Andreas Eversberg ddce867821 Fixed compiler error for old GCC 2020-01-12 11:17:58 +01:00
Andreas Eversberg c2f14834e5 Rename dbm0 (level) to speech (level)
In mobile communications we use speech level instead of milliwatts.
The deviation (FM) is always based on speech level, not on 1 milliwatt.
2019-12-08 17:24:36 +01:00
Andreas Eversberg 360729d270 C-Netz: Added list of base station names and IDs
Automatic polarity detection is now done by using the polarity of last
transmitted message. We cannot use two base station IDs anymore, to
detect the polarity. Now we deal only with the defined base station ID.
2019-11-29 15:58:32 +01:00
Andreas Eversberg d6579c1244 Allow giving alphanumeric channels (Prepare for IMTS) 2019-08-26 21:10:20 +02:00
Andreas Eversberg 13245c56f6 C-Netz: Add authentication support (process only)
No real authentication, since the algorithm and the keys inside the cards
are not known. A challenge can be specified and optionally the response
can be verified.
2019-06-30 14:51:01 +02:00
Andreas Eversberg 1321f66456 C-Netz: Add option to control voice deviation 2019-01-02 15:58:34 +01:00
Andreas Eversberg 40aec4f14c C-Netz: Swtitch speech scrambler only after receiving 3 consecutive frames with different scrambler mode 2018-07-01 09:18:07 +02:00
Andreas Eversberg ab59a26a51 Restructure: Move mobile from common code to 'libmobile' 2017-12-03 08:45:54 +01:00
Andreas Eversberg 9776736cc4 Restructure: Move compandor from common code to 'libcompandor' 2017-11-25 19:25:10 +01:00
Andreas Eversberg 17b34fbae6 Restructure: Move scrambler from C-Netz code to 'libscrambler' 2017-11-14 21:04:58 +01:00
Andreas Eversberg b605da1aff Restructure: Move timer from common code to 'libtimer' 2017-11-13 20:00:52 +01:00
Andreas Eversberg dfdad21e3f C-Netz: Work on system informations, metering and call queues
- Make system informations configurable
- Simulate call mertering
- Support for call queues on busy voice channels
2017-09-01 18:42:51 +02:00
Andreas Eversberg 538b4a42ec Add wave file playback to replace TX audio 2017-07-15 07:38:16 +02:00
Andreas Eversberg 57d4d1739e AMPS/C-Netz: Correctly release pending transaction when creating a new one
If transactions is created, look on all channels for pending transaction
with same subscriber.

1. Remove that transaction.

2. Make channel return to IDLE.

3. Release call, if callref exists.
2017-06-10 13:08:22 +02:00
Andreas Eversberg 6adfcf7466 Status display
Alows to show status of current channels and users
2017-06-10 13:08:21 +02:00
Andreas Eversberg 76a3484c5c C-Netz: Make demodulation algorithm (slope or leve) slectable via option
By default (auto), the algorithm is selected, depending on sound card
or SDR usage. For testing and debugging purpose, the algorithm can be
forced.
2017-05-19 19:11:59 +02:00
Andreas Eversberg ef7ff26793 C-Netz: SDR now uses zero-crossing to detect level changes.
This does not work with analog radio, but with SDR it works.
The quality should be better and the process is faster.
2017-05-17 20:06:46 +02:00
Andreas Eversberg 4d10ee7c82 No "sdr" audio device option required anymore (when using SDR) 2017-05-17 20:06:42 +02:00
Andreas Eversberg ca10048e5c Rename filter -> iir_filter (file name and instance name)
This is useful when using fir_filter in the future.
2017-05-15 21:46:32 +02:00
Andreas Eversberg 4de1e0188d C-Netz: Add low pass filter to eliminate high frequency noise
This improves the FSK decoding quite allot, especially with SDR.
2017-02-18 21:02:52 +01:00
Andreas Eversberg 5f1d7bc970 C-Netz: Improve clock speed measurements.
Sound card's clock measurements only requires a few minutes to get sub-ppm
accuracy results.
2017-02-18 21:02:46 +01:00
Andreas Eversberg faa3dfb7d4 C-Netz: Make average to clock measurements for a quicker result 2017-02-18 21:01:19 +01:00
Andreas Eversberg 8cb0187133 C-Netz: Remove the obviously useless noise function for unused timeslots 2017-02-18 21:01:17 +01:00
Andreas Eversberg 7ea3bc188d Move samples of int16_t format to sample_t, that is of type double
This prepares the correction of all levels
2017-02-18 21:01:08 +01:00
Andreas Eversberg 9ff8c3bb25 Rework on audio interface
Sound instance is now called audio instance and uses funcation pointers.
This gives a clean interface to be exchanged with other technologies,
linke SDR.
2017-02-18 21:00:45 +01:00
Andreas Eversberg d54d3ac265 prepare audio handling for multi carrier SDR 2017-01-07 06:28:24 +01:00
Andreas Eversberg e34d74aa23 C-Netz: Simplifying TX signal clock sync between two channels 2016-11-30 18:09:38 +01:00
Andreas Eversberg b1c452cf12 Changed command line options
* All lower case options define common options
* All upper case options define network specific options
2016-11-27 22:06:47 +01:00
Andreas Eversberg 17930af920 C-Netz: callref is moved completely to transaction object 2016-10-02 09:06:04 +02:00
Andreas Eversberg 8d7c7f4425 callref: Move callref from 'sender' to individual implementation of a, b, c-netz
Cellular networks use transaction instances, so callref is now member of
transaction object.
2016-10-02 09:06:03 +02:00
Andreas Eversberg e4079b8ce8 C-Netz: Fix release cause coding 2016-08-03 12:03:54 +02:00
Andreas Eversberg 664f8c7ac0 C-Netz: retry call setup messages up to 3 times 2016-08-01 12:15:12 +02:00
Andreas Eversberg 6a5af9aeac Typos: acknowledgement -> acknowledgment signalling -> signaling 2016-07-24 12:31:08 +02:00
Andreas Eversberg 2ee51022f4 Rename 'compander' to 'compandor' 2016-06-20 19:37:56 +02:00
Andreas Eversberg 051cc81b13 C-Netz: Move transaction routines to seperate file 2016-06-12 16:11:20 +02:00
Andreas Eversberg 46fa72894e C-Netz: Calibration/fix processing of tone levels on TX and RX side
FSK and compander levels are adjusted.

Eliminate offsets between subsequent speech chunks. This is done by
high-pass filter. An offset is not passed to the filter.

Do correct audio processing chain:
 time compress -> compressor -> scrambler / pre-emphasis -> TX
 RX -> de-scrambler / de-emphasis -> expander -> time expand
2016-05-13 09:37:03 +02:00
Andreas Eversberg e2a9c2c6a5 Automatic FSK polarity selection on TX side
This is done by simulating two cells with different polarities.
On first message from mobile station, the cell with the correct
polarity is used, the other is disabled.

On RX side the polarity is not selected, since FSK decoder detects
polarity for every frame.
2016-05-13 09:37:01 +02:00
Andreas Eversberg 57ba648ac4 C-Netz: Add tiny database to track if phones are online
Reject calls, if not online.

Use an interval to check if the phones are still online.
2016-05-08 15:53:00 +02:00
Andreas Eversberg bae12156a2 common code: Add input gain option 2016-05-08 15:49:45 +02:00
Andreas Eversberg 7434e21dc2 Multi transceiver support
This can be multiple transceivers on multiple sound cards.

Two transceivers can be bundled on one sound device as well, using both channels.
2016-05-08 15:48:13 +02:00
Andreas Eversberg 16acdbf59d Implementation of C-Netz (German mobile telephone system) 2016-04-24 15:19:00 +02:00