[Home]

Summary:ASTERISK-11899: SayNumber() hangs up channel when asked to say a number >= 1,000,000,000.
Reporter:Nick Barnes (bcnit)Labels:
Date Opened:2008-04-23 08:40:57Date Closed:2008-04-23 10:11:52
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Applications/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:With a dialplan of:

-------------------------
exten => 21,1,Answer(500)
exten => 21,2,SayNumber(999999999)
exten => 21,3,SayNumber(1000000000)
exten => 21,4,NoOp(We never see this)

exten => h,1,NoOp(Hung up)
-------------------------

Asterisk hangs up when it tries to run priority 3 as follows:

-------------------------
-- Executing [21@default:1] Answer("SIP/200-087ab0d8", "500") in new stack
-- Executing [21@default:2] SayNumber("SIP/200-087ab0d8", "999999999") in new stack
-- <SIP/200-087ab0d8> Playing 'digits/9.gsm' (language 'en')
-- <SIP/200-087ab0d8> Playing 'digits/hundred.gsm' (language 'en')
-- <SIP/200-087ab0d8> Playing 'digits/90.gsm' (language 'en')
-- <SIP/200-087ab0d8> Playing 'digits/9.gsm' (language 'en')
-- <SIP/200-087ab0d8> Playing 'digits/million.gsm' (language 'en')
-- <SIP/200-087ab0d8> Playing 'digits/9.gsm' (language 'en')
-- <SIP/200-087ab0d8> Playing 'digits/hundred.gsm' (language 'en')
-- <SIP/200-087ab0d8> Playing 'digits/90.gsm' (language 'en')
-- <SIP/200-087ab0d8> Playing 'digits/9.gsm' (language 'en')
-- <SIP/200-087ab0d8> Playing 'digits/thousand.gsm' (language 'en')
-- <SIP/200-087ab0d8> Playing 'digits/9.gsm' (language 'en')
-- <SIP/200-087ab0d8> Playing 'digits/hundred.gsm' (language 'en')
-- <SIP/200-087ab0d8> Playing 'digits/90.gsm' (language 'en')
-- <SIP/200-087ab0d8> Playing 'digits/9.gsm' (language 'en')
-- Executing [21@default:3] SayNumber("SIP/200-087ab0d8", "1000000000") in new stack
== Spawn extension (default, 21, 3) exited non-zero on 'SIP/200-087ab0d8'
-- Executing [h@default:1] NoOp("SIP/200-087ab0d8", "Hung up") in new stack
-------------------------
Comments:By: Joshua C. Colp (jcolp) 2008-04-23 09:27:38

The maximum SayNumber can handle is 999999999, once it reaches that point it spits out a debug message and returns an error to the PBX core. We don't even have sounds recorded to produce numbers greater than that.

By: Nick Barnes (bcnit) 2008-04-23 09:33:49

OK. I understand that, but.....

Since 1,000,000,000 is a valid number, surely Asterisk shouldn't do something as drastic as dropping the channel if it can't say it.

After all, 'SayNumber(fred)' doesn't generate an error:

---------------------
-- Executing [21@default:1] Answer("SIP/200-09366bc0", "500") in new stack
-- Executing [21@default:2] SayNumber("SIP/200-09366bc0", "fred") in new stack
-- <SIP/200-09366bc0> Playing 'digits/0.gsm' (language 'en')
-- Executing [21@default:3] NoOp("SIP/200-09366bc0", "We never see this") in new stack
-- Auto fallthrough, channel 'SIP/200-09366bc0' status is 'UNKNOWN'
-- Executing [h@default:1] NoOp("SIP/200-09366bc0", "Hung up") in new stack
---------------------

If it can't say the number, fair enough, but please don't hang up!!

By: Digium Subversion (svnbot) 2008-04-23 09:48:56

Repository: asterisk
Revision: 114579

U   branches/1.4/main/pbx.c

------------------------------------------------------------------------
r114579 | file | 2008-04-23 09:48:53 -0500 (Wed, 23 Apr 2008) | 4 lines

Instead of stopping dialplan execution when SayNumber attempts to say a large number that it can not print out a message informing the user and continue on.
(closes issue ASTERISK-11899)
Reported by: bcnit

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=114579

By: Digium Subversion (svnbot) 2008-04-23 09:49:58

Repository: asterisk
Revision: 114580

_U  trunk/
U   trunk/main/pbx.c

------------------------------------------------------------------------
r114580 | file | 2008-04-23 09:49:56 -0500 (Wed, 23 Apr 2008) | 12 lines

Merged revisions 114579 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r114579 | file | 2008-04-23 11:54:11 -0300 (Wed, 23 Apr 2008) | 4 lines

Instead of stopping dialplan execution when SayNumber attempts to say a large number that it can not print out a message informing the user and continue on.
(closes issue ASTERISK-11899)
Reported by: bcnit

........

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=114580

By: Digium Subversion (svnbot) 2008-04-23 09:50:54

Repository: asterisk
Revision: 114581

_U  branches/1.6.0/
U   branches/1.6.0/main/pbx.c

------------------------------------------------------------------------
r114581 | file | 2008-04-23 09:50:54 -0500 (Wed, 23 Apr 2008) | 20 lines

Merged revisions 114580 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r114580 | file | 2008-04-23 11:55:03 -0300 (Wed, 23 Apr 2008) | 12 lines

Merged revisions 114579 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r114579 | file | 2008-04-23 11:54:11 -0300 (Wed, 23 Apr 2008) | 4 lines

Instead of stopping dialplan execution when SayNumber attempts to say a large number that it can not print out a message informing the user and continue on.
(closes issue ASTERISK-11899)
Reported by: bcnit

........

................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=114581

By: Digium Subversion (svnbot) 2008-04-23 10:11:52

Repository: asterisk
Revision: 114583

_U  team/seanbright/resolve-shadow-warnings/
U   team/seanbright/resolve-shadow-warnings/apps/app_voicemail.c
U   team/seanbright/resolve-shadow-warnings/channels/chan_sip.c
U   team/seanbright/resolve-shadow-warnings/include/asterisk/astobj.h
U   team/seanbright/resolve-shadow-warnings/include/asterisk/logger.h
U   team/seanbright/resolve-shadow-warnings/main/pbx.c

------------------------------------------------------------------------
r114583 | seanbright | 2008-04-23 10:11:43 -0500 (Wed, 23 Apr 2008) | 72 lines

Merged revisions 114572,114575,114577,114580 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r114572 | tilghman | 2008-04-22 19:58:19 -0400 (Tue, 22 Apr 2008) | 10 lines

Merged revisions 114571 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r114571 | tilghman | 2008-04-22 18:51:44 -0500 (Tue, 22 Apr 2008) | 2 lines

Treat a 502 just like a 503, when it comes to processing a response code

........

................
r114575 | mmichelson | 2008-04-22 20:40:30 -0400 (Tue, 22 Apr 2008) | 10 lines

Round 1 of IMAP_STORAGE-related app_voicemail changes

This makes IMAP_STORAGE include the proper headers if you
have specified the "system" option for --with-imap when running
the configure script and your IMAP-related headers exist in
/usr/include/c-client.

This change is due to a hasty merge of a 1.4 change I made.


................
r114577 | mmichelson | 2008-04-22 20:58:49 -0400 (Tue, 22 Apr 2008) | 23 lines

Round 2 of IMAP_STORAGE app_voicemail.c fixes:

This fixes a bug that was thought to be fixed already.

app_voicemail, if using IMAP_STORAGE, has a problem because
the IMAP header files include syslog.h, which define LOG_WARNING
and LOG_DEBUG to be different than what Asterisk uses for those
same macros. This was "fixed" in the past by including all the
IMAP header files prior to including asterisk.h. This fix worked...
unless you were to try to compile with MALLOC_DEBUG. MALLOC_DEBUG
prepends the inclusion of astmm.h to every file, which means that no
matter what order the includes are in in app_voicemail, the unexpected
values for LOG_WARNING and LOG_DEBUG will be in place.

The action taken for this fix was to define AST_LOG_* macros in addition
to the LOG_* macros already defined. These new macros are used in app_voicemail.c,
logger.h, and astobj.h right now, and their use will be encouraged in the future.

In consideration of those who have written third-party modules which use
the LOG_* macros, these will NOT be removed from the source, however future use
of these macros is discouraged.


................
r114580 | file | 2008-04-23 10:55:03 -0400 (Wed, 23 Apr 2008) | 12 lines

Merged revisions 114579 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r114579 | file | 2008-04-23 11:54:11 -0300 (Wed, 23 Apr 2008) | 4 lines

Instead of stopping dialplan execution when SayNumber attempts to say a large number that it can not print out a message informing the user and continue on.
(closes issue ASTERISK-11899)
Reported by: bcnit

........

................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=114583