def changePassword(): old_password=ibs_agi.getStateMachine().gotoState("GET_OLD_PASSWORD") if not old_password: return pass_correct=ibs_agi.getStateMachine().gotoState("CHECK_OLD_PASSWORD", old_password) if pass_correct: new_password=ibs_agi.getStateMachine().gotoState("GET_NEW_PASSWORD") if not new_password: return ibs_agi.getStateMachine().gotoState("CHANGE_TO_NEW_PASSWORD", new_password)
def modifyFastDial(): """ """ _index=ibs_agi.getStateMachine().gotoState("GET_FAST_DIAL_INDEX") if not _index or not _index.isdigit(): #timeout or #* return destination=ibs_agi.getStateMachine().gotoState("GET_FAST_DIAL_DIGITS",_index) if destination in ["*",""]: return ibs_agi.getStateMachine().gotoState("ADD_DESTINATION_TO_FAST_DIAL",_index,destination)
def dial(destination): duration = 0 status = "HANGUP" do_call_end = True authorized = False try: remaining_time = ibs_agi.getStateMachine().gotoState( "AUTHORIZE", destination) if ibs_agi.getConfig().getValue("authorized"): ibs_agi.getStateMachine().gotoState("SAY_REMAINING_TIME", remaining_time) (duration, status) = ibs_agi.getStateMachine().gotoState( "DIAL_DESTINATION", destination, remaining_time) else: do_call_end = False return finally: if do_call_end: (duration, used_credit) = ibs_agi.getStateMachine().gotoState( "CALL_END", duration, status) ch_status = ibs_agi.getAGI().channel_status() if ibs_agi.getConfig().getValue("debug"): toLog("AferDial ChannelStatus: " + str(ch_status)) ibs_agi.getStateMachine().gotoState("SAY_USED_CREDIT", duration, used_credit)
def fastDial(): """ """ while True: _index = ibs_agi.getStateMachine().gotoState("GET_FAST_DIAL_INDEX") if not _index or not _index.isdigit(): #timeout or #* return try: destination = ibs_agi.getStateMachine().gotoState( "GET_FAST_DIAL_DESTINATION_FROM_IBS", _index) except IBSException: return if destination == "": return ibs_agi.getSelectedLanguage().sayPrompt( "destination_incorrect") confirm = ibs_agi.getStateMachine().gotoState("CONFIRM_FAST_DIAL", _index, destination) if confirm == _index: return ibs_agi.getStateMachine().gotoState("DIAL", destination)
def menu(): while True: selection = ibs_agi.getStateMachine().gotoState("SAY_MENU") if selection == "": #timeout selection = ibs_agi.getAGI().wait_for_digit(5000) if selection == "": ibs_agi.getSelectedLanguage().sayPrompt("no_digit_entered") continue if ibs_agi.getConfig().getValue("debug"): toLog("Menu: Selected %s" % selection) if selection in "*#": #go and ask for destination again return try: new_state = ibs_agi.getSelectedLanguage().getMenuIndexState( int(selection)) except (KeyError, ValueError): ibs_agi.getStateMachine().gotoState("BAD_MENU_SELECTION") continue ibs_agi.getStateMachine().gotoState(new_state)
def userPassAuthenticate(): counter=0 while counter<ibs_agi.getConfig().getValue("retry") and not ibs_agi.getConfig().getValue("authenticated"): username=ibs_agi.getStateMachine().gotoState("GET_USERNAME",counter) if username == "": ibs_agi.getStateMachine().gotoState("AUTHENTICATION_FAILED") password=ibs_agi.getStateMachine().gotoState("GET_PASSWORD") credit=ibs_agi.getStateMachine().gotoState("AUTHENTICATE",username,password) counter+=1 if not ibs_agi.getConfig().getValue("authenticated"): ibs_agi.getStateMachine().gotoState("AUTHENTICATION_FAILED") return credit
def init(): ibs_agi.getStateMachine().registerState("GET_DESTINATION", getDestination)
def init(): ibs_agi.getStateMachine().registerState("USER_PASS_AUTHENTICATE",userPassAuthenticate)
def init(): ibs_agi.getStateMachine().registerState("GET_OLD_PASSWORD", getOldPassword)
def init(): ibs_agi.getStateMachine().registerState("GET_CURRENT_CREDIT", getCurrentCredit)
def init(): ibs_agi.getStateMachine().registerState("FAST_DIAL", fastDial)
def init(): ibs_agi.getStateMachine().registerState("ADD_DESTINATION_TO_FAST_DIAL", addDestinationToFastDial)
def authenticationFailed(): ibs_agi.getSelectedLanguage().sayPrompt("authentication_failed") ibs_agi.getStateMachine().gotoState("GOODBYE_HANGUP") raise IBSException("Authentication Failed")
def init(): ibs_agi.getStateMachine().registerState("AUTHENTICATION_FAILED", authenticationFailed)
def init(): ibs_agi.getStateMachine().registerState("REDIAL_LAST_NUMBER", redialLastNumber)
import ibs_agi from lib import request from lib.error import * def init(): ibs_agi.getStateMachine().registerState("REDIAL_LAST_NUMBER", redialLastNumber) def redialLastNumber(): """ get last number dialed by user and dial it """ req = request.Request() try: last_number = req.send("getLastDestination", True) except xmlrpclib.Fault, e: logException() ibs_agi.getSelectedLanguage().sayPrompt("unknown_problem") return else: if ibs_agi.getConfig().getValue("debug"): toLog("getLastDestination: %s" % last_number) if not last_number: ibs_agi.getSelectedLanguage().sayPrompt("destination_incorrect") return return ibs_agi.getStateMachine().gotoState("DIAL", last_number)
def init(): ibs_agi.getStateMachine().registerState("CONFIRM_FAST_DIAL", confirmFastDial)
def init(): ibs_agi.getStateMachine().registerState("DIAL_DESTINATION", dialDestination)
def init(): ibs_agi.getStateMachine().registerState("DELETE_CALLERID_AUTHENTICATION", deleteCallerIDAuthentication)
def init(): ibs_agi.getStateMachine().registerState("GET_USERNAME", getUsername)
def init(): ibs_agi.getStateMachine().registerState("GET_NEW_PASSWORD",getNewPassword)
def init(): ibs_agi.getStateMachine().registerState("MAIN",main)
def init(): ibs_agi.getStateMachine().registerState("SAY_REMAINING_TIME", sayRemainingTime)
def init(): ibs_agi.getStateMachine().registerState("SAY_USED_CREDIT", sayUsedCredit)
def init(): ibs_agi.getStateMachine().registerState("HANGUP",hangup)
def init(): ibs_agi.getStateMachine().registerState("DIAL", dial)
def main(): ibs_agi.getStateMachine().gotoState("SET_SESSION_VARIABLES") credit=ibs_agi.getStateMachine().gotoState("CALLERID_AUTHENTICATE") ibs_agi.getStateMachine().gotoState("GREETING") ibs_agi.getStateMachine().gotoState("CHOOSE_LANGUAGE") if not ibs_agi.getConfig().getValue("authenticated"): credit=ibs_agi.getStateMachine().gotoState("USER_PASS_AUTHENTICATE") ibs_agi.getStateMachine().gotoState("SAY_REMAINING_CREDIT",credit) while True: destination=ibs_agi.getStateMachine().gotoState("GET_DESTINATION") if destination=="*": ibs_agi.getStateMachine().gotoState("MENU") elif destination=="": ibs_agi.getStateMachine().gotoState("GOODBYE_HANGUP") else: ibs_agi.getStateMachine().gotoState("DIAL",destination)
def init(): ibs_agi.getStateMachine().registerState("GOODBYE_HANGUP", goodbyeHangup)
def init(): ibs_agi.getStateMachine().registerState("AUTHORIZE", authorize)
def goodbyeHangup(): ibs_agi.getSelectedLanguage().sayFile("goodbye") return ibs_agi.getStateMachine().gotoState("HANGUP")