Commit Graph

2065 Commits

Author SHA1 Message Date
Moises Silva 4cdf9f2491 freetdm: ftmod_wanpipe - Added misc IO debugging code (define WP_DEBUG_IO to use) 2011-09-12 15:23:21 -04:00
Moises Silva 6c5132a507 freetdm: - Clear the IO flag when FreeSWITCH hangs up before notifying freetdm
- Misc fixes to log messages to aid debugging
         - Added ftdm ioread command to read media from the channel
         - Modified the ftdm_channel_open() API to return FTDM_EBUSY if the channel is already open
2011-09-12 15:21:23 -04:00
Stefan Knoblich f4facb0f65 [FreeTDM] Add missing newline in "Failed to configure span" error message in ftdm_configure_span_channels().
Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2011-09-12 13:07:50 +02:00
Moises Silva fb69d37592 freetdm: fix small bug reported in freeswitch-dev where the call_id member of sigmsg
is not being set for SIGEVENT_START event
2011-09-08 12:51:48 -04:00
Stefan Knoblich 09a61f5025 [FreeTDM] Add (experimental) ftmod_misdn
Add I/O plugin for mISDN stack that is included in the linux kernel
since version 2.6.27.

The in-kernel mISDN stack uses a socket based interface (AF_ISDN),
data and control commands are exchanged via datagram messages.

This makes writing a driver that doesn't use a separate (per-span)
thread to handle all incoming events a bit tricky, because responses
to control messages and incoming data are mixed and interfacing
with the synchronous FreeTDM I/O API is problematic.

B(*)/D-channel handling:

The current version uses misdn_wait() to poll() for activity on
the non-blocking channel sockets and misdn_read() to receive and
handle all pending events up to the first PH_DATA_IND (data) message
(which is what the caller of the read method is actually after).

In case no data has been received, misdn_read() returns FTDM_SUCCESS
with *datalen = 0, which is OK for all the signalling modules tested
(ftmod_libpri and (out-of-tree) ftmod_isdn).

To send data, misdn_write() is called, which just sends a PH_DATA_REQ
message to the mISDN channel socket.

(*) B-channels use a per-channel timerfd as a timing reference for
'ready-for-write' poll()ing in misdn_wait().

This is a workaround for a limitation of mISDN sockets, which do not
support POLLOUT waiting on b-channel sockets (in a useful way).

Sending/receiving of data works the same way as on d-channels, otherwise.

The module has received some minimal testing using a beronet
single-port HFC E1 and a HFC4-S quad-port BRI card on linux-3.0.x.

--- Limitations ---

 - Only the most basic features have been implemented (alarms,
   sending/receiving data/audio).

 - Spans are limited to E1 and BRI/BRI_PTMP trunk types.

 - D-Channels only work on 16 for PRI and 3 for BRI.

 - NT/TE mode information is not available from freetdm.conf /
   at configure_span()-time so the module assumes TE mode,
   which should be only a problem for cards that can change
   the port configuration (pin-out) from software.

 - Current design (b-channel timerfd / misdn_wait()/_read()/_write())
   should be fine for most SoHo use-cases
   (scalability / cpu usage / timing precision).

--- Requirements ---

 - mISDNif.h header (/usr/include/mISDN/mISDNif.h), provided by mISDNuser
   (http://isdn.eversberg.eu/download/lcr-1.7/mISDNuser-20100525.tar.gz).

 - Linux kernel with mISDN and timerfd enabled (>= 2.6.27)
   and libc with timerfd support.

mISDN options can be found in the:

"Device Drivers" -> "ISDN support" -> "Modular ISDN driver"

section of make menuconfig. Timerfd is usually enabled by default.

The FreeTDM configure script will check for missing mISDNif.h
header and timerfd support and print a message.

You should see the following in the summary screen on success:

	ftmod_misdn........................ yes

NOTE: Forcing mISDN support using the "--with-misdn" configure option,
      will cause the configure script to fail on the first missing
      dependency.

--- Usage ---

To use the module, make sure you have mISDN support in the kernel
(kernel modules loaded or kernel with built-in mISDN running),
the "misdn_info" application shipped with mISDNuser will output
a list of available mISDN ports on your system, e.g.:

Found 5 ports
  Port  0 'hfc-4s.1-1':      TE/NT-mode BRI S/T (for phone lines & phones)
                              2 B-channels: 1-2
                                B-protocols: RAW HDLC X75slp
  ...

  Port  4 'hfc-e1.2':        TE/NT-mode PRI E1  (for phone lines & E1 devices)
                             30 B-channels: 1-15 17-31
                                B-protocols: RAW HDLC X75slp

NOTE: ftmod_misdn will print an error message if mISDN support is not available,
      or if there are no ports installed.

- Example freetdm.conf settings

[span misdn BRI_1]
trunk_type => BRI_PTMP
b-channel => 0:1,2
d-channel => 0:3

[span misdn PRI_1]
trunk_type => E1
b-channel => hfc-e1.2:1-15,17-31
d-channel => hfc-e1.2:16

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2011-09-08 00:16:02 +02:00
Stefan Knoblich e1a6fd27e0 ftmod_libpri: Always try to close the d-channel to avoid a possible deadlock in case something fails in the I/O module's channel open function.
Signed-off-by: Stefan Knoblich <s.knoblich@axsentis.de>
2011-09-01 01:48:03 +02:00
Stefan Knoblich 41b956fd24 FreeTDM: Don't ftdm_safe_free() span information in ftdm_span_destroy() if span provides a custom span_destroy callback.
Doing so will cause a NULL-deref segfault while removing the current span from the
global hash (cur_span->name == NULL) in ftdm_global_destroy().

Remove all the ftdm_safe_free() calls in the custom callback part of ftdm_span_destroy() and
let ftdm_global_destroy() handle that.

NOTE: Also adds a missing ftdm_safe_free(cur_span->dtmf_hangup) to ftdm_global_destroy().

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2011-09-01 01:48:03 +02:00
Michael Jerris 77284b5d21 use system default dtmf duration instead of hardcoded value 2011-08-31 14:45:16 -04:00
Moises Silva 485cb2f52c freetdm: added documentation regarding ftdm open known issues 2011-08-27 00:19:09 -04:00
Brian West 6a4cf724c8 conf/tones.conf from wiki page why nobody bothered to submit a jira so they would be included instead putting them on the wiki to be overlooked 2011-08-22 19:27:03 -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 c6f5c96c6e freetdm: *shrug* 2011-08-06 21:38:04 -04:00
Moises Silva f57c33f1ee OPENZAP-112 --resolve 2011-08-06 21:32:21 -04:00
Marc Olivier Chouinard 2ecf2d6e62 freetdm/libpri: Add support to change status of an individual channel or multiple channel. This allow to put bchannel out of service on an active T1 without affecting active call. Allow graceful out of service of T1 trunk.
NOTE: There is bugs in libpri, even latest 1.4.12 as of this writing if you use NI2.   So rightnow it only work in DMS100/ATT mode.  Email me to get the NI2 patch (really stupid error).
NOTE2: The way libpri is build doesn't allow to do advance feature with the SERVICE feature, so if you put an channel out of service, and the far end send an restart, it will be bring back in service.  Lot of changes in libpri is required to allow this.  I need to figure out what would be the best steps to take since I don't have commit access to libpri release.
NOTE3: You need to enable this feature by setting service_message_support to true on the span
2011-08-05 22:50:58 -04:00
Moises Silva bfabc98f3d freetdm: more CLI improvements 2011-08-04 10:10:13 -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 8735906a5d freetdm: fix typo in ftmod_sangoma_isdn.h causing compilation error 2011-08-03 20:12:26 -04:00
Moises Silva bdf4b99238 Merge remote branch 'smgfs/master' 2011-08-03 17:46:45 -04:00
David Yat Sin 0b7d857545 freetdm: fixed errors introduced when Redirection Number was implemented 2011-08-03 17:28:56 -04:00
Moises Silva c3f719c80d freetdm: fix typo in iostats command - print proper tx queue size and length 2011-08-03 13:05:02 -04:00
David Yat Sin 6fe23b69d2 freetdm: ISDN - added #ifdef for backward compatibility 2011-08-03 13:04:22 -04:00
David Yat Sin 4e020e2f23 Merge remote branch 'smgfs/master' 2011-08-03 11:57:55 -04:00
David Yat Sin 473fd0ce89 freetdm: ISDN - allow reception of NOTIFY msg 2011-08-03 11:53:40 -04:00
David Yat Sin 65bac44b32 freetdm: ISDN - Added function to transmission of NOTIFY msg 2011-08-03 10:52:18 -04:00
Jeff Lenk 5d37bc9455 OPENZAP-171 --resolve 2011-08-03 09:05:01 -05: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 f68d351fdd freetdm: refactoring of the CLI, it was getting way too ugly! 2011-07-29 19:35:10 -04:00
Moises Silva dcbfa9a876 Merge remote-tracking branch 'fsorig/master' 2011-07-29 17:06:00 -04:00
Moises Silva 227971b340 freetdm: restrict GRS CLI request range to stay within sane boundaries 2011-07-29 17:02:12 -04:00
Moises Silva 3c731ed968 freetdm: ss7 - skip non-voice cics when processing GRA 2011-07-29 17:01:41 -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
Moises Silva 09e545d377 freetdm: core - report initial alarms on span start 2011-07-29 14:55:35 -04:00
Moises Silva 587bb373b9 freetdm: fix event reporting in sangoma isdn 2011-07-29 14:01:49 -04:00
David Yat Sin 372ae224e5 added check for trunk_type for each span 2011-07-25 19:03:11 -04:00
Moises Silva 492bc6b416 freetdm: ftmod_libpri - request channel exclusively 2011-07-23 12:53:04 -04:00
Jeff Lenk 61b04bfc78 OPENZAP-168 --resolve 2011-07-22 08:59:19 -05:00
David Yat Sin c3cbb3df88 Merge remote branch 'fsorig/master'
Conflicts:
	libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_trace.c
2011-07-18 18:24:54 -04:00
David Yat Sin 157a89adef chlog: freetdm ISDN: Increased T200 timer to 3 sec. 2011-07-18 18:12:46 -04:00
David Yat Sin 2c9bccbfc8 chlog: freetdm: Added support for RESTART timeout, treat RESTART's without restart indicator IE as restart on full interface 2011-07-15 17:56:48 -04:00
David Yat Sin 33aa1cb763 chlog: freetdm: Added support for RESTART timeout, treat RESTART's without restart indicator IE as restart on full interface 2011-07-15 17:56:41 -04:00
David Yat Sin b75f8d4b8d freetdm: ISDN - Fix for dropping some frames on start due to flush 2011-07-15 14:48:24 -04:00
David Yat Sin 7dad26d834 freetdm: Changed Q921 and Q931 traces to debug level 2011-07-14 18:32:20 -04:00
David Yat Sin 3d028378c5 Merge branch 'master' of ssh://git.freeswitch.org:222/freeswitch 2011-07-14 18:30:16 -04:00
David Yat Sin 4c3e3530d5 freetdm: Changed sending of RESTART message behaviour on sig UP for EuroISDN 2011-07-14 11:33:14 -04:00
David Yat Sin 72e64748e8 FreeTDM: Fix for compile error on some systems 2011-07-13 11:30:22 -04:00
David Yat Sin f0578a8011 chlog: freetdm: ISDN - Fix for Caller ID name on DMS-100 2011-07-12 17:26:44 -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
Stefan Knoblich 1c608f0a5d ftmod_libpri: final fix called number overlap receiving...
ftdm_copy_string() length parameter needs to include the terminating NUL byte.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
Tested-by: Stefan Knoblich <stkn@openisdn.net>
2011-06-30 23:53:36 +02:00
Stefan Knoblich c01c500153 ftmod_libpri: Incoming overlap receiving digits have to be appended to the DNIS.
Libpri doesn't do that for us, so handle things on our end.
Other parts of the previous patch seem to work fine.

Signed-off-by: Stefan Knoblich <s.knoblich@axsentis.de>
2011-06-30 13:01:19 +02:00
Stefan Knoblich d2ce252509 ftmod_libpri: Add experimental (untested) support for overlap receiving in TE mode.
Adds a new "overlapdial" configuration parameter that enables
incoming overlap dialing when set to "incoming", "yes" or "both" (possible values:
"no", "yes"/"both", "incoming"/"receive", "outgoing"/"send").

(Overlap dialing is disabled by default)

NOTE: only the non-overlap receive case has been tested (= doesn't break existing setups)

Signed-off-by: Stefan Knoblich <s.knoblich@axsentis.de>
2011-06-29 13:26:51 +02:00
Moises Silva cce0289874 freetdm: added mixaudio parameter to ftmod_pritap per Orecx request 2011-06-28 11:28:58 -04:00
Stefan Knoblich 01785fb31d FreeTDM: gcc-4.6.0 fix (-Wunused-but-set-variable)
ftmod_sangoma_isdn.c:ftdm_sangoma_isdn_io_run()
	remove unused variable wflags.

Signed-off-by: Stefan Knoblich <s.knoblich@axsentis.de>
2011-06-28 15:05:31 +02:00
Stefan Knoblich e80279dd00 FreeTDM: gcc-4.6.0 fix (-Wunused-but-set-variable)
ftdm_io.c:ftdm_channel_process_media()
	status variable was set but otherwise unused

Signed-off-by: Stefan Knoblich <s.knoblich@axsentis.de>
2011-06-28 14:54:37 +02:00
Moises Silva 162f2a3dd9 freetdm: change CLI parsing (ftdm_separate_string) to properly ignore white space (fixes Sangoma issue #778)
minor change into SS7 CLI to use ftdm_array_len() instead of duplicating it
2011-06-23 18:43:15 -04:00
Moises Silva 8cfd928abf fix ss7 typo 2011-06-23 18:42:51 -04:00
Moises Silva f3dc175941 freetdm: fix SS7 cgb and cgu commands causing segfault - fixes Sangoma issue #780
Conflicts:

	libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_in.c
2011-06-23 16:12:56 -04:00
Moises Silva 288455cfe2 freetdm: add some extra logging in ftmod_zt and ftmod_analog 2011-06-22 17:05:53 -04:00
Jeff Lenk dc8dceba6e OPENZAP-166 --resolve trivial compiler warnings 2011-06-20 09:36:22 -05:00
Moises Silva ff6981574f freetdm: Add Ricardo to list of contributors in ftmod_sangoma_ss7 2011-06-17 11:35:06 -04:00
Moises Silva 14099b814f freetdm: OPENZAP-159 --resolved SS7 REL message collision 2011-06-17 10:40:20 -04:00
Moises Silva 55db4ce54c freetdm: OPENZAP-151 --resolved SS7 ANM and REL message collision 2011-06-16 13:40:36 -04:00
David Yat Sin a8abef1013 Changed libsng_isdn and libsng_ss7 include paths 2011-06-16 13:29:58 -04:00
Moises Silva 751c963820 Merge remote-tracking branch 'fsorig/master' 2011-06-16 13:29:24 -04:00
Moises Silva af31a8cb61 freetdm: OPENZAP-158 --resolve map operator calling party category in the openr2 module 2011-06-16 12:32:04 -04:00
Moises Silva 441c5034f1 freetdm: OPENZAP-135 -- resolve infinite loop when all channels busy and hunt in round robin mode 2011-06-15 16:04:35 -04:00
Jeff Lenk 71c66bcf5a OPENZAP-162 -- resolve 2011-06-14 08:47:46 -05:00
David Yat Sin aa01e36c37 Merge branch 'master' of ssh://git.freeswitch.org:222/freeswitch 2011-06-13 16:22:20 -04:00
David Yat Sin d043fe03aa freetdm: Fix window compile 2011-06-13 16:22:10 -04:00
David Yat Sin 2109627510 freetdm: Updated Visual Studio files to compile ftmod_sangoma_isdn_transfer.c 2011-06-13 13:14:42 -04:00
Jeff Lenk c77fdb5e8c OPENZAP-163 --resolve trivial compile warning 2011-06-10 11:55:22 -05:00
David Yat Sin 269595ec60 chlog: freetdm: ISDN - Support for chan-id-invert-extend-bit 2011-06-10 11:52:57 -04:00
David Yat Sin 346f11f81e chlog: Freetdm: Support for force_sending_complete (Requires libsng_isdn support) 2011-06-10 11:11:44 -04:00
Michael Jerris 15c79424e9 always use our includes first so we use our srcdir headers over installed versions 2011-06-09 18:14:00 -04:00
Moises Silva 1911db658c Merge branch 'master' of ssh://git.freeswitch.org:222/freeswitch 2011-06-09 17:24:34 -04:00
David Yat Sin 1fe877be9d Change error print to debug 2011-06-09 16:48:27 -04:00
David Yat Sin 408244b0c5 Changed error print to debug 2011-06-09 16:42:33 -04:00
David Yat Sin b7e99e9677 Fix for sending ServInfoA on ANSI 2011-06-09 16:42:17 -04:00
David Yat Sin acc1e1c9d0 Fix for sending ServInfoA on ANSI 2011-06-09 16:41:28 -04:00
David Yat Sin 689375a37c Changed default value of MTP2 T7 timer 2011-06-09 16:40:26 -04:00
David Yat Sin 2d8e6e1f13 freetdm: ISDN - Fix for d-channel going down after some time 2011-06-09 16:49:55 -04:00
Moises Silva 152ce41283 freetdm: print libpri error string on error events 2011-06-09 11:15:53 -04:00
Moises Silva 1d3417a97b freetdm: be more tolerant to a few read errors 2011-06-07 17:35:49 -04:00
Moises Silva 5042b21fc5 freetdm: check if the event was created before firing it 2011-06-07 09:54:50 -04:00
David Yat Sin feb21920db Merge branch 'master' of ssh://git.freeswitch.org:222/freeswitch 2011-06-06 10:57:30 -04:00
David Yat Sin 5e8e23f57e Merge remote branch 'smgfs/master'
Conflicts:
	libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c
2011-06-03 17:48:39 -04:00
David Yat Sin bd7672242c Support for AT&T *8 Transfer (VRU only) 2011-06-03 17:18:30 -04:00
Moises Silva 3fa2fce3f3 freetdm: added fail-on-error global configuration to refuse
to load the module if there is any error

Conflicts:

	libs/freetdm/mod_freetdm/mod_freetdm.c
2011-06-01 15:24:09 -04:00
David Yat Sin b92ad06b98 Disabled calling SRegInfoShow on Windows 2011-06-01 11:54:45 -04:00
David Yat Sin 01eb776469 Merge branch 'master' of git.sangoma.com:smg_freeswitch
Conflicts:
	libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.c
2011-05-31 13:25:03 -04:00
David Yat Sin 478e685292 freetdm - ISDN: Added API command to print Trillium memory info 2011-05-30 17:10:38 -04:00
David Yat Sin c20f56bad0 freetdm - ISDN:Fix for not responding to incoming RESTARTs with RESTART ACK if there is an active call on that channel at the time the RESTART was received 2011-05-27 12:19:15 -04:00
Stefan Knoblich 8035d498ea ftmod_zt: Add ZT_EVENT_ABORT event handling and update ZT_EVENT_OVERRUN error message.
ZT_EVENT_ABORT and ZT_EVENT_OVERRUN are HDLC events.

Signed-off-by: Stefan Knoblich <s.knoblich@axsentis.de>
2011-05-27 12:46:24 +02:00
David Yat Sin 4d77481ee1 freetdm: ISDN - Fix for segfault when we receive STA CFM while call is being cleared 2011-05-26 16:34:42 -04:00
Moises Silva e56d8934fe freetdm: make codec configurable for unrestricted digital calls (for G722 calls in Sangoma ISDN) 2011-05-19 17:17:46 -03:00
Moises Silva 1b965d864b freetdm: ftmod_sangoma_isdn - warning fixed 2011-05-19 22:52:49 +05:30
Moises Silva 3ddca37d87 freetdm: ftmod_sangoma_isdn - comment unused variables (fix for compile warnings) 2011-05-19 12:47:22 -04:00
Moises Silva fccbba53c3 added FTDM_SILENCE_VALUE macro 2011-05-18 19:00:42 -04:00
Moises Silva b22fc869dd freetdm: update bearer capability macro 2011-05-17 20:02:18 -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