Package: asterisk-ooh323
Version: 1:13.14.0~dfsg-1
Severity: normal

Dear Maintainer,

due to an incorrect use of ast_debug asterisk doesn't send back
"alerting" over ooh323 channel if debug is enabled only to the channel
(via "ooh323 set debug") and core debug is off.
When both ooh323 debug and core debug are consistent (enabled or
disabled) the call behavior is normal and asterisk sends back the
alerting message.

This happens because ooManualRingback is invoked as arg of ast_debug
that executes only if core debug is enabled. 
A similar invocation is done for ooManualProgress.

I've already opened the bug to upstream: 

https://issues.asterisk.org/jira/browse/ASTERISK-26893

waiting for an official solution I attach a very simple patch that
solves the problem using ast_verb as an example.

Regards,
Marco


-- System Information:
Debian Release: 9.0
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 4.9.0-1-amd64 (SMP w/1 CPU core)
Locale: LANG=C, LC_CTYPE=C (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages asterisk-ooh323 depends on:
ii  asterisk  1:13.14.0~dfsg-1
ii  libc6     2.24-9

asterisk-ooh323 recommends no packages.

asterisk-ooh323 suggests no packages.

-- no debconf information
--- asterisk-13.14.0~dfsg.orig/addons/chan_ooh323.c
+++ asterisk-13.14.0~dfsg/addons/chan_ooh323.c
@@ -1165,7 +1165,7 @@ static int ooh323_answer(struct ast_chan
                        ast_channel_lock(ast);
                        if (!p->alertsent) {
                                if (gH323Debug) {
-                                       ast_debug(1, "Sending forced ringback 
for %s, res = %u\n", 
+                                       ast_verb(0, "Sending forced ringback 
for %s, res = %u\n", 
                                                callToken, 
ooManualRingback(callToken));
                                } else {
                                        ooManualRingback(callToken);
@@ -1329,7 +1329,7 @@ static int ooh323_indicate(struct ast_ch
                if (ast_channel_state(ast) != AST_STATE_UP) {
                        if (!p->progsent) {
                                if (gH323Debug) {
-                                       ast_debug(1, "Sending manual progress 
for %s, res = %u\n", callToken,
+                                       ast_verb(0, "Sending manual progress 
for %s, res = %u\n", callToken,
                                        ooManualProgress(callToken));   
                                } else {
                                        ooManualProgress(callToken);
@@ -1342,7 +1342,7 @@ static int ooh323_indicate(struct ast_ch
                if (ast_channel_state(ast) == AST_STATE_RING || 
ast_channel_state(ast) == AST_STATE_RINGING) {
                        if (!p->alertsent) {
                                if (gH323Debug) {
-                                       ast_debug(1, "Sending manual ringback 
for %s, res = %u\n",
+                                       ast_verb(0, "Sending manual ringback 
for %s, res = %u\n",
                                                callToken,
                                                ooManualRingback(callToken));
                                } else {

Reply via email to