# Please follow these guidelines when adding config. # # 1. The Error Config is defined as an Array of APNs identified by "ApnName" # 1.1. Other than Apn names this can also have "*" value which # represents that this can be used as a generic fallback when no # other policy matches. # 2. Each Apn associated with "ApnName" has an array of "ErrorTypes". Where each element # in "ErrorTypes" array defines the config for the Error # 3. The element in "ErrorTypes" array has the following items # 3.1. "ErrorType": Defines the type of error in String. # String should match @ErrorPolicyErrorType in @ErrorPolicyManager # 3.1.1. "IKE_PROTOCOL_ERROR_TYPE" refers to the Notify Error coming in # Notify paylod. Refer to https://tools.ietf.org/html/rfc4306#section-3.10.1 # for global errors and carrier specific requirements for other carrier specific # error codes. # 3.1.2. "GENERIC_ERROR_TYPE" refers to the following Iwlan errors - "IO_EXCEPTION", # "TIMEOUT_EXCEPTION", "SERVER_SELECTION_FAILED" and "TUNNEL_TRANSFORM_FAILED" # 3.1.3. "*" represents that this policy a generic fallback when no # other policy matches. # 3.2. "ErrorDetails": Array of error specifics for which the policy needs to be applied to. # Following are the currently supported formats of elements in the array: # Note: Array can be a mix of number, range and string formats. # 3.2.1. Number or Code: "24" - Number specific to the error(see 3.2.6, 3.2.7). # 3.2.2. Range: "9000-9050" Range of specific errors. # 3.2.3. Any: "*" value represents that this can be applied to all ErrorDetails # when there is no specific match. This will be a single element array. # 3.2.4. String: String describing the specific error. # Currently allowed string values - "IO_EXCEPTION", "TIMEOUT_EXCEPTION", # "SERVER_SELECTION_FAILED" and "TUNNEL_TRANSFORM_FAILED" # 3.2.5. "IKE_PROTOCOL_EXCEPTION" ErrorType expects the "ErrorDetail" to be # defined only in numbers or range of numbers. # Examples: ["24"] or ["9000-9050"] or ["7", "14000-14050"] # 3.2.6. "GENERIC_ERROR_TYPE" or "*" ErrorType expects only the following to be # in "ErrorDetail" - "IO_EXCEPTION", "TIMEOUT_EXCEPTION", # "SERVER_SELECTION_FAILED", "TUNNEL_TRANSFORM_FAILED" and "*". # Example: ["IO_EXCEPTION", "TIMEOUT_EXCEPTION"] or ["*"] # 3.3. "RetryArray": Array of retry times (in secs) represented in string format. # Following formats are currently supported. # 3.3.1. ["0","0", "0"] Retry immediately for maximum 3 times and then Fail. # 3.3.2. [] Empty array means to fail whenever the error happens. # 3.3.3. ["2", "4", "8"] Retry times are 2 secs, 4secs and 8 secs - Fail after that. # 3.3.4. ["5", "10", "15", "-1"] Here the "-1" represents infinite retires with the # retry time "15" (the last retry number). # 3.3.5. ["2+r15"] 2 seconds + Random time below 15 seconds. # 3.4. "UnthrottlingEvents": Events for which the retry time can be unthrottled. # String should match the events defined in @IwlanEventListener # Following are the currently supported UnthrottlingEvents # 3.4.1. WIFI_DISABLE_EVENT: Wifi on to off toggle. # 3.4.2. APM_DISABLE_EVENT: APM on to off toggle. # 3.4.3. APM_ENABLE_EVENT: APM off to on toggle. # 3.4.4. WIFI_AP_CHANGED_EVENT: Wifi is connected to a AP with different SSID. # 3.4.5. WIFI_CALLING_DISABLE_EVENT: Wifi calling button on to off toggle. # # Note: When the value is "*" for any of "ApnName" or "ErrorType" or "ErrorDetails", # it means that the config definition applies to rest of the errors for which # the config is not defined. # For example, if "ApnName" is "ims" and one of the "ErrorType" in it # is defined as "*" - this policy will be applied to the error # that doesn't fall into other error types defined under "ims". [ { "ApnName": "*", "ErrorTypes": [ { "ErrorType": "*", "ErrorDetails": ["*"], "RetryArray": ["5", "10", "-1"], "UnthrottlingEvents": ["APM_ENABLE_EVENT", "APM_DISABLE_EVENT", "WIFI_DISABLE_EVENT", "WIFI_AP_CHANGED_EVENT"] }, { "ErrorType": "GENERIC_ERROR_TYPE", "ErrorDetails": ["IO_EXCEPTION"], "RetryArray": ["0", "0", "0", "60+r15", "120", "-1"], "UnthrottlingEvents": ["APM_ENABLE_EVENT", "APM_DISABLE_EVENT", "WIFI_DISABLE_EVENT", "WIFI_AP_CHANGED_EVENT"] } ] } ]