Re: [asterisk-dev] Call unhold/topology change indication order

2022-05-11 Thread Kevin Harwell
On Wed, May 11, 2022 at 9:54 AM Joshua C. Colp  wrote:

> On Wed, May 11, 2022 at 11:50 AM Fridrich Maximilian <
> m.fridr...@commend.com> wrote:
>
>> > You're in off-nominal untested un thought of territory, so the code
>> behavior
>> > probably reflects that. Specifically having both audio and video, and
>> doing
>> > hold/unhold. Audio hold is special and separate from stream negotiation,
>> > while video isn't, so things probably don't handle that.
>>
>> Considering that, I would like to have a discussion about considering
>> reverting
>> ASTERISK-28783 [1]. This change showed that the handling of non-default
>> streams
>> is not mature enough yet to be used in production environments.
>> Specifically,
>> one-way streams and hold/unhold are not handled correctly. In order to
>> keep
>> Asterisk reliably usable for many different use-cases (Swiss Army Knife),
>> I
>> would suggest reverting this change for now until the handling of
>> non-default
>> streams is mature enough to handle more than just the most basic
>> use-cases.
>>
>> Please let me know what you think about this suggestion.
>>
>
> Oh, that's my change from long ago. That change has existed in the code
> base for quite a long time. It's not something that can likely just be
> reverted, and I'd be hesitant in doing so. It would also require disabling
> the test coverage for it too I think. It could also cause ripples
> elsewhere. I'd be against it.
>
> Thoughts from others?
>
> --
> Joshua C. Colp
> Asterisk Technical Lead
> Sangoma Technologies
> Check us out at www.sangoma.com and www.asterisk.org
>

I too would be hesitant in doing a straight revert of the patch. I think at
this point a new patch would be needed that fixes the newly reported bug (
ASTERISK-30051), but also maintains the current behavior of ASTERISK-28783
in some way.
-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] Call unhold/topology change indication order

2022-05-11 Thread Joshua C. Colp
On Wed, May 11, 2022 at 11:50 AM Fridrich Maximilian 
wrote:

> > You're in off-nominal untested un thought of territory, so the code
> behavior
> > probably reflects that. Specifically having both audio and video, and
> doing
> > hold/unhold. Audio hold is special and separate from stream negotiation,
> > while video isn't, so things probably don't handle that.
>
> Considering that, I would like to have a discussion about considering
> reverting
> ASTERISK-28783 [1]. This change showed that the handling of non-default
> streams
> is not mature enough yet to be used in production environments.
> Specifically,
> one-way streams and hold/unhold are not handled correctly. In order to keep
> Asterisk reliably usable for many different use-cases (Swiss Army Knife), I
> would suggest reverting this change for now until the handling of
> non-default
> streams is mature enough to handle more than just the most basic use-cases.
>
> Please let me know what you think about this suggestion.
>

Oh, that's my change from long ago. That change has existed in the code
base for quite a long time. It's not something that can likely just be
reverted, and I'd be hesitant in doing so. It would also require disabling
the test coverage for it too I think. It could also cause ripples
elsewhere. I'd be against it.

Thoughts from others?

-- 
Joshua C. Colp
Asterisk Technical Lead
Sangoma Technologies
Check us out at www.sangoma.com and www.asterisk.org
-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] Call unhold/topology change indication order

2022-05-11 Thread Joshua C. Colp
On Wed, May 11, 2022 at 11:50 AM Fridrich Maximilian 
wrote:

> > You're in off-nominal untested un thought of territory, so the code
> behavior
> > probably reflects that. Specifically having both audio and video, and
> doing
> > hold/unhold. Audio hold is special and separate from stream negotiation,
> > while video isn't, so things probably don't handle that.
>
> Considering that, I would like to have a discussion about considering
> reverting
> ASTERISK-28783 [1]. This change showed that the handling of non-default
> streams
> is not mature enough yet to be used in production environments.
> Specifically,
> one-way streams and hold/unhold are not handled correctly. In order to keep
> Asterisk reliably usable for many different use-cases (Swiss Army Knife), I
> would suggest reverting this change for now until the handling of
> non-default
> streams is mature enough to handle more than just the most basic use-cases.
>
> Please let me know what you think about this suggestion.
>

What was the behavior before and after in the various cases, that we should
consider reverting it?

-- 
Joshua C. Colp
Asterisk Technical Lead
Sangoma Technologies
Check us out at www.sangoma.com and www.asterisk.org
-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] Call unhold/topology change indication order

2022-05-11 Thread Joshua C. Colp
On Wed, May 11, 2022 at 8:54 AM Fridrich Maximilian 
wrote:

> Hi,
>
> I am currently working on fixing [ASTERISK-30051] res_pjsip: No video
> after un-hold with moh_passthrough=yes. [1]
>
> I have debugged the code with DEBUG_THREADS enabled (which resolves the
> issue)
> and without and compared the two. The issue clearly seems to be that
> chan_pjsip:chan_pjsip_indicate() is called in the wrong order:
>
> 1. It is called to indicate AST_CONTROL_STREAM_TOPOLOGY_REQUEST_CHANGE
> 2. It is called to indicate AST_CONTROL_UNHOLD
>
> With DEBUG_THREADS enabled, AST_CONTROL_UNHOLD is always called first and
> video
> works as expected.
>
> Before I try to fix the underlying issue (which I think I have identified
> - see
> below) I want to understand why AST_CONTROL_UNHOLD needs to be indicated
> before
> AST_CONTROL_STREAM_TOPOLOGY_REQUEST_CHANGE.
>
> Does anyone have any idea why it has to be called in that order?
>

You're in off-nominal untested un thought of territory, so the code
behavior probably reflects that. Specifically having both audio and video,
and doing hold/unhold. Audio hold is special and separate from stream
negotiation, while video isn't, so things probably don't handle that.

-- 
Joshua C. Colp
Asterisk Technical Lead
Sangoma Technologies
Check us out at www.sangoma.com and www.asterisk.org
-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] Tons of warnings compiling Asterisk 16.24.1

2022-05-11 Thread Joshua C. Colp
On Wed, May 11, 2022 at 6:12 AM Dennis Buteyn 
wrote:

> On 5/10/22 15:21, Joshua C. Colp wrote:
>
> On Tue, May 10, 2022 at 9:10 AM Dennis Buteyn 
> wrote:
>
>> Noticed a ton of warnings (-Wformat-truncation, -Wunused-result,
>> -Wstringop-overflow, -Wstringop-truncation, -Wlto-type-mismatch,
>> -Wfree-nonheap-object, -Warray-bounds) compiling Asterisk 16.24.1 on the
>> few compilers I tried:
>>
>> gcc (Debian 8.3.0-6) 8.3.0
>> gcc (Debian 10.2.1-6) 10.2.1 20210110
>> gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
>> gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
>> gcc (Ubuntu 11.2.0-7ubuntu2) 11.2.0
>>
>> Just curious if anyone is aware of these warnings and whether they have
>> been resolved in later revisions.
>>
>
> Are these the default warning options when built in developer mode? If so,
> then we take care of them as soon as we become aware - and we just did a
> batch of GCC12 fixes to take care of the latest ones. Otherwise you'd need
> to be more specific about what exactly is showing them. For example, if
> it's PJSIP ones we generally don't touch it and such fixes would need to go
> upstream. If these are options you've set, then we wouldn't have seen them.
>
>
> Rebased on master (a24979a2d7) and ignoring anything PJSIP-related, still
> getting a bunch of warnings with gcc (Ubuntu 11.2.0-7ubuntu2) 11.2.0
> (attached).
>
> Compiler flags used:
>
> -Wformat
> -Werror=format-security
> -Wdate-time
> -Wall
> -Wstrict-prototypes
> -Wmissing-prototypes
> -Wmissing-declarations
> -Wl,--warn-common
>
> As for the recent fixes, I guess we just need to wait for 16.27.
>

This didn't really answer my question. Are you using additional options
beyond what is normally used? If so, then it is unlikely anyone would have
seen these before or investigated and would explain why Jenkins isn't
seeing them either. You'd need to file an issue[1] attaching the log, and
then it will go into the queue to be looked at.

[1] https://issues.asterisk.org/jira

-- 
Joshua C. Colp
Asterisk Technical Lead
Sangoma Technologies
Check us out at www.sangoma.com and www.asterisk.org
-- 
_
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Re: [asterisk-dev] Tons of warnings compiling Asterisk 16.24.1

2022-05-11 Thread Dennis Buteyn

On 5/10/22 15:21, Joshua C. Colp wrote:
On Tue, May 10, 2022 at 9:10 AM Dennis Buteyn 
 wrote:


Noticed a ton of warnings (-Wformat-truncation, -Wunused-result,
-Wstringop-overflow, -Wstringop-truncation, -Wlto-type-mismatch,
-Wfree-nonheap-object, -Warray-bounds) compiling Asterisk 16.24.1
on the
few compilers I tried:

gcc (Debian 8.3.0-6) 8.3.0
gcc (Debian 10.2.1-6) 10.2.1 20210110
gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
gcc (Ubuntu 11.2.0-7ubuntu2) 11.2.0

Just curious if anyone is aware of these warnings and whether they
have
been resolved in later revisions.


Are these the default warning options when built in developer mode? If 
so, then we take care of them as soon as we become aware - and we just 
did a batch of GCC12 fixes to take care of the latest ones. Otherwise 
you'd need to be more specific about what exactly is showing them. For 
example, if it's PJSIP ones we generally don't touch it and such fixes 
would need to go upstream. If these are options you've set, then we 
wouldn't have seen them.




Rebased on master (a24979a2d7) and ignoring anything PJSIP-related, 
still getting a bunch of warnings with gcc (Ubuntu 11.2.0-7ubuntu2) 
11.2.0 (attached).


Compiler flags used:

-Wformat
-Werror=format-security
-Wdate-time
-Wall
-Wstrict-prototypes
-Wmissing-prototypes
-Wmissing-declarations
-Wl,--warn-common

As for the recent fixes, I guess we just need to wait for 16.27.

--
Dennis Buteyn
Xorcom Ltd
menuselect.c: In function 'generate_makeopts_file':
menuselect.c:1689:41: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result]
 1689 | system(touchcommand);
  | ^~~~
menuselect.c:1698:41: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result]
 1698 | system(rmcommand);
  | ^
menuselect.c:1708:33: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result]
 1708 | system(touchcommand);
  | ^~~~
menuselect.c:1717:33: warning: ignoring return value of 'system' declared with attribute 'warn_unused_result' [-Wunused-result]
 1717 | system(rmcommand);
  | ^
./include/asterisk/pbx.h:523:5: warning: type of 'ast_add_extension2' does not match original declaration [-Wlto-type-mismatch]
ael_main.c:221:5: note: type mismatch in parameter 11
  221 | int ast_add_extension2(struct ast_context *con,
  | ^
ael_main.c:221:5: note: 'ast_add_extension2' was previously declared here
./include/asterisk/cli.h:268:5: warning: type of '__ast_cli_register_multiple' does not match original declaration [-Wlto-type-mismatch]
ael_main.c:204:6: note: return value type mismatch
  204 | void __ast_cli_register_multiple(void)
  |  ^
ael_main.c:204:6: note: type 'void' should match type 'int'
ael_main.c:204:6: note: '__ast_cli_register_multiple' was previously declared here
./include/asterisk/pbx.h:335:6: warning: type of 'ast_context_destroy' does not match original declaration [-Wlto-type-mismatch]
ael_main.c:414:6: note: type mismatch in parameter 1
  414 | void ast_context_destroy(void)
  |  ^
ael_main.c:414:6: note: 'ast_context_destroy' was previously declared here
./include/asterisk/cli.h:283:5: warning: type of 'ast_cli_unregister_multiple' does not match original declaration [-Wlto-type-mismatch]
ael_main.c:408:6: note: return value type mismatch
  408 | void ast_cli_unregister_multiple(void)
  |  ^
ael_main.c:408:6: note: type 'void' should match type 'int'
ael_main.c:408:6: note: 'ast_cli_unregister_multiple' was previously declared here
./include/asterisk/pbx.h:310:6: warning: type of 'ast_merge_contexts_and_delete' does not match original declaration [-Wlto-type-mismatch]
ael_main.c:389:6: note: type mismatch in parameter 1
  389 | void ast_merge_contexts_and_delete(void)
  |  ^
ael_main.c:389:6: note: 'ast_merge_contexts_and_delete' was previously declared here
./include/asterisk/pbx.h:936:5: warning: type of 'ast_context_verify_includes' does not match original declaration [-Wlto-type-mismatch]
ael_main.c:395:6: note: return value type mismatch
  395 | void ast_context_verify_includes(void)
  |  ^
ael_main.c:395:6: note: type 'void' should match type 'int'
ael_main.c:395:6: note: 'ast_context_verify_includes' was previously declared here
./include/asterisk/pbx.h:1321:21: warning: type of 'ast_walk_contexts' does not match original declaration [-Wlto-type-mismatch]
ael_main.c:401:22: note: type mismatch in parameter 1
  401 | struct ast_context * ast_walk_contexts(v