[asterisk-commits] russell: branch group/cdr_backend_ast_str r111661 - in /team/group/cdr_backen...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Fri Mar 28 11:28:34 CDT 2008
Author: russell
Date: Fri Mar 28 11:28:34 2008
New Revision: 111661
URL: http://svn.digium.com/view/asterisk?view=rev&rev=111661
Log:
resolve reset for juggie
Added:
team/group/cdr_backend_ast_str/contrib/scripts/get_ilbc_source.sh
- copied unchanged from r111659, trunk/contrib/scripts/get_ilbc_source.sh
Modified:
team/group/cdr_backend_ast_str/ (props changed)
team/group/cdr_backend_ast_str/CHANGES
team/group/cdr_backend_ast_str/UPGRADE.txt
team/group/cdr_backend_ast_str/apps/app_playback.c
team/group/cdr_backend_ast_str/apps/app_queue.c
team/group/cdr_backend_ast_str/apps/app_voicemail.c
team/group/cdr_backend_ast_str/channels/chan_iax2.c
team/group/cdr_backend_ast_str/channels/chan_sip.c
team/group/cdr_backend_ast_str/channels/iax2-provision.c
team/group/cdr_backend_ast_str/channels/misdn_config.c
team/group/cdr_backend_ast_str/codecs/ilbc/ (props changed)
team/group/cdr_backend_ast_str/contrib/scripts/autosupport
team/group/cdr_backend_ast_str/doc/valgrind.txt
team/group/cdr_backend_ast_str/formats/format_wav_gsm.c
team/group/cdr_backend_ast_str/include/asterisk/ael_structs.h
team/group/cdr_backend_ast_str/include/asterisk/config.h
team/group/cdr_backend_ast_str/include/asterisk/dsp.h
team/group/cdr_backend_ast_str/include/asterisk/linkedlists.h
team/group/cdr_backend_ast_str/include/asterisk/pval.h
team/group/cdr_backend_ast_str/include/asterisk/udptl.h
team/group/cdr_backend_ast_str/main/acl.c
team/group/cdr_backend_ast_str/main/asterisk.c
team/group/cdr_backend_ast_str/main/cdr.c
team/group/cdr_backend_ast_str/main/config.c
team/group/cdr_backend_ast_str/main/dnsmgr.c
team/group/cdr_backend_ast_str/main/dsp.c
team/group/cdr_backend_ast_str/main/enum.c
team/group/cdr_backend_ast_str/main/features.c
team/group/cdr_backend_ast_str/main/frame.c
team/group/cdr_backend_ast_str/main/http.c
team/group/cdr_backend_ast_str/main/loader.c
team/group/cdr_backend_ast_str/main/logger.c
team/group/cdr_backend_ast_str/main/manager.c
team/group/cdr_backend_ast_str/main/pbx.c
team/group/cdr_backend_ast_str/main/rtp.c
team/group/cdr_backend_ast_str/main/udptl.c
team/group/cdr_backend_ast_str/pbx/pbx_ael.c
team/group/cdr_backend_ast_str/res/ael/pval.c
Propchange: team/group/cdr_backend_ast_str/
------------------------------------------------------------------------------
automerge = *
Propchange: team/group/cdr_backend_ast_str/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.
Propchange: team/group/cdr_backend_ast_str/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Fri Mar 28 11:28:34 2008
@@ -1,1 +1,1 @@
-/trunk:1-111011
+/trunk:1-111660
Modified: team/group/cdr_backend_ast_str/CHANGES
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/CHANGES?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/CHANGES (original)
+++ team/group/cdr_backend_ast_str/CHANGES Fri Mar 28 11:28:34 2008
@@ -24,6 +24,12 @@
-----------
* The ATTENDED_TRANSFER_COMPLETE_SOUND can now be set using setvar to cause a given
audio file to be played upon completion of an attended transfer.
+
+CLI Changes
+-----------
+ * New CLI command, "config reload <file.conf>" which reloads any module that
+ references that particular configuration file. Also added "config list"
+ which shows which configuration files are in use.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 1.4.X to Asterisk 1.6.0 -------------
Modified: team/group/cdr_backend_ast_str/UPGRADE.txt
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/UPGRADE.txt?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/UPGRADE.txt (original)
+++ team/group/cdr_backend_ast_str/UPGRADE.txt Fri Mar 28 11:28:34 2008
@@ -195,15 +195,8 @@
(http://www.gipscorp.com). This code is not licensed for
distribution, and thus has been removed from the Asterisk source
code distribution. If you wish to use codec_ilbc to support iLBC
- channels in Asterisk, you must go to:
-
- http://ilbcfreeware.org
-
- and obtain the iLBC source code from that site, including agreeing
- to the license agreement specified. The site has instructions on how
- to extract the source code from the RFC file where it has been
- published; after you have done that, copy the resulting *.c and *.h
- files into the codecs/ilbc directory of the Asterisk source code
- tree and follow your normal steps of building Asterisk. You will
- need to run 'menuselect' and enable the iLBC codec in the 'Codec
- Translators' category.
+ channels in Asterisk, you can run the contrib/scripts/get_ilbc_source.sh
+ script to download the source and put it in the proper place in
+ the Asterisk build tree. Once that is done you can follow your normal
+ steps of building Asterisk. You will need to run 'menuselect' and enable
+ the iLBC codec in the 'Codec Translators' category.
Modified: team/group/cdr_backend_ast_str/apps/app_playback.c
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/apps/app_playback.c?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/apps/app_playback.c (original)
+++ team/group/cdr_backend_ast_str/apps/app_playback.c Fri Mar 28 11:28:34 2008
@@ -55,6 +55,8 @@
"This application sets the following channel variable upon completion:\n"
" PLAYBACKSTATUS The status of the playback attempt as a text string, one of\n"
" SUCCESS | FAILED\n"
+"See Also: Background (application) -- for playing soundfiles that are interruptible\n"
+" WaitExten (application) -- wait for digits from caller, optionally play music on hold\n"
;
Modified: team/group/cdr_backend_ast_str/apps/app_queue.c
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/apps/app_queue.c?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/apps/app_queue.c (original)
+++ team/group/cdr_backend_ast_str/apps/app_queue.c Fri Mar 28 11:28:34 2008
@@ -1408,8 +1408,6 @@
{
struct call_queue *q = obj;
int i;
-
- ast_debug(0, "Queue destructor called for queue '%s'!\n", q->name);
free_members(q, 1);
ast_string_field_free_memory(q);
@@ -6178,6 +6176,8 @@
{
int res;
struct ast_context *con;
+ struct ao2_iterator q_iter;
+ struct call_queue *q = NULL;
if (device_state.thread != AST_PTHREADT_NULL) {
device_state.stop = 1;
@@ -6190,7 +6190,7 @@
ast_cli_unregister_multiple(cli_queue, sizeof(cli_queue) / sizeof(struct ast_cli_entry));
res = ast_manager_unregister("QueueStatus");
res |= ast_manager_unregister("Queues");
- res |= ast_manager_unregister("QueueStatus");
+ res |= ast_manager_unregister("QueueRule");
res |= ast_manager_unregister("QueueSummary");
res |= ast_manager_unregister("QueueAdd");
res |= ast_manager_unregister("QueueRemove");
@@ -6220,6 +6220,11 @@
clear_and_free_interfaces();
+ q_iter = ao2_iterator_init(queues, 0);
+ while ((q = ao2_iterator_next(&q_iter))) {
+ ao2_unlink(queues, q);
+ queue_unref(q);
+ }
ao2_ref(queues, -1);
return res;
Modified: team/group/cdr_backend_ast_str/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/apps/app_voicemail.c?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/apps/app_voicemail.c (original)
+++ team/group/cdr_backend_ast_str/apps/app_voicemail.c Fri Mar 28 11:28:34 2008
@@ -416,6 +416,7 @@
int starting;
int repeats;
#ifdef IMAP_STORAGE
+ ast_mutex_t lock;
int updated; /*!< decremented on each mail check until 1 -allows delay */
long msgArray[256];
MAILSTREAM *mailstream;
@@ -5042,7 +5043,9 @@
#endif
/* Connect to mailbox to get mailstream so we can get delimiter */
imap_mailbox_name(tmp, sizeof(tmp), vms, 0, 1);
+ ast_mutex_lock(&vms->lock);
stream = mail_open (stream, tmp, debug ? OP_DEBUG : NIL);
+ ast_mutex_unlock(&vms->lock);
if (stream == NIL) {
ast_log(LOG_ERROR, "Can't connect to imap server %s\n", tmp);
return -1;
@@ -5057,7 +5060,9 @@
/* Now connect to the target folder */
imap_mailbox_name(tmp, sizeof(tmp), vms, box, 1);
ast_debug(3, "Before mail_open, server: %s, box:%d\n", tmp, box);
- vms->mailstream = mail_open(stream, tmp, debug ? OP_DEBUG : NIL);
+ ast_mutex_lock(&vms->lock);
+ vms->mailstream = mail_open (stream, tmp, debug ? OP_DEBUG : NIL);
+ ast_mutex_unlock(&vms->lock);
if (vms->mailstream == NIL) {
return -1;
} else {
@@ -9793,8 +9798,10 @@
AST_LIST_TRAVERSE_SAFE_END
AST_LIST_UNLOCK(&vmstates);
- if (vc)
+ if (vc) {
+ ast_mutex_destroy(&vc->vms->lock);
ast_free(vc);
+ }
else
ast_log(LOG_ERROR, "No vmstate found for user:%s, mailbox %s\n", vms->imapuser, vms->username);
}
@@ -9823,6 +9830,7 @@
for (x = 0; x < 256; x++) {
vms->msgArray[x] = 0;
}
+ ast_mutex_init(&vms->lock);
}
static void check_msgArray(struct vm_state *vms)
Modified: team/group/cdr_backend_ast_str/channels/chan_iax2.c
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/channels/chan_iax2.c?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/channels/chan_iax2.c (original)
+++ team/group/cdr_backend_ast_str/channels/chan_iax2.c Fri Mar 28 11:28:34 2008
@@ -488,6 +488,8 @@
unsigned int last;
/*! Last sent timestamp - never send the same timestamp twice in a single call */
unsigned int lastsent;
+ /*! Timestamp of the last video frame sent */
+ unsigned int lastvsent;
/*! Next outgoing timestamp if everything is good */
unsigned int nextpred;
/*! True if the last voice we transmitted was not silence/CNG */
@@ -4084,6 +4086,17 @@
p->nextpred = ms;
p->notsilenttx = 1;
}
+ } else if ( f->frametype == AST_FRAME_VIDEO ) {
+ /*
+ * IAX2 draft 03 says that timestamps MUST be in order.
+ * It does not say anything about several frames having the same timestamp
+ * When transporting video, we can have a frame that spans multiple iax packets
+ * (so called slices), so it would make sense to use the same timestamp for all of
+ * them
+ * We do want to make sure that frames don't go backwards though
+ */
+ if ( (unsigned int)ms < p->lastsent )
+ ms = p->lastsent;
} else {
/* On a dataframe, use last value + 3 (to accomodate jitter buffer shrinking) if appropriate unless
it's a genuine frame */
@@ -4467,11 +4480,22 @@
/* Mark that mini-style frame is appropriate */
sendmini = 1;
}
- if (((fts & 0xFFFF8000L) == (lastsent & 0xFFFF8000L)) &&
- (f->frametype == AST_FRAME_VIDEO) &&
- ((f->subclass & ~0x1) == pvt->svideoformat)) {
+ if ( f->frametype == AST_FRAME_VIDEO ) {
+ /*
+ * If the lower 15 bits of the timestamp roll over, or if
+ * the video format changed then send a full frame.
+ * Otherwise send a mini video frame
+ */
+ if (((fts & 0xFFFF8000L) == (pvt->lastvsent & 0xFFFF8000L)) &&
+ ((f->subclass & ~0x1) == pvt->svideoformat)
+ ) {
now = 1;
sendmini = 1;
+ } else {
+ now = 0;
+ sendmini = 0;
+ }
+ pvt->lastvsent = fts;
}
/* Allocate an iax_frame */
if (now) {
Modified: team/group/cdr_backend_ast_str/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/channels/chan_sip.c?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/channels/chan_sip.c (original)
+++ team/group/cdr_backend_ast_str/channels/chan_sip.c Fri Mar 28 11:28:34 2008
@@ -8799,7 +8799,7 @@
ast_channel_unlock(chan);
}
if (sdp) {
- if (p->udptl && p->t38.state == T38_LOCAL_DIRECT) {
+ if (p->udptl && (p->t38.state == T38_LOCAL_DIRECT || p->t38.state == T38_LOCAL_REINVITE)) {
ast_udptl_offered_from_local(p->udptl, 1);
ast_debug(1, "T38 is in state %d on channel %s\n", p->t38.state, p->owner ? p->owner->name : "<none>");
add_t38_sdp(&req, p);
@@ -13143,8 +13143,9 @@
int numchans; /* return value */
};
-#define FORMAT3 "%-15.15s %-10.10s %-15.15s %-15.15s %-13.13s %-15.15s %-10.10s\n"
-#define FORMAT2 "%-15.15s %-10.10s %-15.15s %-15.15s %-7.7s %-15.15s\n"
+#define FORMAT4 "%-15.15s %-10.10s %-15.15s %-15.15s %-13.13s %-15.15s %-10.10s %-6.6d\n"
+#define FORMAT3 "%-15.15s %-10.10s %-15.15s %-15.15s %-13.13s %-15.15s %-10.10s %-6.6s\n"
+#define FORMAT2 "%-15.15s %-10.10s %-15.15s %-15.15s %-7.7s %-15.15s %-6.6s\n"
#define FORMAT "%-15.15s %-10.10s %-15.15s %-15.15s %-3.3s %-3.3s %-15.15s %-10.10s\n"
/*! \brief callback for show channel|subscription */
@@ -13175,14 +13176,15 @@
struct ast_str *mailbox_str = ast_str_alloca(512);
if (cur->subscribed == MWI_NOTIFICATION && cur->relatedpeer)
peer_mailboxes_to_str(&mailbox_str, cur->relatedpeer);
- ast_cli(arg->fd, FORMAT3, ast_inet_ntoa(dst->sin_addr),
+ ast_cli(arg->fd, FORMAT4, ast_inet_ntoa(dst->sin_addr),
S_OR(cur->username, S_OR(cur->cid_num, "(None)")),
cur->callid,
/* the 'complete' exten/context is hidden in the refer_to field for subscriptions */
cur->subscribed == MWI_NOTIFICATION ? "--" : cur->subscribeuri,
cur->subscribed == MWI_NOTIFICATION ? "<none>" : ast_extension_state2str(cur->laststate),
subscription_type2str(cur->subscribed),
- cur->subscribed == MWI_NOTIFICATION ? S_OR(mailbox_str->str, "<none>") : "<none>"
+ cur->subscribed == MWI_NOTIFICATION ? S_OR(mailbox_str->str, "<none>") : "<none>",
+ cur->expiry
);
arg->numchans++;
}
@@ -13215,9 +13217,9 @@
return CLI_SHOWUSAGE;
arg.subscriptions = !strcasecmp(a->argv[e->args - 1], "subscriptions");
if (!arg.subscriptions)
- ast_cli(arg.fd, FORMAT2, "Peer", "User/ANR", "Call ID", "Format", "Hold", "Last Message");
+ ast_cli(arg.fd, FORMAT2, "Peer", "User/ANR", "Call ID", "Format", "Hold", "Last Message", "Expiry");
else
- ast_cli(arg.fd, FORMAT3, "Peer", "User", "Call ID", "Extension", "Last state", "Type", "Mailbox");
+ ast_cli(arg.fd, FORMAT3, "Peer", "User", "Call ID", "Extension", "Last state", "Type", "Mailbox", "Expiry");
/* iterate on the container and invoke the callback on each item */
dialoglist_lock();
Modified: team/group/cdr_backend_ast_str/channels/iax2-provision.c
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/channels/iax2-provision.c?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/channels/iax2-provision.c (original)
+++ team/group/cdr_backend_ast_str/channels/iax2-provision.c Fri Mar 28 11:28:34 2008
@@ -497,7 +497,7 @@
cur->dead = 1;
cur = cur->next;
}
- cfg = ast_config_load("iaxprov.conf", config_flags);
+ cfg = ast_config_load2("iaxprov.conf", "chan_iax2", config_flags);
if (cfg != NULL && cfg != CONFIG_STATUS_FILEUNCHANGED) {
/* Load as appropriate */
cat = ast_category_browse(cfg, NULL);
Modified: team/group/cdr_backend_ast_str/channels/misdn_config.c
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/channels/misdn_config.c?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/channels/misdn_config.c (original)
+++ team/group/cdr_backend_ast_str/channels/misdn_config.c Fri Mar 28 11:28:34 2008
@@ -38,9 +38,6 @@
#include "asterisk/pbx.h"
#include "asterisk/strings.h"
#include "asterisk/utils.h"
-
-#define AST_LOAD_CFG ast_config_load
-#define AST_DESTROY_CFG ast_config_destroy
#define NO_DEFAULT "<>"
#define NONE 0
@@ -1095,7 +1092,7 @@
struct ast_variable *v;
struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
- if (!(cfg = AST_LOAD_CFG(config, config_flags))) {
+ if (!(cfg = ast_config_load2(config, "chan_misdn", config_flags))) {
ast_log(LOG_WARNING, "missing file: misdn.conf\n");
return -1;
} else if (cfg == CONFIG_STATUS_FILEUNCHANGED)
@@ -1149,7 +1146,7 @@
_fill_defaults();
misdn_cfg_unlock();
- AST_DESTROY_CFG(cfg);
+ ast_config_destroy(cfg);
return 0;
}
Propchange: team/group/cdr_backend_ast_str/codecs/ilbc/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Mar 28 11:28:34 2008
@@ -3,3 +3,7 @@
*.d
*.a
*.so
+*.c
+*.h
+rfc3951.txt
+extract-cfile.awk
Modified: team/group/cdr_backend_ast_str/contrib/scripts/autosupport
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/contrib/scripts/autosupport?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/contrib/scripts/autosupport (original)
+++ team/group/cdr_backend_ast_str/contrib/scripts/autosupport Fri Mar 28 11:28:34 2008
@@ -12,12 +12,15 @@
OUTPUT=$HOME/digiuminfo
-if [ $UID -ne 0 ]; then
+MYUID=$(id -u);
+
+if [ $MYUID -ne 0 ]; then
echo "You must be root to run this."
-
-exit 1
+ exit 1
fi
+
+clear
echo
echo "This will gather information about your system such as:"
@@ -31,9 +34,16 @@
rm -f $OUTPUT
echo "------------------" >> $OUTPUT;
- echo "PCI LIST " >> $OUTPUT;
+ echo "PCI LIST" >> $OUTPUT;
echo "------------------" >> $OUTPUT;
- lspci -vb >> $OUTPUT;
+ lspci -vvvb >> $OUTPUT;
+ echo >> $OUTPUT;
+ echo >> $OUTPUT;
+
+ echo "------------------" >> $OUTPUT;
+ echo "PCI LIST(no lookup)" >> $OUTPUT;
+ echo "------------------" >> $OUTPUT;
+ lspci -vvvbn >> $OUTPUT;
echo >> $OUTPUT;
echo >> $OUTPUT;
@@ -41,13 +51,6 @@
echo "INTERRUPTS" >> $OUTPUT;
echo "------------------" >> $OUTPUT;
cat /proc/interrupts >> $OUTPUT;
- echo >> $OUTPUT;
- echo >> $OUTPUT;
-
- echo "------------------" >> $OUTPUT;
- echo "DMESG OUTPUT" >> $OUTPUT;
- echo "------------------" >> $OUTPUT;
- dmesg >> $OUTPUT;
echo >> $OUTPUT;
echo >> $OUTPUT;
@@ -73,10 +76,44 @@
echo >> $OUTPUT;
echo "------------------" >> $OUTPUT;
- echo "HDPARM STATUS" >> $OUTPUT;
+ echo "VERSION INFO" >> $OUTPUT;
echo "------------------" >> $OUTPUT;
- hdparm /dev/hda >> $OUTPUT;
- hdparm -i /dev/hda >> $OUTPUT;
+ cat /proc/version >> $OUTPUT;
+ echo >> $OUTPUT;
+ echo >> $OUTPUT;
+
+ echo "------------------" >> $OUTPUT;
+ echo "CMDLINE INFO" >> $OUTPUT;
+ echo "------------------" >> $OUTPUT;
+ cat /proc/cmdline >> $OUTPUT;
+ echo >> $OUTPUT;
+ echo >> $OUTPUT;
+
+ echo "------------------" >> $OUTPUT;
+ echo "LOADED MODULES" >> $OUTPUT;
+ echo "------------------" >> $OUTPUT;
+ lsmod >> $OUTPUT;
+ echo >> $OUTPUT;
+ echo >> $OUTPUT;
+
+ echo "------------------" >> $OUTPUT;
+ echo "ZTTEST" >> $OUTPUT;
+ echo "------------------" >> $OUTPUT;
+ zttest -c 20 >> $OUTPUT;
+ echo >> $OUTPUT;
+ echo >> $OUTPUT;
+
+ echo "------------------" >> $OUTPUT;
+ echo "DMESG OUTPUT" >> $OUTPUT;
+ echo "------------------" >> $OUTPUT;
+ dmesg >> $OUTPUT;
+ echo >> $OUTPUT;
+ echo >> $OUTPUT;
+
+ echo "------------------" >> $OUTPUT;
+ echo "DMIDECODE" >> $OUTPUT;
+ echo "------------------" >> $OUTPUT;
+ dmidecode >> $OUTPUT;
echo >> $OUTPUT;
echo >> $OUTPUT;
@@ -101,22 +138,18 @@
echo >> $OUTPUT;
echo >> $OUTPUT;
- echo "------------------" >> $OUTPUT;
- echo "ZTTEST" >> $OUTPUT;
- echo "------------------" >> $OUTPUT;
- /usr/src/zaptel/zttest -c 20 >> $OUTPUT;
- echo >> $OUTPUT;
- echo >> $OUTPUT;
-
else
echo "terminated";
exit
fi
+clear
+
echo
echo "Digium may require root level access to the system to help debug";
echo "the problem you are experiencing. Do you want to provide login";
-echo "information at this time?";
+echo "information at this time? Please note that if you do so, change";
+echo "your root password to a secure temporary password for Digium support";
echo "Press 'y' for yes and any other key to exit and save the previous info collected"
read login
@@ -146,15 +179,17 @@
echo "Additional login info: "$adinfo >> $OUTPUT
+ clear
echo
echo "All information has been stored in $OUTPUT,"
- echo "Please attach this file to an email ticket you already"
+ echo "Please attach this file to an email case you already"
echo "have open with Digium Tech Support."
else
+ clear
echo
echo "All information except login info has been stored in $OUTPUT,"
- echo "Please send this file to an email ticket you already"
+ echo "Please send this file to an email case you already"
echo "have open with Digium Tech Support."
exit
fi
Modified: team/group/cdr_backend_ast_str/doc/valgrind.txt
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/doc/valgrind.txt?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/doc/valgrind.txt (original)
+++ team/group/cdr_backend_ast_str/doc/valgrind.txt Fri Mar 28 11:28:34 2008
@@ -13,7 +13,14 @@
3. Run Asterisk as follows:
valgrind --log-file-exactly=valgrind.txt asterisk -vvvvcg 2>malloc_debug.txt
+ UPDATE: The newest version of valgrind has eliminated the
+ --log-file-exactly option. If you are running valgrind 3.3.0 or higher,
+ just use the --log-file option, keeping in mind that Valgrind will append
+ a trailing suffix onto valgrind.txt.
+
4. Reproduce the issue. Following the manifestation of the issue (or when
the process crashes), upload the two files, valgrind.txt and
- malloc_debug.txt to the issue tracker.
+ malloc_debug.txt to the issue tracker. If you are using the --log-file
+ option, note that valgrind.txt will have a trailing suffix. That's fine,
+ just upload that file.
Modified: team/group/cdr_backend_ast_str/formats/format_wav_gsm.c
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/formats/format_wav_gsm.c?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/formats/format_wav_gsm.c (original)
+++ team/group/cdr_backend_ast_str/formats/format_wav_gsm.c Fri Mar 28 11:28:34 2008
@@ -214,8 +214,8 @@
/* in a gsm WAV, data starts 60 bytes in */
bytes = end - MSGSM_DATA_OFFSET;
samples = htoll(bytes / MSGSM_FRAME_SIZE * MSGSM_SAMPLES);
- datalen = htoll((bytes + 1) & ~0x1);
- filelen = htoll(MSGSM_DATA_OFFSET - 8 + ((bytes + 1) & ~0x1));
+ datalen = htoll(bytes);
+ filelen = htoll(MSGSM_DATA_OFFSET - 8 + bytes);
if (cur < 0) {
ast_log(LOG_WARNING, "Unable to find our position\n");
return -1;
@@ -387,15 +387,6 @@
if (write_header(s->f))
return -1;
return 0;
-}
-
-static void wav_close(struct ast_filestream *s)
-{
- char zero = 0;
- /* Pad to even length */
- fseek(s->f, 0, SEEK_END);
- if (ftello(s->f) & 0x1)
- fwrite(&zero, 1, 1, s->f);
}
static struct ast_frame *wav_read(struct ast_filestream *s, int *whennext)
@@ -539,7 +530,6 @@
.trunc = wav_trunc,
.tell = wav_tell,
.read = wav_read,
- .close = wav_close,
.buf_size = 2*GSM_FRAME_SIZE + AST_FRIENDLY_OFFSET,
.desc_size = sizeof(struct wavg_desc),
};
Modified: team/group/cdr_backend_ast_str/include/asterisk/ael_structs.h
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/include/asterisk/ael_structs.h?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/include/asterisk/ael_structs.h (original)
+++ team/group/cdr_backend_ast_str/include/asterisk/ael_structs.h Fri Mar 28 11:28:34 2008
@@ -107,6 +107,7 @@
char *hints;
int regexten;
int is_switch;
+ int has_switch;
struct ast_context *context;
Modified: team/group/cdr_backend_ast_str/include/asterisk/config.h
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/include/asterisk/config.h?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/include/asterisk/config.h (original)
+++ team/group/cdr_backend_ast_str/include/asterisk/config.h Fri Mar 28 11:28:34 2008
@@ -97,7 +97,7 @@
*/
struct ast_config *ast_config_load2(const char *filename, const char *who_asked, struct ast_flags flags);
-#define ast_config_load(filename, flags) ast_config_load2(filename, __FILE__, flags)
+#define ast_config_load(filename, flags) ast_config_load2(filename, AST_MODULE, flags)
/*! \brief Destroys a config
* \param config pointer to config data structure
Modified: team/group/cdr_backend_ast_str/include/asterisk/dsp.h
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/include/asterisk/dsp.h?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/include/asterisk/dsp.h (original)
+++ team/group/cdr_backend_ast_str/include/asterisk/dsp.h Fri Mar 28 11:28:34 2008
@@ -120,6 +120,10 @@
/*! \brief Set fax mode */
int ast_dsp_set_faxmode(struct ast_dsp *dsp, int faxmode);
+/*! \brief Returns true if DSP code was muting any fragment of the last processed frame.
+ Muting (squelching) happens when DSP code removes DTMF/MF/generic tones from the audio */
+int ast_dsp_was_muted(struct ast_dsp *dsp);
+
/*! \brief Get tstate (Tone State) */
int ast_dsp_get_tstate(struct ast_dsp *dsp);
Modified: team/group/cdr_backend_ast_str/include/asterisk/linkedlists.h
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/include/asterisk/linkedlists.h?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/include/asterisk/linkedlists.h (original)
+++ team/group/cdr_backend_ast_str/include/asterisk/linkedlists.h Fri Mar 28 11:28:34 2008
@@ -456,6 +456,7 @@
\li AST_LIST_INSERT_AFTER()
\li AST_LIST_INSERT_HEAD()
\li AST_LIST_INSERT_TAIL()
+ \li AST_LIST_INSERT_SORTALPHA()
*/
#define AST_LIST_TRAVERSE(head,var,field) \
for((var) = (head)->first; (var); (var) = (var)->field.next)
@@ -693,6 +694,35 @@
} while (0)
#define AST_RWLIST_INSERT_TAIL AST_LIST_INSERT_TAIL
+
+/*!
+ * \brief Inserts a list entry into a alphabetically sorted list
+ * \param head Pointer to the list head structure
+ * \param elm Pointer to the entry to be inserted
+ * \param field Name of the list entry field (declared using AST_LIST_ENTRY())
+ * \param sortfield Name of the field on which the list is sorted
+ */
+#define AST_LIST_INSERT_SORTALPHA(head, elm, field, sortfield) do { \
+ if (!(head)->first) { \
+ (head)->first = (elm); \
+ (head)->last = (elm); \
+ } else { \
+ typeof((head)->first) cur = (head)->first, prev = NULL; \
+ while (cur && strcmp(cur->sortfield, elm->sortfield) < 0) { \
+ prev = cur; \
+ cur = cur->field.next; \
+ } \
+ if (!prev) { \
+ AST_LIST_INSERT_HEAD(head, elm, field); \
+ } else if (!cur) { \
+ AST_LIST_INSERT_TAIL(head, elm, field); \
+ } else { \
+ AST_LIST_INSERT_AFTER(head, prev, elm, field); \
+ } \
+ } \
+} while (0)
+
+#define AST_RWLIST_INSERT_SORTALPHA AST_LIST_INSERT_SORTALPHA
/*!
\brief Appends a whole list to the tail of a list.
Modified: team/group/cdr_backend_ast_str/include/asterisk/pval.h
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/include/asterisk/pval.h?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/include/asterisk/pval.h (original)
+++ team/group/cdr_backend_ast_str/include/asterisk/pval.h Fri Mar 28 11:28:34 2008
@@ -138,7 +138,7 @@
struct pval *find_macro(char *name);
struct ael_priority *new_prio(void);
struct ael_extension *new_exten(void);
-void linkprio(struct ael_extension *exten, struct ael_priority *prio);
+void linkprio(struct ael_extension *exten, struct ael_priority *prio, struct ael_extension *mother_exten);
void destroy_extensions(struct ael_extension *exten);
/* static void linkexten(struct ael_extension *exten, struct ael_extension *add);
static void gen_prios(struct ael_extension *exten, char *label, pval *statement, struct ael_extension *mother_exten, struct ast_context *context ); */
Modified: team/group/cdr_backend_ast_str/include/asterisk/udptl.h
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/include/asterisk/udptl.h?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/include/asterisk/udptl.h (original)
+++ team/group/cdr_backend_ast_str/include/asterisk/udptl.h Fri Mar 28 11:28:34 2008
@@ -118,7 +118,7 @@
void ast_udptl_init(void);
-void ast_udptl_reload(void);
+int ast_udptl_reload(void);
#if defined(__cplusplus) || defined(c_plusplus)
}
Modified: team/group/cdr_backend_ast_str/main/acl.c
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/main/acl.c?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/main/acl.c (original)
+++ team/group/cdr_backend_ast_str/main/acl.c Fri Mar 28 11:28:34 2008
@@ -144,7 +144,7 @@
#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__)
for (ifap = ifaphead; ifap; ifap = ifap->ifa_next) {
- if (ifap->ifa_addr->sa_family == AF_INET) {
+ if (ifap->ifa_addr && ifap->ifa_addr->sa_family == AF_INET) {
sin = (const struct sockaddr_in *) ifap->ifa_addr;
score_address(sin, &best_addr, &best_score);
res = 0;
Modified: team/group/cdr_backend_ast_str/main/asterisk.c
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/main/asterisk.c?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/main/asterisk.c (original)
+++ team/group/cdr_backend_ast_str/main/asterisk.c Fri Mar 28 11:28:34 2008
@@ -2509,11 +2509,11 @@
} found = { 0, 0 };
if (ast_opt_override_config) {
- cfg = ast_config_load(ast_config_AST_CONFIG_FILE, config_flags);
+ cfg = ast_config_load2(ast_config_AST_CONFIG_FILE, "" /* core, can't reload */, config_flags);
if (!cfg)
ast_log(LOG_WARNING, "Unable to open specified master config file '%s', using built-in defaults\n", ast_config_AST_CONFIG_FILE);
} else
- cfg = ast_config_load(config, config_flags);
+ cfg = ast_config_load2(config, "" /* core, can't reload */, config_flags);
/* init with buildtime config */
ast_copy_string(cfg_paths.config_dir, DEFAULT_CONFIG_DIR, sizeof(cfg_paths.config_dir));
@@ -2756,7 +2756,7 @@
struct ast_flags cfg_flags = { 0 };
struct ast_variable *v;
- if (!(cfg = ast_config_load("cli.conf", cfg_flags)))
+ if (!(cfg = ast_config_load2("cli.conf", "" /* core, can't reload */, cfg_flags)))
return;
fd = open("/dev/null", O_RDWR);
Modified: team/group/cdr_backend_ast_str/main/cdr.c
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/main/cdr.c?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/main/cdr.c (original)
+++ team/group/cdr_backend_ast_str/main/cdr.c Fri Mar 28 11:28:34 2008
@@ -1330,7 +1330,7 @@
int res=0;
struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
- if ((config = ast_config_load("cdr.conf", config_flags)) == CONFIG_STATUS_FILEUNCHANGED)
+ if ((config = ast_config_load2("cdr.conf", "cdr", config_flags)) == CONFIG_STATUS_FILEUNCHANGED)
return 0;
ast_mutex_lock(&cdr_batch_lock);
Modified: team/group/cdr_backend_ast_str/main/config.c
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/main/config.c?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/main/config.c (original)
+++ team/group/cdr_backend_ast_str/main/config.c Fri Mar 28 11:28:34 2008
@@ -878,7 +878,7 @@
cfmtime->who_asked = cfmtime->filename + strlen(configfile) + 1;
strcpy(cfmtime->who_asked, who_asked);
/* Note that the file mtime is initialized to 0, i.e. 1970 */
- AST_LIST_INSERT_TAIL(&cfmtime_head, cfmtime, list);
+ AST_LIST_INSERT_SORTALPHA(&cfmtime_head, cfmtime, list, filename);
}
if (!stat(configfile, &statbuf))
@@ -1211,7 +1211,7 @@
cfmtime->who_asked = cfmtime->filename + strlen(fn) + 1;
strcpy(cfmtime->who_asked, who_asked);
/* Note that the file mtime is initialized to 0, i.e. 1970 */
- AST_LIST_INSERT_TAIL(&cfmtime_head, cfmtime, list);
+ AST_LIST_INSERT_SORTALPHA(&cfmtime_head, cfmtime, list, filename);
}
}
@@ -1821,7 +1821,7 @@
configtmp = ast_config_new();
configtmp->max_include_level = 1;
- config = ast_config_internal_load(extconfig_conf, configtmp, flags, "", "config.c");
+ config = ast_config_internal_load(extconfig_conf, configtmp, flags, "", "extconfig");
if (!config) {
ast_config_destroy(configtmp);
return 0;
@@ -2339,8 +2339,96 @@
return CLI_SUCCESS;
}
+static char *handle_cli_config_reload(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+ struct cache_file_mtime *cfmtime;
+ char *prev = "", *completion_value = NULL;
+ int wordlen, which = 0;
+
+ switch (cmd) {
+ case CLI_INIT:
+ e->command = "config reload";
+ e->usage =
+ "Usage: config reload <filename.conf>\n"
+ " Reloads all modules that reference <filename.conf>\n";
+ return NULL;
+ case CLI_GENERATE:
+ if (a->pos > 2) {
+ return NULL;
+ }
+
+ wordlen = strlen(a->word);
+
+ AST_LIST_LOCK(&cfmtime_head);
+ AST_LIST_TRAVERSE(&cfmtime_head, cfmtime, list) {
+ /* Skip duplicates - this only works because the list is sorted by filename */
+ if (strcmp(cfmtime->filename, prev) == 0) {
+ continue;
+ }
+
+ /* Core configs cannot be reloaded */
+ if (ast_strlen_zero(cfmtime->who_asked)) {
+ continue;
+ }
+
+ if (++which > a->n && strncmp(cfmtime->filename, a->word, wordlen) == 0) {
+ completion_value = ast_strdup(cfmtime->filename);
+ break;
+ }
+
+ /* Otherwise save that we've seen this filename */
+ prev = cfmtime->filename;
+ }
+ AST_LIST_UNLOCK(&cfmtime_head);
+
+ return completion_value;
+ }
+
+ if (a->argc != 3) {
+ return CLI_SHOWUSAGE;
+ }
+
+ AST_LIST_LOCK(&cfmtime_head);
+ AST_LIST_TRAVERSE(&cfmtime_head, cfmtime, list) {
+ if (!strcmp(cfmtime->filename, a->argv[2])) {
+ char *buf = alloca(strlen("module reload ") + strlen(cfmtime->who_asked) + 1);
+ sprintf(buf, "module reload %s", cfmtime->who_asked);
+ ast_cli_command(a->fd, buf);
+ }
+ }
+ AST_LIST_UNLOCK(&cfmtime_head);
+
+ return CLI_SUCCESS;
+}
+
+static char *handle_cli_config_list(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+ struct cache_file_mtime *cfmtime;
+
+ switch (cmd) {
+ case CLI_INIT:
+ e->command = "config list";
+ e->usage =
+ "Usage: config list\n"
+ " Show all modules that have loaded a configuration file\n";
+ return NULL;
+ case CLI_GENERATE:
+ return NULL;
+ }
+
+ AST_LIST_LOCK(&cfmtime_head);
+ AST_LIST_TRAVERSE(&cfmtime_head, cfmtime, list) {
+ ast_cli(a->fd, "%-20.20s %-50s\n", S_OR(cfmtime->who_asked, "core"), cfmtime->filename);
+ }
+ AST_LIST_UNLOCK(&cfmtime_head);
+
+ return CLI_SUCCESS;
+}
+
static struct ast_cli_entry cli_config[] = {
AST_CLI_DEFINE(handle_cli_core_show_config_mappings, "Display config mappings (file names to config engines)"),
+ AST_CLI_DEFINE(handle_cli_config_reload, "Force a reload on modules using a particular configuration file"),
+ AST_CLI_DEFINE(handle_cli_config_list, "Show all files that have loaded a configuration file"),
};
int register_config_cli()
Modified: team/group/cdr_backend_ast_str/main/dnsmgr.c
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/main/dnsmgr.c?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/main/dnsmgr.c (original)
+++ team/group/cdr_backend_ast_str/main/dnsmgr.c Fri Mar 28 11:28:34 2008
@@ -360,7 +360,7 @@
int was_enabled;
int res = -1;
- if ((config = ast_config_load("dnsmgr.conf", config_flags)) == CONFIG_STATUS_FILEUNCHANGED)
+ if ((config = ast_config_load2("dnsmgr.conf", "dnsmgr", config_flags)) == CONFIG_STATUS_FILEUNCHANGED)
return 0;
/* ensure that no refresh cycles run while the reload is in progress */
Modified: team/group/cdr_backend_ast_str/main/dsp.c
URL: http://svn.digium.com/view/asterisk/team/group/cdr_backend_ast_str/main/dsp.c?view=diff&rev=111661&r1=111660&r2=111661
==============================================================================
--- team/group/cdr_backend_ast_str/main/dsp.c (original)
+++ team/group/cdr_backend_ast_str/main/dsp.c Fri Mar 28 11:28:34 2008
@@ -150,13 +150,13 @@
#define FAX_2ND_HARMONIC 2.0 /* 4dB */
#define DTMF_NORMAL_TWIST 6.3 /* 8dB */
#ifdef RADIO_RELAX
-#define DTMF_REVERSE_TWIST ((digitmode & DSP_DIGITMODE_RELAXDTMF) ? 6.5 : 2.5) /* 4dB normal */
+#define DTMF_REVERSE_TWIST (relax ? 6.5 : 2.5) /* 4dB normal */
#else
-#define DTMF_REVERSE_TWIST ((digitmode & DSP_DIGITMODE_RELAXDTMF) ? 4.0 : 2.5) /* 4dB normal */
+#define DTMF_REVERSE_TWIST (relax ? 4.0 : 2.5) /* 4dB normal */
#endif
#define DTMF_RELATIVE_PEAK_ROW 6.3 /* 8dB */
#define DTMF_RELATIVE_PEAK_COL 6.3 /* 8dB */
-#define DTMF_2ND_HARMONIC_ROW ((digitmode & DSP_DIGITMODE_RELAXDTMF) ? 1.7 : 2.5) /* 4dB normal */
+#define DTMF_2ND_HARMONIC_ROW (relax ? 1.7 : 2.5) /* 4dB normal */
#define DTMF_2ND_HARMONIC_COL 63.1 /* 18dB */
#define DTMF_TO_TOTAL_ENERGY 42.0
@@ -193,6 +193,16 @@
*/
#define SAMPLES_IN_FRAME 160
+/* MF goertzel size */
+#define MF_GSIZE 120
+
+/* DTMF goertzel size */
+#define DTMF_GSIZE 102
+
+/* How many successive hits needed to consider begin of a digit */
+#define DTMF_HITS_TO_BEGIN 2
+/* How many successive misses needed to consider end of a digit */
+#define DTMF_MISSES_TO_END 3
#define CONFIG_FILE_NAME "dsp.conf"
@@ -217,6 +227,7 @@
goertzel_state_t tone;
float energy; /* Accumulated energy of the current block */
int samples_pending; /* Samples remain to complete the current block */
+ int mute_samples; /* How many additional samples needs to be muted to suppress already detected tone */
[... 1546 lines stripped ...]
More information about the asterisk-commits
mailing list