Commit Graph
100 Commits
Author SHA1 Message Date
Moises Silva 8a81c3f59e OPENZAP-238: [freetdm] Fix gsm caller id and dnis information
Also fix small leak caused by the span being destroyed before the gsm loop ran
2015-11-13 02:58:06 -05:00
Moises Silva c8a9c07059 OPENZAP-238: [freetdm] Fix gsm signaling status reporting 2015-11-13 02:57:39 -05:00
Moises Silva c3e40b29be OPENZAP-238: [freetdm] Fix stop sequence to properly shutdown the gsm span using libwat
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
2015-11-13 02:45:24 -05:00
Moises Silva b1de2ccd95 OPENZAP-238: [freetdm] Add new GSM parameter startup-command
The new parameter startup-command for gsm spans allows
executing raw AT commands on span startup
2015-11-13 02:05:53 -05:00
Moises Silva 7b4838035a OPENZAP-238: [freetdm] Enable GSM immediate forwarding logic
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
2015-11-13 02:05:53 -05:00
Moises Silva 54005bfead OPENZAP-238: [freetdm] Confirm release on hangup of raw GSM call 2015-11-13 02:05:53 -05:00
Moises Silva 0267ab566d OPENZAP-238: [freetdm] Fix state transition on hangup after a raw call is placed 2015-11-13 02:05:53 -05:00
Moises Silva 160576f86b OPENZAP-238: [freetdm] Fix gsm forwarding initialization 2015-11-13 02:05:53 -05:00
Moises Silva f5894db211 OPENZAP-238: [freetdm] Several core and gsm improvements
* 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 -_-
2015-11-13 02:05:53 -05:00
Moises Silva ce5c99d45c OPENZAP-240 #resolve [GSM module uses incorrect length when parsing AT responses]
Use the buffer length returned by the driver instead of trying to use strlen()
2015-11-08 22:12:41 -06:00
Moises Silva e8cbfe9631 freetdm: Fix some GSM compilation errors and do a bit of code cleanup 2015-07-03 12:42:34 -04:00
Moises Silva 01a9e443ea freetdm: Declare __FTDM_FUNC__ macro and use it instead of __FUNCTION__ to deal with platform differences
OPENZAP-237 #resolve
2015-07-03 12:42:33 -04:00
Moises Silva 73b35fe7e4 freetdm: Use __func__ instead of __FUNCTION__ to comply with c99 in gcc 5.1
OPENZAP-237 #resolve
2015-06-28 22:50:03 -04:00
Moises Silva e401b1469f freetdm: Fix gsm hangup race 2015-06-24 01:52:08 -04:00
Moises Silva 2d03e1afd0 freetdm: Fix gsm call id management 2015-06-24 00:50:37 -04:00
Moises Silva 3df55b9bb5 Add sip_watched_headers variable to launch events when a SIP message contains a given SIP header
FS-6801 #resolve
2015-06-02 00:47:18 -04:00
Moises Silva b4250c87a5 Fix switch_ivr_parse_event() to not hangup a session when there is no media yet
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
2015-04-20 18:23:57 -04:00
Moises Silva d786490584 Fix timestamps in mod_bert broken by the cpu improvements refactoring 2014-12-18 02:04:05 -05:00
Moises Silva 17574a88e4 Add bert stats to mod_bert::lost_sync event
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
2014-12-15 00:21:03 -05:00
Moises Silva 42acb62120 Improve mod_bert cpu efficiency
* Use memmem() and memcmp() for pattern checks
* Use a static pre-built buffer for the write frame
2014-12-15 00:21:03 -05:00
Moises Silva eb30491688 Merge remote-tracking branch 'moystash/em-suspend-support'
Conflicts:
	libs/freetdm/src/include/private/ftdm_core.h
2014-11-09 03:50:07 -05:00
Moises Silva 6b8d5b2b10 freetdm: Fix release guard timer check 2014-11-09 00:41:59 -08:00
Moises Silva 2f1b12fdc0 OPENZAP-232 #resolve
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
2014-11-09 03:33:43 -05:00
Moises Silva 89e8e14a9f Improvements to mod_bert
* Honor the timer name variable

* Added mod_bert::in_sync event when the stream is in sync
2014-09-09 04:07:13 -04:00
Moises Silva 25c6276fea Added cng counter to the bert test app 2014-09-09 04:07:13 -04:00
Moises Silva 557a4a8580 Treat CNG as a silent frame in mod_bert 2014-09-09 04:07:12 -04:00
Moises Silva 58e47748ca Only use a timer if bert_timer_name is specified, otherwise time based on input 2014-09-09 04:07:12 -04:00
Moises Silva cf2fd15211 Add BERT events for timeout and out of sync in mod_bert 2014-09-09 04:07:12 -04:00
Moises Silva 3248e06b91 Add timer to mod_bert to avoid relying on remote RTP for timing 2014-09-09 04:07:12 -04:00
Moises Silva ef694513df Improvements to mod_bert
* 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
2014-09-09 04:07:12 -04:00
Moises Silva a84ce1dd3c Improvements to mod_bert
* Improve bert input debug
* Check for SFF_CNG and ignore those frames
2014-09-09 04:07:11 -04:00
Moises Silva d3b214a672 Improvements to mod_bert
* Use digital milliwatt as the test sequence pattern
* Add debug IO files (enabled using bert_debug_io_file variable)
2014-09-09 04:07:11 -04:00
Moises Silva a60876b165 Use a triangle wave in mod_bert 2014-09-09 04:07:11 -04:00
Moises Silva 66a9e12aa8 Improvements to mod_bert
* 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)
2014-09-09 04:07:11 -04:00
Moises Silva fa3a1a0bdd Added mod_bert module 2014-09-09 04:07:02 -04:00
Moises Silva d65716d83a freetdm: Added dtmf_time_on and dtmf_time_off parameters to tweak DTMF duration in milliseconds 2014-07-27 13:29:58 -04:00
Moises Silva b80cdd45d5 freetdm: Added release guard time configuration
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
2014-07-23 00:41:08 -04:00
Moises Silva 09198ee357 freetdm: Raise some buffer limits 2014-07-22 23:44:17 -04:00
Moises Silva 61101e325f freetdm: ftmod_analog_em: Added support for suspending channels that are offhook 2014-07-22 23:30:53 -04:00
Moises Silva a65ba24298 mod_freetdm: Added 'ftdm cas' command to read/write raw CAS bits 2014-07-22 23:30:45 -04:00
Moises Silva d6574e8c0f dos2unix a bunch of files
For some reason these files would get marked as modified
just after a fresh clone on Linux
2014-07-22 15:04:28 -04:00
Moises Silva ae9e740d7f freetdm: ftdm_gsm: Remove some old debug code 2014-07-13 03:06:28 -04:00
Moises Silva 4bc1b731cb freetdm: ftdmod_gsm: Allow hwdtmf parameter to accept detect or generate
You can now enable the hardware dtmf detection and/or generation
2014-07-13 02:46:28 -04:00
Moises Silva ff935bb1d9 Revert "freetdm: ftmod_wanpipe: Do not attempt to initialize hwdtmf in GSM ports during shutdown"
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
2014-07-13 02:21:06 -04:00
Moises Silva 64489c54ee freetdm: Added support for DTMF generation to be performed in the signaling modules (currently only used by the gsm signaling driver) 2014-07-13 02:16:58 -04:00
Moises Silva e742522597 mod_freetdm: Fix several leaks on module shutdown 2014-07-13 00:35:48 -04:00
Moises Silva b29a41bb1b freetdm: ftmod_wanpipe: Do not attempt to initialize hwdtmf in GSM ports during shutdown 2014-07-13 00:35:48 -04:00
Moises Silva 0b6f10a6a8 freetdm: ftmod_gsm: Added support for hardware DTMF 2014-07-11 00:52:32 -04:00
Moises Silva 2b93912ef2 freetdm: Fix raw GSM AT command execution not returning the proper token count 2014-05-11 03:22:27 -04:00
Moises Silva a82e7a7dd1 freetdm: Added gsm debug configuration parameter 2014-05-11 02:55:07 -04:00
Moises Silva b8a32ed0f3 freetdm: Fixes for GSM module 2014-05-10 02:57:17 -04:00
Moises Silva 64c678f17a freetdm: ftdm_gsm: Fix a few compilation warnings 2014-05-01 20:28:23 -04:00
Moises Silva 99c022b1dd FS-6500: freetdm: Add more enum compliance by defining proper enum values for FTDM_END and FTDM_ANY special state values 2014-05-01 20:24:03 -04:00
Moises Silva c62db1a600 freetdm: ftmod_wanpipe: Remove chatty debug msg, not really useful anyways 2013-11-27 09:51:33 -05:00
Moises Silva 8469e83835 freetdm: ftmod_analog_em: Remove constant CAS debug log 2013-11-08 19:12:44 -05:00
Moises Silva 7542c5877c freetdm: E&M: Set the line offhook when suspended 2013-11-08 02:22:36 -05:00
Moises Silva 3b0e8d9e2d freetdm: ftmod_zt: Refactor event processing to store OOB events that arrive during read/write operations 2013-11-08 02:22:05 -05:00
Moises Silva 774784fbee mod_freetdm: Handle read errors gracefully when the device is dead already 2013-11-08 02:21:42 -05:00
Moises Silva 545d1e5079 freetdm: Fix hangup supervision on inbound calls for Analog E&M 2013-11-08 02:19:41 -05:00
Moises Silva 271eda310e freetdm: Added CAS hangup bit checking to the E&M signaling module 2013-10-24 19:05:35 -04:00
Moises Silva 2b3c98b069 ftmod_analog_em: Block/unblock signaling when a span is stopped/started 2013-10-24 19:05:12 -04:00
Moises Silva 9a45b983b3 Merge remote-tracking branch 'origin/master' into em_management 2013-10-24 16:29:45 -04:00
Moises Silva 21b129e940 Allow setting/getting signaling status from E&M channels 2013-10-06 19:08:45 -04:00
Moises Silva bb67ff5e0b OPENZAP-219 --resolve
Calling ton and caller ton is not parsed at all in libpri signaling module
Patched-by: Markus Schräder
2013-10-04 12:12:47 -04:00
Moises Silva a48bfafddd Fix log line in ftmod_analog.c 2013-09-09 02:06:17 -04:00
Moises Silva d8a9da2044 mod_freetdm: E&M Analog fixes
* 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
2013-08-21 18:21:02 -04:00
Moises Silva 6a2cd0632b FS-5528 --resolve 2013-08-16 09:52:14 -04:00
Moises Silva 10908a0a8d Merge remote-tracking branch 'origin/master' into ftdm_em_playback 2013-08-14 15:57:15 -04:00
Moises Silva 9d5f14a15d freetdm: Fix longstanding minor bug in ftdm_span_send_signal causing dial-regex in Analog modules to not work
The return status of the signal callback was not being passed to the signaling module delivering the signal
2013-08-14 15:53:51 -04:00
Moises Silva 5c6c33fb4f mod_oreka: use zstr instead of only checking for null as some caller profile data may be an empty string 2013-08-13 11:58:56 -04:00
Moises Silva 5324063f44 Added support for blind transfer notification of negative responses 2013-06-26 23:17:49 -04:00
Moises Silva f9007fb2b6 freetdm: Added E & M logic for routing success and fail regex parameters 2013-06-26 00:16:11 -04:00
Moises Silva bd4a5914dc freetdm: Override regular media with ringback in E&M when a ringback file is specified 2013-06-26 00:10:04 -04:00
Moises Silva 626dd2551a mod_freetdm: Expose new ringback E&M parameters in the XML config 2013-06-25 23:41:59 -04:00
Moises Silva cc6ee0322e Added ability to play a wav file as ringback tone during the COLLECT state of E&M signaling module
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)
2013-06-25 22:19:24 -04:00
Moises Silva e5f2282fe1 OPENZAP-215 --resolve
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
2013-06-23 21:52:31 -04:00
Moises Silva 4ff826c27d OPENZAP-200 --resolve
Patch provided by: Spencer Thomason

Implement appropiate caller/called TON in ftmod_libpri
2013-04-09 12:29:47 -04:00
Moises Silva 5f876497bc freetdm: - Added ftdm_usage command to check if a channel has calls (ie, is busy)
- Refactored ftdm CLI management to allow standalone APIs to be registered
         - Minor logging changes here and there
2013-03-08 15:15:07 -05:00
Moises Silva 7c6ba6a34c OPENZAP-207 --resolve Rework the zt_read function
Break the read loop when receiving ELAST
2013-02-11 11:35:30 -05:00
Moises Silva 29bfcb16be freetdm: ftmod_pritap: Allow specifying different audio mixing modes 2013-01-11 14:52:33 -05:00
Moises Silva 56846c02c6 freetdm: ftmod_analog_em: If the destination number DTMF was already generated, do not generate it again
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
2012-12-20 12:18:24 -05:00
Moises Silva 27a8ec93de freetdm: Added Analog E&M outbound call answer supervision
You must add answer-supervision=yes in your freetdm.conf.xml
         Also added dial-timeout parameter which was previously hard-coded
2012-12-18 22:55:14 -05:00
Moises Silva 6e9dc465cc freetdm: ftmod_analog_em: Fix incorrect read length 2012-12-18 14:24:00 -05:00
Moises Silva 6f5438eded freetdm: ftmod_zt:
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
2012-12-18 14:23:31 -05:00
Moises Silva a7f8e4259e OPENZAP-201 --resolve 2012-11-26 14:26:41 -05:00
Moises Silva b64cc02390 freetdm: ftmod_zt - Declare tone mode at the top to avoid compilation errors 2012-11-19 10:24:25 -05:00
Moises Silva db673a043f freetdm: ftmod_zt - Integrated HW DTMF support 2012-11-18 23:57:52 -05:00
Moises Silva 9bc3dfc874 fretdm: little white lie 2012-11-09 16:53:39 -05:00
Moises Silva d39269b217 freetdm: ftmod_pritap - Fix memory corruption due to freeing a call
pointer that was still in use
2012-10-29 15:34:08 -04:00
Moises Silva 87a1d78e42 freetdm: ftmod_pritap - Use a single thread per every pair of spans tapping a single line 2012-10-29 15:33:59 -04:00
Moises Silva aeb07172b0 freetdm: ftmod_pritap - Do not print an error when the crv is no longer in use
since this is a valid code path
2012-10-29 15:33:50 -04:00
Moises Silva e4e6fa65d0 freetdm: ftmod_pritap - Lock the channel during call setup
Destroy the peer before the master channel
2012-10-29 15:33:41 -04:00
Moises Silva d88e79e632 freetdm: ftmod_pritap - Use uint8 for flags (I smell a bug somewhere with bitfields) 2012-10-29 15:33:31 -04:00
Moises Silva 7d5a4a7172 freetdm: ftmod_pritap - Destroy call references as soon as possible 2012-10-29 15:33:22 -04:00
Moises Silva 3cb1fd267f Try to fix pritap segfault 2012-10-29 15:33:09 -04:00
Moises Silva 0a92094995 freetdm: ftmod_pritap - Add interface type parameter (cpe/net) 2012-10-29 15:32:57 -04:00
Moises Silva d2a73cc0e4 Updated ftmod_pritap.c to send SIGEVENT_UP when the tapped line is answered 2012-10-29 15:32:16 -04:00
Moises Silva 542e7153fc freetdm: Fix compilation with old libpri.h where AOC is not available 2012-10-23 13:01:40 -04:00
Moises Silva 004ebe4f12 OPENZAP-196 Fix casting issue - Apparently this fixes libpri BRI issues 2012-10-23 13:00:16 -04:00
Moises Silva 350fbdbfb0 Update oreka.conf.xml comments 2012-09-18 15:46:22 -04:00