Example #1
0
def detailAnalytics(cid):
    r = kookoo.Response()
    g = r.append(kookoo.CollectDtmf(maxDigits=1))
    g.append(kookoo.PlayText("Press 1 for this week"))
    g.append(kookoo.PlayText("Press 2 for this month"))
    g.append(kookoo.PlayText("Press 3 for this year"))
    return r
Example #2
0
def updateDB(cid, category, amount):
    category = getCategoryFromNumber(int(category))
    record = userDB(cid=cid, amount=amount, category=category)
    record.put()
    r = kookoo.Response()
    r.addPlayText("Your entry was successfully added")
    return r
Example #3
0
def welcome():
    r = kookoo.Response()
    r.addPlayText(
        "welcome to expense management system.")  # change to app name
    g = r.append(kookoo.CollectDtmf(maxDigits=1))
    g.append(kookoo.PlayText("Press 1 for adding an expense entry"))
    g.append(kookoo.PlayText("Press 2 for analysis"))
    g.append(kookoo.PlayText("Press 3 for transaction"))
    return r
Example #4
0
def shortAnalytics(cid):
    sum = 0
    records = db.GqlQuery('SELECT * FROM userDB WHERE cid = \'' + cid +
                          '\' AND date = DATE(\'' +
                          str(datetime.datetime.now().date()) + '\')')
    for x in records:
        sum = sum + int(x.amount)
    r = kookoo.Response()
    r.addPlayText("Todays total spending amount is " + str(sum))
    return r
Example #5
0
    def GET(self):
        from conf.app_settings import LOCALT_PATH,AUDIO_FILE
        web.header('Content-Type', 'text/xml')
        input= web.input()
        APP_LOGGER.debug("KOOKOO CALLED ME:"+json.dumps(input))
#        Dump.objects.get_or_create(type="INPUT",data=json.dumps(input))
        if input.has_key('event'):
            if input['event']=='NewCall':
                SID[input['sid']]=input['cid']
                Dump.objects.get_or_create(type='NEW CALL',data=json.dumps(input))
                r = kookoo.Response()
                g = r.append(kookoo.CollectDtmf(maxDigits=1))
                g.append(kookoo.PlayAudio(LOCALT_PATH+'/static/'+AUDIO_FILE))
                return r
            if input['event']=='GotDTMF':
                digit=input['data']
                if digit=='1':
                    Dump.objects.create(type='INTERESTED',data=SID[input['sid']])
                    r = kookoo.Response()
                    r.addPlayText('Thank you, we will call you back in 5 minutes')
                    r.addHangup()
                    return r
                if digit=='2':
                    Dump.objects.create(type='CALL BACK',data=SID[input['sid']])
                    r = kookoo.Response()
                    r.addPlayText('Thank You')
                    r.addHangup()
                    return r
                if digit=='3':
                    Dump.objects.create(type='NOT INTERESTED',data=SID[input['sid']])
                    r = kookoo.Response()
                    r.addPlayText('Thank You')
                    r.addHangup()
                    return r
                if digit=='4':
                    Dump.objects.get_or_create(type='REPLAYED',data=SID[input['sid']])
                    r = kookoo.Response()
                    g = r.append(kookoo.CollectDtmf(maxDigits=1))
                    g.append(kookoo.PlayAudio(LOCALT_PATH+'/static/'+AUDIO_FILE))
                    return r
        else:
            return '<response>invalid call</response>'
Example #6
0
def call_ivr(request):
    if request.method == 'GET':
        print request.GET
        event = request.GET.get('event', None)
        print event
        if event == "GotDTMF":
            pincode = int(request.GET['data'])
            top_10_schools = SchoolNames.Query.all().limit(2)
            s = "The schools near you are "
            for school in top_10_schools:
                s += school.SCHOOL_NAME
                s += "  and"
            r = kookoo.Response()
            r.addPlayText(s)
            r.addHangup()
            return HttpResponse(r)
        else:
            r = kookoo.Response()
            pincode = r.append(kookoo.CollectDtmf(maxDigits=6))
            pincode.append(kookoo.PlayText("Please enter the pincode"))
            return HttpResponse(r)
Example #7
0
def addEntry():
    r = kookoo.Response()
    r.addPlayText("What category did you spend on")
    g = r.append(kookoo.CollectDtmf(maxDigits=1))
    g.append(kookoo.PlayText("Press 1 for food"))
    g.append(kookoo.PlayText("Press 2 for transport"))
    g.append(kookoo.PlayText("Press 3 for shopping"))
    g.append(kookoo.PlayText("Press 4 for entertainment"))
    g.append(kookoo.PlayText("Press 5 for heathcare"))
    g.append(kookoo.PlayText("Press 6 for education"))
    g.append(kookoo.PlayText("Press 7 for others"))

    return r
Example #8
0
def yearAnalytics(cid):
    sum = {}
    firstdate = date(1, 1, datetime.datetime.now().year)
    records = db.GqlQuery('SELECT * FROM userDB WHERE cid = \'' + cid +
                          '\' AND date >= DATE(\'' + str(firstdate) + '\')')
    for x in records:
        if str(x.category) not in sum.keys(): sum[str(x.category)] = 0
        sum[str(x.category)] = sum[str(x.category)] + int(x.amount)

    sum = sorted(sum.iteritems(), key=operator.itemgetter(1), reverse=True)
    r = kookoo.Response()
    r.addPlayText("this years total amount is " + str(sum))
    r.addPlayText("the top categories of spending are")
    i = 1
    for key in sum:
        r.addPlayText(str(key))
        if i >= 5: break
        i = i + 1
    return r
Example #9
0
    def get(self):
        requestSid = self.request.get("sid")
        requestCallerNumber = self.request.get("cid")
        requestCalledNumber = self.request.get('called_number')
        requestData = self.request.get('data')

        session = get_current_session()
        state = session.get('state', "not present")
        logging.info("STATE: %s", state)

        response = kookoo.Response(filler='yes')

        if (self.request.get('event') == "NewCall"):
            handleNewCall(self, response)
            session['state'] = "MainMenu"

        elif (self.request.get('event') == "GotDTMF"):
            if (state == "MainMenu"):
                if (requestData == "1"):
                    recordVoiceCV(self, response)
                    session['state'] = "RecordCV"
                elif (requestData == "2"):
                    getCandidateStatus(self, response)
                elif (requestData == "3"):
                    getCurrentPositions(self, response)

        elif (self.request.get('event') == "Hangup"):
            handleHangup(self, response)

        elif (self.request.get('event') == "Record"):
            addAudioCVToDB(self, response)
            hangupCaller(self, response)

        elif (self.request.get('event') == "Disconnect"):
            handleDisconnectEvent(self, response)
            hangupCaller(self, response)
        else:
            pass

        self.response.out.write(response)
Example #10
0
def ProcessKooKooResponse():
    try:
	lis = json.load(open( "save.json", "r" ) )
    except :
	lis = {}
    r = kookoo.Response()
    curtime = int(time.time())
    dic ={'Please say your name':'name'+str(curtime),
          'Please Say your qualification':'qual'+str(curtime)}
    phone_number=""
    if request.values.get("event") == "NewCall":
        r.addPlayText("Welcome to Shine dot com registration service")
        phone_number=request.values.get("cid")
	for i , j in dic.items():
        	r.addPlayText(i)
        	r.addRecord(j)
        r.addPlayText("Thank You")
        r.addHangup()
    print str(r)
    #dic['proc'] = 0
    lis[phone_number]=dic
    json.dump( lis, open( "save.json", "w" ) )
    return str(r).replace("<Record","<Record format=\"wav\" silence=\"3\" maxduration=\"5\"")
Example #11
0
def getSpendingDetails():
    r = kookoo.Response()
    g = r.append(kookoo.CollectDtmf(maxDigits=1))
    g.append(kookoo.PlayText("Press 1 for quick analytics"))
    g.append(kookoo.PlayText("Press 2 for detailed analytics"))
    return r
Example #12
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Import modules for CGI handling
import cgi, cgitb
import kookoo  # kookoo library
import urllib
import sys, os

# The same XML can be created above using the convenience methods
r = kookoo.Response()
form = cgi.FieldStorage()

#variables
lang = 'en-IN'
lang_hi = 'hi-IN'


#kookoo language format for both recognise and tts
# english : en-IN
# hindi	: hi-IN ..,
def getAudioPath(filename):
    filename = "/audios/" + filename
    noQueryString = os.environ["SCRIPT_NAME"]
    dir = noQueryString.split("/")
    dir.pop()
    noQueryString = "/".join(dir)
    url = ""
    if os.environ["SERVER_PORT"] == 443:
        url = "https://" + os.environ["SERVER_ADDR"] + noQueryString + filename
    else:
        url = "http://" + os.environ["SERVER_ADDR"] + noQueryString + filename
Example #13
0
def enterAmount():
    r = kookoo.Response()
    g = r.append(kookoo.CollectDtmf())
    g.append(kookoo.PlayText("How much did you spend"))
    return r