Commit Graph
468 Commits
Author SHA1 Message Date
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
Stefan Knoblich dc1422998a FreeTDM: Add FTDM_XINT64_FMT 64bit hex format string and use it in ftmod_misdn.
Fixes:
  src/ftmod/ftmod_misdn/ftmod_misdn.c: In function 'misdn_handle_mph_information_ind':
  src/ftmod/ftmod_misdn/ftmod_misdn.c:871:3: error: format '%lx' expects argument of type 'long unsigned int', but argument 13 has type 'uint64_t' [-Werror=format]

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-07-27 14:33:46 +02:00
Stefan Knoblich 7a93ae2d95 FreeTDM: Add ftdm_offset_of() and ftdm_container_of() macros.
Might as well import these too...

ftdm_offset_of() - Get offset of member in structure.

ftdm_container_of() - Get pointer to enclosing structure from pointer to structure member.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-07-25 16:10:35 +02:00
Stefan Knoblich e71bacb2f5 FreeTDM: Add convenience macros ftdm_min(), ftdm_max() and ftdm_clamp().
ftdm_min(x,y) - Returns the smaller of the two values x and y.

ftdm_max(x,y) - Returns the larger of the two values x and y.

ftdm_clamp(val, min, max) - Returns value that is in the range [vmin,vmax].

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-07-25 14:03:22 +02:00
Stefan Knoblich da4b28c115 FreeTDM: Cast flag to uint64_t and use FTDM_UINT64_FMT to silence format string warning.
Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-07-12 03:18:52 +02:00
Stefan Knoblich 90d299cd7a FreeTDM: Add dumy "%s" format string to ftdm_assert() and ftdm_assert_return() to silence format string warnings.
Neither of them accepts extra arguments and ftmod_sangoma_isdn is calling
ftmod_assert() with a char * msg argument.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-07-12 02:37:55 +02:00
Stefan Knoblich f384e247fc FreeTDM: Add gcc printf()-style format string checks to ftdm_log(), also add FTDM_(U)INT64_FMT and FTDM_TIME_FMT constants.
The format string checks already caught a couple crash-worthy bugs and this
commit fixes a couple more.

Also includes __ftdm_check_scanf(), for completeness (currently unused).

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-07-11 22:44:08 +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
Stefan Knoblich 61cfafe6c2 FreeTDM: Move custom backtrace code into ftdm_backtrace_walk() and helper functions.
Portability fix for uClibc and other (linux) environments that lack execinfo.h.

ftdm_backtrace_walk() and related return FTDM_NOTIMPL and print a message
if backtraces are not available in the current environment.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-07-11 17:25:58 +02:00
Moises Silva 1f08e2b0ec Merge remote branch 'fsorig/master' 2012-05-07 15:46:08 -04:00
Moises Silva f316f9307f freetdm: First GSM working version
- Manually merging latest code from gideon.gsm branch after review/inspection/modifications
2012-05-07 15:35:13 -04:00
Moises Silva cf9f937079 Merge branch 'master' into gsm.merge 2012-05-07 15:15:44 -04:00
Moises Silva de98034145 freetdm: - Extend ftdm interrupt object to notify which IO events are ready in the device
- Add definition of FTDM_MAX_SIG_PARAMETERS to have a standard limit for signaling module parameters
2012-05-07 15:13:26 -04:00
Moises Silva 412c808e0c freetdm: Added GSM module skeleton 2012-05-07 15:10:25 -04:00
Ken Rice 7a147e4762 Update a ton of copyright statements to make sure the dates are proper 2012-04-25 17:14:55 -05:00
David Yat Sin 27e4cdb4dd Merge branch 'fsorig'
Conflicts:
	libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cfg.c
	libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c
2012-04-03 18:08:49 -04:00
David Yat Sin 1377b9c84d freetdm: support for dtmf_on_start 2012-02-07 14:28:47 -05:00
Moises Silva 1ad0bc250c Merge remote-tracking branch 'fsorig/master' 2012-01-31 15:57:07 -05:00
David Yat Sin badc80ad3e freetdm: Added dtmfdetect duration option 2012-01-04 11:16:29 -05:00
Moises Silva 71f0c6fde5 freetdm: added debug ftdm_print_stack macro 2011-10-25 17:36:30 -04:00
Moises Silva 3b74246b16 freetdm: * Avoid acquiring the span mutex if the pendingchans queue is available for use *
* FreeTDM modules using the old FTDM_SPAN_STATE_CHANGE flag should be updated   *
         * until then, they are still vulnerable to deadlock situations                  *
         * Modules pending update: (ftmod_analog, ftmod_libpri, ftmod_isdn)              *
         * Fixes Sangoma redmine ticket #1791 0 FTDM span stop deadlock                  *
2011-10-24 12:49:36 -04:00
root c0f988b292 freetdm: changing call reference to generic header; removing location area code 2011-10-06 19:08:25 -04:00
Stefan Knoblich 975ac0ac70 FreeTDM: Fix private/libteletone*.h includes
libteletone headers include each other, use #include ""
to look in the local dir rather than the include search path.

Unbreaking all of my (still) external FreeTDM projects.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2011-09-19 15:55:07 +02:00
Anthony Minessale a65794fb5e FS-3570 receive side, update libteletone to track duration so it is less likely to double detect and push api changes down to freetdm 2011-09-16 10:06:04 -05:00
Moises Silva 46f097c1b9 freetdm: ftmod_wanpipe - tx idle frames needs to be bigger 2011-08-07 01:33:26 -04:00
Moises Silva 3b2203b71b freetdm: default iostats to yes and allow configuration thru freetdm.conf 2011-08-03 20:30:39 -04:00
Moises Silva 68b887c760 freetdm: allow IO statistics access to users
added ftdm iostats command
2011-07-30 17:40:32 -04:00
Moises Silva ea16afe34e svn-style merge from moy.ss7grs_perchan branch (spin off releases.3.2)
addressed issue with multiple GRS at the same time in a single span
revisions merged: afcc831d6fa1fccaf7ef091b8c48b905a76d834d 9c815c9ecd7102e7d30c3988cd41682b8cbade0b
2011-07-29 16:59:53 -04:00
David Yat Sin 818e7541fb freetdm: Increased maximum number of channels per group to 2048 2011-07-07 11:24:58 -04:00
David Yat Sin f0da8f4757 chlog: freetdm: Increased Maximum number of spans to 128 (requires libsng_isdn 7.7.2 or later) 2011-07-05 18:24:50 -04:00
David Yat Sin d043fe03aa freetdm: Fix window compile 2011-06-13 16:22:10 -04:00
David Yat Sin bd7672242c Support for AT&T *8 Transfer (VRU only) 2011-06-03 17:18:30 -04:00
Moises Silva fccbba53c3 added FTDM_SILENCE_VALUE macro 2011-05-18 19:00:42 -04:00
Moises Silva 0b59756edd Merge remote-tracking branch 'smgfs/master'
Conflicts:
	libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c
2011-05-17 19:57:49 -04:00
David Yat Sin ea428669d3 chlog: freetdm - SS7: Support for Transparent IAM 2011-05-17 17:27:05 -04:00
Moises Silva e544e4cff1 freetdm: Add initial testing support for unrestricted digital calls using G722 codec 2011-05-10 23:35:20 -04:00
David Yat Sin 05fa93f831 chlog: freetdm: ss7 - Support for Calling Party's Category 2011-05-10 11:38:23 -04:00
David Yat Sin 403dd0c5b0 freetdm: ISDN - Fix for segfault when setting outbound-called-npi=e164 2011-05-09 18:04:07 -04:00
Moises Silva 135bac5b6d freetdm: change a-law and u-law for alaw and ulaw as valid strings for bearer layer 1 2011-03-29 17:08:02 -04:00
Moises Silva 4b9355003e Merge branch 'netborder' 2011-03-21 15:34:05 -04:00
David Yat Sin 00dc8577e8 freetdm: Typo in function define 2011-03-04 10:38:48 -05:00
David Yat Sin 086664fbd2 freetdm: Typo in function define 2011-03-01 09:54:52 -05:00
Moises Silva 4793c697bd Merge branch 'netborder'
Conflicts:
	libs/freetdm/mod_freetdm/mod_freetdm.c
	libs/freetdm/src/ftdm_io.c
	libs/freetdm/src/ftmod/ftmod_r2/ftmod_r2_io_mf_lib.h
	libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c
	libs/freetdm/src/include/freetdm.h
	libs/freetdm/src/include/private/ftdm_core.h
2011-02-28 12:47:27 -05:00
Moises Silva 3a0d5b6297 freetdm: remove unused prototype for ftdm_call_clear_data 2011-02-28 12:42:43 -05:00
Moises Silva d1b3c595cf Merge branch 'netborder' of git.sangoma.com:smg_freeswitch into netborder
Conflicts:
	libs/freetdm/mod_freetdm/mod_freetdm.c
	libs/freetdm/src/ftdm_state.c
2011-02-28 10:55:40 -05:00
Moises Silva cd6eee31a2 freetdm: remove ftdm_channel_init API 2011-02-28 10:52:30 -05:00
Moises Silva 244e7c7610 Merge remote branch 'origin/davidy.ftdm_variables3' into netborder.tmp 2011-02-25 17:17:29 -05:00
David Yat Sin b2b50a1030 freetdm: Removed unnecessary parameter copy
Added ftdm_raw_data_t
2011-02-25 12:20:32 -05:00
David Yat Sin 49ac70defd freetdm: User variables now stored in ftdm_usrmsg_t 2011-02-25 09:58:15 -05:00