diff --git a/src/include/switch_types.h b/src/include/switch_types.h index 701a50c717..f0962e040f 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -532,6 +532,55 @@ typedef enum { SWITCH_EVENT_ALL } switch_event_t; + +typedef enum { + SWITCH_CAUSE_UNALLOCATED = 1, + SWITCH_CAUSE_NO_ROUTE_TRANSIT_NET = 2, + SWITCH_CAUSE_NO_ROUTE_DESTINATION = 3, + SWITCH_CAUSE_CHANNEL_UNACCEPTABLE = 6, + SWITCH_CAUSE_CALL_AWARDED_DELIVERED = 7, + SWITCH_CAUSE_NORMAL_CLEARING = 16, + SWITCH_CAUSE_USER_BUSY = 17, + SWITCH_CAUSE_NO_USER_RESPONSE = 18, + SWITCH_CAUSE_NO_ANSWER = 19, + SWITCH_CAUSE_CALL_REJECTED = 21, + SWITCH_CAUSE_NUMBER_CHANGED = 22, + SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER = 27, + SWITCH_CAUSE_INVALID_NUMBER_FORMAT = 28, + SWITCH_CAUSE_FACILITY_REJECTED = 29, + SWITCH_CAUSE_RESPONSE_TO_STATUS_ENQUIRY = 30, + SWITCH_CAUSE_NORMAL_UNSPECIFIED = 31, + SWITCH_CAUSE_NORMAL_CIRCUIT_CONGESTION = 34, + SWITCH_CAUSE_NETWORK_OUT_OF_ORDER = 38, + SWITCH_CAUSE_NORMAL_TEMPORARY_FAILURE = 41, + SWITCH_CAUSE_SWITCH_CONGESTION = 42, + SWITCH_CAUSE_ACCESS_INFO_DISCARDED = 43, + SWITCH_CAUSE_REQUESTED_CHAN_UNAVAIL = 44, + SWITCH_CAUSE_PRE_EMPTED = 45, + SWITCH_CAUSE_FACILITY_NOT_SUBSCRIBED = 50, + SWITCH_CAUSE_OUTGOING_CALL_BARRED = 52, + SWITCH_CAUSE_INCOMING_CALL_BARRED = 54, + SWITCH_CAUSE_BEARERCAPABILITY_NOTAUTH = 57, + SWITCH_CAUSE_BEARERCAPABILITY_NOTAVAIL = 58, + SWITCH_CAUSE_BEARERCAPABILITY_NOTIMPL = 65, + SWITCH_CAUSE_CHAN_NOT_IMPLEMENTED = 66, + SWITCH_CAUSE_FACILITY_NOT_IMPLEMENTED = 69, + SWITCH_CAUSE_INVALID_CALL_REFERENCE = 81, + SWITCH_CAUSE_INCOMPATIBLE_DESTINATION = 88, + SWITCH_CAUSE_INVALID_MSG_UNSPECIFIED = 95, + SWITCH_CAUSE_MANDATORY_IE_MISSING = 96, + SWITCH_CAUSE_MESSAGE_TYPE_NONEXIST = 97, + SWITCH_CAUSE_WRONG_MESSAGE = 98, + SWITCH_CAUSE_IE_NONEXIST = 99, + SWITCH_CAUSE_INVALID_IE_CONTENTS = 100, + SWITCH_CAUSE_WRONG_CALL_STATE = 101, + SWITCH_CAUSE_RECOVERY_ON_TIMER_EXPIRE = 102, + SWITCH_CAUSE_MANDATORY_IE_LENGTH_ERROR = 103, + SWITCH_CAUSE_PROTOCOL_ERROR = 111, + SWITCH_CAUSE_INTERWORKING = 127 +} switch_call_cause_t; + + typedef uint8_t switch_payload_t; typedef struct switch_rtp switch_rtp; typedef struct switch_core_session_message switch_core_session_message; diff --git a/src/switch_channel.c b/src/switch_channel.c index 1d179a8078..d41b9aed6f 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -47,6 +47,7 @@ struct switch_channel { switch_hash *variables; switch_channel_timetable_t times; void *private_info; + switch_call_cause_t hangup_cause; int freq; int bits; int channels;