[asterisk-commits] oej: branch oej/rana-dtmf-duration-1.8 r338662 - in /team/oej/rana-dtmf-durat...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Fri Sep 30 10:38:01 CDT 2011
Author: oej
Date: Fri Sep 30 10:37:55 2011
New Revision: 338662
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=338662
Log:
Upgrade
Modified:
team/oej/rana-dtmf-duration-1.8/ (props changed)
team/oej/rana-dtmf-duration-1.8/CHANGES
team/oej/rana-dtmf-duration-1.8/Makefile
team/oej/rana-dtmf-duration-1.8/Makefile.rules
team/oej/rana-dtmf-duration-1.8/UPGRADE.txt
team/oej/rana-dtmf-duration-1.8/addons/chan_mobile.c
team/oej/rana-dtmf-duration-1.8/addons/chan_ooh323.c
team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.c
team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.h
team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooGkClient.c
team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/oochannels.c
team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooh323.c
team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooq931.c
team/oej/rana-dtmf-duration-1.8/agi/agi.xml
team/oej/rana-dtmf-duration-1.8/apps/app_dial.c
team/oej/rana-dtmf-duration-1.8/apps/app_directed_pickup.c
team/oej/rana-dtmf-duration-1.8/apps/app_echo.c
team/oej/rana-dtmf-duration-1.8/apps/app_followme.c
team/oej/rana-dtmf-duration-1.8/apps/app_macro.c
team/oej/rana-dtmf-duration-1.8/apps/app_meetme.c
team/oej/rana-dtmf-duration-1.8/apps/app_minivm.c
team/oej/rana-dtmf-duration-1.8/apps/app_mixmonitor.c
team/oej/rana-dtmf-duration-1.8/apps/app_morsecode.c
team/oej/rana-dtmf-duration-1.8/apps/app_mp3.c
team/oej/rana-dtmf-duration-1.8/apps/app_queue.c
team/oej/rana-dtmf-duration-1.8/apps/app_saycounted.c
team/oej/rana-dtmf-duration-1.8/apps/app_voicemail.c
team/oej/rana-dtmf-duration-1.8/bridges/bridge_multiplexed.c
team/oej/rana-dtmf-duration-1.8/build_tools/cflags-devmode.xml
team/oej/rana-dtmf-duration-1.8/build_tools/cflags.xml
team/oej/rana-dtmf-duration-1.8/build_tools/embed_modules.xml
team/oej/rana-dtmf-duration-1.8/build_tools/mkpkgconfig
team/oej/rana-dtmf-duration-1.8/cdr/cdr_custom.c
team/oej/rana-dtmf-duration-1.8/cdr/cdr_manager.c
team/oej/rana-dtmf-duration-1.8/cdr/cdr_sqlite3_custom.c
team/oej/rana-dtmf-duration-1.8/cdr/cdr_syslog.c
team/oej/rana-dtmf-duration-1.8/cel/cel_custom.c
team/oej/rana-dtmf-duration-1.8/cel/cel_odbc.c (props changed)
team/oej/rana-dtmf-duration-1.8/cel/cel_sqlite3_custom.c
team/oej/rana-dtmf-duration-1.8/channels/chan_agent.c
team/oej/rana-dtmf-duration-1.8/channels/chan_alsa.c
team/oej/rana-dtmf-duration-1.8/channels/chan_console.c
team/oej/rana-dtmf-duration-1.8/channels/chan_dahdi.c
team/oej/rana-dtmf-duration-1.8/channels/chan_h323.c
team/oej/rana-dtmf-duration-1.8/channels/chan_iax2.c
team/oej/rana-dtmf-duration-1.8/channels/chan_mgcp.c
team/oej/rana-dtmf-duration-1.8/channels/chan_misdn.c
team/oej/rana-dtmf-duration-1.8/channels/chan_oss.c
team/oej/rana-dtmf-duration-1.8/channels/chan_sip.c
team/oej/rana-dtmf-duration-1.8/channels/chan_skinny.c
team/oej/rana-dtmf-duration-1.8/channels/chan_unistim.c
team/oej/rana-dtmf-duration-1.8/channels/chan_usbradio.c
team/oej/rana-dtmf-duration-1.8/channels/chan_vpb.cc
team/oej/rana-dtmf-duration-1.8/channels/sig_pri.c
team/oej/rana-dtmf-duration-1.8/channels/sig_ss7.c
team/oej/rana-dtmf-duration-1.8/channels/sip/include/sip.h
team/oej/rana-dtmf-duration-1.8/codecs/gsm/Makefile
team/oej/rana-dtmf-duration-1.8/configs/cel_odbc.conf.sample (props changed)
team/oej/rana-dtmf-duration-1.8/configs/manager.conf.sample
team/oej/rana-dtmf-duration-1.8/configs/res_pktccops.conf.sample
team/oej/rana-dtmf-duration-1.8/configs/sip.conf.sample
team/oej/rana-dtmf-duration-1.8/configure
team/oej/rana-dtmf-duration-1.8/configure.ac
team/oej/rana-dtmf-duration-1.8/contrib/init.d/rc.archlinux.asterisk
team/oej/rana-dtmf-duration-1.8/contrib/init.d/rc.redhat.asterisk
team/oej/rana-dtmf-duration-1.8/contrib/realtime/mysql/iaxfriends.sql (props changed)
team/oej/rana-dtmf-duration-1.8/contrib/realtime/mysql/meetme.sql (props changed)
team/oej/rana-dtmf-duration-1.8/contrib/realtime/mysql/sipfriends.sql (props changed)
team/oej/rana-dtmf-duration-1.8/contrib/realtime/mysql/voicemail.sql (props changed)
team/oej/rana-dtmf-duration-1.8/contrib/realtime/postgresql/realtime.sql (props changed)
team/oej/rana-dtmf-duration-1.8/contrib/scripts/get_ilbc_source.sh
team/oej/rana-dtmf-duration-1.8/funcs/func_curl.c
team/oej/rana-dtmf-duration-1.8/funcs/func_frame_trace.c
team/oej/rana-dtmf-duration-1.8/funcs/func_odbc.c
team/oej/rana-dtmf-duration-1.8/include/asterisk/app.h
team/oej/rana-dtmf-duration-1.8/include/asterisk/autoconfig.h.in
team/oej/rana-dtmf-duration-1.8/include/asterisk/cel.h
team/oej/rana-dtmf-duration-1.8/include/asterisk/channel.h
team/oej/rana-dtmf-duration-1.8/include/asterisk/config.h
team/oej/rana-dtmf-duration-1.8/include/asterisk/event.h
team/oej/rana-dtmf-duration-1.8/include/asterisk/frame.h
team/oej/rana-dtmf-duration-1.8/include/asterisk/logger.h
team/oej/rana-dtmf-duration-1.8/include/asterisk/manager.h
team/oej/rana-dtmf-duration-1.8/include/asterisk/optional_api.h
team/oej/rana-dtmf-duration-1.8/include/asterisk/test.h
team/oej/rana-dtmf-duration-1.8/main/Makefile
team/oej/rana-dtmf-duration-1.8/main/app.c
team/oej/rana-dtmf-duration-1.8/main/asterisk.c
team/oej/rana-dtmf-duration-1.8/main/cel.c
team/oej/rana-dtmf-duration-1.8/main/channel.c
team/oej/rana-dtmf-duration-1.8/main/config.c
team/oej/rana-dtmf-duration-1.8/main/dial.c
team/oej/rana-dtmf-duration-1.8/main/event.c
team/oej/rana-dtmf-duration-1.8/main/features.c
team/oej/rana-dtmf-duration-1.8/main/file.c
team/oej/rana-dtmf-duration-1.8/main/logger.c
team/oej/rana-dtmf-duration-1.8/main/manager.c
team/oej/rana-dtmf-duration-1.8/main/netsock2.c
team/oej/rana-dtmf-duration-1.8/main/pbx.c
team/oej/rana-dtmf-duration-1.8/main/rtp_engine.c
team/oej/rana-dtmf-duration-1.8/main/test.c
team/oej/rana-dtmf-duration-1.8/makeopts.in
team/oej/rana-dtmf-duration-1.8/res/ais/evt.c
team/oej/rana-dtmf-duration-1.8/res/res_config_odbc.c
team/oej/rana-dtmf-duration-1.8/res/res_config_pgsql.c
team/oej/rana-dtmf-duration-1.8/res/res_jabber.c
team/oej/rana-dtmf-duration-1.8/res/res_musiconhold.c
team/oej/rana-dtmf-duration-1.8/res/res_rtp_asterisk.c
team/oej/rana-dtmf-duration-1.8/res/res_srtp.c
team/oej/rana-dtmf-duration-1.8/sounds/Makefile (contents, props changed)
team/oej/rana-dtmf-duration-1.8/tests/test_amihooks.c
team/oej/rana-dtmf-duration-1.8/tests/test_dlinklists.c
team/oej/rana-dtmf-duration-1.8/tests/test_gosub.c
team/oej/rana-dtmf-duration-1.8/tests/test_linkedlists.c
team/oej/rana-dtmf-duration-1.8/tests/test_locale.c
team/oej/rana-dtmf-duration-1.8/tests/test_logger.c
team/oej/rana-dtmf-duration-1.8/tests/test_pbx.c
team/oej/rana-dtmf-duration-1.8/tests/test_security_events.c
team/oej/rana-dtmf-duration-1.8/utils/utils.xml
Propchange: team/oej/rana-dtmf-duration-1.8/
------------------------------------------------------------------------------
automerge = Is-there-life-off-net?
Propchange: team/oej/rana-dtmf-duration-1.8/
('svn:mergeinfo' removed)
Propchange: team/oej/rana-dtmf-duration-1.8/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Fri Sep 30 10:37:55 2011
@@ -1,1 +1,1 @@
-/branches/1.8:1-332432
+/branches/1.8:1-338661
Modified: team/oej/rana-dtmf-duration-1.8/CHANGES
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/CHANGES?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/CHANGES (original)
+++ team/oej/rana-dtmf-duration-1.8/CHANGES Fri Sep 30 10:37:55 2011
@@ -44,7 +44,7 @@
* Slave SIP channels now set HASH(SIP_CAUSE,<slave-channel-name>) on each
response. This permits the master channel to know how each channel dialled
in a multi-channel setup resolved in an individual way. This carries a
- performance penalty and can be disabled in sip.conf using the
+ performance penalty and must be enabled in sip.conf using the
'storesipcause' option.
* Added 'externtcpport' and 'externtlsport' options to allow custom port
configuration for the externip and externhost options when tcp or tls is used.
@@ -284,7 +284,7 @@
* A new option, 'I' has been added to both app_queue and app_dial.
By setting this option, Asterisk will not update the caller with
connected line changes or redirecting party changes when they occur.
- * A 'relative-peroidic-announce' option has been added to queues.conf. When
+ * A 'relative-periodic-announce' option has been added to queues.conf. When
enabled, this option will cause periodic announce times to be calculated
from the end of announcements rather than from the beginning.
* The autopause option in queues.conf can be passed a new value, "all." The
Modified: team/oej/rana-dtmf-duration-1.8/Makefile
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/Makefile?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/Makefile (original)
+++ team/oej/rana-dtmf-duration-1.8/Makefile Fri Sep 30 10:37:55 2011
@@ -278,7 +278,7 @@
ifneq ($(findstring darwin,$(OSARCH)),)
_ASTCFLAGS+=-D__Darwin__
SOLINK=-bundle -Xlinker -macosx_version_min -Xlinker 10.4 -Xlinker -undefined -Xlinker dynamic_lookup -force_flat_namespace
- ifeq ($(shell /usr/bin/sw_vers -productVersion | cut -c1-4),10.6)
+ ifeq ($(shell if test `/usr/bin/sw_vers -productVersion | cut -c4` -gt 5; then echo 6; else echo 0; fi),6)
SOLINK+=/usr/lib/bundle1.o
endif
_ASTLDFLAGS+=-L/usr/local/lib
@@ -541,6 +541,7 @@
$(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/keys"
$(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/phoneprov"
$(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/static-http"
+ $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/sounds"
$(INSTALL) -d "$(DESTDIR)$(ASTMANDIR)/man8"
$(INSTALL) -d "$(DESTDIR)$(AGI_DIR)"
$(INSTALL) -d "$(DESTDIR)$(ASTDBDIR)"
@@ -603,17 +604,7 @@
@exit 1
endif
-preinstall_spaces:
-ifneq ($(MAKE_PREINSTALL),)
- $(MAKE_PREINSTALL)
-endif
-
-postinstall_spaces:
-ifneq ($(MAKE_POSTINSTALL),)
- $(MAKE_POSTINSTALL)
-endif
-
-install: preinstall_spaces badshell bininstall datafiles postinstall_spaces
+install: badshell bininstall datafiles
@if [ -x /usr/sbin/asterisk-post-install ]; then \
/usr/sbin/asterisk-post-install "$(DESTDIR)" . ; \
fi
@@ -650,32 +641,32 @@
$(INSTALL) -d "$(DESTDIR)$(ASTETCDIR)"
@for x in configs/*.adsi; do \
dst="$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x`" ; \
- if [ -f $${dst} ] ; then \
+ if [ -f "$${dst}" ] ; then \
echo "Overwriting $$x" ; \
else \
echo "Installing $$x" ; \
fi ; \
- $(INSTALL) -m 644 $$x "$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x`" ; \
+ $(INSTALL) -m 644 "$$x" "$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x`" ; \
done
samples: adsi
@echo Installing other config files...
@for x in configs/*.sample; do \
dst="$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x .sample`" ; \
- if [ -f $${dst} ]; then \
+ if [ -f "$${dst}" ]; then \
if [ "$(OVERWRITE)" = "y" ]; then \
- if cmp -s $${dst} $$x ; then \
+ if cmp -s "$${dst}" "$$x" ; then \
echo "Config file $$x is unchanged"; \
continue; \
fi ; \
- mv -f $${dst} $${dst}.old ; \
+ mv -f "$${dst}" "$${dst}.old" ; \
else \
echo "Skipping config file $$x"; \
continue; \
fi ;\
fi ; \
echo "Installing file $$x"; \
- $(INSTALL) -m 644 $$x $${dst} ;\
+ $(INSTALL) -m 644 "$$x" "$${dst}" ;\
done
if [ "$(OVERWRITE)" = "y" ]; then \
echo "Updating asterisk.conf" ; \
@@ -851,7 +842,7 @@
rm -f "$(DESTDIR)$(ASTMANDIR)/man8/safe_asterisk.8"
$(MAKE) -C sounds uninstall
-uninstall: preinstall_spaces _uninstall postinstall_spaces
+uninstall: _uninstall
@echo " +--------- Asterisk Uninstall Complete -----+"
@echo " + Asterisk binaries, sounds, man pages, +"
@echo " + headers, modules, and firmware builds, +"
Modified: team/oej/rana-dtmf-duration-1.8/Makefile.rules
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/Makefile.rules?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/Makefile.rules (original)
+++ team/oej/rana-dtmf-duration-1.8/Makefile.rules Fri Sep 30 10:37:55 2011
@@ -37,8 +37,8 @@
OPTIMIZE?=-O6
ifneq ($(findstring darwin,$(OSARCH)),)
- ifeq ($(shell /usr/bin/sw_vers -productVersion | cut -c1-4),10.6)
- # Snow Leopard has an issue with this optimization flag on large files (like chan_sip)
+ ifeq ($(shell if test `/usr/bin/sw_vers -productVersion | cut -c4` -gt 5; then echo 6; else echo 0; fi),6)
+ # Snow Leopard/Lion has an issue with this optimization flag on large files (like chan_sip)
OPTIMIZE+=-fno-inline-functions
endif
endif
Modified: team/oej/rana-dtmf-duration-1.8/UPGRADE.txt
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/UPGRADE.txt?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/UPGRADE.txt (original)
+++ team/oej/rana-dtmf-duration-1.8/UPGRADE.txt Fri Sep 30 10:37:55 2011
@@ -20,6 +20,10 @@
From 1.6.2 to 1.8:
+* chan_sip no longer sets HASH(SIP_CAUSE,<chan name>) on channels by default.
+ This must now be enabled by setting 'sipstorecause' to 'yes' in sip.conf.
+ This carries a performance penalty.
+
* Asterisk now requires libpri 1.4.11+ for PRI support.
* A couple of CLI commands in res_ais were changed back to their original form:
@@ -142,6 +146,18 @@
the connected line ID on outgoing call legs. The timing of some AMI
events/responses output the connected line ID as caller ID. These party ID's
are now separate.
+
+* The Dial application d and H options do not automatically answer the call
+ anymore. It broke DTMF attended transfers. Since many SIP and ISDN phones
+ cannot send DTMF before a call is connected, you need to answer the call
+ leg to those phones before using Dial with these options for them to have
+ any effect before the dialed party answers.
+
+* The outgoing directory (where .call files are read) now uses inotify to
+ detect file changes instead of polling the directory on a regular basis.
+ If your outgoing folder is on a NFS mount or another network file system,
+ changes to the files will not be detected. You can revert to polling the
+ directory by specifying --without-inotify to configure before compiling.
From 1.6.1 to 1.6.2:
Modified: team/oej/rana-dtmf-duration-1.8/addons/chan_mobile.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/addons/chan_mobile.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/addons/chan_mobile.c (original)
+++ team/oej/rana-dtmf-duration-1.8/addons/chan_mobile.c Fri Sep 30 10:37:55 2011
@@ -1321,21 +1321,10 @@
static int mbl_ast_hangup(struct mbl_pvt *pvt)
{
- int res = 0;
- for (;;) {
- if (pvt->owner) {
- if (ast_channel_trylock(pvt->owner)) {
- DEADLOCK_AVOIDANCE(&pvt->lock);
- } else {
- res = ast_hangup(pvt->owner);
- /* no need to unlock, ast_hangup() frees the
- * channel */
- break;
- }
- } else
- break;
- }
- return res;
+ if (pvt->owner) {
+ ast_hangup(pvt->owner);
+ }
+ return 0;
}
/*!
Modified: team/oej/rana-dtmf-duration-1.8/addons/chan_ooh323.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/addons/chan_ooh323.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/addons/chan_ooh323.c (original)
+++ team/oej/rana-dtmf-duration-1.8/addons/chan_ooh323.c Fri Sep 30 10:37:55 2011
@@ -1226,21 +1226,24 @@
ast_mutex_lock(&p->lock);
switch (condition) {
+ case AST_CONTROL_INCOMPLETE:
+ /* While h323 does support overlapped dialing, this channel driver does not
+ * at this time. Treat a response of Incomplete as if it were congestion.
+ */
case AST_CONTROL_CONGESTION:
if (!ast_test_flag(p, H323_ALREADYGONE)) {
- ooHangCall(callToken, OO_REASON_LOCAL_CONGESTED,
- AST_CAUSE_SWITCH_CONGESTION);
+ ooHangCall(callToken, OO_REASON_LOCAL_CONGESTED, AST_CAUSE_SWITCH_CONGESTION);
ast_set_flag(p, H323_ALREADYGONE);
}
break;
case AST_CONTROL_BUSY:
if (!ast_test_flag(p, H323_ALREADYGONE)) {
- ooHangCall(callToken, OO_REASON_LOCAL_BUSY, AST_CAUSE_USER_BUSY);
+ ooHangCall(callToken, OO_REASON_LOCAL_BUSY, AST_CAUSE_USER_BUSY);
ast_set_flag(p, H323_ALREADYGONE);
}
break;
case AST_CONTROL_HOLD:
- ast_moh_start(ast, data, NULL);
+ ast_moh_start(ast, data, NULL);
break;
case AST_CONTROL_UNHOLD:
ast_moh_stop(ast);
Modified: team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.c (original)
+++ team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.c Fri Sep 30 10:37:55 2011
@@ -63,6 +63,7 @@
}
memset(call, 0, sizeof(OOH323CallData));
ast_cond_init(&call->gkWait, NULL);
+ ast_mutex_init(&call->GkLock);
ast_mutex_init(&call->Lock);
call->pctxt = pctxt;
call->msgctxt = msgctxt;
Modified: team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.h
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.h?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.h (original)
+++ team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooCalls.h Fri Sep 30 10:37:55 2011
@@ -151,6 +151,7 @@
OOCTXT *msgctxt;
pthread_t callThread;
ast_cond_t gkWait;
+ ast_mutex_t GkLock;
ast_mutex_t Lock;
OOBOOL Monitor;
OOBOOL fsSent;
Modified: team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooGkClient.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooGkClient.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooGkClient.c (original)
+++ team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooGkClient.c Fri Sep 30 10:37:55 2011
@@ -430,7 +430,7 @@
if(iRet != OO_OK)
{
OOTRACEERR1("Error: Failed to handle received RAS message\n");
- //pGkClient->state = GkClientFailed;
+ pGkClient->state = GkClientFailed;
}
memReset(pctxt);
}
@@ -1920,6 +1920,8 @@
OOTimer *pTimer = NULL;
char ip[20];
+ ast_mutex_lock(&pGkClient->Lock);
+
/* Search call in pending calls list */
for(x=0 ; x<pGkClient->callsPendingList.count; x++)
{
@@ -1930,6 +1932,9 @@
OOTRACEDBGC3("Found Pending call(%s, %s)\n",
pCallAdmInfo->call->callType,
pCallAdmInfo->call->callToken);
+
+ ast_mutex_lock(&pCallAdmInfo->call->GkLock);
+
/* Populate Remote IP */
if(pAdmissionConfirm->destCallSignalAddress.t !=
T_H225TransportAddress_ipAddress)
@@ -1938,6 +1943,9 @@
"Gatekeeper is not an IPv4 address\n");
OOTRACEINFO1("Ignoring ACF, will wait for timeout and retransmit "
"ARQ\n");
+ ast_mutex_unlock(&pCallAdmInfo->call->GkLock);
+ ast_mutex_unlock(&pGkClient->Lock);
+ ast_cond_signal(&pCallAdmInfo->call->gkWait);
return OO_FAILED;
}
ipAddress = pAdmissionConfirm->destCallSignalAddress.u.ipAddress;
@@ -1996,15 +2004,15 @@
pCallAdmInfo->call->callToken);
pCallAdmInfo->call->callState = OO_CALL_CONNECTING;
- /* ooH323CallAdmitted( pCallAdmInfo->call); */
dListRemove(&pGkClient->callsPendingList, pNode);
dListAppend(&pGkClient->ctxt, &pGkClient->callsAdmittedList,
pNode->data);
memFreePtr(&pGkClient->ctxt, pNode);
+ ast_mutex_unlock(&pCallAdmInfo->call->GkLock);
+ ast_mutex_unlock(&pGkClient->Lock);
ast_cond_signal(&pCallAdmInfo->call->gkWait);
return OO_OK;
- break;
}
else
{
@@ -2013,6 +2021,7 @@
}
OOTRACEERR1("Error: Failed to process ACF as there is no corresponding "
"pending call\n");
+ ast_mutex_unlock(&pGkClient->Lock);
return OO_OK;
}
@@ -2025,6 +2034,8 @@
DListNode *pNode=NULL, *pNode1=NULL;
OOH323CallData *call=NULL;
OOTimer *pTimer = NULL;
+
+ ast_mutex_lock(&pGkClient->Lock);
/* Search call in pending calls list */
for(x=0 ; x<pGkClient->callsPendingList.count; x++)
@@ -2042,6 +2053,7 @@
OOTRACEWARN2("Received admission reject with request number %d can not"
" be matched with any pending call.\n",
pAdmissionReject->requestSeqNum);
+ ast_mutex_unlock(&pGkClient->Lock);
return OO_OK;
}
else{
@@ -2050,6 +2062,7 @@
memFreePtr(&pGkClient->ctxt, pCallAdmInfo);
memFreePtr(&pGkClient->ctxt, pNode);
}
+ ast_mutex_lock(&pCallAdmInfo->call->GkLock);
/* Delete ARQ timer */
for(y=0; y<pGkClient->timerList.count; y++)
@@ -2114,6 +2127,8 @@
break;
}
+ ast_mutex_unlock(&pCallAdmInfo->call->GkLock);
+ ast_mutex_unlock(&pGkClient->Lock);
ast_cond_signal(&pCallAdmInfo->call->gkWait);
return OO_OK;
}
Modified: team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/oochannels.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/oochannels.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/oochannels.c (original)
+++ team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/oochannels.c Fri Sep 30 10:37:55 2011
@@ -949,6 +949,7 @@
ast_mutex_lock(&call->Lock);
ast_mutex_unlock(&call->Lock);
ast_mutex_destroy(&call->Lock);
+ ast_mutex_destroy(&call->GkLock);
ast_cond_destroy(&call->gkWait);
pctxt = call->pctxt;
freeContext(pctxt);
Modified: team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooh323.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooh323.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooh323.c (original)
+++ team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooh323.c Fri Sep 30 10:37:55 2011
@@ -1628,12 +1628,15 @@
case Q931SetupMsg: /* SETUP message is received */
OOTRACEINFO3("Received SETUP message (%s, %s)\n", call->callType,
call->callToken);
- ooOnReceivedSetup(call, q931Msg);
-
+ ret = ooOnReceivedSetup(call, q931Msg);
+ if (ret != OO_OK) {
+ call->callState = OO_CALL_CLEAR;
+ } else {
+
/* H225 message callback */
- if(gH323ep.h225Callbacks.onReceivedSetup)
- ret = gH323ep.h225Callbacks.onReceivedSetup(call, q931Msg);
-
+ if(gH323ep.h225Callbacks.onReceivedSetup)
+ ret = gH323ep.h225Callbacks.onReceivedSetup(call, q931Msg);
+ }
/* Free up the mem used by the received message, as it's processing
is done.
*/
@@ -1651,23 +1654,24 @@
if(gH323ep.gkClient->state == GkClientRegistered)
{
call->callState = OO_CALL_WAITING_ADMISSION;
- ast_mutex_lock(&call->Lock);
ret = ooGkClientSendAdmissionRequest(gH323ep.gkClient, call,
FALSE);
- tv = ast_tvnow();
+ tv = ast_tvnow();
ts.tv_sec = tv.tv_sec + 24;
- ts.tv_nsec = tv.tv_usec * 1000;
- ast_cond_timedwait(&call->gkWait, &call->Lock, &ts);
+ ts.tv_nsec = tv.tv_usec * 1000;
+ ast_mutex_lock(&call->GkLock);
+ if (call->callState == OO_CALL_WAITING_ADMISSION)
+ ast_cond_timedwait(&call->gkWait, &call->GkLock, &ts);
if (call->callState == OO_CALL_WAITING_ADMISSION)
call->callState = OO_CALL_CLEAR;
- ast_mutex_unlock(&call->Lock);
+ ast_mutex_unlock(&call->GkLock);
}
else {
- /* TODO: Should send Release complete with reject reason */
OOTRACEERR1("Error:Ignoring incoming call as not yet"
"registered with Gk\n");
call->callState = OO_CALL_CLEAR;
+ call->callEndReason = OO_REASON_GK_UNREACHABLE;
}
}
if (call->callState < OO_CALL_CLEAR) {
Modified: team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooq931.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooq931.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooq931.c (original)
+++ team/oej/rana-dtmf-duration-1.8/addons/ooh323c/src/ooq931.c Fri Sep 30 10:37:55 2011
@@ -2204,19 +2204,24 @@
if(gH323ep.gkClient && !OO_TESTFLAG(call->flags, OO_M_DISABLEGK))
{
- /* No need to check registration status here as it is already checked for
- MakeCall command */
-
- call->callState = OO_CALL_WAITING_ADMISSION;
- ast_mutex_lock(&call->Lock);
- ret = ooGkClientSendAdmissionRequest(gH323ep.gkClient, call, FALSE);
- tv = ast_tvnow();
- ts.tv_sec = tv.tv_sec + 24;
- ts.tv_nsec = tv.tv_usec * 1000;
- ast_cond_timedwait(&call->gkWait, &call->Lock, &ts);
- if (call->callState == OO_CALL_WAITING_ADMISSION)
+ if(gH323ep.gkClient->state == GkClientRegistered) {
+ call->callState = OO_CALL_WAITING_ADMISSION;
+ ret = ooGkClientSendAdmissionRequest(gH323ep.gkClient, call, FALSE);
+ tv = ast_tvnow();
+ ts.tv_sec = tv.tv_sec + 24;
+ ts.tv_nsec = tv.tv_usec * 1000;
+ ast_mutex_lock(&call->GkLock);
+ if (call->callState == OO_CALL_WAITING_ADMISSION)
+ ast_cond_timedwait(&call->gkWait, &call->GkLock, &ts);
+ if (call->callState == OO_CALL_WAITING_ADMISSION)
call->callState = OO_CALL_CLEAR;
- ast_mutex_unlock(&call->Lock);
+ ast_mutex_unlock(&call->GkLock);
+ } else {
+ OOTRACEERR1("Error:Aborting outgoing call as not yet"
+ "registered with Gk\n");
+ call->callState = OO_CALL_CLEAR;
+ call->callEndReason = OO_REASON_GK_UNREACHABLE;
+ }
}
Modified: team/oej/rana-dtmf-duration-1.8/agi/agi.xml
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/agi/agi.xml?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/agi/agi.xml (original)
+++ team/oej/rana-dtmf-duration-1.8/agi/agi.xml Fri Sep 30 10:37:55 2011
@@ -1,14 +1,18 @@
<category name="MENUSELECT_AGIS" displayname="AGI Samples" positive_output="yes">
<member name="agi-test.agi">
<defaultenabled>no</defaultenabled>
+ <support_level>extended</support_level>
</member>
<member name="eagi-test">
<defaultenabled>no</defaultenabled>
+ <support_level>extended</support_level>
</member>
<member name="eagi-sphinx-test">
<defaultenabled>no</defaultenabled>
+ <support_level>extended</support_level>
</member>
<member name="jukebox.agi">
<defaultenabled>no</defaultenabled>
+ <support_level>extended</support_level>
</member>
</category>
Modified: team/oej/rana-dtmf-duration-1.8/apps/app_dial.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/apps/app_dial.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/apps/app_dial.c (original)
+++ team/oej/rana-dtmf-duration-1.8/apps/app_dial.c Fri Sep 30 10:37:55 2011
@@ -120,6 +120,11 @@
a call to be answered. Exit to that extension if it exists in the
current context, or the context defined in the <variable>EXITCONTEXT</variable> variable,
if it exists.</para>
+ <note>
+ <para>Many SIP and ISDN phones cannot send DTMF digits until the call is
+ connected. If you wish to use this option with these phones, you
+ can use the <literal>Answer</literal> application before dialing.</para>
+ </note>
</option>
<option name="D" argsep=":">
<argument name="called" />
@@ -170,10 +175,18 @@
</note>
</option>
<option name="h">
- <para>Allow the called party to hang up by sending the <literal>*</literal> DTMF digit.</para>
+ <para>Allow the called party to hang up by sending the DTMF sequence
+ defined for disconnect in <filename>features.conf</filename>.</para>
</option>
<option name="H">
- <para>Allow the calling party to hang up by hitting the <literal>*</literal> DTMF digit.</para>
+ <para>Allow the calling party to hang up by sending the DTMF sequence
+ defined for disconnect in <filename>features.conf</filename>.</para>
+ <note>
+ <para>Many SIP and ISDN phones cannot send DTMF digits until the call is
+ connected. If you wish to allow DTMF disconnect before the dialed
+ party answers with these phones, you can use the <literal>Answer</literal>
+ application before dialing.</para>
+ </note>
</option>
<option name="i">
<para>Asterisk will ignore any forwarding requests it may receive on this dial attempt.</para>
@@ -1351,7 +1364,7 @@
case AST_FRAME_VOICE:
case AST_FRAME_IMAGE:
case AST_FRAME_TEXT:
- if (ast_write(in, f)) {
+ if (!ast_test_flag64(outgoing, OPT_RINGBACK | OPT_MUSICBACK) && ast_write(in, f)) {
ast_log(LOG_WARNING, "Unable to write frametype: %d\n",
f->frametype);
}
@@ -1759,7 +1772,7 @@
*/
silencethreshold = ast_dsp_get_threshold_from_settings(THRESHOLD_SILENCE);
ast_answer(chan);
- res = ast_play_and_record(chan, "priv-recordintro", pa->privintro, 4, "sln", &duration, silencethreshold, 2000, 0); /* NOTE: I've reduced the total time to 4 sec */
+ res = ast_play_and_record(chan, "priv-recordintro", pa->privintro, 4, "sln", &duration, NULL, silencethreshold, 2000, 0); /* NOTE: I've reduced the total time to 4 sec */
/* don't think we'll need a lock removed, we took care of
conflicts by naming the pa.privintro file */
if (res == -1) {
@@ -2070,10 +2083,6 @@
res = -1; /* reset default */
}
- if (ast_test_flag64(&opts, OPT_DTMF_EXIT) || ast_test_flag64(&opts, OPT_CALLER_HANGUP)) {
- __ast_answer(chan, 0, 0);
- }
-
if (continue_exec)
*continue_exec = 0;
@@ -2316,7 +2325,9 @@
ast_copy_string(tc->exten, chan->exten, sizeof(tc->exten));
ast_channel_unlock(tc);
+ ast_channel_unlock(chan);
res = ast_call(tc, numsubst, 0); /* Place the call, but don't wait on the answer */
+ ast_channel_lock(chan);
/* Save the info in cdr's that we called them */
if (chan->cdr)
@@ -2423,14 +2434,6 @@
} else { /* Nobody answered, next please? */
res = 0;
}
-
- /* SIP, in particular, sends back this error code to indicate an
- * overlap dialled number needs more digits. */
- if (chan->hangupcause == AST_CAUSE_INVALID_NUMBER_FORMAT) {
- res = AST_PBX_INCOMPLETE;
- }
-
- /* almost done, although the 'else' block is 400 lines */
} else {
const char *number;
Modified: team/oej/rana-dtmf-duration-1.8/apps/app_directed_pickup.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/apps/app_directed_pickup.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/apps/app_directed_pickup.c (original)
+++ team/oej/rana-dtmf-duration-1.8/apps/app_directed_pickup.c Fri Sep 30 10:37:55 2011
@@ -101,7 +101,6 @@
static const char app[] = "Pickup";
static const char app2[] = "PickupChan";
-/*! \todo This application should return a result code, like PICKUPRESULT */
struct pickup_by_name_args {
const char *name;
Modified: team/oej/rana-dtmf-duration-1.8/apps/app_echo.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/apps/app_echo.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/apps/app_echo.c (original)
+++ team/oej/rana-dtmf-duration-1.8/apps/app_echo.c Fri Sep 30 10:37:55 2011
@@ -46,6 +46,8 @@
<description>
<para>Echos back any audio, video or DTMF frames read from the calling
channel back to itself. Note: If '#' detected application exits</para>
+ <para>This application does not automatically answer and should be
+ preceeded by an application such as Answer() or Progress().</para>
</description>
</application>
***/
Modified: team/oej/rana-dtmf-duration-1.8/apps/app_followme.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/apps/app_followme.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/apps/app_followme.c (original)
+++ team/oej/rana-dtmf-duration-1.8/apps/app_followme.c Fri Sep 30 10:37:55 2011
@@ -1102,7 +1102,7 @@
duration = 5;
if (ast_test_flag(&targs.followmeflags, FOLLOWMEFLAG_RECORDNAME))
- if (ast_play_and_record(chan, "vm-rec-name", namerecloc, 5, "sln", &duration, ast_dsp_get_threshold_from_settings(THRESHOLD_SILENCE), 0, NULL) < 0)
+ if (ast_play_and_record(chan, "vm-rec-name", namerecloc, 5, "sln", &duration, NULL, ast_dsp_get_threshold_from_settings(THRESHOLD_SILENCE), 0, NULL) < 0)
goto outrun;
if (!ast_fileexists(namerecloc, NULL, chan->language))
Modified: team/oej/rana-dtmf-duration-1.8/apps/app_macro.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/apps/app_macro.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/apps/app_macro.c (original)
+++ team/oej/rana-dtmf-duration-1.8/apps/app_macro.c Fri Sep 30 10:37:55 2011
@@ -26,7 +26,7 @@
*/
/*** MODULEINFO
- <support_level>deprecated</support_level>
+ <support_level>core</support_level>
<replacement>app_stack (GoSub)</replacement>
***/
Modified: team/oej/rana-dtmf-duration-1.8/apps/app_meetme.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/apps/app_meetme.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/apps/app_meetme.c (original)
+++ team/oej/rana-dtmf-duration-1.8/apps/app_meetme.c Fri Sep 30 10:37:55 2011
@@ -31,8 +31,7 @@
/*** MODULEINFO
<depend>dahdi</depend>
- <support_level>deprecated</support_level>
- <replacement>app_confbridge</replacement>
+ <support_level>core</support_level>
***/
#include "asterisk.h"
@@ -2458,7 +2457,7 @@
"%s/meetme-username-%s-%d", destdir,
conf->confno, user->user_no);
if (ast_test_flag64(confflags, CONFFLAG_INTROUSERNOREVIEW))
- res = ast_play_and_record(chan, "vm-rec-name", user->namerecloc, 10, "sln", &duration, ast_dsp_get_threshold_from_settings(THRESHOLD_SILENCE), 0, NULL);
+ res = ast_play_and_record(chan, "vm-rec-name", user->namerecloc, 10, "sln", &duration, NULL, ast_dsp_get_threshold_from_settings(THRESHOLD_SILENCE), 0, NULL);
else
res = ast_record_review(chan, "vm-rec-name", user->namerecloc, 10, "sln", &duration, NULL);
if (res == -1)
Modified: team/oej/rana-dtmf-duration-1.8/apps/app_minivm.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/rana-dtmf-duration-1.8/apps/app_minivm.c?view=diff&rev=338662&r1=338661&r2=338662
==============================================================================
--- team/oej/rana-dtmf-duration-1.8/apps/app_minivm.c (original)
+++ team/oej/rana-dtmf-duration-1.8/apps/app_minivm.c Fri Sep 30 10:37:55 2011
@@ -1313,6 +1313,9 @@
}
/* Allocate channel used for chanvar substitution */
ast = ast_dummy_channel_alloc();
+ if (!ast) {
+ return -1;
+ }
snprintf(dur, sizeof(dur), "%d:%02d", duration / 60, duration % 60);
@@ -1473,8 +1476,7 @@
ast_safe_system(tmp2);
ast_debug(1, "Sent message to %s with command '%s' - %s\n", vmu->email, global_mailcmd, template->attachment ? "(media attachment)" : "");
ast_debug(3, "Actual command used: %s\n", tmp2);
- if (ast)
- ast = ast_channel_release(ast);
+ ast = ast_channel_unref(ast);
ast_free(str1);
ast_free(str2);
return 0;
@@ -1603,7 +1605,7 @@
/*!\internal
* \brief Record voicemail message & let caller review or re-record it, or set options if applicable */
static int play_record_review(struct ast_channel *chan, char *playfile, char *recordfile, int maxtime, char *fmt,
- int outsidecaller, struct minivm_account *vmu, int *duration, const char *unlockdir,
+ int outsidecaller, struct minivm_account *vmu, int *duration, int *sound_duration, const char *unlockdir,
signed char record_gain)
{
int cmd = 0;
@@ -1653,7 +1655,7 @@
ast_channel_setoption(chan, AST_OPTION_RXGAIN, &record_gain, sizeof(record_gain), 0);
if (ast_test_flag(vmu, MVM_OPERATOR))
canceldtmf = "0";
- cmd = ast_play_and_record_full(chan, playfile, recordfile, maxtime, fmt, duration, global_silencethreshold, global_maxsilence, unlockdir, acceptdtmf, canceldtmf);
+ cmd = ast_play_and_record_full(chan, playfile, recordfile, maxtime, fmt, duration, sound_duration, global_silencethreshold, global_maxsilence, unlockdir, acceptdtmf, canceldtmf);
if (record_gain)
ast_channel_setoption(chan, AST_OPTION_RXGAIN, &zero_gain, sizeof(zero_gain), 0);
if (cmd == -1) /* User has hung up, no options to give */
@@ -1842,6 +1844,7 @@
FILE *txt;
int res = 0, txtdes;
int duration = 0;
+ int sound_duration = 0;
char date[256];
char tmpdir[PATH_MAX];
char ext_context[256] = "";
@@ -1917,7 +1920,7 @@
/* Store information */
ast_debug(2, "Open file for metadata: %s\n", tmptxtfile);
- res = play_record_review(chan, NULL, tmptxtfile, global_vmmaxmessage, fmt, 1, vmu, &duration, NULL, options->record_gain);
+ res = play_record_review(chan, NULL, tmptxtfile, global_vmmaxmessage, fmt, 1, vmu, &duration, &sound_duration, NULL, options->record_gain);
txt = fdopen(txtdes, "w+");
if (!txt) {
@@ -1958,8 +1961,8 @@
ast_mutex_unlock(&minivmloglock);
}
- if (duration < global_vmminmessage) {
- ast_verb(3, "Recording was %d seconds long but needs to be at least %d - abandoning\n", duration, global_vmminmessage);
[... 7872 lines stripped ...]
More information about the asterisk-commits
mailing list