panoramisk/utils.py
def agi_code_check(code=None, response=None, line=None):
    """
    Check the AGI code and return a dict to help on error handling.
    """
    code = int(code)
    response = response or ""
    result = {'status_code': code, 'result': ('', ''), 'msg': ''}
    if code == 100:
        result['msg'] = line
    elif code == 200:
        for key, value, data in re_kv.findall(response):
            result[key] = (value, data)
            # If user hangs up... we get 'hangup' in the data
            if data == 'hangup':
                return {
                    'error': 'AGIResultHangup',
                    'msg': 'User hungup during execution'}
            elif key == 'result' and value == '-1':
                return {
                    'error': 'AGIAppError',
                    'msg': 'Error executing application, or hangup'}
    elif code == 510:
        result['error'] = 'AGIInvalidCommand'
    elif code == 520:
        # AGI Usage error
        result['error'] = 'AGIUsageError'
        result['msg'] = line
    else:
        # Unhandled code or undefined response
        result['error'] = 'AGIUnknownError'
        result['msg'] = line
    return result
def agi_code_check(code=None, response=None, line=None):
    code = int(code)
    response = response or ""
    result = {'status_code': code, 'result': ('', ''), 'msg': ''}
    if code == 100:
        result['msg'] = line
    elif code == 200:
        for key, value, data in re_kv.findall(response):
            result[key] = (value, data)
            # If user hangs up... we get 'hangup' in the data
            if data == 'hangup':
                return {
                    'error': 'AGIResultHangup',
                    'msg': 'User hungup during execution'}
            elif key == 'result' and value == '-1':
                return {
                    'error': 'AGIAppError',
                    'msg': 'Error executing application, or hangup'}
    elif code == 510:
        result['error'] = 'AGIInvalidCommand'
    elif code == 520:
        # AGI Usage error
        result['error'] = 'AGIUsageError'
        result['msg'] = line
    else:
        # Unhandled code or undefined response
        result['error'] = 'AGIUnknownError'
        result['msg'] = line
    return result
def agi_code_check ( code = None , response = None , line = None ) : code = int ( code ) response = response or "" result = { 'status_code' : code , 'result' : ( '' , '' ) , 'msg' : '' } if code == 100 : result [ 'msg' ] = line elif code == 200 : for key , value , data in re_kv . findall ( response ) : result [ key ] = ( value , data ) # If user hangs up... we get 'hangup' in the data if data == 'hangup' : return { 'error' : 'AGIResultHangup' , 'msg' : 'User hungup during execution' } elif key == 'result' and value == '-1' : return { 'error' : 'AGIAppError' , 'msg' : 'Error executing application, or hangup' } elif code == 510 : result [ 'error' ] = 'AGIInvalidCommand' elif code == 520 : # AGI Usage error result [ 'error' ] = 'AGIUsageError' result [ 'msg' ] = line else : # Unhandled code or undefined response result [ 'error' ] = 'AGIUnknownError' result [ 'msg' ] = line return result
Check the AGI code and return a dict to help on error handling.
Check the AGI code and return a dict to help on error handling .