【JsSIP】JsSIP.URI-详情

一个实例JsSIP.URI类表示SIP URI,并提供一组属性和方法来检索和设置URI的不同部分。

它提供了一种以完整形式(包括参数和头)和AoR形式表示URI的方法。

URI允许自己被克隆,这样就可以从自己形成第二个URI。

例子:

JsSIP.URI(scheme="sip", user=null, host, port=null, parameters=null, headers=null)

如果没有传递主机值,则此类的实例化将引发异常。

参数(scheme =>指示uri scheme的可选字符串。默认值为sip。user =>字符串,指用户名。host =>字符串,一个host地址,可以是一个IP地址或者一个主机名。parameters =>一个字符串对象,如果是空的话,必须值为null。headers =>具有以字符串或字符串数组形式的属性值组成的可选对象)

var parameters = {
  param_name: 'param_value',
  valueless_param: null
}

var headers = {
  header_name: 'header_value',
  multi_header: ['multi_header_value1','multi_header_value2']
}
var uri = new JsSIP.URI('sip', 'alice', 'atlanta.com', 5060, parameters, headers)

uri.toAor() // Returns "sip:alice@atlanta.com"
uri.toString() // Returns "sip:alice@atlanta.com:5060;param_name=param_value;valueless_param?Header-Name=header_value&Multi-Header=multi_header_value1&Multi-Header=multi_header_value2"

实例属性

scheme

设置或者得到一个URI scheme的字符串。

uri.scheme = 'sip';
uri.scheme // Returns 'sip'

uri.scheme = 'sIP';
uri.scheme // Returns 'sip'

user

设置或者得到URI用户,字符串。

uri.user = 'alice';
uri.user // Returns 'alice'

uri.user = 'Alice';
uri.user // Returns 'Alice'

uri.user = 'j@s0n'
uri.toAor() // Returns 'sip:j%40s0n@atlanta.com'

host

设置或者得到URI  host,字符串。

uri.host = 'atlanta.com';
uri.host // Returns 'atlanta.com'

uri.host = 'AtLATta.cOm';
uri.host // Returns 'atlanta.com'

port

uri.port = 5060;
uri.port // Returns 5060

uri.port = '5060';
uri.port // Returns 5060

实例方法

setParam(key, value=null)

使用给定值创建或替换给定的URI参数

参数(key指要修改或创建的指定名称。value指要修改或创建后的值。)

uri.setParam('param_name', 'param_value');

getParam(key)

获取给定URI参数的值。如果参数集中不存在该参数,则返回undefined。

uri.getParam('param_name'); // Returns 'param_value'

hasParam(key)

验证给定URI参数是否存在。如果参数存在,则返回true,否则返回false。

uri.hasParam('param_name'); // Returns true

deleteParam(key)

从URI中删除给定的参数。

uri.deleteParam('param_name');

clearParams()

删除所有URI参数。

setHeader(key, value)

使用给定值创建或替换给定的URI标头(value为字符串或数组)

uri.setHeader('header_name','header_value');
uri.setHeader('header_name',['header_value1','header_value2']);

getHeader(key)

获取给定URI标头的值。返回一个数组,该数组具有给header的value/s,如果标头集中不存在标头,则返回undefined的值。

uri.setHeader('header_name',['header_value1','header_value2']);
uri.getHeader('header_name'); // Returns ['header_value1','header_value2']

uri.setHeader('header_name','header_value');
uri.getHeader('header_name'); // Returns ['header_value']

hasHeader(key)

验证给定URI标头是否存在。如果标头存在,则返回true,否则返回false。

uri.setHeader('header_name','header_value');
uri.hasHeader('header_name'); // Returns true

deleteHeader(key)

从URI中删除给定的标头。

uri.delteHeader('header_name');

clearHeaders()

删除所有URI标头。

uri.clearHeaders();

clone()

返回克隆的JsSIP.URI的URI实例。

cloned_uri = uri.clone();
cloned_uri === uri // Returns false

toString()

返回表示URI的字符串。

如RFC 3261的BNF语法中所述,不能显示为未转义的字符是转义的。

uri.toString(); // Returns "sip:alice@atlanta.com:5060?header_name=header_value1&header_name=header_value2"

toAor()

返回表示URI的AoR的字符串。

如RFC 3261的BNF语法中所述,不能显示为未转义的字符是转义的。

uri.toAor(); // Returns "sip:alice@atlanta.com"

uri.user = 'j%40s0n'
uri.toAor(): // Returns "sip:j%40s0n@atlanta.com"

模块功能

parse(uri)

根据SIP URI语法规则分析给定的字符串。返回JsSIP.URI实例(如果解析成功),否则未定义。
参数(uri:表示SIP URI的字符串。)

var uri = JsSIP.URI.parse('sip:alice@atlanta.com');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值