Commit Graph

702 Commits

Author SHA1 Message Date
Andreas Eversberg d23672354f Add option to set MNCC socket name (to run multiple base stations) 2017-06-10 13:08:26 +02:00
Andreas Eversberg 329463bb8c SDR: Add option to give channel number
Using SoapySDR server allows to run different networks on multi channel
SDR devices.
2017-06-10 13:08:25 +02:00
Andreas Eversberg aef4cf0997 Make spectrum display nicer by plotting continuous lines between samples 2017-06-10 13:08:24 +02:00
Andreas Eversberg e0534db15c Make spectrum display a little nicer by using '|' instead of ':' 2017-06-10 13:08:23 +02:00
Andreas Eversberg e653475ff7 NMT: Allow NULL (B'0000') to be used as country selector in traffic area 2017-06-10 13:08:23 +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 bb64c6b3ba AMPS: Add DTX support
When DTX is enabled (-S dtx=2 or 3), a missing SAT tone causes the receiver
to mute audio and insert a low level of comfort noise.
Also the missing SAT tone will not cause the connection to be terminated.
2017-06-10 13:08:19 +02:00
Andreas Eversberg 2c1ab89723 Notify about usage of channels that are next to each other
It is required to have at least one free channel between channels, to
avoid interferences.
This is only a warning, it will not reject channels next to each other.
2017-05-24 14:01:25 +02:00
Andreas Eversberg fc3b3e07be Finetuning LOSS (noise) detection
The algorithm is still bad, but works in most cases
2017-05-24 14:00:08 +02:00
Andreas Eversberg 56024b384b AMPS: Serveral minor fixes 2017-05-23 18:11:10 +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 c086e66b7c minor cleanups 2017-05-17 20:14:37 +02:00
Andreas Eversberg 0557bbbc43 SDR: Checking given parameters with a tollerance of up to 0.001
Rounding errors may cause given parameters to be changed a little.
When comparing the set-values with the get-value, a small amount
of tollerance must be allowed.

Thanx to Syvain, pointing to this bug!
2017-05-17 20:06:47 +02:00
Andreas Eversberg 683078a7a0 SDR: Spectrum display will not scale FFT result
Instead the greatest possible width that will fit into the window will
be used. This width is 2 to the power of N.
2017-05-17 20:06:46 +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 9d87b5bf0f C-Netz: Improved transmission of speech
The speech is now correctly ramped up and down during pause bits.
2017-05-17 20:06:44 +02:00
Andreas Eversberg 12dcc6c40f Minor fixes on AMPS messages
- Flipping polarity is now performed after B/I has been applied
- Correcting sysinfo
2017-05-17 20:06:43 +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 d03443c4f1 SDR: Added SoapySDR's compiler flags to common/Makefile 2017-05-15 21:46:30 +02:00
Andreas Eversberg c04d046210 SDR: Fixed SoapySDR's arguments parsing 2017-05-15 21:46:30 +02:00
Andreas Eversberg fbdb9ece01 SDR: Allow direct IQ TX and RX instead of fm modulating a list of channels
This is performed by reading and writing IQ data to "sample" pointer with
channel number set to 0.
2017-05-15 21:46:29 +02:00
Andreas Eversberg 65694f3b80 SDR: disable TX or RX by setting TX or RX frequency to 0
This way it is possible to use SDR simplex
2017-05-15 21:46:29 +02:00
Andreas Eversberg 6e0e0c9ce8 fixup Rework on audio buffer management 2017-05-15 21:46:28 +02:00
Andreas Eversberg 9dda9e1efc SDR: Add option to set IF bandwidth. If not defined, sampling rate is used. 2017-05-15 21:46:27 +02:00
Andreas Eversberg 1445ca2fac SDR: Add option to send (previously recorded) IQ data instead of TX data 2017-05-15 21:46:26 +02:00
Andreas Eversberg 369bda87a9 C-Netz: Improved decoder debugging
FM decoder debug output is now written to text files for better
debugging of process.
2017-05-15 21:46:25 +02:00
Andreas Eversberg 8e0d7d2513 samplerate.c: Allow transcoding to lower sample rate other than 8000 Hz 2017-03-04 16:52:20 +01:00
Andreas Eversberg 3fc4fc54be main_common: Move init and cleanup function to main function 2017-03-04 07:12:12 +01:00
Andreas Eversberg 4201717f36 Rework on audio buffer management
Use function to get samples to be sent to fill audio buffers to a
level. This replaces the function that only shows how much data
is in the buffer.

This way the function itself can control how much data will be
sent.
2017-03-04 06:35:38 +01:00
Andreas Eversberg 2e1999b1ee Start streaming of sound/SDR just before main loop
This prevents buffer overflow during init/creation processes
2017-02-25 07:09:53 +01:00
Andreas Eversberg 04fd1ddcea Use thread to record and playback wave files without blocking 2017-02-25 06:29:09 +01:00
Andreas Eversberg f689244f98 C-Netz: OgK must be on first channel, so sync works correctly 2017-02-18 21:02:56 +01:00
Andreas Eversberg 438ce08add SoapySDR support
There is no time stamp handling. It is just TX'ing in advance and
synchronous to received RX rate.
2017-02-18 21:02:55 +01:00
Andreas Eversberg 17b6124122 C-Netz: Remove useless -V option 2017-02-18 21:02:54 +01:00
Andreas Eversberg 58ebc15292 Add test to measure performance of FM modulation and filtering 2017-02-18 21:02:53 +01: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 290b365d67 SDR: Move FM modulation algorithms to a seperate file 2017-02-18 21:02:51 +01:00
Andreas Eversberg 4c0f8e7e95 Rework of sample rate conversion by using linear interpolation 2017-02-18 21:02:51 +01:00
Andreas Eversberg 47f74b38ce SDR transmits with full amplitude 2017-02-18 21:02:50 +01:00
Andreas Eversberg 6a3cfd608e Add ascii-art spectrum analyzer for SDR support 2017-02-18 21:02:49 +01:00
Andreas Eversberg 3fb2ade352 C-Netz: Fix release of call process when no dialing was received from phone 2017-02-18 21:02:48 +01:00
Andreas Eversberg 0611f62b52 Show channel number and basic info when channel was created 2017-02-18 21:02:47 +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 54ed5d5f82 AMPS: Fixed setting of signal polarity when using SDR 2017-02-18 21:01:19 +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 5026e161aa Open audio device for call (headset) after everything is prepared
It is not allowed to stall after trigger reading of audio device.
2017-02-18 21:01:18 +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 f5e9a97c31 --rx-gain option works now only with sound card 2017-02-18 21:01:16 +01:00
Andreas Eversberg 2b4f5bb228 Minor fix in help output 2017-02-18 21:01:15 +01:00
Andreas Eversberg f72c53757d B-Netz, NMT: Improved check for minimum required sample rate 2017-02-18 21:01:15 +01:00
Andreas Eversberg 7e45f556ce Correcting all levels and move all remaining integer samples to sample_t
The leves are based on the standards of each mobile network. They
are adjusted to the specified frequency deviation now.
2017-02-18 21:01:13 +01:00
Andreas Eversberg bd7ccc5fa0 Add global DC-Filter and remove all individual DC-Filters 2017-02-18 21:01:12 +01:00
Andreas Eversberg 71e556e7ff Work on emphasis filter: Neutral @ 1000 Hz; Use filter before de-emphasis 2017-02-18 21:01:11 +01:00
Andreas Eversberg b3fd53b165 Test filter uses a dB graph to show the response graphically 2017-02-18 21:01:10 +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 538a959128 Indexing tables by casting index to unsigned integer only 2017-02-18 21:01:06 +01:00
Andreas Eversberg 23a42aeb2c Fixed calculation of elapsed UHD RX time stamp
Now rates above 1000 RX frames per second works. The bug hit when there
were more than one frame received during one function call. This happens
if the frame rate is above the main loop rate of 1000 frames per second.
(default)
2017-02-18 21:01:05 +01:00
Andreas Eversberg ac0da3f76e Filter improvement: LP and HP filters, added test function
The -3 dB level at cut-off frequency is now maintained for multiple
iterations.
2017-02-18 21:01:04 +01:00
Andreas Eversberg 799b96c801 Fixed sleep interval in main loop
The elapsed time is calculated, so that it is removed from the sleep
time. This way the loop interval matches the given target.
2017-02-18 21:01:03 +01:00
Andreas Eversberg a7e47f83d7 Fixed paging channel switching of B-Netz
Now the calling channel is switched correctly.

A global parameter is used to select how paging is performed.
2017-02-18 21:01:03 +01:00
Andreas Eversberg 21c5c3195d Plot IQ data as red points on display, if overdriven (vector length >= 1.0) 2017-02-18 21:01:01 +01:00
Andreas Eversberg c0e30d35d6 Use individual sample rate and setting for call device (headset) 2017-02-18 21:01:00 +01:00
Andreas Eversberg 19b396ab4d Wave recording and playback now uses multi channels 2017-02-18 21:00:59 +01:00
Andreas Eversberg 2d8d7e62c1 Use global init/cleanup function 2017-02-18 21:00:58 +01:00
Andreas Eversberg bc028cd4d3 NMT: Make supervisory signal default, also allow setting per channel. 2017-02-18 21:00:57 +01:00
Andreas Eversberg 272ebeb0ae SDR: Minor fixes 2017-02-18 21:00:56 +01:00
Andreas Eversberg a5fd375237 Fixed typos 2017-02-18 21:00:55 +01:00
Andreas Eversberg bf0abd627d A-Netz: Option to set gain of paging tones 2017-02-18 21:00:54 +01:00
Andreas Eversberg d28467c125 SDR: Display IQ data as a plot using 'q' key 2017-02-18 21:00:53 +01:00
Andreas Eversberg fee4846c3f SDR forces default settings: emphasis and FSK polarity 2017-02-18 21:00:52 +01:00
Andreas Eversberg 8b9277615d Neu structure for the paging process (B-Netz)
Paging tones are not created within sound_alsa.c
The audio API is now responsible to switch to paging channel.
In case of SDR, the sdr.c will switch frequency offset.
2017-02-18 21:00:50 +01:00
Andreas Eversberg 57993e3e48 Support for UHD SDR interface 2017-02-18 21:00:49 +01:00
Andreas Eversberg b30b61282c Generic SDR support 2017-02-18 21:00:48 +01:00
Andreas Eversberg c5cf88ce57 Prepare for SDR: Add bandwidth and deviation info to sender instance 2017-02-18 21:00:47 +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 713b1ab118 Rename functions and structure of biquad lowpass filter 2017-01-07 06:28:23 +01:00
Andreas Eversberg d447be5e26 NMT: Rework on FSK process, no more requirement for special sample rates 2017-01-07 06:28:20 +01:00
Andreas Eversberg 2d0bc92cde C-Netz: Make demodulation buffer size dynamic 2017-01-07 06:26:50 +01:00
Andreas Eversberg a37dfe38ab C-Netz: Fixed double free bug 2017-01-07 06:26:49 +01:00
Andreas Eversberg e1cbb1649a Fixed memory leak in PDEBUG(). Thanx to valgrind finding that! 2017-01-05 08:36:52 +01:00
Andreas Eversberg 286c11cab4 B-Netz: Add translation of emergency numbers 110 and 112 2017-01-02 17:38:54 +01:00
Andreas Eversberg b59ce96889 B-Netz: Minor change on start image 2017-01-02 10:19:07 +01:00
Andreas Eversberg 16e1e842b9 A-Netz: Don't allow emphasis, since it is not used with A-Netz 2017-01-02 10:16:49 +01:00
Andreas Eversberg e724823c5b A-Netz: Reset tone detector when going idle
A pending tone must be detected as soon as the cell is idle. This happens
if the phone picks up during release guard time.
2017-01-02 10:13:43 +01:00
Andreas Eversberg d47853201c common code: Update call console only when it changes or after debug line 2016-12-11 14:21:22 +01:00
Andreas Eversberg 3400f555fe Add common function to give hotkey help
* Key to dial and hangup
* Key to display wave form
2016-12-09 16:42:38 +01:00
Andreas Eversberg 7585f9c22d Add function to change dsp state, more debug with channel info 2016-12-09 16:34:33 +01:00
Andreas Eversberg f111c50478 A-Netz / B-Netz: Add function to change state, debug with channel info
Change state uses a function rather than directly setting state
variable.

Some debug commands now use channel number. (for multi-trx setups)
2016-12-06 17:47:58 +01:00
Andreas Eversberg eed826387a work on docs 2016-12-06 17:46:12 +01:00
Andreas Eversberg 27c6e3d860 C-Netz: Add code documentation... 2016-12-01 17:59:08 +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 0b43b63d1f Fixed command line option descriptions 2016-11-29 10:59:09 +01:00
Andreas Eversberg d52d0242bf Output enhancements
* no more flicker on wave form display while scrolling
* dialing console gets cleared/overwritten correctly
* fixes on stderr output
2016-11-29 07:49:21 +01:00
Andreas Eversberg 938fb74bae B-Netz: Fixes call procedure according to the standard FTZ 171 R 4 2016-11-27 22:06:47 +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 f911717aa4 C-Netz: Minor coding style changes, no changes to process 2016-11-22 19:09:05 +01:00
Andreas Eversberg 0a83b19a99 common code: Display wave form in color
Show 0-line as blue and curve as green and channel number as white.
2016-11-17 19:38:36 +01:00
Andreas Eversberg 481181fa74 A-Netz: Click removal when changing sequenced paging tones
When tone changes to next tone, a transition of 2ms is performed. The last
tone is faded out and the new tone faded in.
2016-11-14 18:36:50 +01:00
Andreas Eversberg 5f5683e374 NMT: Fixed compiler warning 2016-11-13 06:42:18 +01:00
Andreas Eversberg 34954b50de B-Netz: Rename special start digit for coin box phone type 2016-11-13 06:39:14 +01:00
Andreas Eversberg 2a4abc62b2 Move realtime scheduling and signal handling to common code 2016-11-13 06:37:56 +01:00
Andreas Eversberg 4dacec9ceb A-Netz: Use Operator number 010 when calling from mobile station
Also use no caller ID (NULL). The call control code processes the
caller ID and dialed number correctly.
2016-11-13 06:04:54 +01:00
Andreas Eversberg 52b1ac65f4 A-Netz: Keep phase for each paging tone when played in sequence
If paging tones are played in sequence, only one tone out of four tones
is played at once. The phase of all tones are calculated as if each tone
would have been sent permanently.
2016-11-13 06:00:24 +01:00
Andreas Eversberg 6c1b6119ad common code: Display multiple wave forms for each channel used
Use 'w' key to enable/disable RX wave form display.
2016-10-31 19:16:47 +01:00
Andreas Eversberg ea32ab3fa3 B-Netz: Move 'telegramm' generation to seperate telegramm.c/h files 2016-10-31 18:21:26 +01:00
Andreas Eversberg 63f39e105b AMPS: Fixes for multi transceiver support
- Fix channel assignment
- Voice channel sends test tone when idle
- Changed paging timeout
- Minor fix of SCC field in 2 messages
2016-10-30 09:37:14 +01:00
Andreas Eversberg bb92a1f3b0 AMPS: Add option to be more tollerant to sync detection
Also it detects more false syncs, but this is ignored if decoding fails.
2016-10-29 14:38:49 +02:00
Andreas Eversberg 052fe5d1de AMPS: Improved level detection of bit decoder 2016-10-29 14:38:46 +02:00
Andreas Eversberg 3a3c1c258b AMPS: Show number of correct words (CRC) for each FOCC frame 2016-10-28 17:07:38 +02:00
Andreas Eversberg c1a02a5029 common code: Fix double free bug 2016-10-28 16:55:39 +02:00
Andreas Eversberg c6d3a41b81 C-Netz: Increment error counter only when trying to reach the phone 2016-10-23 11:50:02 +02:00
Andreas Eversberg 1ea95de120 C-Netz: Use emphasis with 200 uS time constant 2016-10-23 08:46:05 +02:00
Andreas Eversberg 8864db8269 C-Netz: Adjusting compandor response level 2016-10-23 08:45:24 +02:00
Andreas Eversberg e763d3c6ed C-Netz: Changing keepalive interval to 2 minutes and retry to 1 minute 2016-10-23 07:32:21 +02:00
Andreas Eversberg 33e0bc5f4e C-Netz: Remove global variables, because they don't speed up anything 2016-10-07 09:14:22 +02:00
Andreas Eversberg 27938d111e Added and fixed extra compiler warnings 2016-10-07 08:55:18 +02:00
Andreas Eversberg 8ef966aa21 C-Netz: Reset FSK decoder when switching channel mode
This prevents corrupt frames, as well as clear pending frames that
were received during the old mode, but may not be received during
the new mode.
2016-10-07 08:00:34 +02:00
Andreas Eversberg eac595bd17 C-Netz: Don't access transaction after destroying it 2016-10-07 08:00:10 +02:00
Andreas Eversberg 0cec2f28be Add check if fromat at PDEBUG() is consistent (like printf)
The bugs it found are fixed too.
2016-10-07 07:52:17 +02:00
Andreas Eversberg b205cfcf03 B-Netz: Work on pilot signal generation
The pilot signal to switch to channel 19 can be:
 * a tone
 * a tone that is turned off (notone)
 * positive amplitude
 * negative amplitude
2016-10-03 14:56:15 +02:00
Andreas Eversberg b07509cf2d AMPS: Correcting channel number range 2016-10-02 09:06:06 +02:00
Andreas Eversberg ad3c88e064 AMPS: Callref is moved completely to transaction object 2016-10-02 09:06:04 +02: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 4c1c8eb6fb NMT: Fix on paging retry 2016-08-28 15:29:13 +02:00
Andreas Eversberg 37ca463d98 NMT: Fixed channel coding for channels other than 1..9 2016-08-20 10:21:46 +02:00
Andreas Eversberg 8cecf13b1a NMT: Add transaction handling 2016-08-20 09:57:05 +02:00
Andreas Eversberg 767daf73cd C-Netz: Documentation of the call process in the source code 2016-08-13 15:22:28 +02:00
Andreas Eversberg 7d111546c4 Alsa: Keep 8 samples in input buffer to avoid reading corrupted samples 2016-08-13 15:19:12 +02:00
Andreas Eversberg 541eafe59e Common code: Add call state debugging 2016-08-07 17:23:56 +02:00
Andreas Eversberg 362b1cbb61 Common code: Fix sound card reset 2016-08-07 17:22:24 +02:00
Andreas Eversberg 7f786fc00a C-Netz: Fix missing callref assignment (MT call) 2016-08-07 17:20:06 +02:00
Andreas Eversberg 5182f70671 C-Netz: Documentation of some system informations 2016-08-07 17:17:38 +02:00
Andreas Eversberg e484814c0a C-Netz: Add hack to increase voice deviation for some newer phone 2016-08-03 12:40:56 +02:00
Andreas Eversberg 3a7388ba7f C-Netz: Fixed some debugging output 2016-08-03 12:40:55 +02:00
Andreas Eversberg 2bd7c16baa C-Netz: Add support for extended frequency band. (October 1989) 2016-08-03 12:40:54 +02:00
Andreas Eversberg e69d74ac45 Send test tone towards mobile when no headphone sound device is selected 2016-08-03 12:03:55 +02:00
Andreas Eversberg e4079b8ce8 C-Netz: Fix release cause coding 2016-08-03 12:03:54 +02:00
Andreas Eversberg 53814241b3 AMPS: Note about future callref handling 2016-08-03 12:03:53 +02:00
Andreas Eversberg f15c0dfea3 NMT: Fixing audio level of supervisory signal to match 0.3 KHz deviation 2016-08-03 12:03:52 +02:00
Andreas Eversberg 55229a397c NMT: Fix, stop ringing timer at answer 2016-08-03 12:03:52 +02:00
Andreas Eversberg 28ae3e300f NMT: Fixed multi-transceiver mode and show channel in various logs 2016-08-03 12:03:51 +02:00
Andreas Eversberg 038ce9d1b7 Add info key 'i' to show some states.
Currently showing C-Netz attached subscribers
2016-08-03 12:03:49 +02:00
Andreas Eversberg c9012c7663 C-Netz: Release MT call, if mobile phone does not respond 2016-08-02 09:02:58 +02:00
Andreas Eversberg eb85afa49c C-Netz: Use cosine-square ramp for better signal generation 2016-08-02 07:39:02 +02:00
Andreas Eversberg ce7a98206a C-Netz: Move callref to transaction. Callref on SpK only when its busy.
Only when busy, the channel has callref. This is required for audio
routing. During setup, the callref assigned to transaction and kept
there until release to/from upper layer.
2016-08-01 19:17:13 +02:00
Andreas Eversberg 1a3e536010 AMPS: Fix transaction list corruption 2016-08-01 13:06:03 +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 b84a64f872 C-Netz: Autoselect polarity on all transceivers 2016-08-01 12:15:09 +02:00
Andreas Eversberg 77cd21e7c2 C-Netz: Fix transaction list corruption 2016-08-01 12:15:08 +02:00
Andreas Eversberg 0bc5ee553c NMT: Fix SMS cleanup 2016-07-31 18:52:31 +02:00
Andreas Eversberg cc8631d4f9 NMT: Give warning of missing channel type AFTER creating all channels 2016-07-31 18:48:20 +02:00
Andreas Eversberg f729b32745 C-Netz: Fixed multi-transceiver mode and show channel in various logs 2016-07-31 18:48:19 +02:00
Andreas Eversberg eb8a22e2c2 NMT: Fix SMS deliver output message 2016-07-31 14:49:43 +02:00
Andreas Eversberg 0593f7d066 Fix typos 2016-07-24 12:31:09 +02:00
Andreas Eversberg 6a5af9aeac Typos: acknowledgement -> acknowledgment signalling -> signaling 2016-07-24 12:31:08 +02:00
Andreas Eversberg c273bbc5ff Remove console line before printing debugging and on exit 2016-07-24 12:31:08 +02:00
Andreas Eversberg 123979a0f3 NMT: Minor fix at debug output 2016-07-24 12:31:08 +02:00
Andreas Eversberg 8741833948 NMT: Change 'index' of message to 'mt' (message type) 2016-07-24 12:31:08 +02:00
Andreas Eversberg 5807a49f49 Release active call, when disconnect is received from network
If early disconnect is received, the connecion is kept established, so the
announcement can be heared by mobile subscriber.
2016-07-24 12:31:08 +02:00
Andreas Eversberg 4745b29115 NMT: Caller ID support 2016-07-24 12:31:07 +02:00
Andreas Eversberg ba8bf0e9d5 NMT: Fix autoanswer
If phone does not support autoanswer, the MTX proceeds with regular ringing.
2016-07-24 12:31:07 +02:00
Andreas Eversberg efb50532c6 NMT: Rework on frame (message) types 2016-07-24 12:31:07 +02:00
Andreas Eversberg 8906deb5dd B-Netz: Added description for GFS 19 to reduce transmit power 2016-07-24 12:31:07 +02:00
Andreas Eversberg 5bbbe11666 B-Netz: Rework on dialing start digit: New unknown type added 2016-07-24 12:31:06 +02:00
Andreas Eversberg b3b42e8bc4 Cleanup warnings at autoconfig files 2016-07-24 12:31:06 +02:00
Andreas Eversberg a6bd841247 NMT: Various fixes for SMS support 2016-07-24 12:31:05 +02:00
Andreas Eversberg 3ef9ef88bd B-Netz: Compiler switch to generate a dial sequence (for testing) 2016-07-24 12:30:56 +02:00
Andreas Eversberg 2137db0e01 NMT: Autoanswer for SMS/DMS calls 2016-07-09 15:16:17 +02:00
Andreas Eversberg e7fa08b6df NMT / SMS: Short Message Service support 2016-07-09 15:16:16 +02:00
Andreas Eversberg 64c829909b NMT / DMS: User data facility support (required for SMS) 2016-07-09 11:27:24 +02:00
Andreas Eversberg 62b3712ce5 common code: Check and ignore events without callref set 2016-07-09 11:27:02 +02:00
Andreas Eversberg f39ee2f15a common code: Add support for main loop handler 2016-07-09 11:27:02 +02:00
Andreas Eversberg 26ab26db48 minor fix at MNCC socket 2016-07-09 11:27:02 +02:00
Andreas Eversberg ab9aba1a84 B-Netz: Reply the station ID correctly
It must be replied right after it has been received the first time.
It does not matter if this happens a bit later, even a second later.

Thanx to Hans Wigger for providing recording from his B-Netz tester to
figure this out.
2016-07-06 16:19:01 +02:00
Andreas Eversberg f3fd01ebcd ALSA code: Fixed corrupted sample at the end of a read
The last sample may get corrupted. It seems that this depends on the
card that is used. To fix this, the snd_pcm_avail is checked and
one sample less than available is read using snd_pcm_readi. This
sample remains in RX buffer until next read. Then it is not corrupted.
2016-07-02 08:04:43 +02:00
Andreas Eversberg 2ee51022f4 Rename 'compander' to 'compandor' 2016-06-20 19:37:56 +02:00
Andreas Eversberg 86daa5a64a AMPS: Add option to use the BUSY/IDLE bit on FOCC 2016-06-20 17:16:46 +02:00
Andreas Eversberg 76f6285846 AMPS: Show round trip delay of Filler frames in loopback mode 2016-06-20 17:15:42 +02:00
Andreas Eversberg d851c37eac common code: Release MNCC call 30 seconds after listening to announcement 2016-06-19 17:46:56 +02:00
Andreas Eversberg b45b0c6bac common code: Minor fix in main loop 2016-06-19 17:43:48 +02:00
Andreas Eversberg f87e36fa47 AMPS: Detect difference between paging response and call response
Release call, if paging response was received, after call from fixed
network has already been released.
2016-06-19 17:41:42 +02:00
Andreas Eversberg 673aa74e6c AMPS: Various minor fixes 2016-06-19 11:03:59 +02:00
Andreas Eversberg 4d52f955b3 common code: Add processing interval option to decrese CPU usage 2016-06-18 19:33:08 +02:00
Andreas Eversberg e10898c1e8 C-Netz: Minor cosmetic fixes 2016-06-18 08:05:18 +02:00
Andreas Eversberg d2c4ca4fa9 Implementation of Advanced Mobile Phone Service (AMPS) 2016-06-17 17:03:29 +02:00
Andreas Eversberg 7d5d3da8d3 Add function to display wave form from input/loop
Use 'w' to toggle display.

Move terminal input processing and main loop to main_common.c
2016-06-17 17:03:28 +02:00
Andreas Eversberg 1d20119d85 common code: Call control allows to re-dial after disconnect
No hangup key required before that anymore.
2016-06-12 16:16:37 +02:00
Andreas Eversberg 7cfd11eb17 common code: Add feature to select debug category rather than showing all 2016-06-12 16:14:29 +02:00
Andreas Eversberg 051cc81b13 C-Netz: Move transaction routines to seperate file 2016-06-12 16:11:20 +02:00
Andreas Eversberg 26593ed034 NMT: fix minor bug 2016-06-12 16:11:20 +02:00
Andreas Eversberg 4d22b11855 common code: Add debug #define for capture generated singal
Used for fundamental debugging of encoded signal
2016-06-12 16:11:20 +02:00
Andreas Eversberg c933250685 Add dsp mode change fuction to A and B Netz, fixed NMT 2016-06-12 16:11:20 +02:00
Andreas Eversberg 997f8eda43 B-Netz: Add timer for switching back from calling channel
The timer ensures that the paging sequence is sent out by sound card before
switching back to traffic channel
2016-05-29 17:17:49 +02:00
Andreas Eversberg 1ceb3026dd Fixed link problem with alsa lib
Thanx to Martin for pointing to this problem.
2016-05-16 18:41:21 +02:00
Andreas Eversberg 90dbc0cbd7 C-Netz: Debug fixes 2016-05-15 20:44:07 +02:00
Andreas Eversberg 50136d7e8a NMT: Typo in channel list 2016-05-15 20:43:58 +02:00
Andreas Eversberg e9640c0cd8 C-Netz: Fix TX polarity selection 2016-05-15 20:43:49 +02:00
Andreas Eversberg 9ecb87f3e6 Fixing station ID command line parameter 2016-05-15 20:43:38 +02:00
Andreas Eversberg 7aa2445b47 Move amplitude (level) debugging to debug.c 2016-05-15 20:37:06 +02:00
Andreas Eversberg 60d9a7b496 C-Netz: Advice about requirement of emphasis done by software 2016-05-13 19:23:43 +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 5a9c9c7401 C-Netz: Send 5280 Hz test tone on idle speech channel 2016-05-13 09:37:03 +02:00
Andreas Eversberg bbab972b51 NMT: Fixup paging on other channel 2016-05-13 09:37:03 +02:00
Andreas Eversberg 69ccdb99b5 NMT: Calibration of tone levels on TX and RX side 2016-05-13 09:37:03 +02:00
Andreas Eversberg 27e8b03df5 Fixup typo on jitter code 2016-05-13 09:37:02 +02:00
Andreas Eversberg 42eefe90bf common code: Fixed de-emphasis by adding high pass filter
This high-pass filter filters out DC and frequencies below 300 Hz.
Now de-emphases will not cause low frequencies to saturate audio level
range or cause too high levels on low frequencies.
2016-05-13 09:37:02 +02:00
Andreas Eversberg 3a54f46b81 C-Netz: Fixup debug output at database 2016-05-13 09:37:02 +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 021c34a899 Add geo locations of A-Netz and B-Netz towers. (not exact location) 2016-05-08 16:11:13 +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 1ce67c14e9 C-netz: Tuning scrambler 2016-05-08 15:49:29 +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 de0ce7ba98 C-Netz: Correct clear cause on clearing by mobile station 2016-05-08 15:47:01 +02:00
Andreas Eversberg 8b6b87d8cc C-Netz: Lowest mobile station power by default 2016-05-08 15:46:51 +02:00
Andreas Eversberg 95f44e9840 C-Netz: Fixed typo 2016-05-08 15:46:43 +02:00
Andreas Eversberg 11302272ce C-Netz: Minor fix on clock speed indication 2016-05-08 15:46:34 +02:00
Andreas Eversberg 97c9eee322 Fix display of correct program name 2016-05-08 08:11:35 +02:00
Andreas Eversberg 38692e430b B-Netz: Calibration of tone levels on TX and RX side 2016-05-08 08:11:17 +02:00
Andreas Eversberg 11487eefe8 B-Netz: Minor fixes on signals 2016-05-08 08:11:02 +02:00
Andreas Eversberg aae58d5a68 A-Netz: Calibration of tone levels on TX and RX side 2016-05-06 07:05:52 +02:00
Andreas Eversberg b73894ac49 B-Netz / NMT: minor changes at signal detection 2016-05-06 07:05:40 +02:00
Andreas Eversberg 47dbf094d9 NMT: Changes in parity check 2016-05-06 07:05:30 +02:00
Andreas Eversberg 28e7f1e9d1 common code: Remove DC level before using Goertzel filter
A DC level degrades the quality of the filtered result
2016-05-01 15:15:19 +02:00
Andreas Eversberg 0c99848120 common code: Make preemphasis 0 dB @ 1000 Hz 2016-05-01 15:14:57 +02:00
Andreas Eversberg 16acdbf59d Implementation of C-Netz (German mobile telephone system) 2016-04-24 15:19:00 +02:00
Andreas Eversberg 4b3e3385b5 common code: Fix sample rate conversion 2016-04-24 15:18:59 +02:00
Andreas Eversberg 4356c93afa common: Add pre and de emphasis, if the radio does not support it
Connect to the oscillator of the transmitter - good girl!
You need to enable pre emphasis in this case.

Connect to the discriminator of the receiver - good boy!
You need to enable de emphasis in this case.
2016-04-24 15:14:56 +02:00
Andreas Eversberg 5062628e52 NMT: Calculate quality of sync sequence and drop in case of bad quality
This eliminates chance of findig a sync sequence in noise or speech
2016-04-24 15:14:56 +02:00
Andreas Eversberg c0cd74ac85 NMT: Show levels of received frames 2016-04-24 15:12:21 +02:00
Andreas Eversberg 2a092b8cf7 Fixing compander 2016-04-24 15:10:25 +02:00
Andreas Eversberg 9de121109d common code: Sample rate conversion now supports any rate above 8000 Hz 2016-04-17 16:49:39 +02:00
Andreas Eversberg 05402283df common code: Add function request information, if timer is running 2016-04-17 16:49:08 +02:00
Andreas Eversberg 17a93b501b NMT: Fix hint and list of traffic area configuration 2016-03-27 17:56:04 +02:00
Andreas Eversberg 4d84da31a8 Fixing timer handling
Usage of more than one timer caused a lock-up.
2016-03-27 17:56:04 +02:00
Andreas Eversberg 1146537d84 common code: Add feature to record received audio and replay it
-W <file.wav> writes a wave file of received audio
-R <file.wav> reads a wave file to feed into decoder

This way you can record a phone and later debug without a phone
and radio equipment.
2016-03-27 17:56:04 +02:00
Andreas Eversberg 0aa749d27b WIP: NMT docs 2016-03-26 17:35:20 +01:00
Andreas Eversberg a5db02775e fixup debug class definition: rename DFSK and DAUDIO to DDSP 2016-03-15 19:26:13 +01:00
Andreas Eversberg 57caa536cf Implementation of NMT (Nordic Mobile Telephoe) network 2016-03-13 19:42:19 +01:00
Andreas Eversberg cbfc818cce Add compander to common part 2016-03-13 16:18:42 +01:00
Andreas Eversberg 4ab1cd5026 Add DTMF coder to common part 2016-03-13 13:38:35 +01:00
Andreas Eversberg 3bee5e728a bnetz: Allow calling the phone using '05' prefix 2016-03-13 09:12:43 +01:00
Andreas Eversberg e9234e3926 anetz: Add release timer, so station keeps blocked for a while
This prevents other mobile phone or outgoing call to seize the
base station before the current phone releases the transmitter.
2016-03-13 09:12:26 +01:00
Andreas Eversberg 0dc81fe210 Prepare for NMT: Fixes and improvements at common code 2016-03-13 09:12:23 +01:00
Andreas Eversberg 287b914b56 bnetz: Simplifying 'telegramm' handling 2016-03-13 09:12:19 +01:00
Andreas Eversberg d21be383a6 anetz/bnetz: Move option 'loss detection' from common code to individual code 2016-03-13 09:12:16 +01:00
Andreas Eversberg 9b8e359264 anetz/bnetz: Remove redundant code to enter idle state 2016-03-13 09:12:14 +01:00
Andreas Eversberg 946c9ce10a initial git import 2016-03-13 09:12:11 +01:00