/* * Copyright (c) 2019, The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - Neither the name of The Android Open Source Project nor the names of its contributors may * be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MOTOROLA MOBILITY LLC BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */ package com.android.ims; public class ResultCode { /** * The code is used when the request is success. */ public static final int SUCCESS =0; /** * Return this code if the service doesn't be enabled on the phone. * As per the requirement the feature can be enabled/disabled by DM. */ public static final int ERROR_SERVICE_NOT_ENABLED = -1; /** * Return this code if the service didn't publish yet. */ public static final int ERROR_SERVICE_NOT_PUBLISHED = -2; /** * The service is not available, for example it is 1x only */ public static final int ERROR_SERVICE_NOT_AVAILABLE = -3; /** * SUBSCRIBE Error base */ public static final int SUBSCRIBER_ERROR_CODE_START = ERROR_SERVICE_NOT_AVAILABLE; /** * Temporary error and need retry later. * such as: * 503 Service Unavailable * Device shall retry with exponential back-off * * 408 Request Timeout * Device shall retry with exponential back-off * * 423 Interval Too Short. Requested expiry interval too short and server rejects it * Device shall re-attempt subscription after changing the expiration interval in * the Expires header field to be equal to or greater than the expiration interval * within the Min-Expires header field of the 423 response */ public static final int SUBSCRIBE_TEMPORARY_ERROR = SUBSCRIBER_ERROR_CODE_START - 1; /** * receives 403 (reason="User Not Registered"). * Re-Register to IMS then retry the single resource subscription if capability polling. * availability fetch: no retry. */ public static final int SUBSCRIBE_NOT_REGISTERED = SUBSCRIBER_ERROR_CODE_START - 2; /** * Responding for 403 - not authorized (Requestor) * No retry. */ public static final int SUBSCRIBE_NOT_AUTHORIZED_FOR_PRESENCE = SUBSCRIBER_ERROR_CODE_START - 3; /** * Responding for "403 Forbidden" or "403" * Handle it as same as 404 Not found. * No retry. */ public static final int SUBSCRIBE_FORBIDDEN = SUBSCRIBER_ERROR_CODE_START - 4; /** * Responding for 404 (target number) * No retry. */ public static final int SUBSCRIBE_NOT_FOUND = SUBSCRIBER_ERROR_CODE_START - 5; /** * Responding for 413 - Too Large. Top app need shrink the size * of request contact list and resend the request */ public static final int SUBSCRIBE_TOO_LARGE = SUBSCRIBER_ERROR_CODE_START - 6; /** * All subscribe errors not covered by specific errors * Other 4xx/5xx/6xx * * Device shall not retry */ public static final int SUBSCRIBE_GENIRIC_FAILURE = SUBSCRIBER_ERROR_CODE_START - 7; /** * Invalid parameter - The caller should check the parameter. */ public static final int SUBSCRIBE_INVALID_PARAM = SUBSCRIBER_ERROR_CODE_START - 8; /** * Fetch error - The RCS statck failed to fetch the presence information. */ public static final int SUBSCRIBE_FETCH_ERROR = SUBSCRIBER_ERROR_CODE_START - 9; /** * Request timeout - The RCS statck returns timeout error. */ public static final int SUBSCRIBE_REQUEST_TIMEOUT = SUBSCRIBER_ERROR_CODE_START - 10; /** * Insufficient memory - The RCS statck returns the insufficient memory error. */ public static final int SUBSCRIBE_INSUFFICIENT_MEMORY = SUBSCRIBER_ERROR_CODE_START - 11; /** * Lost network error - The RCS statck returns the lost network error. */ public static final int SUBSCRIBE_LOST_NETWORK = SUBSCRIBER_ERROR_CODE_START - 12; /** * Not supported error - The RCS statck returns the not supported error. */ public static final int SUBSCRIBE_NOT_SUPPORTED = SUBSCRIBER_ERROR_CODE_START - 13; /** * Generic error - RCS Presence stack returns generic error */ public static final int SUBSCRIBE_GENERIC = SUBSCRIBER_ERROR_CODE_START - 14; /** * There is a request for the same number in queue. */ public static final int SUBSCRIBE_ALREADY_IN_QUEUE = SUBSCRIBER_ERROR_CODE_START - 16; /** * Request too frequently. */ public static final int SUBSCRIBE_TOO_FREQUENTLY = SUBSCRIBER_ERROR_CODE_START - 17; /** * The last Subscriber error code */ public static final int SUBSCRIBER_ERROR_CODE_END = SUBSCRIBER_ERROR_CODE_START - 17; /** * All publish errors not covered by specific errors */ public static final int PUBLISH_GENERIC_FAILURE = ResultCode.SUBSCRIBER_ERROR_CODE_END - 1; /** * Responding for 403 - not authorized */ public static final int PUBLISH_NOT_AUTHORIZED_FOR_PRESENCE = ResultCode.SUBSCRIBER_ERROR_CODE_END - 2; /** * Responding for 404 error code. The subscriber is not provisioned. * The Client should not send any EAB traffic after get this error. */ public static final int PUBLISH_NOT_PROVISIONED = ResultCode.SUBSCRIBER_ERROR_CODE_END - 3; public static final int PUBLISH_NOT_REGISTERED = ResultCode.SUBSCRIBER_ERROR_CODE_END - 4; public static final int PUBLISH_FORBIDDEN = ResultCode.SUBSCRIBER_ERROR_CODE_END - 5; public static final int PUBLISH_NOT_FOUND = ResultCode.SUBSCRIBER_ERROR_CODE_END - 6; public static final int PUBLISH_REQUEST_TIMEOUT = ResultCode.SUBSCRIBER_ERROR_CODE_END - 7; public static final int PUBLISH_TOO_LARGE = ResultCode.SUBSCRIBER_ERROR_CODE_END - 8; public static final int PUBLISH_TOO_SHORT = ResultCode.SUBSCRIBER_ERROR_CODE_END - 9; public static final int PUBLISH_TEMPORARY_ERROR = ResultCode.SUBSCRIBER_ERROR_CODE_END - 10; }