1903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan/*
2903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan * Copyright (C) 2010 The Android Open Source Project
3903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan *
4903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan * Licensed under the Apache License, Version 2.0 (the "License");
5903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan * you may not use this file except in compliance with the License.
6903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan * You may obtain a copy of the License at
7903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan *
8903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan *      http://www.apache.org/licenses/LICENSE-2.0
9903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan *
10903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan * Unless required by applicable law or agreed to in writing, software
11903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan * distributed under the License is distributed on an "AS IS" BASIS,
12903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan * See the License for the specific language governing permissions and
14903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan * limitations under the License.
15903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan */
16903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan
17903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyanpackage android.net.sip;
18903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan
19903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan/**
2002b1d685cc287d7c53141872b3d80be4ee5dd59eScott Main * Defines error codes returned during SIP actions. For example, during
2102b1d685cc287d7c53141872b3d80be4ee5dd59eScott Main * {@link SipRegistrationListener#onRegistrationFailed onRegistrationFailed()},
2202b1d685cc287d7c53141872b3d80be4ee5dd59eScott Main * {@link SipSession.Listener#onError onError()},
2302b1d685cc287d7c53141872b3d80be4ee5dd59eScott Main * {@link SipSession.Listener#onCallChangeFailed onCallChangeFailed()} and
2402b1d685cc287d7c53141872b3d80be4ee5dd59eScott Main * {@link SipSession.Listener#onRegistrationFailed onRegistrationFailed()}.
25903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan */
2697963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyanpublic class SipErrorCode {
2797963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan    /** Not an error. */
2897963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan    public static final int NO_ERROR = 0;
2997963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan
30903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan    /** When some socket error occurs. */
3197963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan    public static final int SOCKET_ERROR = -1;
32903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan
33903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan    /** When server responds with an error. */
3497963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan    public static final int SERVER_ERROR = -2;
35903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan
363d7606aa607b24817e37c264f2141ed7b2d50be0Hung-ying Tyan    /** When transaction is terminated unexpectedly. */
3797963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan    public static final int TRANSACTION_TERMINTED = -3;
383d7606aa607b24817e37c264f2141ed7b2d50be0Hung-ying Tyan
39903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan    /** When some error occurs on the device, possibly due to a bug. */
4097963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan    public static final int CLIENT_ERROR = -4;
41903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan
42903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan    /** When the transaction gets timed out. */
4397963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan    public static final int TIME_OUT = -5;
44903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan
45903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan    /** When the remote URI is not valid. */
4697963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan    public static final int INVALID_REMOTE_URI = -6;
47903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan
48ae076d3981fda732d54b6c6e37e5659b2e7ba130Hung-ying Tyan    /** When the peer is not reachable. */
4997963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan    public static final int PEER_NOT_REACHABLE = -7;
50ae076d3981fda732d54b6c6e37e5659b2e7ba130Hung-ying Tyan
51903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan    /** When invalid credentials are provided. */
5297963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan    public static final int INVALID_CREDENTIALS = -8;
533d7606aa607b24817e37c264f2141ed7b2d50be0Hung-ying Tyan
543d7606aa607b24817e37c264f2141ed7b2d50be0Hung-ying Tyan    /** The client is in a transaction and cannot initiate a new one. */
5597963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan    public static final int IN_PROGRESS = -9;
56d231aa880ab006d51ffe03454c1fc082f1c97bb8Hung-ying Tyan
57d231aa880ab006d51ffe03454c1fc082f1c97bb8Hung-ying Tyan    /** When data connection is lost. */
5897963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan    public static final int DATA_CONNECTION_LOST = -10;
5997963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan
6000a22064efef4f574e439079aae2deae1a087a31Hung-ying Tyan    /** Cross-domain authentication required. */
6100a22064efef4f574e439079aae2deae1a087a31Hung-ying Tyan    public static final int CROSS_DOMAIN_AUTHENTICATION = -11;
6200a22064efef4f574e439079aae2deae1a087a31Hung-ying Tyan
63c6548fd9eda7b58f5a2e2a9c01e3c7cafd42fafbHung-ying Tyan    /** When the server is not reachable. */
64c6548fd9eda7b58f5a2e2a9c01e3c7cafd42fafbHung-ying Tyan    public static final int SERVER_UNREACHABLE = -12;
65c6548fd9eda7b58f5a2e2a9c01e3c7cafd42fafbHung-ying Tyan
6697963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan    public static String toString(int errorCode) {
6797963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan        switch (errorCode) {
6897963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan            case NO_ERROR:
6997963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan                return "NO_ERROR";
7097963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan            case SOCKET_ERROR:
7197963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan                return "SOCKET_ERROR";
7297963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan            case SERVER_ERROR:
7397963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan                return "SERVER_ERROR";
7497963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan            case TRANSACTION_TERMINTED:
7597963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan                return "TRANSACTION_TERMINTED";
7697963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan            case CLIENT_ERROR:
7797963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan                return "CLIENT_ERROR";
7897963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan            case TIME_OUT:
7997963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan                return "TIME_OUT";
8097963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan            case INVALID_REMOTE_URI:
8197963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan                return "INVALID_REMOTE_URI";
8297963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan            case PEER_NOT_REACHABLE:
8397963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan                return "PEER_NOT_REACHABLE";
8497963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan            case INVALID_CREDENTIALS:
8597963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan                return "INVALID_CREDENTIALS";
8697963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan            case IN_PROGRESS:
8797963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan                return "IN_PROGRESS";
8897963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan            case DATA_CONNECTION_LOST:
8997963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan                return "DATA_CONNECTION_LOST";
9000a22064efef4f574e439079aae2deae1a087a31Hung-ying Tyan            case CROSS_DOMAIN_AUTHENTICATION:
9100a22064efef4f574e439079aae2deae1a087a31Hung-ying Tyan                return "CROSS_DOMAIN_AUTHENTICATION";
92c6548fd9eda7b58f5a2e2a9c01e3c7cafd42fafbHung-ying Tyan            case SERVER_UNREACHABLE:
93c6548fd9eda7b58f5a2e2a9c01e3c7cafd42fafbHung-ying Tyan                return "SERVER_UNREACHABLE";
9497963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan            default:
9597963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan                return "UNKNOWN";
9697963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan        }
9797963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan    }
9897963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan
9997963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan    private SipErrorCode() {
10097963794af1e18674dd111e3ad344d90b16c922cHung-ying Tyan    }
101903e1031605d715e904811b0dd06cc6a518f0048Hung-ying Tyan}
102