Commit Graph

699 Commits

Author SHA1 Message Date
Andreas Eversberg 253dfcc8bb C-Netz: Fix station list and selection 2022-06-19 06:51:40 +02:00
Andreas Eversberg 7cd3f85294 C-Netz: Show debugging for IDLE (LR and LMR) frames
Suppress repeated IDLE frame
2022-06-19 06:51:38 +02:00
Andreas Eversberg ec286f3d94 C-Netz: Add options to change 'Meldeaufruf' timer and counter. 2022-06-19 06:51:35 +02:00
Andreas Eversberg cb9c85adb5 C-Netz: Add capability of special tunnel base station (bahn-bs)
Totally useless, if you don't have a train phone - don't you?
2022-06-19 06:51:33 +02:00
Andreas Eversberg 26f4b3f711 C-Netz: Cleanup OgK slot allocation and polarity detection
Now you can select between 1 and 8 slots per frame.
2022-06-19 06:51:30 +02:00
Andreas Eversberg 4930da8e0c C-Netz: Add capability of non-standard OgK channel(s) 2022-06-19 06:51:28 +02:00
Andreas Eversberg 4758f16324 Implementation of DCF77 transmitter and receiver 2022-06-18 21:26:02 +02:00
Andreas Eversberg 8c382431b5 sdr: RF level is only provided when requested and available 2022-06-18 21:25:59 +02:00
Andreas Eversberg 1708d24d73 Alsa will indivate RF level with 0 dB 2022-06-18 21:25:58 +02:00
Andreas Eversberg df2b017472 debug: Show debug category together with debug level 2022-06-18 21:25:57 +02:00
Andreas Eversberg 98ed54124a Fixed glitch in sound buffer space calculation
Sometimes the sound buffer (ALSA) returns a few more samples than we
sent to it. In this case we return 0, which means that no data has
to be sent.
2022-06-10 20:22:10 +02:00
Andreas Eversberg ba4c095d09 Added UK0 and PH socket to libdebug 2022-05-29 17:07:28 +02:00
Andreas Eversberg fd81881922 ALSA: Add environment variable to delay input
This helps to avoid corrupted date in rx buffer.

Sorry: No more info, because I really don't know why this happens.
2022-05-29 17:06:23 +02:00
Andreas Eversberg fd5ac46b86 B-Netz: Added more base stations, improved display of station list 2022-02-18 21:11:55 +01:00
Andreas Eversberg f613bfcc37 Added locking functions to libdebug, to avoid printf race conditions 2021-12-30 23:34:45 +01:00
Andreas Eversberg 2ddf33837e Osmo-CC: Correctly bind to local IP address, rather than any IP 2021-12-30 23:34:42 +01:00
Andreas Eversberg e4c2e514d1 Osmo-CC: Fixed RTP port selection option 2021-12-30 23:34:37 +01:00
Andreas Eversberg 4810ff659f Osmo-CC: Fixed originator address info in SDP 2021-12-30 23:34:25 +01:00
Andreas Eversberg 3dcb7b34df Implementation of selective call for classic German 'Sirenensteuerung' 2021-12-12 10:53:27 +01:00
Andreas Eversberg 1bd471a703 When a transmitter is off, send absolutely nothing
This is done by shifting away the transmitter from center (DC) freqency.
Useless code was removed, since there is nothing to be transmitted.
2021-12-12 10:53:27 +01:00
Andreas Eversberg b8352af84d SoapySDR: Minor debug output improvement 2021-12-12 10:53:26 +01:00
Andreas Eversberg 2d23c841a6 Cleanup SDR usage when no channel, but full spectrum is used.
Radio and TV uses full spectrum, so they set channels to 0, this will
define a center frequency only. The spectrum is then processed by the
applications and not by libsdr.

The sample rate must be a factor of 1e9, so that time stamps work
and signal has no gaps/glitchs.
2021-12-12 10:53:26 +01:00
Andreas Eversberg bcdf61ffa5 Eurosignal: Minor cleanup and fixes 2021-12-12 10:53:26 +01:00
Andreas Eversberg c2a01fb7dd POCSAG: Fixed handling of loopback and scanning feature 2021-12-12 10:53:26 +01:00
Andreas Eversberg dde4113e61 Improvement of Goertzel filter. Using Hamming window now. Add test routine. 2021-12-08 17:24:04 +01:00
Andreas Eversberg d1f6a0f6ce radio: Fixed crash cause by not selecting any RX sink 2021-11-20 10:05:32 +01: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 7fa5f85731 POCSAG 2021-11-07 20:00:43 +01:00
Andreas Eversberg 869625cfcd SoapySDR: Fixed API change from version 0.8.0
The last API check was wrong. 0.7.2 is still old api, but 0.8.0 is new.
2021-11-07 20:00:42 +01:00
Andreas Eversberg c0aab6d60e AMPS: Fixed minor compiler warning 2021-11-07 20:00:42 +01:00
Andreas Eversberg 4e3b7952d1 C-Netz: Improve database dump (press 'i') 2021-11-07 20:00:42 +01:00
Andreas Eversberg 46b00e21f0 SIM sniffer: Minor output fix 2021-11-07 20:00:42 +01:00
Andreas Eversberg 0ebd53ac69 C-Netz: Minor fixes to pulse shaping code 2021-11-07 20:00:42 +01:00
Andreas Eversberg 3e5326f891 Eurosignal: Removed useless channel check 2021-11-07 20:00:42 +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 465445aac5 Add Magnetic card emulation for C-Netz
Emulation can be done with a coil connected to sound card.

Alternatively an Attiny85 can be used to control a coil.
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 de685b3cb6 Minor changes at timer.c: Improved precision 2021-10-24 06:25:11 +02:00
Andreas Eversberg 8a1c5a1a5b SoapySDR uses time stamps to prevent gaps/overflows in transmit stream
A common option for both UHD and SoapySDR allows to turn off time stamps.
2021-09-24 17:20:27 +02:00
Andreas Eversberg 35ed2d5138 Added locking to debug output, to prevent race condition between threads 2021-09-24 17:20:27 +02:00
Andreas Eversberg 1b16029ac6 B-Netz: Improved detection of tone/frame
- Be less tollerant to levels when detcting tones.
- Squelch applies to tone detector also
2021-09-17 16:17:05 +02:00
Andreas Eversberg 4974e39999 Osmo-CC: Conversion function between values and their names
Allows to convert integer values into their names and vice versa.
2021-09-17 16:17:05 +02:00
Andreas Eversberg 29ec9b67d4 FUVST: Minor output improvements 2021-09-17 16:16:28 +02:00
Andreas Eversberg 3293dfb500 C-Netz: Fix calls to 8-digits subscriber numbers 2021-09-17 16:16:20 +02:00
Andreas Eversberg 3fce0403fd C-Netz: Updated base station list 2021-09-17 16:16:10 +02:00
Andreas Eversberg 17908076a9 Optionally output date with each debug line 2021-09-17 16:15:32 +02:00
Andreas Eversberg 1dff336ea2 Add message tracing to Osmo-CC 2021-09-17 16:12:22 +02:00
Andreas Eversberg 6aa8a237db SoapySDR: Fixed API change from version 0.7.1 2021-06-23 16:06:36 +02:00
Andreas Eversberg 24e39ae268 MPT1327: Correctly assign channel on calls towards radio unit 2021-06-20 19:06:53 +02:00
Andreas Eversberg 8d4d48aa08 Add MPT1327 / Regionet43 (Buendelfunk) network 2021-06-06 11:50:35 +02:00
Andreas Eversberg ef88fea8a0 libosmocc: Add support for individual session config (per endpoint) 2021-04-03 23:00:01 +02:00
Andreas Eversberg 046834ac97 libomsocc: Add function to check if interface is attached 2021-04-03 23:00:01 +02:00
Andreas Eversberg 2d1b5fb437 SIM: Option to write sniffed PDU to file 2021-04-03 23:00:01 +02:00
Andreas Eversberg e671b21812 libosmocc: Don't route on redirecting number 2021-03-28 13:17:54 +02:00
Andreas Eversberg fe6b5cdbcf libosmocc: SDP parser ignores broken codec descriptions
Thenx to Cisco.
2021-03-28 13:06:09 +02:00
Andreas Eversberg 65b7d3f2e7 Make Alsa sound interface indipendent from libmobile 2021-03-28 13:05:58 +02:00
Andreas Eversberg 6ed53c5699 Add new debug class 2021-03-28 13:05:50 +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 68fbf1ae69 Osmo-CC: The 'local' socket peer is also used as default rtp-peer 2021-03-20 11:20:23 +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 ca9d531643 Fix some minor compiling issues 2021-03-20 11:19:29 +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 e470138657 Osmo-CC: Add telephone-event selection to helper 2021-03-07 10:39:05 +01:00
Andreas Eversberg 91979b7ad4 osmo-cc: Improve network type information element 2021-03-07 10:38:58 +01:00
Andreas Eversberg daae95ee05 Fix libdebug to be used with all osmo-cc projects 2021-03-07 10:38:52 +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
Andreas Eversberg 22cb70fb1b Rename the parameter "coherent" to "FFSK" which is the correct meaning. 2021-03-07 10:37:17 +01:00
Martin Hauke a07764f0d9 Fixed typos in cli output and source code comments 2021-01-03 09:57:03 +01:00
Andreas Eversberg 97636aac1e OsmoCC: Limit number of default socket ports to 20 2021-01-03 09:50:36 +01:00
Andreas Eversberg 255c28830a Fix IMTS timings according to new documents found 2020-12-29 11:11:41 +01:00
Andreas Eversberg 14b95ab3e2 datenklo: Only compile if FUSE and ALSA is supported
Minor fix
2020-12-29 11:11:41 +01:00
Andreas Eversberg 2cb2d5f3ac Replaced MNCC by OSMO-CC 2020-12-29 11:11:41 +01:00
Andreas Eversberg d0d14e2acf Add G.711 codec (alaw / ulaw conversion) 2020-12-29 11:11:41 +01:00
Andreas Eversberg ad8a7be345 Add Osmo-CC library to replace MNCC 2020-12-29 11:11:41 +01:00
Andreas Eversberg 59119f380f C-Netz: Implementation of a Funkvermittlungsstelle (FuVSt)
Useful to connect with a Funkfeststation (FuFSt).
2020-12-21 08:38:44 +01:00
Andreas Eversberg b5016d52ba SS7 MTP Layer 2/3 Implementation (partly) 2020-12-21 08:38:44 +01:00
Andreas Eversberg 6a18c924fb V.27ter Modem emulation (partly) 2020-12-21 08:38:44 +01:00
Andreas Eversberg 5070bc70bd Added FIR filter to libfilter 2020-12-21 08:38:44 +01:00
Andreas Eversberg 55a5a4ea2b Initialize jitter buffer delay with half of its size
Also add a function to reset jitter buffer
2020-12-21 08:38:44 +01:00
Andreas Eversberg 118b0260bc C-Netz: Fix scheduling of frames when there is nothing to send 2020-12-21 08:38:44 +01:00
Andreas Eversberg 09f8473c3b Zeitansage: Disable SDR 2020-10-29 08:02:54 +01:00
Andreas Eversberg 3111f8f250 libwave: wave_read() returns the actual samples read 2020-10-29 08:02:44 +01:00
Andreas Eversberg 167b7ea52f AMPS: Suggest to use channel 333 (SID 1 = Chicago) by default
Channel 334 seems to make Problems with my Dynatac.
2020-10-29 08:02:12 +01:00
Andreas Eversberg a662fb822e Options: Add support for quotes and escape sequences 2020-10-29 08:02:00 +01:00
Andreas Eversberg 76c6304ae3 libdebug: Remove dependency on MAX_DISPLAY_WIDTH 2020-10-29 08:01:46 +01:00
Andreas Eversberg f37dfbe4ee DTMF: Correctly handle frequency marging (percent not hertz!) 2020-10-29 08:01:37 +01:00
Andreas Eversberg 51204b55a9 Fix: Support multiple parameters in config file 2020-10-29 08:01:11 +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 2c82b83993 Allow disabling MNCC Console when using a digit length of 0 2020-10-29 07:38:03 +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 2a435abb43 C-Netz SIM: Terminate phone number string at first 0xf 2020-10-29 07:37:11 +01:00
Andreas Eversberg faf7c7c5c2 C-Netz: Display "Bahn MS", "Bahn BS" and "Datenbetrieb" with messages 2020-10-29 07:36:40 +01:00
Andreas Eversberg ff498d10e1 C-Netz: Added option to define time slots of OgK 2020-10-29 07:36:26 +01:00
Andreas Eversberg f468b2dd9f C-Netz: Minor fixes 2020-10-29 07:36:14 +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 a98b05beb0 SIM: several fixes 2020-10-29 07:33:30 +01:00
Andreas Eversberg 0cbabc39b1 Debug: Fix display of debug levels greater 31 2020-10-29 07:33:16 +01:00
Andreas Eversberg 28de2a54ca SIM: Fix output of numbers >32767 when using EBD program mode
A shift of an unsigned char is interpreted as signed char, which causes
all bits above the shift result to become 1, if bit 7 of the char is 1.
2020-10-29 07:32:23 +01:00
Csaba Sipos da54ca68ad Adds country specific settings for Hungary. 2020-10-29 07:17:27 +01:00
Andreas Eversberg 8fea1ef7bf Added SIM card emulator/sniffer for C-Netz 2020-05-24 16:46:39 +02:00
Andreas Eversberg cc49a3c674 Options with multiple parameters are now correctly shown at debug message 2020-05-24 16:46:39 +02:00
Andreas Eversberg e18f7dbc1f Make debug output aliged
Debug output position dependes on the length of the line number.
Now the line number is filled with spaces, so it always has four
digits. Now the following messages in each line are alinged.
2020-05-23 14:25:34 +02:00
Andreas Eversberg 63a2bc8a6b C-Netz: Allow dialing 8-digit numbers (FuVSt > 9) 2020-05-23 14:25:34 +02:00
Andreas Eversberg dd95a49fc9 Added local library for serial port access 2020-05-23 14:25:34 +02: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 fa6a73a2e1 Eurosignal: Allow dialing (paging) of Spare Digits 2020-03-27 17:28:03 +01:00
Andreas Eversberg 89602822e6 C-Netz: Correct check for valid channel numbers 2020-02-18 19:03:03 +01:00
Andreas Eversberg 69ef3b76bc osmotv: Added special cable network channels (Sonderkanaele) 2020-01-31 17:56:32 +01:00
Andreas Eversberg b2089bb529 Implementation of German "Zeitansage", spoken by Elvira Bader 2020-01-18 18:54:28 +01:00
Andreas Eversberg b1ea4e574f Add option to allow early audio towards call interface 2020-01-12 16:46:17 +01:00
Andreas Eversberg 1e899a522d Don't core dump, if measurements are not defined 2020-01-12 11:17:58 +01:00
Andreas Eversberg ddce867821 Fixed compiler error for old GCC 2020-01-12 11:17:58 +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 570b2a5bca C-Netz: Added new list of base station names and IDs
List contains 1991 and 1999 bwase stations
2020-01-04 09:22:02 +01:00
Andreas Eversberg 4cd9cb787e C-Netz: --ms-power defines power level (not P-bits)
Also the level 8 can be selected. Actually level 6 is selected, but
reduced to 8 when making a call.
2020-01-02 09:45:33 +01:00
Andreas Eversberg 5c8919a78b eurosignal: Fixed and simplified notification (beep) on received ID 2019-12-24 15:20:55 +01:00
Andreas Eversberg b1e36be99f MNCC: Add cause name for 'invalid callref' 2019-12-24 15:19:51 +01:00
Andreas Eversberg 5dc05576db osmoradio: Play audio and record wave simultaniously 2019-12-22 08:29:07 +01:00
Andreas Eversberg b38bb16adc osmoradio: Display wave form 2019-12-22 08:13:40 +01:00
Andreas Eversberg 99a4bfc7f0 osmoradio: Fix disabling of emphasis 2019-12-22 06:46:31 +01:00
Andreas Eversberg 90c47658c1 Add support for "Eurosignal", a classic paging service 2019-12-10 20:43:00 +01:00
Andreas Eversberg 4af2dca10d Add power control to AM (power on/off per sample) 2019-12-08 17:26:47 +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 1bc3da9258 Datenklo: Fix display input level and wave form
Also display them, if DTR is low.
2019-12-04 17:25:17 +01:00
Andreas Eversberg 7e25e191af Modem emulator for "Datenklo" with AM7910/AM7911 emulation 2019-11-29 15:58:59 +01:00
Andreas Eversberg db1fee9698 minor code cleanup 2019-11-29 15:58:59 +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 2fde5025af New color for options debugging 2019-11-29 15:58:32 +01:00
Andreas Eversberg 860f91af6f Bugfix: Correct handling of n in strncat() 2019-11-29 15:58:32 +01:00
Andreas Eversberg 830794bae4 FSK demodulator: Also report bits that have duration < 0.5 2019-11-29 15:58:32 +01:00
Andreas Eversberg 445af0c0a2 Add filter switch to FSK modulator 2019-11-29 15:58:32 +01:00
Andreas Eversberg 6dcc8baad4 Split FSK modem code into separate modulator and demodulator 2019-11-29 15:58:32 +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 008bca784b C-Netz: Show if emergency call is made 2019-11-29 15:58:32 +01:00
Andreas Eversberg 195f7481d8 C-Netz: Correctly synchronize time stamp of SpK to OgK
Even if the SpK is not used (yet), it must count time stamp (bit_time) so that
SpK keeps in sync with the OgK, until frames are received from mobile station.
2019-10-26 16:57:01 +02:00
Andreas Eversberg 6dd9999dc8 C-Netz: Fixup for broken Authentication patch
MT calls did not work.
2019-10-26 16:57:01 +02:00
Andreas Eversberg 99bafb6880 MTS/IMTS: (Improved) Mobile Telephone Service
Implementation of the 0G Mobile Phone Network of US and Canada

MTS or IMTS mode is selectable, als well as 5 or 7 digit mode.
2019-08-30 17:17:10 +02:00
Andreas Eversberg 31fca59294 Fixed performance issue with IIR filter
Passing samples with zero value (0.0) causes very slow processing of
IIR filter on my test machine 'nuedel'. I don't know why.
To solve this, I add a very small number to each input sample.
2019-08-26 21:10:39 +02:00
Andreas Eversberg f86adf4bb5 Fixed an unitialized-buffer bug. 2019-08-26 21:10:37 +02:00
Andreas Eversberg b9fe47e85d Fixed use-after-free bug (config file handling) 2019-08-26 21:10:34 +02:00