1# Please follow these guidelines when adding config. 2# 3# 1. The Error Config is defined as an Array of APNs identified by "ApnName" 4# 1.1. Other than Apn names this can also have "*" value which 5# represents that this can be used as a generic fallback when no 6# other policy matches. 7# 2. Each Apn associated with "ApnName" has an array of "ErrorTypes". Where each element 8# in "ErrorTypes" array defines the config for the Error 9# 3. The element in "ErrorTypes" array has the following items 10# 3.1. "ErrorType": Defines the type of error in String. 11# String should match @ErrorPolicyErrorType in @ErrorPolicyManager 12# 3.1.1. "IKE_PROTOCOL_ERROR_TYPE" refers to the Notify Error coming in 13# Notify paylod. Refer to https://tools.ietf.org/html/rfc4306#section-3.10.1 14# for global errors and carrier specific requirements for other carrier specific 15# error codes. 16# 3.1.2. "GENERIC_ERROR_TYPE" refers to the following Iwlan errors - "IO_EXCEPTION", 17# "TIMEOUT_EXCEPTION", "SERVER_SELECTION_FAILED" and "TUNNEL_TRANSFORM_FAILED" 18# 3.1.3. "*" represents that this policy a generic fallback when no 19# other policy matches. 20# 3.2. "ErrorDetails": Array of error specifics for which the policy needs to be applied to. 21# Following are the currently supported formats of elements in the array: 22# Note: Array can be a mix of number, range and string formats. 23# 3.2.1. Number or Code: "24" - Number specific to the error(see 3.2.6, 3.2.7). 24# 3.2.2. Range: "9000-9050" Range of specific errors. 25# 3.2.3. Any: "*" value represents that this can be applied to all ErrorDetails 26# when there is no specific match. This will be a single element array. 27# 3.2.4. String: String describing the specific error. 28# Currently allowed string values - "IO_EXCEPTION", "TIMEOUT_EXCEPTION", 29# "SERVER_SELECTION_FAILED" and "TUNNEL_TRANSFORM_FAILED" 30# 3.2.5. "IKE_PROTOCOL_EXCEPTION" ErrorType expects the "ErrorDetail" to be 31# defined only in numbers or range of numbers. 32# Examples: ["24"] or ["9000-9050"] or ["7", "14000-14050"] 33# 3.2.6. "GENERIC_ERROR_TYPE" or "*" ErrorType expects only the following to be 34# in "ErrorDetail" - "IO_EXCEPTION", "TIMEOUT_EXCEPTION", 35# "SERVER_SELECTION_FAILED", "TUNNEL_TRANSFORM_FAILED" and "*". 36# Example: ["IO_EXCEPTION", "TIMEOUT_EXCEPTION"] or ["*"] 37# 3.3. "RetryArray": Array of retry times (in secs) represented in string format. 38# Following formats are currently supported. 39# 3.3.1. ["0","0", "0"] Retry immediately for maximum 3 times and then Fail. 40# 3.3.2. [] Empty array means to fail whenever the error happens. 41# 3.3.3. ["2", "4", "8"] Retry times are 2 secs, 4secs and 8 secs - Fail after that. 42# 3.3.4. ["5", "10", "15", "-1"] Here the "-1" represents infinite retires with the 43# retry time "15" (the last retry number). 44# 3.3.5. ["2+r15"] 2 seconds + Random time below 15 seconds. 45# 3.4. "UnthrottlingEvents": Events for which the retry time can be unthrottled. 46# String should match the events defined in @IwlanEventListener 47# Following are the currently supported UnthrottlingEvents 48# 3.4.1. WIFI_DISABLE_EVENT: Wifi on to off toggle. 49# 3.4.2. APM_DISABLE_EVENT: APM on to off toggle. 50# 3.4.3. APM_ENABLE_EVENT: APM off to on toggle. 51# 3.4.4. WIFI_AP_CHANGED_EVENT: Wifi is connected to a AP with different SSID. 52# 3.4.5. WIFI_CALLING_DISABLE_EVENT: Wifi calling button on to off toggle. 53# 54# Note: When the value is "*" for any of "ApnName" or "ErrorType" or "ErrorDetails", 55# it means that the config definition applies to rest of the errors for which 56# the config is not defined. 57# For example, if "ApnName" is "ims" and one of the "ErrorType" in it 58# is defined as "*" - this policy will be applied to the error 59# that doesn't fall into other error types defined under "ims". 60[ 61 { 62 "ApnName": "*", 63 "ErrorTypes": [ 64 { 65 "ErrorType": "*", 66 "ErrorDetails": ["*"], 67 "RetryArray": ["5", "10", "-1"], 68 "UnthrottlingEvents": ["APM_ENABLE_EVENT", "APM_DISABLE_EVENT", "WIFI_DISABLE_EVENT", "WIFI_AP_CHANGED_EVENT"] 69 }, 70 { 71 "ErrorType": "GENERIC_ERROR_TYPE", 72 "ErrorDetails": ["IO_EXCEPTION"], 73 "RetryArray": ["0", "0", "0", "60+r15", "120", "-1"], 74 "UnthrottlingEvents": ["APM_ENABLE_EVENT", "APM_DISABLE_EVENT", "WIFI_DISABLE_EVENT", "WIFI_AP_CHANGED_EVENT"] 75 } 76 ] 77 } 78] 79