Quiero usar twisted (y StarPy, que es una implementación de protocolo para asterisk ami) para conectarme a un servidor de asterisco. La aplicación inicia un fax saliente allí. Encontré algunas pistas sobre mi problema, pero no puedo encontrar la forma de manejarlo correctamente.Conectar dos veces con retorcido: ¿cómo hacerlo correctamente?
El primer fax se envía correctamente.
El problema es que si llamo trenzado para la segunda vez, la aplicación mantiene colgando en el bucle principal.
Yo sé que no puedo hacer esto como aquí:
from starpy import manager
from twisted.internet import reactor
def main():
f = manager.AMIFactory(cUser, cPass)
print "Login"
df = f.login(cServer, cPort)
def onLogin(protocol):
print "Logoff again"
df = protocol.logoff()
def onLogoff(result):
print "Logoff erfolgt"
reactor.stop()
return df.addCallbacks(onLogoff, onLogoff)
def onFailure(reason):
print "Login failed"
print reason.getTraceback()
df.addCallbacks(onLogin, onFailure)
return df
if __name__ == "__main__":
reactor.callWhenRunning(main)
reactor.run(installSignalHandlers=0)
print "runned the first time"
reactor.callWhenRunning(main)
reactor.run(installSignalHandlers=0)
print "will never reach this point"
que simplifica el código - no hace nada despues entrar + cierre de sesión de nuevo. Nunca regresará de la segunda llamada a reactor.run().
¿Cómo se hace esto correctamente? Estoy atrapado aquí, gracias de antemano.
Saludos cordiales, Florian.
Sí, eso es lo que encontré en la web también. Pero no soy capaz de entender cómo debo manejar esto. Tal vez podría indicarme la dirección correcta: * ¿Cuándo comienzo el reactor? ¿En el inicio de la aplicación o cuando la uso por primera vez? * ¿Cómo puedo pedirle a un reactor que 1. conecte/2. enviar un fax/3. perder la conexión más de una vez? Estoy atascado. Invertí horas desarrollando y leyendo manuales. Simplemente no encuentro respuestas ... Gracias de antemano. –
Lo siento, mis alimentadores de línea no funcionaron aquí. –