123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- /*
- * This file is part of the Sofia-SIP package
- *
- * Copyright (C) 2005 Nokia Corporation.
- *
- * Contact: Pekka Pessi <pekka.pessi@nokia.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA
- *
- */
- /**@ingroup sip_status_codes
- * @CFILE sip_status.c
- *
- * SIP status codes and standard phrases.
- *
- * @author Pekka Pessi <Pekka.Pessi@nokia.com>.
- *
- * @date Created: Fri Aug 11 18:03:33 2000 ppessi
- */
- #include "config.h"
- #include <stddef.h>
- #include <sofia-sip/sip_status.h>
- char const
- sip_100_Trying[] = "Trying",
- sip_180_Ringing[] = "Ringing",
- sip_181_Call_is_being_forwarded[] = "Call Is Being Forwarded",
- sip_182_Queued[] = "Queued",
- sip_183_Session_progress[] = "Session Progress",
- sip_200_OK[] = "OK",
- sip_202_Accepted[] = "Accepted",
- sip_300_Multiple_choices[] = "Multiple Choices",
- sip_301_Moved_permanently[] = "Moved Permanently",
- sip_302_Moved_temporarily[] = "Moved Temporarily",
- sip_305_Use_proxy[] = "Use Proxy",
- sip_380_Alternative_service[] = "Alternative Service",
- sip_400_Bad_request[] = "Bad Request",
- sip_401_Unauthorized[] = "Unauthorized",
- sip_402_Payment_required[] = "Payment Required",
- sip_403_Forbidden[] = "Forbidden",
- sip_403_Stale_date[] = "Stale Date",
- sip_404_Not_found[] = "Not Found",
- sip_405_Method_not_allowed[] = "Method Not Allowed",
- sip_406_Not_acceptable[] = "Not Acceptable",
- sip_407_Proxy_auth_required[] = "Proxy Authentication Required",
- sip_408_Request_timeout[] = "Request Timeout",
- sip_409_Conflict[] = "Conflict",
- sip_410_Gone[] = "Gone",
- sip_411_Length_required[] = "Length Required",
- sip_412_Precondition_failed[] = "Precondition Failed",
- sip_413_Request_too_large[] = "Request Entity Too Large",
- sip_414_Request_uri_too_long[] = "Request-URI Too Long",
- sip_415_Unsupported_media[] = "Unsupported Media Type",
- sip_416_Unsupported_uri[] = "Unsupported URI Scheme",
- sip_417_Resource_priority[]= "Unknown Resource-Priority",
- sip_420_Bad_extension[] = "Bad Extension",
- sip_421_Extension_required[] = "Extension Required",
- sip_422_Session_timer[] = "Session Interval Too Small",
- sip_423_Interval_too_brief[] = "Interval Too Brief",
- sip_428_Use_identity_header[] = "Use Identity Header",
- sip_436_Bad_identity_info[] = "Bad Identity Info",
- sip_437_Unsupported_credential[] = "Unsupported Credential",
- sip_438_Invalid_identity_header[] = "Invalid Identity Header",
- sip_439_Stale_date[] = "Stale Date",
- sip_480_Temporarily_unavailable[] = "Temporarily Unavailable",
- sip_481_No_transaction[] = "Call/Transaction Does Not Exist",
- sip_482_Loop_detected[] = "Loop Detected",
- sip_483_Too_many_hops[] = "Too Many Hops",
- sip_484_Address_incomplete[] = "Address Incomplete",
- sip_485_Ambiguous[] = "Ambiguous",
- sip_486_Busy_here[] = "Busy Here",
- sip_487_Request_terminated[] = "Request Terminated",
- sip_488_Not_acceptable[] = "Not Acceptable Here",
- sip_489_Bad_event[] = "Bad Event",
- sip_490_Request_updated[] = "Request Updated",
- sip_491_Request_pending[] = "Request Pending",
- sip_493_Undecipherable[] = "Undecipherable",
- sip_494_Secagree_required [] = "Security Agreement Required",
- sip_500_Internal_server_error[] = "Internal Server Error",
- sip_501_Not_implemented[] = "Not Implemented",
- sip_502_Bad_gateway[] = "Bad Gateway",
- sip_503_Service_unavailable[] = "Service Unavailable",
- sip_504_Gateway_time_out[] = "Gateway Time-out",
- sip_505_Version_not_supported[] = "Version Not Supported",
- sip_513_Message_too_large[] = "Message Too Large",
- sip_580_Precondition[] = "Precondition Failure",
- sip_600_Busy_everywhere[] = "Busy Everywhere",
- sip_603_Decline[] = "Decline",
- sip_604_Does_not_exist_anywhere[] = "Does Not Exist Anywhere",
- sip_606_Not_acceptable[] = "Not Acceptable",
- sip_607_Unwanted[] = "Unwanted",
- sip_687_Dialog_terminated[] = "Dialog Terminated"
- ;
- /** Convert a SIP status code to a status phrase.
- *
- * Convert a SIP status code to a status phrase. If the status code is not
- * in the range 100..699, NULL is returned. If the status code is not known,
- * empty string "" is returned.
- *
- * @param status well-known status code in range 100..699
- *
- * @return
- * A response message corresponding to status code, or NULL upon an error.
- */
- char const *sip_status_phrase(int status)
- {
- if (status < 100 || status > 699)
- return NULL;
- switch (status) {
- case 100: return sip_100_Trying;
- case 180: return sip_180_Ringing;
- case 181: return sip_181_Call_is_being_forwarded;
- case 182: return sip_182_Queued;
- case 183: return sip_183_Session_progress;
- case 200: return sip_200_OK;
- case 202: return sip_202_Accepted;
- case 300: return sip_300_Multiple_choices;
- case 301: return sip_301_Moved_permanently;
- case 302: return sip_302_Moved_temporarily;
- case 305: return sip_305_Use_proxy;
- case 380: return sip_380_Alternative_service;
- case 400: return sip_400_Bad_request;
- case 401: return sip_401_Unauthorized;
- case 402: return sip_402_Payment_required;
- case 403: return sip_403_Forbidden;
- case 404: return sip_404_Not_found;
- case 405: return sip_405_Method_not_allowed;
- case 406: return sip_406_Not_acceptable;
- case 407: return sip_407_Proxy_auth_required;
- case 408: return sip_408_Request_timeout;
- case 409: return sip_409_Conflict;
- case 410: return sip_410_Gone;
- case 411: return sip_411_Length_required;
- case 412: return sip_412_Precondition_failed;
- case 413: return sip_413_Request_too_large;
- case 414: return sip_414_Request_uri_too_long;
- case 415: return sip_415_Unsupported_media;
- case 416: return sip_416_Unsupported_uri;
- case 417: return sip_417_Resource_priority;
- case 420: return sip_420_Bad_extension;
- case 421: return sip_421_Extension_required;
- case 422: return sip_422_Session_timer;
- case 423: return sip_423_Interval_too_brief;
- case 428: return sip_428_Use_identity_header;
- case 436: return sip_436_Bad_identity_info;
- case 437: return sip_437_Unsupported_credential;
- case 438: return sip_438_Invalid_identity_header;
- case 439: return sip_439_Stale_date;
- case 480: return sip_480_Temporarily_unavailable;
- case 481: return sip_481_No_transaction;
- case 482: return sip_482_Loop_detected;
- case 483: return sip_483_Too_many_hops;
- case 484: return sip_484_Address_incomplete;
- case 485: return sip_485_Ambiguous;
- case 486: return sip_486_Busy_here;
- case 487: return sip_487_Request_terminated;
- case 488: return sip_488_Not_acceptable;
- case 489: return sip_489_Bad_event;
- case 490: return sip_490_Request_updated;
- case 491: return sip_491_Request_pending;
- case 493: return sip_493_Undecipherable;
- case 494: return sip_494_Secagree_required;
- case 500: return sip_500_Internal_server_error;
- case 501: return sip_501_Not_implemented;
- case 502: return sip_502_Bad_gateway;
- case 503: return sip_503_Service_unavailable;
- case 504: return sip_504_Gateway_time_out;
- case 505: return sip_505_Version_not_supported;
- case 513: return sip_513_Message_too_large;
- case 580: return sip_580_Precondition;
- case 600: return sip_600_Busy_everywhere;
- case 603: return sip_603_Decline;
- case 604: return sip_604_Does_not_exist_anywhere;
- case 606: return sip_606_Not_acceptable;
- case 607: return sip_607_Unwanted;
- case 687: return sip_687_Dialog_terminated;
- }
- return "";
- }
|