123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544 |
- /*
- * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
- * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
- #ifndef __PJSIP_SIP_ERRNO_H__
- #define __PJSIP_SIP_ERRNO_H__
- /**
- * @file sip_errno.h
- * @brief PJSIP Specific Error Code
- */
- #include <pj/errno.h>
- PJ_BEGIN_DECL
- /**
- * @defgroup PJSIP_CORE_ERRNO PJSIP Specific Error Code
- * @ingroup PJSIP_BASE
- * @brief PJSIP specific error constants.
- * @{
- */
- /*
- * PJSIP error codes occupies 170000 - 219000, and mapped as follows:
- * - 170100 - 170799: mapped to SIP status code in response msg.
- * - 171000 - 171999: mapped to errors generated from PJSIP core.
- */
- /**
- * Start of error code relative to PJ_ERRNO_START_USER.
- */
- #define PJSIP_ERRNO_START (PJ_ERRNO_START_USER)
- /**
- * Create error value from SIP status code.
- * @param code SIP status code.
- * @return Error code in pj_status_t namespace.
- */
- #define PJSIP_ERRNO_FROM_SIP_STATUS(code) (PJSIP_ERRNO_START+code)
- /**
- * Get SIP status code from error value.
- * If conversion to SIP status code is not available, a SIP status code
- * 599 will be returned.
- *
- * @param status Error code in pj_status_t namespace.
- * @return SIP status code.
- */
- #define PJSIP_ERRNO_TO_SIP_STATUS(status) \
- ((status>=PJSIP_ERRNO_FROM_SIP_STATUS(100) && \
- status<PJSIP_ERRNO_FROM_SIP_STATUS(800)) ? \
- status-PJSIP_ERRNO_FROM_SIP_STATUS(0) : 599)
- /**
- * Start of PJSIP generated error code values.
- */
- #define PJSIP_ERRNO_START_PJSIP (PJSIP_ERRNO_START + 1000)
- /************************************************************
- * GENERIC/GENERAL SIP ERRORS
- ***********************************************************/
- /**
- * @hideinitializer
- * SIP object is busy.
- */
- #define PJSIP_EBUSY (PJSIP_ERRNO_START_PJSIP + 1) /* 171001 */
- /**
- * @hideinitializer
- * SIP object with the same type already exists.
- */
- #define PJSIP_ETYPEEXISTS (PJSIP_ERRNO_START_PJSIP + 2) /* 171002 */
- /**
- * @hideinitializer
- * SIP stack is shutting down.
- */
- #define PJSIP_ESHUTDOWN (PJSIP_ERRNO_START_PJSIP + 3) /* 171003 */
- /**
- * @hideinitializer
- * SIP object is not initialized.
- */
- #define PJSIP_ENOTINITIALIZED (PJSIP_ERRNO_START_PJSIP + 4) /* 171004 */
- /**
- * @hideinitializer
- * Missing route set (for tel: URI)
- */
- #define PJSIP_ENOROUTESET (PJSIP_ERRNO_START_PJSIP + 5) /* 171005 */
- /************************************************************
- * MESSAGING ERRORS
- ***********************************************************/
- /**
- * @hideinitializer
- * General invalid message error (e.g. syntax error)
- */
- #define PJSIP_EINVALIDMSG (PJSIP_ERRNO_START_PJSIP + 20) /* 171020 */
- /**
- * @hideinitializer
- * Expecting request message.
- */
- #define PJSIP_ENOTREQUESTMSG (PJSIP_ERRNO_START_PJSIP + 21) /* 171021 */
- /**
- * @hideinitializer
- * Expecting response message.
- */
- #define PJSIP_ENOTRESPONSEMSG (PJSIP_ERRNO_START_PJSIP + 22) /* 171022 */
- /**
- * @hideinitializer
- * Message too long. See also PJSIP_ERXOVERFLOW.
- */
- #define PJSIP_EMSGTOOLONG (PJSIP_ERRNO_START_PJSIP + 23) /* 171023 */
- /**
- * @hideinitializer
- * Message not completely received.
- */
- #define PJSIP_EPARTIALMSG (PJSIP_ERRNO_START_PJSIP + 24) /* 171024 */
- /**
- * @hideinitializer
- * Status code is invalid.
- */
- #define PJSIP_EINVALIDSTATUS (PJSIP_ERRNO_START_PJSIP + 30) /* 171030 */
- /**
- * @hideinitializer
- * General Invalid URI error.
- */
- #define PJSIP_EINVALIDURI (PJSIP_ERRNO_START_PJSIP + 39) /* 171039 */
- /**
- * @hideinitializer
- * Unsupported URL scheme.
- */
- #define PJSIP_EINVALIDSCHEME (PJSIP_ERRNO_START_PJSIP + 40) /* 171040 */
- /**
- * @hideinitializer
- * Missing Request-URI.
- */
- #define PJSIP_EMISSINGREQURI (PJSIP_ERRNO_START_PJSIP + 41) /* 171041 */
- /**
- * @hideinitializer
- * Invalid request URI.
- */
- #define PJSIP_EINVALIDREQURI (PJSIP_ERRNO_START_PJSIP + 42) /* 171042 */
- /**
- * @hideinitializer
- * URI is too long.
- */
- #define PJSIP_EURITOOLONG (PJSIP_ERRNO_START_PJSIP + 43) /* 171043 */
- /**
- * @hideinitializer
- * Missing required header(s).
- */
- #define PJSIP_EMISSINGHDR (PJSIP_ERRNO_START_PJSIP + 50) /* 171050 */
- /**
- * @hideinitializer
- * Invalid header field.
- */
- #define PJSIP_EINVALIDHDR (PJSIP_ERRNO_START_PJSIP + 51) /* 171051 */
- /**
- * @hideinitializer
- * Invalid Via header in response (sent-by, etc).
- */
- #define PJSIP_EINVALIDVIA (PJSIP_ERRNO_START_PJSIP + 52) /* 171052 */
- /**
- * @hideinitializer
- * Multiple Via headers in response.
- */
- #define PJSIP_EMULTIPLEVIA (PJSIP_ERRNO_START_PJSIP + 53) /* 171053 */
- /**
- * @hideinitializer
- * Missing message body.
- */
- #define PJSIP_EMISSINGBODY (PJSIP_ERRNO_START_PJSIP + 54) /* 171054 */
- /**
- * @hideinitializer
- * Invalid/unexpected method.
- */
- #define PJSIP_EINVALIDMETHOD (PJSIP_ERRNO_START_PJSIP + 55) /* 171055 */
- /************************************************************
- * TRANSPORT ERRORS
- ***********************************************************/
- /**
- * @hideinitializer
- * Unsupported transport type.
- */
- #define PJSIP_EUNSUPTRANSPORT (PJSIP_ERRNO_START_PJSIP + 60) /* 171060 */
- /**
- * @hideinitializer
- * Buffer is being sent, operation still pending.
- */
- #define PJSIP_EPENDINGTX (PJSIP_ERRNO_START_PJSIP + 61) /* 171061 */
- /**
- * @hideinitializer
- * Rx buffer overflow. See also PJSIP_EMSGTOOLONG.
- */
- #define PJSIP_ERXOVERFLOW (PJSIP_ERRNO_START_PJSIP + 62) /* 171062 */
- /**
- * @hideinitializer
- * This is not really an error, it just informs application that
- * transmit data has been deleted on return of pjsip_tx_data_dec_ref().
- */
- #define PJSIP_EBUFDESTROYED (PJSIP_ERRNO_START_PJSIP + 63) /* 171063 */
- /**
- * @hideinitializer
- * Unsuitable transport selected. This error occurs when application
- * has explicitly requested to use a particular transport/listener,
- * but the selected transport is not suitable to send request to
- * the specified destination.
- */
- #define PJSIP_ETPNOTSUITABLE (PJSIP_ERRNO_START_PJSIP + 64) /* 171064 */
- /**
- * @hideinitializer
- * Transport not available. This error occurs for example when the SIP stack
- * is trying to use a SIP transport while the transport is being paused by
- * application.
- */
- #define PJSIP_ETPNOTAVAIL (PJSIP_ERRNO_START_PJSIP + 65) /* 171065 */
- /************************************************************
- * TRANSACTION ERRORS
- ***********************************************************/
- /**
- * @hideinitializer
- * Transaction has just been destroyed.
- */
- #define PJSIP_ETSXDESTROYED (PJSIP_ERRNO_START_PJSIP + 70) /* 171070 */
- /**
- * @hideinitializer
- * No transaction.
- */
- #define PJSIP_ENOTSX (PJSIP_ERRNO_START_PJSIP + 71) /* 171071 */
- /************************************************************
- * URI COMPARISON RESULTS
- ***********************************************************/
- /**
- * @hideinitializer
- * Scheme mismatch.
- */
- #define PJSIP_ECMPSCHEME (PJSIP_ERRNO_START_PJSIP + 80) /* 171080 */
- /**
- * @hideinitializer
- * User part mismatch.
- */
- #define PJSIP_ECMPUSER (PJSIP_ERRNO_START_PJSIP + 81) /* 171081 */
- /**
- * @hideinitializer
- * Password part mismatch.
- */
- #define PJSIP_ECMPPASSWD (PJSIP_ERRNO_START_PJSIP + 82) /* 171082 */
- /**
- * @hideinitializer
- * Host part mismatch.
- */
- #define PJSIP_ECMPHOST (PJSIP_ERRNO_START_PJSIP + 83) /* 171083 */
- /**
- * @hideinitializer
- * Port part mismatch.
- */
- #define PJSIP_ECMPPORT (PJSIP_ERRNO_START_PJSIP + 84) /* 171084 */
- /**
- * @hideinitializer
- * Transport parameter part mismatch.
- */
- #define PJSIP_ECMPTRANSPORTPRM (PJSIP_ERRNO_START_PJSIP + 85) /* 171085 */
- /**
- * @hideinitializer
- * TTL parameter part mismatch.
- */
- #define PJSIP_ECMPTTLPARAM (PJSIP_ERRNO_START_PJSIP + 86) /* 171086 */
- /**
- * @hideinitializer
- * User parameter part mismatch.
- */
- #define PJSIP_ECMPUSERPARAM (PJSIP_ERRNO_START_PJSIP + 87) /* 171087 */
- /**
- * @hideinitializer
- * Method parameter part mismatch.
- */
- #define PJSIP_ECMPMETHODPARAM (PJSIP_ERRNO_START_PJSIP + 88) /* 171088 */
- /**
- * @hideinitializer
- * Maddr parameter part mismatch.
- */
- #define PJSIP_ECMPMADDRPARAM (PJSIP_ERRNO_START_PJSIP + 89) /* 171089 */
- /**
- * @hideinitializer
- * Parameter part in other_param mismatch.
- */
- #define PJSIP_ECMPOTHERPARAM (PJSIP_ERRNO_START_PJSIP + 90) /* 171090 */
- /**
- * @hideinitializer
- * Parameter part in header_param mismatch.
- */
- #define PJSIP_ECMPHEADERPARAM (PJSIP_ERRNO_START_PJSIP + 91) /* 171091 */
- /************************************************************
- * AUTHENTICATION FRAMEWORK
- ***********************************************************/
- /**
- * @hideinitializer
- * Credential failed to authenticate. For this failure, right credential
- * for the realm has been found and used to authenticate against the challenge,
- * but the server has rejected the authorization request with 401/407 response
- * (either with no stale parameter or with "stale=false" parameter). In most
- * cases, this indicates that the username/password combination is incorrect.
- */
- #define PJSIP_EFAILEDCREDENTIAL (PJSIP_ERRNO_START_PJSIP + 100) /* 171100 */
- /**
- * @hideinitializer
- * No suitable credential is found to authenticate the request against
- * the received authentication challenge in 401/407 response. This often
- * is caused by different realm supplied in the credential than the realm
- * found in the challenge.
- */
- #define PJSIP_ENOCREDENTIAL (PJSIP_ERRNO_START_PJSIP + 101) /* 171101 */
- /**
- * @hideinitializer
- * Invalid/unsupported algorithm.
- */
- #define PJSIP_EINVALIDALGORITHM (PJSIP_ERRNO_START_PJSIP + 102) /* 171102 */
- /**
- * @hideinitializer
- * Invalid/unsupported qop.
- */
- #define PJSIP_EINVALIDQOP (PJSIP_ERRNO_START_PJSIP + 103) /* 171103 */
- /**
- * @hideinitializer
- * Invalid/unsupported authentication scheme.
- */
- #define PJSIP_EINVALIDAUTHSCHEME (PJSIP_ERRNO_START_PJSIP + 104)/* 171104 */
- /**
- * @hideinitializer
- * No previous challenge.
- */
- #define PJSIP_EAUTHNOPREVCHAL (PJSIP_ERRNO_START_PJSIP + 105) /* 171105 */
- /**
- * @hideinitializer
- * No authorization is found.
- */
- #define PJSIP_EAUTHNOAUTH (PJSIP_ERRNO_START_PJSIP + 106) /* 171106 */
- /**
- * @hideinitializer
- * Account not found.
- */
- #define PJSIP_EAUTHACCNOTFOUND (PJSIP_ERRNO_START_PJSIP + 107) /* 171107 */
- /**
- * @hideinitializer
- * Account is disabled.
- */
- #define PJSIP_EAUTHACCDISABLED (PJSIP_ERRNO_START_PJSIP + 108) /* 171108 */
- /**
- * @hideinitializer
- * Invalid realm.
- */
- #define PJSIP_EAUTHINVALIDREALM (PJSIP_ERRNO_START_PJSIP + 109) /* 171109 */
- /**
- * @hideinitializer
- * Invalid digest.
- */
- #define PJSIP_EAUTHINVALIDDIGEST (PJSIP_ERRNO_START_PJSIP+110) /* 171110 */
- /**
- * @hideinitializer
- * Maximum number of stale retries exceeded. This happens when server
- * keeps rejecting our authorization request with stale=true.
- */
- #define PJSIP_EAUTHSTALECOUNT (PJSIP_ERRNO_START_PJSIP + 111) /* 171111 */
- /**
- * @hideinitializer
- * Invalid nonce value in the challenge.
- */
- #define PJSIP_EAUTHINNONCE (PJSIP_ERRNO_START_PJSIP + 112) /* 171112 */
- /**
- * @hideinitializer
- * Invalid AKA credential.
- */
- #define PJSIP_EAUTHINAKACRED (PJSIP_ERRNO_START_PJSIP + 113) /* 171113 */
- /**
- * No challenge is found in the challenge.
- */
- #define PJSIP_EAUTHNOCHAL (PJSIP_ERRNO_START_PJSIP + 114) /* 171114 */
- /************************************************************
- * UA AND DIALOG ERRORS
- ***********************************************************/
- /**
- * @hideinitializer
- * Missing From/To tag.
- */
- #define PJSIP_EMISSINGTAG (PJSIP_ERRNO_START_PJSIP+120) /* 171120 */
- /**
- * @hideinitializer
- * Expecting REFER method
- */
- #define PJSIP_ENOTREFER (PJSIP_ERRNO_START_PJSIP+121) /* 171121 */
- /**
- * @hideinitializer
- * Not associated with REFER subscription
- */
- #define PJSIP_ENOREFERSESSION (PJSIP_ERRNO_START_PJSIP+122) /* 171122 */
- /************************************************************
- * INVITE SESSIONS ERRORS
- ***********************************************************/
- /**
- * @hideinitializer
- * Session already terminated.
- */
- #define PJSIP_ESESSIONTERMINATED (PJSIP_ERRNO_START_PJSIP+140) /* 171140 */
- /**
- * @hideinitializer
- * Invalid session state for the specified operation.
- */
- #define PJSIP_ESESSIONSTATE (PJSIP_ERRNO_START_PJSIP+141) /* 171141 */
- /**
- * @hideinitializer
- * The feature being requested requires the use of secure session or
- * transport.
- */
- #define PJSIP_ESESSIONINSECURE (PJSIP_ERRNO_START_PJSIP+142) /* 171142 */
- /************************************************************
- * TLS TRANSPORT ERRORS
- ***********************************************************/
- /**
- * @hideinitializer
- * Unknown TLS error
- */
- #define PJSIP_TLS_EUNKNOWN (PJSIP_ERRNO_START_PJSIP+160) /* 171160 */
- /**
- * @hideinitializer
- * Invalid SSL protocol method.
- */
- #define PJSIP_TLS_EINVMETHOD (PJSIP_ERRNO_START_PJSIP+161) /* 171161 */
- /**
- * @hideinitializer
- * Error loading/verifying SSL CA list file.
- */
- #define PJSIP_TLS_ECACERT (PJSIP_ERRNO_START_PJSIP+162) /* 171162 */
- /**
- * @hideinitializer
- * Error loading SSL certificate chain file.
- */
- #define PJSIP_TLS_ECERTFILE (PJSIP_ERRNO_START_PJSIP+163) /* 171163 */
- /**
- * @hideinitializer
- * Error adding private key from SSL certificate file.
- */
- #define PJSIP_TLS_EKEYFILE (PJSIP_ERRNO_START_PJSIP+164) /* 171164 */
- /**
- * @hideinitializer
- * Error setting SSL cipher list.
- */
- #define PJSIP_TLS_ECIPHER (PJSIP_ERRNO_START_PJSIP+165) /* 171165 */
- /**
- * @hideinitializer
- * Error creating SSL context.
- */
- #define PJSIP_TLS_ECTX (PJSIP_ERRNO_START_PJSIP+166) /* 171166 */
- /**
- * @hideinitializer
- * Error creating SSL connection object.
- */
- #define PJSIP_TLS_ESSLCONN (PJSIP_ERRNO_START_PJSIP+167) /* 171167 */
- /**
- * @hideinitializer
- * Unknown error when performing SSL connect().
- */
- #define PJSIP_TLS_ECONNECT (PJSIP_ERRNO_START_PJSIP+168) /* 171168 */
- /**
- * @hideinitializer
- * Unknown error when performing SSL accept().
- */
- #define PJSIP_TLS_EACCEPT (PJSIP_ERRNO_START_PJSIP+169) /* 171169 */
- /**
- * @hideinitializer
- * Unknown error when sending SSL data
- */
- #define PJSIP_TLS_ESEND (PJSIP_ERRNO_START_PJSIP+170) /* 171170 */
- /**
- * @hideinitializer
- * Unknown error when reading SSL data
- */
- #define PJSIP_TLS_EREAD (PJSIP_ERRNO_START_PJSIP+171) /* 171171 */
- /**
- * @hideinitializer
- * SSL negotiation has exceeded the maximum configured timeout.
- */
- #define PJSIP_TLS_ETIMEDOUT (PJSIP_ERRNO_START_PJSIP+172) /* 171172 */
- /**
- * @hideinitializer
- * SSL certificate verification error.
- */
- #define PJSIP_TLS_ECERTVERIF (PJSIP_ERRNO_START_PJSIP+173) /* 171173 */
- /**
- * Get error message for the specified error code. Note that this
- * function is only able to decode PJSIP specific error code.
- * Application should use pj_strerror(), which should be able to
- * decode all error codes belonging to all subsystems (e.g. pjlib,
- * pjmedia, pjsip, etc).
- *
- * @param status The error code.
- * @param buffer The buffer where to put the error message.
- * @param bufsize Size of the buffer.
- *
- * @return The error message as NULL terminated string,
- * wrapped with pj_str_t.
- */
- PJ_DECL(pj_str_t) pjsip_strerror(pj_status_t status,
- char *buffer, pj_size_t bufsize);
- PJ_END_DECL
- /**
- * @}
- */
- #endif /* __PJSIP_SIP_ERRNO_H__ */
|