[svn-commits] kaii: branch kaii/1.8-multicall r330825 - in /team/kaii/1.8-multicall: ./ add...
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Thu Aug 4 04:00:16 CDT 2011
Author: kaii
Date: Thu Aug 4 04:00:09 2011
New Revision: 330825
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=330825
Log:
merging multicall branch up to release 1.8.5.0
Added:
team/kaii/1.8-multicall/ChangeLog
- copied, changed from r327739, tags/1.8.5-rc1/ChangeLog
team/kaii/1.8-multicall/asterisk-1.8.5.0-summary.html
- copied unchanged from r330824, tags/1.8.5.0/asterisk-1.8.5.0-summary.html
team/kaii/1.8-multicall/asterisk-1.8.5.0-summary.txt
- copied unchanged from r330824, tags/1.8.5.0/asterisk-1.8.5.0-summary.txt
team/kaii/1.8-multicall/tests/test_db.c
- copied unchanged from r325707, branches/1.8/tests/test_db.c
team/kaii/1.8-multicall/tests/test_netsock2.c
- copied unchanged from r325707, branches/1.8/tests/test_netsock2.c
Removed:
team/kaii/1.8-multicall/res/res_features.exports.in
Modified:
team/kaii/1.8-multicall/ (props changed)
team/kaii/1.8-multicall/CHANGES
team/kaii/1.8-multicall/Makefile
team/kaii/1.8-multicall/UPGRADE.txt
team/kaii/1.8-multicall/addons/app_mysql.c
team/kaii/1.8-multicall/addons/cdr_mysql.c
team/kaii/1.8-multicall/addons/chan_mobile.c
team/kaii/1.8-multicall/addons/chan_ooh323.c
team/kaii/1.8-multicall/addons/ooh323c/src/ooSocket.c
team/kaii/1.8-multicall/addons/ooh323c/src/oochannels.c
team/kaii/1.8-multicall/addons/ooh323c/src/ooh245.c
team/kaii/1.8-multicall/addons/res_config_mysql.c
team/kaii/1.8-multicall/apps/app_amd.c
team/kaii/1.8-multicall/apps/app_chanspy.c
team/kaii/1.8-multicall/apps/app_confbridge.c
team/kaii/1.8-multicall/apps/app_dial.c
team/kaii/1.8-multicall/apps/app_directed_pickup.c
team/kaii/1.8-multicall/apps/app_fax.c
team/kaii/1.8-multicall/apps/app_festival.c
team/kaii/1.8-multicall/apps/app_followme.c
team/kaii/1.8-multicall/apps/app_ices.c
team/kaii/1.8-multicall/apps/app_meetme.c
team/kaii/1.8-multicall/apps/app_minivm.c
team/kaii/1.8-multicall/apps/app_originate.c
team/kaii/1.8-multicall/apps/app_privacy.c
team/kaii/1.8-multicall/apps/app_queue.c
team/kaii/1.8-multicall/apps/app_rpt.c
team/kaii/1.8-multicall/apps/app_voicemail.c
team/kaii/1.8-multicall/autoconf/ast_check_pwlib.m4
team/kaii/1.8-multicall/build_tools/prep_tarball
team/kaii/1.8-multicall/cdr/cdr_radius.c
team/kaii/1.8-multicall/cdr/cdr_syslog.c
team/kaii/1.8-multicall/cel/cel_odbc.c (contents, props changed)
team/kaii/1.8-multicall/cel/cel_pgsql.c
team/kaii/1.8-multicall/cel/cel_radius.c
team/kaii/1.8-multicall/channels/chan_agent.c
team/kaii/1.8-multicall/channels/chan_alsa.c
team/kaii/1.8-multicall/channels/chan_console.c
team/kaii/1.8-multicall/channels/chan_dahdi.c
team/kaii/1.8-multicall/channels/chan_h323.c
team/kaii/1.8-multicall/channels/chan_iax2.c
team/kaii/1.8-multicall/channels/chan_jingle.c
team/kaii/1.8-multicall/channels/chan_local.c
team/kaii/1.8-multicall/channels/chan_mgcp.c
team/kaii/1.8-multicall/channels/chan_oss.c
team/kaii/1.8-multicall/channels/chan_phone.c
team/kaii/1.8-multicall/channels/chan_sip.c
team/kaii/1.8-multicall/channels/chan_skinny.c
team/kaii/1.8-multicall/channels/chan_unistim.c
team/kaii/1.8-multicall/channels/chan_usbradio.c
team/kaii/1.8-multicall/channels/iax2-provision.c
team/kaii/1.8-multicall/channels/misdn/isdn_lib.c
team/kaii/1.8-multicall/channels/misdn_config.c
team/kaii/1.8-multicall/channels/sig_analog.c
team/kaii/1.8-multicall/channels/sig_pri.c
team/kaii/1.8-multicall/channels/sig_ss7.c
team/kaii/1.8-multicall/channels/sip/include/sip.h
team/kaii/1.8-multicall/channels/sip/reqresp_parser.c
team/kaii/1.8-multicall/channels/sip/sdp_crypto.c
team/kaii/1.8-multicall/codecs/lpc10/dyptrk.c
team/kaii/1.8-multicall/configs/cel.conf.sample
team/kaii/1.8-multicall/configs/cel_odbc.conf.sample (props changed)
team/kaii/1.8-multicall/configs/features.conf.sample
team/kaii/1.8-multicall/configs/queuerules.conf.sample
team/kaii/1.8-multicall/configs/queues.conf.sample
team/kaii/1.8-multicall/configs/sip.conf.sample
team/kaii/1.8-multicall/configs/sip_notify.conf.sample
team/kaii/1.8-multicall/configure
team/kaii/1.8-multicall/configure.ac
team/kaii/1.8-multicall/contrib/init.d/rc.debian.asterisk
team/kaii/1.8-multicall/contrib/realtime/mysql/iaxfriends.sql (props changed)
team/kaii/1.8-multicall/contrib/realtime/mysql/meetme.sql (contents, props changed)
team/kaii/1.8-multicall/contrib/realtime/mysql/queue_log.sql
team/kaii/1.8-multicall/contrib/realtime/mysql/sipfriends.sql (contents, props changed)
team/kaii/1.8-multicall/contrib/realtime/mysql/voicemail.sql (props changed)
team/kaii/1.8-multicall/contrib/realtime/postgresql/realtime.sql (props changed)
team/kaii/1.8-multicall/contrib/scripts/safe_asterisk
team/kaii/1.8-multicall/formats/format_wav.c
team/kaii/1.8-multicall/funcs/func_curl.c
team/kaii/1.8-multicall/funcs/func_enum.c
team/kaii/1.8-multicall/include/asterisk/acl.h
team/kaii/1.8-multicall/include/asterisk/astdb.h
team/kaii/1.8-multicall/include/asterisk/autoconfig.h.in
team/kaii/1.8-multicall/include/asterisk/bridging.h
team/kaii/1.8-multicall/include/asterisk/bridging_technology.h
team/kaii/1.8-multicall/include/asterisk/channel.h
team/kaii/1.8-multicall/include/asterisk/dnsmgr.h
team/kaii/1.8-multicall/include/asterisk/event.h
team/kaii/1.8-multicall/include/asterisk/features.h
team/kaii/1.8-multicall/include/asterisk/frame.h
team/kaii/1.8-multicall/include/asterisk/linkedlists.h
team/kaii/1.8-multicall/include/asterisk/logger.h
team/kaii/1.8-multicall/include/asterisk/netsock2.h
team/kaii/1.8-multicall/include/asterisk/pbx.h
team/kaii/1.8-multicall/include/asterisk/rtp_engine.h
team/kaii/1.8-multicall/include/asterisk/select.h
team/kaii/1.8-multicall/include/asterisk/utils.h
team/kaii/1.8-multicall/main/asterisk.c
team/kaii/1.8-multicall/main/audiohook.c
team/kaii/1.8-multicall/main/bridging.c
team/kaii/1.8-multicall/main/ccss.c
team/kaii/1.8-multicall/main/cdr.c
team/kaii/1.8-multicall/main/channel.c
team/kaii/1.8-multicall/main/config.c
team/kaii/1.8-multicall/main/db.c
team/kaii/1.8-multicall/main/dnsmgr.c
team/kaii/1.8-multicall/main/dsp.c
team/kaii/1.8-multicall/main/event.c
team/kaii/1.8-multicall/main/features.c
team/kaii/1.8-multicall/main/file.c
team/kaii/1.8-multicall/main/fskmodem_float.c
team/kaii/1.8-multicall/main/http.c
team/kaii/1.8-multicall/main/manager.c
team/kaii/1.8-multicall/main/netsock2.c
team/kaii/1.8-multicall/main/pbx.c
team/kaii/1.8-multicall/main/plc.c
team/kaii/1.8-multicall/main/rtp_engine.c
team/kaii/1.8-multicall/main/srv.c
team/kaii/1.8-multicall/main/tcptls.c
team/kaii/1.8-multicall/main/udptl.c
team/kaii/1.8-multicall/main/utils.c
team/kaii/1.8-multicall/pbx/pbx_config.c
team/kaii/1.8-multicall/pbx/pbx_dundi.c
team/kaii/1.8-multicall/pbx/pbx_lua.c
team/kaii/1.8-multicall/res/Makefile
team/kaii/1.8-multicall/res/res_agi.c
team/kaii/1.8-multicall/res/res_calendar.c
team/kaii/1.8-multicall/res/res_config_curl.c
team/kaii/1.8-multicall/res/res_config_odbc.c
team/kaii/1.8-multicall/res/res_config_pgsql.c
team/kaii/1.8-multicall/res/res_config_sqlite.c
team/kaii/1.8-multicall/res/res_crypto.c
team/kaii/1.8-multicall/res/res_fax.c
team/kaii/1.8-multicall/res/res_http_post.c
team/kaii/1.8-multicall/res/res_jabber.c
team/kaii/1.8-multicall/res/res_musiconhold.c
team/kaii/1.8-multicall/res/res_odbc.c
team/kaii/1.8-multicall/res/res_rtp_asterisk.c
team/kaii/1.8-multicall/res/res_srtp.c
team/kaii/1.8-multicall/sounds/Makefile (contents, props changed)
team/kaii/1.8-multicall/sounds/sounds.xml
team/kaii/1.8-multicall/tests/test_astobj2.c
team/kaii/1.8-multicall/tests/test_event.c
team/kaii/1.8-multicall/tests/test_utils.c
Propchange: team/kaii/1.8-multicall/
------------------------------------------------------------------------------
--- branch-1.6.2-blocked (original)
+++ branch-1.6.2-blocked Thu Aug 4 04:00:09 2011
@@ -1,1 +1,1 @@
-/branches/1.6.2:279852,279883,280227,280556,280812,282668,299533,303273,309348
+/branches/1.6.2:279852,279883,280227,280556,280812,282668,299533,303273,309348,320506
Propchange: team/kaii/1.8-multicall/
------------------------------------------------------------------------------
Binary property 'branch-1.6.2-merged' - no diff available.
Propchange: team/kaii/1.8-multicall/
------------------------------------------------------------------------------
--- svn:externals (original)
+++ svn:externals Thu Aug 4 04:00:09 2011
@@ -1,1 +1,1 @@
-menuselect https://origsvn.digium.com/svn/menuselect/trunk
+menuselect https://origsvn.digium.com/svn/menuselect/tags/autotag_for_asterisk/1.8.5-rc1
Propchange: team/kaii/1.8-multicall/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Aug 4 04:00:09 2011
@@ -1,2 +1,4 @@
/be/branches/C.3:256426
-/branches/1.8:311976-315199
+/branches/1.8:311976-325707
+/tags/1.8.5-rc1:325708-327739
+/tags/1.8.5.0:327740-330824
Modified: team/kaii/1.8-multicall/CHANGES
URL: http://svnview.digium.com/svn/asterisk/team/kaii/1.8-multicall/CHANGES?view=diff&rev=330825&r1=330824&r2=330825
==============================================================================
--- team/kaii/1.8-multicall/CHANGES (original)
+++ team/kaii/1.8-multicall/CHANGES Thu Aug 4 04:00:09 2011
@@ -436,6 +436,8 @@
* Added a new eventfilter option per user to allow whitelisting and blacklisting
of events.
* Added optional parkinglot variable for park command.
+ * Added ConnectedLineNum and ConnectedLineName headers to AMI events/responses
+ if CallerIDNum and CallerIDName headers are also present.
Channel Event Logging
---------------------
Copied: team/kaii/1.8-multicall/ChangeLog (from r327739, tags/1.8.5-rc1/ChangeLog)
URL: http://svnview.digium.com/svn/asterisk/team/kaii/1.8-multicall/ChangeLog?view=diff&rev=330825&p1=tags/1.8.5-rc1/ChangeLog&r1=327739&p2=team/kaii/1.8-multicall/ChangeLog&r2=330825
==============================================================================
--- tags/1.8.5-rc1/ChangeLog (original)
+++ team/kaii/1.8-multicall/ChangeLog Thu Aug 4 04:00:09 2011
@@ -1,3 +1,17 @@
+2011-07-11 Leif Madsen <lmadsen at digium.com>
+
+ * Asterisk 1.8.5.0 Released.
+
+ * r326484 | dvossel | 2011-07-06 10:26:49 -0500 (Wed, 06 Jul 2011)
+
+ Reverts fix for timerfd locking issue.
+
+ jrose discovered a performance issue with this
+ fix that prevents his analog phones from working
+ when using timerfd as a timing source. Until
+ it is understood what is causing this performance
+ problem, this patch is being reverted.
+
2011-06-29 Leif Madsen <lmadsen at digium.com>
* Asterisk 1.8.5-rc1 Released.
Modified: team/kaii/1.8-multicall/Makefile
URL: http://svnview.digium.com/svn/asterisk/team/kaii/1.8-multicall/Makefile?view=diff&rev=330825&r1=330824&r2=330825
==============================================================================
--- team/kaii/1.8-multicall/Makefile (original)
+++ team/kaii/1.8-multicall/Makefile Thu Aug 4 04:00:09 2011
@@ -531,7 +531,6 @@
$(INSTALL) -d "$(DESTDIR)$(ASTLOGDIR)"
$(INSTALL) -d "$(DESTDIR)$(ASTLOGDIR)/cdr-csv"
$(INSTALL) -d "$(DESTDIR)$(ASTLOGDIR)/cdr-custom"
- $(INSTALL) -d "$(DESTDIR)$(ASTLOGDIR)/cel-csv"
$(INSTALL) -d "$(DESTDIR)$(ASTLOGDIR)/cel-custom"
$(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)"
$(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/documentation"
@@ -544,6 +543,7 @@
$(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/static-http"
$(INSTALL) -d "$(DESTDIR)$(ASTMANDIR)/man8"
$(INSTALL) -d "$(DESTDIR)$(AGI_DIR)"
+ $(INSTALL) -d "$(DESTDIR)$(ASTDBDIR)"
bininstall: _all installdirs $(SUBDIRS_INSTALL)
$(INSTALL) -m 755 main/asterisk $(DESTDIR)$(ASTSBINDIR)/
@@ -911,7 +911,7 @@
menuselect/makeopts: makeopts
+$(MAKE_MENUSELECT) makeopts
-menuselect-tree: $(foreach dir,$(filter-out main,$(MOD_SUBDIRS)),$(wildcard $(dir)/*.c) $(wildcard $(dir)/*.cc)) build_tools/cflags.xml build_tools/cflags-devmode.xml sounds/sounds.xml build_tools/embed_modules.xml utils/utils.xml agi/agi.xml configure
+menuselect-tree: $(foreach dir,$(filter-out main,$(MOD_SUBDIRS)),$(wildcard $(dir)/*.c) $(wildcard $(dir)/*.cc)) build_tools/cflags.xml build_tools/cflags-devmode.xml sounds/sounds.xml build_tools/embed_modules.xml utils/utils.xml agi/agi.xml configure makeopts
@echo "Generating input for menuselect ..."
@echo "<?xml version=\"1.0\"?>" > $@
@echo >> $@
Modified: team/kaii/1.8-multicall/UPGRADE.txt
URL: http://svnview.digium.com/svn/asterisk/team/kaii/1.8-multicall/UPGRADE.txt?view=diff&rev=330825&r1=330824&r2=330825
==============================================================================
--- team/kaii/1.8-multicall/UPGRADE.txt (original)
+++ team/kaii/1.8-multicall/UPGRADE.txt Thu Aug 4 04:00:09 2011
@@ -133,6 +133,14 @@
* The default value for the pedantic option in sip.conf has been changed
from "no" to "yes".
+* The ConnectedLineNum and ConnectedLineName headers were added to many AMI
+ events/responses if the CallerIDNum/CallerIDName headers were also present.
+ The addition of connected line support changes the behavior of the channel
+ caller ID somewhat. The channel caller ID value no longer time shares with
+ 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.
+
From 1.6.1 to 1.6.2:
* SIP no longer sends the 183 progress message for early media by
Modified: team/kaii/1.8-multicall/addons/app_mysql.c
URL: http://svnview.digium.com/svn/asterisk/team/kaii/1.8-multicall/addons/app_mysql.c?view=diff&rev=330825&r1=330824&r2=330825
==============================================================================
--- team/kaii/1.8-multicall/addons/app_mysql.c (original)
+++ team/kaii/1.8-multicall/addons/app_mysql.c Thu Aug 4 04:00:09 2011
@@ -546,7 +546,10 @@
result = 0;
if (autoclear) {
- struct ast_datastore *mysql_store = ast_channel_datastore_find(chan, &mysql_ds_info, NULL);
+ struct ast_datastore *mysql_store = NULL;
+
+ ast_channel_lock(chan);
+ mysql_store = ast_channel_datastore_find(chan, &mysql_ds_info, NULL);
if (!mysql_store) {
if (!(mysql_store = ast_datastore_alloc(&mysql_ds_info, NULL))) {
ast_log(LOG_WARNING, "Unable to allocate new datastore.\n");
@@ -555,6 +558,7 @@
ast_channel_datastore_add(chan, mysql_store);
}
}
+ ast_channel_unlock(chan);
}
ast_mutex_lock(&_mysql_mutex);
Modified: team/kaii/1.8-multicall/addons/cdr_mysql.c
URL: http://svnview.digium.com/svn/asterisk/team/kaii/1.8-multicall/addons/cdr_mysql.c?view=diff&rev=330825&r1=330824&r2=330825
==============================================================================
--- team/kaii/1.8-multicall/addons/cdr_mysql.c (original)
+++ team/kaii/1.8-multicall/addons/cdr_mysql.c Thu Aug 4 04:00:09 2011
@@ -325,7 +325,7 @@
ast_str_make_space(&escape, (valsz = strlen(value)) * 2 + 1);
mysql_real_escape_string(&mysql, ast_str_buffer(escape), value, valsz);
- ast_str_append(&sql1, 0, "%s", entry->name);
+ ast_str_append(&sql1, 0, "`%s`", entry->name);
ast_str_append(&sql2, 0, "'%s'", ast_str_buffer(escape));
}
}
Modified: team/kaii/1.8-multicall/addons/chan_mobile.c
URL: http://svnview.digium.com/svn/asterisk/team/kaii/1.8-multicall/addons/chan_mobile.c?view=diff&rev=330825&r1=330824&r2=330825
==============================================================================
--- team/kaii/1.8-multicall/addons/chan_mobile.c (original)
+++ team/kaii/1.8-multicall/addons/chan_mobile.c Thu Aug 4 04:00:09 2011
@@ -1188,7 +1188,7 @@
int res = AST_DEVICE_INVALID;
struct mbl_pvt *pvt;
- device = ast_strdupa(S_OR(data, ""));
+ device = ast_strdupa(S_OR((char *) data, ""));
ast_debug(1, "Checking device state for device %s\n", device);
Modified: team/kaii/1.8-multicall/addons/chan_ooh323.c
URL: http://svnview.digium.com/svn/asterisk/team/kaii/1.8-multicall/addons/chan_ooh323.c?view=diff&rev=330825&r1=330824&r2=330825
==============================================================================
--- team/kaii/1.8-multicall/addons/chan_ooh323.c (original)
+++ team/kaii/1.8-multicall/addons/chan_ooh323.c Thu Aug 4 04:00:09 2011
@@ -1079,6 +1079,7 @@
static int ooh323_answer(struct ast_channel *ast)
{
struct ooh323_pvt *p = ast->tech_pvt;
+ char *callToken = (char *)NULL;
if (gH323Debug)
ast_verbose("--- ooh323_answer\n");
@@ -1086,8 +1087,18 @@
if (p) {
ast_mutex_lock(&p->lock);
+ callToken = (p->callToken ? strdup(p->callToken) : NULL);
if (ast->_state != AST_STATE_UP) {
ast_channel_lock(ast);
+ if (!p->alertsent) {
+ if (gH323Debug) {
+ ast_debug(1, "Sending forced ringback for %s, res = %d\n",
+ callToken, ooManualRingback(callToken));
+ } else {
+ ooManualRingback(callToken);
+ }
+ p->alertsent = 1;
+ }
ast_setstate(ast, AST_STATE_UP);
if (option_debug)
ast_debug(1, "ooh323_answer(%s)\n", ast->name);
@@ -1252,6 +1263,7 @@
} else {
ooManualRingback(callToken);
}
+ p->alertsent = 1;
}
}
break;
Modified: team/kaii/1.8-multicall/addons/ooh323c/src/ooSocket.c
URL: http://svnview.digium.com/svn/asterisk/team/kaii/1.8-multicall/addons/ooh323c/src/ooSocket.c?view=diff&rev=330825&r1=330824&r2=330825
==============================================================================
--- team/kaii/1.8-multicall/addons/ooh323c/src/ooSocket.c (original)
+++ team/kaii/1.8-multicall/addons/ooh323c/src/ooSocket.c Thu Aug 4 04:00:09 2011
@@ -522,10 +522,10 @@
ret = gethostname(hostname, 100);
if(ret == 0)
{
- if (!(hp = ast_gethostbyname(hostname, &phost))) {
+ if ((hp = ast_gethostbyname(hostname, &phost))) {
struct in_addr i;
memcpy(&i, hp->h_addr, sizeof(i));
- strcpy(pIPAddrs, (ast_inet_ntoa(i) == NULL) ? "127.0.0.1" : ast_inet_ntoa(i));
+ strcpy(pIPAddrs, (ast_inet_ntoa(i) == NULL) ? "127.0.0.1" : ast_inet_ntoa(i));
} else {
return -1;
}
Modified: team/kaii/1.8-multicall/addons/ooh323c/src/oochannels.c
URL: http://svnview.digium.com/svn/asterisk/team/kaii/1.8-multicall/addons/ooh323c/src/oochannels.c?view=diff&rev=330825&r1=330824&r2=330825
==============================================================================
--- team/kaii/1.8-multicall/addons/ooh323c/src/oochannels.c (original)
+++ team/kaii/1.8-multicall/addons/ooh323c/src/oochannels.c Thu Aug 4 04:00:09 2011
@@ -671,10 +671,11 @@
if (0 != call->pH245Channel && 0 != call->pH245Channel->sock)
{
- if(call->pH245Channel->outQueue.count>0)
- {
- if(ooPDWrite(pfds, nfds, call->pH245Channel->sock))
- ooSendMsg(call, OOH245MSG);
+ if(ooPDWrite(pfds, nfds, call->pH245Channel->sock)) {
+ while (call->pH245Channel->outQueue.count>0) {
+ if (ooSendMsg(call, OOH245MSG) != OO_OK)
+ break;
+ }
}
}
else if(call->h245listener)
@@ -691,20 +692,23 @@
{
if(ooPDWrite(pfds, nfds, call->pH225Channel->sock))
{
- if(call->pH225Channel->outQueue.count>0)
+ while (call->pH225Channel->outQueue.count>0)
{
OOTRACEDBGC3("Sending H225 message (%s, %s)\n",
call->callType, call->callToken);
- ooSendMsg(call, OOQ931MSG);
+ if (ooSendMsg(call, OOQ931MSG) != OO_OK)
+ break;
}
if(call->pH245Channel &&
call->pH245Channel->outQueue.count>0 &&
- OO_TESTFLAG (call->flags, OO_M_TUNNELING))
- {
+ OO_TESTFLAG (call->flags, OO_M_TUNNELING)) {
+ while (call->pH245Channel->outQueue.count>0) {
OOTRACEDBGC3("H245 message needs to be tunneled. "
"(%s, %s)\n", call->callType,
call->callToken);
- ooSendMsg(call, OOH245MSG);
+ if (ooSendMsg(call, OOH245MSG) != OO_OK)
+ break;
+ }
}
}
}
@@ -1319,7 +1323,7 @@
{
OOTRACEDBGA3("Warning:Call marked for cleanup. Can not send message."
"(%s, %s)\n", call->callType, call->callToken);
- return OO_OK;
+ return OO_FAILED;
}
if(type == OOQ931MSG)
Modified: team/kaii/1.8-multicall/addons/ooh323c/src/ooh245.c
URL: http://svnview.digium.com/svn/asterisk/team/kaii/1.8-multicall/addons/ooh323c/src/ooh245.c?view=diff&rev=330825&r1=330824&r2=330825
==============================================================================
--- team/kaii/1.8-multicall/addons/ooh323c/src/ooh245.c (original)
+++ team/kaii/1.8-multicall/addons/ooh323c/src/ooh245.c Thu Aug 4 04:00:09 2011
@@ -2074,6 +2074,8 @@
ooClearAllLogicalChannels(call);
}
ooSendEndSessionCommand(call);
+ if (call->callState < OO_CALL_CLEAR)
+ call->callState = OO_CALL_CLEAR;
}
Modified: team/kaii/1.8-multicall/addons/res_config_mysql.c
URL: http://svnview.digium.com/svn/asterisk/team/kaii/1.8-multicall/addons/res_config_mysql.c?view=diff&rev=330825&r1=330824&r2=330825
==============================================================================
--- team/kaii/1.8-multicall/addons/res_config_mysql.c (original)
+++ team/kaii/1.8-multicall/addons/res_config_mysql.c Thu Aug 4 04:00:09 2011
@@ -398,7 +398,7 @@
} else if (ast_strlen_zero(row[i])) {
row[i] = " ";
}
- for (stringp = ast_strdupa(row[i]), chunk = strsep(&stringp, ";"); chunk; chunk = strsep(&stringp, ";")) {
+ for (stringp = row[i], chunk = strsep(&stringp, ";"); chunk; chunk = strsep(&stringp, ";")) {
if (prev) {
if ((prev->next = ast_variable_new(fields[i].name, decode_chunk(chunk), ""))) {
prev = prev->next;
@@ -524,7 +524,7 @@
for (i = 0; i < numFields; i++) {
if (ast_strlen_zero(row[i]))
continue;
- for (stringp = ast_strdupa(row[i]), chunk = strsep(&stringp, ";"); chunk; chunk = strsep(&stringp, ";")) {
+ for (stringp = row[i], chunk = strsep(&stringp, ";"); chunk; chunk = strsep(&stringp, ";")) {
if (chunk && !ast_strlen_zero(decode_chunk(ast_strip(chunk)))) {
if (initfield && !strcmp(initfield, fields[i].name)) {
ast_category_rename(cat, chunk);
@@ -608,7 +608,7 @@
If there is only 1 set, then we have our query. Otherwise, loop thru the list and concat */
ESCAPE_STRING(buf, newval);
- ast_str_set(&sql, 0, "UPDATE %s SET %s = '%s'", tablename, newparam, ast_str_buffer(buf));
+ ast_str_set(&sql, 0, "UPDATE %s SET `%s` = '%s'", tablename, newparam, ast_str_buffer(buf));
/* If the column length isn't long enough, give a chance to lengthen it. */
if (strncmp(column->type, "char", 4) == 0 || strncmp(column->type, "varchar", 7) == 0) {
@@ -625,7 +625,7 @@
}
ESCAPE_STRING(buf, newval);
- ast_str_append(&sql, 0, ", %s = '%s'", newparam, ast_str_buffer(buf));
+ ast_str_append(&sql, 0, ", `%s` = '%s'", newparam, ast_str_buffer(buf));
/* If the column length isn't long enough, give a chance to lengthen it. */
if (strncmp(column->type, "char", 4) == 0 || strncmp(column->type, "varchar", 7) == 0) {
@@ -635,7 +635,7 @@
va_end(ap);
ESCAPE_STRING(buf, lookup);
- ast_str_append(&sql, 0, " WHERE %s = '%s'", keyfield, ast_str_buffer(buf));
+ ast_str_append(&sql, 0, " WHERE `%s` = '%s'", keyfield, ast_str_buffer(buf));
ast_debug(1, "MySQL RealTime: Update SQL: %s\n", ast_str_buffer(sql));
@@ -719,7 +719,7 @@
return -1;
}
ESCAPE_STRING(buf, newval);
- ast_str_append(&where, 0, "%s %s='%s'", first ? "" : " AND", newparam, ast_str_buffer(buf));
+ ast_str_append(&where, 0, "%s `%s` = '%s'", first ? "" : " AND", newparam, ast_str_buffer(buf));
first = 0;
/* If the column length isn't long enough, give a chance to lengthen it. */
@@ -744,7 +744,7 @@
}
ESCAPE_STRING(buf, newval);
- ast_str_append(&sql, 0, "%s %s = '%s'", first ? "" : ",", newparam, ast_str_buffer(buf));
+ ast_str_append(&sql, 0, "%s `%s` = '%s'", first ? "" : ",", newparam, ast_str_buffer(buf));
first = 0;
/* If the column length isn't long enough, give a chance to lengthen it. */
@@ -816,7 +816,7 @@
/* Create the first part of the query using the first parameter/value pairs we just extracted
If there is only 1 set, then we have our query. Otherwise, loop thru the list and concat */
ESCAPE_STRING(buf, newval);
- ast_str_set(&sql, 0, "INSERT INTO %s (%s", table, newparam);
+ ast_str_set(&sql, 0, "INSERT INTO %s (`%s`", table, newparam);
ast_str_set(&sql2, 0, ") VALUES ('%s'", ast_str_buffer(buf));
internal_require(database, table, newparam, RQ_CHAR, ast_str_strlen(buf), SENTINEL);
@@ -828,7 +828,7 @@
ast_str_reset(buf);
}
if (internal_require(database, table, newparam, RQ_CHAR, ast_str_strlen(buf), SENTINEL) == 0) {
- ast_str_append(&sql, 0, ", %s", newparam);
+ ast_str_append(&sql, 0, ", `%s`", newparam);
ast_str_append(&sql2, 0, ", '%s'", ast_str_buffer(buf));
}
}
@@ -894,11 +894,11 @@
/* Create the first part of the query using the first parameter/value pairs we just extracted
If there is only 1 set, then we have our query. Otherwise, loop thru the list and concat */
ESCAPE_STRING(buf, lookup);
- ast_str_set(&sql, 0, "DELETE FROM %s WHERE %s = '%s'", table, keyfield, ast_str_buffer(buf));
+ ast_str_set(&sql, 0, "DELETE FROM %s WHERE `%s` = '%s'", table, keyfield, ast_str_buffer(buf));
while ((newparam = va_arg(ap, const char *))) {
newval = va_arg(ap, const char *);
ESCAPE_STRING(buf, newval);
- ast_str_append(&sql, 0, " AND %s = '%s'", newparam, ast_str_buffer(buf));
+ ast_str_append(&sql, 0, " AND `%s` = '%s'", newparam, ast_str_buffer(buf));
}
va_end(ap);
@@ -1074,7 +1074,7 @@
res = -1;
break;
}
- ast_str_set(&sql, 0, "ALTER TABLE %s MODIFY %s %s", tablename, column->name, ast_str_buffer(typestr));
+ ast_str_set(&sql, 0, "ALTER TABLE %s MODIFY `%s` %s", tablename, column->name, ast_str_buffer(typestr));
if (!column->null) {
ast_str_append(&sql, 0, " NOT NULL");
}
Modified: team/kaii/1.8-multicall/apps/app_amd.c
URL: http://svnview.digium.com/svn/asterisk/team/kaii/1.8-multicall/apps/app_amd.c?view=diff&rev=330825&r1=330824&r2=330825
==============================================================================
--- team/kaii/1.8-multicall/apps/app_amd.c (original)
+++ team/kaii/1.8-multicall/apps/app_amd.c Thu Aug 4 04:00:09 2011
@@ -156,7 +156,6 @@
int iTotalTime = 0;
int iWordsCount = 0;
int currentState = STATE_IN_WORD;
- int previousState = STATE_IN_SILENCE;
int consecutiveVoiceDuration = 0;
char amdCause[256] = "", amdStatus[256] = "";
char *parse = ast_strdupa(data);
@@ -301,7 +300,6 @@
if (silenceDuration >= betweenWordsSilence) {
if (currentState != STATE_IN_SILENCE ) {
- previousState = currentState;
ast_verb(3, "AMD: Channel [%s]. Changed state to STATE_IN_SILENCE\n", chan->name);
}
/* Find words less than word duration */
@@ -341,7 +339,6 @@
if (consecutiveVoiceDuration >= minimumWordLength && currentState == STATE_IN_SILENCE) {
iWordsCount++;
ast_verb(3, "AMD: Channel [%s]. Word detected. iWordsCount:%d\n", chan->name, iWordsCount);
- previousState = currentState;
currentState = STATE_IN_WORD;
}
if (consecutiveVoiceDuration >= maximumWordLength){
Modified: team/kaii/1.8-multicall/apps/app_chanspy.c
URL: http://svnview.digium.com/svn/asterisk/team/kaii/1.8-multicall/apps/app_chanspy.c?view=diff&rev=330825&r1=330824&r2=330825
==============================================================================
--- team/kaii/1.8-multicall/apps/app_chanspy.c (original)
+++ team/kaii/1.8-multicall/apps/app_chanspy.c Thu Aug 4 04:00:09 2011
@@ -404,6 +404,7 @@
struct ast_audiohook bridge_whisper_audiohook;
int fd;
int volfactor;
+ struct ast_flags flags;
};
struct spy_dtmf_options {
@@ -435,7 +436,7 @@
return -1;
}
- if (ast_test_flag(&csth->spy_audiohook, OPTION_READONLY)) {
+ if (ast_test_flag(&csth->flags, OPTION_READONLY)) {
/* Option 'o' was set, so don't mix channel audio */
f = ast_audiohook_read_frame(&csth->spy_audiohook, samples, AST_AUDIOHOOK_DIRECTION_READ, AST_FORMAT_SLINEAR);
} else {
@@ -536,7 +537,7 @@
spyer_name, name);
memset(&csth, 0, sizeof(csth));
- ast_copy_flags(&csth.spy_audiohook, flags, AST_FLAGS_ALL);
+ ast_copy_flags(&csth.flags, flags, AST_FLAGS_ALL);
ast_audiohook_init(&csth.spy_audiohook, AST_AUDIOHOOK_TYPE_SPY, "ChanSpy");
Modified: team/kaii/1.8-multicall/apps/app_confbridge.c
URL: http://svnview.digium.com/svn/asterisk/team/kaii/1.8-multicall/apps/app_confbridge.c?view=diff&rev=330825&r1=330824&r2=330825
==============================================================================
--- team/kaii/1.8-multicall/apps/app_confbridge.c (original)
+++ team/kaii/1.8-multicall/apps/app_confbridge.c Thu Aug 4 04:00:09 2011
@@ -198,30 +198,31 @@
* \param conference_bridge Conference bridge to peek at
* \param conference_bridge_user Caller
*
- * \return Returns nothing
- */
-static void announce_user_count(struct conference_bridge *conference_bridge, struct conference_bridge_user *conference_bridge_user)
+ * \return Returns 0 on success, -1 if the user hung up
+ */
+static int announce_user_count(struct conference_bridge *conference_bridge, struct conference_bridge_user *conference_bridge_user)
{
if (conference_bridge->users == 1) {
/* Awww we are the only person in the conference bridge */
- return;
+ return 0;
} else if (conference_bridge->users == 2) {
/* Eep, there is one other person */
if (ast_stream_and_wait(conference_bridge_user->chan, "conf-onlyone", "")) {
- return;
+ return -1;
}
} else {
/* Alas multiple others in here */
if (ast_stream_and_wait(conference_bridge_user->chan, "conf-thereare", "")) {
- return;
+ return -1;
}
if (ast_say_number(conference_bridge_user->chan, conference_bridge->users - 1, "", conference_bridge_user->chan->language, NULL)) {
- return;
+ return -1;
}
if (ast_stream_and_wait(conference_bridge_user->chan, "conf-otherinparty", "")) {
- return;
- }
- }
+ return -1;
+ }
+ }
+ return 0;
}
/*!
@@ -231,15 +232,17 @@
* \param chan Channel to play audio prompt to
* \param file Prompt to play
*
- * \return Returns nothing
+ * \return Returns 0 on success, -1 if the user hung up
*
* \note This function assumes that conference_bridge is locked
*/
-static void play_prompt_to_channel(struct conference_bridge *conference_bridge, struct ast_channel *chan, const char *file)
-{
+static int play_prompt_to_channel(struct conference_bridge *conference_bridge, struct ast_channel *chan, const char *file)
+{
+ int res;
ao2_unlock(conference_bridge);
- ast_stream_and_wait(chan, file, "");
+ res = ast_stream_and_wait(chan, file, "");
ao2_lock(conference_bridge);
+ return res;
}
/*!
@@ -248,16 +251,16 @@
* \param conference_bridge Conference bridge being joined
* \param conference_bridge_user Conference bridge user joining
*
- * \return Returns nothing
- */
-static void post_join_marked(struct conference_bridge *conference_bridge, struct conference_bridge_user *conference_bridge_user)
+ * \return Returns 0 on success, -1 if the user hung up
+ */
+static int post_join_marked(struct conference_bridge *conference_bridge, struct conference_bridge_user *conference_bridge_user)
{
if (ast_test_flag(&conference_bridge_user->flags, OPTION_MARKEDUSER)) {
struct conference_bridge_user *other_conference_bridge_user = NULL;
/* If we are not the first marked user to join just bail out now */
if (conference_bridge->markedusers >= 2) {
- return;
+ return 0;
}
/* Iterate through every participant stopping MOH on them if need be */
@@ -291,13 +294,16 @@
} else {
/* If a marked user already exists in the conference bridge we can just bail out now */
if (conference_bridge->markedusers) {
- return;
+ return 0;
}
/* Be sure we are muted so we can't talk to anybody else waiting */
conference_bridge_user->features.mute = 1;
/* If we have not been quieted play back that they are waiting for the leader */
if (!ast_test_flag(&conference_bridge_user->flags, OPTION_QUIET)) {
- play_prompt_to_channel(conference_bridge, conference_bridge_user->chan, "conf-waitforleader");
+ if (play_prompt_to_channel(conference_bridge, conference_bridge_user->chan, "conf-waitforleader")) {
+ /* user hung up while the sound was playing */
+ return -1;
+ }
}
/* Start music on hold if needed */
/* We need to recheck the markedusers value here. play_prompt_to_channel unlocks the conference bridge, potentially
@@ -307,6 +313,7 @@
ast_moh_start(conference_bridge_user->chan, conference_bridge_user->opt_args[OPTION_MUSICONHOLD_CLASS], NULL);
}
}
+ return 0;
}
/*!
@@ -315,15 +322,18 @@
* \param conference_bridge Conference bridge being joined
* \param conference_bridge_user Conference bridge user joining
*
- * \return Returns nothing
- */
-static void post_join_unmarked(struct conference_bridge *conference_bridge, struct conference_bridge_user *conference_bridge_user)
+ * \return Returns 0 on success, -1 if the user hung up
+ */
+static int post_join_unmarked(struct conference_bridge *conference_bridge, struct conference_bridge_user *conference_bridge_user)
{
/* Play back audio prompt and start MOH if need be if we are the first participant */
if (conference_bridge->users == 1) {
/* If audio prompts have not been quieted or this prompt quieted play it on out */
if (!ast_test_flag(&conference_bridge_user->flags, OPTION_QUIET | OPTION_NOONLYPERSON)) {
- play_prompt_to_channel(conference_bridge, conference_bridge_user->chan, "conf-onlyperson");
+ if (play_prompt_to_channel(conference_bridge, conference_bridge_user->chan, "conf-onlyperson")) {
+ /* user hung up while the sound was playing */
+ return -1;
+ }
}
/* If we need to start music on hold on the channel do so now */
/* We need to re-check the number of users in the conference bridge here because another conference bridge
@@ -332,13 +342,16 @@
if (conference_bridge->users == 1 && ast_test_flag(&conference_bridge_user->flags, OPTION_MUSICONHOLD)) {
ast_moh_start(conference_bridge_user->chan, conference_bridge_user->opt_args[OPTION_MUSICONHOLD_CLASS], NULL);
}
- return;
+ return 0;
}
/* Announce number of users if need be */
if (ast_test_flag(&conference_bridge_user->flags, OPTION_ANNOUNCEUSERCOUNT)) {
ao2_unlock(conference_bridge);
- announce_user_count(conference_bridge, conference_bridge_user);
+ if (announce_user_count(conference_bridge, conference_bridge_user)) {
+ ao2_lock(conference_bridge);
+ return -1;
+ }
ao2_lock(conference_bridge);
}
@@ -352,6 +365,7 @@
ast_bridge_unsuspend(conference_bridge->bridge, first_participant->chan);
}
}
+ return 0;
}
/*!
@@ -382,6 +396,8 @@
conference_bridge->bridge = NULL;
}
}
+
+static void leave_conference_bridge(struct conference_bridge *conference_bridge, struct conference_bridge_user *conference_bridge_user);
/*!
* \brief Join a conference bridge
@@ -470,9 +486,17 @@
/* If the caller is a marked user or is waiting for a marked user to enter pass 'em off, otherwise pass them off to do regular joining stuff */
if (ast_test_flag(&conference_bridge_user->flags, OPTION_MARKEDUSER | OPTION_WAITMARKED)) {
- post_join_marked(conference_bridge, conference_bridge_user);
+ if (post_join_marked(conference_bridge, conference_bridge_user)) {
+ ao2_unlock(conference_bridge);
+ leave_conference_bridge(conference_bridge, conference_bridge_user);
+ return NULL;
+ }
} else {
- post_join_unmarked(conference_bridge, conference_bridge_user);
+ if (post_join_unmarked(conference_bridge, conference_bridge_user)) {
+ ao2_unlock(conference_bridge);
+ leave_conference_bridge(conference_bridge, conference_bridge_user);
+ return NULL;
+ }
}
ao2_unlock(conference_bridge);
Modified: team/kaii/1.8-multicall/apps/app_dial.c
URL: http://svnview.digium.com/svn/asterisk/team/kaii/1.8-multicall/apps/app_dial.c?view=diff&rev=330825&r1=330824&r2=330825
==============================================================================
--- team/kaii/1.8-multicall/apps/app_dial.c (original)
+++ team/kaii/1.8-multicall/apps/app_dial.c Thu Aug 4 04:00:09 2011
@@ -65,6 +65,7 @@
#include "asterisk/aoc.h"
#include "asterisk/ccss.h"
#include "asterisk/indications.h"
+#include "asterisk/framehook.h"
/*** DOCUMENTATION
<application name="Dial" language="en_US">
@@ -638,7 +639,8 @@
OPT_CALLER_HANGUP | OPT_CALLEE_TRANSFER | OPT_CALLER_TRANSFER | \
OPT_CALLEE_MONITOR | OPT_CALLER_MONITOR | OPT_CALLEE_PARK | \
OPT_CALLER_PARK | OPT_ANNOUNCE | OPT_CALLEE_MACRO | OPT_CALLEE_GOSUB) && \
- !chan->audiohooks && !peer->audiohooks)
+ !chan->audiohooks && !peer->audiohooks && \
+ ast_framehook_list_is_empty(chan->framehooks) && ast_framehook_list_is_empty(peer->framehooks))
/*
* The list of active channels
@@ -775,12 +777,16 @@
"Destination: %s\r\n"
"CallerIDNum: %s\r\n"
"CallerIDName: %s\r\n"
+ "ConnectedLineNum: %s\r\n"
+ "ConnectedLineName: %s\r\n"
"UniqueID: %s\r\n"
"DestUniqueID: %s\r\n"
"Dialstring: %s\r\n",
src->name, dst->name,
S_COR(src->caller.id.number.valid, src->caller.id.number.str, "<unknown>"),
S_COR(src->caller.id.name.valid, src->caller.id.name.str, "<unknown>"),
+ S_COR(src->connected.id.number.valid, src->connected.id.number.str, "<unknown>"),
+ S_COR(src->connected.id.name.valid, src->connected.id.name.str, "<unknown>"),
src->uniqueid, dst->uniqueid,
dialstring ? dialstring : "");
}
@@ -2351,6 +2357,7 @@
* No hint name available. We have a connected name supplied by
* the dialplan we can use instead.
*/
+ caller.id.name.valid = 1;
caller.id.name = chan->connected.id.name;
}
ast_channel_set_caller_event(tc, &caller, NULL);
@@ -2364,6 +2371,7 @@
* We have a connected name supplied by the dialplan we can
* use instead.
*/
+ caller.id.name.valid = 1;
caller.id.name = chan->connected.id.name;
ast_channel_set_caller_event(tc, &caller, NULL);
}
@@ -2507,8 +2515,11 @@
* to which the datastore was moved hangs up, it will attempt to free this
* datastore again, causing a crash
*/
- if (!ast_channel_datastore_remove(chan, datastore))
+ ast_channel_lock(chan);
+ if (!ast_channel_datastore_remove(chan, datastore)) {
ast_datastore_free(datastore);
+ }
+ ast_channel_unlock(chan);
if (!peer) {
if (result) {
res = result;
Modified: team/kaii/1.8-multicall/apps/app_directed_pickup.c
URL: http://svnview.digium.com/svn/asterisk/team/kaii/1.8-multicall/apps/app_directed_pickup.c?view=diff&rev=330825&r1=330824&r2=330825
==============================================================================
--- team/kaii/1.8-multicall/apps/app_directed_pickup.c (original)
+++ team/kaii/1.8-multicall/apps/app_directed_pickup.c Thu Aug 4 04:00:09 2011
@@ -97,62 +97,6 @@
static const char app2[] = "PickupChan";
/*! \todo This application should return a result code, like PICKUPRESULT */
-/* Perform actual pickup between two channels */
-static int pickup_do(struct ast_channel *chan, struct ast_channel *target)
-{
- int res = 0;
- struct ast_party_connected_line connected_caller;
- struct ast_channel *chans[2] = { chan, target };
-
- ast_debug(1, "Call pickup on '%s' by '%s'\n", target->name, chan->name);
[... 15210 lines stripped ...]
More information about the svn-commits
mailing list