Asterisk hangup code: Difference between revisions
Jump to navigation
Jump to search
(→Basic) |
(→Retry) |
||
| Line 73: | Line 73: | ||
== Retry == | == Retry == | ||
Dialing 시도가 실패할 경우, 리턴 코드에 맞춰 재시도를 해야 할 경우가 있다. | Dialing 시도가 실패할 경우, 리턴 코드에 맞춰 재시도를 해야 할 경우가 있다. | ||
임의로 만든 Retry table. 아직은 사용하지 말 것. | |||
<pre> | <pre> | ||
Revision as of 08:20, 15 April 2019
Overview
Asterisk hangup code 내용 정리.
Basic
Hangup cause 코드 정리. Asterisk 는 Hangup code로 ITU-T Q.931 을 준수한다. Q.931과 SIP 코드와 매핑을 하기위해서는 RFC 3398 을 참조하면 된다.
/*! \name Causes for disconnection (from Q.850/Q.931)
* These are the internal cause codes used in Asterisk.
* \ref AstCauses
*/
/*@{ */
#define AST_CAUSE_UNALLOCATED 1
#define AST_CAUSE_NO_ROUTE_TRANSIT_NET 2
#define AST_CAUSE_NO_ROUTE_DESTINATION 3
#define AST_CAUSE_MISDIALLED_TRUNK_PREFIX 5
#define AST_CAUSE_CHANNEL_UNACCEPTABLE 6
#define AST_CAUSE_CALL_AWARDED_DELIVERED 7
#define AST_CAUSE_PRE_EMPTED 8
#define AST_CAUSE_NUMBER_PORTED_NOT_HERE 14
#define AST_CAUSE_NORMAL_CLEARING 16
#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_REDIRECTED_TO_NEW_DESTINATION 23
#define AST_CAUSE_ANSWERED_ELSEWHERE 26
#define AST_CAUSE_DESTINATION_OUT_OF_ORDER 27
#define AST_CAUSE_INVALID_NUMBER_FORMAT 28
#define AST_CAUSE_FACILITY_REJECTED 29
#define AST_CAUSE_RESPONSE_TO_STATUS_ENQUIRY 30
#define AST_CAUSE_NORMAL_UNSPECIFIED 31
#define AST_CAUSE_NORMAL_CIRCUIT_CONGESTION 34
#define AST_CAUSE_NETWORK_OUT_OF_ORDER 38
#define AST_CAUSE_NORMAL_TEMPORARY_FAILURE 41
#define AST_CAUSE_SWITCH_CONGESTION 42
#define AST_CAUSE_ACCESS_INFO_DISCARDED 43
#define AST_CAUSE_REQUESTED_CHAN_UNAVAIL 44
#define AST_CAUSE_FACILITY_NOT_SUBSCRIBED 50
#define AST_CAUSE_OUTGOING_CALL_BARRED 52
#define AST_CAUSE_INCOMING_CALL_BARRED 54
#define AST_CAUSE_BEARERCAPABILITY_NOTAUTH 57
#define AST_CAUSE_BEARERCAPABILITY_NOTAVAIL 58
#define AST_CAUSE_BEARERCAPABILITY_NOTIMPL 65
#define AST_CAUSE_CHAN_NOT_IMPLEMENTED 66
#define AST_CAUSE_FACILITY_NOT_IMPLEMENTED 69
#define AST_CAUSE_INVALID_CALL_REFERENCE 81
#define AST_CAUSE_INCOMPATIBLE_DESTINATION 88
#define AST_CAUSE_INVALID_MSG_UNSPECIFIED 95
#define AST_CAUSE_MANDATORY_IE_MISSING 96
#define AST_CAUSE_MESSAGE_TYPE_NONEXIST 97
#define AST_CAUSE_WRONG_MESSAGE 98
#define AST_CAUSE_IE_NONEXIST 99
#define AST_CAUSE_INVALID_IE_CONTENTS 100
#define AST_CAUSE_WRONG_CALL_STATE 101
#define AST_CAUSE_RECOVERY_ON_TIMER_EXPIRE 102
#define AST_CAUSE_MANDATORY_IE_LENGTH_ERROR 103
#define AST_CAUSE_PROTOCOL_ERROR 111
#define AST_CAUSE_INTERWORKING 127
/* Special Asterisk aliases */
#define AST_CAUSE_BUSY AST_CAUSE_USER_BUSY
#define AST_CAUSE_FAILURE AST_CAUSE_NETWORK_OUT_OF_ORDER
#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_SUBSCRIBER_ABSENT
#define AST_CAUSE_NOTDEFINED 0
#define AST_CAUSE_NOSUCHDRIVER AST_CAUSE_CHAN_NOT_IMPLEMENTED
Retry
Dialing 시도가 실패할 경우, 리턴 코드에 맞춰 재시도를 해야 할 경우가 있다. 임의로 만든 Retry table. 아직은 사용하지 말 것.
Name Asterisk code SIP code Retry Note AST_CAUSE_NOT_DEFINED 0 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_UNALLOCATED 1 404, 485, 604 O Provider error. Retry it with another provider. AST_CAUSE_NO_ROUTE_TRANSIT_NET 2 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_NO_ROUTE_DESTINATION 3 420 O Provider error. Retry it with another provider. AST_CAUSE_MISDIALLED_TRUNK_PREFIX 5 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_CHANNEL_UNACCEPTABLE 6 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_CALL_AWARDED_DELIVERED 7 O This is happen if the channel was transferred to the wrong channel. AST_CAUSE_PRE_EMPTED 8 O Provider error. Retry it with another provider. AST_CAUSE_NUMBER_PORTED_NOT_HERE 14 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_NORMAL_CLEARING 16 X AST_CAUSE_USER_BUSY 17 486, 600 X AST_CAUSE_NO_USER_RESPONSE 18 408 O Provider error. Retry it with another provider. AST_CAUSE_NO_ANSWER 19 480, 483 X AST_CAUSE_SUBSCRIBER_ABSENT 20 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_CALL_REJECTED 21 401, 403, 407, 603 X AST_CAUSE_NUMBER_CHANGED 22 410 O Provider error. Retry it with another provider. AST_CAUSE_REDIRECTED_TO_NEW_DESTINATION 23 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_ANSWERED_ELSEWHERE 26 X AST_CAUSE_DESTINATION_OUT_OF_ORDER 27 502 O Provider error. Retry it with another provider. AST_CAUSE_INVALID_NUMBER_FORMAT 28 484 O Provider error. Retry it with another provider. AST_CAUSE_FACILITY_REJECTED 29 501 O Provider error. Retry it with another provider. AST_CAUSE_RESPONSE_TO_STATUS_ENQUIRY 30 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_NORMAL_UNSPECIFIED 31 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_NORMAL_CIRCUIT_CONGESTION 34 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_NETWORK_OUT_OF_ORDER 38 500 O Provider error. Retry it with another provider. AST_CAUSE_NORMAL_TEMPORARY_FAILURE 41 409 O Provider error. Retry it with another provider. AST_CAUSE_SWITCH_CONGESTION 42 5XX O Provider error. Retry it with another provider. AST_CAUSE_ACCESS_INFO_DISCARDED 43 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_REQUESTED_CHAN_UNAVAIL 44 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_FACILITY_NOT_SUBSCRIBED 50 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_OUTGOING_CALL_BARRED 52 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_INCOMING_CALL_BARRED 54 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_BEARERCAPABILITY_NOTAUTH 57 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_BEARERCAPABILITY_NOTAVAIL 58 488, 606 O Provider error. Retry it with another provider. AST_CAUSE_BEARERCAPABILITY_NOTIMPL 65 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_CHAN_NOT_IMPLEMENTED 66 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_FACILITY_NOT_IMPLEMENTED 69 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_INVALID_CALL_REFERENCE 81 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_INCOMPATIBLE_DESTINATION 88 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_INVALID_MSG_UNSPECIFIED 95 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_MANDATORY_IE_MISSING 96 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_MESSAGE_TYPE_NONEXIST 97 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_WRONG_MESSAGE 98 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_IE_NONEXIST 99 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_INVALID_IE_CONTENTS 100 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_WRONG_CALL_STATE 101 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_RECOVERY_ON_TIMER_EXPIRE 102 504 O Provider error. Retry it with another provider. AST_CAUSE_PROTOCOL_ERROR 111 O Asterisk internal error. Retry it with another Asterisk. AST_CAUSE_INTERWORKING 127 4xx, 505, 6xx O Provider error. Retry it with another provider.
See also
- https://wiki.asterisk.org/wiki/display/AST/Hangup+Cause+Mappings - Asterisk hangup cause mappings