| # 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"] |
| }, |
| { |
| "ErrorType": "IKE_PROTOCOL_ERROR_TYPE", |
| "ErrorDetails": ["24", "9002"], |
| "RetryArray": ["10", "20", "40", "80", "160"], |
| "UnthrottlingEvents": ["APM_ENABLE_EVENT", "WIFI_DISABLE_EVENT", "WIFI_CALLING_DISABLE_EVENT"] |
| } |
| ] |
| } |
| ] |