目录
sendMessage(target, body, options=null)
terminateSessions(options=null)
实例化
用户代理与SIP用户帐户相关联。这个类的初始化需要一些配置参数,这些参数是通过配置对象提供的。检查完整的UA配置参数列表。如果未定义任何强制参数,或者由于参数值格式不正确,则此类的实例化将引发异常。
报错常数 | 描述 |
CONFIGURATION_ERROR | UA配置对象加载过程中出错。 |
INVALID_TARGET_ERROR | 目标不是有效的SIP URI,或者无法转换为有效的SIP URI。 |
INVALID_STATE_ERROR | 对象处于不适合执行给定操作的状态。 |
方法
start
()
连接到信号服务器,并在以前停止的情况下恢复以前的状态。对于新的开始,如果UA配置中的register参数设置为true,则向SIP域注册。
stop
()
保存当前注册状态,并在正常注销和终止活动会话(如果有)后断开与信号服务器的连接。
register()
注册UA。注意:如果在UA配置参数中将register参数设置为true,UA将自动注册。
unregister
(options=null)
注销UA。var options = { all: true }; ua.unregister(options);
registrator()
获取 JsSIP.Registrator 注册器实例。
call(target, options=null)
拨打呼出的多媒体电话。
target:呼叫的目的地。表示目标用户名或完整SIP URI或JsSIP的字符串。URI实例。
options :参数可选项(以下为参数详情)
mediaConstraints =>具有两个有效字段(音频audio
和视频video)的对象,指示会话是否打算使用音频和/或视频以及要使用的约束。默认值是音频和视频都设置为true。
mediaStream =>要传输到另一端的MediaStream。
pcConfig =>对象,表示RTCPeerConnection RTCConfiguration。
rtcConstraints =>表示RTCPeerconnection约束的对象。
rtcOfferConstraints =>对象,表示RTCPeerconnection createOffer()的约束。
rtcAnswerConstraints =>对象,表示RTCPeerconnection createAnswer()的约束(用于将来传入的reINVITE或带有SDP提供的UPDATE)。
eventHandlers =>要注册到每个调用事件的事件处理程序的可选对象。为要收到通知的每个事件定义一个事件处理程序。
extraHeaders =>具有INVITE请求的额外SIP标头的字符串数组。
anonymous =>布尔字段,指示是否应匿名进行调用。默认值为false。
sessionTimersExpires =>
默认会话计时器间隔的数字(以秒为单位)(默认值为90,不要设置较低的值)。
// 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方法发送即时消息。
targrt:消息的目的地。表示目标用户名或完整SIP URI或JsSIP的字符串。URI实例。
body:消息内容。表示消息正文的字符串。
options:额外参数(如下)
contentType =>可选字符串,表示正文的内容类型。默认text/plain。
eventHandlers. =>要注册到每个JsSIP的事件处理程序的可选对象。消息事件。为要收到通知的每个事件定义一个事件处理程序。
extraHeaders. =>可选字符串数组,每个MESSAGE请求都有额外的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:具有JsSIP中定义的额外参数的可选对象。用于呼叫终止的RTCSession。
isRegistered()
如果UA已注册,则返回true,否则返回false。
isConnected()
如果已连接传输,则返回true,否则返回false。
get(parameter)
在运行时检索一次计算的配置参数。目前只能检索到realm和ha1。parameter:UA配置参数名称。
set(parameter, value)
在运行时修改给定的UA配置参数(一旦启动)。目前只能修改display_name、password、realm和ha1。如果可以进行修改,则返回true。
事件
JsSIP。UA类定义了一系列事件。它们中的每一个都允许注册回调函数,以便用户为每个给定的事件执行一个处理程序。
connecting
为每次传输连接尝试激发。事件参数字段(socket =>实例正在连接的JsSIP.socket。attempts =>指示传输连接尝试次数的数字。)
connected
在建立传输连接时激发。事件参数字段(socket =>实例已经连接了的JsSIP.socket)
disconnected
当传输连接尝试(或自动重试)失败时激发。事件参数字段(socket =>JsSIP.socket实例。error =>布尔值,指示是否因错误而断开连接。code =>可选数字,指示断开的code值。reason =>字符串,指socket断开的原因)
registered
为成功注册而激发。事件参数字段(response =>JsSIP。接收到的SIP 2XX响应的IncomingResponse实例。)
unregistered
因注销而被解雇。在以下情况下会触发此事件:作为注销请求的结果。UA.unregister()。如果正在注册,则定期重新注册失败。事件参数字段(response =>JsSIP。接收到的一个 (un)REGISTER SIP请求的SIP响应的IncomingResponse实例。cause =>Failure and End Causes的值)
Failure and End Causes:JsSIP提供了一组原因,以便让用户知道是什么导致请求或会话失败。JsSIP中定义了此处暴露的所有原因。C.原因名称空间,因此,在提供原因字段的事件中接收到的任何原因都可以与其进行比较。
registrationFailed
由于注册失败而激发。事件参数字段(response。cause)
registrationExpiring
在注册到期前几秒钟激发。如果应用程序没有为此事件设置任何侦听器,JsSIP将像往常一样重新注册。如果应用程序订阅了此事件,它将负责在registrationExpiring事件中调用ua.register()(否则注册将过期)。此事件为应用程序提供了在重新注册之前执行异步操作的机会。对于那些在REGISTER请求中的自定义SIP标头中使用外部获得的“令牌”的环境很有用。
newRTCSession
为传入或传出会话/呼叫激发。
传入会话的事件参数字段(originator:'remote' =>新会话由远程对等方生成。session => JsSIP。会话的RTCSession实例。request =>JsSIP。接收到的INVITE请求的IncomingRequest实例)
传出会话的事件参数字段(originator:'local' =>新会话由远程本地生成。session => JsSIP。会话的RTCSession实例。request =>JsSIP。接收到的INVITE请求的OutgoingRequest实例)
newMessage
为传入或传出的MESSAGE请求激发。
传入MESSAGE的事件参数字段(originator:'remote' =>新会话由远程对等方生成。session => JsSIP。会话的Message实例。request =>JsSIP。接收到的MESSAGE请求的IncomingRequest实例)
传出MESSAGE的事件参数字段(originator:'local' =>新会话由远程本地生成。session => JsSIP。会话的Message实例。request =>JsSIP。接收到的MESSAGE请求的OutgoingRequest实例)