Asterisk: Lost Hangup cause

Where are hangup causes? The red color is loss in asterisk.

0 | Valid cause code not yet received
1 | Unallocated (unassigned) number
2 | No route to specified transit network (WAN)
3 | No route to destination
4 | send special information tone
5 | misdialled trunk prefix.
6 | Channel unacceptable
7 | Call awarded and being delivered in an established channel
8 | Prefix 0 dialed but not allowed
9 | Prefix 1 dialed but not allowed
10 | Prefix 1 dialed but not required

11 | More digits received than allowed, call is proceeding
16 | Normal call clearing
17 | User busy
18 | No user responding
19 | no answer from user
21 | Call rejected
22 | Number changed
23 | Reverse charging rejected
24 | Call suspended
25 | Call resumed
26 | Non-selected user clearing

27 | Destination out of order
28 | Invalid number format (incomplete number)
29 | Facility rejected
30 | Response to STATUS ENQUIRY
31 | Normal, unspecified
33 | Circuit out of order
34 | No circuit/channel available
35 | Destination unattainable
37 | Degraded service

38 | Network (WAN) out of order
39 | Transit delay range cannot be achieved
40 | Throughput range cannot be achieved

41 | Temporary failure
42 | Switching equipment congestion
43 | Access information discarded
44 | Requested circuit channel not available
45 | Pre-empted
46 | Precedence call blocked
47 | Resource unavailable - unspecified
49 | Quality of service unavailable

50 | Requested facility not subscribed
51 | Reverse charging not allowed
52 | Outgoing calls barred
53 | Outgoing calls barred within CUG
54 | Incoming calls barred
55 | Incoming calls barred within CUG
56 | Call waiting not subscribed
57 | Bearer capability not authorized
58 | Bearer capability not presently available
63 | Service or option not available, unspecified
65 | Bearer service not implemented
66 | Channel type not implemented
67 | Transit network selection not implemented
68 | Message not implemented

69 | Requested facility not implemented
70 | Only restricted digital information bearer capability is available
79 | Service or option not implemented, unspecified

81 | Invalid call reference value
82 | Identified channel does not exist
83 | A suspended call exists, but this call identity does not
84 | Call identity in use
85 | No call suspended
86 | Call having the requested call identity has been cleared
87 | Called user not member of CUG

88 | Incompatible destination
89 | Non-existent abbreviated address entry
90 | Destination address missing, and direct call not subscribed
91 | Invalid transit network selection (national use)
92 | Invalid facility parameter
93 | Mandatory information element is missing

95 | Invalid message, unspecified
96 | Mandatory information element is missing
97 | Message type non-existent or not implemented
98 | Message not compatible with call state or message type non-existent or not implemented
99 | information element nonexistant or not implemented
100 | Invalid information element contents
101 | Message not compatible with call state
102 | Recovery on timer expiry
103 | parameter non-existent or not implemented - passed on
111 | Protocol error unspecified
127 | Internetworking, unspecified


I think Asterisk have some reason to decide to have not implements these hangup cause. Sound like it no need to use it all? However we can have hangup cause from PRI (E1/T1/J1) lines. (HANGUPCAUSE variable)

Here is my PHP scripts to implement all hangup cause. I use with AGI scripts.

$HANGUPCAUSE_DESCRIPTION = array (
"" => array("", ""),
"0" => array("AST_CAUSE_NOTDEFINED", "Valid cause code not yet received"),
"1" => array("AST_CAUSE_UNALLOCATED", "Unallocated (unassigned) number"),
"2" => array("AST_CAUSE_NO_ROUTE_TRANSIT_NET", "No route to specified transmit network"),
"3" => array("AST_CAUSE_NO_ROUTE_DESTINATION", "No route to destination"),
"6" => array("AST_CAUSE_CHANNEL_UNACCEPTABLE", "Channel unacceptable"),
"7" => array("AST_CAUSE_CALL_AWARDED_DELIVERED", "Call awarded and being delivered in an established channel"),
"8" => array("[not implement]", "Prefix 0 dialed but not allowed"),
"9" => array("[not implement]", "Prefix 1 dialed but not allowed"),
"10" => array("[not implement]", "Prefix 1 dialed but not required"),
"16" => array("AST_CAUSE_NORMAL_CLEARING", "Normal Clearing"),
"17" => array("AST_CAUSE_USER_BUSY", "User busy"),
"18" => array("AST_CAUSE_NO_USER_RESPONSE", "No user responding"),
"19" => array("AST_CAUSE_NO_ANSWER", "User alerting, no answer"),
"21" => array("AST_CAUSE_CALL_REJECTED", "Call Rejected"),
"22" => array("AST_CAUSE_NUMBER_CHANGED", "Number changed"),
"23" => array("[not implement]", "Reverse charging rejected"),
"24" => array("[not implement]", "Call suspended"),
"25" => array("[not implement]", "Call resumed"),
"26" => array("[not implement]", "Non-selected user clearing"),
"27" => array("AST_CAUSE_DESTINATION_OUT_OF_ORDER", "Destination out of order"),
"28" => array("AST_CAUSE_INVALID_NUMBER_FORMAT", "Invalid number format"),
"29" => array("AST_CAUSE_FACILITY_REJECTED", "Facility rejected"),
"30" => array("AST_CAUSE_RESPONSE_TO_STATUS_ENQUIRY", "Response to STATus ENQuiry"),
"31" => array("AST_CAUSE_NORMAL_UNSPECIFIED", "Normal, unspecified"),
"33" => array("[not implement]", "Circuit out of order"),
"34" => array("AST_CAUSE_NORMAL_CIRCUIT_CONGESTION", "Circuit/channel congestion"),
"35" => array("[not implement]", "Destination unattainable"),
"37" => array("[not implement]", "Degraded service"),
"38" => array("AST_CAUSE_NETWORK_OUT_OF_ORDER", "Network out of order"),
"39" => array("[not implement]", "Transit delay range cannot be achieved"),
"40" => array("[not implement]", "Throughput range cannot be achieved"),
"41" => array("AST_CAUSE_NORMAL_TEMPORARY_FAILURE", "Temporary failure"),
"42" => array("AST_CAUSE_SWITCH_CONGESTION", "Switching equipment congestion"),
"43" => array("AST_CAUSE_ACCESS_INFO_DISCARDED", "Access information discarded"),
"44" => array("AST_CAUSE_REQUESTED_CHAN_UNAVAIL", "Requested channel not available"),
"45" => array("AST_CAUSE_PRE_EMPTED", "Pre-empted"),
"46" => array("[not implement]", "Precedence call blocked"),
"47" => array("[not implement]", "Resource unavailable - unspecified"),
"49" => array("[not implement]", "Quality of service unavailable"),
"50" => array("AST_CAUSE_FACILITY_NOT_SUBSCRIBED", "Facility not subscribed"),
"51" => array("[not implement]", "Reverse charging not allowed"),
"52" => array("AST_CAUSE_OUTGOING_CALL_BARRED", "Outgoing call barred"),
"53" => array("[not implement]", "Outgoing calls barred within CUG"),
"54" => array("AST_CAUSE_INCOMING_CALL_BARRED", "Incoming calls barred"),
"55" => array("[not implement]", "Incoming calls barred within CUG"),
"56" => array("[not implement]", "Call waiting not subscribed"),
"57" => array("AST_CAUSE_BEARERCAPABILITY_NOTAUTH", "Bearer capability not authorized"),
"58" => array("AST_CAUSE_BEARERCAPABILITY_NOTAVAIL", "Bearer capability not available"),
"63" => array("[not implement]", "Service or option not availabled, unspecified"),
"65" => array("AST_CAUSE_BEARERCAPABILITY_NOTIMPL", "Bearer capability not implemented"),
"66" => array("AST_CAUSE_CHAN_NOT_IMPLEMENTED", "Channel not implemented"),
"67" => array("[not implement]", "Transit network selection not implemented"),
"68" => array("[not implement]", "Message not implemented"),
"69" => array("AST_CAUSE_FACILITY_NOT_IMPLEMENTED", "Facility not implemented"),
"70" => array("[not implement]", "Only restricted digital information bearer capability is available"),
"79" => array("[not implement]", "Service or option not implemented, unspecified"),
"81" => array("AST_CAUSE_INVALID_CALL_REFERENCE", "Invalid call reference value"),
"82" => array("[not implement]", "Identified channel does not exist"),
"83" => array("[not implement]", "A suspended call exists, but this call identity does no call identity in use"),
"85" => array("[not implement]", "No call suspended"),
"86" => array("[not implement]", "Call having the requested call identity has been cleared"),
"87" => array("[not implement]", "Called user not member of CUG"),
"88" => array("AST_CAUSE_INCOMPATIBLE_DESTINATION", "Incompatible destination"),
"89" => array("[not implement]", "Non-existent abbreviated address entry"),
"90" => array("[not implement]", "Destination address missing, and direct call not subscribed"),
"91" => array("[not implement]", "Invalid transit network selection (national use)"),
"92" => array("[not implement]", "Invalid facility parameter"),
"93" => array("[not implement]", "Mandatory information element is missing"),
"95" => array("AST_CAUSE_INVALID_MSG_UNSPECIFIED", "Invalid message unspecified"),
"96" => array("AST_CAUSE_MANDATORY_IE_MISSING", "Mandatory information element is missing"),
"97" => array("AST_CAUSE_MESSAGE_TYPE_NONEXIST", "Message type nonexist or not implemented"),
"98" => array("AST_CAUSE_WRONG_MESSAGE", "Wrong message - message not compatible with call state or message type non-existent or not implemented"),
"99" => array("AST_CAUSE_IE_NONEXIST", "Information element nonexistant or not implemented"),
"100" => array("AST_CAUSE_INVALID_IE_CONTENTS", "Invalid information element contents"),
"101" => array("AST_CAUSE_WRONG_CALL_STATE", "Message not compatible with call state"),
"102" => array("AST_CAUSE_RECOVERY_ON_TIMER_EXPIRE", "Recover on timer expiry"),
"103" => array("AST_CAUSE_MANDATORY_IE_LENGTH_ERROR", "Mandatory IE length error - parameter non-existent or not implemented - pass on"),
"111" => array("AST_CAUSE_PROTOCOL_ERROR", "Protocol error, unspecified"),
"127" => array("AST_CAUSE_INTERWORKING", "Interworking, unspecified")
);



Links

Comments