[Asterisk-Users] Enhanced Audio Support for EAGIs

Dinesh Nair dinesh at alphaque.com
Sun Nov 7 01:51:42 MST 2004


On 07/11/2004 12:35 Jeff Maki said the following:
> 2. Result is '200 result=0 endpos=0'
>    -- Playing 'digits/20' (language 'en')
>    -- Playing 'digits/3' (language 'en')
>    -- Playing 'digits/million' (language 'en')
>    -- Playing 'digits/4' (language 'en')
>    -- Playing 'digits/hundred' (language 'en')
> Nov  6 23:29:14 WARNING[3353]: file.c:1058 ast_waitstream_full: Wait 
> failed (Broken pipe)
> Ooh, got a response from Asterisk: '200 result=-1'
[..snipped..]
> Asterisk is running on FreeBSD here, and I tried taking down the 
> firewall--no go. Now this is a *new* problem--what does this "Wait 
> failed" thing mean? I'm not sure if fd 3 is working or not, but the 

i've seen both SayNumber and SayDigits die with the above error on FreeBSD. 
  it's due to ast_waitstream_full being called when the two file 
descriptors are <0 instead of ast_waitstream being called. this is due to 
how the if() statement is branching the call to ast_waitstream. the 
following patch to say.c fixes it and i've not seen it reoccur since.

--- BEGIN PATCH ---
--- say.c.orig	Wed Sep 29 17:01:53 2004
+++ say.c	Wed Sep 29 16:55:15 2004
@@ -579,7 +579,7 @@
  			}
  			if (!res) {
  				if(!ast_streamfile(chan, fn, language)) {
-					if (audiofd && ctrlfd)
+					if (audiofd>-1 && ctrlfd>-1)
  						res = ast_waitstream_full(chan, ints, audiofd, ctrlfd);
  					else
  						res = ast_waitstream(chan, ints);
---  END PATCH  ---

(email formatting may have garbled the patch, but you get the picture)

note that this only fixes it for the english language, similar changes need 
to be done for the other languages to achieve the same result.

-- 
Regards,                           /\_/\   "All dogs go to heaven."
dinesh at alphaque.com                (0 0)    http://www.alphaque.com/
+==========================----oOO--(_)--OOo----==========================+
| for a in past present future; do                                        |
|   for b in clients employers associates relatives neighbours pets; do   |
|   echo "The opinions here in no way reflect the opinions of my $a $b."  |
| done; done                                                              |
+=========================================================================+



More information about the asterisk-users mailing list