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