378 Commits

Author SHA1 Message Date
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
matteo brancaleoni
382e683b15 Use FTDM_UINT64_FMT macro to log uint64_t values, in order to not break x86 builds. 2014-11-25 15:38:45 +01: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
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
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
b8a32ed0f3 freetdm: Fixes for GSM module 2014-05-10 02:57:17 -04:00
Michael Jerris
d2c2f174e7 FS-6500: try to do the bounds checking properly using element of the enum 2014-05-01 14:32:23 -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
Nathan Neulinger
32adc789f6 make noexpandtab explicit in all vim modelines other than xml files 2013-06-25 11:50:17 -05:00
Jeff Lenk
6739889f65 OPENZAP-214 --resolve 2013-06-03 17:27:04 -05:00
Stefan Knoblich
6ca5a02656 FreeTDM: handle_core_command() clean up
Use uint64_t and FTDM_UINT64_FMT for flagval and "%u" for unsigned int.
Extend invalid channel id check to cover chan_id == 0 case.

Use ftdm_strlen_zero() and ftdm_array_len() instead of open-coding them.
Move some variables from global scope into local subcommand scope.

Various other little format string and variable naming fixes.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-06-02 03:02:14 +02:00
Stefan Knoblich
23c2c751bd FreeTDM: Move I/O interface lookup code into common ftdm_global_get_io_interface()
Auto-loading can be toggled by setting the new autoload parameter
to FTDM_FALSE/FTDM_TRUE.

Update ftdm_span_create() and ftdm_api_execute() to use the new code.

NOTE: Auto-loading of missing I/O interfaces remains enabled in both cases,
      but I guess we should disable it for ftdm_api_execute().

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-06-02 02:56:44 +02:00
Stefan Knoblich
85e2eaaf58 FreeTDM: Fix "ftdm core flags/spanflags" with flag names
"x >> 1" is _NOT_ the reverse of "1 << x"...

Use code from Sean Eron Andersen's "Bit Twiddling Hacks"
(=> http://graphics.stanford.edu/~seander/bithacks.html#IntegerLog)
to compute the log2 value (= position in the enum) of the bitflag.

This preserves the current behaviour, which is rather odd because
it is based on the position of the value in the enum, not its
actual (bit flag) value.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-06-01 22:30:45 +02:00
Stefan Knoblich
e857527a3b FreeTDM: Rewrite "ftdm core" print_* functions (to use new span iterator)
Simplify code by using shared string constants using bool (0/1) index,
!!-operator and negation-via-XOR.

Future optimization: Preallocate and re-use of iterators, to avoid
repeatedly allocating and freeing of memory.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-06-01 22:19:16 +02:00
Stefan Knoblich
4bc05eae68 FreeTDM: Add span iterator
Part of my ongoing effort to split ftdm_io.c into more manageable pieces.

This change (along with others in the future) allows decoupling of the
span registry and its users, in preparation of moving all span related
functions and data structures into ftdm_span.c.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-06-01 15:20:51 +02:00
Stefan Knoblich
9da0183352 FreeTDM: Remove unused local 'interfaces' variable
Zero-filled, but never used otherwise (and static), drop it.

Signed-off-by: Stefan Knoblich <s.knoblich@axsentis.de>
2013-05-31 19:26:36 +02:00
Stefan Knoblich
ae58a4c1ba FreeTDM: Use ftdm_unused_arg() to silence -Wunused-argument warnings
Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-05-10 19:04:09 +02:00
David Yat Sin
fb9163fe5a Fix for not flushing DTMF buffer at end of call 2013-03-21 10:41:16 -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
Brian West
e0066b68d7 don't use : in the file name, makes it somewhat problematic to scp these files even when quoted 2013-03-07 09:41:51 -06: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
Jeff Lenk
b15468d1aa OPENZAP-192 --resolve 2012-09-26 08:11:52 -05:00
Jeff Lenk
84bace0701 freetdm trivial build warnings on windows 2012-09-14 16:52:05 -05:00
David Yat Sin
eb7b98c699 freetdm: Fix for HW DTMF events not passed to signalling module in transfer mode 2012-09-13 12:34:49 -04:00
David Yat Sin
4340c4d74c Merged latest FreeTDM code from Sangoma's repo
Merge remote branch 'smgfs/master'

Conflicts:
	build/modules.conf.in
	configure.in
	libs/esl/fs_cli.c
	libs/freetdm/mod_freetdm/mod_freetdm.c
	libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h
	libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cfg.c
	libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_logger.c
	libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c
	src/include/switch_types.h
	src/mod/applications/mod_commands/mod_commands.c
	src/mod/applications/mod_spandsp/mod_spandsp.c
	src/mod/endpoints/mod_opal/mod_opal.cpp
	src/mod/endpoints/mod_opal/mod_opal.h
	src/mod/endpoints/mod_sofia/mod_sofia.h
	src/mod/endpoints/mod_sofia/rtp.c
	src/switch.c
	src/switch_core.c
	src/switch_rtp.c
2012-09-12 11:05:39 -04:00
David Yat Sin
848db87c26 Merge branch 'releases.3.5' into nsg-4.3 2012-09-11 14:56:22 -04:00
David Yat Sin
fcbfc69466 mod_media_gateway now specifies physical channel when opening TDM terminations 2012-09-11 14:45:57 -04:00
Kapil Gupta
917609df1b removing "raw_ftdm_chan_open" API as we have M2UA sig type 2012-08-23 10:59:21 -04:00
Kapil Gupta
12e61692dd adding signaling FTDM_SIGTYPE_M2UA type 2012-08-17 19:05:12 -04:00
Stefan Knoblich
548222f9f3 FreeTDM: Add span start/stop callbacks to ftdm_io_interface.
Callbacks are invoked from ftdm_span_start/_stop().
I/O is started before SIG and shut down in reverse order.

This is needed for ftmod_misdn, to move the mISDN message handling
into a separate thread (solving the mISDN socket vs. FreeTDM API issues).

With these callbacks, the I/O thread can be started after the span I/O configuration
has been (successfully) completed and stopped before destroying the span.

NOTE: Both SIG and I/O callbacks are called with the span mutex locked,
so threads created or destroyed synchronously in either of the custom
start/stop functions, can not use ftdm_span_*() functions that lock
the span mutex (e.g. ftdm_span_get_channel_count()).

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-08-15 13:34:22 +02:00
Kapil
7b7256b55f fixing issues 2012-08-06 10:20:02 -04:00
David Yat Sin
6906c00342 Merge branch 'releases.3.4' into releases.3.5
Conflicts:
	src/include/switch_channel.h
	src/switch_channel.c
2012-07-31 14:18:36 -04:00
root
2dc5b322dd Added event system for TDM termination alarms 2012-07-27 21:31:24 -04:00
David Yat Sin
6895e46983 Fix compile warning 2012-07-27 15:02:45 -04:00
David Yat Sin
258900818a freetdm: Added thread to service events when there is no signalling module on a span 2012-07-26 16:43:18 -04:00
David Yat Sin
a4bb00023c Reverted back clear-channel, used existing FTDM_SIGTYPE instead 2012-07-25 23:16:32 -04:00
David Yat Sin
3c38278134 Added new channel type clear-channel for channels that do not have a signalling module 2012-07-25 20:41:01 -04:00
David Yat Sin
8b0fbe605c Merge branch 'releases.3.5' of ssh://git.sangoma.com/smg_freeswitch into nsg-4.3
Conflicts:
	.gitignore
	conf/insideout/autoload_configs/modules.conf.xml
	conf/vanilla/autoload_configs/modules.conf.xml
	src/mod/endpoints/mod_sofia/mod_sofia.h
	src/switch_rtp.c
2012-07-25 11:15:18 -04:00
Jeff Lenk
682fb58bd5 OPENZAP-186 --resolve 2012-07-18 08:16:35 -05:00
Stefan Knoblich
90cdc718ec FreeTDM: Whitespace fixes for load_config().
Get rid of those annoying green trailing whitespace and empty lines
with whitespace.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-07-11 20:41:55 +02:00
Stefan Knoblich
fdf86c0c51 FreeTDM: Make cfg_name[] const in load_config().
Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-07-11 20:40:59 +02:00
Stefan Knoblich
ab285ace3d FreeTDM: Improve error checking and logging in load_config(), add FTDM_SPAN_IS_DIGITAL() helper.
Output the current trunk_type in "add X-channel vs. trunk_type" error messages and
check this for B-/D-channels too.

ISDN (= digital) spans need to have a trunk_type set before adding channels,
bail out early with an error message (actually two) if this is not the case.

(Adding channels should really be moved out of the parsing loop, to catch
 certain types of errors easier.)

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-07-11 20:32:34 +02:00
Stefan Knoblich
7a12804577 FreeTDM: Add trunk mode (NET/CPE) to span configuration in freetdm.conf and use it in ftmod_misdn and ftmod_libpri.
Some I/O implementations (e.g. mISDN) need this information to correctly
set up the port configuration. In FreeTDM, the mode of a span has been.
up until now, a part of the signalling module configuration ("node" or "mode"
for libpri and isdn spans), which is parsed _after_ the I/O part of a span
has been initialized. This limitation currently prevents us from using mISDN
in NT mode.

To work around this problem (without adding a lot of new tunk_type values like "E1_NET" etc.),
add a new "trunk_mode" parameter to the span categories in freetdm.conf, which by default
is "CPE" for all trunk types, except "FXS" (which defaults to "NET").

ftmod_misdn uses trunk_type + trunk_mode to correctly choose the d-channel protocol
for a port.

ftmod_libpri uses trunk_mode as a hint for the default "mode" setting.
(NOTE: It will print a warning if trunk_mode and signalling mode do not match.)

All other modules currently ignore the value of trunk_mode.

Example freetdm.conf snippet for a mISDN span in NET/NT mode
(using a HFC-S USB dongle):

  [span misdn MBRI_1]
  trunk_type => BRI_PTMP
  trunk_mode => NET
  b-channel  => HFC-S_USB.1:1-2
  d-channel  => HFC-S_USB.1:3

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-07-11 19:15:35 +02:00
Moises Silva
c81e20475f freetdm: Try to be more foolproof when creating an iterator for an empty span
to avoid triggering asserts later
2012-07-06 18:43:03 -04:00
David Yat Sin
b44bcd5763 Added core spanflag CLI command 2012-06-20 16:28:00 -04:00
Mathieu Rene
1720e4f072 Merge branch 'nsg-4.3' of git.sangoma.com:smg_freeswitch into nsg-4.3 2012-06-20 12:31:07 -04:00
Mathieu Rene
43ffafcb4b wrong operand to sizeof 2012-06-20 12:30:37 -04:00