JsSIP API 中文文档(3.1.x)

Module JsSIP

JsSIP主要模块

Module Getters
name

返回字符串“JsSIP”。

version

返回字符串形式的JsSIP版本号。

console.log(JsSIP.version);

=> "X.Y.Z"

JsSIP.debug

Node.js和浏览器调试。

从版本0.6.0开始,JsSIP包含Node 调试模块,适用于Node.js和浏览器。JsSIP通过JsSIP.debug访问器访问公开模块。

在浏览器中调试

默认情况下,JsSIP不向浏览器控制台记录任何内容。为了启用调试,请在浏览器控制台中运行以下命令并重新加载页面:

> JsSIP.debug.enable('JsSIP:*');

请注意,日志记录设置会存储在浏览器LocalStorage中。要禁用它,请在浏览器控制台中运行以下命令并重新加载页面:

> JsSIP.debug.disable('JsSIP:*');

为了在默认情况下启用它,请在

<script src='js/jssip-X.Y.Z.min.js'></script>
<script>JsSIP.debug.enable('JsSIP:*');</script>
在Node.js中调试

在运行Node脚本/命令之前,按如下方式设置DEBUG环境变量:

$ export DEBUG="JsSIP:*"

或者下面方式运行它:

$ DEBUG="JsSIP:*"  node my_script.js
部分调试

区别于”JsSIP:*”(它可以对所有JsSIP组件进行调试),可以对单个组件进行调试,如下所示:

  • 在浏览器中:
> JsSIP.debug.enable('JsSIP:Transport JsSIP:RTCSession*');
  • 在Node.js中:
$ DEBUG="JsSIP:Transport JsSIP:RTCSession*"  node my_script.js

JsSIP源代码树中的每个文件都提供了一个与文件名及其相对路径匹配的不同调试标识符(全部以“JsSIP:”开头)。

例如,要启用调试DTMF(其类定义在src/RTCSession/DTMF.js)添加”JsSIP:RTCSession:DTMF”到您的DEBUG变量(节点)或传递给JsSIP.debug.enable()方法(浏览器)。使用”JsSIP:RTCSession*”启用调试JsSIP.RTCSession类及其所有子类。

Class JsSIP.UA

JsSIP SIP用户代理类。

实例化

用户代理关联到SIP用户帐户。这个类需要一些配置参数用于通过配置对象提供的初始化。检查完整的UA配置参数列表。

如果任何强制性参数未定义或由于格式错误的参数值,此类的实例化将引发异常。

抛出

CONFIGURATION_ERROR

例:

var socket = new JsSIP.WebSocketInterface('wss://sip.example.com');
var configuration = {
  sockets : [ socket ],
  uri     : 'sip:alice@example.com',
  ha1     : '350fe29ce3890bd85d105998b0a95cf7',
  realm   : 'sip.example.com'
};

var ua = new JsSIP.UA(configuration);
实例方法
start()

连接到信令服务器,如果先前停止,则恢复以前的状态。如果要重新开始,请在UA配置中的register参数设置为true的情况下向SIP域注册。

stop()

保存当前的注册状态并在正常注销并终止活动会话(如果有)后断开与信令服务器的连接。

register()

注册UA。

注意:如果在UA配置参数中将register参数设置为true,则UA将自动注册。

unregister(options=null)

取消注册UA。

参数

参数说明
options可选Object附加参数(见下文)。

options对象中的字段

参数说明
all可选Boolean用于取消注册同一SIP用户的所有绑定。默认值是false。
var options = {
  all: true
};

ua.unregister(options);   
registrator()

获取JsSIP.Registrator实例。

call(target, options=null)

拨打多媒体电话。

参数

参数说明
target通话的目的地。String代表目标用户名或完整的SIP URI或JsSIP.URI实例。
options可选Object附加参数(见下文)。

options对象中的字段

参数说明
mediaConstraintsObject有两个有效的字段(audio和video)指示会话是否打算使用音频和/或视频以及要使用的约束条件。默认值都是audio并video设置为true。
mediaStreamMediaStream 传送到另一端。
pcConfigObject代表RTCPeerConnection RTCConfiguration。
rtcConstraintsObject 代表RTCPeerconnection约束。
rtcOfferConstraintsObject代表RTCPeerconnection的限制createOffer()。
rtcAnswerConstraintsObject表示用于RTCPeerconnection约束createAnswer()(将被用于将来的输入REINVITE或UPDATE与SDP提供)。
eventHandlers可以Object将事件处理程序注册到每个通话事件中。为每个要通知的事件定义一个事件处理程序。
extraHeadersArray的Strings额外SIP头的INVITE请求。
anonymousBoolean字段指示是否应该匿名完成该呼叫。默认值是false。
sessionTimersExpiresNumber (以秒为单位)默认的会话定时器间隔(默认值为90,不要设置较低的值)。

- target
通话的目的地。String代表目标用户名或完整的SIP URI或JsSIP.URI实例。

例:

// HTML5 <video> elements in which local and remote video will be shown
var views = {
  'selfView':   document.getElementById('my-video'),
  'remoteView': document.getElementById('peer-video')
};

// Register callbacks to desired call events
var eventHandlers = {
  'progress':   function(data){ /* Your code here */ },
  'failed':     function(data){ /* Your code here */ },
  'confirmed':  function(data){ /* Your code here */ },
  'ended':      function(data){ /* Your code here */ }
};

var options = {
  'eventHandlers': eventHandlers,
  'extraHeaders': [ 'X-Foo: foo', 'X-Bar: bar' ],
  'mediaConstraints': {'audio': true, 'video': true},
  'pcConfig': {
    'iceServers': [
      { 'urls': ['stun:a.example.com', 'stun:b.example.com'] },
      { 'urls': 'turn:example.com', 'username': 'foo', 'credential': ' 1234' }
    ]
  }
};

ua.call('sip:bob@example.com', options);
sendMessage(target, body, options=null)

使用SIP MESSAGE方法发送即时消息。

参数

参数说明
target消息的目的地。String代表目标用户名或完整的SIP URI或JsSIP.URI实例。
body消息内容。String代表消息的主体。
options可选Object附加参数(见下文)。

options对象中的字段

参数说明
contentType可选String代表正文的内容类型。默认text/plain。
eventHandlersObject事件处理程序的选项可以注册到每个JsSIP.Message事件。为每个要通知的事件定义一个事件处理程序。
extraHeaders可选Array的每个MESSAGE请求都Strings带有额外的SIP头。

例:

var text = 'Hello Bob!';

var eventHandlers = {
  'succeeded': function(data){ /* Your code here */ },
  'failed':    function(data){ /* Your code here */ };
};

var options = {
  'eventHandlers': eventHandlers
};

ua.sendMessage('sip:bob@example.com', text, options);
terminateSessions(options=null)

终止正在进行的呼叫。

参数

参数说明
options可选Object带有在JsSIP.RTCSession呼叫终止中定义的额外参数。
isRegistered()

如果UA已注册,返回true; 否则返回false

isConnected()

如果传输连接,返回true,否则返回false

get(parameter)

在运行时检索一次计算出的配置参数。目前只是realmha1可以检索。

参数说明
parameterUA配置参数名称。
set(parameter, value)

在运行时修改给定的UA配置参数(一旦启动)。目前只是display_name,password,realm和ha1可以修改。
如果可以完成修改,则返回true

参数说明
parameterUA配置参数名称。
value新的值。
事件

JsSIP.UA类定义了一系列事件。它们中的每一个都允许回调函数注册,以便让用户为每个给定的动作执行一个处理程序。

connecting

每个传输尝试连接触发。

事件data字段

参数说明
socketJsSIP.Socket 实例正在连接。
attemptsNumber 指示传输连接尝试。
connected

传输连接建立时触发。

事件data字段

参数说明
socketJsSIP.Socket 已连接的实例。
disconnected

传输连接尝试(或自动重新尝试)失败时触发。

事件data字段

参数说明
socketJsSIP.Socket 实例。
errorBoolean 指示套接字是否由于错误而断开连接
code可选Number指示套接字断开代码。
reason可选String指示插座断开原因。
registered

成功注册触发。

事件data字段

参数说明
responseJsSIP.IncomingResponse收到的SIP 2XX响应的实例。
unregistered

未注册。在下列情况下会触发此事件:

  • 作为未注册请求的结果。UA.unregister()。
  • 如果被注册,则定期重新注册失败。

事件data字段

参数说明
responseJsSIP.IncomingResponse接收到的(未)注册SIP请求的SIP响应实例。
causenull以便对非注册 SIP请求进行正式响应。在其他情况下,失败和最终原因的一个值。
registrationFailed

因注册失败而触发。

事件data字段

参数说明
responseJsSIP.IncomingResponse如果失败是由接受的响应产生的,则接收到的SIP否定响应实例,否则返回null。
cause失败和最终原因的一个值。
registrationExpiring

在注册过期之前触发几秒钟。如果应用程序没有为此事件设置任何监听器,则JsSIP将像往常一样重新注册。
如果应用程序订阅了此事件,它负责ua.register()在registrationExpiring事件中调用(否则注册将过期)。
此事件为应用程序提供在重新注册之前执行异步操作的机会。对于那些在REGISTER请求中使用自定义SIP头中的外部获得的“令牌”的环境很有用。

newRTCSession

传入或传出的会话/呼叫触发。

data传入会话的事件字段

参数说明
originator‘远程’ String。新会话由远程的点生成。
sessionJsSIP.RTCSession 会话实例。
requestJsSIP.IncomingRequest收到的INVITE请求的实例。

data传出会话的事件字段

参数说明
originator‘本地’ String。新会话由本地用户生成。
sessionJsSIP.RTCSession 会话实例。
requestJsSIP.OutgoingRequest传出INVITE请求的实例。
newMessage

针对传入或传出的MESSAGE请求触发。

data传入消息的事件字段

参数说明
originator‘远程’ String。新消息由远程的点生成。
messageJsSIP.Message 实例。
requestJsSIP.OutgoingRequest传出MESSAGE请求的实例。

Class JsSIP.Registrator

JsSIP.Registrator类负责管理UA reigstration程序。

实例方法
setExtraHeaders(extraHeaders)

将自定义标题追加到每个注册 /取消注册请求。他们可以在任何时候被覆盖。

参数

参数说明
extraHeadersArray的Strings额外SIP头被包含在每一个注册请求。将其设置null为删除它们。
ua.registrator.setExtraHeaders([
  'X-Foo: bar'
]);
setExtraContactParams(extraContactParams)

将自定义标题参数追加到每个注册 /取消注册请求的联系人标题中。他们可以在任何时候被覆盖。

参数

参数说明
extraContactParamsObject用表示标题参数名称和值的键表示它们的参数值。将其设置null为删除它们。
ua.registrator.setExtraContactParams([
  x-vendor: 'FooBar',
  verified: true
]);

// =>  ;x-vendor=FooBar;x-verified

JsSIP.RTCSession

该类JsSIP.RTCSession表示WebRTC媒体(音频/视频)会话。它可以由本地用户或远程对等方发起。

它在内部拥有一个RTCPeerConnection实例,可通过connection属性访问。

实例属性
connection

RTCPeerConnection与此会话关联的基础实例。用它来建立与WebRTC相关的事件(如onaddstreamonaddtrack等)。

请注意,对于拨出呼叫,呼叫RTCPeerConnection后设置ua.call()。但是,对于来电,在呼叫RTCPeerConnection后设置session.answer()

direction

String指示谁开始了会话。当会话由远程对等端启动时,可能的值为“传入”,或者当本地用户启动会话时,可能的值为“传出”。

local_identity

JsSIP.NameAddrHeader指示本地身份的实例。它与方向为’外向’时的INVITE From标头值相对应,当方向为’外向’时与To头部值相对应。

remote_identity

JsSIP.NameAddrHeader指示远程身份的实例。它对应于当方向为’外向’时的INVITE To标头值,以及方向为’外向’时的From头部值。

start_time

Date对象指示会话开始的时间。在accepted事件时触发。

end_time

Date对象指示会话结束的时间。在ended事件时触发。

data

应用程序存储与此会话关联的自定义信息的对象。

data

自定义会话Object为应用程序使用空。开发人员可以在此添加自定义属性/值对。

实例方法
isInProgress()

如果会话过程中的状态返回true(不是建立,不是结束)。

isEstablished()

如果会话已建立,则返回true

isEnded()

会话结束时返回true

isReadyToReOffer()

会话准备好了SDP重新协商(hold(),unhold()或renegotiate()方法),返回true

answer(options)

应答传入的会话。此方法仅适用于传入会话。

参数

参数说明
options可选Object附加参数(见下文)。

options对象中的字段

参数说明
extraHeadersArray的Strings额外SIP头为200 OK响应。
mediaConstraintsObject有两个有效的字段(audio和video)指示会话是否打算使用音频和/或视频以及要使用的约束条件。默认值根据收到的SDP报价设置。
mediaStreamMediaStream 传送到另一端。
pcConfigObject代表RTCPeerConnection RTCConfiguration。
rtcConstraintsObject 代表RTCPeerConnection约束。
rtcAnswerConstraintsObject代表RTCPeerConnection的约束createAnswer()。
rtcOfferConstraintsObject代表RTCPeerConnection的限制createOffer()(将用于将来的传入reINVITE而不提供SDP)。
sessionTimersExpiresNumber (以秒为单位)默认的会话定时器间隔(默认值为90,不要设置较低的值)。

抛出

INVALID_STATE_ERROR

terminate(options)

无论其方向或状态如何终止当前会话。

根据会话的状态,该函数可能会发送CANCEL请求,非2xx最终响应,BYE请求,甚至不发送请求。

对于传入的会话,如果用户没有应答传入的INVITE,则此函数将发送非2xx最终响应以及可选指定的状态码和原因短语。480 Unavailvable是默认回复的。

对于传出会话,如果原始INVITE尚未发送,则永远不会发送。如果最初的INVITE没有得到最终答复,则行为取决于是否收到临时答复。如果收到临时响应,则会发送CANCEL请求。如果没有收到临时响应,则该功能不会按照RFC 3261发送CANCEL。如果接收到临时响应,CANCEL请求将自动发送。

对于传入和传出,如果INVITE会话已用最终响应回复,则会发送BYE请求。

参数

参数说明
options可选Object附加参数(见下文)。

options对象中的字段

参数说明
extraHeadersArray的Strings额外SIP头的MESSAGE请求。
status_codeNumber介于300和699之间,代表SIP响应代码。
reason_phraseString代表SIP原因词组。
body表示SIP消息体的字符串(如果设置了此参数,则必须在extraHeader字段中设置相应的Content-Type标题字段)。

注意:当生成 CANCEL时,status_code可以取值从200到699.status_codeandreason_phrase将按照 RFC3326中的规定形成Reason标头字段。一个取消不会采取extraHeaders参数也没有body放慢参数。

抛出

INVALID_STATE_ERROR

sendDTMF(tone, options=null)

使用SIP INFO方法发送一个或多个DTMF音。

参数

参数说明
toneString或Number由一个或多个有效的DTMF符号组成。
options可选Object额外参数。见下文。

可选Object额外参数。见下文。

参数说明
duration正数十进制Number表示以毫秒表示的音调持续时间。默认值是100。
interToneGap正数小数Number表示以毫秒表示的两个音调之间的间隔。默认值是500。
extraHeaders可选Array的Strings额外SIP头为每个INFO请求。

抛出

INVALID_STATE_ERROR

例1

call.sendDTMF(1);
call.sendDTMF(4);

例2

var tones = '1234#';

var extraHeaders = [ 'X-Foo: foo', 'X-Bar: bar' ];

var options = {
  'duration': 160,
  'interToneGap': 1200,
  'extraHeaders': extraHeaders
};

call.sendDTMF(tones, options);
sendInfo(contentType, body=null, options=null)

发送SIP INFO消息。

参数

参数说明
contentTypeString表示SIP INFO消息的内容类型头部字段值。
body可选String代表SIP INFO消息主体。
options可选Object额外参数。见下文。

options对象中的字段

参数说明
extraHeaders可选Array的Strings额外SIP头为每个INFO请求。

抛出

INVALID_STATE_ERROR

hold(options=null, done=null)

通过发送Re- INVITE或UPDATE SIP请求使呼叫保持。

如果此时重新协商不可能,则返回false

参数

参数说明
options可选Object额外参数。见下文。
doneFunction重新谈判成功后可选择调用。

options对象中的字段

参数说明
useUpdateBoolean发送更新而不是重新邀请
extraHeadersrray的Strings额外SIP头的请求。
unhold(options=null, done=null)

通过发送Re- INVITE或UPDATE SIP请求恢复呼叫。

如果此时重新协商不可能,则返回false

参数

参数说明
options可选Object额外参数。见下文。
doneFunction重新谈判成功后可选择调用。

options对象中的字段

参数说明
useUpdateBoolean发送更新而不是重新邀请
extraHeadersArray的Strings额外SIP头的请求。
renegotiate(options=null, done=null)

强制进行SDP重新协商。修改附加到底层的本地流RTCPeerConnection(通过connection属性)后有用。

如果此时重新协商不可能,则返回false

参数

参数说明
options可选Object额外参数。见下文。
doneFunction重新谈判成功后可选择调用。

options对象中的字段

参数说明
useUpdateBoolean发送更新而不是重新邀请
extraHeadersArray的Strings额外SIP头的请求。
rtcOfferConstraintsObject代表RTCPeerConnection的约束createOffer()。
isOnHold()

返回一个Object属性为“local”和“remote”的Boolean值以及与每个属性关联的值。它表示“本地”和/或“远程”对等体是否处于保持状态。

rtcsession.isOnHold();

{
  'local': true,    // User has put the other peer on hold
  'remote': false   // Peer hasn't put user on hold
}
mute(options=null)

静音本地音频和/或视频。

参数

参数说明
audioBoolean 确定是否必须静音本地音频
videoBoolean 确定是否必须静音本地视频
unmute(options=null)

取消静音本地音频和/或视频。

参数

参数说明
audioBoolean 确定本地音频是否必须取消静音
videoBoolean 确定本地视频是否必须取消静音
isMuted()

返回一个Object属性为“音频”和“视频”的属性以及Boolean与每个属性关联的值。它代表本地“音频”和/或“视频”是否静音。

rtcsession.isMuted();

{
  'audio': true,   // Local audio is muted
  'video': false   // Local audio is not muted
}
refer(target, options=null)

将引用对象中的REFER方法作为引用资源发送给给定的目标。

REFER方法隐含地生成订阅的参考状态。从对等方收到的NOTIFY请求将以事件形式进行处理和呈现JsSIP.RTCSession.ReferSubscriber

参数

参数说明
target参考资源。String代表目标用户名或完整的SIP URI或JsSIP.URI实例。
options可选Object附加参数(见下文)。

options对象中的字段

参数说明
extraHeaders可选Array的Strings额外SIP头的REFER请求。
eventHandlers可选Object的事件处理程序将被注册JsSIP.RTCSession.ReferSubscriber。
replaces可选JsSIP.RTCSession实例该对话框旨在替换参考目标。这是此用户代理与Refer-To资源指向的实时会话。

抛出

INVALID_TARGET_ERROR

resetLocalMedia()

通过启用其音频和视频轨道来重置本地MediaStream(除非远程对等体处于保留状态)。

事件

JsSIP.RTCSession类定义了一系列事件。它们中的每一个都允许回调函数注册,以便让用户为每个给定的触发执行一个函数。

peerconnection

一旦底层RTCPeerConnection被创建,就会被触发。例如,应用程序有机会通过添加对象RTCDataChannel或设置相应的事件侦听器来改变对等连接。

data传出会话中的事件字段

参数说明
peerconnection该RTCPeerConnection实例。

var datachannel;

session.on('peerconnection', function(data) {
  datachannel = data.peerconnection.createDataChannel('chat');
});
connecting

在本地媒体流被添加之后RTCSession并且在ICE收集开始之前触发初始INVITE请求或“200 OK”响应传输之后触发。

data传入会话中的事件字段

参数说明
requestJsSIP.IncomingRequest实例代表传入的INVITE SIP消息。

data传出会话中的事件字段

参数说明
requestJsSIP.OutgoingRequest表示传出INVITE SIP消息的实例。
sending

在发送初始INVITE之前触发(仅用于拨出电话)。它为应用程序提供了调用SIP INVITE或其SDP的机会。

data传出会话中的事件字段

参数说明
requestJsSIP.OutgoingRequest表示传出INVITE SIP消息的实例。
progress

在接收或生成对INVITE请求的1XX SIP类响应(> 100)时触发。

事件在SDP处理之前触发,如果存在的话,可以根据需要对其进行微调,或者通过删除对象中响应参数的主体来删除它data。

data传入会话中的事件字段

参数说明
originator‘本地’ String

data传出会话中的事件字段

参数说明
originator‘遥远’ String。
responseJsSIP.IncomingResponse收到的SIP 1XX响应的实例。
accepted

接听电话时发出(2XX收/发)。

data传入会话中的事件字段

参数说明
originator‘本地’ String。

data传出会话中的事件字段

参数说明
originator‘遥远’ String。
responseJsSIP.IncomingResponse收到的SIP 2XX响应的实例。
confirmed

通话确认(ACK收/发)时触发。

data传入会话中的事件字段

参数说明
originator‘本地’ String。

data传出会话中的事件字段

参数说明
originator‘遥远’ String。
responseJsSIP.IncomingResponse收到的SIP 2XX响应的实例。
ended

当已建立的通话结束时触发。

事件data字段

参数说明
originator‘本地’/’远程’/’系统’ String。呼叫终止来自哪里。
messageJsSIP.IncomingRequestJsSIP.IncomingResponse当originator值为’remote’ 时生成呼叫终止的实例,null否则。
cause失败和最终原因的一个价值。
failed

会议无法建立时触发。

事件data字段

参数说明
originator‘本地’/’远程’/’系统’ String。通话失败来自哪里。
messageJsSIP.IncomingRequestJsSIP.IncomingResponse当originator值为’remote’ 时产生呼叫失败的实例,null否则。
cause失败和最终原因的一个价值。
newDTMF

为传入或传出的DTMF启动。

data传入DTMF的事件字段

参数说明
originator‘遥远’ String。新的DTMF由远程对端生成。
dtmfJsSIP.RTCSession.DTMF 实例。
requestJsSIP.IncomingRequest收到的INFO请求的实例。

data传出DTMF的事件字段

参数说明
originator‘本地’ String。新的DTMF由本地用户生成。
dtmfJsSIP.RTCSession.DTMF 实例。
requestJsSIP.OutgoingRequest传出INFO请求的实例。
newInfo

为传入或传出的SIP INFO消息而启动。

data传入SIP INFO消息的事件字段。

参数说明
originator‘遥远’ String。新的SIP INFO消息由远程对端生成。
infoJsSIP.RTCSession.Info 实例。
requestJsSIP.IncomingRequest收到的INFO请求的实例。

data传出SIP INFO消息的事件字段。

参数说明
originator‘本地’ String。新的SIP INFO消息。由本地用户生成。
infoJsSIP.RTCSession.Info 实例。
requestJsSIP.OutgoingRequest传出INFO请求的实例。
hold

当用户或同伴将另一方搁置时触发。

事件data字段

参数说明
originator‘远程’,String如果其他对等方已暂停该用户。’本地’,String如果用户已经挂起另一个对等体。
unhold

当用户或同伴恢复另一端保持时触发。

事件data字段

参数说明
originatorString如果其他对等方已将用户从保持状态恢复,则’远程’ 。’本地’,String如果用户恢复了另一个对等体的等待。
muted

本地媒体静音时被解雇。

事件data字段

参数说明
audioBoolean 确定本地音频是否静音。
videoBoolean 确定本地视频是否静音。
unmuted

在当地媒体取消静音时被解雇。

事件data字段

参数说明
audioBoolean 确定本地音频是否静音。
videoBoolean 确定本地视频是否静音。
reinvite

收到对话中的reINVITE时触发。

事件data字段

参数说明
requestJsSIP.IncomingRequest 收到的reINVITE请求的实例。
callback最初undefined。如果用户在这里设置了一个函数,那么一旦reINVITE被处理,它就会被执行。
reject()拒绝Method,如果再要执行INVITE被拒绝。默认情况下使用403响应代码。

事件data.reject()参数

参数说明
options可选Object附加参数(见下文)。

options对象中的字段

参数说明
extraHeadersArray的Strings额外SIP头的MESSAGE请求。
status_codeNumber介于300和699之间,代表SIP响应代码。
reason_phraseString代表SIP原因词组。
update

收到对话内更新时触发。

事件data字段

参数说明
requestJsSIP.IncomingRequest收到的更新请求的实例。
callback最初undefined。如果用户在这里设置了一个函数,那么一旦UPDATE被处理,它就会被执行。
reject()拒绝Method,如果再要执行INVITE被拒绝。默认情况下使用403响应代码。

事件data.reject()参数

参数说明
options可选Object附加参数(见下文)。

options对象中的字段

参数说明
extraHeadersArray的Strings额外SIP头的MESSAGE请求。
status_codeNumber介于300和699之间,代表SIP响应代码。
reason_phraseString代表SIP原因词组。
refer

收到对话中的REFER时触发。

如果授权引用aproval,JsSIP.RTCSession则会向Refer-To标题字段中指示的目标生成新的传出。

该NOTIFY机制被用于通知代理器发送的REFER中定义的参考的状态RFC 3515。

NOTE:Refer-To资源可在传入属性中访问。JsSIP.IncomingRequest refer_to JsSIP.URI

事件data字段

参数说明
requestJsSIP.IncomingRequest收到的REFER请求的实例。
accept()Method如果接受REFER,同意批准。这会生成一个传出JsSIP.RTCSession到由Refer-To URI标识的资源。
reject()Method如果REFER被拒绝,同意拒绝执行。

事件data.accept()参数

参数说明
newRTCSession(session)Function代表新事件的事件执行可选回调。如果没有定义,则前一个事件将被发射。JsSIP.UA newRTCSessionRTCSessionfunction
options可选Object提供传出选项JsSIP.RTCSession。该参数的语义对应于方法的可选参数。JsSIP.UA call

事件data.reject()参数
该方法不需要任何参数。

replaces

收到对话INVITE时,RTCSession通过Replaces标题字段指向此消息。

批准批准后,JsSIP.RTCSession当新的批准建立时,该批准终止。

事件data字段

参数说明
requestJsSIP.IncomingRequest收到的INVITE请求的实例。
accept()Method如果INVITE被接受,同意批准。一个传入JsSIP.RTCSession将被生成。
reject()Method如果INVITE被拒绝,同意拒绝执行。

事件data.accept()参数

参数说明
newRTCSession(session)可选回调Function代表新事件的事件执行。如果没有定义,则前一个事件将被发射。JsSIP.UA newRTCSessionRTCSessionfunction

事件data.reject()参数
该方法不需要任何参数。

SDP

在将远程SDP传递给RTC引擎之前以及在发送本地SDP之前触发。
此事件提供了修改传入和传出SDP的机制。

事件data字段

参数说明
originatorString指示SDP是本地生成的还是远程接收的。可能的值是local或remote分别。
typeString表明SDP是一个offer还是一个answer。
sdpString代表SDP。修改必须直接在这个参数上完成。
getusermediafailed

内部通话getUserMedia()失败时触发。它提供了DOMError作为参数。

peerconnection:createofferfailed

内部通话createOffer()失败时触发。它提供了DOMError作为参数。

peerconnection:createanswerfailed

内部通话createAnswer()失败时触发。它提供了DOMError作为参数。

peerconnection:setlocaldescriptionfailed

内部通话setLocalDescription()失败时触发。它提供了DOMError作为参数。

peerconnection:setremotedescriptionfailed

内部通话setRemoteDescription()失败时触发。它提供了DOMError作为参数。


《JsSIP API》

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值