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"
;
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_graceful_terminate_usage = 0;
return 0;
+
+ case 607: /** @par 607 Unwanted
+
+ This response is similar to 603, except it informs the caller
+ that the call is unwanted and may be blacklisted. Added by
+ RFC-8197
+ */
+ *return_graceful_terminate_usage = 0;
+ return 0;
}
/* Do not change graceful_terminate */
#define SIP_604_DOES_NOT_EXIST_ANYWHERE 604, sip_604_Does_not_exist_anywhere
/** 606 Not Acceptable @HIDE */
#define SIP_606_NOT_ACCEPTABLE 606, sip_606_Not_acceptable
+/** 607 Unwanted @HIDE */
+#define SIP_607_UNWANTED 607, sip_607_Unwanted
/** 687 Dialog terminated @HIDE */
#define SIP_687_DIALOG_TERMINATED 687, sip_687_Dialog_terminated
SOFIAPUBVAR char const sip_603_Decline[];
SOFIAPUBVAR char const sip_604_Does_not_exist_anywhere[];
SOFIAPUBVAR char const sip_606_Not_acceptable[];
+SOFIAPUBVAR char const sip_607_Unwanted[];
SOFIAPUBVAR char const sip_687_Dialog_terminated[];
SOFIA_END_DECLS
{ SIP_603_DECLINE },
{ SIP_604_DOES_NOT_EXIST_ANYWHERE },
{ SIP_606_NOT_ACCEPTABLE },
+ { SIP_607_UNWANTED },
{ 0, NULL }
};
int i;
SWITCH_CAUSE_INVALID_PROFILE = 611,
SWITCH_CAUSE_NO_PICKUP = 612,
SWITCH_CAUSE_SRTP_READ_ERROR = 613,
- SWITCH_CAUSE_BOWOUT = 614
+ SWITCH_CAUSE_BOWOUT = 614,
+ SWITCH_CAUSE_BUSY_EVERYWHERE = 615,
+ SWITCH_CAUSE_DECLINE = 616,
+ SWITCH_CAUSE_DOES_NOT_EXIST_ANYWHERE = 617,
+ SWITCH_CAUSE_NOT_ACCEPTABLE = 618,
+ SWITCH_CAUSE_UNWANTED = 619
} switch_call_cause_t;
typedef enum {
return 487;
case SWITCH_CAUSE_EXCHANGE_ROUTING_ERROR:
return 483;
+ /* Custom mappings not part of RFC */
+ case SWITCH_CAUSE_BUSY_EVERYWHERE:
+ return 600;
+ case SWITCH_CAUSE_DECLINE:
+ return 603;
+ case SWITCH_CAUSE_DOES_NOT_EXIST_ANYWHERE:
+ return 604;
+ case SWITCH_CAUSE_NOT_ACCEPTABLE:
+ return 606;
+ case SWITCH_CAUSE_UNWANTED:
+ return 607;
default:
return 480;
}
{"NO_PICKUP", SWITCH_CAUSE_NO_PICKUP},
{"SRTP_READ_ERROR", SWITCH_CAUSE_SRTP_READ_ERROR},
{"BOWOUT", SWITCH_CAUSE_BOWOUT},
+ {"BUSY_EVERYWHERE", SWITCH_CAUSE_BUSY_EVERYWHERE},
+ {"DECLINE", SWITCH_CAUSE_DECLINE},
+ {"DOES_NOT_EXIST_ANYWHERE", SWITCH_CAUSE_DOES_NOT_EXIST_ANYWHERE},
+ {"UNWANTED", SWITCH_CAUSE_UNWANTED},
{NULL, 0}
};