Asterisk status code: Difference between revisions

From 탱이의 잡동사니
Jump to navigation Jump to search
Line 142: Line 142:


</source>
</source>
== Hangup causes ==
Hangup 시, 사용되는 상태 코드 정리.
<pre>
#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
</pre>


== References ==
== References ==

Revision as of 09:11, 16 January 2017

Overview

Asterisk code 정리.

Originate result

원문은 이곳<ref>https://wiki.asterisk.org/wiki/display/AST/Hangup+Cause+Mappings</ref>에서 확인할 수 있다.

Originate 를 하게 되면(cli: Dial()) Originate 에 대한 결과를 받아오게 된다. 성공, 혹은 실패. 그리고 실패에 대해서는 왜 실패했는지에 대한 사유가 있다.

<source lang=c>

  1. define AST_CAUSE_UNALLOCATED 1
  2. define AST_CAUSE_NO_ROUTE_TRANSIT_NET 2
  3. define AST_CAUSE_NO_ROUTE_DESTINATION 3
  4. define AST_CAUSE_MISDIALLED_TRUNK_PREFIX 5
  5. define AST_CAUSE_CHANNEL_UNACCEPTABLE 6
  6. define AST_CAUSE_CALL_AWARDED_DELIVERED 7
  7. define AST_CAUSE_PRE_EMPTED 8
  8. define AST_CAUSE_NUMBER_PORTED_NOT_HERE 14
  9. define AST_CAUSE_NORMAL_CLEARING 16
  10. define AST_CAUSE_USER_BUSY 17
  11. define AST_CAUSE_NO_USER_RESPONSE 18
  12. define AST_CAUSE_NO_ANSWER 19
  13. define AST_CAUSE_SUBSCRIBER_ABSENT 20
  14. define AST_CAUSE_CALL_REJECTED 21
  15. define AST_CAUSE_NUMBER_CHANGED 22
  16. define AST_CAUSE_REDIRECTED_TO_NEW_DESTINATION 23
  17. define AST_CAUSE_ANSWERED_ELSEWHERE 26
  18. define AST_CAUSE_DESTINATION_OUT_OF_ORDER 27
  19. define AST_CAUSE_INVALID_NUMBER_FORMAT 28
  20. define AST_CAUSE_FACILITY_REJECTED 29
  21. define AST_CAUSE_RESPONSE_TO_STATUS_ENQUIRY 30
  22. define AST_CAUSE_NORMAL_UNSPECIFIED 31
  23. define AST_CAUSE_NORMAL_CIRCUIT_CONGESTION 34
  24. define AST_CAUSE_NETWORK_OUT_OF_ORDER 38
  25. define AST_CAUSE_NORMAL_TEMPORARY_FAILURE 41
  26. define AST_CAUSE_SWITCH_CONGESTION 42
  27. define AST_CAUSE_ACCESS_INFO_DISCARDED 43
  28. define AST_CAUSE_REQUESTED_CHAN_UNAVAIL 44
  29. define AST_CAUSE_FACILITY_NOT_SUBSCRIBED 50
  30. define AST_CAUSE_OUTGOING_CALL_BARRED 52
  31. define AST_CAUSE_INCOMING_CALL_BARRED 54
  32. define AST_CAUSE_BEARERCAPABILITY_NOTAUTH 57
  33. define AST_CAUSE_BEARERCAPABILITY_NOTAVAIL 58
  34. define AST_CAUSE_BEARERCAPABILITY_NOTIMPL 65
  35. define AST_CAUSE_CHAN_NOT_IMPLEMENTED 66
  36. define AST_CAUSE_FACILITY_NOT_IMPLEMENTED 69
  37. define AST_CAUSE_INVALID_CALL_REFERENCE 81
  38. define AST_CAUSE_INCOMPATIBLE_DESTINATION 88
  39. define AST_CAUSE_INVALID_MSG_UNSPECIFIED 95
  40. define AST_CAUSE_MANDATORY_IE_MISSING 96
  41. define AST_CAUSE_MESSAGE_TYPE_NONEXIST 97
  42. define AST_CAUSE_WRONG_MESSAGE 98
  43. define AST_CAUSE_IE_NONEXIST 99
  44. define AST_CAUSE_INVALID_IE_CONTENTS 100
  45. define AST_CAUSE_WRONG_CALL_STATE 101
  46. define AST_CAUSE_RECOVERY_ON_TIMER_EXPIRE 102
  47. define AST_CAUSE_MANDATORY_IE_LENGTH_ERROR 103
  48. define AST_CAUSE_PROTOCOL_ERROR 111
  49. define AST_CAUSE_INTERWORKING 127

/* Special Asterisk aliases */

  1. define AST_CAUSE_BUSY AST_CAUSE_USER_BUSY
  2. define AST_CAUSE_FAILURE AST_CAUSE_NETWORK_OUT_OF_ORDER
  3. define AST_CAUSE_NORMAL AST_CAUSE_NORMAL_CLEARING
  4. define AST_CAUSE_NOANSWER AST_CAUSE_NO_ANSWER
  5. define AST_CAUSE_CONGESTION AST_CAUSE_NORMAL_CIRCUIT_CONGESTION
  6. define AST_CAUSE_UNREGISTERED AST_CAUSE_SUBSCRIBER_ABSENT
  7. define AST_CAUSE_NOTDEFINED 0
  8. define AST_CAUSE_NOSUCHDRIVER AST_CAUSE_CHAN_NOT_IMPLEMENTED

</source>

Channel status

Asterisk 에서 관리되는 모든 채널들은 다음 중 하나의 상태를 가진다.

  • 상태 코드 정의

0부터 시작한다. <source lang=c> /*!

* \brief ast_channel states
*
* \note Bits 0-15 of state are reserved for the state (up/down) of the line
*       Bits 16-32 of state are reserved for flags
*/

enum ast_channel_state {

   AST_STATE_DOWN,             /*!< Channel is down and available */
   AST_STATE_RESERVED,         /*!< Channel is down, but reserved */
   AST_STATE_OFFHOOK,          /*!< Channel is off hook */
   AST_STATE_DIALING,          /*!< Digits (or equivalent) have been dialed */
   AST_STATE_RING,             /*!< Line is ringing */
   AST_STATE_RINGING,          /*!< Remote end is ringing */
   AST_STATE_UP,               /*!< Line is up */
   AST_STATE_BUSY,             /*!< Line is busy */
   AST_STATE_DIALING_OFFHOOK,  /*!< Digits (or equivalent) have been dialed while offhook */
   AST_STATE_PRERING,          /*!< Channel has detected an incoming call and is waiting for ring */
   AST_STATE_MUTE = (1 << 16), /*!< Do not transmit voice data */

}; </source>

  • 매뉴얼

원문은 이곳<ref>https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+ManagerEvent_Newstate</ref>에서 확인할 수 있다.

Newstate 이벤트 메시지에 정의된 상태 코드를 가져왔다. 코드 번호와 내용은 위와 동일하다. 하지만 StateDesc로 표시되는 문자열 내용이 아래와 같이 설정된다. 원문은 이곳<ref>https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+ManagerEvent_Newstate</ref>에서 확인할 수 있다.

Down
Rsrvd
OffHook
Dialing
Ring
Ringing
Up
Busy
Dialing Offhook
Pre-ring
Unknown

Device status

Asterisk 에서 관리되는 모든 디바이스(Device)들은 다음 중 하나의 상태를 가진다.

  • 상태 코드 정의

0부터 시작한다. <source lang=c> /*! \brief Device States

*  \note The order of these states may not change because they are included
*        in Asterisk events which may be transmitted across the network to
*        other servers.
*/

enum ast_device_state { AST_DEVICE_UNKNOWN, /*!< Device is valid but channel didn't know state */ AST_DEVICE_NOT_INUSE, /*!< Device is not used */ AST_DEVICE_INUSE, /*!< Device is in use */ AST_DEVICE_BUSY, /*!< Device is busy */ AST_DEVICE_INVALID, /*!< Device is invalid */ AST_DEVICE_UNAVAILABLE, /*!< Device is unavailable */ AST_DEVICE_RINGING, /*!< Device is ringing */ AST_DEVICE_RINGINUSE, /*!< Device is ringing *and* in use */ AST_DEVICE_ONHOLD, /*!< Device is on hold */ AST_DEVICE_TOTAL, /*!< Total num of device states, used for testing */ };

</source>

Hangup causes

Hangup 시, 사용되는 상태 코드 정리.

#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

References

<references/>