Beispiel #1
0
def answer():
    print "entered /answer"
    if request.method == 'POST':
        try:
            print "request call status:"
	    print >> sys.stderr, str(request.form['CallStatus'])
            
            #create call object
            c= Call(    timeAnswered = datetime.datetime.now(),
                        direction = request.form['Direction'],
                        callFrom = request.form['From'],
                        billRate = float(request.form['BillRate']),
                        cn = request.form['CallerName'],
                        callTo = request.form['To'],
                        callUUID = str(request.form['CallUUID']), 
                        #callStatus = request.form['CallStatus'],
                        callState = 'ringing',
                    ) #make a new sCall object
            print "about to save"            
            c.save()
            
            #create state machine
            daddy = CallStateMachDaddy(c.callUUID)
            print "created daddy"
            daddy.e_answer()
            print "invoked state machine"
            if daddy.callXMLBuffer:
                r = daddy.callXMLBuffer
                daddy.callXMLBuffer = ''
            print "checked callXMLBuffer"
            print "type c = "+str(type(c))
            print "type daddy = " +str(type(daddy))
            
            c.callDaddyPickle = pickle.dumps(daddy)
            print "stuffed callDaddyPickle"
            c.save()
            
            
                        #send response to Plivo cloud.
            output = "Plivo Call RESTXML Response => %s" % r
            print >> sys.stderr, output
            return render_template('response_template.xml', response=r)
        except:
            print "exception in /answer"
            print >> sys.stderr, str(sys.exc_info()[0]) # These write the nature of the error
            print >> sys.stderr, str(sys.exc_info()[1])
    else:
        print >> sys.stderr, "Received GET request to /answer."
    return "Received GET request to /answer."