I have a fast agi python script that reads some numbers from MySQL, and then 
instructs asterisk to try those numbers in sequential order.

ie:

    def run(self):
        agi = AGI(self.client)

        db = 
MySQLdb.connect(host="192.168.10.15",user="user",passwd="password",db="somedb")
        c = db.cursor()
        c.execute("""Select * from ast_dp""")
        data = c.fetchall()
        
        for i in data:
            str = "EXEC " + i[4] + " \"" +i[5] + "/" + i[6] + "|" + i[7] + "\" 
\"\"\n"
            self.client.send(str)
            print str
        
        c.close()

I have noticed that when you send a list of instructions to Asterisk via AGI 
that Asterisk doesn't block on each command. It accepts all the commands at 
once, and must pool them internally I guess. This is different to regular AGI 
where Asterisk will not take the next command until the current one has 
finished processing (eg a dial with a timeout of 20s for example).

This seems to have the affect that when I hang up the caller, the first number 
stops ringing, and then the second will ring for a fraction of a second before 
also stopping. It's like Asterisk starts to process the command before it 
realises it's been cancelled. Not good!

Anyone seen this before? I was seeing a similar problem yesterday with a perl 
Agi script (not FastAGI). After hanging up the caller, the current callee would 
continue to ring for a fraction of a second after the caller had hung up. Also 
not good!

Thanks,
Douglas.


_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

Asterisk-Users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to