Commit Graph

2577 Commits

Author SHA1 Message Date
Travis Cross 6a5595b049 Improve our .gitignore files
Avoid ignoring files actually in our tree, and ignore some generated
files that were not being ignored previously.
2013-07-27 03:41:11 +00:00
Anthony Minessale d2a2e4ce15 FS-5568 --resolve the real problem is that L=-1 is not valid because the L param is about how many times to generate the output while generating the tone so -1 is impossible because it can never end to let you hear it. The real fix is to not allow -1 loops=-1 is the correct way to do this because that is parsed after the tone is generated and repeats the entire thing. Doing something like L=100 actually generates the whole slinear audio 100 times into memore where loops=100 only generates the little snippet and repeats it after it was generated. 2013-07-02 08:44:47 -05:00
Nathan Neulinger 32adc789f6 make noexpandtab explicit in all vim modelines other than xml files 2013-06-25 11:50:17 -05:00
Moises Silva e5f2282fe1 OPENZAP-215 --resolve
The state FTDM_CHANNEL_STATE_RINGING is not used when there is media available. We have
FTDM_CHANNEL_PROGRESS_MEDIA for that, therefore the pri_acknowledge() call should not set
the info argument to avoid sending an indication of media to the other end, as that may cause
the other end to not generate any ringing tone and at that moment we will not be generating
any ringing tone either and the caller will hear only silence
2013-06-23 21:52:31 -04:00
Brian West b4ed2f55bf Up this buffer to prevent boxes from locking up if they receive more than 1000 bytes. 2013-06-04 17:10:05 -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 5154bd847b ftmod_libpri: Fix channel iterator memory leak
Keep the original iterator around to be able to actually free it
after use.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-06-01 21:09:48 +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 8019af49a4 ftmod_libpri: Fix possible NULL-ptr dereference crash in on_restart(_ack)()
Catch single channel RESTART/RESTART ACK events for non-B-channels,
that would lead to a NULL pointer dereference, because those do not have
per-channel private data (chan->call_data = chan_priv == NULL).

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-05-21 17:50:54 +02:00
Stefan Knoblich 39fb4544dd FreeTDM: ftmod_misdn uses clock_gettime() which is in librt, add a check
Fixes -Wl,-z,now / -Wl,-z,defs errors about undefined symbols.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-05-10 19:04:10 +02:00
Stefan Knoblich 80a2b76620 FreeTDM: Make libpri pri_version() check -Wunused-but-set-variable safe
Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-05-10 19:04:10 +02:00
Stefan Knoblich 284ce5407b FreeTDM: Move external ftmod_* library dependencies to _LIBADD
Making the build -Wl,--as-needed safe.
Tested on Centos 5.x + Gentoo.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-05-10 19:04:10 +02:00
Stefan Knoblich b793ccbe43 FreeTDM: Fix implicit conversion between enumeration types error
Full clang error message:

  error: implicit conversion from enumeration type 'ftdm_bool_t' to
  different enumeration type 'ftdm_status_t' [-Werror,-Wconversion]

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-05-10 19:04:10 +02:00
Stefan Knoblich cbf22d8a32 FreeTDM: Silence -Wtautological-compare warnings emitted by clang
Fixes "warning: comparison of unsigned expression >= 0 is always true".

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-05-10 19:04:09 +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
Stefan Knoblich 81702d18fb FreeTDM: Add ftdm_unused_arg() macro to silence "unused parameter" compiler warnings
Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-05-06 17:50:10 +02:00
Moises Silva 4ff826c27d OPENZAP-200 --resolve
Patch provided by: Spencer Thomason

Implement appropiate caller/called TON in ftmod_libpri
2013-04-09 12:29:47 -04:00
David Yat Sin fb9163fe5a Fix for not flushing DTMF buffer at end of call 2013-03-21 10:41:16 -04:00
David Yat Sin 20110f4569 Freetdm - ISDN:Fix for race condition where we receive a new call, and did not finish clearing existing call internally. 2013-03-19 14:32:03 -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
David Yat Sin 187d55c7ea Updating documentation for send-connect-ack 2013-02-19 17:00:03 -05:00
David Yat Sin 79324e1fe9 Changed default setting for 5ESS to send CONNECT ACK to match spec 2013-02-19 16:56:11 -05:00
Moises Silva 7c6ba6a34c OPENZAP-207 --resolve Rework the zt_read function
Break the read loop when receiving ELAST
2013-02-11 11:35:30 -05:00
Anthony Minessale ff5b702886 FS-4971 please try this 2013-01-17 09:03:40 -06:00
Moises Silva 29bfcb16be freetdm: ftmod_pritap: Allow specifying different audio mixing modes 2013-01-11 14:52:33 -05:00
Stefan Knoblich 42bb1040de ftmod_pritap: Use strcmp() for "none" and "all" in parse_debug()
Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-01-10 18:41:16 +01:00
Stefan Knoblich fe4d5748c6 ftmod_pritap: Hexdump I/O buffers if q921_raw debug is enabled, improve parse_debug()
Add support for "q921_all"/"q931_all" to parse_debug() ("debug" span parameter), taken from
ftmod_libpri.

Passive libpri's raw dump feature is broken (e.g. I-frames missing), so
add "q921_raw" hexdump support to the pritap I/O read/write function.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-01-10 18:31:30 +01:00
Stefan Knoblich bfef3e57c4 ftmod_libpri: Disable on_facility() event handler on older libpri versions
Those that lack PRI_EVENT_FACILITY (<= 1.4.10)

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-01-08 15:07:29 +01:00
Stefan Knoblich 221bcc9e90 ftmod_libpri: Also conditionally disable pri_set_service_message_support() call
Same as pri_maintenance_service(), use HAVE_LIBPRI_MAINT_SERVICE.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-01-08 15:07:29 +01:00
Stefan Knoblich 88e75bf9d7 ftmod_libpri: Add configure check for pri_maintenance_service()
Said function has been added in libpri-1.4.11 and breaks
building with older libpri versions (i.e. the passive one for ftmod_pritap).

Check for pri_maintenance_service() in configure and disable
the "maintenance" subcommand if it is not available.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-01-08 15:07:29 +01:00
Stefan Knoblich 2bb859e2b4 ftmod_misdn: Fix brown paperbag logic bug in handle_b_channel_event()
Yeah, right, discard the incoming audio data when the b-channel is active...

Reverse the check, so ftdm_read() on an active mISDN b-channel will
be able to read audio data from the RX socketpair and not kill
the call from repeatedly timing out in poll().

Fixes:
    [WARNING] mod_freetdm.c:775 Too many timeouts while waiting I/O in channel FreeTDM/1:1/XX device 1:1!
    [ERR] mod_freetdm.c:820 clearing IO in channel FreeTDM/1:1/XX device 1:1!

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-01-07 18:04:00 +01:00
Stefan Knoblich 95ac0ecc2f ftmod_misdn: Retry recvfrom() in case of EAGAIN
epoll_wait() on the B-channel socket may indicate pending messages, but
recvfrom() returns EAGAIN. Retry a few more times (up to 5 retries)
to get the pending message.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2013-01-07 13:35:38 +01:00
Stefan Knoblich f2c325bf3e ftmod_misdn: Fix %lx vs.__u64 format string error
Fixes:
      src/ftmod/ftmod_misdn/ftmod_misdn.c:924:3: error: format '%lx' expects
      argument of type 'long unsigned int', but argument 13 has type '__u64'
      [-Werror=format]

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
Reported-by: hyper_ch #freetdm @ irc.freenode.net
2013-01-06 13:47:06 +01:00
Moises Silva 56846c02c6 freetdm: ftmod_analog_em: If the destination number DTMF was already generated, do not generate it again
This bug was cause when answer-supervision is used because now we do not move from DIALING to UP
         as soon as the line is ringing, but instead we wait for the CAS bit change
2012-12-20 12:18:24 -05:00
Moises Silva 27a8ec93de freetdm: Added Analog E&M outbound call answer supervision
You must add answer-supervision=yes in your freetdm.conf.xml
         Also added dial-timeout parameter which was previously hard-coded
2012-12-18 22:55:14 -05:00
Moises Silva 6e9dc465cc freetdm: ftmod_analog_em: Fix incorrect read length 2012-12-18 14:24:00 -05:00
Moises Silva 6f5438eded freetdm: ftmod_zt:
Handle driver events while reading media

         ftmod_analog_em:
         Initialize read data len to avoid crashing when
         the freetdm read function does not read anything
2012-12-18 14:23:31 -05:00
Moises Silva a7f8e4259e OPENZAP-201 --resolve 2012-11-26 14:26:41 -05:00
Moises Silva b64cc02390 freetdm: ftmod_zt - Declare tone mode at the top to avoid compilation errors 2012-11-19 10:24:25 -05:00
Moises Silva db673a043f freetdm: ftmod_zt - Integrated HW DTMF support 2012-11-18 23:57:52 -05:00
Matteo Brancaleoni 8c58a10999 ftmod_libpri: Rework handling of peer-initiated hangup events
Use peerhangup flag variable to track whether a hangup has been
initiated by the peer or libpri itself (e.g. Layer 2 timeouts).

These changes fix a couple of problems with hangup events not being
handled properly in some situations:

  - Call abort caused by incoming RESTART on a channel in use
  - T309 timeout after L2 loss
  - Improved hangup handling in libpri-side on_hangup() event handler
    and state_advance() (FreeTDM side)

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-11-12 22:54:27 +01:00
Moises Silva 9bc3dfc874 fretdm: little white lie 2012-11-09 16:53:39 -05:00
Michael Jerris 306c2fa205 don't skip sending cid number if there is a + in it 2012-11-05 15:12:38 -05:00
Moises Silva d39269b217 freetdm: ftmod_pritap - Fix memory corruption due to freeing a call
pointer that was still in use
2012-10-29 15:34:08 -04:00