Doug Raum
2004-Jan-13 06:11 UTC
[Asterisk-Users] Asterisk and Festival (* dies with no info)
Hello, I have Asterisk running on a RH9 box; Everything seems to be working as it should, except for Festival. Every time that Festival is called from Asterisk, Asterisk silently shuts down. Festival doesn't give any error indication and Asterisk just plain dies without a peep. Festival was installed per the Wiki, using source and patched with festival-1.4.3-diff; it works fine at the console. Asterisk is built from CVS and has been configured per the Wiki as well, including the test extension (555). I start Festival with the "festival_server" script, then start Asterisk. (snippet from extensions.conf) exten => 555,1,Answer exten => 555,2,Festival(mary had a little lamb) exten => 555,3,Hangup Here's what Asterisk says with -vvvvv, calling from SIP 81001 to 555: Asterisk Ready. -- Executing Answer("SIP/81001-e87b", "") in new stack -- Executing Festival("SIP/81001-e87b", "mary had a little lamb") in new stack == Parsing '/etc/asterisk/festival.conf': Found == Spawn extension (from-sip, 555, 2) exited non-zero on 'SIP/81001-e87b' ...at this point Asterisk is dead. No segfault, no error message. # cat /var/log/asterisk/messages Jan 7 15:36:49 WARNING[1074416352]: File chan_iax2.c, Line 5466 (set_config): Ignoring port for now # cat /var/log/asterisk/event_log Jan 7 15:36:47 asterisk[5038]: Started Asterisk Event Logger (I capture stderr to asterisk.err) # cat /var/log/asterisk/asterisk.err Warning, flexibel rate not heavily tested! Ouch ... error while writing audio data: : Broken pipe I'm guessing the ouch comes from mpg123 being surprised that Asterisk is gone. Debug info in syslog seems pretty unhelpful if I use -d: Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1150495040]: File chan_sip.c, Line 4024 (check_user): Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1150495040]: File chan_sip.c, Line 5098 (handle_request): Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1150495040]: File chan_sip.c, Line 1002 (find_user): Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1150495040]: File chan_sip.c, Line 3417 (build_route): Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1234379840]: File app_festival.c, Line 304 (festival_exec): Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1234379840]: File app_festival.c, Line 361 (festival_exec): Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1234379840]: File app_festival.c, Line 363 (festival_exec): Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1234379840]: File app_festival.c, Line 379 (festival_exec): Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1234379840]: File app_festival.c, Line 400 (festival_exec): Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1234379840]: File app_festival.c, Line 410 (festival_exec): Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1150495040]: File chan_sip.c, Line 567 (__sip_ack): Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1150495040]: File chan_sip.c, Line 567 (__sip_ack): Jan 7 15:37:01 asterisk_pbx[5038]: Jan 7 15:37:01 DEBUG[1234379840]: File cdr_addon_mysql.c, Line 123 (mysql_log): Jan 7 15:37:01 asterisk_pbx[5038]: Jan 7 15:37:01 DEBUG[1234379840]: File cdr_addon_mysql.c, Line 130 (mysql_log): Jan 7 15:37:01 asterisk_pbx[5038]: Jan 7 15:37:01 DEBUG[1234379840]: File chan_sip.c, Line 1081 (sip_hangup): Festival's info is very minimal, but seems to indicate success: # cat festival_server.log "Load server start ./festival_server.scm" festival port=1314 wrapper Wed Jan 7 15:36:40 EST 2004 : USING DEFAULT CONFIGURATION wrapper Wed Jan 7 15:36:41 EST 2004 : waiting server Wed Jan 7 15:36:41 2004 : Festival server started on port 1314 client(1) Wed Jan 7 15:37:00 2004 : accepted from localhost client(1) Wed Jan 7 15:37:00 2004 : disconnected ...a process listing after the * crash shows a zombie festival, although Festival will happily take new connections: 5024 ? S 0:00 /bin/sh /usr/local/festival/bin/festival_server 5030 ? S 0:00 festival --server ./festival_server.scm 5065 ? Z 0:00 [festival <defunct>] I can restart Asterisk again, and do this over and over and over. If I use the -g option to generate a core dump, I never see one generated. Any thoughts on what might be happening here? What am I doing wrong? -- Doug
Iain Stevenson
2004-Jan-13 08:56 UTC
[Asterisk-Users] Asterisk and Festival (* dies with no info)
It may not be you, I think the Festival driver is buggy. Specifically, I've found that the the way in which you pass the text to Festival matters. If I use the Festival () suntax then it won't work. If I use the wrong sort of quotation mark " instead of ' there are problems. Asterisk will consume vast amounts of processor resources. However, if I specify the command in a way the Festival app likes then all is OK. Try variants like: exten => 555,4,Festival,'mary had a little lamb' Iain --On Tuesday, January 13, 2004 8:11 am -0500 Doug Raum <draum@zoom.com> wrote:> Hello, > > I have Asterisk running on a RH9 box; Everything seems to be working as it > should, except for Festival. Every time that Festival is called from > Asterisk, Asterisk silently shuts down. Festival doesn't give any error > indication and Asterisk just plain dies without a peep. > > Festival was installed per the Wiki, using source and patched with > festival-1.4.3-diff; it works fine at the console. Asterisk is built > from CVS and has been configured per the Wiki as well, including the test > extension (555). I start Festival with the "festival_server" script, then > start Asterisk. > > (snippet from extensions.conf) > exten => 555,1,Answer > exten => 555,2,Festival(mary had a little lamb) > exten => 555,3,Hangup > > Here's what Asterisk says with -vvvvv, calling from SIP 81001 to 555: > Asterisk Ready. > -- Executing Answer("SIP/81001-e87b", "") in new stack > -- Executing Festival("SIP/81001-e87b", "mary had a little lamb") in > new stack > == Parsing '/etc/asterisk/festival.conf': Found > == Spawn extension (from-sip, 555, 2) exited non-zero on > 'SIP/81001-e87b' > > ...at this point Asterisk is dead. No segfault, no error message. > ># cat /var/log/asterisk/messages > Jan 7 15:36:49 WARNING[1074416352]: File chan_iax2.c, Line 5466 > (set_config): Ignoring port for now > ># cat /var/log/asterisk/event_log > Jan 7 15:36:47 asterisk[5038]: Started Asterisk Event Logger > > (I capture stderr to asterisk.err) ># cat /var/log/asterisk/asterisk.err > Warning, flexibel rate not heavily tested! > Ouch ... error while writing audio data: : Broken pipe > > I'm guessing the ouch comes from mpg123 being surprised that Asterisk is > gone. > > Debug info in syslog seems pretty unhelpful if I use -d: > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1150495040]: > File chan_sip.c, Line 4024 (check_user): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1150495040]: > File chan_sip.c, Line 5098 (handle_request): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1150495040]: > File chan_sip.c, Line 1002 (find_user): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1150495040]: > File chan_sip.c, Line 3417 (build_route): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1234379840]: > File app_festival.c, Line 304 (festival_exec): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1234379840]: > File app_festival.c, Line 361 (festival_exec): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1234379840]: > File app_festival.c, Line 363 (festival_exec): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1234379840]: > File app_festival.c, Line 379 (festival_exec): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1234379840]: > File app_festival.c, Line 400 (festival_exec): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1234379840]: > File app_festival.c, Line 410 (festival_exec): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1150495040]: > File chan_sip.c, Line 567 (__sip_ack): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 DEBUG[1150495040]: > File chan_sip.c, Line 567 (__sip_ack): > Jan 7 15:37:01 asterisk_pbx[5038]: Jan 7 15:37:01 DEBUG[1234379840]: > File cdr_addon_mysql.c, Line 123 (mysql_log): > Jan 7 15:37:01 asterisk_pbx[5038]: Jan 7 15:37:01 DEBUG[1234379840]: > File cdr_addon_mysql.c, Line 130 (mysql_log): > Jan 7 15:37:01 asterisk_pbx[5038]: Jan 7 15:37:01 DEBUG[1234379840]: > File chan_sip.c, Line 1081 (sip_hangup): > > Festival's info is very minimal, but seems to indicate success: ># cat festival_server.log > "Load server start ./festival_server.scm" > festival port=1314 > wrapper Wed Jan 7 15:36:40 EST 2004 : USING DEFAULT CONFIGURATION > wrapper Wed Jan 7 15:36:41 EST 2004 : waiting > server Wed Jan 7 15:36:41 2004 : Festival server started on port 1314 > client(1) Wed Jan 7 15:37:00 2004 : accepted from localhost > client(1) Wed Jan 7 15:37:00 2004 : disconnected > > ...a process listing after the * crash shows a zombie festival, although > Festival will happily take new connections: > 5024 ? S 0:00 /bin/sh /usr/local/festival/bin/festival_server > 5030 ? S 0:00 festival --server ./festival_server.scm > 5065 ? Z 0:00 [festival <defunct>] > > I can restart Asterisk again, and do this over and over and over. If I > use the -g option to generate a core dump, I never see one generated. > > Any thoughts on what might be happening here? What am I doing wrong? > > -- > Doug > _______________________________________________ > Asterisk-Users mailing list > Asterisk-Users@lists.digium.com > http://lists.digium.com/mailman/listinfo/asterisk-users > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users >
Chris Albertson
2004-Jan-13 10:46 UTC
[Asterisk-Users] Asterisk and Festival (* dies with no info)
"strace" might give you some helpfull info. See man strace. It will record system calls and signels. Given what you say I'd run Asterisk in a debugger. I like "DDD" Compile everything with the -g gcc option first so the debugger can display source code lines. In DDD when the program stops the curser will be left on the last line executed and you can cause it to "run backwards" and see how you got there. Also, are you sure the Asterisk process died and isnot just hung either in an infinite loop or waiting for something that will never happen? What doe "ps" say? --- Doug Raum <draum@zoom.com> wrote:> Hello, > > I have Asterisk running on a RH9 box; Everything seems to be working > as it > should, except for Festival. Every time that Festival is called from > Asterisk, Asterisk silently shuts down. Festival doesn't give any > error > indication and Asterisk just plain dies without a peep. > > Festival was installed per the Wiki, using source and patched with > festival-1.4.3-diff; it works fine at the console. Asterisk is > built from > CVS and has been configured per the Wiki as well, including the test > extension (555). I start Festival with the "festival_server" script, > then > start Asterisk. > > (snippet from extensions.conf) > exten => 555,1,Answer > exten => 555,2,Festival(mary had a little lamb) > exten => 555,3,Hangup > > Here's what Asterisk says with -vvvvv, calling from SIP 81001 to 555: > Asterisk Ready. > -- Executing Answer("SIP/81001-e87b", "") in new stack > -- Executing Festival("SIP/81001-e87b", "mary had a little > lamb") in > new stack > == Parsing '/etc/asterisk/festival.conf': Found > == Spawn extension (from-sip, 555, 2) exited non-zero on > 'SIP/81001-e87b' > > ...at this point Asterisk is dead. No segfault, no error message. > > # cat /var/log/asterisk/messages > Jan 7 15:36:49 WARNING[1074416352]: File chan_iax2.c, Line 5466 > (set_config): Ignoring port for now > > # cat /var/log/asterisk/event_log > Jan 7 15:36:47 asterisk[5038]: Started Asterisk Event Logger > > (I capture stderr to asterisk.err) > # cat /var/log/asterisk/asterisk.err > Warning, flexibel rate not heavily tested! > Ouch ... error while writing audio data: : Broken pipe > > I'm guessing the ouch comes from mpg123 being surprised that Asterisk > is > gone. > > Debug info in syslog seems pretty unhelpful if I use -d: > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 > DEBUG[1150495040]: File > chan_sip.c, Line 4024 (check_user): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 > DEBUG[1150495040]: File > chan_sip.c, Line 5098 (handle_request): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 > DEBUG[1150495040]: File > chan_sip.c, Line 1002 (find_user): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 > DEBUG[1150495040]: File > chan_sip.c, Line 3417 (build_route): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 > DEBUG[1234379840]: File > app_festival.c, Line 304 (festival_exec): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 > DEBUG[1234379840]: File > app_festival.c, Line 361 (festival_exec): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 > DEBUG[1234379840]: File > app_festival.c, Line 363 (festival_exec): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 > DEBUG[1234379840]: File > app_festival.c, Line 379 (festival_exec): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 > DEBUG[1234379840]: File > app_festival.c, Line 400 (festival_exec): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 > DEBUG[1234379840]: File > app_festival.c, Line 410 (festival_exec): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 > DEBUG[1150495040]: File > chan_sip.c, Line 567 (__sip_ack): > Jan 7 15:37:00 asterisk_pbx[5038]: Jan 7 15:37:00 > DEBUG[1150495040]: File > chan_sip.c, Line 567 (__sip_ack): > Jan 7 15:37:01 asterisk_pbx[5038]: Jan 7 15:37:01 > DEBUG[1234379840]: File > cdr_addon_mysql.c, Line 123 (mysql_log): > Jan 7 15:37:01 asterisk_pbx[5038]: Jan 7 15:37:01 > DEBUG[1234379840]: File > cdr_addon_mysql.c, Line 130 (mysql_log): > Jan 7 15:37:01 asterisk_pbx[5038]: Jan 7 15:37:01 > DEBUG[1234379840]: File > chan_sip.c, Line 1081 (sip_hangup): > > Festival's info is very minimal, but seems to indicate success: > # cat festival_server.log > "Load server start ./festival_server.scm" > festival port=1314 > wrapper Wed Jan 7 15:36:40 EST 2004 : USING DEFAULT CONFIGURATION > wrapper Wed Jan 7 15:36:41 EST 2004 : waiting > server Wed Jan 7 15:36:41 2004 : Festival server started on port > 1314 > client(1) Wed Jan 7 15:37:00 2004 : accepted from localhost > client(1) Wed Jan 7 15:37:00 2004 : disconnected > > ...a process listing after the * crash shows a zombie festival, > although > Festival will happily take new connections: > 5024 ? S 0:00 /bin/sh > /usr/local/festival/bin/festival_server > 5030 ? S 0:00 festival --server ./festival_server.scm > 5065 ? Z 0:00 [festival <defunct>] > > I can restart Asterisk again, and do this over and over and over. If > I use > the -g option to generate a core dump, I never see one generated. > > Any thoughts on what might be happening here? What am I doing wrong? > > -- > Doug > _______________________________________________ > Asterisk-Users mailing list > Asterisk-Users@lists.digium.com > http://lists.digium.com/mailman/listinfo/asterisk-users > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users====Chris Albertson Home: 310-376-1029 chrisalbertson90278@yahoo.com Cell: 310-990-7550 Office: 310-336-5189 Christopher.J.Albertson@aero.org KG6OMK __________________________________ Do you Yahoo!? Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes http://hotjobs.sweepstakes.yahoo.com/signingbonus