【JsSIP】故障和最终原因-状态字段详情

JsSIP提供了一组原因,以便让用户知道是什么导致请求或会话失败。JsSIP中定义了此处暴露的所有原因。格式为JsSIP.C.causes.XXX,因此,在提供原因字段的事件中接收到的任何原因都可以与其进行比较。

例子:

var target = 'sip:bob@example.com';
var eventHandlers = {
  'failed': function(data) {
    if (data.cause === JsSIP.C.causes.BUSY) {
      coolPhone.sendMessage(target, 'Please, call me later!');
    }
  }
}

coolPhone.call(target, useAudio, useVideo, eventHandlers, views);

常见原因

常数描述
CONNECTION_ERROR‘Connection Error’出现WebSocket连接错误
REQUEST_TIMEOUT‘Request Timeout’未收到响应,客户端事务的超时已过期
SIP_FAILURE_CODE‘SIP Failure Code’收到一个否定的SIP响应,该响应不属于“SIP错误原因”中定义的任何组
INTERNAL_ERROR‘Internal Error’意外错误

SIP错误原因

SIP响应状态代码分为以下原因:

常数SIP状态code值
BUSY‘Busy’486,600
REJECTED‘Rejected’403,603
REDIRECTED‘Redirected’300,301,302,305,380
UNAVAILABLE‘Unavailable’480,410,408,430
NOT_FOUND‘Not Found’404,604
ADDRESS_INCOMPLETE‘Address Incomplete’484
INCOMPATIBLE_SDP‘Incompatible SDP’488,606
MISSING_SDP’Received a request/response that should have SDP body but did not.‘
AUTHENTICATION_ERROR‘Authentication Error’401,407

RTCSession原因

以下原因适用于音频/视频会话:

常数描述
BYE‘Terminated’RTCSession由本地或远程对等方正常终止。
CANCELED‘Canceled’RTCSession已被本地或远程对等方取消
NO_ANSWER‘No Answer’传入呼叫未在配置no_answer_timeout参数中给定的时间内得到应答
EXPIRES‘Expires’传入呼叫包含Expires标头,而本地用户未在标头中给定的时间内应答
NO_ACK‘No ACK’收到的INVITE回复为2XX状态码,但未收到ACK
DIALOG_ERROR‘Dialog Error’对话中的请求接收到408或481 SIP错误
USER_DENIED_MEDIA_ACCESS‘User Denied Media Access’当提示输入音频/视频设备时,本地用户拒绝访问媒体
BAD_MEDIA_DESCRIPTION‘Bad Media Description’收到的SDP错误
RTP_TIMEOUT‘RTP Timeout’由于RTP丢失,会话已结束。

DOM异常

JsSIP中的某些函数在某些情况下可能引发异常(请参阅W3C定义的DOMException)。以下是JsSIP中的DOMException列表:

code常数描述
1CONFIGURATION_ERRORUA配置对象加载过程中出错。
2INVALID_TARGET_ERROR目标不是有效的SIP URI,或者无法转换为有效的SIP URI。
3INVALID_STATE_ERROR对象处于不适合执行给定操作的状态。

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值