Commit Graph

19734 Commits

Author SHA1 Message Date
Anthony Minessale 7d399cce96 don't turn X-FS- headers into variables, they are reserved for FS specific communication and should not be passed on 2011-09-08 10:02:16 -05: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
Anthony Minessale 83a78fbfa0 FS-3545 --resolve no, that was not the intention, I missed a few more spots to hack in the exception for iLBC, (thanks for marring my code iLBC ppl) it should work as expected now even with the m_per_ptime on 2011-09-08 09:48:21 -05:00
Anthony Minessale aea22cd4b7 add RTP_BUG_ACCEPT_ANY_PACKETS to disable dropping invalid packets for interop with Oracle CCA 2011-09-08 08:57:28 -05:00
Anthony Minessale f2099bf999 FS-3529 please try this revision I suspect its related to some uninitilized memory causing flags to be set that are not in the dtmf structure in certian cases 2011-09-08 08:12:16 -05: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
Daniel Swarbrick b31ebc9a69 add config file and tweak modules.conf.in for mod_cdr_mongodb 2011-09-07 23:57:44 +02:00
Daniel Swarbrick a91691999d add MongoDB CDR module 2011-09-07 23:50:25 +02:00
Jeff Lenk aff4bcbe12 FS-3080 --resolve better fix for voicemail email key match 2011-09-07 10:50:30 -05:00
Anthony Minessale 247537a959 FS-3545 --resolve this is actually compliant when mixing ptimes in the same sdp but since iLBC uses its own fmtp for ptime I will add this patch to make it beleive its 20 for the sake of arguement. If you have any other problems with this, set the channel or global variable sdp_m_per_ptime=false to completely disable the default correct behaviour 2011-09-07 08:07:04 -05: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
Anthony Minessale 96ddc51faa split on space not colon 2011-09-06 13:56:44 -05:00
Anthony Minessale 2b7a830d6d allow duplicate headers to be parsed into events received on the wire 2011-09-06 13:56:21 -05:00
Anthony Minessale fb5f29c2fb speed up restart speed of profiles 2011-09-06 12:53:29 -05:00
Anthony Minessale c6c247d35c FS-3543 --resolve nevermind, found it 2011-09-06 11:30:28 -05:00
Jeff Lenk 698a50298a Revert "FS-3080 --resolve only allow when not playing message"
This reverts commit d2daa44d8c.

Working on a better fix
2011-09-06 11:51:29 -05:00
Jeff Lenk 40990c044c FS-3527 --resolve Syntax Error when using MSSQL in core 2011-09-05 14:40:49 -05:00
Jeff Lenk 2da308c115 correct labor day holiday example 2011-09-05 14:07:49 -05:00
Mathieu Rene 8974f9d62e mod_voicemail: use vm_email as notification address if vm_notify_email isn't set (that behavior was in voicemail_leave_main but not in deliver_vm) 2011-09-05 17:34:39 +02:00
Jeff Lenk a966c2b0ef vs2010 reswig 2011-09-04 11:09:23 -05:00
Anthony Minessale fba22dc7e9 don't parse signals in the set_running_state function to avoid livelock situation 2011-09-02 16:59:59 -05:00
Anthony Minessale 6dd1264d08 add support for global nameseace in chat interface to bind to unhandled messages 2011-09-02 14:41:25 -05:00
Stefan Knoblich d0308aaea2 [SDK] Clean up symbol visibility flags and compiler vendor handling
Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2011-09-02 22:48:03 +02:00
Brian West 6d76dda7f5 swigall 2011-09-02 21:03:21 -05:00
Anthony Minessale 798651b8f2 update doc 2011-09-02 10:12:14 -05:00
Anthony Minessale f20b605dfc typo 2011-09-02 09:50:24 -05:00
Anthony Minessale 42b64ccd67 get rid of digit_action_set target and add target,bind_target params to bind_digit_action 2011-09-02 09:34:40 -05:00
Jeff Lenk 2689081bae vs2010 reswig 2011-09-01 21:16:22 -05:00
Anthony Minessale 7efa4fb209 FS-3532 --resolve 2011-09-01 15:10:23 -05:00
Anthony Minessale 2e9724d2ec pass cancel_cause into enterprise_originate 2011-09-01 12:37:58 -05:00
Anthony Minessale 4f58ad4fb7 misplaced ! 2011-09-01 12:25:08 -05:00
Anthony Minessale cf9859ea69 add digit_action_set_target app that can set the target (direction of the dtmf flow and subsequent channel who gets the events) to self or peer (bridged channel when possible) 2011-09-01 10:11:24 -05:00
Travis Cross 3a352e67f4 bump to zeromq-2.1.9 2011-09-01 15:53:03 +00: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 e817795e84 hrm 2011-09-01 03:31:47 -05:00
Brian West a5ae0e32d6 swigall 2011-09-01 03:22:30 -05:00
Anthony Minessale bff473bf32 antibiotics for our latest sonus infection 2011-08-31 19:30:58 -05:00
Anthony Minessale 996b304019 add xferext command to sendmsg parser so you can send a list of instructions to a channel and build and extension and transfer to it from esl 2011-08-31 19:30:58 -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
Michael S Collins ead5790c99 Update ChangeLog through Aug 11 2011-08-31 16:36:51 -07:00
Michael S Collins fd83dc8e9e Update ChangeLog through July 31 2011-08-31 15:44:59 -07:00
Michal Bielicki - cypromis b9d5dff3d8 no gccisms in Makefile.am please ... 2011-09-01 00:18:44 +02:00
Jeff Lenk 882ebd6777 FS-3527 this fixes part of the problem with MSSQL 2011-08-31 16:04:20 -05:00
Anthony Minessale 8f67d2fbfb typo 2011-08-31 13:52:21 -05:00
dschreiber ed0ac0358c Fix to allow setting a proxy properly when manually injecting notifies 2011-08-31 13:36:20 -07:00