summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES2
-rw-r--r--UPGRADE-12.txt2
-rw-r--r--apps/app_agent_pool.c4
-rwxr-xr-xcontrib/scripts/ast_coredumper41
-rw-r--r--res/res_pjsip_pubsub.c2
5 files changed, 39 insertions, 12 deletions
diff --git a/CHANGES b/CHANGES
index 683a164ab..39b62d05c 100644
--- a/CHANGES
+++ b/CHANGES
@@ -3218,7 +3218,7 @@ chan_agent
has also been removed, for the same reason.
* The endcall and enddtmf configuration options are removed. Use the
- dialplan function CHANNEL(dtmf-features) to set DTMF features on the agent
+ dialplan function CHANNEL(dtmf_features) to set DTMF features on the agent
channel before calling AgentLogin.
chan_bridge
diff --git a/UPGRADE-12.txt b/UPGRADE-12.txt
index 3d6c00d90..79cafa11f 100644
--- a/UPGRADE-12.txt
+++ b/UPGRADE-12.txt
@@ -94,7 +94,7 @@ AgentLogin and chan_agent:
reason as the updatecdr option.
- The endcall and enddtmf configuration options are removed. Use the
- dialplan function CHANNEL(dtmf-features) to set DTMF features on the agent
+ dialplan function CHANNEL(dtmf_features) to set DTMF features on the agent
channel before calling AgentLogin.
AgentMonitorOutgoing
diff --git a/apps/app_agent_pool.c b/apps/app_agent_pool.c
index bf12b291c..6a8c3955b 100644
--- a/apps/app_agent_pool.c
+++ b/apps/app_agent_pool.c
@@ -72,7 +72,7 @@
when a new call comes in for the agent. Login failures will continue in
the dialplan with <variable>AGENT_STATUS</variable> set.</para>
<para>Before logging in, you can setup on the real agent channel the
- CHANNEL(dtmf-features) an agent will have when talking to a caller
+ CHANNEL(dtmf_features) an agent will have when talking to a caller
and you can setup on the channel running this application the
CONNECTEDLINE() information the agent will see while waiting for a
caller.</para>
@@ -92,7 +92,7 @@
<ref type="application">PauseQueueMember</ref>
<ref type="application">UnpauseQueueMember</ref>
<ref type="function">AGENT</ref>
- <ref type="function">CHANNEL(dtmf-features)</ref>
+ <ref type="function">CHANNEL(dtmf_features)</ref>
<ref type="function">CONNECTEDLINE()</ref>
<ref type="filename">agents.conf</ref>
<ref type="filename">queues.conf</ref>
diff --git a/contrib/scripts/ast_coredumper b/contrib/scripts/ast_coredumper
index 81e94e945..e5fc44eb3 100755
--- a/contrib/scripts/ast_coredumper
+++ b/contrib/scripts/ast_coredumper
@@ -63,9 +63,15 @@ DESCRIPTION
from the existing coredumps.
--tarball-coredumps
- Creates a gzipped tarball of all coredumps processed.
- The tarball name will be:
- /tmp/asterisk.<timestamp>.coredumps.tar.gz
+ Creates a gzipped tarball of coredumps processed, their
+ results txt files and copies of /etc/os-release,
+ /usr/sbin/asterisk, /usr/lib(64)/libasterisk* and
+ /usr/lib(64)/asterisk as those files are needed to properly
+ examine the coredump. The file will be named
+ /tmp/asterisk.<timestamp>.coredumps.tar.gz or
+ /tmp/asterisk-<uniqueid>.coredumps.tar.gz if
+ --tarball-uniqueid was specified.
+ WARNING: This file could 1gb in size!
--delete-coredumps-after
Deletes all processed coredumps regardless of whether
@@ -377,12 +383,25 @@ for i in ${!COREDUMPS[@]} ; do
done
if $tarball_coredumps ; then
- tf=/tmp/asterisk-$df.coredumps.tar
- echo "Creating $tf.gz"
+ tf=/tmp/asterisk-$df.coredumps.tar.gz
+ echo "Creating $tf"
+ dest=/tmp/asterisk-$df
+ rm -rf $dest 2>/dev/null || :
+ libdir=usr/lib
+ [ -d /usr/lib64 ] && libdir+=64
+ mkdir -p $dest/tmp $dest/$libdir/asterisk $dest/etc $dest/usr/sbin
for i in ${!COREDUMPS[@]} ; do
- tar -uvf $tf "${COREDUMPS[@]}" 2>/dev/null
+ ln -s "${COREDUMPS[@]}" $dest/"${COREDUMPS[@]}"
+ cp "${COREDUMPS[@]}"*.txt $dest/tmp/
done
- gzip $tf
+ cp /etc/os-release $dest/etc/
+ cp -a /$libdir/libasterisk* $dest/$libdir/
+ cp -a /$libdir/asterisk/* $dest/$libdir/asterisk/
+ cp -a /usr/sbin/asterisk $dest/usr/sbin
+ rm -rf $tf
+ tar -chzf $tf --transform="s/^[.]/$df/" -C $dest .
+ rm -rf $dest
+ echo "Created $tf"
fi
if $delete_coredumps_after ; then
@@ -431,21 +450,29 @@ class DumpAsteriskCommand(gdb.Command):
pass
print("!@!@!@! thread1.txt !@!@!@!\n")
try:
+ gdb.execute("p $_siginfo", from_tty)
+ gdb.execute("info signal $_siginfo.si_signo")
gdb.execute("thread apply 1 bt full", from_tty)
except:
pass
print("!@!@!@! brief.txt !@!@!@!\n")
try:
+ gdb.execute("p $_siginfo", from_tty)
+ gdb.execute("info signal $_siginfo.si_signo")
gdb.execute("thread apply all bt", from_tty)
except:
pass
print("!@!@!@! full.txt !@!@!@!\n")
try:
+ gdb.execute("p $_siginfo", from_tty)
+ gdb.execute("info signal $_siginfo.si_signo")
gdb.execute("thread apply all bt full", from_tty)
except:
pass
print("!@!@!@! locks.txt !@!@!@!\n")
try:
+ gdb.execute("p $_siginfo", from_tty)
+ gdb.execute("info signal $_siginfo.si_signo")
gdb.execute("show_locks", from_tty)
except:
pass
diff --git a/res/res_pjsip_pubsub.c b/res/res_pjsip_pubsub.c
index a1bfbb71f..62b187951 100644
--- a/res/res_pjsip_pubsub.c
+++ b/res/res_pjsip_pubsub.c
@@ -1089,7 +1089,7 @@ static void remove_subscription(struct sip_subscription_tree *obj)
static void destroy_subscription(struct ast_sip_subscription *sub)
{
ast_debug(3, "Destroying SIP subscription from '%s->%s'\n",
- sub->tree->endpoint ? ast_sorcery_object_get_id(sub->tree->endpoint) : "Unknown",
+ sub->tree && sub->tree->endpoint ? ast_sorcery_object_get_id(sub->tree->endpoint) : "Unknown",
sub->resource);
ast_free(sub->body_text);