2625 Commits

Author SHA1 Message Date
Moises Silva
e4e6fa65d0 freetdm: ftmod_pritap - Lock the channel during call setup
Destroy the peer before the master channel
2012-10-29 15:33:41 -04:00
Moises Silva
d88e79e632 freetdm: ftmod_pritap - Use uint8 for flags (I smell a bug somewhere with bitfields) 2012-10-29 15:33:31 -04:00
Moises Silva
7d5a4a7172 freetdm: ftmod_pritap - Destroy call references as soon as possible 2012-10-29 15:33:22 -04:00
Moises Silva
3cb1fd267f Try to fix pritap segfault 2012-10-29 15:33:09 -04:00
Moises Silva
0a92094995 freetdm: ftmod_pritap - Add interface type parameter (cpe/net) 2012-10-29 15:32:57 -04:00
Moises Silva
d2a73cc0e4 Updated ftmod_pritap.c to send SIGEVENT_UP when the tapped line is answered 2012-10-29 15:32:16 -04:00
Matteo Brancaleoni
3d090357cf ftmod_libpri: Always send PROGRESS messages with PROGRESS INDICATOR IE
PROGRESS without PROGRESS INDICATOR IE is invalid according to Q.931,
so always call pri_progress() with info flag set, even if we do not
have media yet.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-10-29 11:58:22 +01:00
Moises Silva
542e7153fc freetdm: Fix compilation with old libpri.h where AOC is not available 2012-10-23 13:01:40 -04:00
Moises Silva
004ebe4f12 OPENZAP-196 Fix casting issue - Apparently this fixes libpri BRI issues 2012-10-23 13:00:16 -04:00
Stefan Knoblich
1d605ef47b FreeTDM: Add ftdm_clamp_safe()
"Safer" version of ftdm_clamp(), that swaps min/max parameters if
vmin happens to be larger than vmax, making sure the output will
always satisfy vmin <= x <= vmax.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-10-06 16:50:55 +02:00
Stefan Knoblich
90691b36c4 FreeTDM: Remove trailing whitespace at end of ftdm_{copy,set}_string()
Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-10-06 16:50:55 +02:00
David Yat Sin
15ef8925c3 Fix for Q.921 not always recovering 2012-09-27 23:48:18 -04:00
Jeff Lenk
b15468d1aa OPENZAP-192 --resolve 2012-09-26 08:11:52 -05:00
Moises Silva
fff6e50a9b freetdm: Fix E&M answer procedure for DAHDI 2012-09-19 20:03:09 -04:00
Brian West
98063854c6 This already has a new line in it 2012-09-19 15:54:38 -05:00
David Yat Sin
7018a15bf1 fix for compile warning 2012-09-19 15:25:38 -04:00
David Yat Sin
aa8f48c7e3 Fix for compile warning 2012-09-18 23:14:27 -04:00
David Yat Sin
2aa5b78514 freetdm: Fix for DL re-establishment on NFAS 2012-09-18 23:11:05 -04:00
Stefan Knoblich
715c538922 ftmod_misdn: Handle incoming PH_CONTROL_IND messages on b-channels
Also add a few more PH_CONTROL_IND message types.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-09-17 21:43:59 +02:00
Stefan Knoblich
bc414df510 ftmod_misdn: Discard incoming audio data if b-channel is not active
Silences the "Device or resource busy" error messages caused by the RX pipe
filling up.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-09-17 21:40:59 +02:00
Stefan Knoblich
e561709f5a mod_freetdm: Use new SWITCH_DEFAULT_CLID_NUMBER constant
Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-09-17 21:32:18 +02:00
Brian West
fdf7623f90 freetdm_outbound_npi is actually useful. 2012-09-17 10:14:32 -05:00
Stefan Knoblich
dd4a995b34 ftmod_libpri: Default disable NT-mode idle b-channel restart
Some people, it seems, were having sleepless nights from the
log messages this feature produces every 15 minutes.

Default disable the feature, because i hate repeating myself
over and over, explaining them this is a non-issue and intended
behaviour and how to disable it in the config.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-09-16 14:07:55 +02:00
Jeff Lenk
84bace0701 freetdm trivial build warnings on windows 2012-09-14 16:52:05 -05:00
David Yat Sin
eb7b98c699 freetdm: Fix for HW DTMF events not passed to signalling module in transfer mode 2012-09-13 12:34:49 -04:00
David Yat Sin
83d7f4282c Fix for compilation errors 2012-09-13 00:00:26 -04:00
Stefan Knoblich
210e501782 mod_freetdm: Remove duplicate assignment.
curr is getting set in the for() statement (again). Use that, remove
the other line setting it.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-09-13 01:02:31 +02:00
Stefan Knoblich
42c76fa81b mod_freetdm: Coding style and whitespace clean up.
No functional changes.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-09-13 01:01:19 +02:00
Stefan Knoblich
b9a45c75f4 mod_freetdm: Remove duplicate code block in channel_on_hangup(), after merge.
Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-09-13 00:58:49 +02:00
David Yat Sin
9297863a4d Fix for compile warnings 2012-09-12 13:13:51 -04:00
David Yat Sin
4340c4d74c Merged latest FreeTDM code from Sangoma's repo
Merge remote branch 'smgfs/master'

Conflicts:
	build/modules.conf.in
	configure.in
	libs/esl/fs_cli.c
	libs/freetdm/mod_freetdm/mod_freetdm.c
	libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h
	libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cfg.c
	libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_logger.c
	libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c
	src/include/switch_types.h
	src/mod/applications/mod_commands/mod_commands.c
	src/mod/applications/mod_spandsp/mod_spandsp.c
	src/mod/endpoints/mod_opal/mod_opal.cpp
	src/mod/endpoints/mod_opal/mod_opal.h
	src/mod/endpoints/mod_sofia/mod_sofia.h
	src/mod/endpoints/mod_sofia/rtp.c
	src/switch.c
	src/switch_core.c
	src/switch_rtp.c
2012-09-12 11:05:39 -04:00
David Yat Sin
c425955670 Merge branch 'nsg-4.3' 2012-09-11 15:01:26 -04:00
David Yat Sin
848db87c26 Merge branch 'releases.3.5' into nsg-4.3 2012-09-11 14:56:22 -04:00
David Yat Sin
fcbfc69466 mod_media_gateway now specifies physical channel when opening TDM terminations 2012-09-11 14:45:57 -04:00
Stefan Knoblich
143c599066 mod_freetdm: Add missing break in on_clear_channel_signal() FTDM_SIGEVENT_UP case statement.
FTDM_SIGEVENT_UP was falling through to FTDM_SIGEVENT_PROGRESS_MEDIA, which
does (almost) the same, so no harm, but still fix it.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-09-11 18:13:33 +02:00
Stefan Knoblich
adfb2ca385 mod_freetdm: Whitespace, indentation and coding-style clean up.
No functional changes.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-09-11 18:13:33 +02:00
Stefan Knoblich
a478a5de04 ftmod_libpri: Skip channels marked in use during NT-mode idle restart.
Channels can be in DOWN state but reserved by an incoming call
(FTDM_CHANNEL_INUSE flag). Additionally check the flag in on_timeout_t3xx()
and skip those channels.

Reported-by: privi #freetdm @ irc.freenode.net
Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-09-11 11:09:40 +02:00
David Yat Sin
c0e4ca47bc Freetdm: ISDN fix for link not always recovering after T1/E1 alarm 2012-09-11 01:22:31 -04:00
Stefan Knoblich
17329d04ad ftmod_libpri: Print warning message in lpwrap_stop_timer(), if timer is not on the active list
Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-09-07 00:04:40 +02:00
Stefan Knoblich
a035182582 ftmod_libpri: Append new lpwrap timers in correct order.
List is sorted in ascending order of expiration time,
fix the if clause in lpwrap_start_timer().

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-09-07 00:02:32 +02:00
David Yat Sin
f49ee5ebf9 FreeTDM: Added function to listen for mg-tdm-dtmfremoval command to disable/enable DTMF removal per channel 2012-09-06 16:53:58 -04:00
Nenad Corbic
0c49449746 Changed MTP2 events from ERROR to WARN 2012-09-05 23:06:08 -04:00
Nenad Corbic
c260bc4b8a Update mtp2 loglevels
Alignment loss - wanring
Alignment up - info
2012-09-05 18:03:08 -04:00
Moises Silva
15fa227699 freetdm: Fix ss7 logger broken compilation 2012-09-05 02:26:39 -04:00
Stefan Knoblich
4ffcb7c9ef ftmod_libpri: Improve RESTART handling, add PTP NT idle channel restart and T316.
Do not try to send RESTART on BRI PTMP spans, libpri will just print
an error and do nothing, causing the channels to be stuck in RESTART
forever.

Add T316 (RESTART ACK timeout), which is not implemented by libpri.
The default timeout is 30 seconds (Q.931 recommends 2 minutes, but
that is a little long and libpri layer 2 is being stupid) and the
restart attempt limit to 3 (instead of 2).

Periodically send RESTART on idle b-channels in PTP NT mode.
Default interval is 15 minutes, feature can be disabled by setting
"idle_restart_interval" to 0 in the span configuration.

Allow timeout / interval values to have an additional time unit
suffix for convenience reasons, the default (no unit specified)
is milliseconds, valid units include:

	w (week), d (day), h (hour), m (minute), s (second)

Only full integers are accepted, no fractional numbers, valid examples:

	2w   = two weeks
	37m  = 37 minutes
	1h   = 1 hour

Combinations of multiple numbers and units (e.g. "1w5d") are not supported.

New span configuration parameters:

	idle_restart_interval		(milliseconds / time unit suffix /
					 0 = disabled)

	t316 / restart_timeout		(milliseconds / time unit suffix)
	t316_limit / restart_attempts	(number of max. attempts)

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-09-05 00:42:32 +02:00
Stefan Knoblich
1a47eb933b ftmod_libpri: Reset timer parameters in lpwrap_run_expired() before invoking the callback.
Allowing us to restart the timer from the callback with lpwrap_start_timer().

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-09-05 00:42:32 +02:00
David Yat Sin
3a57b0bed6 Merge remote branch 'fsorig/master' into nfas
Conflicts:
	libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_cntrl.c
	libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_stack_hndl.c
2012-09-03 22:34:13 -04:00
David Yat Sin
b0f6e0384d freetdm - ISDN:Fix for invalidating logical span id = 0 for nfas 2012-09-03 22:26:03 -04:00
Stefan Knoblich
f012b7abf8 ftmod_libpri: Major rework of runtime thread, lpwrap event loop, restart b-channel handling and some new features.
Add per b-channel private data (ftdm_libpri_b_data_t), move the q.931 libpri
call pointer into it and use channel->call_data to make it accessible.

Use ftdm_channel_wait() instead of select() to wait for I/O events on
the D-Channel and rewrite the timeout handling, adding support for custom
timers that can be added to the b-channel private data and started/stopped
with lpwrap_timer_start()/_stop().

The (sorted) list of active lpwrap timers is protected by the timer_mutex,
which is initialized in the now unified lpwrap_init_pri() (see below) and
destroyed in the new lpwrap_destroy_pri() function.

Unify lpwrap_init_pri() and lpwrap_init_bri(). Use the span type to select
BRI/PRI and Point-to-Point vs. Multipoint settings.

Use the new custom lpwrap timer API to implement T302 (aka overlap receiving
digit timeout). The default T302 timeout is 3000 miliseconds and can be set
via the "digit_timeout" or "t302" span configuration parameter
(0 = disable timer, valid range = 3000 ... 30000 miliseconds).

The lpwrap_pri_init() changes made it neccessarry to rewrite the span runtime
thread event loop. The d-channel initialization and libpri event handler
registration have been moved out of the event loop. The b-channel restart
handling in the event loop has been left as-is, pending a further clean up in
the future.

Rename on_info() to on_information() and add a new on_keypad_digit() event
handler to convert incoming KEYPAD DIGIT messages to channel DTMF events
(only useful on BRI PTMP NT-mode).

The channel restart handling has been improved to distinguish between locally
triggered and restarts caused by the remote end (= incoming RESTART messages).
Restarts on the D-Channel now use pri_restart(), causing a Q.921 reset on
the span.

Large patch, i'd have loved to split this into smaller pieces and actually
test some of the bits more toroughly (restart handling), but some people
are f*cking annoying, so here it is.

Signed-off-by: Stefan Knoblich <stkn@openisdn.net>
2012-09-03 20:35:48 +02:00
Kapil
4569bbec22 redmine task# 5692 fix, changing log level for link error cases 2012-08-31 11:54:24 -04:00