Commit graph

5475 commits

Author SHA1 Message Date
Anthony Minessale
8a3c292534 fix seg in recent change 2011-09-16 14:52:14 -05:00
Anthony Minessale
dbd5d2575e fix build on freetdm 2011-09-16 14:50:46 -05:00
Anthony Minessale
7bc6e8f183 better version of last patch 2011-09-16 13:27:38 -05:00
Anthony Minessale
81575eadb5 hack so openzap only finds its own teletone includes 2011-09-16 12:31:49 -05:00
Anthony Minessale
44822df63d we need to fix this build system it masks errors 2011-09-16 12:13:25 -05: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
25417d3ea8 freetdm: Verify that the uuid that is being hung up is still attached to the FreeTDM device
This avoids hanging up a device that is no longer attached to the session, in the
         weird situation where the FreeSWITCH core takes an awful lot of time (more than 3 seconds)
         to come around to acknowledge the SIGEVENT_STOP signal.
2011-09-15 19:42:39 -04:00
Moises Silva
aa0a6c9222 freetdm: print span/chan identifiers on hangup 2011-09-15 13:50:42 -04:00
Moises Silva
b06f58a14b freetdm: do not warn on io status changes, leave as debug messages 2011-09-14 10:46:32 -04:00
Moises Silva
4ed900eb92 freetdm: add debug stacktrace to track spurious channel_on_hangup call 2011-09-12 18:13:10 -04:00
Moises Silva
23aba09f1b freetdm: mod_freetdm - fix len data type for 64bit systems 2011-09-12 15:48:28 -04:00
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
Jeff Lenk
482b319512 FS-3544 --resolve 2011-09-06 21:27:13 -05:00
Anthony Minessale
1c775c3bf0 finish up last commit 2011-09-06 15:07:51 -05:00
Anthony Minessale
391da66cac reswig 2011-09-06 16:30:04 -05:00
Anthony Minessale
2ae688a33b add sendmsg function to esl 2011-09-06 14:53:38 -05:00
Daniel Swarbrick
0db88b5999 Tweak link order of some libs to fix build on gcc platforms that have ld flag "--as-needed" as default. Fixes FS-2873 and FS-2874 2011-09-01 16:42:00 +02:00
Michal Bielicki - cypromis
04b1720f80 x != dw 2011-09-01 16:36:27 +02:00
Brian West
a5ae0e32d6 swigall 2011-09-01 03:22:30 -05: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
Michal Bielicki - cypromis
b9d5dff3d8 no gccisms in Makefile.am please ... 2011-09-01 00:18:44 +02:00
Michal Bielicki - cypromis
80dcff6399 Merge branch 'master' of ssh://git.freeswitch.org:222/freeswitch 2011-08-31 21:05:47 +02:00
Michal Bielicki - cypromis
3dca6066f8 getting rid of some gcc crap 2011-08-31 21:05:37 +02:00
Michael Jerris
77284b5d21 use system default dtmf duration instead of hardcoded value 2011-08-31 14:45:16 -04:00
Michal Bielicki - cypromis
8f83473581 fix of ldns for solaris and probably other platforms that actualy have b64_pton, thanks to math for the help 2011-08-31 20:33:55 +02:00
Michal Bielicki - cypromis
55f911d434 leftovers... 2011-08-31 17:51:15 +02:00
Michal Bielicki - cypromis
ba0fe5b424 get rid of libldns strange old libtool and configure crap leftovers ... 2011-08-31 17:10:21 +02:00
Michal Bielicki - cypromis
037f1f5a9b did not clean out installed libtool to the end 2011-08-31 15:40:17 +02:00
Moises Silva
485cb2f52c freetdm: added documentation regarding ftdm open known issues 2011-08-27 00:19:09 -04:00
Jeff Lenk
db88cd3a28 SILK windows vs2010 fix typos 2011-08-25 13:27:11 -05:00
Jeff Lenk
987db7f79c re-add SILK support back for windows - part 1 - blind added 2010 support check later 2011-08-25 13:10:57 -05:00
Brian West
c155873e53 Silk part two... doh 2011-08-25 17:30:25 -05:00
Brian West
fdf74f449f FS-3486 --resolve update silk 2011-08-25 17:25:07 -05:00
Anthony Minessale
b30ee92003 force a sofia rebuild 2011-08-22 12:33:33 -05: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
Anthony Minessale
cd8ccebbf4 save via_string when sent to nh so we can use it in session timer re-invites to fix double nat issue 2011-08-22 10:58:33 -05:00
Anthony Minessale
a95b5c3823 FS-3474 sofia portion 2011-08-19 16:34:17 -05:00
Mathieu Rene
8446b0f262 mod_sofia: don't compile with their built-in stun server as it is buggy 2011-08-15 17:31:15 +02: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
Anthony Minessale
bc177a4b28 FS-3475 --resolve 2011-08-02 13:51:57 -05:00
Anthony Minessale
71dd3ca86c force an update on sqlite build 2011-08-02 13:05:45 -05:00
Anthony Minessale
b6bed14ff6 make strdup NULL return strdup("") in sqlite for mac bug 2011-08-01 10:02:31 -05:00
Anthony Minessale
ed23847574 fix mac build 2011-08-01 10:01:50 -05:00
Jeff Lenk
02bb35148d trivial compiler warning 2011-08-01 10:39:11 -05:00
Jeff Lenk
2b6a4f97c3 trivial portability issues c89 2011-08-01 09:48:08 -05:00
Anthony Minessale
3e029f0dfb add capture hooks to libsofia 2011-07-31 18:36:05 -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
Mathieu Rene
7403db7005 Fix segfault in sofia's stun code 2011-07-27 12:26:43 -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
Jeff Lenk
130e1c8774 fix windows compile 2011-07-16 19:13:27 -05:00
Anthony Minessale
b0e076a74f FS-3386 add some more debug defines to sofia and avoid double destroy in nh 2011-07-16 01:03:01 -05: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
Steve Underwood
ffac6a00e8 Fixed a typo in setting the V.27ter bit rate for T.38 gateway 2011-07-16 00:34:42 +08:00
Mathieu Rene
d90bac3888 The format string for size_t is always %zu, don't #error when not able to find it 2011-07-15 11:42:48 -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
Anthony Minessale
c9cab41620 tweak debug code 2011-07-14 00:12:53 -05: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
Anthony Minessale
f761241325 use individual pools instead of sub-pools for nua handles to avoid pool swell 2011-07-11 21:27:36 -05:00
Anthony Minessale
e420e17f84 FS-3386 Jeff Lenk found this one, Good Catch! 2011-07-08 12:52:18 -05:00
David Yat Sin
818e7541fb freetdm: Increased maximum number of channels per group to 2048 2011-07-07 11:24:58 -04:00
Anthony Minessale
56a82812d6 update 2011-07-06 15:11:47 -05:00
Anthony Minessale
d68605f5ae FS-3394 --resolve edge case in the 3rd party sofia sip stack library when dealing with a malformed contact and missing ack. Will push upstream to sofia devs 2011-07-06 15:11:26 -05:00
Christopher Rienzo
493085bb48 fixed unimrcp to prevent double destroy of connection 2011-07-06 15:49:59 +00:00
Christopher Rienzo
3484f3386f unimrcp lib does not notify mod_unimrcp of RTSP TEARDOWN timeouts 2011-07-06 15:47:07 +00: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