Summary:ASTERISK-05263: [patch] [post 1.2] Prelude to Comfort Noise Generation on Asterisk
Reporter:Carlos Antunes (cmantunes)Labels:
Date Opened:2005-10-07 23:01:40Date Closed:2011-06-07 14:02:51
Versions:Frequency of
Environment:Attachments:( 0) noise.diff
( 1) res_noise.c
Description:Asterisk is currently unable to deal with Comfort Noise Generation requests. An important prerequisite for CNG support is the availability of a Gaussian/White Noise generator. The res_noise.c attached provides just that. As a way to take advantage of this new functionality, a new application, WhiteNoise, is introduced. While CNG is still not supported, the new WhiteNoise application might be useful as a troubleshooting tool. I expect to be able to provide a patch to give Asterisk some CNG functionality, using res_noise.c as a building block.


Note: to compile and use res_noise.c, copy the file to the res directory and change the res directory Makefile to include res_noise.c in MODS line. Then make clean and make upgradeas usual. We should be able to use the new WhiteNoise application afterwards.
Comments:By: twisted (twisted) 2005-10-09 03:35:57

Built and tested. Works well.   I don't think the WhiteNoise app should REQUIRE arguments however, if we don't specify any, there should be defaults (perhaps full and infinite, since they are both 0).  

Otherwise, looks like a good start. :)

By: Carlos Antunes (cmantunes) 2005-10-09 10:23:19

twisted: thanks for your feedback. The timeout is actually not required. It defaults to no timeout if left unspecified. But level I chose mandatory because the obviuous default, 0, is too loud and -oo is simply too low. Given this, I decided to ask the user for "guidance" by supplying a level.

By: Mark Monnin (wrmem) 2005-10-12 08:05:44

Thinking out loud.  What do you think the minimum amount of noise needed?  I'm guessing we don't need something completely random, just random enough and just long enough that the end-user doesn't know it's repeating.  Would a looping 1 second sample be sufficient?

By: Carlos Antunes (cmantunes) 2005-10-12 09:03:29

wrmem: the brain is able to detect periodicity in noise segments. that can be tested, for example, if you set the variable start to always zero. Now, how big of a segment do we need? That is a tough call, which would probably require something to a Mean Opinion Score, testing a bunch of people and see what they say. I'm not aware of any such study but if you find something out, please share.

By: opsys (opsys) 2005-12-30 18:02:24.000-0600


By: Olle Johansson (oej) 2006-01-03 04:16:16.000-0600

- Add doxygen formatted comments like other modules
- The description is badly formatted, need line breaks
- Usage should not be logged to the ERROR logging channel
- Prepend logging to LOG_DEBUG with "if (option_debug)"
- if statements need the { at the end of the line, not on a new line (CODING GUIDELINES)

Just some formal comments that's easy to fix. Thanks. /O

By: Armen (knopplya) 2006-01-05 00:32:41.000-0600

I have build res_noise on 1.2.1 and on latest version (at that moment) Asterisk SVN-trunk-r7774M and in both time he says

res_noise.c: In function `noise_exec':
res_noise.c:233: warning: implicit declaration of function` ast_separate_app_args'

and when i have try to use WhiteNoise application Asterisk crashing with this message

*CLI>     -- Executing WhiteNoise("SIP/3108-11ce", "-3.0") in new stack asterisk: symbol lookup error: /usr/lib/asterisk/modules/res_noise.so: undefined symbol: ast_separate_app_args

whats the problem?

By: Matt O'Gorman (mogorman) 2006-01-14 08:35:09.000-0600

updated patch so it will compile and be useable again

By: Olle Johansson (oej) 2006-03-10 07:24:53.000-0600

cmantunes: We're waiting for an update here.

By: Michael Jerris (mikej) 2006-05-19 14:42:28

suspended due to no response.  Please re-open if you have updates.  Thanks.