挂机原因定义位置
在switch_channel.c中有定义一个数组
static struct switch_cause_table CAUSE_CHART[] = {
{"NONE", SWITCH_CAUSE_NONE},
{"UNALLOCATED_NUMBER", SWITCH_CAUSE_UNALLOCATED_NUMBER},
{"NO_ROUTE_TRANSIT_NET", SWITCH_CAUSE_NO_ROUTE_TRANSIT_NET},
{"NO_ROUTE_DESTINATION", SWITCH_CAUSE_NO_ROUTE_DESTINATION},
{"CHANNEL_UNACCEPTABLE", SWITCH_CAUSE_CHANNEL_UNACCEPTABLE},
{"CALL_AWARDED_DELIVERED", SWITCH_CAUSE_CALL_AWARDED_DELIVERED},
{"NORMAL_CLEARING", SWITCH_CAUSE_NORMAL_CLEARING},
{"USER_BUSY", SWITCH_CAUSE_USER_BUSY},
{"NO_USER_RESPONSE", SWITCH_CAUSE_NO_USER_RESPONSE},
{"NO_ANSWER", SWITCH_CAUSE_NO_ANSWER},
{"SUBSCRIBER_ABSENT", SWITCH_CAUSE_SUBSCRIBER_ABSENT},
{"CALL_REJECTED", SWITCH_CAUSE_CALL_REJECTED},
{"NUMBER_CHANGED", SWITCH_CAUSE_NUMBER_CHANGED},
{"REDIRECTION_TO_NEW_DESTINATION", SWITCH_CAUSE_REDIRECTION_TO_NEW_DESTINATION},
{"EXCHANGE_ROUTING_ERROR", SWITCH_CAUSE_EXCHANGE_ROUTING_ERROR},
{"DESTINATION_OUT_OF_ORDER", SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER},
{"INVALID_NUMBER_FORMAT", SWITCH_CAUSE_INVALID_NUMBER_FORMAT},
{"FACILITY_REJECTED", SWITCH_CAUSE_FACILITY_REJECTED},
{"RESPONSE_TO_STATUS_ENQUIRY", SWITCH_CAUSE_RESPONSE_TO_STATUS_ENQUIRY},
{"NORMAL_UNSPECIFIED", SWITCH_CAUSE_NORMAL_UNSPECIFIED},
{"NORMAL_CIRCUIT_CONGESTION", SWITCH_CAUSE_NORMAL_CIRCUIT_CONGESTION},
{"NETWORK_OUT_OF_ORDER", SWITCH_CAUSE_NETWORK_OUT_OF_ORDER},
{"NORMAL_TEMPORARY_FAILURE", SWITCH_CAUSE_NORMAL_TEMPORARY_FAILURE},
{"SWITCH_CONGESTION", SWITCH_CAUSE_SWITCH_CONGESTION},
{"ACCESS_INFO_DISCARDED", SWITCH_CAUSE_ACCESS_INFO_DISCARDED},
{"REQUESTED_CHAN_UNAVAIL", SWITCH_CAUSE_REQUESTED_CHAN_UNAVAIL},
{"PRE_EMPTED", SWITCH_CAUSE_PRE_EMPTED},
{"FACILITY_NOT_SUBSCRIBED", SWITCH_CAUSE_FACILITY_NOT_SUBSCRIBED},
{"OUTGOING_CALL_BARRED", SWITCH_CAUSE_OUTGOING_CALL_BARRED},
{"INCOMING_CALL_BARRED", SWITCH_CAUSE_INCOMING_CALL_BARRED},
{"BEARERCAPABILITY_NOTAUTH", SWITCH_CAUSE_BEARERCAPABILITY_NOTAUTH},
{"BEARERCAPABILITY_NOTAVAIL", SWITCH_CAUSE_BEARERCAPABILITY_NOTAVAIL},
{"SERVICE_UNAVAILABLE", SWITCH_CAUSE_SERVICE_UNAVAILABLE},
{"BEARERCAPABILITY_NOTIMPL", SWITCH_CAUSE_BEARERCAPABILITY_NOTIMPL},
{"CHAN_NOT_IMPLEMENTED", SWITCH_CAUSE_CHAN_NOT_IMPLEMENTED},
{"FACILITY_NOT_IMPLEMENTED", SWITCH_CAUSE_FACILITY_NOT_IMPLEMENTED},
{"SERVICE_NOT_IMPLEMENTED", SWITCH_CAUSE_SERVICE_NOT_IMPLEMENTED},
{"INVALID_CALL_REFERENCE", SWITCH_CAUSE_INVALID_CALL_REFERENCE},
{"INCOMPATIBLE_DESTINATION", SWITCH_CAUSE_INCOMPATIBLE_DESTINATION},
{"INVALID_MSG_UNSPECIFIED", SWITCH_CAUSE_INVALID_MSG_UNSPECIFIED},
{"MANDATORY_IE_MISSING", SWITCH_CAUSE_MANDATORY_IE_MISSING},
{"MESSAGE_TYPE_NONEXIST", SWITCH_CAUSE_MESSAGE_TYPE_NONEXIST},
{"WRONG_MESSAGE", SWITCH_CAUSE_WRONG_MESSAGE},
{"IE_NONEXIST", SWITCH_CAUSE_IE_NONEXIST},
{"INVALID_IE_CONTENTS", SWITCH_CAUSE_INVALID_IE_CONTENTS},
{"WRONG_CALL_STATE", SWITCH_CAUSE_WRONG_CALL_STATE},
{"RECOVERY_ON_TIMER_EXPIRE", SWITCH_CAUSE_RECOVERY_ON_TIMER_EXPIRE},
{"MANDATORY_IE_LENGTH_ERROR", SWITCH_CAUSE_MANDATORY_IE_LENGTH_ERROR},
{"PROTOCOL_ERROR", SWITCH_CAUSE_PROTOCOL_ERROR},
{"INTERWORKING", SWITCH_CAUSE_INTERWORKING},
{"SUCCESS", SWITCH_CAUSE_SUCCESS},
{"ORIGINATOR_CANCEL", SWITCH_CAUSE_ORIGINATOR_CANCEL},
{"CRASH", SWITCH_CAUSE_CRASH},
{"SYSTEM_SHUTDOWN", SWITCH_CAUSE_SYSTEM_SHUTDOWN},
{"LOSE_RACE", SWITCH_CAUSE_LOSE_RACE},
{"MANAGER_REQUEST", SWITCH_CAUSE_MANAGER_REQUEST},
{"BLIND_TRANSFER", SWITCH_CAUSE_BLIND_TRANSFER},
{"ATTENDED_TRANSFER", SWITCH_CAUSE_ATTENDED_TRANSFER},
{"ALLOTTED_TIMEOUT", SWITCH_CAUSE_ALLOTTED_TIMEOUT},
{"USER_CHALLENGE", SWITCH_CAUSE_USER_CHALLENGE},
{"MEDIA_TIMEOUT", SWITCH_CAUSE_MEDIA_TIMEOUT},
{"PICKED_OFF", SWITCH_CAUSE_PICKED_OFF},
{"USER_NOT_REGISTERED", SWITCH_CAUSE_USER_NOT_REGISTERED},
{"PROGRESS_TIMEOUT", SWITCH_CAUSE_PROGRESS_TIMEOUT},
{"INVALID_GATEWAY", SWITCH_CAUSE_INVALID_GATEWAY},
{"GATEWAY_DOWN", SWITCH_CAUSE_GATEWAY_DOWN},
{"INVALID_URL", SWITCH_CAUSE_INVALID_URL},
{"INVALID_PROFILE", SWITCH_CAUSE_INVALID_PROFILE},
{"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},
{"NOT_ACCEPTABLE", SWITCH_CAUSE_NOT_ACCEPTABLE},
{"UNWANTED", SWITCH_CAUSE_UNWANTED},
{"NO_IDENTITY", SWITCH_CAUSE_NO_IDENTITY},
{"BAD_IDENTITY_INFO", SWITCH_CAUSE_BAD_IDENTITY_INFO},
{"UNSUPPORTED_CERTIFICATE", SWITCH_CAUSE_UNSUPPORTED_CERTIFICATE},
{"INVALID_IDENTITY", SWITCH_CAUSE_INVALID_IDENTITY},
{"STALE_DATE", SWITCH_CAUSE_STALE_DATE},
{"REJECT_ALL", SWITCH_CAUSE_REJECT_ALL},
{NULL, 0}
};
在switch_types.h头文件中有定义错误类型的枚举
typedef enum {
SWITCH_CAUSE_NONE = 0,
SWITCH_CAUSE_UNALLOCATED_NUMBER = 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_SUBSCRIBER_ABSENT = 20,
SWITCH_CAUSE_CALL_REJECTED = 21,
SWITCH_CAUSE_NUMBER_CHANGED = 22,
SWITCH_CAUSE_REDIRECTION_TO_NEW_DESTINATION = 23,
SWITCH_CAUSE_EXCHANGE_ROUTING_ERROR = 25,
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_SERVICE_UNAVAILABLE = 63,
SWITCH_CAUSE_BEARERCAPABILITY_NOTIMPL = 65,
SWITCH_CAUSE_CHAN_NOT_IMPLEMENTED = 66,
SWITCH_CAUSE_FACILITY_NOT_IMPLEMENTED = 69,
SWITCH_CAUSE_SERVICE_NOT_IMPLEMENTED = 79,
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_CAUSE_SUCCESS = 142,
SWITCH_CAUSE_ORIGINATOR_CANCEL = 487,
SWITCH_CAUSE_CRASH = 700,
SWITCH_CAUSE_SYSTEM_SHUTDOWN = 701,
SWITCH_CAUSE_LOSE_RACE = 702,
SWITCH_CAUSE_MANAGER_REQUEST = 703,
SWITCH_CAUSE_BLIND_TRANSFER = 800,
SWITCH_CAUSE_ATTENDED_TRANSFER = 801,
SWITCH_CAUSE_ALLOTTED_TIMEOUT = 802,
SWITCH_CAUSE_USER_CHALLENGE = 803,
SWITCH_CAUSE_MEDIA_TIMEOUT = 804,
SWITCH_CAUSE_PICKED_OFF = 805,
SWITCH_CAUSE_USER_NOT_REGISTERED = 806,
SWITCH_CAUSE_PROGRESS_TIMEOUT = 807,
SWITCH_CAUSE_INVALID_GATEWAY = 808,
SWITCH_CAUSE_GATEWAY_DOWN = 809,
SWITCH_CAUSE_INVALID_URL = 810,
SWITCH_CAUSE_INVALID_PROFILE = 811,
SWITCH_CAUSE_NO_PICKUP = 812,
SWITCH_CAUSE_SRTP_READ_ERROR = 813,
SWITCH_CAUSE_BOWOUT = 814,
SWITCH_CAUSE_BUSY_EVERYWHERE = 815,
SWITCH_CAUSE_DECLINE = 816,
SWITCH_CAUSE_DOES_NOT_EXIST_ANYWHERE = 817,
SWITCH_CAUSE_NOT_ACCEPTABLE = 818,
SWITCH_CAUSE_UNWANTED = 819,
SWITCH_CAUSE_NO_IDENTITY = 820,
SWITCH_CAUSE_BAD_IDENTITY_INFO = 821,
SWITCH_CAUSE_UNSUPPORTED_CERTIFICATE = 822,
SWITCH_CAUSE_INVALID_IDENTITY = 823,
SWITCH_CAUSE_STALE_DATE = 824,
SWITCH_CAUSE_REJECT_ALL = 825
} switch_call_cause_t;
具体错误解析
typedef enum {
SWITCH_CAUSE_NONE = 0, // 未知原因
SWITCH_CAUSE_UNALLOCATED_NUMBER = 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, // 无用户应答.典型的情况是用户未接听电话。当被叫方在指定的时间内未使用警报或连接指示响应呼叫建立消息时使用。所拨打的号码具有活动的D信道,但远端选择不应答。
SWITCH_CAUSE_NO_ANSWER = 19, // 用户无应答(用户收到警报).典型的情况是用户未接听电话。在被叫方收到警报但在指定时间内没有使用连接指示响应时使用。此原因不是由Q.931过程生成的,而是可由内部网络计时器生成的。
SWITCH_CAUSE_SUBSCRIBER_ABSENT = 20, // 用户不在, 典型的情况是用户丢失网络连接或超出范围.
SWITCH_CAUSE_CALL_REJECTED = 21, // 呼叫被拒绝.
SWITCH_CAUSE_NUMBER_CHANGED = 22, // 号码已改变.典型的情况是用户已更改其号码。
SWITCH_CAUSE_REDIRECTION_TO_NEW_DESTINATION = 23, // 重定向到新目标.典型场景是呼叫被转发。
SWITCH_CAUSE_EXCHANGE_ROUTING_ERROR = 25, // 交换路由错误.表示由于中间交换释放了呼叫,导致呼叫方指示的目标无法到达,因为该呼叫在执行跳数计数器过程中达到限制。
SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER = 27, // 套接字故障.表示由于目标接口工作不正常,无法到达始发方指示的目标。无法将信令消息传送到远程方。典型场景包括:传输控制协议(TCP)套接字连接失败。发送SIP邀请时出现问题。连接的套接字上出现发送或接收错误。
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, // 访问信息被丢弃.表示网络无法按请求向被叫方提供访问信息。当远端ISDN交换机在串联交换呼叫之前删除部分信息时,通常报告典型场景。
SWITCH_CAUSE_REQUESTED_CHAN_UNAVAIL = 44, // 请求的电路/信道不可用.当接口的另一端无法提供请求的实体指示的电路或通道时返回。
SWITCH_CAUSE_PRE_EMPTED = 45, // 预空
SWITCH_CAUSE_FACILITY_NOT_SUBSCRIBED = 50, // 未订阅请求的设施.典型的情况是呼叫方尝试使用不允许的服务。
SWITCH_CAUSE_OUTGOING_CALL_BARRED = 52, // 禁止拨出电话,该原因表明虽然出局CUG呼叫的主叫是CUG成员,但该CUG成员不允许出局。
SWITCH_CAUSE_INCOMING_CALL_BARRED = 54, // 禁止来电,该原因表明,虽然被叫是该CUG入局呼叫的CUG成员,但该CUG成员不允许呼入。
SWITCH_CAUSE_BEARERCAPABILITY_NOTAUTH = 57, // 载体功能未授权. 表示该方已请求承载能力,该承载能力在设备上实现,但未授权使用。
SWITCH_CAUSE_BEARERCAPABILITY_NOTAVAIL = 58, // 承载能力当前不可用.表示该方已请求承载能力,该承载能力由设备实施,当前不可用。
SWITCH_CAUSE_SERVICE_UNAVAILABLE = 63, // 服务或选项不可用,不明。仅当服务中没有其他原因或选项不可用类应用时,才报告服务或选项不可用事件。
SWITCH_CAUSE_BEARERCAPABILITY_NOTIMPL = 65, // 媒体协商失败
SWITCH_CAUSE_CHAN_NOT_IMPLEMENTED = 66, // 信道类型未实现.表示发送此原因的设备不支持请求的信道类型
SWITCH_CAUSE_FACILITY_NOT_IMPLEMENTED = 69, // 未实现请求的设施.表示发送此原因的设备不支持请求的附加服务.典型情况是找不到服务类型匹配。
SWITCH_CAUSE_SERVICE_NOT_IMPLEMENTED = 79, // 服务或选项未实现,不明.仅当服务或选项未实现类中没有其他原因时,才报告服务或选项未实现事件。
SWITCH_CAUSE_INVALID_CALL_REFERENCE = 81, // 呼叫参考值无效. 表示发送原因的设备已收到一条包含当前未在用户网络接口上使用的呼叫引用的消息。典型的情况是,远端交换机无法识别网关发送的消息的呼叫参考。
SWITCH_CAUSE_INCOMPATIBLE_DESTINATION = 88, // 目标不兼容.表示发送此原因的设备已收到建立呼叫的请求,该呼叫具有无法适应的兼容性属性。典型场景是所拨打的号码无法进行此类呼叫。
SWITCH_CAUSE_INVALID_MSG_UNSPECIFIED = 95, // 收到无效消息错误.
SWITCH_CAUSE_MANDATORY_IE_MISSING = 96, // 必备IE缺失错误.表示发送此原因代码的设备已收到缺少信息元素(IE)的消息。此IE必须存在于消息中,然后才能处理消息。
SWITCH_CAUSE_MESSAGE_TYPE_NONEXIST = 97, // 消息类型不存在或未实现.表示发送此原因的设备已收到消息,该消息缺少必须存在于消息中的信息元素,然后才能处理该消息。
SWITCH_CAUSE_WRONG_MESSAGE = 98, // 消息与呼叫状态不兼容,或者消息类型不存在或未实现.
SWITCH_CAUSE_IE_NONEXIST = 99, // 信息元素或参数不存在或未被实施.表示发送此原因的设备已收到包含信息元素或参数的消息,由于信息元素或参数名称未定义或定义但设备未实现,因此未识别这些信息元素或参数。
SWITCH_CAUSE_INVALID_IE_CONTENTS = 100, // 无效的IE内容错误.表示发送此原因代码的设备已收到其实施的IE。但是,发送此原因代码的设备尚未实现一个或多个特定字段。典型场景是存在SIP联系人字段,但格式不正确。
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_CAUSE_SUCCESS = 142, // 成功
SWITCH_CAUSE_ORIGINATOR_CANCEL = 487, // 发起方取消
SWITCH_CAUSE_CRASH = 500, // FreeSWITCH软交换本身崩溃或异常退出引起的呼叫失败。
SWITCH_CAUSE_SYSTEM_SHUTDOWN = 501, // 系统关闭
SWITCH_CAUSE_LOSE_RACE = 502, // 表示在并发竞争过程中失败所导致的呼叫错误
SWITCH_CAUSE_MANAGER_REQUEST = 503, // 当您发送api命令使其挂起时,会出现此原因。例如uuid_kill <uuid>
SWITCH_CAUSE_BLIND_TRANSFER = 600, // 表示盲转(Blind Transfer)导致的呼叫失败。
SWITCH_CAUSE_ATTENDED_TRANSFER = 601, // 咨询转接导致的呼叫失败。
SWITCH_CAUSE_ALLOTTED_TIMEOUT = 602, // 这个原因意味着服务器取消了呼叫,因为目标通道花费了太长的时间来应答。
SWITCH_CAUSE_USER_CHALLENGE = 603, // 用户CHALLENGE挑战认证失败
SWITCH_CAUSE_MEDIA_TIMEOUT = 604, // 媒体超时
SWITCH_CAUSE_PICKED_OFF = 605, // 这个原因意味着呼叫是从另一个分机拦截的
SWITCH_CAUSE_USER_NOT_REGISTERED = 606, // 用户未注册
SWITCH_CAUSE_PROGRESS_TIMEOUT = 607, // 进度超时
SWITCH_CAUSE_INVALID_GATEWAY = 608, // 错误网关
SWITCH_CAUSE_GATEWAY_DOWN = 609, // 网关已关闭(未回答 OPTIONS 或 SUBSCRIBE)
SWITCH_CAUSE_INVALID_URL = 610, // URL错误
SWITCH_CAUSE_INVALID_PROFILE = 611, // profile错误
SWITCH_CAUSE_NO_PICKUP = 612, // 通常用于表示在呼叫尝试时,接收方没有接听
SWITCH_CAUSE_SRTP_READ_ERROR = 613 // SRTP(安全RTP)解密读取错误
} switch_call_cause_t;