vue项目调用jssip_jssip中文开发文档(完整版)

jsSip开发文档

完整案例demo下载地址: http://download.csdn.net/download/qq_39421580/10214712

概观:

1.JsSIP是一个简单易用的JavaScript库,它利用SIP和WebRTC的最新发展,在任何网站上提供全功能的SIP端点。

2.通过JsSIP ,只要几行代码,任何网站都可以通过音频,视频等获得实时通信功能。

特征:

2.音频/视频通话,即时消息和状态。

3.轻巧!

4.100%纯JavaScript从头开始构建。

5.易于使用和功能强大的用户API。

6.适用于OverSIP,Kamailio和Asterisk服务器。

入门:

一:1.JsSIP用户代理是JsSIP的核心元素。它表示与SIP帐户关联的SIP客户端。JsSIP用户代理是在类中定义的。JsSIP.UA

2.可以创建多个JsSIP用户代理(这对于在同一个Web应用程序中运行不同的SIP帐户很有用)。

二:创建一个jsSIP用户代理

JsSIP用户代理需要一个配置对象来进行初始化。

/**

* 创建websocket连接,连接地址最好是wss,本地测试可以使用ws,

* 如果信令服务使用FreeSWITCH,那么websocket连接地址如下:

* ws://FreeSWITCH所在服务器IP:5066 或

* wss://FreeSWITCH所在服务器IP:7443

*/

var socket = new JsSIP.WebSocketInterface('wss://sip.myhost.com');(详见三API)

/**

* User Agent配置参数,sockets表示信令服务器的连接集合,即可以

* 注册多个信令服务器;uri即注册用户的SIP地址,password为连接密

* 码;常用的参数还有register(true/false)表示是否直接注册;

* no_answer_timeout无应答超时时间等。

*/

var configuration = {

// freeswitch服务器地址

'outbound_proxy_set': 'ws://sip-ws.example.com',

'uri': 'sip:alice@example.com',

'password': 'superpassword'

};

// 使用上述配置创建User Agent

var coolPhone = new JsSIP.UA(configuration);

API说明

类 JsSIP

JsSIP主模块。

类 JsSIP.debug

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

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

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

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

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

类 JsSIP.UA

JsSIP SIP用户代理类。

首先实例化:

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

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

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配置中的参数设置为,则向SIP域注册。registertrue

stop()

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

register()

注册UA。

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

unregister(options=null)

取消注册UA。

参数为options

options对象中的字段all,可选,Boolean用于注销同一SIP用户的所有绑定。默认值是false。

var options = {

all: true

};

call(target, options=null)

拨打多媒体电话。

参数

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

Options             可选Object附加参数(见下文)。

options对象中的字段;

mediaConstraints      Object有两个有效的字段(audio和video)指示会话是否打算使用音频和/或视频以及要使用的约束。默认值是audio并且video设置为true。

mediaStream          MediaStream 传送到另一端。

pcConfig              Object代表RTCPeerConnection RTCConfiguration。

rtcConstraints          Object 表示RTCPeerconnection约束。

rtcOfferConstraints      Object代表RTCPeerconnection的限制createOffer()。

rtcAnswerConstraints    Object表示用于RTCPeerconnection约束createAnswer()(将被用于将来的输入REINVITE或UPDATE与SDP提供)。

eventHandlers          Object事件处理程序的可选项将被注册到每个呼叫事件。为每个要通知的事件定义事件处理程序。

extraHeaders            Array的Strings额外SIP头的INVITE请求。

Anonymous             Boolean指示是否应该匿名完成呼叫。默认值是false。

sessionTimersExpires      Number (以秒为单位)默认的会话定时器间隔(默认值是90,不要设置一个较低的值)。

// HTML5的元素,其中将显示本地和远程视频

var views = {

'selfView':   document.getElementById('my-video'),

'remoteView': document.getElementById('peer-video')

};

//对所需的调用事件进行回调

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。

eventHandlers   Object事件处理程序的可选项将被注册到每个JsSIP.Message事件。为每个要通知的事件定义事件处理程序。

extraHeaders     可选Array的Strings额外SIP头为每个MESSAGE请求。

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()

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

isConnected()

返回true运输是否连接,false否则。

Events(data事件)

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

Connecting:

为每个传输连接尝试而开火。

事件data字段

Socket            JsSIP.Socket 实例正在连接。

Attempts          Number 指示传输连接尝试。

Connected:

运输连接建立后触发。

事件data字段

Socket            JsSIP.Socket 已连接的实例。

Disconnected:

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

事件data字段

Socket             JsSIP.Socket 实例。

Error              Boolean 指示套接字是否由于错误而断开连接

Code              可选Number指示套接字断开代码。

Reason             可选String指示插座断开原因。

Registered:

成功注册成功

事件data字段

Response            JsSIP.IncomingResponse收到的SIP 2XX响应的实例。

unregistered

被解雇注册。在以下情况下会触发此事件:

1.作为未注册请求的结果。UA.unregister()。

2.如果被注册,则定期重新注册失败。

事件data字段

Response      JsSIP.IncomingResponse接收到的(未)注册SIP请求的SIP响应实例。

Cause         null以便对非注册 SIP请求作出正确的响应。在其他情况下,失败和最终原因的一个值。

registrationFailed:

由于注册失败而被解雇。

事件data字段

Response      JsSIP.IncomingResponse接收到的SIP否定响应的实例,如果失败是由这样的响应的接收产生的,否则为空。

Ca

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值