[Asterisk-Dev] EAGI : Pipe saturation

Steven Critchfield critch at basesys.com
Tue Dec 16 09:37:46 MST 2003

On Tue, 2003-12-16 at 09:44, Areski wrote:
> On Tue, 2003-12-16 at 16:12, Steven Critchfield wrote:
> > On Tue, 2003-12-16 at 05:13, Areski wrote:
> > > Well, I created a script that loop all the time until that the user
> > > hangup. With AGI, my script is not killed by Asterisk for some reasons
> > > ;/ (perhaps it's normal) 
> > 
> > What language are you using for the Agi? Maybe your lost pipes are in
> > your script not asterisk.
> I also though to it and that's why I tried with Perl (the first was in
> c)... then I removed all pieces of my script till to find out what was
> wrong and at the end I had an empty script... so for sure, that's come
> from asterisk (perhaps just my), I m pretty sure that there is smth
> wrong in the function when efd (enhanced) is setup.
> static int launch_script(char *script, char *args, int *fds, int *efd,
> int *opid)
> Did you test an eagi and see if you lose also pipes?
> I m beginner with Asterisk but if pipe aren't close, it should not be
> difficult to fix it.
> exten => 1879,1,Answer
> exten => 1879,2,Wait(2)
> exten => 1879,3,eagi,DialAnMp3.agi
> exten => 1879,4,Hangup
> > 
> > > Actually, I just tricked it on AGI, so it's work fine now, I detect the
> > > hangup from stdin. Perhaps that was the way.
> > 
> > Thats the appropriate way/ Asterisk does not kill you script off. It
> > just closes it's side of the pipes. So you have to detect that and close
> > up your side and clean anything else up before exiting. 
> I m sure that I saw smth like send SIGHUP signal, I should stop drugs
> and alcools. 

It is in there, I hadn't seen it before. Looks like it would try to send
one if asterisk couldn't open the filehandle back to the agi, and the
other time is at the end. If you don't trap for SIGHUP then you wouldn't
know though. It seems that perl doesn't die on SIGHUP normally.
Steven Critchfield  <critch at basesys.com>

More information about the asterisk-dev mailing list