12bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan/*
22bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan * Copyright (C) 2010 The Android Open Source Project
32bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan *
42bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan * Licensed under the Apache License, Version 2.0 (the "License");
52bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan * you may not use this file except in compliance with the License.
62bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan * You may obtain a copy of the License at
72bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan *
82bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan *      http://www.apache.org/licenses/LICENSE-2.0
92bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan *
102bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan * Unless required by applicable law or agreed to in writing, software
112bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan * distributed under the License is distributed on an "AS IS" BASIS,
122bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan * See the License for the specific language governing permissions and
142bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan * limitations under the License.
152bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan */
162bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan
172bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyanpackage android.net.sip;
182bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan
192bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan/**
2016b441b4ad92c6a5cbc6f27cb3705eaaaaee20c1Scott Main * Defines error codes returned during SIP actions. For example, during
2116b441b4ad92c6a5cbc6f27cb3705eaaaaee20c1Scott Main * {@link SipRegistrationListener#onRegistrationFailed onRegistrationFailed()},
2216b441b4ad92c6a5cbc6f27cb3705eaaaaee20c1Scott Main * {@link SipSession.Listener#onError onError()},
2316b441b4ad92c6a5cbc6f27cb3705eaaaaee20c1Scott Main * {@link SipSession.Listener#onCallChangeFailed onCallChangeFailed()} and
2416b441b4ad92c6a5cbc6f27cb3705eaaaaee20c1Scott Main * {@link SipSession.Listener#onRegistrationFailed onRegistrationFailed()}.
252bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan */
26a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyanpublic class SipErrorCode {
27a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan    /** Not an error. */
28a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan    public static final int NO_ERROR = 0;
29a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan
302bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan    /** When some socket error occurs. */
31a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan    public static final int SOCKET_ERROR = -1;
322bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan
332bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan    /** When server responds with an error. */
34a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan    public static final int SERVER_ERROR = -2;
352bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan
36f18f1d352ec89b2765afe6b78508cf7d5fe6b996Hung-ying Tyan    /** When transaction is terminated unexpectedly. */
37a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan    public static final int TRANSACTION_TERMINTED = -3;
38f18f1d352ec89b2765afe6b78508cf7d5fe6b996Hung-ying Tyan
392bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan    /** When some error occurs on the device, possibly due to a bug. */
40a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan    public static final int CLIENT_ERROR = -4;
412bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan
422bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan    /** When the transaction gets timed out. */
43a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan    public static final int TIME_OUT = -5;
442bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan
452bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan    /** When the remote URI is not valid. */
46a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan    public static final int INVALID_REMOTE_URI = -6;
472bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan
481c77ba42254cbe84cc1c1a2c31ef7839c2294999Hung-ying Tyan    /** When the peer is not reachable. */
49a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan    public static final int PEER_NOT_REACHABLE = -7;
501c77ba42254cbe84cc1c1a2c31ef7839c2294999Hung-ying Tyan
512bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan    /** When invalid credentials are provided. */
52a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan    public static final int INVALID_CREDENTIALS = -8;
53f18f1d352ec89b2765afe6b78508cf7d5fe6b996Hung-ying Tyan
54f18f1d352ec89b2765afe6b78508cf7d5fe6b996Hung-ying Tyan    /** The client is in a transaction and cannot initiate a new one. */
55a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan    public static final int IN_PROGRESS = -9;
56614f7878d49baf7302e5d48bd9df9c26ef5cd6beHung-ying Tyan
57614f7878d49baf7302e5d48bd9df9c26ef5cd6beHung-ying Tyan    /** When data connection is lost. */
58a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan    public static final int DATA_CONNECTION_LOST = -10;
59a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan
60c87f1e015123d985a37e8ab276e124b62068e793Hung-ying Tyan    /** Cross-domain authentication required. */
61c87f1e015123d985a37e8ab276e124b62068e793Hung-ying Tyan    public static final int CROSS_DOMAIN_AUTHENTICATION = -11;
62c87f1e015123d985a37e8ab276e124b62068e793Hung-ying Tyan
63e26eb3274a65c41a6a30bdace1818c5629cca1c8Hung-ying Tyan    /** When the server is not reachable. */
64e26eb3274a65c41a6a30bdace1818c5629cca1c8Hung-ying Tyan    public static final int SERVER_UNREACHABLE = -12;
65e26eb3274a65c41a6a30bdace1818c5629cca1c8Hung-ying Tyan
66a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan    public static String toString(int errorCode) {
67a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan        switch (errorCode) {
68a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan            case NO_ERROR:
69a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan                return "NO_ERROR";
70a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan            case SOCKET_ERROR:
71a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan                return "SOCKET_ERROR";
72a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan            case SERVER_ERROR:
73a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan                return "SERVER_ERROR";
74a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan            case TRANSACTION_TERMINTED:
75a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan                return "TRANSACTION_TERMINTED";
76a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan            case CLIENT_ERROR:
77a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan                return "CLIENT_ERROR";
78a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan            case TIME_OUT:
79a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan                return "TIME_OUT";
80a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan            case INVALID_REMOTE_URI:
81a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan                return "INVALID_REMOTE_URI";
82a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan            case PEER_NOT_REACHABLE:
83a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan                return "PEER_NOT_REACHABLE";
84a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan            case INVALID_CREDENTIALS:
85a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan                return "INVALID_CREDENTIALS";
86a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan            case IN_PROGRESS:
87a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan                return "IN_PROGRESS";
88a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan            case DATA_CONNECTION_LOST:
89a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan                return "DATA_CONNECTION_LOST";
90c87f1e015123d985a37e8ab276e124b62068e793Hung-ying Tyan            case CROSS_DOMAIN_AUTHENTICATION:
91c87f1e015123d985a37e8ab276e124b62068e793Hung-ying Tyan                return "CROSS_DOMAIN_AUTHENTICATION";
92e26eb3274a65c41a6a30bdace1818c5629cca1c8Hung-ying Tyan            case SERVER_UNREACHABLE:
93e26eb3274a65c41a6a30bdace1818c5629cca1c8Hung-ying Tyan                return "SERVER_UNREACHABLE";
94a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan            default:
95a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan                return "UNKNOWN";
96a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan        }
97a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan    }
98a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan
99a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan    private SipErrorCode() {
100a0171082cfc4b860a82dcf5ebbd498b253f1032fHung-ying Tyan    }
1012bd51a23644fa0d5a460a4a939e95d5d4e85b891Hung-ying Tyan}
102