From e46bb5f5bc277a6c8a003a3205b6c9c547ed72f1 Mon Sep 17 00:00:00 2001 From: Tilghman Lesher Date: Tue, 8 Jul 2008 20:27:47 +0000 Subject: [PATCH] Cause SIP to return a 480 instead of a 404 when a sip peer exists, but is not registered. (closes issue #12885) Reported by: ibc Patches: 20080701__bug12885__2.diff.txt uploaded by Corydon76 (license 14) Tested by: ibc git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@129149 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_dial.c | 1 + channels/chan_sip.c | 1 + include/asterisk/causes.h | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/app_dial.c b/apps/app_dial.c index b5900b1f25..e5891c4b8a 100644 --- a/apps/app_dial.c +++ b/apps/app_dial.c @@ -341,6 +341,7 @@ static void hanguptree(struct dial_localuser *outgoing, struct ast_channel *exce ast_cdr_failed(chan->cdr); \ numcongestion++; \ break; \ + case AST_CAUSE_NO_ROUTE_DESTINATION: \ case AST_CAUSE_UNREGISTERED: \ if (chan->cdr) \ ast_cdr_failed(chan->cdr); \ diff --git a/channels/chan_sip.c b/channels/chan_sip.c index b2f5fd10bb..4805375572 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -3457,6 +3457,7 @@ static const char *hangup_cause2sip(int cause) case AST_CAUSE_NO_USER_RESPONSE: /* 18 */ return "408 Request Timeout"; case AST_CAUSE_NO_ANSWER: /* 19 */ + case AST_CAUSE_UNREGISTERED: /* 20 */ return "480 Temporarily unavailable"; case AST_CAUSE_CALL_REJECTED: /* 21 */ return "403 Forbidden"; diff --git a/include/asterisk/causes.h b/include/asterisk/causes.h index fc27c79703..d76277d546 100644 --- a/include/asterisk/causes.h +++ b/include/asterisk/causes.h @@ -33,6 +33,7 @@ #define AST_CAUSE_USER_BUSY 17 #define AST_CAUSE_NO_USER_RESPONSE 18 #define AST_CAUSE_NO_ANSWER 19 +#define AST_CAUSE_SUBSCRIBER_ABSENT 20 #define AST_CAUSE_CALL_REJECTED 21 #define AST_CAUSE_NUMBER_CHANGED 22 #define AST_CAUSE_DESTINATION_OUT_OF_ORDER 27 @@ -75,7 +76,7 @@ #define AST_CAUSE_NORMAL AST_CAUSE_NORMAL_CLEARING #define AST_CAUSE_NOANSWER AST_CAUSE_NO_ANSWER #define AST_CAUSE_CONGESTION AST_CAUSE_NORMAL_CIRCUIT_CONGESTION -#define AST_CAUSE_UNREGISTERED AST_CAUSE_NO_ROUTE_DESTINATION +#define AST_CAUSE_UNREGISTERED AST_CAUSE_SUBSCRIBER_ABSENT #define AST_CAUSE_NOTDEFINED 0 #define AST_CAUSE_NOSUCHDRIVER AST_CAUSE_CHAN_NOT_IMPLEMENTED