#!/usr/bin/python # -*- coding: iso-8859-1 -*- import pgdb, datetime, agi, sys def initialize(): try: db = pgdb.connect (dsn = '192.168.1.102:transportadora',user='asterisk',password='123456') except pgdb.DatabaseError, msg: # Captura mensagem de erro gerada pelo banco agilog.write("Erro ao conectar: %s" % (msg)) # Grava mensagem de erro no arquivo de log return 0 return db def fim(): agilog.write("Fim...: %s\n" % (datetime.datetime.now())) agilog.write("--------------------------------\n\n") agilog.close() agilog = open('/var/log/asterisk/agi.log', 'a') # Abre arquivo de log agilog.write("Inicio: %s\n" % (datetime.datetime.now())) Asterisk = agi.AGI() db = initialize() if not db: fim() sys.exit(1) agilog.write("CallerId: %s\n" % (Asterisk.env['agi_callerid'])) # Grava callerid no log Result = Asterisk.Cmd('GET VARIABLE FRETE') Entrega = Result[0][14:-2] agilog.write("Frete: %s\n" % (Entrega)) cursor = db.cursor() cursor.execute("UPDATE tb_Entrega SET recebido='true' WHERE frete=%s" % (Entrega)) if (cursor.rowcount == 1): Asterisk.Cmd('STREAM FILE entrega ""') # Reproduz mensagem de confirmacao Asterisk.Cmd('EXEC SayDigits "%s"' % (Entrega)) Asterisk.Cmd('STREAM FILE confirmada ""') else: agilog.write("ERRO: Frete não encontrado!!\n") Asterisk.Cmd('STREAM FILE frete-inexistente ""') db.commit() cursor.close() db.close fim()