Misc code style fixes as well:
* Use static functions everywhere, no need to pollute the global namespace
* Rework some function names and variables to use lower case
Use the new parameter immediate-forwarding-numbers to configure
immediate forwarding logic that emulates hunt groups
The parameter syntax is:
[<span-name>:]<number>
Multiple elements can be specified separated by commas
If the <span-name> is specified, the span will be checked for
availability, if available, its number will be selected for
forwarding, otherwise next number will be checked
Forwarding is enabled as soon as a channel is answered and its
disabled when the channel is hung up
* Add error handing in mod_freetdm for ftdm trace failures
* Allow freetdm signaling modules to specify a destroy function
* Added conditional forwarding to the freetdm gsm module
Just specify the conditional-forwarding-number gsm parameter in freetdm.conf.xml
* Added new 'gsm call' freetdm command for raw GSM calls which can be
used to enable/disabling network features (e.g call *93) without
having to resort to use a full originate that requires routing the
call somewhere when answered
* Miscelaneous cleanup of piggy coding style left over by one of the
previous authors -_-
If the lead-frames header is set but there is no media ready yet do not
attempt to read media from the channel and continue with command execution
FS-7455 #resolve
The following values can be read from the event:
sync_lost_percent - Error percentage within the analysis window
sync_lost_count - How many times sync has been lost
cng_count - Counter of confort noise packets
err_samples - Number of samples that did not match the sequence
Patched-By: Florian Richter
Check for digits received on sangoma isdn stack to avoid delaying
moving to the ring state if all digits are received at once in
overlap dialing mode
* Added BERT stats channel variables
* Check if the channel is going down when out of sync to avoid flagging it
as out of sync, if the channel is going down it is expected to have some errors
* Calculate sampling error rate over a time window
* Create the following variables to control bert testing behavior:
bert_timeout_ms - Milliseconds to wait for bert sync before timing out
bert_window_ms - Window of time to calculate sampling error rate percentage
bert_max_err - Max percentage of error tolerated before going out of sync
bert_hangup_on_error - Hangup when error occurs (Timeout or going out of sync)
Currently only enabled in the analog e&m module but any
signaling module can easily take advantage of it with a small
modification to the signaling module to set span->sig_release_guard_time_ms
This reverts commit b29a41bb1b.
This commit is no longer needed now that proper infrastructure has been
added to allow signaling modules to generate and detect DTMF
The feature macros should only be used for I/O module features
and not for signaling module features
* Rename option ringback-during-collect to immediate-ringback
* Allow regular ringback tone with immediate-ringback, not just a wav file
* Do not request full frame of data, just packet_len which is what we receive per IO interval
* Ignore user data when playing ringback tone
This is configured through 2 new parameters:
ringback-during-collect=yes|no
ringback-file=<wav file path>
You may not want to use this if your E&M lines are connected to traditional phones, otherwise
you will hear ringback tone while pressing digits. This is mostly useful with old switches that do
not provide ringback tone but the user is already done dialing (perhaps the signaling was converted from
ISDN to E&M and the full number was received in a single SETUP message)
The state FTDM_CHANNEL_STATE_RINGING is not used when there is media available. We have
FTDM_CHANNEL_PROGRESS_MEDIA for that, therefore the pri_acknowledge() call should not set
the info argument to avoid sending an indication of media to the other end, as that may cause
the other end to not generate any ringing tone and at that moment we will not be generating
any ringing tone either and the caller will hear only silence
This bug was cause when answer-supervision is used because now we do not move from DIALING to UP
as soon as the line is ringing, but instead we wait for the CAS bit change
Handle driver events while reading media
ftmod_analog_em:
Initialize read data len to avoid crashing when
the freetdm read function does not read anything