diff options
-rw-r--r-- | CHANGES | 2 | ||||
-rw-r--r-- | UPGRADE-12.txt | 2 | ||||
-rw-r--r-- | apps/app_agent_pool.c | 4 | ||||
-rwxr-xr-x | contrib/scripts/ast_coredumper | 41 | ||||
-rw-r--r-- | res/res_pjsip_pubsub.c | 2 |
5 files changed, 39 insertions, 12 deletions
@@ -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); |