Commit Graph

38 Commits

Author SHA1 Message Date
Andreas Eversberg d44944cda2 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-29 23:31:57 +01:00
Andreas Eversberg e9b0e9481c Updated libs 2024-03-26 22:06:46 +01:00
Dennis Grunert 4ab31aa755 Fix german tone patterns according to 1TR110-1 Chapter 8
- Busy tone: 480ms on / 480ms off
- Hangup tone: 480ms on / 480ms off
- Old german ringing: 1000ms on / 4000ms off
2024-02-03 21:03:04 +01:00
Dennis Grunert 687e52e69a Fix timing of old german busy tone; add morse-a dialtone
New parameter "morsegerman" for option "local-tones" to generate a morse-a dialtone (pre-1979).
Timing of old german busy tone set to 125ms on / 475ms off.
2024-02-03 20:59:51 +01:00
Dennis Grunert 1481cf8d5a Add no-dtmf option to disable DTMF detection when using rotary (pay)phones
If you have a pure rotary dial payphone and don't want users to bypass coin insertion by using a DTMF tone sender,
the option "no-dtmf" disables DTMF detection.
2024-01-31 21:42:21 +01:00
Dennis Grunert d0fd4ca634 Fix local-tones option not accepting any parameter 2024-01-31 21:09:33 +01:00
Dennis Grunert 5f4e1c2dee Fix subscriber busy indication if line active despite no active call
If the called subscriber has no active call, but stays off-hook (e.g. after a previously disconnected call), busy must be indicated to incoming call attempts.
2024-01-30 00:04:53 +01:00
Dennis Grunert 9e51fac285 Fix line reversal on connect in case of incoming calls
In addition to line reversal supervision signals of outgoing (originating) calls, option lr-on-connect now indicates connect and disconnect of incoming (terminating) calls, too.
Line is only reversed on answer of incoming calls if option loop-disconnect is not enabled for that endpoint.
2024-01-29 23:27:22 +01:00
Dennis Grunert b13641ec32 Ensure metering-lr-timer is stopped before issuing V5 disconnect request 2024-01-29 17:42:33 +01:00
Dennis Grunert 6e09a11895 Fix CLIP-type pulse for Nokia EKSOS
Nokia EKSOS rejects V5 pulsed signal initial-ring with suppression bits 0b11; 0b10 is accepted with PSTN mappings DE and UK.
EN 300 324-1 definition for suppression bits:
- 0b11 = Suppression allowed by pre-defined V5.1 SIGNAL message from LE or pre-defined line signal from TE
- 0b10 = Suppression allowed by pre-defined line signal from TE
2024-01-29 12:46:17 +01:00
Dennis Grunert 16cfce2f23 Change IE_METERING timing information from deciseconds to seconds and milliseconds 2024-01-29 11:48:27 +01:00
Dennis Grunert d825843be5 Helptext improvement; Add support for metering using short line reversal pulses
The option "lr-metering" has been added, which produces line reversal pulses for each charged unit. The timings are currently hard-coded in pstn.c (METERING_LR_REV_MILLISECS=150 and METERING_LR_NORM_MILLISECS=150).
This is used by some payphones in the former GDR instead of sinusoidal pulses, sometimes called "Schwellimpulszaehlung".
A new timer metering_lr_timer is used to revert back to normal polarity after each pulse (generated as V5 steady signal), since Nokia EKSOS with UK PSTN mapping does not seem to accept V5 pulsed-signal reverse-battery.
Option "lr-metering" is currently only supported with "pstn-mapping uk". It can be used together with "metering", if both V5 metering signals (usually sinusoidal 12/16 kHz) and line reversal signals are desired.
Option "lr-on-connect" for line reversal on call connect is incompatible with option "lr-metering".
2024-01-29 02:57:13 +01:00
Andreas Eversberg 22ac5a0317 Correctly handle release/reject from upper layer (cc) 2024-01-27 09:36:49 +01:00
Andreas Eversberg f6207a55d0 Updated libs 2024-01-27 09:29:59 +01:00
Andreas Eversberg 9e272ade15 fixup cc 2024-01-27 09:29:19 +01:00
Andreas Eversberg 9af42630f6 fixup cc 2024-01-24 21:05:10 +01:00
Dennis Grunert 64055360b6 CLIP pulse fix for UK PSTN mapping
Fix: EKSOS rejects initial ring with clip-pulse setting.
Note: Not tested with other PSTN mappings than UK, therefore fix applied only there.
2024-01-18 18:39:45 +01:00
Dennis Grunert b0fc8a49c1 Additional line supervision signals on connect and disconnect; metering pulse generation from CC metering information
If enabled within the endpoint configuration, additional line supervision signals can be generated:
 - option 'lr_on_connect': line reversal on connect, revert to normal polarity on disconnect
 - option 'loop_disconnect': upon remote disconnect, loop current (battery) is interrupted for a short period
If metering details via IE_METERING are received from osmo-cc, metering pulses can be generated based on initial call-connect pulse count and unit time period:
 - option 'metering'
Some line signals require a specific national PSTN dialect (or mapping) to be accepted by the EKSOS AN. A new configuration option allows the specification of the configured AN PSTN mapping:
 - option 'pstn_dialect de' (Germany, default setting)
 - option 'pstn_dialect uk' (United Kingdom, allows line reversal and loop disconnect signals)
2024-01-18 18:39:44 +01:00
Andreas Eversberg 7909556b84 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-01-18 18:39:41 +01:00
Andreas Eversberg e50d865e34 Updated libs 2023-08-19 15:29:55 +02:00
Harald Welte 5bc3943bf1 Fix numerous typos in log messages and comments 2023-08-11 09:40:41 +02:00
Andreas Eversberg 2b47760540 Add option to handle pulses from Swedish rotary phones correctly
Ten pulses represents '0', nine pulses respresent '1', ect...
2023-04-08 11:17:56 +02:00
Andreas Eversberg da2abace4f Send two B-channel frames when first frame is received
The size of both frames match the receive size.
2023-03-05 12:26:58 +01:00
Andreas Eversberg 7daaa65487 Keep hook-flash timer when CC-DISC-REQ or DTMF is received
The timer must be kept, so that call gets released when it times out.
2023-03-05 12:26:57 +01:00
Andreas Eversberg 90913f6570 Add option to handle pulses from Swedish rotary phones correctly
One pulse represents '0', two pulses respresent '1', ect...
2023-02-26 07:54:35 +01:00
Andreas Eversberg 0365aa0edc Fixe issue that notifies 'call on hold' only once 2023-02-24 20:01:43 +01:00
Andreas Eversberg e802b9c67e Fixed hookflash issues
- Ignore hookflash when there is no connected call and no call on hold.
- No timeout when retrieving call.
- Release not connected call that is active.
2023-02-22 19:54:17 +01:00
Andreas Eversberg 39e66c6e31 Register recall signal is now handled correctly
Active call will be put on hold.
During dialing, active call will be retrieved.

This also applies to on-hook pulse, if it is used by AN. (No AN I have
seen uses this pulse.)
2023-02-22 19:36:03 +01:00
Andreas Eversberg f2500899b8 Add option to give numbers or ranges to complete en-block dialing 2023-02-05 10:59:24 +01:00
Andreas Eversberg 887aaddeee Changed from polling to select API 2023-02-05 10:58:42 +01:00
Andreas Eversberg 972c43d74e Added more caller ID alerting signals
If supported by the AN, different alerting signals can be configured.
See command line help for details.
2023-02-05 10:55:44 +01:00
Andreas Eversberg 4027c98c53 Updated libs 2023-02-05 10:49:28 +01:00
Andreas Eversberg 6a812616a4 Fixed handling of call collision
An establishment is received from AN (access network), while
establishment request was sent to AN. The call is answered.
2023-02-05 10:46:22 +01:00
Andreas Eversberg 994c974074 Changed variable names of command line options 2023-02-05 10:35:52 +01:00
Andreas Eversberg a70bff87fc Hookflash can be performed by hang-up or by dialing one pulse
This allows short hookflash.
2023-02-05 10:34:46 +01:00
Andreas Eversberg 9bf05e0bdb Caller ID: Send length of DTAS and mark signal correctly 2023-02-05 10:34:20 +01:00
Andreas Eversberg 8c66ccbd71 Imported libs 2022-12-29 23:32:02 +01:00
Andreas Eversberg 8f920659d5 Initial GIT import 2022-12-29 23:31:55 +01:00