[asterisk-bugs] [JIRA] Updated: (ASTERISK-20455) invalid i extension not being dispatched

Richard Miller (JIRA) noreply at issues.asterisk.org
Fri Sep 21 03:56:27 CDT 2012


     [ https://issues.asterisk.org/jira/browse/ASTERISK-20455?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Richard Miller updated ASTERISK-20455:
--------------------------------------

    Description: 
The dialplan fails to run the invalid "i" extension due to an uninitialized variable dat_exten in main/pbx.c

It fails at the block of code that reads:
in version 1.8.16.0
if (invalid
 || (ast_strlen_zero(dst_exten) &&
  !ast_exists_extension(c, c->context, c->exten, 1,
   S_COR(c->caller.id.number.valid, c->caller.id.number.str, NULL)))) {
in version 11.0.0-beta2
if (invalid
 || (ast_strlen_zero(dst_exten) &&
  !ast_exists_extension(c, ast_channel_context(c), ast_channel_exten(c), 1,
  S_COR(ast_channel_caller(c)->id.number.valid, ast_channel_caller(c)->id.number.str, NULL)))) {


I have another newer system under CentOS 6.2 x86_64 that does not exhibit the problem, but nevertheless, there is a flaw in the code that goes back many generations.

My company's production system had been running Asterisk 1.6.2.11-rc2 for several years under Fedora Core 5.  I wanted to use some of the newer features in Asterisk 1.8, so I installed the latest version.  However, when I tried placing a call, it would not go through.

The console showed:
auto fallthrough, channel 'SIP/131-00000005' status is 'UNKNOWN'

My dialplan uses the i extension in several places and this was happening right where it should have dispatched extension i.  Once I applied the one line patch I am submitting, the problem went away.

  was:
The dialplan fails to run the invalid "i" extension due to an uninitialized variable dat_exten in main/pbx.c

It fails at the block of code that reads:
in version 1.8.16.0
		if (invalid
			|| (ast_strlen_zero(dst_exten) &&
				!ast_exists_extension(c, c->context, c->exten, 1,
				S_COR(c->caller.id.number.valid, c->caller.id.number.str, NULL)))) {
in version 11.0.0-beta2
		if (invalid
			|| (ast_strlen_zero(dst_exten) &&
				!ast_exists_extension(c, ast_channel_context(c), ast_channel_exten(c), 1,
				S_COR(ast_channel_caller(c)->id.number.valid, ast_channel_caller(c)->id.number.str, NULL)))) {


I have another newer system under CentOS 6.2 x86_64 that does not exhibit the problem, but nevertheless, there is a flaw in the code that goes back many generations.

My company's production system had been running Asterisk 1.6.2.11-rc2 for several years under Fedora Core 5.  I wanted to use some of the newer features in Asterisk 1.8, so I installed the latest version.  However, when I tried placing a call, it would not go through.

The console showed:
auto fallthrough, channel 'SIP/131-00000005' status is 'UNKNOWN'

My dialplan uses the i extension in several places and this was happening right where it should have dispatched extension i.  Once I applied the one line patch I am submitting, the problem went away.


> invalid i extension not being dispatched
> ----------------------------------------
>
>                 Key: ASTERISK-20455
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-20455
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Core/PBX
>    Affects Versions: 1.8.16.0, 10.8.0, 11.0.0-beta2
>         Environment: Fedora Core 5 i686 i386, gcc 4.1.1
>            Reporter: Richard Miller
>            Severity: Blocker
>         Attachments: pbx-1.8.16.0.diff
>
>
> The dialplan fails to run the invalid "i" extension due to an uninitialized variable dat_exten in main/pbx.c
> It fails at the block of code that reads:
> in version 1.8.16.0
> if (invalid
>  || (ast_strlen_zero(dst_exten) &&
>   !ast_exists_extension(c, c->context, c->exten, 1,
>    S_COR(c->caller.id.number.valid, c->caller.id.number.str, NULL)))) {
> in version 11.0.0-beta2
> if (invalid
>  || (ast_strlen_zero(dst_exten) &&
>   !ast_exists_extension(c, ast_channel_context(c), ast_channel_exten(c), 1,
>   S_COR(ast_channel_caller(c)->id.number.valid, ast_channel_caller(c)->id.number.str, NULL)))) {
> I have another newer system under CentOS 6.2 x86_64 that does not exhibit the problem, but nevertheless, there is a flaw in the code that goes back many generations.
> My company's production system had been running Asterisk 1.6.2.11-rc2 for several years under Fedora Core 5.  I wanted to use some of the newer features in Asterisk 1.8, so I installed the latest version.  However, when I tried placing a call, it would not go through.
> The console showed:
> auto fallthrough, channel 'SIP/131-00000005' status is 'UNKNOWN'
> My dialplan uses the i extension in several places and this was happening right where it should have dispatched extension i.  Once I applied the one line patch I am submitting, the problem went away.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list