Commit Graph

66 Commits

Author SHA1 Message Date
Andreas Eversberg e1a7791561 Fix playing anouncements and tones with libmobile
This is a fixup of the new audio processing. Without this patch you will
hear only noisy tones.
2024-04-05 22:24:12 +02:00
Andreas Eversberg 6e2fd793ac Increase compiler warnings and fix them 2024-04-05 21:51:41 +02:00
Andreas Eversberg b613123291 Open sound device for capture or playback only, if full duplex is not required 2024-03-30 23:28:13 +01:00
Andreas Eversberg ce58b765f5 A different recording device may be specified for sound card access 2024-03-30 23:28:10 +01:00
Andreas Eversberg a20637825a Audio rework, new jitter buffer
Jitter buffer is now based on packets, not on samples. The frames are
dejittered in received form. After reading from jitter buffer, they are
decoded in correct order. If a frame is missing, it is concealed by
repeating audio.
2024-03-30 23:28:05 +01:00
Andreas Eversberg d30d662307 Avoid large buffer on stack, to prevent stack overflows
This affectes:
 * demodulation in libfsk
 * audio processing in libmobile
2024-03-25 13:00:06 +01:00
Andreas Eversberg 2dcf10b1b1 Add metering information from osmo-cc to B-Netz and C-Netz
Untested!
2024-02-18 16:23:31 +01:00
Andreas Eversberg 60c3e094ff Add "--no-config" option, to ignore existing default config file 2024-02-18 16:23:30 +01:00
Andreas Eversberg c844fcc1f6 If a mobile inscribes, show station ID on the console
If the console's station ID is not set, it will be automatically set
when a call is made from the mobile phone or when it performs
inscription to the network. (Only works for cellular networks with
inscription support.)
2024-02-18 16:23:30 +01:00
Andreas Eversberg 3c2b5286c5 Disable rtprio by default and abort, if given prio is not allowed 2024-02-18 16:23:30 +01:00
Andreas Eversberg 3158c48365 Move from local to external osmo* libraries
src/libdebug -> libosmocore
src/libselect -> libosmocore
src/libtimer -> libosmocore
src/libosmocc -> libosmo-cc
src/libg711 -> libosmo-cc
2024-02-18 16:23:29 +01:00
Andreas Eversberg d1b8ed8250 Add option to disable L16 codec (linear 16 bit PCM)
Yate uses wrong byte order, so the codec fails. Disable it if you have
problems with Yate or other defective peers.
2023-11-15 20:37:40 +01:00
Andreas Eversberg 9f662d309f Add libselect to use select instead of polling all file descriptors 2023-01-21 15:15:52 +01:00
Andreas Eversberg f4abbaf027 Make libtimer to be osmo_* compatible in some places 2023-01-21 15:15:39 +01:00
Andreas Eversberg 2110a0f111 osmo-cc: Add private pointer to codecs 2022-11-24 21:16:43 +01:00
Andreas Eversberg 376cef4fa5 Osmo-CC: Add marker bit support 2022-10-23 16:56:40 +02:00
Andreas Eversberg a756ba8fd9 libsample: Add another function for converting between int16_t and sample_t
Now we have speech level and 1mW (0 dBm) conversion functions
2022-10-23 16:56:32 +02:00
Andreas Eversberg 2b7efedc48 Refactoring jitter buffer
Features are:
 * Packet based buffer
 * Random in, first out
 * Adaptive delay compensation (voice)
 * Fixed delay (data, optionally MODEM/FAX)
 * Interpolation of missing frames
 * Any sample size
2022-10-23 16:56:27 +02:00
Andreas Eversberg 86d4523cc7 Correctly show channel frequencies in spectrum view when swapping SDR links 2021-11-07 20:00:43 +01:00
Andreas Eversberg b0b0046ad3 Fixed minor compiler warning 2021-11-07 20:00:42 +01: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 3a73f31d7e Fixed crash bug in dialing console 2021-11-07 20:00:41 +01:00
Andreas Eversberg 922b4af362 Refactoring ASCCI-Art image printing 2021-11-07 08:55:46 +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
Andreas Eversberg 17908076a9 Optionally output date with each debug line 2021-09-17 16:15:32 +02:00
Andreas Eversberg ef88fea8a0 libosmocc: Add support for individual session config (per endpoint) 2021-04-03 23:00:01 +02:00
Andreas Eversberg 089a012b06 libmobile: Do not send 'proceeding', if call gets answered right after 'setup' 2021-03-20 11:24:57 +01:00
Andreas Eversberg 7670b22118 Using "--limesdr" or "--limesdr-mini" will also set device to "lime"
This is useful, if SoapySDR supports other SDR devices, like sound card. In
this case "--sdr-device-args driver=lime" must be given at command line. Now
this is done automatically with "--limesdr" or "--limesdr-mini".
2021-03-20 11:19:43 +01:00
Andreas Eversberg 3d9481177b Config file path can be changed by command line option "--config <path>" 2021-03-20 11:19:37 +01:00
Andreas Eversberg f82244ed37 Fixed broken --osmocc-cross option
Thaks to Markus for pointing to this bug.
2021-03-07 10:39:13 +01:00
Andreas Eversberg 6650631b4f libmobile: Minor fixes 2021-03-07 10:38:45 +01:00
Andreas Eversberg 8c0a25f3b0 Added special strdup to liboptions, to prevent memory leaks for option strings
If you are doing memory leak debugging you don't want to see any leaks when
stopping the program.
2021-03-07 10:38:38 +01:00
Martin Hauke a07764f0d9 Fixed typos in cli output and source code comments 2021-01-03 09:57:03 +01:00
Andreas Eversberg 2cb2d5f3ac Replaced MNCC by OSMO-CC 2020-12-29 11:11:41 +01:00
Andreas Eversberg 8929b332cb Sound: Recover broken audio connection by closing and reopening the device 2020-10-29 08:00:27 +01:00
Andreas Eversberg ed72e29dbb Add tx-gain option 2020-10-29 07:39:27 +01:00
Andreas Eversberg 49c4793106 Add option (global flag) to disable check of channel numbers at sender.c
This is required for channels that do not belog to actual radio transceivers.
2020-10-29 07:38:28 +01:00
Andreas Eversberg 79e11d54a6 Add option (global flag) to disable use of SDR
This is required for channels that do not belog to actual radio transceivers.
2020-10-29 07:38:19 +01:00
Andreas Eversberg 3764f76efb Ignore pending audio frames when there is no transaction (anymore). 2020-10-29 07:37:32 +01:00
Andreas Eversberg 6b07d8b274 A string is used to define what digits can be dialed via console
By default it is "0123456789". This is used by "eurosignal" to add
special A..E digits.
2020-04-04 16:34:39 +02:00
Andreas Eversberg b1ea4e574f Add option to allow early audio towards call interface 2020-01-12 16:46:17 +01:00
Andreas Eversberg f132059edf Add clock function to call interface
Implementations will have a clock to play tones, if no clock is
available from a transceiver.
2020-01-12 11:17:58 +01:00
Andreas Eversberg 150a77b69d Add support for AM to libmobile and libsdr 2019-12-08 17:26:44 +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 c3da4a77d4 Audio level of patterns were too loud. 2019-12-04 17:26:50 +01:00
Andreas Eversberg 23bb88ef6e Describe if audio device exists, but does not support both directions 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 1eac087935 Output ASCII art image after all init functions (inside main_mobile.c) 2019-06-30 14:51:01 +02:00
Andreas Eversberg 37406db7e3 Minimum frequency must be 8000 Hz 2019-05-30 18:19:06 +02:00
Andreas Eversberg 32025915d5 Make run faster on ARM CPUs using fast math approximation
Use --fast-math to use sine/cosine tables and approximate atan2.
2018-11-10 15:18:28 +01:00