diff --git a/CHANGELOG.md b/CHANGELOG.md index c0b2cbeca..831286564 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ CHANGELOG ========= +Version 3.0.18 (released in 2017-10-13) +-------------------------------------- +* Dialog: ACK to initial INVITE could have lower CSeq than current remote_cseq. + + Version 3.0.17 (released in 2017-10-12) -------------------------------------- * RTCSession: process INFO in early state. diff --git a/dist/jssip.js b/dist/jssip.js index 26bc8604c..3e75ff8f7 100644 --- a/dist/jssip.js +++ b/dist/jssip.js @@ -1,5 +1,5 @@ /* - * JsSIP v3.0.17 + * JsSIP v3.0.18 * the Javascript SIP library * Copyright: 2012-2017 José Luis Millán (https://github.com/jmillan) * Homepage: http://jssip.net @@ -226,6 +226,7 @@ function Dialog(owner, message, type, state) { this.remote_uri = message.parseHeader('from').uri; this.remote_target = contact.uri; this.route_set = message.getHeaders('record-route'); + this.ack_seqnum = this.remote_seqnum; } // RFC 3261 12.1.2 else if(type === 'UAC') { @@ -243,6 +244,7 @@ function Dialog(owner, message, type, state) { this.remote_uri = message.parseHeader('to').uri; this.remote_target = contact.uri; this.route_set = message.getHeaders('record-route').reverse(); + this.ack_seqnum = null; } this.owner = owner; @@ -302,11 +304,17 @@ Dialog.prototype = { if(!this.remote_seqnum) { this.remote_seqnum = request.cseq; } else if(request.cseq < this.remote_seqnum) { - //Do not try to reply to an ACK request. - if (request.method !== JsSIP_C.ACK) { + if(request.method === JsSIP_C.ACK) { + // We are not expecting any ACK with lower seqnum than the current one. + // Or this is not the ACK we are waiting for. + if(this.ack_seqnum === null || request.cseq !== this.ack_seqnum) { + return false; + } + } + else { request.reply(500); + return false; } - return false; } else if(request.cseq > this.remote_seqnum) { this.remote_seqnum = request.cseq; } @@ -376,6 +384,15 @@ Dialog.prototype = { return; } + //ACK received. Cleanup this.ack_seqnum + if(request.method === JsSIP_C.ACK && this.ack_seqnum !== null) { + this.ack_seqnum = null; + } + //INVITE received. Set this.ack_seqnum + else if (request.method === JsSIP_C.INVITE) { + this.ack_seqnum = request.cseq; + } + this.owner.receiveRequest(request); } }; @@ -27417,7 +27434,7 @@ module.exports={ "name": "jssip", "title": "JsSIP", "description": "the Javascript SIP library", - "version": "3.0.17", + "version": "3.0.18", "homepage": "http://jssip.net", "author": "José Luis Millán (https://github.com/jmillan)", "contributors": [ diff --git a/dist/jssip.min.js b/dist/jssip.min.js index 3f28302ec..0adadf524 100644 --- a/dist/jssip.min.js +++ b/dist/jssip.min.js @@ -1,9 +1,9 @@ /* - * JsSIP v3.0.17 + * JsSIP v3.0.18 * the Javascript SIP library * Copyright: 2012-2017 José Luis Millán (https://github.com/jmillan) * Homepage: http://jssip.net * License: MIT */ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).JsSIP=e()}}(function(){return function e(t,n,r){function s(o,a){if(!n[o]){if(!t[o]){var l="function"==typeof require&&require;if(!a&&l)return l(o,!0);if(i)return i(o,!0);var u=new Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[o]={exports:{}};t[o][0].call(c.exports,function(e){var n=t[o][1][e];return s(n||e)},c,c.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;othis.remote_seqnum&&(this.remote_seqnum=e.cseq)}else this.remote_seqnum=e.cseq;if(e.method===a.INVITE||e.method===a.UPDATE&&e.body){if(!0===this.uac_pending_reply)e.reply(491);else{if(!0===this.uas_pending_reply){var n=1+(10*Math.random()|0);return e.reply(500,null,["Retry-After:"+n]),!1}this.uas_pending_reply=!0,e.server_transaction.on("stateChanged",function n(){this.state!==l.C.STATUS_ACCEPTED&&this.state!==l.C.STATUS_COMPLETED&&this.state!==l.C.STATUS_TERMINATED||(e.server_transaction.removeListener("stateChanged",n),t.uas_pending_reply=!1)})}e.hasHeader("contact")&&e.server_transaction.on("stateChanged",function(){this.state===l.C.STATUS_ACCEPTED&&(t.remote_target=e.parseHeader("contact").uri)})}else e.method===a.NOTIFY&&e.hasHeader("contact")&&e.server_transaction.on("stateChanged",function(){this.state===l.C.STATUS_COMPLETED&&(t.remote_target=e.parseHeader("contact").uri)});return!0},sendRequest:function(e,t,n){var r=(n=n||{}).extraHeaders&&n.extraHeaders.slice()||[],s=n.body||null,i=this.createRequest(t,r,s);return new u(this,e,i).send(),i},receiveRequest:function(e){this.checkInDialogRequest(e)&&this.owner.receiveRequest(e)}}},{"./Constants":1,"./Dialog/RequestSender":3,"./SIPMessage":19,"./Transactions":22,debug:29}],3:[function(e,t,n){function r(e,t,n){this.dialog=e,this.applicant=t,this.request=n,this.reattempt=!1,this.reattemptTimer=null}t.exports=r;var s=e("../Constants"),i=e("../Transactions"),o=e("../RTCSession"),a=e("../RequestSender");r.prototype={send:function(){var e=this,t=new a(this,this.dialog.owner.ua);t.send(),(this.request.method===s.INVITE||this.request.method===s.UPDATE&&this.request.body)&&t.clientTransaction.state!==i.C.STATUS_TERMINATED&&(this.dialog.uac_pending_reply=!0,t.clientTransaction.on("stateChanged",function n(){this.state!==i.C.STATUS_ACCEPTED&&this.state!==i.C.STATUS_COMPLETED&&this.state!==i.C.STATUS_TERMINATED||(t.clientTransaction.removeListener("stateChanged",n),e.dialog.uac_pending_reply=!1)}))},onRequestTimeout:function(){this.applicant.onRequestTimeout()},onTransportError:function(){this.applicant.onTransportError()},receiveResponse:function(e){var t=this;408===e.status_code||481===e.status_code?this.applicant.onDialogError(e):e.method===s.INVITE&&491===e.status_code?this.reattempt?this.applicant.receiveResponse(e):(this.request.cseq.value=this.dialog.local_seqnum+=1,this.reattemptTimer=setTimeout(function(){t.applicant.owner.status!==o.C.STATUS_TERMINATED&&(t.reattempt=!0,t.request_sender.send())},1e3)):this.applicant.receiveResponse(e)}}},{"../Constants":1,"../RTCSession":11,"../RequestSender":18,"../Transactions":22}],4:[function(e,t,n){function r(e){this.credentials=e,this.cnonce=null,this.nc=0,this.ncHex="00000000",this.algorithm=null,this.realm=null,this.nonce=null,this.opaque=null,this.stale=null,this.qop=null,this.method=null,this.uri=null,this.ha1=null,this.response=null}t.exports=r;var s=e("debug")("JsSIP:DigestAuthentication"),i=e("debug")("JsSIP:ERROR:DigestAuthentication");i.log=console.warn.bind(console);var o=e("./Utils");r.prototype.get=function(e){switch(e){case"realm":return this.realm;case"ha1":return this.ha1;default:return void i('get() | cannot get "%s" parameter',e)}},r.prototype.authenticate=function(e,t){var n,r;if(this.algorithm=t.algorithm,this.realm=t.realm,this.nonce=t.nonce,this.opaque=t.opaque,this.stale=t.stale,this.algorithm){if("MD5"!==this.algorithm)return i('authenticate() | challenge with Digest algorithm different than "MD5", authentication aborted'),!1}else this.algorithm="MD5";if(!this.nonce)return i("authenticate() | challenge without Digest nonce, authentication aborted"),!1;if(!this.realm)return i("authenticate() | challenge without Digest realm, authentication aborted"),!1;if(!this.credentials.password){if(!this.credentials.ha1)return i("authenticate() | no plain SIP password nor ha1 provided, authentication aborted"),!1;if(this.credentials.realm!==this.realm)return i('authenticate() | no plain SIP password, and stored `realm` does not match the given `realm`, cannot authenticate [stored:"%s", given:"%s"]',this.credentials.realm,this.realm),!1}if(t.qop)if(t.qop.indexOf("auth")>-1)this.qop="auth";else{if(!(t.qop.indexOf("auth-int")>-1))return i('authenticate() | challenge without Digest qop different than "auth" or "auth-int", authentication aborted'),!1;this.qop="auth-int"}else this.qop=null;return this.method=e.method,this.uri=e.ruri,this.cnonce=o.createRandomToken(12),this.nc+=1,r=Number(this.nc).toString(16),this.ncHex="00000000".substr(0,8-r.length)+r,4294967296===this.nc&&(this.nc=1,this.ncHex="00000001"),this.credentials.password?this.ha1=o.calculateMD5(this.credentials.username+":"+this.realm+":"+this.credentials.password):this.ha1=this.credentials.ha1,"auth"===this.qop?(n=o.calculateMD5(this.method+":"+this.uri),this.response=o.calculateMD5(this.ha1+":"+this.nonce+":"+this.ncHex+":"+this.cnonce+":auth:"+n)):"auth-int"===this.qop?(n=o.calculateMD5(this.method+":"+this.uri+":"+o.calculateMD5(this.body?this.body:"")),this.response=o.calculateMD5(this.ha1+":"+this.nonce+":"+this.ncHex+":"+this.cnonce+":auth-int:"+n)):null===this.qop&&(n=o.calculateMD5(this.method+":"+this.uri),this.response=o.calculateMD5(this.ha1+":"+this.nonce+":"+n)),s("authenticate() | response generated"),!0},r.prototype.toString=function(){var e=[];if(!this.response)throw new Error("response field does not exist, cannot generate Authorization header");return e.push("algorithm="+this.algorithm),e.push('username="'+this.credentials.username+'"'),e.push('realm="'+this.realm+'"'),e.push('nonce="'+this.nonce+'"'),e.push('uri="'+this.uri+'"'),e.push('response="'+this.response+'"'),this.opaque&&e.push('opaque="'+this.opaque+'"'),this.qop&&(e.push("qop="+this.qop),e.push('cnonce="'+this.cnonce+'"'),e.push("nc="+this.ncHex)),"Digest "+e.join(", ")}},{"./Utils":26,debug:29}],5:[function(e,t,n){var r={ConfigurationError:function(){var e=function(e,t){this.code=1,this.name="CONFIGURATION_ERROR",this.parameter=e,this.value=t,this.message=this.value?"Invalid value "+JSON.stringify(this.value)+' for parameter "'+this.parameter+'"':"Missing parameter: "+this.parameter};return e.prototype=new Error,e}(),InvalidStateError:function(){var e=function(e){this.code=2,this.name="INVALID_STATE_ERROR",this.status=e,this.message="Invalid status: "+e};return e.prototype=new Error,e}(),NotSupportedError:function(){var e=function(e){this.code=3,this.name="NOT_SUPPORTED_ERROR",this.message=e};return e.prototype=new Error,e}(),NotReadyError:function(){var e=function(e){this.code=4,this.name="NOT_READY_ERROR",this.message=e};return e.prototype=new Error,e}()};t.exports=r},{}],6:[function(e,t,n){t.exports=function(){function t(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g,escape)+'"'}var n={parse:function(n,r){function s(e){knLn&&(Ln=kn,qn=[]),qn.push(e))}function i(){var e;return"\r\n"===n.substr(kn,2)?(e="\r\n",kn+=2):(e=null,0===Mn&&s('"\\r\\n"')),e}function o(){var e;return/^[0-9]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[0-9]")),e}function a(){var e;return/^[a-zA-Z]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[a-zA-Z]")),e}function l(){var e;return/^[0-9a-fA-F]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[0-9a-fA-F]")),e}function u(){var e;return null===(e=h())&&(e=p()),e}function c(){var e;return/^[\0-\xFF]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[\\0-\\xFF]")),e}function d(){var e;return/^["]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s('["]')),e}function h(){var e;return 32===n.charCodeAt(kn)?(e=" ",kn++):(e=null,0===Mn&&s('" "')),e}function p(){var e;return 9===n.charCodeAt(kn)?(e="\t",kn++):(e=null,0===Mn&&s('"\\t"')),e}function f(){var e;return/^[a-zA-Z0-9]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[a-zA-Z0-9]")),e}function m(){var e;return 59===n.charCodeAt(kn)?(e=";",kn++):(e=null,0===Mn&&s('";"')),null===e&&(47===n.charCodeAt(kn)?(e="/",kn++):(e=null,0===Mn&&s('"/"')),null===e&&(63===n.charCodeAt(kn)?(e="?",kn++):(e=null,0===Mn&&s('"?"')),null===e&&(58===n.charCodeAt(kn)?(e=":",kn++):(e=null,0===Mn&&s('":"')),null===e&&(64===n.charCodeAt(kn)?(e="@",kn++):(e=null,0===Mn&&s('"@"')),null===e&&(38===n.charCodeAt(kn)?(e="&",kn++):(e=null,0===Mn&&s('"&"')),null===e&&(61===n.charCodeAt(kn)?(e="=",kn++):(e=null,0===Mn&&s('"="')),null===e&&(43===n.charCodeAt(kn)?(e="+",kn++):(e=null,0===Mn&&s('"+"')),null===e&&(36===n.charCodeAt(kn)?(e="$",kn++):(e=null,0===Mn&&s('"$"')),null===e&&(44===n.charCodeAt(kn)?(e=",",kn++):(e=null,0===Mn&&s('","'))))))))))),e}function g(){var e;return null===(e=f())&&(e=v()),e}function v(){var e;return 45===n.charCodeAt(kn)?(e="-",kn++):(e=null,0===Mn&&s('"-"')),null===e&&(95===n.charCodeAt(kn)?(e="_",kn++):(e=null,0===Mn&&s('"_"')),null===e&&(46===n.charCodeAt(kn)?(e=".",kn++):(e=null,0===Mn&&s('"."')),null===e&&(33===n.charCodeAt(kn)?(e="!",kn++):(e=null,0===Mn&&s('"!"')),null===e&&(126===n.charCodeAt(kn)?(e="~",kn++):(e=null,0===Mn&&s('"~"')),null===e&&(42===n.charCodeAt(kn)?(e="*",kn++):(e=null,0===Mn&&s('"*"')),null===e&&(39===n.charCodeAt(kn)?(e="'",kn++):(e=null,0===Mn&&s('"\'"')),null===e&&(40===n.charCodeAt(kn)?(e="(",kn++):(e=null,0===Mn&&s('"("')),null===e&&(41===n.charCodeAt(kn)?(e=")",kn++):(e=null,0===Mn&&s('")"')))))))))),e}function T(){var e,t,r,i,o;return i=kn,o=kn,37===n.charCodeAt(kn)?(e="%",kn++):(e=null,0===Mn&&s('"%"')),null!==e&&null!==(t=l())&&null!==(r=l())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=e.join("")),null===e&&(kn=i),e}function _(){var e,t,n,r,s,o;for(r=kn,s=kn,o=kn,e=[],t=u();null!==t;)e.push(t),t=u();if(null!==e&&null!==(t=i())?e=[e,t]:(e=null,kn=o),null!==(e=null!==e?e:"")){if(null!==(n=u()))for(t=[];null!==n;)t.push(n),n=u();else t=null;null!==t?e=[e,t]:(e=null,kn=s)}else e=null,kn=s;return null!==e&&(e=" "),null===e&&(kn=r),e}function C(){var e;return e=_(),e=null!==e?e:""}function S(){var e,t,r,i,o;for(i=kn,o=kn,e=[],null===(t=h())&&(t=p());null!==t;)e.push(t),null===(t=h())&&(t=p());return null!==e?(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=C())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=":"),null===e&&(kn=i),e}function E(){var e,t,r,s,i,o,a;if(i=kn,o=kn,null!==(t=y()))for(e=[];null!==t;)e.push(t),t=y();else e=null;if(null!==e){for(t=[],a=kn,r=[],s=_();null!==s;)r.push(s),s=_();for(null!==r&&null!==(s=y())?r=[r,s]:(r=null,kn=a);null!==r;){for(t.push(r),a=kn,r=[],s=_();null!==s;)r.push(s),s=_();null!==r&&null!==(s=y())?r=[r,s]:(r=null,kn=a)}null!==t?e=[e,t]:(e=null,kn=o)}else e=null,kn=o;return null!==e&&(e=function(e){return n.substring(kn,e)}(i)),null===e&&(kn=i),e}function y(){var e;return/^[!-~]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[!-~]")),null===e&&(e=A()),e}function A(){var e;return/^[\x80-\uFFFF]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[\\x80-\\uFFFF]")),e}function R(){var e;return/^[\x80-\xBF]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[\\x80-\\xBF]")),e}function b(){var e,t,r;if(r=kn,null===(t=f())&&(45===n.charCodeAt(kn)?(t="-",kn++):(t=null,0===Mn&&s('"-"')),null===t&&(46===n.charCodeAt(kn)?(t=".",kn++):(t=null,0===Mn&&s('"."')),null===t&&(33===n.charCodeAt(kn)?(t="!",kn++):(t=null,0===Mn&&s('"!"')),null===t&&(37===n.charCodeAt(kn)?(t="%",kn++):(t=null,0===Mn&&s('"%"')),null===t&&(42===n.charCodeAt(kn)?(t="*",kn++):(t=null,0===Mn&&s('"*"')),null===t&&(95===n.charCodeAt(kn)?(t="_",kn++):(t=null,0===Mn&&s('"_"')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"')),null===t&&(96===n.charCodeAt(kn)?(t="`",kn++):(t=null,0===Mn&&s('"`"')),null===t&&(39===n.charCodeAt(kn)?(t="'",kn++):(t=null,0===Mn&&s('"\'"')),null===t&&(126===n.charCodeAt(kn)?(t="~",kn++):(t=null,0===Mn&&s('"~"')))))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=f())&&(45===n.charCodeAt(kn)?(t="-",kn++):(t=null,0===Mn&&s('"-"')),null===t&&(46===n.charCodeAt(kn)?(t=".",kn++):(t=null,0===Mn&&s('"."')),null===t&&(33===n.charCodeAt(kn)?(t="!",kn++):(t=null,0===Mn&&s('"!"')),null===t&&(37===n.charCodeAt(kn)?(t="%",kn++):(t=null,0===Mn&&s('"%"')),null===t&&(42===n.charCodeAt(kn)?(t="*",kn++):(t=null,0===Mn&&s('"*"')),null===t&&(95===n.charCodeAt(kn)?(t="_",kn++):(t=null,0===Mn&&s('"_"')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"')),null===t&&(96===n.charCodeAt(kn)?(t="`",kn++):(t=null,0===Mn&&s('"`"')),null===t&&(39===n.charCodeAt(kn)?(t="'",kn++):(t=null,0===Mn&&s('"\'"')),null===t&&(126===n.charCodeAt(kn)?(t="~",kn++):(t=null,0===Mn&&s('"~"'))))))))))));else e=null;return null!==e&&(e=function(e){return n.substring(kn,e)}(r)),null===e&&(kn=r),e}function w(){var e,t,r;if(r=kn,null===(t=f())&&(45===n.charCodeAt(kn)?(t="-",kn++):(t=null,0===Mn&&s('"-"')),null===t&&(33===n.charCodeAt(kn)?(t="!",kn++):(t=null,0===Mn&&s('"!"')),null===t&&(37===n.charCodeAt(kn)?(t="%",kn++):(t=null,0===Mn&&s('"%"')),null===t&&(42===n.charCodeAt(kn)?(t="*",kn++):(t=null,0===Mn&&s('"*"')),null===t&&(95===n.charCodeAt(kn)?(t="_",kn++):(t=null,0===Mn&&s('"_"')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"')),null===t&&(96===n.charCodeAt(kn)?(t="`",kn++):(t=null,0===Mn&&s('"`"')),null===t&&(39===n.charCodeAt(kn)?(t="'",kn++):(t=null,0===Mn&&s('"\'"')),null===t&&(126===n.charCodeAt(kn)?(t="~",kn++):(t=null,0===Mn&&s('"~"'))))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=f())&&(45===n.charCodeAt(kn)?(t="-",kn++):(t=null,0===Mn&&s('"-"')),null===t&&(33===n.charCodeAt(kn)?(t="!",kn++):(t=null,0===Mn&&s('"!"')),null===t&&(37===n.charCodeAt(kn)?(t="%",kn++):(t=null,0===Mn&&s('"%"')),null===t&&(42===n.charCodeAt(kn)?(t="*",kn++):(t=null,0===Mn&&s('"*"')),null===t&&(95===n.charCodeAt(kn)?(t="_",kn++):(t=null,0===Mn&&s('"_"')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"')),null===t&&(96===n.charCodeAt(kn)?(t="`",kn++):(t=null,0===Mn&&s('"`"')),null===t&&(39===n.charCodeAt(kn)?(t="'",kn++):(t=null,0===Mn&&s('"\'"')),null===t&&(126===n.charCodeAt(kn)?(t="~",kn++):(t=null,0===Mn&&s('"~"')))))))))));else e=null;return null!==e&&(e=function(e){return n.substring(kn,e)}(r)),null===e&&(kn=r),e}function I(){var e,t,r;if(r=kn,null===(t=f())&&(45===n.charCodeAt(kn)?(t="-",kn++):(t=null,0===Mn&&s('"-"')),null===t&&(46===n.charCodeAt(kn)?(t=".",kn++):(t=null,0===Mn&&s('"."')),null===t&&(33===n.charCodeAt(kn)?(t="!",kn++):(t=null,0===Mn&&s('"!"')),null===t&&(37===n.charCodeAt(kn)?(t="%",kn++):(t=null,0===Mn&&s('"%"')),null===t&&(42===n.charCodeAt(kn)?(t="*",kn++):(t=null,0===Mn&&s('"*"')),null===t&&(95===n.charCodeAt(kn)?(t="_",kn++):(t=null,0===Mn&&s('"_"')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"')),null===t&&(96===n.charCodeAt(kn)?(t="`",kn++):(t=null,0===Mn&&s('"`"')),null===t&&(39===n.charCodeAt(kn)?(t="'",kn++):(t=null,0===Mn&&s('"\'"')),null===t&&(126===n.charCodeAt(kn)?(t="~",kn++):(t=null,0===Mn&&s('"~"')),null===t&&(40===n.charCodeAt(kn)?(t="(",kn++):(t=null,0===Mn&&s('"("')),null===t&&(41===n.charCodeAt(kn)?(t=")",kn++):(t=null,0===Mn&&s('")"')),null===t&&(60===n.charCodeAt(kn)?(t="<",kn++):(t=null,0===Mn&&s('"<"')),null===t&&(62===n.charCodeAt(kn)?(t=">",kn++):(t=null,0===Mn&&s('">"')),null===t&&(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null===t&&(92===n.charCodeAt(kn)?(t="\\",kn++):(t=null,0===Mn&&s('"\\\\"')),null===t&&null===(t=d())&&(47===n.charCodeAt(kn)?(t="/",kn++):(t=null,0===Mn&&s('"/"')),null===t&&(91===n.charCodeAt(kn)?(t="[",kn++):(t=null,0===Mn&&s('"["')),null===t&&(93===n.charCodeAt(kn)?(t="]",kn++):(t=null,0===Mn&&s('"]"')),null===t&&(63===n.charCodeAt(kn)?(t="?",kn++):(t=null,0===Mn&&s('"?"')),null===t&&(123===n.charCodeAt(kn)?(t="{",kn++):(t=null,0===Mn&&s('"{"')),null===t&&(125===n.charCodeAt(kn)?(t="}",kn++):(t=null,0===Mn&&s('"}"')))))))))))))))))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=f())&&(45===n.charCodeAt(kn)?(t="-",kn++):(t=null,0===Mn&&s('"-"')),null===t&&(46===n.charCodeAt(kn)?(t=".",kn++):(t=null,0===Mn&&s('"."')),null===t&&(33===n.charCodeAt(kn)?(t="!",kn++):(t=null,0===Mn&&s('"!"')),null===t&&(37===n.charCodeAt(kn)?(t="%",kn++):(t=null,0===Mn&&s('"%"')),null===t&&(42===n.charCodeAt(kn)?(t="*",kn++):(t=null,0===Mn&&s('"*"')),null===t&&(95===n.charCodeAt(kn)?(t="_",kn++):(t=null,0===Mn&&s('"_"')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"')),null===t&&(96===n.charCodeAt(kn)?(t="`",kn++):(t=null,0===Mn&&s('"`"')),null===t&&(39===n.charCodeAt(kn)?(t="'",kn++):(t=null,0===Mn&&s('"\'"')),null===t&&(126===n.charCodeAt(kn)?(t="~",kn++):(t=null,0===Mn&&s('"~"')),null===t&&(40===n.charCodeAt(kn)?(t="(",kn++):(t=null,0===Mn&&s('"("')),null===t&&(41===n.charCodeAt(kn)?(t=")",kn++):(t=null,0===Mn&&s('")"')),null===t&&(60===n.charCodeAt(kn)?(t="<",kn++):(t=null,0===Mn&&s('"<"')),null===t&&(62===n.charCodeAt(kn)?(t=">",kn++):(t=null,0===Mn&&s('">"')),null===t&&(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null===t&&(92===n.charCodeAt(kn)?(t="\\",kn++):(t=null,0===Mn&&s('"\\\\"')),null===t&&null===(t=d())&&(47===n.charCodeAt(kn)?(t="/",kn++):(t=null,0===Mn&&s('"/"')),null===t&&(91===n.charCodeAt(kn)?(t="[",kn++):(t=null,0===Mn&&s('"["')),null===t&&(93===n.charCodeAt(kn)?(t="]",kn++):(t=null,0===Mn&&s('"]"')),null===t&&(63===n.charCodeAt(kn)?(t="?",kn++):(t=null,0===Mn&&s('"?"')),null===t&&(123===n.charCodeAt(kn)?(t="{",kn++):(t=null,0===Mn&&s('"{"')),null===t&&(125===n.charCodeAt(kn)?(t="}",kn++):(t=null,0===Mn&&s('"}"'))))))))))))))))))))))));else e=null;return null!==e&&(e=function(e){return n.substring(kn,e)}(r)),null===e&&(kn=r),e}function O(){var e,t,r,i,o;return i=kn,o=kn,null!==(e=C())?(42===n.charCodeAt(kn)?(t="*",kn++):(t=null,0===Mn&&s('"*"')),null!==t&&null!==(r=C())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e="*"),null===e&&(kn=i),e}function x(){var e,t,r,i,o;return i=kn,o=kn,null!==(e=C())?(47===n.charCodeAt(kn)?(t="/",kn++):(t=null,0===Mn&&s('"/"')),null!==t&&null!==(r=C())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e="/"),null===e&&(kn=i),e}function N(){var e,t,r,i,o;return i=kn,o=kn,null!==(e=C())?(61===n.charCodeAt(kn)?(t="=",kn++):(t=null,0===Mn&&s('"="')),null!==t&&null!==(r=C())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e="="),null===e&&(kn=i),e}function P(){var e,t,r,i,o;return i=kn,o=kn,null!==(e=C())?(40===n.charCodeAt(kn)?(t="(",kn++):(t=null,0===Mn&&s('"("')),null!==t&&null!==(r=C())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e="("),null===e&&(kn=i),e}function D(){var e,t,r,i,o;return i=kn,o=kn,null!==(e=C())?(41===n.charCodeAt(kn)?(t=")",kn++):(t=null,0===Mn&&s('")"')),null!==t&&null!==(r=C())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=")"),null===e&&(kn=i),e}function U(){var e,t,r,i;return r=kn,i=kn,62===n.charCodeAt(kn)?(e=">",kn++):(e=null,0===Mn&&s('">"')),null!==e&&null!==(t=C())?e=[e,t]:(e=null,kn=i),null!==e&&(e=">"),null===e&&(kn=r),e}function k(){var e,t,r,i;return r=kn,i=kn,null!==(e=C())?(60===n.charCodeAt(kn)?(t="<",kn++):(t=null,0===Mn&&s('"<"')),null!==t?e=[e,t]:(e=null,kn=i)):(e=null,kn=i),null!==e&&(e="<"),null===e&&(kn=r),e}function M(){var e,t,r,i,o;return i=kn,o=kn,null!==(e=C())?(44===n.charCodeAt(kn)?(t=",",kn++):(t=null,0===Mn&&s('","')),null!==t&&null!==(r=C())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=","),null===e&&(kn=i),e}function L(){var e,t,r,i,o;return i=kn,o=kn,null!==(e=C())?(59===n.charCodeAt(kn)?(t=";",kn++):(t=null,0===Mn&&s('";"')),null!==t&&null!==(r=C())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=";"),null===e&&(kn=i),e}function q(){var e,t,r,i,o;return i=kn,o=kn,null!==(e=C())?(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=C())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=":"),null===e&&(kn=i),e}function H(){var e,t,n,r;return n=kn,r=kn,null!==(e=C())&&null!==(t=d())?e=[e,t]:(e=null,kn=r),null!==e&&(e='"'),null===e&&(kn=n),e}function F(){var e,t,n,r;return n=kn,r=kn,null!==(e=d())&&null!==(t=C())?e=[e,t]:(e=null,kn=r),null!==e&&(e='"'),null===e&&(kn=n),e}function j(){var e,t,n,r;if(r=kn,null!==(e=P())){for(t=[],null===(n=G())&&null===(n=z())&&(n=j());null!==n;)t.push(n),null===(n=G())&&null===(n=z())&&(n=j());null!==t&&null!==(n=D())?e=[e,t,n]:(e=null,kn=r)}else e=null,kn=r;return e}function G(){var e;return/^[!-']/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[!-']")),null===e&&(/^[*-[]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[*-[]")),null===e&&(/^[\]-~]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[\\]-~]")),null===e&&null===(e=A())&&(e=_()))),e}function B(){var e,t,r,s,i,o;if(i=kn,o=kn,null!==(e=C()))if(null!==(t=d())){for(r=[],null===(s=V())&&(s=z());null!==s;)r.push(s),null===(s=V())&&(s=z());null!==r&&null!==(s=d())?e=[e,t,r,s]:(e=null,kn=o)}else e=null,kn=o;else e=null,kn=o;return null!==e&&(e=function(e){return n.substring(kn,e)}(i)),null===e&&(kn=i),e}function W(){var e,t,r,s,i,o;if(i=kn,o=kn,null!==(e=C()))if(null!==(t=d())){for(r=[],null===(s=V())&&(s=z());null!==s;)r.push(s),null===(s=V())&&(s=z());null!==r&&null!==(s=d())?e=[e,t,r,s]:(e=null,kn=o)}else e=null,kn=o;else e=null,kn=o;return null!==e&&(e=function(e){return n.substring(kn-1,e+1)}(i)),null===e&&(kn=i),e}function V(){var e;return null===(e=_())&&(33===n.charCodeAt(kn)?(e="!",kn++):(e=null,0===Mn&&s('"!"')),null===e&&(/^[#-[]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[#-[]")),null===e&&(/^[\]-~]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[\\]-~]")),null===e&&(e=A())))),e}function z(){var e,t,r;return r=kn,92===n.charCodeAt(kn)?(e="\\",kn++):(e=null,0===Mn&&s('"\\\\"')),null!==e?(/^[\0-\t]/.test(n.charAt(kn))?(t=n.charAt(kn),kn++):(t=null,0===Mn&&s("[\\0-\\t]")),null===t&&(/^[\x0B-\f]/.test(n.charAt(kn))?(t=n.charAt(kn),kn++):(t=null,0===Mn&&s("[\\x0B-\\f]")),null===t&&(/^[\x0E-]/.test(n.charAt(kn))?(t=n.charAt(kn),kn++):(t=null,0===Mn&&s("[\\x0E-]")))),null!==t?e=[e,t]:(e=null,kn=r)):(e=null,kn=r),e}function J(){var e,t,r,i,o,a;return o=kn,a=kn,null!==(e=Y())?(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=null!==(r=Q())?r:"")&&null!==(i=ne())?e=[e,t,r,i]:(e=null,kn=a)):(e=null,kn=a),null!==e&&(e=function(e){try{jn.uri=new Hn(jn.scheme,jn.user,jn.host,jn.port),delete jn.scheme,delete jn.user,delete jn.host,delete jn.host_type,delete jn.port}catch(e){jn=-1}}()),null===e&&(kn=o),e}function K(){var e,t,i,o,a,l,u,c;return u=kn,c=kn,null!==(e=Y())?(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(i=null!==(i=Q())?i:"")&&null!==(o=ne())&&null!==(a=fe())&&null!==(l=null!==(l=we())?l:"")?e=[e,t,i,o,a,l]:(e=null,kn=c)):(e=null,kn=c),null!==e&&(e=function(e){try{jn.uri=new Hn(jn.scheme,jn.user,jn.host,jn.port,jn.uri_params,jn.uri_headers),delete jn.scheme,delete jn.user,delete jn.host,delete jn.host_type,delete jn.port,delete jn.uri_params,"SIP_URI"===r&&(jn=jn.uri)}catch(e){jn=-1}}()),null===e&&(kn=u),e}function Y(){var e;return null===(e=$())&&(e=X()),e}function $(){var e,t;return t=kn,"sips"===n.substr(kn,4).toLowerCase()?(e=n.substr(kn,4),kn+=4):(e=null,0===Mn&&s('"sips"')),null!==e&&(e=function(e,t){jn.scheme=t.toLowerCase()}(0,e)),null===e&&(kn=t),e}function X(){var e,t;return t=kn,"sip"===n.substr(kn,3).toLowerCase()?(e=n.substr(kn,3),kn+=3):(e=null,0===Mn&&s('"sip"')),null!==e&&(e=function(e,t){jn.scheme=t.toLowerCase()}(0,e)),null===e&&(kn=t),e}function Q(){var e,t,r,i,o,a;return i=kn,o=kn,null!==(e=Z())?(a=kn,58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=te())?t=[t,r]:(t=null,kn=a),null!==(t=null!==t?t:"")?(64===n.charCodeAt(kn)?(r="@",kn++):(r=null,0===Mn&&s('"@"')),null!==r?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e){jn.user=decodeURIComponent(n.substring(kn-1,e))}(i)),null===e&&(kn=i),e}function Z(){var e,t;if(null===(t=g())&&null===(t=T())&&(t=ee()),null!==t)for(e=[];null!==t;)e.push(t),null===(t=g())&&null===(t=T())&&(t=ee());else e=null;return e}function ee(){var e;return 38===n.charCodeAt(kn)?(e="&",kn++):(e=null,0===Mn&&s('"&"')),null===e&&(61===n.charCodeAt(kn)?(e="=",kn++):(e=null,0===Mn&&s('"="')),null===e&&(43===n.charCodeAt(kn)?(e="+",kn++):(e=null,0===Mn&&s('"+"')),null===e&&(36===n.charCodeAt(kn)?(e="$",kn++):(e=null,0===Mn&&s('"$"')),null===e&&(44===n.charCodeAt(kn)?(e=",",kn++):(e=null,0===Mn&&s('","')),null===e&&(59===n.charCodeAt(kn)?(e=";",kn++):(e=null,0===Mn&&s('";"')),null===e&&(63===n.charCodeAt(kn)?(e="?",kn++):(e=null,0===Mn&&s('"?"')),null===e&&(47===n.charCodeAt(kn)?(e="/",kn++):(e=null,0===Mn&&s('"/"'))))))))),e}function te(){var e,t,r;for(r=kn,e=[],null===(t=g())&&null===(t=T())&&(38===n.charCodeAt(kn)?(t="&",kn++):(t=null,0===Mn&&s('"&"')),null===t&&(61===n.charCodeAt(kn)?(t="=",kn++):(t=null,0===Mn&&s('"="')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"')),null===t&&(36===n.charCodeAt(kn)?(t="$",kn++):(t=null,0===Mn&&s('"$"')),null===t&&(44===n.charCodeAt(kn)?(t=",",kn++):(t=null,0===Mn&&s('","')))))));null!==t;)e.push(t),null===(t=g())&&null===(t=T())&&(38===n.charCodeAt(kn)?(t="&",kn++):(t=null,0===Mn&&s('"&"')),null===t&&(61===n.charCodeAt(kn)?(t="=",kn++):(t=null,0===Mn&&s('"="')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"')),null===t&&(36===n.charCodeAt(kn)?(t="$",kn++):(t=null,0===Mn&&s('"$"')),null===t&&(44===n.charCodeAt(kn)?(t=",",kn++):(t=null,0===Mn&&s('","')))))));return null!==e&&(e=function(e){jn.password=n.substring(kn,e)}(r)),null===e&&(kn=r),e}function ne(){var e,t,r,i,o;return i=kn,null!==(e=re())?(o=kn,58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=pe())?t=[t,r]:(t=null,kn=o),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=i)):(e=null,kn=i),e}function re(){var e,t;return t=kn,null===(e=se())&&null===(e=de())&&(e=ae()),null!==e&&(e=function(e){return jn.host=n.substring(kn,e).toLowerCase(),jn.host}(t)),null===e&&(kn=t),e}function se(){var e,t,r,i,o,a;for(i=kn,o=kn,e=[],a=kn,null!==(t=ie())?(46===n.charCodeAt(kn)?(r=".",kn++):(r=null,0===Mn&&s('"."')),null!==r?t=[t,r]:(t=null,kn=a)):(t=null,kn=a);null!==t;)e.push(t),a=kn,null!==(t=ie())?(46===n.charCodeAt(kn)?(r=".",kn++):(r=null,0===Mn&&s('"."')),null!==r?t=[t,r]:(t=null,kn=a)):(t=null,kn=a);return null!==e&&null!==(t=oe())?(46===n.charCodeAt(kn)?(r=".",kn++):(r=null,0===Mn&&s('"."')),null!==(r=null!==r?r:"")?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e){return jn.host_type="domain",n.substring(kn,e)}(i)),null===e&&(kn=i),e}function ie(){var e,t,r,i;if(i=kn,null!==(e=f())){for(t=[],null===(r=f())&&(45===n.charCodeAt(kn)?(r="-",kn++):(r=null,0===Mn&&s('"-"')),null===r&&(95===n.charCodeAt(kn)?(r="_",kn++):(r=null,0===Mn&&s('"_"'))));null!==r;)t.push(r),null===(r=f())&&(45===n.charCodeAt(kn)?(r="-",kn++):(r=null,0===Mn&&s('"-"')),null===r&&(95===n.charCodeAt(kn)?(r="_",kn++):(r=null,0===Mn&&s('"_"'))));null!==t?e=[e,t]:(e=null,kn=i)}else e=null,kn=i;return e}function oe(){var e,t,r,i;if(i=kn,null!==(e=a())){for(t=[],null===(r=f())&&(45===n.charCodeAt(kn)?(r="-",kn++):(r=null,0===Mn&&s('"-"')),null===r&&(95===n.charCodeAt(kn)?(r="_",kn++):(r=null,0===Mn&&s('"_"'))));null!==r;)t.push(r),null===(r=f())&&(45===n.charCodeAt(kn)?(r="-",kn++):(r=null,0===Mn&&s('"-"')),null===r&&(95===n.charCodeAt(kn)?(r="_",kn++):(r=null,0===Mn&&s('"_"'))));null!==t?e=[e,t]:(e=null,kn=i)}else e=null,kn=i;return e}function ae(){var e,t,r,i,o;return i=kn,o=kn,91===n.charCodeAt(kn)?(e="[",kn++):(e=null,0===Mn&&s('"["')),null!==e&&null!==(t=le())?(93===n.charCodeAt(kn)?(r="]",kn++):(r=null,0===Mn&&s('"]"')),null!==r?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e){return jn.host_type="IPv6",n.substring(kn,e)}(i)),null===e&&(kn=i),e}function le(){var e,t,r,i,o,a,l,u,c,d,h,p,f,m,g,v;return m=kn,g=kn,null!==(e=ue())?(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=ue())?(58===n.charCodeAt(kn)?(i=":",kn++):(i=null,0===Mn&&s('":"')),null!==i&&null!==(o=ue())?(58===n.charCodeAt(kn)?(a=":",kn++):(a=null,0===Mn&&s('":"')),null!==a&&null!==(l=ue())?(58===n.charCodeAt(kn)?(u=":",kn++):(u=null,0===Mn&&s('":"')),null!==u&&null!==(c=ue())?(58===n.charCodeAt(kn)?(d=":",kn++):(d=null,0===Mn&&s('":"')),null!==d&&null!==(h=ue())?(58===n.charCodeAt(kn)?(p=":",kn++):(p=null,0===Mn&&s('":"')),null!==p&&null!==(f=ce())?e=[e,t,r,i,o,a,l,u,c,d,h,p,f]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,"::"===n.substr(kn,2)?(e="::",kn+=2):(e=null,0===Mn&&s('"::"')),null!==e&&null!==(t=ue())?(58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ue())?(58===n.charCodeAt(kn)?(o=":",kn++):(o=null,0===Mn&&s('":"')),null!==o&&null!==(a=ue())?(58===n.charCodeAt(kn)?(l=":",kn++):(l=null,0===Mn&&s('":"')),null!==l&&null!==(u=ue())?(58===n.charCodeAt(kn)?(c=":",kn++):(c=null,0===Mn&&s('":"')),null!==c&&null!==(d=ue())?(58===n.charCodeAt(kn)?(h=":",kn++):(h=null,0===Mn&&s('":"')),null!==h&&null!==(p=ce())?e=[e,t,r,i,o,a,l,u,c,d,h,p]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,"::"===n.substr(kn,2)?(e="::",kn+=2):(e=null,0===Mn&&s('"::"')),null!==e&&null!==(t=ue())?(58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ue())?(58===n.charCodeAt(kn)?(o=":",kn++):(o=null,0===Mn&&s('":"')),null!==o&&null!==(a=ue())?(58===n.charCodeAt(kn)?(l=":",kn++):(l=null,0===Mn&&s('":"')),null!==l&&null!==(u=ue())?(58===n.charCodeAt(kn)?(c=":",kn++):(c=null,0===Mn&&s('":"')),null!==c&&null!==(d=ce())?e=[e,t,r,i,o,a,l,u,c,d]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,"::"===n.substr(kn,2)?(e="::",kn+=2):(e=null,0===Mn&&s('"::"')),null!==e&&null!==(t=ue())?(58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ue())?(58===n.charCodeAt(kn)?(o=":",kn++):(o=null,0===Mn&&s('":"')),null!==o&&null!==(a=ue())?(58===n.charCodeAt(kn)?(l=":",kn++):(l=null,0===Mn&&s('":"')),null!==l&&null!==(u=ce())?e=[e,t,r,i,o,a,l,u]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,"::"===n.substr(kn,2)?(e="::",kn+=2):(e=null,0===Mn&&s('"::"')),null!==e&&null!==(t=ue())?(58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ue())?(58===n.charCodeAt(kn)?(o=":",kn++):(o=null,0===Mn&&s('":"')),null!==o&&null!==(a=ce())?e=[e,t,r,i,o,a]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,"::"===n.substr(kn,2)?(e="::",kn+=2):(e=null,0===Mn&&s('"::"')),null!==e&&null!==(t=ue())?(58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ce())?e=[e,t,r,i]:(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,"::"===n.substr(kn,2)?(e="::",kn+=2):(e=null,0===Mn&&s('"::"')),null!==e&&null!==(t=ce())?e=[e,t]:(e=null,kn=g),null===e&&(g=kn,"::"===n.substr(kn,2)?(e="::",kn+=2):(e=null,0===Mn&&s('"::"')),null!==e&&null!==(t=ue())?e=[e,t]:(e=null,kn=g),null===e&&(g=kn,null!==(e=ue())?("::"===n.substr(kn,2)?(t="::",kn+=2):(t=null,0===Mn&&s('"::"')),null!==t&&null!==(r=ue())?(58===n.charCodeAt(kn)?(i=":",kn++):(i=null,0===Mn&&s('":"')),null!==i&&null!==(o=ue())?(58===n.charCodeAt(kn)?(a=":",kn++):(a=null,0===Mn&&s('":"')),null!==a&&null!==(l=ue())?(58===n.charCodeAt(kn)?(u=":",kn++):(u=null,0===Mn&&s('":"')),null!==u&&null!==(c=ue())?(58===n.charCodeAt(kn)?(d=":",kn++):(d=null,0===Mn&&s('":"')),null!==d&&null!==(h=ce())?e=[e,t,r,i,o,a,l,u,c,d,h]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,null!==(e=ue())?(v=kn,58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=ue())?t=[t,r]:(t=null,kn=v),null!==(t=null!==t?t:"")?("::"===n.substr(kn,2)?(r="::",kn+=2):(r=null,0===Mn&&s('"::"')),null!==r&&null!==(i=ue())?(58===n.charCodeAt(kn)?(o=":",kn++):(o=null,0===Mn&&s('":"')),null!==o&&null!==(a=ue())?(58===n.charCodeAt(kn)?(l=":",kn++):(l=null,0===Mn&&s('":"')),null!==l&&null!==(u=ue())?(58===n.charCodeAt(kn)?(c=":",kn++):(c=null,0===Mn&&s('":"')),null!==c&&null!==(d=ce())?e=[e,t,r,i,o,a,l,u,c,d]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,null!==(e=ue())?(v=kn,58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=ue())?t=[t,r]:(t=null,kn=v),null!==(t=null!==t?t:"")?(v=kn,58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ue())?r=[r,i]:(r=null,kn=v),null!==(r=null!==r?r:"")?("::"===n.substr(kn,2)?(i="::",kn+=2):(i=null,0===Mn&&s('"::"')),null!==i&&null!==(o=ue())?(58===n.charCodeAt(kn)?(a=":",kn++):(a=null,0===Mn&&s('":"')),null!==a&&null!==(l=ue())?(58===n.charCodeAt(kn)?(u=":",kn++):(u=null,0===Mn&&s('":"')),null!==u&&null!==(c=ce())?e=[e,t,r,i,o,a,l,u,c]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,null!==(e=ue())?(v=kn,58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=ue())?t=[t,r]:(t=null,kn=v),null!==(t=null!==t?t:"")?(v=kn,58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ue())?r=[r,i]:(r=null,kn=v),null!==(r=null!==r?r:"")?(v=kn,58===n.charCodeAt(kn)?(i=":",kn++):(i=null,0===Mn&&s('":"')),null!==i&&null!==(o=ue())?i=[i,o]:(i=null,kn=v),null!==(i=null!==i?i:"")?("::"===n.substr(kn,2)?(o="::",kn+=2):(o=null,0===Mn&&s('"::"')),null!==o&&null!==(a=ue())?(58===n.charCodeAt(kn)?(l=":",kn++):(l=null,0===Mn&&s('":"')),null!==l&&null!==(u=ce())?e=[e,t,r,i,o,a,l,u]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,null!==(e=ue())?(v=kn,58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=ue())?t=[t,r]:(t=null,kn=v),null!==(t=null!==t?t:"")?(v=kn,58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ue())?r=[r,i]:(r=null,kn=v),null!==(r=null!==r?r:"")?(v=kn,58===n.charCodeAt(kn)?(i=":",kn++):(i=null,0===Mn&&s('":"')),null!==i&&null!==(o=ue())?i=[i,o]:(i=null,kn=v),null!==(i=null!==i?i:"")?(v=kn,58===n.charCodeAt(kn)?(o=":",kn++):(o=null,0===Mn&&s('":"')),null!==o&&null!==(a=ue())?o=[o,a]:(o=null,kn=v),null!==(o=null!==o?o:"")?("::"===n.substr(kn,2)?(a="::",kn+=2):(a=null,0===Mn&&s('"::"')),null!==a&&null!==(l=ce())?e=[e,t,r,i,o,a,l]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,null!==(e=ue())?(v=kn,58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=ue())?t=[t,r]:(t=null,kn=v),null!==(t=null!==t?t:"")?(v=kn,58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ue())?r=[r,i]:(r=null,kn=v),null!==(r=null!==r?r:"")?(v=kn,58===n.charCodeAt(kn)?(i=":",kn++):(i=null,0===Mn&&s('":"')),null!==i&&null!==(o=ue())?i=[i,o]:(i=null,kn=v),null!==(i=null!==i?i:"")?(v=kn,58===n.charCodeAt(kn)?(o=":",kn++):(o=null,0===Mn&&s('":"')),null!==o&&null!==(a=ue())?o=[o,a]:(o=null,kn=v),null!==(o=null!==o?o:"")?(v=kn,58===n.charCodeAt(kn)?(a=":",kn++):(a=null,0===Mn&&s('":"')),null!==a&&null!==(l=ue())?a=[a,l]:(a=null,kn=v),null!==(a=null!==a?a:"")?("::"===n.substr(kn,2)?(l="::",kn+=2):(l=null,0===Mn&&s('"::"')),null!==l&&null!==(u=ue())?e=[e,t,r,i,o,a,l,u]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,null!==(e=ue())?(v=kn,58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=ue())?t=[t,r]:(t=null,kn=v),null!==(t=null!==t?t:"")?(v=kn,58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ue())?r=[r,i]:(r=null,kn=v),null!==(r=null!==r?r:"")?(v=kn,58===n.charCodeAt(kn)?(i=":",kn++):(i=null,0===Mn&&s('":"')),null!==i&&null!==(o=ue())?i=[i,o]:(i=null,kn=v),null!==(i=null!==i?i:"")?(v=kn,58===n.charCodeAt(kn)?(o=":",kn++):(o=null,0===Mn&&s('":"')),null!==o&&null!==(a=ue())?o=[o,a]:(o=null,kn=v),null!==(o=null!==o?o:"")?(v=kn,58===n.charCodeAt(kn)?(a=":",kn++):(a=null,0===Mn&&s('":"')),null!==a&&null!==(l=ue())?a=[a,l]:(a=null,kn=v),null!==(a=null!==a?a:"")?(v=kn,58===n.charCodeAt(kn)?(l=":",kn++):(l=null,0===Mn&&s('":"')),null!==l&&null!==(u=ue())?l=[l,u]:(l=null,kn=v),null!==(l=null!==l?l:"")?("::"===n.substr(kn,2)?(u="::",kn+=2):(u=null,0===Mn&&s('"::"')),null!==u?e=[e,t,r,i,o,a,l,u]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g))))))))))))))),null!==e&&(e=function(e){return jn.host_type="IPv6",n.substring(kn,e)}(m)),null===e&&(kn=m),e}function ue(){var e,t,n,r,s;return s=kn,null!==(e=l())&&null!==(t=null!==(t=l())?t:"")&&null!==(n=null!==(n=l())?n:"")&&null!==(r=null!==(r=l())?r:"")?e=[e,t,n,r]:(e=null,kn=s),e}function ce(){var e,t,r,i;return i=kn,null!==(e=ue())?(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=ue())?e=[e,t,r]:(e=null,kn=i)):(e=null,kn=i),null===e&&(e=de()),e}function de(){var e,t,r,i,o,a,l,u,c;return u=kn,c=kn,null!==(e=he())?(46===n.charCodeAt(kn)?(t=".",kn++):(t=null,0===Mn&&s('"."')),null!==t&&null!==(r=he())?(46===n.charCodeAt(kn)?(i=".",kn++):(i=null,0===Mn&&s('"."')),null!==i&&null!==(o=he())?(46===n.charCodeAt(kn)?(a=".",kn++):(a=null,0===Mn&&s('"."')),null!==a&&null!==(l=he())?e=[e,t,r,i,o,a,l]:(e=null,kn=c)):(e=null,kn=c)):(e=null,kn=c)):(e=null,kn=c),null!==e&&(e=function(e){return jn.host_type="IPv4",n.substring(kn,e)}(u)),null===e&&(kn=u),e}function he(){var e,t,r,i;return i=kn,"25"===n.substr(kn,2)?(e="25",kn+=2):(e=null,0===Mn&&s('"25"')),null!==e?(/^[0-5]/.test(n.charAt(kn))?(t=n.charAt(kn),kn++):(t=null,0===Mn&&s("[0-5]")),null!==t?e=[e,t]:(e=null,kn=i)):(e=null,kn=i),null===e&&(i=kn,50===n.charCodeAt(kn)?(e="2",kn++):(e=null,0===Mn&&s('"2"')),null!==e?(/^[0-4]/.test(n.charAt(kn))?(t=n.charAt(kn),kn++):(t=null,0===Mn&&s("[0-4]")),null!==t&&null!==(r=o())?e=[e,t,r]:(e=null,kn=i)):(e=null,kn=i),null===e&&(i=kn,49===n.charCodeAt(kn)?(e="1",kn++):(e=null,0===Mn&&s('"1"')),null!==e&&null!==(t=o())&&null!==(r=o())?e=[e,t,r]:(e=null,kn=i),null===e&&(i=kn,/^[1-9]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[1-9]")),null!==e&&null!==(t=o())?e=[e,t]:(e=null,kn=i),null===e&&(e=o())))),e}function pe(){var e,t,n,r,s,i,a;return i=kn,a=kn,e=o(),null!==(e=null!==e?e:"")&&null!==(t=null!==(t=o())?t:"")&&null!==(n=null!==(n=o())?n:"")&&null!==(r=null!==(r=o())?r:"")&&null!==(s=null!==(s=o())?s:"")?e=[e,t,n,r,s]:(e=null,kn=a),null!==e&&(e=function(e,t){return t=parseInt(t.join("")),jn.port=t,t}(0,e)),null===e&&(kn=i),e}function fe(){var e,t,r,i;for(e=[],i=kn,59===n.charCodeAt(kn)?(t=";",kn++):(t=null,0===Mn&&s('";"')),null!==t&&null!==(r=me())?t=[t,r]:(t=null,kn=i);null!==t;)e.push(t),i=kn,59===n.charCodeAt(kn)?(t=";",kn++):(t=null,0===Mn&&s('";"')),null!==t&&null!==(r=me())?t=[t,r]:(t=null,kn=i);return e}function me(){var e;return null===(e=ge())&&null===(e=ve())&&null===(e=Te())&&null===(e=_e())&&null===(e=Ce())&&null===(e=Se())&&(e=Ee()),e}function ge(){var e,t,r,i;return r=kn,i=kn,"transport="===n.substr(kn,10).toLowerCase()?(e=n.substr(kn,10),kn+=10):(e=null,0===Mn&&s('"transport="')),null!==e?("udp"===n.substr(kn,3).toLowerCase()?(t=n.substr(kn,3),kn+=3):(t=null,0===Mn&&s('"udp"')),null===t&&("tcp"===n.substr(kn,3).toLowerCase()?(t=n.substr(kn,3),kn+=3):(t=null,0===Mn&&s('"tcp"')),null===t&&("sctp"===n.substr(kn,4).toLowerCase()?(t=n.substr(kn,4),kn+=4):(t=null,0===Mn&&s('"sctp"')),null===t&&("tls"===n.substr(kn,3).toLowerCase()?(t=n.substr(kn,3),kn+=3):(t=null,0===Mn&&s('"tls"')),null===t&&(t=b())))),null!==t?e=[e,t]:(e=null,kn=i)):(e=null,kn=i),null!==e&&(e=function(e,t){jn.uri_params||(jn.uri_params={}),jn.uri_params.transport=t.toLowerCase()}(0,e[1])),null===e&&(kn=r),e}function ve(){var e,t,r,i;return r=kn,i=kn,"user="===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"user="')),null!==e?("phone"===n.substr(kn,5).toLowerCase()?(t=n.substr(kn,5),kn+=5):(t=null,0===Mn&&s('"phone"')),null===t&&("ip"===n.substr(kn,2).toLowerCase()?(t=n.substr(kn,2),kn+=2):(t=null,0===Mn&&s('"ip"')),null===t&&(t=b())),null!==t?e=[e,t]:(e=null,kn=i)):(e=null,kn=i),null!==e&&(e=function(e,t){jn.uri_params||(jn.uri_params={}),jn.uri_params.user=t.toLowerCase()}(0,e[1])),null===e&&(kn=r),e}function Te(){var e,t,r,i;return r=kn,i=kn,"method="===n.substr(kn,7).toLowerCase()?(e=n.substr(kn,7),kn+=7):(e=null,0===Mn&&s('"method="')),null!==e&&null!==(t=ot())?e=[e,t]:(e=null,kn=i),null!==e&&(e=function(e,t){jn.uri_params||(jn.uri_params={}),jn.uri_params.method=t}(0,e[1])),null===e&&(kn=r),e}function _e(){var e,t,r,i;return r=kn,i=kn,"ttl="===n.substr(kn,4).toLowerCase()?(e=n.substr(kn,4),kn+=4):(e=null,0===Mn&&s('"ttl="')),null!==e&&null!==(t=Cn())?e=[e,t]:(e=null,kn=i),null!==e&&(e=function(e,t){jn.params||(jn.params={}),jn.params.ttl=t}(0,e[1])),null===e&&(kn=r),e}function Ce(){var e,t,r,i;return r=kn,i=kn,"maddr="===n.substr(kn,6).toLowerCase()?(e=n.substr(kn,6),kn+=6):(e=null,0===Mn&&s('"maddr="')),null!==e&&null!==(t=re())?e=[e,t]:(e=null,kn=i),null!==e&&(e=function(e,t){jn.uri_params||(jn.uri_params={}),jn.uri_params.maddr=t}(0,e[1])),null===e&&(kn=r),e}function Se(){var e,t,r,i,o,a;return i=kn,o=kn,"lr"===n.substr(kn,2).toLowerCase()?(e=n.substr(kn,2),kn+=2):(e=null,0===Mn&&s('"lr"')),null!==e?(a=kn,61===n.charCodeAt(kn)?(t="=",kn++):(t=null,0===Mn&&s('"="')),null!==t&&null!==(r=b())?t=[t,r]:(t=null,kn=a),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(jn.uri_params||(jn.uri_params={}),e=void(jn.uri_params.lr=void 0)),null===e&&(kn=i),e}function Ee(){var e,t,r,i,o,a;return i=kn,o=kn,null!==(e=ye())?(a=kn,61===n.charCodeAt(kn)?(t="=",kn++):(t=null,0===Mn&&s('"="')),null!==t&&null!==(r=Ae())?t=[t,r]:(t=null,kn=a),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e,t,n){jn.uri_params||(jn.uri_params={}),n=void 0===n?void 0:n[1],jn.uri_params[t.toLowerCase()]=n}(0,e[0],e[1])),null===e&&(kn=i),e}function ye(){var e,t,n;if(n=kn,null!==(t=Re()))for(e=[];null!==t;)e.push(t),t=Re();else e=null;return null!==e&&(e=e.join("")),null===e&&(kn=n),e}function Ae(){var e,t,n;if(n=kn,null!==(t=Re()))for(e=[];null!==t;)e.push(t),t=Re();else e=null;return null!==e&&(e=e.join("")),null===e&&(kn=n),e}function Re(){var e;return null===(e=be())&&null===(e=g())&&(e=T()),e}function be(){var e;return 91===n.charCodeAt(kn)?(e="[",kn++):(e=null,0===Mn&&s('"["')),null===e&&(93===n.charCodeAt(kn)?(e="]",kn++):(e=null,0===Mn&&s('"]"')),null===e&&(47===n.charCodeAt(kn)?(e="/",kn++):(e=null,0===Mn&&s('"/"')),null===e&&(58===n.charCodeAt(kn)?(e=":",kn++):(e=null,0===Mn&&s('":"')),null===e&&(38===n.charCodeAt(kn)?(e="&",kn++):(e=null,0===Mn&&s('"&"')),null===e&&(43===n.charCodeAt(kn)?(e="+",kn++):(e=null,0===Mn&&s('"+"')),null===e&&(36===n.charCodeAt(kn)?(e="$",kn++):(e=null,0===Mn&&s('"$"')))))))),e}function we(){var e,t,r,i,o,a,l;if(a=kn,63===n.charCodeAt(kn)?(e="?",kn++):(e=null,0===Mn&&s('"?"')),null!==e)if(null!==(t=Ie())){for(r=[],l=kn,38===n.charCodeAt(kn)?(i="&",kn++):(i=null,0===Mn&&s('"&"')),null!==i&&null!==(o=Ie())?i=[i,o]:(i=null,kn=l);null!==i;)r.push(i),l=kn,38===n.charCodeAt(kn)?(i="&",kn++):(i=null,0===Mn&&s('"&"')),null!==i&&null!==(o=Ie())?i=[i,o]:(i=null,kn=l);null!==r?e=[e,t,r]:(e=null,kn=a)}else e=null,kn=a;else e=null,kn=a;return e}function Ie(){var e,t,r,i,o;return i=kn,o=kn,null!==(e=Oe())?(61===n.charCodeAt(kn)?(t="=",kn++):(t=null,0===Mn&&s('"="')),null!==t&&null!==(r=xe())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e,t,n){t=t.join("").toLowerCase(),n=n.join(""),jn.uri_headers||(jn.uri_headers={}),jn.uri_headers[t]?jn.uri_headers[t].push(n):jn.uri_headers[t]=[n]}(0,e[0],e[2])),null===e&&(kn=i),e}function Oe(){var e,t;if(null===(t=Ne())&&null===(t=g())&&(t=T()),null!==t)for(e=[];null!==t;)e.push(t),null===(t=Ne())&&null===(t=g())&&(t=T());else e=null;return e}function xe(){var e,t;for(e=[],null===(t=Ne())&&null===(t=g())&&(t=T());null!==t;)e.push(t),null===(t=Ne())&&null===(t=g())&&(t=T());return e}function Ne(){var e;return 91===n.charCodeAt(kn)?(e="[",kn++):(e=null,0===Mn&&s('"["')),null===e&&(93===n.charCodeAt(kn)?(e="]",kn++):(e=null,0===Mn&&s('"]"')),null===e&&(47===n.charCodeAt(kn)?(e="/",kn++):(e=null,0===Mn&&s('"/"')),null===e&&(63===n.charCodeAt(kn)?(e="?",kn++):(e=null,0===Mn&&s('"?"')),null===e&&(58===n.charCodeAt(kn)?(e=":",kn++):(e=null,0===Mn&&s('":"')),null===e&&(43===n.charCodeAt(kn)?(e="+",kn++):(e=null,0===Mn&&s('"+"')),null===e&&(36===n.charCodeAt(kn)?(e="$",kn++):(e=null,0===Mn&&s('"$"')))))))),e}function Pe(){var e,t,n,r,s,i;return i=kn,null!==(e=ot())&&null!==(t=h())&&null!==(n=De())&&null!==(r=h())&&null!==(s=$e())?e=[e,t,n,r,s]:(e=null,kn=i),e}function De(){var e;return null===(e=K())&&(e=Ue()),e}function Ue(){var e,t,r,i;return i=kn,null!==(e=Ve())?(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t?(null===(r=ke())&&(r=qe()),null!==r?e=[e,t,r]:(e=null,kn=i)):(e=null,kn=i)):(e=null,kn=i),e}function ke(){var e,t,r,i,o;return i=kn,null===(e=Me())&&(e=Le()),null!==e?(o=kn,63===n.charCodeAt(kn)?(t="?",kn++):(t=null,0===Mn&&s('"?"')),null!==t&&null!==(r=Ye())?t=[t,r]:(t=null,kn=o),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=i)):(e=null,kn=i),e}function Me(){var e,t,r,i;return i=kn,"//"===n.substr(kn,2)?(e="//",kn+=2):(e=null,0===Mn&&s('"//"')),null!==e&&null!==(t=ze())&&null!==(r=null!==(r=Le())?r:"")?e=[e,t,r]:(e=null,kn=i),e}function Le(){var e,t,r;return r=kn,47===n.charCodeAt(kn)?(e="/",kn++):(e=null,0===Mn&&s('"/"')),null!==e&&null!==(t=je())?e=[e,t]:(e=null,kn=r),e}function qe(){var e,t,n,r;if(r=kn,null!==(e=Fe())){for(t=[],n=He();null!==n;)t.push(n),n=He();null!==t?e=[e,t]:(e=null,kn=r)}else e=null,kn=r;return e}function He(){var e;return null===(e=m())&&null===(e=g())&&(e=T()),e}function Fe(){var e;return null===(e=g())&&null===(e=T())&&(59===n.charCodeAt(kn)?(e=";",kn++):(e=null,0===Mn&&s('";"')),null===e&&(63===n.charCodeAt(kn)?(e="?",kn++):(e=null,0===Mn&&s('"?"')),null===e&&(58===n.charCodeAt(kn)?(e=":",kn++):(e=null,0===Mn&&s('":"')),null===e&&(64===n.charCodeAt(kn)?(e="@",kn++):(e=null,0===Mn&&s('"@"')),null===e&&(38===n.charCodeAt(kn)?(e="&",kn++):(e=null,0===Mn&&s('"&"')),null===e&&(61===n.charCodeAt(kn)?(e="=",kn++):(e=null,0===Mn&&s('"="')),null===e&&(43===n.charCodeAt(kn)?(e="+",kn++):(e=null,0===Mn&&s('"+"')),null===e&&(36===n.charCodeAt(kn)?(e="$",kn++):(e=null,0===Mn&&s('"$"')),null===e&&(44===n.charCodeAt(kn)?(e=",",kn++):(e=null,0===Mn&&s('","'))))))))))),e}function je(){var e,t,r,i,o,a;if(o=kn,null!==(e=Ge())){for(t=[],a=kn,47===n.charCodeAt(kn)?(r="/",kn++):(r=null,0===Mn&&s('"/"')),null!==r&&null!==(i=Ge())?r=[r,i]:(r=null,kn=a);null!==r;)t.push(r),a=kn,47===n.charCodeAt(kn)?(r="/",kn++):(r=null,0===Mn&&s('"/"')),null!==r&&null!==(i=Ge())?r=[r,i]:(r=null,kn=a);null!==t?e=[e,t]:(e=null,kn=o)}else e=null,kn=o;return e}function Ge(){var e,t,r,i,o,a;for(o=kn,e=[],t=We();null!==t;)e.push(t),t=We();if(null!==e){for(t=[],a=kn,59===n.charCodeAt(kn)?(r=";",kn++):(r=null,0===Mn&&s('";"')),null!==r&&null!==(i=Be())?r=[r,i]:(r=null,kn=a);null!==r;)t.push(r),a=kn,59===n.charCodeAt(kn)?(r=";",kn++):(r=null,0===Mn&&s('";"')),null!==r&&null!==(i=Be())?r=[r,i]:(r=null,kn=a);null!==t?e=[e,t]:(e=null,kn=o)}else e=null,kn=o;return e}function Be(){var e,t;for(e=[],t=We();null!==t;)e.push(t),t=We();return e}function We(){var e;return null===(e=g())&&null===(e=T())&&(58===n.charCodeAt(kn)?(e=":",kn++):(e=null,0===Mn&&s('":"')),null===e&&(64===n.charCodeAt(kn)?(e="@",kn++):(e=null,0===Mn&&s('"@"')),null===e&&(38===n.charCodeAt(kn)?(e="&",kn++):(e=null,0===Mn&&s('"&"')),null===e&&(61===n.charCodeAt(kn)?(e="=",kn++):(e=null,0===Mn&&s('"="')),null===e&&(43===n.charCodeAt(kn)?(e="+",kn++):(e=null,0===Mn&&s('"+"')),null===e&&(36===n.charCodeAt(kn)?(e="$",kn++):(e=null,0===Mn&&s('"$"')),null===e&&(44===n.charCodeAt(kn)?(e=",",kn++):(e=null,0===Mn&&s('","'))))))))),e}function Ve(){var e,t,r,i,l;if(i=kn,l=kn,null!==(e=a())){for(t=[],null===(r=a())&&null===(r=o())&&(43===n.charCodeAt(kn)?(r="+",kn++):(r=null,0===Mn&&s('"+"')),null===r&&(45===n.charCodeAt(kn)?(r="-",kn++):(r=null,0===Mn&&s('"-"')),null===r&&(46===n.charCodeAt(kn)?(r=".",kn++):(r=null,0===Mn&&s('"."')))));null!==r;)t.push(r),null===(r=a())&&null===(r=o())&&(43===n.charCodeAt(kn)?(r="+",kn++):(r=null,0===Mn&&s('"+"')),null===r&&(45===n.charCodeAt(kn)?(r="-",kn++):(r=null,0===Mn&&s('"-"')),null===r&&(46===n.charCodeAt(kn)?(r=".",kn++):(r=null,0===Mn&&s('"."')))));null!==t?e=[e,t]:(e=null,kn=l)}else e=null,kn=l;return null!==e&&(e=function(e){jn.scheme=n.substring(kn,e)}(i)),null===e&&(kn=i),e}function ze(){var e;return null===(e=Je())&&(e=Ke()),e}function Je(){var e,t,r,i;return r=kn,i=kn,null!==(e=Q())?(64===n.charCodeAt(kn)?(t="@",kn++):(t=null,0===Mn&&s('"@"')),null!==t?e=[e,t]:(e=null,kn=i)):(e=null,kn=i),null!==(e=null!==e?e:"")&&null!==(t=ne())?e=[e,t]:(e=null,kn=r),e=null!==e?e:""}function Ke(){var e,t;if(null===(t=g())&&null===(t=T())&&(36===n.charCodeAt(kn)?(t="$",kn++):(t=null,0===Mn&&s('"$"')),null===t&&(44===n.charCodeAt(kn)?(t=",",kn++):(t=null,0===Mn&&s('","')),null===t&&(59===n.charCodeAt(kn)?(t=";",kn++):(t=null,0===Mn&&s('";"')),null===t&&(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null===t&&(64===n.charCodeAt(kn)?(t="@",kn++):(t=null,0===Mn&&s('"@"')),null===t&&(38===n.charCodeAt(kn)?(t="&",kn++):(t=null,0===Mn&&s('"&"')),null===t&&(61===n.charCodeAt(kn)?(t="=",kn++):(t=null,0===Mn&&s('"="')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"')))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=g())&&null===(t=T())&&(36===n.charCodeAt(kn)?(t="$",kn++):(t=null,0===Mn&&s('"$"')),null===t&&(44===n.charCodeAt(kn)?(t=",",kn++):(t=null,0===Mn&&s('","')),null===t&&(59===n.charCodeAt(kn)?(t=";",kn++):(t=null,0===Mn&&s('";"')),null===t&&(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null===t&&(64===n.charCodeAt(kn)?(t="@",kn++):(t=null,0===Mn&&s('"@"')),null===t&&(38===n.charCodeAt(kn)?(t="&",kn++):(t=null,0===Mn&&s('"&"')),null===t&&(61===n.charCodeAt(kn)?(t="=",kn++):(t=null,0===Mn&&s('"="')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"'))))))))));else e=null;return e}function Ye(){var e,t;for(e=[],t=He();null!==t;)e.push(t),t=He();return e}function $e(){var e,t,r,i,a,l,u,c;if(u=kn,c=kn,"sip"===n.substr(kn,3).toLowerCase()?(e=n.substr(kn,3),kn+=3):(e=null,0===Mn&&s('"SIP"')),null!==e)if(47===n.charCodeAt(kn)?(t="/",kn++):(t=null,0===Mn&&s('"/"')),null!==t){if(null!==(i=o()))for(r=[];null!==i;)r.push(i),i=o();else r=null;if(null!==r)if(46===n.charCodeAt(kn)?(i=".",kn++):(i=null,0===Mn&&s('"."')),null!==i){if(null!==(l=o()))for(a=[];null!==l;)a.push(l),l=o();else a=null;null!==a?e=[e,t,r,i,a]:(e=null,kn=c)}else e=null,kn=c;else e=null,kn=c}else e=null,kn=c;else e=null,kn=c;return null!==e&&(e=function(e){jn.sip_version=n.substring(kn,e)}(u)),null===e&&(kn=u),e}function Xe(){var e;return"INVITE"===n.substr(kn,6)?(e="INVITE",kn+=6):(e=null,0===Mn&&s('"INVITE"')),e}function Qe(){var e;return"ACK"===n.substr(kn,3)?(e="ACK",kn+=3):(e=null,0===Mn&&s('"ACK"')),e}function Ze(){var e;return"OPTIONS"===n.substr(kn,7)?(e="OPTIONS",kn+=7):(e=null,0===Mn&&s('"OPTIONS"')),e}function et(){var e;return"BYE"===n.substr(kn,3)?(e="BYE",kn+=3):(e=null,0===Mn&&s('"BYE"')),e}function tt(){var e;return"CANCEL"===n.substr(kn,6)?(e="CANCEL",kn+=6):(e=null,0===Mn&&s('"CANCEL"')),e}function nt(){var e;return"REGISTER"===n.substr(kn,8)?(e="REGISTER",kn+=8):(e=null,0===Mn&&s('"REGISTER"')),e}function rt(){var e;return"SUBSCRIBE"===n.substr(kn,9)?(e="SUBSCRIBE",kn+=9):(e=null,0===Mn&&s('"SUBSCRIBE"')),e}function st(){var e;return"NOTIFY"===n.substr(kn,6)?(e="NOTIFY",kn+=6):(e=null,0===Mn&&s('"NOTIFY"')),e}function it(){var e;return"REFER"===n.substr(kn,5)?(e="REFER",kn+=5):(e=null,0===Mn&&s('"REFER"')),e}function ot(){var e,t;return t=kn,null===(e=Xe())&&null===(e=Qe())&&null===(e=Ze())&&null===(e=et())&&null===(e=tt())&&null===(e=nt())&&null===(e=rt())&&null===(e=st())&&null===(e=it())&&(e=b()),null!==e&&(e=function(e){return jn.method=n.substring(kn,e),jn.method}(t)),null===e&&(kn=t),e}function at(){var e,t,n,r,s,i;return i=kn,null!==(e=$e())&&null!==(t=h())&&null!==(n=lt())&&null!==(r=h())&&null!==(s=ct())?e=[e,t,n,r,s]:(e=null,kn=i),e}function lt(){var e,t;return t=kn,null!==(e=ut())&&(e=function(e,t){jn.status_code=parseInt(t.join(""))}(0,e)),null===e&&(kn=t),e}function ut(){var e,t,n,r;return r=kn,null!==(e=o())&&null!==(t=o())&&null!==(n=o())?e=[e,t,n]:(e=null,kn=r),e}function ct(){var e,t,r;for(r=kn,e=[],null===(t=m())&&null===(t=g())&&null===(t=T())&&null===(t=A())&&null===(t=R())&&null===(t=h())&&(t=p());null!==t;)e.push(t),null===(t=m())&&null===(t=g())&&null===(t=T())&&null===(t=A())&&null===(t=R())&&null===(t=h())&&(t=p());return null!==e&&(e=function(e){jn.reason_phrase=n.substring(kn,e)}(r)),null===e&&(kn=r),e}function dt(){var e,t,n,r,s,i,o;if(s=kn,i=kn,null===(e=J())&&(e=ht()),null!==e){for(t=[],o=kn,null!==(n=L())&&null!==(r=ft())?n=[n,r]:(n=null,kn=o);null!==n;)t.push(n),o=kn,null!==(n=L())&&null!==(r=ft())?n=[n,r]:(n=null,kn=o);null!==t?e=[e,t]:(e=null,kn=i)}else e=null,kn=i;return null!==e&&(e=function(e){var t;jn.multi_header||(jn.multi_header=[]);try{t=new Fn(jn.uri,jn.display_name,jn.params),delete jn.uri,delete jn.display_name,delete jn.params}catch(e){t=null}jn.multi_header.push({possition:kn,offset:e,parsed:t})}(s)),null===e&&(kn=s),e}function ht(){var e,t,n,r,s;return s=kn,e=pt(),null!==(e=null!==e?e:"")&&null!==(t=k())&&null!==(n=K())&&null!==(r=U())?e=[e,t,n,r]:(e=null,kn=s),e}function pt(){var e,t,r,s,i,o,a;if(i=kn,o=kn,null!==(e=b())){for(t=[],a=kn,null!==(r=_())&&null!==(s=b())?r=[r,s]:(r=null,kn=a);null!==r;)t.push(r),a=kn,null!==(r=_())&&null!==(s=b())?r=[r,s]:(r=null,kn=a);null!==t?e=[e,t]:(e=null,kn=o)}else e=null,kn=o;return null===e&&(e=B()),null!==e&&(e=function(e,t){'"'===(t=n.substring(kn,e).trim())[0]&&(t=t.substring(1,t.length-1)),jn.display_name=t}(i,e)),null===e&&(kn=i),e}function ft(){var e;return null===(e=mt())&&null===(e=gt())&&(e=_t()),e}function mt(){var e,t,r,i,o;return i=kn,o=kn,"q"===n.substr(kn,1).toLowerCase()?(e=n.substr(kn,1),kn++):(e=null,0===Mn&&s('"q"')),null!==e&&null!==(t=N())&&null!==(r=Tt())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){jn.params||(jn.params={}),jn.params.q=t}(0,e[2])),null===e&&(kn=i),e}function gt(){var e,t,r,i,o;return i=kn,o=kn,"expires"===n.substr(kn,7).toLowerCase()?(e=n.substr(kn,7),kn+=7):(e=null,0===Mn&&s('"expires"')),null!==e&&null!==(t=N())&&null!==(r=vt())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){jn.params||(jn.params={}),jn.params.expires=t}(0,e[2])),null===e&&(kn=i),e}function vt(){var e,t,n;if(n=kn,null!==(t=o()))for(e=[];null!==t;)e.push(t),t=o();else e=null;return null!==e&&(e=function(e,t){return parseInt(t.join(""))}(0,e)),null===e&&(kn=n),e}function Tt(){var e,t,r,i,a,l,u,c;return l=kn,u=kn,48===n.charCodeAt(kn)?(e="0",kn++):(e=null,0===Mn&&s('"0"')),null!==e?(c=kn,46===n.charCodeAt(kn)?(t=".",kn++):(t=null,0===Mn&&s('"."')),null!==t&&null!==(r=null!==(r=o())?r:"")&&null!==(i=null!==(i=o())?i:"")&&null!==(a=null!==(a=o())?a:"")?t=[t,r,i,a]:(t=null,kn=c),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=u)):(e=null,kn=u),null!==e&&(e=function(e){return parseFloat(n.substring(kn,e))}(l)),null===e&&(kn=l),e}function _t(){var e,t,n,r,s,i;return r=kn,s=kn,null!==(e=b())?(i=kn,null!==(t=N())&&null!==(n=Ct())?t=[t,n]:(t=null,kn=i),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=s)):(e=null,kn=s),null!==e&&(e=function(e,t,n){jn.params||(jn.params={}),n=void 0===n?void 0:n[1],jn.params[t.toLowerCase()]=n}(0,e[0],e[1])),null===e&&(kn=r),e}function Ct(){var e;return null===(e=b())&&null===(e=re())&&(e=B()),e}function St(){var e;return"render"===n.substr(kn,6).toLowerCase()?(e=n.substr(kn,6),kn+=6):(e=null,0===Mn&&s('"render"')),null===e&&("session"===n.substr(kn,7).toLowerCase()?(e=n.substr(kn,7),kn+=7):(e=null,0===Mn&&s('"session"')),null===e&&("icon"===n.substr(kn,4).toLowerCase()?(e=n.substr(kn,4),kn+=4):(e=null,0===Mn&&s('"icon"')),null===e&&("alert"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"alert"')),null===e&&(e=b())))),e}function Et(){var e;return null===(e=yt())&&(e=_t()),e}function yt(){var e,t,r,i;return i=kn,"handling"===n.substr(kn,8).toLowerCase()?(e=n.substr(kn,8),kn+=8):(e=null,0===Mn&&s('"handling"')),null!==e&&null!==(t=N())?("optional"===n.substr(kn,8).toLowerCase()?(r=n.substr(kn,8),kn+=8):(r=null,0===Mn&&s('"optional"')),null===r&&("required"===n.substr(kn,8).toLowerCase()?(r=n.substr(kn,8),kn+=8):(r=null,0===Mn&&s('"required"')),null===r&&(r=b())),null!==r?e=[e,t,r]:(e=null,kn=i)):(e=null,kn=i),e}function At(){var e,t,n,r,s,i,o,a;if(o=kn,null!==(e=Rt()))if(null!==(t=x()))if(null!==(n=xt())){for(r=[],a=kn,null!==(s=L())&&null!==(i=Nt())?s=[s,i]:(s=null,kn=a);null!==s;)r.push(s),a=kn,null!==(s=L())&&null!==(i=Nt())?s=[s,i]:(s=null,kn=a);null!==r?e=[e,t,n,r]:(e=null,kn=o)}else e=null,kn=o;else e=null,kn=o;else e=null,kn=o;return e}function Rt(){var e;return null===(e=bt())&&(e=wt()),e}function bt(){var e;return"text"===n.substr(kn,4).toLowerCase()?(e=n.substr(kn,4),kn+=4):(e=null,0===Mn&&s('"text"')),null===e&&("image"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"image"')),null===e&&("audio"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"audio"')),null===e&&("video"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"video"')),null===e&&("application"===n.substr(kn,11).toLowerCase()?(e=n.substr(kn,11),kn+=11):(e=null,0===Mn&&s('"application"')),null===e&&(e=It()))))),e}function wt(){var e;return"message"===n.substr(kn,7).toLowerCase()?(e=n.substr(kn,7),kn+=7):(e=null,0===Mn&&s('"message"')),null===e&&("multipart"===n.substr(kn,9).toLowerCase()?(e=n.substr(kn,9),kn+=9):(e=null,0===Mn&&s('"multipart"')),null===e&&(e=It())),e}function It(){var e;return null===(e=b())&&(e=Ot()),e}function Ot(){var e,t,r;return r=kn,"x-"===n.substr(kn,2).toLowerCase()?(e=n.substr(kn,2),kn+=2):(e=null,0===Mn&&s('"x-"')),null!==e&&null!==(t=b())?e=[e,t]:(e=null,kn=r),e}function xt(){var e;return null===(e=It())&&(e=b()),e}function Nt(){var e,t,n,r;return r=kn,null!==(e=b())&&null!==(t=N())&&null!==(n=Pt())?e=[e,t,n]:(e=null,kn=r),e}function Pt(){var e;return null===(e=b())&&(e=B()),e}function Dt(){var e,t,n;if(n=kn,null!==(t=o()))for(e=[];null!==t;)e.push(t),t=o();else e=null;return null!==e&&(e=function(e,t){jn.value=parseInt(t.join(""))}(0,e)),null===e&&(kn=n),e}function Ut(){var e,t,r,i,o,a;if(o=kn,null!==(e=w())){for(t=[],a=kn,46===n.charCodeAt(kn)?(r=".",kn++):(r=null,0===Mn&&s('"."')),null!==r&&null!==(i=w())?r=[r,i]:(r=null,kn=a);null!==r;)t.push(r),a=kn,46===n.charCodeAt(kn)?(r=".",kn++):(r=null,0===Mn&&s('"."')),null!==r&&null!==(i=w())?r=[r,i]:(r=null,kn=a);null!==t?e=[e,t]:(e=null,kn=o)}else e=null,kn=o;return e}function kt(){var e;return null===(e=Mt())&&(e=_t()),e}function Mt(){var e,t,r,i,o;return i=kn,o=kn,"tag"===n.substr(kn,3).toLowerCase()?(e=n.substr(kn,3),kn+=3):(e=null,0===Mn&&s('"tag"')),null!==e&&null!==(t=N())&&null!==(r=b())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){jn.tag=t}(0,e[2])),null===e&&(kn=i),e}function Lt(){var e,t,r,i,o,a,l,u;if(l=kn,"digest"===n.substr(kn,6).toLowerCase()?(e=n.substr(kn,6),kn+=6):(e=null,0===Mn&&s('"Digest"')),null!==e)if(null!==(t=_()))if(null!==(r=Ft())){for(i=[],u=kn,null!==(o=M())&&null!==(a=Ft())?o=[o,a]:(o=null,kn=u);null!==o;)i.push(o),u=kn,null!==(o=M())&&null!==(a=Ft())?o=[o,a]:(o=null,kn=u);null!==i?e=[e,t,r,i]:(e=null,kn=l)}else e=null,kn=l;else e=null,kn=l;else e=null,kn=l;return null===e&&(e=qt()),e}function qt(){var e,t,n,r,s,i,o,a;if(o=kn,null!==(e=b()))if(null!==(t=_()))if(null!==(n=Ht())){for(r=[],a=kn,null!==(s=M())&&null!==(i=Ht())?s=[s,i]:(s=null,kn=a);null!==s;)r.push(s),a=kn,null!==(s=M())&&null!==(i=Ht())?s=[s,i]:(s=null,kn=a);null!==r?e=[e,t,n,r]:(e=null,kn=o)}else e=null,kn=o;else e=null,kn=o;else e=null,kn=o;return e}function Ht(){var e,t,n,r;return r=kn,null!==(e=b())&&null!==(t=N())?(null===(n=b())&&(n=B()),null!==n?e=[e,t,n]:(e=null,kn=r)):(e=null,kn=r),e}function Ft(){var e;return null===(e=jt())&&null===(e=Bt())&&null===(e=Vt())&&null===(e=Jt())&&null===(e=Kt())&&null===(e=Yt())&&null===(e=$t())&&(e=Ht()),e}function jt(){var e,t,r,i;return i=kn,"realm"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"realm"')),null!==e&&null!==(t=N())&&null!==(r=Gt())?e=[e,t,r]:(e=null,kn=i),e}function Gt(){var e,t;return t=kn,null!==(e=W())&&(e=function(e,t){jn.realm=t}(0,e)),null===e&&(kn=t),e}function Bt(){var e,t,r,i,o,a,l,u,c;if(u=kn,"domain"===n.substr(kn,6).toLowerCase()?(e=n.substr(kn,6),kn+=6):(e=null,0===Mn&&s('"domain"')),null!==e)if(null!==(t=N()))if(null!==(r=H()))if(null!==(i=Wt())){if(o=[],c=kn,null!==(l=h()))for(a=[];null!==l;)a.push(l),l=h();else a=null;for(null!==a&&null!==(l=Wt())?a=[a,l]:(a=null,kn=c);null!==a;){if(o.push(a),c=kn,null!==(l=h()))for(a=[];null!==l;)a.push(l),l=h();else a=null;null!==a&&null!==(l=Wt())?a=[a,l]:(a=null,kn=c)}null!==o&&null!==(a=F())?e=[e,t,r,i,o,a]:(e=null,kn=u)}else e=null,kn=u;else e=null,kn=u;else e=null,kn=u;else e=null,kn=u;return e}function Wt(){var e;return null===(e=Ue())&&(e=Le()),e}function Vt(){var e,t,r,i;return i=kn,"nonce"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"nonce"')),null!==e&&null!==(t=N())&&null!==(r=zt())?e=[e,t,r]:(e=null,kn=i),e}function zt(){var e,t;return t=kn,null!==(e=W())&&(e=function(e,t){jn.nonce=t}(0,e)),null===e&&(kn=t),e}function Jt(){var e,t,r,i,o;return i=kn,o=kn,"opaque"===n.substr(kn,6).toLowerCase()?(e=n.substr(kn,6),kn+=6):(e=null,0===Mn&&s('"opaque"')),null!==e&&null!==(t=N())&&null!==(r=W())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){jn.opaque=t}(0,e[2])),null===e&&(kn=i),e}function Kt(){var e,t,r,i,o;return i=kn,"stale"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"stale"')),null!==e&&null!==(t=N())?(o=kn,"true"===n.substr(kn,4).toLowerCase()?(r=n.substr(kn,4),kn+=4):(r=null,0===Mn&&s('"true"')),null!==r&&(r=void(jn.stale=!0)),null===r&&(kn=o),null===r&&(o=kn,"false"===n.substr(kn,5).toLowerCase()?(r=n.substr(kn,5),kn+=5):(r=null,0===Mn&&s('"false"')),null!==r&&(r=void(jn.stale=!1)),null===r&&(kn=o)),null!==r?e=[e,t,r]:(e=null,kn=i)):(e=null,kn=i),e}function Yt(){var e,t,r,i,o;return i=kn,o=kn,"algorithm"===n.substr(kn,9).toLowerCase()?(e=n.substr(kn,9),kn+=9):(e=null,0===Mn&&s('"algorithm"')),null!==e&&null!==(t=N())?("md5"===n.substr(kn,3).toLowerCase()?(r=n.substr(kn,3),kn+=3):(r=null,0===Mn&&s('"MD5"')),null===r&&("md5-sess"===n.substr(kn,8).toLowerCase()?(r=n.substr(kn,8),kn+=8):(r=null,0===Mn&&s('"MD5-sess"')),null===r&&(r=b())),null!==r?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e,t){jn.algorithm=t.toUpperCase()}(0,e[2])),null===e&&(kn=i),e}function $t(){var e,t,r,i,o,a,l,u,c,d;if(u=kn,"qop"===n.substr(kn,3).toLowerCase()?(e=n.substr(kn,3),kn+=3):(e=null,0===Mn&&s('"qop"')),null!==e)if(null!==(t=N()))if(null!==(r=H())){if(c=kn,null!==(i=Xt())){for(o=[],d=kn,44===n.charCodeAt(kn)?(a=",",kn++):(a=null,0===Mn&&s('","')),null!==a&&null!==(l=Xt())?a=[a,l]:(a=null,kn=d);null!==a;)o.push(a),d=kn,44===n.charCodeAt(kn)?(a=",",kn++):(a=null,0===Mn&&s('","')),null!==a&&null!==(l=Xt())?a=[a,l]:(a=null,kn=d);null!==o?i=[i,o]:(i=null,kn=c)}else i=null,kn=c;null!==i&&null!==(o=F())?e=[e,t,r,i,o]:(e=null,kn=u)}else e=null,kn=u;else e=null,kn=u;else e=null,kn=u;return e}function Xt(){var e,t;return t=kn,"auth-int"===n.substr(kn,8).toLowerCase()?(e=n.substr(kn,8),kn+=8):(e=null,0===Mn&&s('"auth-int"')),null===e&&("auth"===n.substr(kn,4).toLowerCase()?(e=n.substr(kn,4),kn+=4):(e=null,0===Mn&&s('"auth"')),null===e&&(e=b())),null!==e&&(e=function(e,t){jn.qop||(jn.qop=[]),jn.qop.push(t.toLowerCase())}(0,e)),null===e&&(kn=t),e}function Qt(){var e,t,n,r,s,i,o;if(s=kn,i=kn,null!==(e=ht())){for(t=[],o=kn,null!==(n=L())&&null!==(r=_t())?n=[n,r]:(n=null,kn=o);null!==n;)t.push(n),o=kn,null!==(n=L())&&null!==(r=_t())?n=[n,r]:(n=null,kn=o);null!==t?e=[e,t]:(e=null,kn=i)}else e=null,kn=i;return null!==e&&(e=function(e){var t;jn.multi_header||(jn.multi_header=[]);try{t=new Fn(jn.uri,jn.display_name,jn.params),delete jn.uri,delete jn.display_name,delete jn.params}catch(e){t=null}jn.multi_header.push({possition:kn,offset:e,parsed:t})}(s)),null===e&&(kn=s),e}function Zt(){var e;return null===(e=en())&&(e=_t()),e}function en(){var e,t,r,i,a,l;if(a=kn,l=kn,"cause"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"cause"')),null!==e)if(null!==(t=N())){if(null!==(i=o()))for(r=[];null!==i;)r.push(i),i=o();else r=null;null!==r?e=[e,t,r]:(e=null,kn=l)}else e=null,kn=l;else e=null,kn=l;return null!==e&&(e=function(e,t){jn.cause=parseInt(t.join(""))}(0,e[2])),null===e&&(kn=a),e}function tn(){var e,t,n,r,s,i;if(s=kn,null!==(e=ht())){for(t=[],i=kn,null!==(n=L())&&null!==(r=_t())?n=[n,r]:(n=null,kn=i);null!==n;)t.push(n),i=kn,null!==(n=L())&&null!==(r=_t())?n=[n,r]:(n=null,kn=i);null!==t?e=[e,t]:(e=null,kn=s)}else e=null,kn=s;return e}function nn(){var e,t;return t=kn,"active"===n.substr(kn,6).toLowerCase()?(e=n.substr(kn,6),kn+=6):(e=null,0===Mn&&s('"active"')),null===e&&("pending"===n.substr(kn,7).toLowerCase()?(e=n.substr(kn,7),kn+=7):(e=null,0===Mn&&s('"pending"')),null===e&&("terminated"===n.substr(kn,10).toLowerCase()?(e=n.substr(kn,10),kn+=10):(e=null,0===Mn&&s('"terminated"')),null===e&&(e=b()))),null!==e&&(e=function(e){jn.state=n.substring(kn,e)}(t)),null===e&&(kn=t),e}function rn(){var e,t,r,i,o;return i=kn,o=kn,"reason"===n.substr(kn,6).toLowerCase()?(e=n.substr(kn,6),kn+=6):(e=null,0===Mn&&s('"reason"')),null!==e&&null!==(t=N())&&null!==(r=sn())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){void 0!==t&&(jn.reason=t)}(0,e[2])),null===e&&(kn=i),null===e&&(i=kn,o=kn,"expires"===n.substr(kn,7).toLowerCase()?(e=n.substr(kn,7),kn+=7):(e=null,0===Mn&&s('"expires"')),null!==e&&null!==(t=N())&&null!==(r=vt())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){void 0!==t&&(jn.expires=t)}(0,e[2])),null===e&&(kn=i),null===e&&(i=kn,o=kn,"retry_after"===n.substr(kn,11).toLowerCase()?(e=n.substr(kn,11),kn+=11):(e=null,0===Mn&&s('"retry_after"')),null!==e&&null!==(t=N())&&null!==(r=vt())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){void 0!==t&&(jn.retry_after=t)}(0,e[2])),null===e&&(kn=i),null===e&&(e=_t()))),e}function sn(){var e;return"deactivated"===n.substr(kn,11).toLowerCase()?(e=n.substr(kn,11),kn+=11):(e=null,0===Mn&&s('"deactivated"')),null===e&&("probation"===n.substr(kn,9).toLowerCase()?(e=n.substr(kn,9),kn+=9):(e=null,0===Mn&&s('"probation"')),null===e&&("rejected"===n.substr(kn,8).toLowerCase()?(e=n.substr(kn,8),kn+=8):(e=null,0===Mn&&s('"rejected"')),null===e&&("timeout"===n.substr(kn,7).toLowerCase()?(e=n.substr(kn,7),kn+=7):(e=null,0===Mn&&s('"timeout"')),null===e&&("giveup"===n.substr(kn,6).toLowerCase()?(e=n.substr(kn,6),kn+=6):(e=null,0===Mn&&s('"giveup"')),null===e&&("noresource"===n.substr(kn,10).toLowerCase()?(e=n.substr(kn,10),kn+=10):(e=null,0===Mn&&s('"noresource"')),null===e&&("invariant"===n.substr(kn,9).toLowerCase()?(e=n.substr(kn,9),kn+=9):(e=null,0===Mn&&s('"invariant"')),null===e&&(e=b()))))))),e}function on(){var e;return null===(e=Mt())&&(e=_t()),e}function an(){var e,t,n,r,s,i,o,a;if(o=kn,null!==(e=fn()))if(null!==(t=_()))if(null!==(n=vn())){for(r=[],a=kn,null!==(s=L())&&null!==(i=ln())?s=[s,i]:(s=null,kn=a);null!==s;)r.push(s),a=kn,null!==(s=L())&&null!==(i=ln())?s=[s,i]:(s=null,kn=a);null!==r?e=[e,t,n,r]:(e=null,kn=o)}else e=null,kn=o;else e=null,kn=o;else e=null,kn=o;return e}function ln(){var e;return null===(e=un())&&null===(e=cn())&&null===(e=dn())&&null===(e=hn())&&null===(e=pn())&&(e=_t()),e}function un(){var e,t,r,i,o;return i=kn,o=kn,"ttl"===n.substr(kn,3).toLowerCase()?(e=n.substr(kn,3),kn+=3):(e=null,0===Mn&&s('"ttl"')),null!==e&&null!==(t=N())&&null!==(r=Cn())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){jn.ttl=t}(0,e[2])),null===e&&(kn=i),e}function cn(){var e,t,r,i,o;return i=kn,o=kn,"maddr"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"maddr"')),null!==e&&null!==(t=N())&&null!==(r=re())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){jn.maddr=t}(0,e[2])),null===e&&(kn=i),e}function dn(){var e,t,r,i,o;return i=kn,o=kn,"received"===n.substr(kn,8).toLowerCase()?(e=n.substr(kn,8),kn+=8):(e=null,0===Mn&&s('"received"')),null!==e&&null!==(t=N())?(null===(r=de())&&(r=le()),null!==r?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e,t){jn.received=t}(0,e[2])),null===e&&(kn=i),e}function hn(){var e,t,r,i,o;return i=kn,o=kn,"branch"===n.substr(kn,6).toLowerCase()?(e=n.substr(kn,6),kn+=6):(e=null,0===Mn&&s('"branch"')),null!==e&&null!==(t=N())&&null!==(r=b())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){jn.branch=t}(0,e[2])),null===e&&(kn=i),e}function pn(){var e,t,r,i,a,l,u;if(a=kn,l=kn,"rport"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"rport"')),null!==e){if(u=kn,null!==(t=N())){for(r=[],i=o();null!==i;)r.push(i),i=o();null!==r?t=[t,r]:(t=null,kn=u)}else t=null,kn=u;null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=l)}else e=null,kn=l;return null!==e&&(e=void("undefined"!=typeof response_port&&(jn.rport=response_port.join("")))),null===e&&(kn=a),e}function fn(){var e,t,n,r,s,i;return i=kn,null!==(e=mn())&&null!==(t=x())&&null!==(n=b())&&null!==(r=x())&&null!==(s=gn())?e=[e,t,n,r,s]:(e=null,kn=i),e}function mn(){var e,t;return t=kn,"sip"===n.substr(kn,3).toLowerCase()?(e=n.substr(kn,3),kn+=3):(e=null,0===Mn&&s('"SIP"')),null===e&&(e=b()),null!==e&&(e=function(e,t){jn.protocol=t}(0,e)),null===e&&(kn=t),e}function gn(){var e,t;return t=kn,"udp"===n.substr(kn,3).toLowerCase()?(e=n.substr(kn,3),kn+=3):(e=null,0===Mn&&s('"UDP"')),null===e&&("tcp"===n.substr(kn,3).toLowerCase()?(e=n.substr(kn,3),kn+=3):(e=null,0===Mn&&s('"TCP"')),null===e&&("tls"===n.substr(kn,3).toLowerCase()?(e=n.substr(kn,3),kn+=3):(e=null,0===Mn&&s('"TLS"')),null===e&&("sctp"===n.substr(kn,4).toLowerCase()?(e=n.substr(kn,4),kn+=4):(e=null,0===Mn&&s('"SCTP"')),null===e&&(e=b())))),null!==e&&(e=function(e,t){jn.transport=t}(0,e)),null===e&&(kn=t),e}function vn(){var e,t,n,r,s;return r=kn,null!==(e=Tn())?(s=kn,null!==(t=q())&&null!==(n=_n())?t=[t,n]:(t=null,kn=s),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=r)):(e=null,kn=r),e}function Tn(){var e,t;return t=kn,null===(e=de())&&null===(e=ae())&&(e=se()),null!==e&&(e=function(e){jn.host=n.substring(kn,e)}(t)),null===e&&(kn=t),e}function _n(){var e,t,n,r,s,i,a;return i=kn,a=kn,e=o(),null!==(e=null!==e?e:"")&&null!==(t=null!==(t=o())?t:"")&&null!==(n=null!==(n=o())?n:"")&&null!==(r=null!==(r=o())?r:"")&&null!==(s=null!==(s=o())?s:"")?e=[e,t,n,r,s]:(e=null,kn=a),null!==e&&(e=function(e,t){jn.port=parseInt(t.join(""))}(0,e)),null===e&&(kn=i),e}function Cn(){var e,t,n,r,s;return r=kn,s=kn,null!==(e=o())&&null!==(t=null!==(t=o())?t:"")&&null!==(n=null!==(n=o())?n:"")?e=[e,t,n]:(e=null,kn=s),null!==e&&(e=function(e,t){return parseInt(t.join(""))}(0,e)),null===e&&(kn=r),e}function Sn(){var e,t;return t=kn,null!==(e=vt())&&(e=function(e,t){jn.expires=t}(0,e)),null===e&&(kn=t),e}function En(){var e;return null===(e=yn())&&(e=_t()),e}function yn(){var e,t,r,i,o;return i=kn,o=kn,"refresher"===n.substr(kn,9).toLowerCase()?(e=n.substr(kn,9),kn+=9):(e=null,0===Mn&&s('"refresher"')),null!==e&&null!==(t=N())?("uac"===n.substr(kn,3).toLowerCase()?(r=n.substr(kn,3),kn+=3):(r=null,0===Mn&&s('"uac"')),null===r&&("uas"===n.substr(kn,3).toLowerCase()?(r=n.substr(kn,3),kn+=3):(r=null,0===Mn&&s('"uas"'))),null!==r?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e,t){jn.refresher=t.toLowerCase()}(0,e[2])),null===e&&(kn=i),e}function An(){var e,t;for(e=[],null===(t=y())&&null===(t=R())&&(t=_());null!==t;)e.push(t),null===(t=y())&&null===(t=R())&&(t=_());return e}function Rn(){var e,t,r,i,o,a,l,u,c,d,h;return d=kn,h=kn,null!==(e=wn())?(45===n.charCodeAt(kn)?(t="-",kn++):(t=null,0===Mn&&s('"-"')),null!==t&&null!==(r=bn())?(45===n.charCodeAt(kn)?(i="-",kn++):(i=null,0===Mn&&s('"-"')),null!==i&&null!==(o=bn())?(45===n.charCodeAt(kn)?(a="-",kn++):(a=null,0===Mn&&s('"-"')),null!==a&&null!==(l=bn())?(45===n.charCodeAt(kn)?(u="-",kn++):(u=null,0===Mn&&s('"-"')),null!==u&&null!==(c=In())?e=[e,t,r,i,o,a,l,u,c]:(e=null,kn=h)):(e=null,kn=h)):(e=null,kn=h)):(e=null,kn=h)):(e=null,kn=h),null!==e&&(e=function(e,t){jn=n.substring(kn+5,e)}(d,e[0])),null===e&&(kn=d),e}function bn(){var e,t,n,r,s;return s=kn,null!==(e=l())&&null!==(t=l())&&null!==(n=l())&&null!==(r=l())?e=[e,t,n,r]:(e=null,kn=s),e}function wn(){var e,t,n;return n=kn,null!==(e=bn())&&null!==(t=bn())?e=[e,t]:(e=null,kn=n),e}function In(){var e,t,n,r;return r=kn,null!==(e=bn())&&null!==(t=bn())&&null!==(n=bn())?e=[e,t,n]:(e=null,kn=r),e}function On(){var e,t,r,i,o,a;return i=kn,o=kn,null!==(e=I())?(a=kn,64===n.charCodeAt(kn)?(t="@",kn++):(t=null,0===Mn&&s('"@"')),null!==t&&null!==(r=I())?t=[t,r]:(t=null,kn=a),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e){jn.call_id=n.substring(kn,e)}(i)),null===e&&(kn=i),e}function xn(){var e;return null===(e=Nn())&&null===(e=Pn())&&null===(e=Dn())&&(e=_t()),e}function Nn(){var e,t,r,i,o;return i=kn,o=kn,"to-tag"===n.substr(kn,6)?(e="to-tag",kn+=6):(e=null,0===Mn&&s('"to-tag"')),null!==e&&null!==(t=N())&&null!==(r=b())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){jn.to_tag=t}(0,e[2])),null===e&&(kn=i),e}function Pn(){var e,t,r,i,o;return i=kn,o=kn,"from-tag"===n.substr(kn,8)?(e="from-tag",kn+=8):(e=null,0===Mn&&s('"from-tag"')),null!==e&&null!==(t=N())&&null!==(r=b())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){jn.from_tag=t}(0,e[2])),null===e&&(kn=i),e}function Dn(){var e,t;return t=kn,"early-only"===n.substr(kn,10)?(e="early-only",kn+=10):(e=null,0===Mn&&s('"early-only"')),null!==e&&(e=void(jn.early_only=!0)),null===e&&(kn=t),e}var Un={CRLF:i,DIGIT:o,ALPHA:a,HEXDIG:l,WSP:u,OCTET:c,DQUOTE:d,SP:h,HTAB:p,alphanum:f,reserved:m,unreserved:g,mark:v,escaped:T,LWS:_,SWS:C,HCOLON:S,TEXT_UTF8_TRIM:E,TEXT_UTF8char:y,UTF8_NONASCII:A,UTF8_CONT:R,LHEX:function(){var e;return null===(e=o())&&(/^[a-f]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[a-f]"))),e},token:b,token_nodot:w,separators:function(){var e;return 40===n.charCodeAt(kn)?(e="(",kn++):(e=null,0===Mn&&s('"("')),null===e&&(41===n.charCodeAt(kn)?(e=")",kn++):(e=null,0===Mn&&s('")"')),null===e&&(60===n.charCodeAt(kn)?(e="<",kn++):(e=null,0===Mn&&s('"<"')),null===e&&(62===n.charCodeAt(kn)?(e=">",kn++):(e=null,0===Mn&&s('">"')),null===e&&(64===n.charCodeAt(kn)?(e="@",kn++):(e=null,0===Mn&&s('"@"')),null===e&&(44===n.charCodeAt(kn)?(e=",",kn++):(e=null,0===Mn&&s('","')),null===e&&(59===n.charCodeAt(kn)?(e=";",kn++):(e=null,0===Mn&&s('";"')),null===e&&(58===n.charCodeAt(kn)?(e=":",kn++):(e=null,0===Mn&&s('":"')),null===e&&(92===n.charCodeAt(kn)?(e="\\",kn++):(e=null,0===Mn&&s('"\\\\"')),null===e&&null===(e=d())&&(47===n.charCodeAt(kn)?(e="/",kn++):(e=null,0===Mn&&s('"/"')),null===e&&(91===n.charCodeAt(kn)?(e="[",kn++):(e=null,0===Mn&&s('"["')),null===e&&(93===n.charCodeAt(kn)?(e="]",kn++):(e=null,0===Mn&&s('"]"')),null===e&&(63===n.charCodeAt(kn)?(e="?",kn++):(e=null,0===Mn&&s('"?"')),null===e&&(61===n.charCodeAt(kn)?(e="=",kn++):(e=null,0===Mn&&s('"="')),null===e&&(123===n.charCodeAt(kn)?(e="{",kn++):(e=null,0===Mn&&s('"{"')),null===e&&(125===n.charCodeAt(kn)?(e="}",kn++):(e=null,0===Mn&&s('"}"')),null===e&&null===(e=h())&&(e=p())))))))))))))))),e},word:I,STAR:O,SLASH:x,EQUAL:N,LPAREN:P,RPAREN:D,RAQUOT:U,LAQUOT:k,COMMA:M,SEMI:L,COLON:q,LDQUOT:H,RDQUOT:F,comment:j,ctext:G,quoted_string:B,quoted_string_clean:W,qdtext:V,quoted_pair:z,SIP_URI_noparams:J,SIP_URI:K,uri_scheme:Y,uri_scheme_sips:$,uri_scheme_sip:X,userinfo:Q,user:Z,user_unreserved:ee,password:te,hostport:ne,host:re,hostname:se,domainlabel:ie,toplabel:oe,IPv6reference:ae,IPv6address:le,h16:ue,ls32:ce,IPv4address:de,dec_octet:he,port:pe,uri_parameters:fe,uri_parameter:me,transport_param:ge,user_param:ve,method_param:Te,ttl_param:_e,maddr_param:Ce,lr_param:Se,other_param:Ee,pname:ye,pvalue:Ae,paramchar:Re,param_unreserved:be,headers:we,header:Ie,hname:Oe,hvalue:xe,hnv_unreserved:Ne,Request_Response:function(){var e;return null===(e=at())&&(e=Pe()),e},Request_Line:Pe,Request_URI:De,absoluteURI:Ue,hier_part:ke,net_path:Me,abs_path:Le,opaque_part:qe,uric:He,uric_no_slash:Fe,path_segments:je,segment:Ge,param:Be,pchar:We,scheme:Ve,authority:ze,srvr:Je,reg_name:Ke,query:Ye,SIP_Version:$e,INVITEm:Xe,ACKm:Qe,OPTIONSm:Ze,BYEm:et,CANCELm:tt,REGISTERm:nt,SUBSCRIBEm:rt,NOTIFYm:st,REFERm:it,Method:ot,Status_Line:at,Status_Code:lt,extension_code:ut,Reason_Phrase:ct,Allow_Events:function(){var e,t,n,r,s,i;if(s=kn,null!==(e=Ut())){for(t=[],i=kn,null!==(n=M())&&null!==(r=Ut())?n=[n,r]:(n=null,kn=i);null!==n;)t.push(n),i=kn,null!==(n=M())&&null!==(r=Ut())?n=[n,r]:(n=null,kn=i);null!==t?e=[e,t]:(e=null,kn=s)}else e=null,kn=s;return e},Call_ID:function(){var e,t,r,i,o,a;return i=kn,o=kn,null!==(e=I())?(a=kn,64===n.charCodeAt(kn)?(t="@",kn++):(t=null,0===Mn&&s('"@"')),null!==t&&null!==(r=I())?t=[t,r]:(t=null,kn=a),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e){jn=n.substring(kn,e)}(i)),null===e&&(kn=i),e},Contact:function(){var e,t,n,r,s,i,o;if(s=kn,null===(e=O()))if(i=kn,null!==(e=dt())){for(t=[],o=kn,null!==(n=M())&&null!==(r=dt())?n=[n,r]:(n=null,kn=o);null!==n;)t.push(n),o=kn,null!==(n=M())&&null!==(r=dt())?n=[n,r]:(n=null,kn=o);null!==t?e=[e,t]:(e=null,kn=i)}else e=null,kn=i;return null!==e&&(e=function(e){var t,n;for(n=jn.multi_header.length,t=0;t=700)throw new TypeError("Invalid status_code: "+t);this.request.reply(t,n,r,s)},r.prototype.newMessage=function(e,t){"remote"===e?(this.direction="incoming",this.local_identity=t.to,this.remote_identity=t.from):"local"===e&&(this.direction="outgoing",this.local_identity=t.from,this.remote_identity=t.to),this.ua.newMessage({originator:e,message:this,request:t})}},{"./Constants":1,"./Exceptions":5,"./RequestSender":18,"./SIPMessage":19,"./Transactions":22,"./Utils":26,events:31,util:41}],9:[function(e,t,n){function r(e,t,n){var r;if(!(e&&e instanceof s))throw new TypeError('missing or invalid "uri" parameter');this.uri=e,this.parameters={};for(r in n)this.setParam(r,n[r]);Object.defineProperties(this,{display_name:{get:function(){return t},set:function(e){t=0===e?"0":e}}})}t.exports=r;var s=e("./URI"),i=e("./Grammar");r.prototype={setParam:function(e,t){e&&(this.parameters[e.toLowerCase()]=void 0===t||null===t?null:t.toString())},getParam:function(e){if(e)return this.parameters[e.toLowerCase()]},hasParam:function(e){if(e)return this.parameters.hasOwnProperty(e.toLowerCase())&&!0||!1},deleteParam:function(e){var t;if(e=e.toLowerCase(),this.parameters.hasOwnProperty(e))return t=this.parameters[e],delete this.parameters[e],t},clearParams:function(){this.parameters={}},clone:function(){return new r(this.uri.clone(),this.display_name,JSON.parse(JSON.stringify(this.parameters)))},toString:function(){var e,t;e=this.display_name||0===this.display_name?'"'+this.display_name+'" ':"",e+="<"+this.uri.toString()+">";for(t in this.parameters)e+=";"+t,null!==this.parameters[t]&&(e+="="+this.parameters[t]);return e}},r.parse=function(e){return-1!==(e=i.parse(e,"Name_Addr_Header"))?e:void 0}},{"./Grammar":6,"./URI":25}],10:[function(e,t,n){function r(e,t){var n=t,r=0,s=0;if(e.substring(n,n+2).match(/(^\r\n)/))return-2;for(;0===r;){if(-1===(s=e.indexOf("\r\n",n)))return s;!e.substring(s+2,s+4).match(/(^\r\n)/)&&e.charAt(s+2).match(/(^\s+)/)?n=s+2:r=s}return r}function s(e,t,n,r){var s,i,o,u,c=t.indexOf(":",n),d=t.substring(n,c).trim(),h=t.substring(c+1,r).trim();switch(d.toLowerCase()){case"via":case"v":e.addHeader("via",h),1===e.getHeaders("via").length?(u=e.parseHeader("Via"))&&(e.via=u,e.via_branch=u.branch):u=0;break;case"from":case"f":e.setHeader("from",h),(u=e.parseHeader("from"))&&(e.from=u,e.from_tag=u.getParam("tag"));break;case"to":case"t":e.setHeader("to",h),(u=e.parseHeader("to"))&&(e.to=u,e.to_tag=u.getParam("tag"));break;case"record-route":if(-1===(u=a.parse(h,"Record_Route")))u=void 0;else for(o=u.length,i=0;iK.T2&&(r=K.T2),n.timers.invite2xxTimer=setTimeout(s,r))},r)}function i(){var e=this;this.timers.ackTimer=setTimeout(function(){e.status===q.STATUS_WAITING_FOR_ACK&&(j("no ACK received, terminating the session"),clearTimeout(e.timers.invite2xxTimer),_.call(e,W.BYE),P.call(e,"remote",null,W.causes.NO_ACK))},K.TIMER_H)}function o(e,t){var n=this;this.connection=new RTCPeerConnection(e,t),this.connection.addEventListener("iceconnectionstatechange",function(){"failed"===n.connection.iceConnectionState&&n.terminate({cause:W.causes.RTP_TIMEOUT,status_code:408,reason_phrase:W.causes.RTP_TIMEOUT})})}function a(e,t,n,r){function s(r){var s;o.addEventListener("icecandidate",s=function(n){if(!n.candidate){if(o.removeEventListener("icecandidate",s),i.rtcReady=!0,t){var r={originator:"local",type:e,sdp:o.localDescription.sdp};j('emit "sdp"'),i.emit("sdp",r),t(r.sdp)}t=null}}),o.setLocalDescription(r).then(function(){if("complete"===o.iceGatheringState&&(i.rtcReady=!0,t)){var n={originator:"local",type:e,sdp:o.localDescription.sdp};j('emit "sdp"'),i.emit("sdp",n),t(n.sdp),t=null}}).catch(function(e){i.rtcReady=!0,n&&n(e),G('emit "peerconnection:setlocaldescriptionfailed" [error:%o]',e),i.emit("peerconnection:setlocaldescriptionfailed",e)})}j("createLocalDescription()");var i=this,o=this.connection;if(this.rtcReady=!1,"offer"===e)o.createOffer(r).then(s).catch(function(e){i.rtcReady=!0,n&&n(e),G('emit "peerconnection:createofferfailed" [error:%o]',e),i.emit("peerconnection:createofferfailed",e)});else{if("answer"!==e)throw new Error('createLocalDescription() | type must be "offer" or "answer", but "'+e+'" was given');o.createAnswer(r).then(s).catch(function(e){i.rtcReady=!0,n&&n(e),G('emit "peerconnection:createanswerfailed" [error:%o]',e),i.emit("peerconnection:createanswerfailed",e)})}}function l(e,t,n){var r,s,i="UAS"===t?e.to_tag:e.from_tag,o="UAS"===t?e.from_tag:e.to_tag,a=e.call_id+i+o;return s=this.earlyDialogs[a],n?!!s||((s=new $(this,e,t,$.C.STATUS_EARLY)).error?(j(s.error),D.call(this,"remote",e,W.causes.INTERNAL_ERROR),!1):(this.earlyDialogs[a]=s,!0)):(this.from_tag=e.from_tag,this.to_tag=e.to_tag,s?(s.update(e,t),this.dialog=s,delete this.earlyDialogs[a],!0):(r=new $(this,e,t)).error?(j(r.error),D.call(this,"remote",e,W.causes.INTERNAL_ERROR),!1):(this.dialog=r,!0))}function u(e){function t(){n(function(t){var n=["Contact: "+c.contact];E.call(c,e,n),c.late_sdp&&(t=C.call(c,t)),e.reply(200,null,n,t,function(){c.status=q.STATUS_WAITING_FOR_ACK,s.call(c,e,t),i.call(c)}),"function"==typeof f.callback&&f.callback()},function(){e.reply(500)})}function n(e,t){c.late_sdp?a.call(c,"offer",e,t,c.rtcOfferConstraints):(!0===c.remoteHold&&!1===h?(c.remoteHold=!1,k.call(c,"remote")):!1===c.remoteHold&&!0===h&&(c.remoteHold=!0,U.call(c,"remote")),a.call(c,"answer",e,t,c.rtcAnswerConstraints))}j("receiveReinvite()");var r,o,l,u,c=this,d=e.getHeader("Content-Type"),h=!1,p=!1,f={request:e,callback:void 0,reject:function(t){p=!0;var n=(t=t||{}).status_code||403,r=t.reason_phrase||"",s=t.extraHeaders&&t.extraHeaders.slice()||[];if(this.status!==q.STATUS_CONFIRMED)return!1;if(n<300||n>=700)throw new TypeError("Invalid status_code: "+n);e.reply(n,r,s)}.bind(this)};if(this.emit("reinvite",f),!p)if(e.body){if(this.late_sdp=!1,"application/sdp"!==d)return j("invalid Content-Type"),void e.reply(415);for(r=e.parseSDP(),o=0;o=700)throw new TypeError("Invalid status_code: "+n);e.reply(n,r,s)}.bind(this)};if(this.emit("update",c),!l){if(!e.body){var d=[];return E.call(this,e,d),void e.reply(200,null,d)}if("application/sdp"!==o)return j("invalid Content-Type"),void e.reply(415);for(t=e.parseSDP(),n=0;n=200&&e.status_code<=299)return this.dialog.id.call_id===e.call_id&&this.dialog.id.local_tag===e.from_tag&&this.dialog.id.remote_tag===e.to_tag?void _.call(this,W.ACK):void 0!==(n=new $(this,e,"UAC")).error?void j(n.error):(n.sendRequest({owner:{status:q.STATUS_TERMINATED},onRequestTimeout:function(){},onTransportError:function(){},onDialogError:function(){},receiveResponse:function(){}},W.ACK),void n.sendRequest({owner:{status:q.STATUS_TERMINATED},onRequestTimeout:function(){},onTransportError:function(){},onDialogError:function(){},receiveResponse:function(){}},W.BYE));if(this.isCanceled)return this.isCanceled=!1,void(e.status_code>=100&&e.status_code<200?this.request.cancel(this.cancelReason):e.status_code>=200&&e.status_code<299&&T.call(this,e));if(this.status===q.STATUS_INVITE_SENT||this.status===q.STATUS_1XX_RECEIVED)switch(!0){case/^100$/.test(e.status_code):this.status=q.STATUS_1XX_RECEIVED;break;case/^1[0-9]{2}$/.test(e.status_code):if(!e.to_tag){j("1xx response received without to tag");break}if(e.hasHeader("contact")&&!l.call(this,e,"UAC",!0))break;if(this.status=q.STATUS_1XX_RECEIVED,O.call(this,"remote",e),!e.body)break;r={originator:"remote",type:"answer",sdp:e.body},j('emit "sdp"'),this.emit("sdp",r),s=new RTCSessionDescription({type:"answer",sdp:r.sdp}),this.connection.setRemoteDescription(s).catch(function(e){G('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),i.emit("peerconnection:setremotedescriptionfailed",e)});break;case/^2[0-9]{2}$/.test(e.status_code):if(this.status=q.STATUS_CONFIRMED,!e.body){T.call(this,e,400,W.causes.MISSING_SDP),D.call(this,"remote",e,W.causes.BAD_MEDIA_DESCRIPTION);break}if(!l.call(this,e,"UAC"))break;r={originator:"remote",type:"answer",sdp:e.body},j('emit "sdp"'),this.emit("sdp",r),s=new RTCSessionDescription({type:"answer",sdp:r.sdp}),Promise.resolve().then(function(){if("stable"===i.connection.signalingState)return i.connection.createOffer().then(function(e){return i.connection.setLocalDescription(e)}).catch(function(t){T.call(i,e,500,t.toString()),D.call(i,"local",e,W.causes.WEBRTC_ERROR),G('emit "peerconnection:setlocaldescriptionfailed" [error:%o]',t),i.emit("peerconnection:setlocaldescriptionfailed",t)})}).then(function(){i.connection.setRemoteDescription(s).then(function(){y.call(i,e),x.call(i,"remote",e),_.call(i,W.ACK),N.call(i,"local",null)}).catch(function(t){T.call(i,e,488,"Not Acceptable Here"),D.call(i,"remote",e,W.causes.BAD_MEDIA_DESCRIPTION),G('emit "peerconnection:setremotedescriptionfailed" [error:%o]',t),i.emit("peerconnection:setremotedescriptionfailed",t)})});break;default:t=J.sipErrorCause(e.status_code),D.call(this,"remote",e,t)}}function g(e){function t(e){if(r.status!==q.STATUS_TERMINATED&&(_.call(r,W.ACK),!l))if(y.call(r,e),e.body)if("application/sdp"===e.getHeader("Content-Type")){var t={originator:"remote",type:"answer",sdp:e.body};j('emit "sdp"'),r.emit("sdp",t);var s=new RTCSessionDescription({type:"answer",sdp:t.sdp});r.connection.setRemoteDescription(s).then(function(){i.succeeded&&i.succeeded(e)}).catch(function(e){n(),G('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),r.emit("peerconnection:setremotedescriptionfailed",e)})}else n();else n()}function n(e){i.failed&&i.failed(e)}j("sendReinvite()");var r=this,s=(e=e||{}).extraHeaders||[],i=e.eventHandlers||{},o=e.rtcOfferConstraints||this.rtcOfferConstraints||null,l=!1;s.push("Contact: "+this.contact),s.push("Content-Type: application/sdp"),this.sessionTimers.running&&s.push("Session-Expires: "+this.sessionTimers.currentExpires+";refresher="+(this.sessionTimers.refresher?"uac":"uas")),a.call(this,"offer",function(e){e=C.call(r,e),new Q(r,W.INVITE).send({extraHeaders:s,body:e,eventHandlers:{onSuccessResponse:function(e){t(e),l=!0},onErrorResponse:function(e){n(e)},onTransportError:function(){r.onTransportError()},onRequestTimeout:function(){r.onRequestTimeout()},onDialogError:function(){r.onDialogError()}}})},function(){n()},o)}function v(e){function t(e){if(r.status!==q.STATUS_TERMINATED&&!u)if(y.call(r,e),l){if(!e.body)return void n();if("application/sdp"!==e.getHeader("Content-Type"))return void n();var t={originator:"remote",type:"answer",sdp:e.body};j('emit "sdp"'),r.emit("sdp",t);var s=new RTCSessionDescription({type:"answer",sdp:t.sdp});r.connection.setRemoteDescription(s).then(function(){i.succeeded&&i.succeeded(e)}).catch(function(e){n(),G('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),r.emit("peerconnection:setremotedescriptionfailed",e)})}else i.succeeded&&i.succeeded(e)}function n(e){i.failed&&i.failed(e)}j("sendUpdate()");var r=this,s=(e=e||{}).extraHeaders||[],i=e.eventHandlers||{},o=e.rtcOfferConstraints||this.rtcOfferConstraints||null,l=e.sdpOffer||!1,u=!1;s.push("Contact: "+this.contact),this.sessionTimers.running&&s.push("Session-Expires: "+this.sessionTimers.currentExpires+";refresher="+(this.sessionTimers.refresher?"uac":"uas")),l?(s.push("Content-Type: application/sdp"),a.call(this,"offer",function(e){e=C.call(r,e),new Q(r,W.UPDATE).send({extraHeaders:s,body:e,eventHandlers:{onSuccessResponse:function(e){t(e),u=!0},onErrorResponse:function(e){n(e)},onTransportError:function(){r.onTransportError()},onRequestTimeout:function(){r.onRequestTimeout()},onDialogError:function(){r.onDialogError()}}})},function(){n()},o)):new Q(r,W.UPDATE).send({extraHeaders:s,eventHandlers:{onSuccessResponse:function(e){t(e)},onErrorResponse:function(e){n(e)},onTransportError:function(){r.onTransportError()},onRequestTimeout:function(){r.onRequestTimeout()},onDialogError:function(){r.onDialogError()}}})}function T(e,t,n){j("acceptAndTerminate()");var r=[];t&&(n=n||W.REASON_PHRASE[t]||"",r.push("Reason: SIP ;cause="+t+'; text="'+n+'"')),(this.dialog||l.call(this,e,"UAC"))&&(_.call(this,W.ACK),_.call(this,W.BYE,{extraHeaders:r})),this.status=q.STATUS_TERMINATED}function _(e,t){j("sendRequest()"),new Q(this,e).send(t)}function C(e){var t,n,r;if(!this.localHold&&!this.remoteHold)return e;if(e=B.parse(e),this.localHold&&!this.remoteHold)for(j("mangleOffer() | me on hold, mangling offer"),n=e.media.length,t=0;t=W.MIN_SESSION_EXPIRES?(this.sessionTimers.currentExpires=e.session_expires,n=e.session_expires_refresher||"uas"):(this.sessionTimers.currentExpires=this.sessionTimers.defaultExpires,n="uas"),t.push("Session-Expires: "+this.sessionTimers.currentExpires+";refresher="+n),this.sessionTimers.refresher="uas"===n,A.call(this)}}function y(e){if(this.sessionTimers.enabled){var t;e.session_expires&&e.session_expires>=W.MIN_SESSION_EXPIRES?(this.sessionTimers.currentExpires=e.session_expires,t=e.session_expires_refresher||"uac"):(this.sessionTimers.currentExpires=this.sessionTimers.defaultExpires,t="uac"),this.sessionTimers.refresher="uac"===t,A.call(this)}}function A(){var e=this,t=this.sessionTimers.currentExpires;this.sessionTimers.running=!0,clearTimeout(this.sessionTimers.timer),this.sessionTimers.refresher?this.sessionTimers.timer=setTimeout(function(){e.status!==q.STATUS_TERMINATED&&(j("runSessionTimer() | sending session refresh request"),v.call(e,{eventHandlers:{succeeded:function(t){y.call(e,t)}}}))},500*t):this.sessionTimers.timer=setTimeout(function(){e.status!==q.STATUS_TERMINATED&&(G("runSessionTimer() | timer expired, terminating the session"),e.terminate({cause:W.causes.REQUEST_TIMEOUT,status_code:408,reason_phrase:"Session Timer Expired"}))},1100*t)}function R(e){var t,n,r,s,i,o=this.connection.getLocalStreams();for(r=o.length,t=0;t=W.MIN_SESSION_EXPIRES?this.sessionTimers.defaultExpires=t.sessionTimersExpires:this.sessionTimers.defaultExpires=W.SESSION_EXPIRES),this.data=t.data||this.data,void 0===e)throw new TypeError("Not enough arguments");if(!window.RTCPeerConnection)throw new V.NotSupportedError("WebRTC not supported");if(!(e=this.ua.normalizeTarget(e)))throw new TypeError("Invalid target: "+i);if(this.status!==q.STATUS_NULL)throw new V.InvalidStateError(this.status);for(r in a)this.on(r,a[r]);this.from_tag=J.newTag(),this.anonymous=t.anonymous||!1,this.isCanceled=!1,s={from_tag:this.from_tag},this.contact=this.ua.contact.toString({anonymous:this.anonymous,outbound:!0}),this.anonymous&&(s.from_display_name="Anonymous",s.from_uri="sip:anonymous@anonymous.invalid",l.push("P-Preferred-Identity: "+this.ua.configuration.uri.toString()),l.push("Privacy: id")),l.push("Contact: "+this.contact),l.push("Content-Type: application/sdp"),this.sessionTimers.enabled&&l.push("Session-Expires: "+this.sessionTimers.defaultExpires),this.request=new Y.OutgoingRequest(W.INVITE,e,this.ua,s,l),this.id=this.request.call_id+this.from_tag,o.call(this,d,h),this.ua.sessions[this.id]=this,this.direction="outgoing",this.local_identity=this.request.from,this.remote_identity=this.request.to,n?n(this):w.call(this,"local",this.request),f.call(this,u,p,c)},r.prototype.init_incoming=function(e,t){j("init_incoming()");var n,r=this,s=e.getHeader("Content-Type");e.body&&"application/sdp"!==s?e.reply(415):(this.status=q.STATUS_INVITE_RECEIVED,this.from_tag=e.from_tag,this.id=e.call_id+this.from_tag,this.request=e,this.contact=this.ua.contact.toString(),this.ua.sessions[this.id]=this,e.hasHeader("expires")&&(n=1e3*e.getHeader("expires")),e.to_tag=J.newTag(),l.call(this,e,"UAS",!0)?(e.body?this.late_sdp=!1:this.late_sdp=!0,this.status=q.STATUS_WAITING_FOR_ANSWER,this.timers.userNoAnswerTimer=setTimeout(function(){e.reply(408),D.call(r,"local",null,W.causes.NO_ANSWER)},this.ua.configuration.no_answer_timeout),n&&(this.timers.expiresTimer=setTimeout(function(){r.status===q.STATUS_WAITING_FOR_ANSWER&&(e.reply(487),D.call(r,"system",null,W.causes.EXPIRES))},n)),this.direction="incoming",this.local_identity=e.to,this.remote_identity=e.from,t?t(this):w.call(this,"remote",e),this.status!==q.STATUS_TERMINATED&&(e.reply(180,null,["Contact: "+r.contact]),O.call(r,"local",null))):e.reply(500,"Missing Contact header field"))},r.prototype.answer=function(e){function t(e){if(_.status!==q.STATUS_TERMINATED)if(_.localMediaStream=e,e&&_.connection.addStream(e),j('emit "peerconnection"'),_.emit("peerconnection",{peerconnection:_.connection}),_.late_sdp)r();else{var t={originator:"remote",type:"offer",sdp:C.body};j('emit "sdp"'),_.emit("sdp",t);var n=new RTCSessionDescription({type:"offer",sdp:t.sdp});_.connection.setRemoteDescription(n).then(r).catch(function(e){C.reply(488),D.call(_,"system",null,W.causes.WEBRTC_ERROR),G('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),_.emit("peerconnection:setremotedescriptionfailed",e)})}}function n(){_.status!==q.STATUS_TERMINATED&&(C.reply(480),D.call(_,"local",null,W.causes.USER_DENIED_MEDIA_ACCESS))}function r(){I.call(_,C),_.late_sdp?a.call(_,"offer",u,c,_.rtcOfferConstraints):a.call(_,"answer",u,c,w)}function u(e){_.status!==q.STATUS_TERMINATED&&(E.call(_,C,S),C.reply(200,null,S,e,function(){_.status=q.STATUS_WAITING_FOR_ACK,s.call(_,C,e),i.call(_),x.call(_,"local")},function(){D.call(_,"system",null,W.causes.CONNECTION_ERROR)}))}function c(){_.status!==q.STATUS_TERMINATED&&(C.reply(500),D.call(_,"system",null,W.causes.WEBRTC_ERROR))}j("answer()"),e=e||{};var d,h,p,f,m=!1,g=!1,v=!1,T=!1,_=this,C=this.request,S=e.extraHeaders&&e.extraHeaders.slice()||[],y=e.mediaConstraints||{},A=e.mediaStream||null,R=e.pcConfig||{iceServers:[]},b=e.rtcConstraints||null,w=e.rtcAnswerConstraints||null;if(this.rtcAnswerConstraints=w,this.rtcOfferConstraints=e.rtcOfferConstraints||null,this.sessionTimers.enabled&&J.isDecimal(e.sessionTimersExpires)&&(e.sessionTimersExpires>=W.MIN_SESSION_EXPIRES?this.sessionTimers.defaultExpires=e.sessionTimersExpires:this.sessionTimers.defaultExpires=W.SESSION_EXPIRES),this.data=e.data||this.data,"incoming"!==this.direction)throw new V.NotSupportedError('"answer" not supported for outgoing RTCSession');if(this.status!==q.STATUS_WAITING_FOR_ANSWER)throw new V.InvalidStateError(this.status);if(this.status=q.STATUS_ANSWERED,l.call(this,C,"UAS")){for(clearTimeout(this.timers.userNoAnswerTimer),S.unshift("Contact: "+_.contact),p=C.parseSDP(),Array.isArray(p.media)||(p.media=[p.media]),d=p.media.length;d--;){var O=p.media[d];"audio"===O.type&&(m=!0,O.direction&&"sendrecv"!==O.direction||(v=!0)),"video"===O.type&&(g=!0,O.direction&&"sendrecv"!==O.direction||(T=!0))}if(A&&!1===y.audio)for(h=(f=A.getAudioTracks()).length,d=0;d=700))throw new TypeError("Invalid status_code: "+s);s&&(t="SIP ;cause="+s+' ;text="'+(i=i||W.REASON_PHRASE[s]||"")+'"'),this.status===q.STATUS_NULL?(this.isCanceled=!0,this.cancelReason=t):this.status===q.STATUS_INVITE_SENT?(this.isCanceled=!0,this.cancelReason=t):this.status===q.STATUS_1XX_RECEIVED&&this.request.cancel(t),this.status=q.STATUS_CANCELED,D.call(this,"local",null,W.causes.CANCELED);break;case q.STATUS_WAITING_FOR_ANSWER:case q.STATUS_ANSWERED:if(j("rejecting session"),(s=s||480)<300||s>=700)throw new TypeError("Invalid status_code: "+s);this.request.reply(s,i,o,a),D.call(this,"local",null,W.causes.REJECTED);break;case q.STATUS_WAITING_FOR_ACK:case q.STATUS_CONFIRMED:if(j("terminating session"),i=e.reason_phrase||W.REASON_PHRASE[s]||"",s&&(s<200||s>=700))throw new TypeError("Invalid status_code: "+s);s&&o.push("Reason: SIP ;cause="+s+'; text="'+i+'"'),this.status===q.STATUS_WAITING_FOR_ACK&&"incoming"===this.direction&&this.request.server_transaction.state!==z.C.STATUS_TERMINATED?(n=this.dialog,this.receiveRequest=function(e){e.method===W.ACK&&(_.call(this,W.BYE,{extraHeaders:o,body:a}),n.terminate())},this.request.server_transaction.on("stateChanged",function(){this.state===z.C.STATUS_TERMINATED&&(_.call(l,W.BYE,{extraHeaders:o,body:a}),n.terminate())}),P.call(this,"local",null,r),this.dialog=n,this.ua.dialogs[n.id.toString()]=n):(_.call(this,W.BYE,{extraHeaders:o,body:a}),P.call(this,"local",null,r))}},r.prototype.close=function(){j("close()");var e;if(this.status!==q.STATUS_TERMINATED){if(this.connection)try{this.connection.close()}catch(e){G("close() | error closing the RTCPeerConnection: %o",e)}this.localMediaStream&&this.localMediaStreamLocallyGenerated&&(j("close() | closing local MediaStream"),J.closeMediaStream(this.localMediaStream));for(e in this.timers)clearTimeout(this.timers[e]);clearTimeout(this.sessionTimers.timer),this.dialog&&(this.dialog.terminate(),delete this.dialog);for(e in this.earlyDialogs)this.earlyDialogs[e].terminate(),delete this.earlyDialogs[e];this.status=q.STATUS_TERMINATED,delete this.ua.sessions[this.id]}},r.prototype.sendDTMF=function(e,t){function n(){var e,a;if(o.status===q.STATUS_TERMINATED||!o.tones||i>=o.tones.length)o.tones=null;else{if(e=o.tones[i],i+=1,","===e)a=2e3;else{var l=new Z(o);t.eventHandlers={onFailed:function(){o.tones=null}},l.send(e,t),a=r+s}setTimeout(n,a)}}j("sendDTMF() | tones: %s",e);var r,s,i=0,o=this;if(t=t||{},r=t.duration||null,s=t.interToneGap||null,void 0===e)throw new TypeError("Not enough arguments");if(this.status!==q.STATUS_CONFIRMED&&this.status!==q.STATUS_WAITING_FOR_ACK)throw new V.InvalidStateError(this.status);if("number"==typeof e&&(e=e.toString()),!e||"string"!=typeof e||!e.match(/^[0-9A-DR#*,]+$/i))throw new TypeError("Invalid tones: "+e);if(r&&!J.isDecimal(r))throw new TypeError("Invalid tone duration: "+r);if(r?rZ.C.MAX_DURATION?(j('"duration" value is greater than the maximum allowed, setting it to '+Z.C.MAX_DURATION+" milliseconds"),r=Z.C.MAX_DURATION):r=Math.abs(r):r=Z.C.DEFAULT_DURATION,t.duration=r,s&&!J.isDecimal(s))throw new TypeError("Invalid interToneGap: "+s);s?s=1&&n.test(t[0])&&(this.tone=t[0].replace(n,"$2")),t.length>=2&&r.test(t[1])&&(this.duration=parseInt(t[1].replace(r,"$2"),10))),this.duration||(this.duration=s.DEFAULT_DURATION),this.tone?this.owner.newDTMF({originator:"remote",dtmf:this,request:e}):a("invalid INFO DTMF received, discarded")}},{"../Constants":1,"../Exceptions":5,"../RTCSession":11,debug:29,events:31,util:41}],13:[function(e,t,n){function r(e){this.owner=e,this.direction=null,this.contentType=null,this.body=null,i.EventEmitter.call(this)}t.exports=r;var s=e("util"),i=e("events"),o=e("debug")("JsSIP:ERROR:RTCSession:Info");o.log=console.warn.bind(console);var a=e("../Constants"),l=e("../Exceptions"),u=e("../RTCSession");s.inherits(r,i.EventEmitter),r.prototype.send=function(e,t,n){var r;if(this.direction="outgoing",void 0===e)throw new TypeError("Not enough arguments");if(this.owner.status!==u.C.STATUS_CONFIRMED&&this.owner.status!==u.C.STATUS_WAITING_FOR_ACK)throw new l.InvalidStateError(this.owner.status);this.contentType=e,this.body=t,(r=(n=n||{}).extraHeaders?n.extraHeaders.slice():[]).push("Content-Type: "+e),this.owner.newInfo({originator:"local",info:this,request:this.request}),this.owner.dialog.sendRequest(this,a.INFO,{extraHeaders:r,body:t})},r.prototype.receiveResponse=function(e){switch(!0){case/^1[0-9]{2}$/.test(e.status_code):break;case/^2[0-9]{2}$/.test(e.status_code):this.emit("succeeded",{originator:"remote",response:e});break;default:this.emit("failed",{originator:"remote",response:e})}},r.prototype.onRequestTimeout=function(){o("onRequestTimeout"),this.owner.onRequestTimeout()},r.prototype.onTransportError=function(){o("onTransportError"),this.owner.onTransportError()},r.prototype.onDialogError=function(){o("onDialogError"),this.owner.onDialogError()},r.prototype.init_incoming=function(e){this.direction="incoming",this.request=e,e.reply(200),this.contentType=e.getHeader("content-type"),this.body=e.body,this.owner.newInfo({originator:"remote",info:this,request:e})}},{"../Constants":1,"../Exceptions":5,"../RTCSession":11,debug:29,events:31,util:41}],14:[function(e,t,n){function r(e,t,n){this.session=e,this.id=t,this.expires=n||s.expires,this.active=!0,this.notify(100)}t.exports=r;var s={event_type:"refer",body_type:"message/sipfrag;version=2.0",expires:300},i=e("debug")("JsSIP:RTCSession:ReferNotifier"),o=e("../Constants"),a=e("./Request");r.prototype.notify=function(e,t){i("notify()");var n,r=this;!1!==this.active&&(t=t||o.REASON_PHRASE[e]||"",n=e>=200?"terminated;reason=noresource":"active;expires="+this.expires,new a(this.session,o.NOTIFY).send({extraHeaders:["Event: "+s.event_type+";id="+r.id,"Subscription-State: "+n,"Content-Type: "+s.body_type],body:"SIP/2.0 "+e+" "+t,eventHandlers:{onErrorResponse:function(){r.active=!1}}}))}},{"../Constants":1,"./Request":16,debug:29}],15:[function(e,t,n){function r(e){this.session=e,this.timer=null,this.outgoingRequest=null,a.EventEmitter.call(this)}function s(){console.log("removeSubscriber()"),clearTimeout(this.timer),this.session.referSubscriber=null}t.exports=r;var i={expires:120},o=e("util"),a=e("events"),l=e("debug")("JsSIP:RTCSession:ReferSubscriber"),u=e("../Constants"),c=e("../Grammar"),d=e("./Request");o.inherits(r,a.EventEmitter),r.prototype.sendRefer=function(e,t){l("sendRefer()");var n,r,o,a=null,c=this;n=(t=t||{}).extraHeaders?t.extraHeaders.slice():[],r=t.eventHandlers||{};for(var h in r)this.on(h,r[h]);t.replaces&&(a=t.replaces.request.call_id,a+=";to-tag="+t.replaces.to_tag,a+=";from-tag="+t.replaces.from_tag,a=encodeURIComponent(a)),o="Refer-To: <"+e+(a?"?Replaces="+a:"")+">",n.push(o);var p=new d(this.session,u.REFER);this.timer=setTimeout(function(){s.call(c)},1e3*i.expires),p.send({extraHeaders:n,eventHandlers:{onSuccessResponse:function(e){c.emit("requestSucceeded",{response:e})},onErrorResponse:function(e){c.emit("requestFailed",{response:e,cause:u.causes.REJECTED})},onTransportError:function(){s.call(c),c.emit("requestFailed",{response:null,cause:u.causes.CONNECTION_ERROR})},onRequestTimeout:function(){s.call(c),c.emit("requestFailed",{response:null,cause:u.causes.REQUEST_TIMEOUT})},onDialogError:function(){s.call(c),c.emit("requestFailed",{response:null,cause:u.causes.DIALOG_ERROR})}}}),this.outgoingRequest=p.outgoingRequest},r.prototype.receiveNotify=function(e){l("receiveNotify()");var t;if(e.body)if(-1!==(t=c.parse(e.body,"Status_Line")))switch(!0){case/^100$/.test(t.status_code):this.emit("trying",{request:e,status_line:t});break;case/^1[0-9]{2}$/.test(t.status_code):this.emit("progress",{request:e,status_line:t});break;case/^2[0-9]{2}$/.test(t.status_code):s.call(this),this.emit("accepted",{request:e,status_line:t});break;default:s.call(this),this.emit("failed",{request:e,status_line:t})}else l('receiveNotify() | error parsing NOTIFY body: "'+e.body+'"')}},{"../Constants":1,"../Grammar":6,"./Request":16,debug:29,events:31,util:41}],16:[function(e,t,n){function r(e,t){if(s("new | %s",t),this.session=e,this.method=t,this.outgoingRequest=null,this.session.status!==l.C.STATUS_1XX_RECEIVED&&this.session.status!==l.C.STATUS_WAITING_FOR_ANSWER&&this.session.status!==l.C.STATUS_WAITING_FOR_ACK&&this.session.status!==l.C.STATUS_CONFIRMED&&this.session.status!==l.C.STATUS_TERMINATED)throw new a.InvalidStateError(this.session.status);if(this.session.status===l.C.STATUS_TERMINATED&&t!==o.BYE)throw new a.InvalidStateError(this.session.status)}t.exports=r;var s=e("debug")("JsSIP:RTCSession:Request"),i=e("debug")("JsSIP:ERROR:RTCSession:Request");i.log=console.warn.bind(console);var o=e("../Constants"),a=e("../Exceptions"),l=e("../RTCSession");r.prototype.send=function(e){var t=(e=e||{}).extraHeaders&&e.extraHeaders.slice()||[],n=e.body||null;this.eventHandlers=e.eventHandlers||{},this.outgoingRequest=this.session.dialog.sendRequest(this,this.method,{extraHeaders:t,body:n})},r.prototype.receiveResponse=function(e){switch(!0){case/^1[0-9]{2}$/.test(e.status_code):s("onProgressResponse"),this.eventHandlers.onProgressResponse&&this.eventHandlers.onProgressResponse(e);break;case/^2[0-9]{2}$/.test(e.status_code):s("onSuccessResponse"),this.eventHandlers.onSuccessResponse&&this.eventHandlers.onSuccessResponse(e);break;default:s("onErrorResponse"),this.eventHandlers.onErrorResponse&&this.eventHandlers.onErrorResponse(e)}},r.prototype.onRequestTimeout=function(){i("onRequestTimeout"),this.eventHandlers.onRequestTimeout&&this.eventHandlers.onRequestTimeout()},r.prototype.onTransportError=function(){i("onTransportError"),this.eventHandlers.onTransportError&&this.eventHandlers.onTransportError()},r.prototype.onDialogError=function(){i("onDialogError"),this.eventHandlers.onDialogError&&this.eventHandlers.onDialogError()}},{"../Constants":1,"../Exceptions":5,"../RTCSession":11,debug:29}],17:[function(e,t,n){function r(e,t){this.ua=e,this.transport=t,this.registrar=e.configuration.registrar_server,this.expires=e.configuration.register_expires,this.call_id=i.createRandomToken(22),this.cseq=0,this.to_uri=e.configuration.uri,this.registrationTimer=null,this.registering=!1,this.registered=!1,this.contact=this.ua.contact.toString(),this.contact+=";+sip.ice",this.extraHeaders=[],this.extraContactParams="",this.contact+=";reg-id=1",this.contact+=';+sip.instance=""'}t.exports=r;var s=e("debug")("JsSIP:Registrator"),i=e("./Utils"),o=e("./Constants"),a=e("./SIPMessage"),l=e("./RequestSender");r.prototype={setExtraHeaders:function(e){Array.isArray(e)||(e=[]),this.extraHeaders=e.slice()},setExtraContactParams:function(e){e instanceof Object||(e={}),this.extraContactParams="";for(var t in e){var n=e[t];this.extraContactParams+=";"+t,n&&(this.extraContactParams+="="+n)}},register:function(){var e,t,n,r=this;this.registering?s("Register request in progress..."):((n=this.extraHeaders.slice()).push("Contact: "+this.contact+";expires="+this.expires+this.extraContactParams),n.push("Expires: "+this.expires),this.request=new a.OutgoingRequest(o.REGISTER,this.registrar,this.ua,{to_uri:this.to_uri,call_id:this.call_id,cseq:this.cseq+=1},n),e=new l(this,this.ua),this.receiveResponse=function(e){var n,a,l=e.getHeaders("contact").length;if(e.cseq===this.cseq)switch(null!==this.registrationTimer&&(clearTimeout(this.registrationTimer),this.registrationTimer=null),!0){case/^1[0-9]{2}$/.test(e.status_code):break;case/^2[0-9]{2}$/.test(e.status_code):if(this.registering=!1,e.hasHeader("expires")&&(a=e.getHeader("expires")),!l){s("no Contact header in response to REGISTER, response ignored");break}for(;l--;){if((n=e.parseHeader("contact",l)).uri.user===this.ua.contact.uri.user){a=n.getParam("expires");break}n=null}if(!n){s("no Contact header pointing to us, response ignored");break}a||(a=this.expires),this.registrationTimer=setTimeout(function(){r.registrationTimer=null,0===r.ua.listeners("registrationExpiring").length?r.register():r.ua.emit("registrationExpiring")},1e3*a-5e3),n.hasParam("temp-gruu")&&(this.ua.contact.temp_gruu=n.getParam("temp-gruu").replace(/"/g,"")),n.hasParam("pub-gruu")&&(this.ua.contact.pub_gruu=n.getParam("pub-gruu").replace(/"/g,"")),this.registered||(this.registered=!0,this.ua.registered({response:e}));break;case/^423$/.test(e.status_code):e.hasHeader("min-expires")?(this.expires=e.getHeader("min-expires"),this.register()):(s("423 response received for REGISTER without Min-Expires"),this.registrationFailure(e,o.causes.SIP_FAILURE_CODE));break;default:t=i.sipErrorCause(e.status_code),this.registrationFailure(e,t)}},this.onRequestTimeout=function(){this.registrationFailure(null,o.causes.REQUEST_TIMEOUT)},this.onTransportError=function(){this.registrationFailure(null,o.causes.CONNECTION_ERROR)},this.registering=!0,e.send())},unregister:function(e){var t;if(this.registered){e=e||{},this.registered=!1,null!==this.registrationTimer&&(clearTimeout(this.registrationTimer),this.registrationTimer=null),t=this.extraHeaders.slice(),e.all?(t.push("Contact: *"+this.extraContactParams),t.push("Expires: 0"),this.request=new a.OutgoingRequest(o.REGISTER,this.registrar,this.ua,{to_uri:this.to_uri,call_id:this.call_id,cseq:this.cseq+=1},t)):(t.push("Contact: "+this.contact+";expires=0"+this.extraContactParams),t.push("Expires: 0"),this.request=new a.OutgoingRequest(o.REGISTER,this.registrar,this.ua,{to_uri:this.to_uri,call_id:this.call_id,cseq:this.cseq+=1},t));var n=new l(this,this.ua);this.receiveResponse=function(e){var t;switch(!0){case/^1[0-9]{2}$/.test(e.status_code):break;case/^2[0-9]{2}$/.test(e.status_code):this.unregistered(e);break;default:t=i.sipErrorCause(e.status_code),this.unregistered(e,t)}},this.onRequestTimeout=function(){this.unregistered(null,o.causes.REQUEST_TIMEOUT)},this.onTransportError=function(){this.unregistered(null,o.causes.CONNECTION_ERROR)},n.send()}else s("already unregistered")},registrationFailure:function(e,t){this.registering=!1,this.ua.registrationFailed({response:e||null,cause:t}),this.registered&&(this.registered=!1,this.ua.unregistered({response:e||null,cause:t}))},unregistered:function(e,t){this.registering=!1,this.registered=!1,this.ua.unregistered({response:e||null,cause:t||null})},onTransportClosed:function(){this.registering=!1,null!==this.registrationTimer&&(clearTimeout(this.registrationTimer),this.registrationTimer=null),this.registered&&(this.registered=!1,this.ua.unregistered({}))},close:function(){this.registered&&this.unregister()}}},{"./Constants":1,"./RequestSender":18,"./SIPMessage":19,"./Utils":26,debug:29}],18:[function(e,t,n){function r(e,t){this.ua=t,this.applicant=e,this.method=e.request.method,this.request=e.request,this.auth=null,this.challenged=!1,this.staled=!1,t.status!==o.C.STATUS_USER_CLOSED||this.method===i.BYE&&this.method===i.ACK||this.onTransportError()}t.exports=r;var s=e("debug")("JsSIP:RequestSender"),i=e("./Constants"),o=e("./UA"),a=e("./DigestAuthentication"),l=e("./Transactions");r.prototype={send:function(){switch(this.method){case"INVITE":this.clientTransaction=new l.InviteClientTransaction(this,this.request,this.ua.transport);break;case"ACK":this.clientTransaction=new l.AckClientTransaction(this,this.request,this.ua.transport);break;default:this.clientTransaction=new l.NonInviteClientTransaction(this,this.request,this.ua.transport)}this.clientTransaction.send()},onRequestTimeout:function(){this.applicant.onRequestTimeout()},onTransportError:function(){this.applicant.onTransportError()},receiveResponse:function(e){var t,n,r,o=e.status_code;if(401!==o&&407!==o||null===this.ua.configuration.password&&null===this.ua.configuration.ha1)this.applicant.receiveResponse(e);else{if(401===e.status_code?(n=e.parseHeader("www-authenticate"),r="authorization"):(n=e.parseHeader("proxy-authenticate"),r="proxy-authorization"),!n)return s(e.status_code+" with wrong or missing challenge, cannot authenticate"),void this.applicant.receiveResponse(e);if(!this.challenged||!this.staled&&!0===n.stale){if(this.auth||(this.auth=new a({username:this.ua.configuration.authorization_user,password:this.ua.configuration.password,realm:this.ua.configuration.realm,ha1:this.ua.configuration.ha1})),!this.auth.authenticate(this.request,n))return void this.applicant.receiveResponse(e);this.challenged=!0,this.ua.set("realm",this.auth.get("realm")),this.ua.set("ha1",this.auth.get("ha1")),n.stale&&(this.staled=!0),t=e.method===i.REGISTER?this.applicant.cseq+=1:this.request.dialog?this.request.dialog.local_seqnum+=1:this.request.cseq+1,this.request=this.applicant.request=this.request.clone(),this.request.cseq=t,this.request.setHeader("cseq",t+" "+this.method),this.request.setHeader(r,this.auth.toString()),this.send()}else this.applicant.receiveResponse(e)}}}},{"./Constants":1,"./DigestAuthentication":4,"./Transactions":22,"./UA":24,debug:29}],19:[function(e,t,n){function r(e,t,n,r,s,i){var o,a,l,h;if(r=r||{},!e||!t||!n)return null;this.ua=n,this.headers={},this.method=e,this.ruri=t,this.body=i,this.extraHeaders=s&&s.slice()||[],r.route_set?this.setHeader("route",r.route_set):n.configuration.use_preloaded_route&&this.setHeader("route","<"+n.transport.sip_uri+";lr>"),this.setHeader("via",""),this.setHeader("max-forwards",u.MAX_FORWARDS),o=r.to_display_name||0===r.to_display_name?'"'+r.to_display_name+'" ':"",o+="<"+(r.to_uri||t)+">",o+=r.to_tag?";tag="+r.to_tag:"",this.to=new d.parse(o),this.setHeader("to",o),a=r.from_display_name||0===r.from_display_name?'"'+r.from_display_name+'" ':n.configuration.display_name?'"'+n.configuration.display_name+'" ':"",a+="<"+(r.from_uri||n.configuration.uri)+">;tag=",a+=r.from_tag||c.newTag(),this.from=new d.parse(a),this.setHeader("from",a),l=r.call_id||n.configuration.jssip_id+c.createRandomToken(15),this.call_id=l,this.setHeader("call-id",l),h=r.cseq||Math.floor(1e4*Math.random()),this.cseq=h,this.setHeader("cseq",h+" "+e)}function s(){this.data=null,this.headers=null,this.method=null,this.via=null,this.via_branch=null,this.call_id=null,this.cseq=null,this.from=null,this.from_tag=null,this.to=null,this.to_tag=null,this.body=null,this.sdp=null}function i(e){this.ua=e,this.headers={},this.ruri=null,this.transport=null,this.server_transaction=null}function o(){this.headers={},this.status_code=null,this.reason_phrase=null}t.exports={OutgoingRequest:r,IncomingRequest:i,IncomingResponse:o};var a=e("debug")("JsSIP:SIPMessage"),l=e("sdp-transform"),u=e("./Constants"),c=e("./Utils"),d=e("./NameAddrHeader"),h=e("./Grammar");r.prototype={setHeader:function(e,t){var n,r;for(n=new RegExp("^\\s*"+e+"\\s*:","i"),r=0;r=this.headers[e].length))return n=this.headers[e][t],r=n.raw,n.parsed?n.parsed:-1===(s=h.parse(r,e.replace(/-/g,"_")))?(this.headers[e].splice(t,1),void a('error parsing "'+e+'" header field with value "'+r+'"')):(n.parsed=s,s);a('not so many "'+e+'" headers present')}else a('header "'+e+'" not present')},s:function(e,t){return this.parseHeader(e,t)},setHeader:function(e,t){var n={raw:t};this.headers[c.headerize(e)]=[n]},parseSDP:function(e){return!e&&this.sdp?this.sdp:(this.sdp=l.parse(this.body||""),this.sdp)},toString:function(){return this.data}},(i.prototype=new s).reply=function(e,t,n,r,s,i){var o,a,l,d,h,p=[],f=this.getHeader("To"),m=0,g=0;if(e=e||null,t=t||null,!e||e<100||e>699)throw new TypeError("Invalid status_code: "+e);if(t&&"string"!=typeof t&&!(t instanceof String))throw new TypeError("Invalid reason_phrase: "+t);if(t=t||u.REASON_PHRASE[e]||"",n=n&&n.slice()||[],h="SIP/2.0 "+e+" "+t+"\r\n",this.method===u.INVITE&&e>100&&e<=200)for(l=(o=this.getHeaders("record-route")).length,m;m100?f+=";tag="+c.newTag():this.to_tag&&!this.s("to").hasParam("tag")&&(f+=";tag="+this.to_tag),h+="To: "+f+"\r\n",h+="From: "+this.getHeader("From")+"\r\n",h+="Call-ID: "+this.call_id+"\r\n",h+="CSeq: "+this.cseq+" "+this.method+"\r\n",l=n.length,d=0;d699)throw new TypeError("Invalid status_code: "+e);if(t&&"string"!=typeof t&&!(t instanceof String))throw new TypeError("Invalid reason_phrase: "+t);for(r="SIP/2.0 "+e+" "+(t=t||u.REASON_PHRASE[e]||"")+"\r\n",s;s100?n+=";tag="+c.newTag():this.to_tag&&!this.s("to").hasParam("tag")&&(n+=";tag="+this.to_tag),r+="To: "+n+"\r\n",r+="From: "+this.getHeader("From")+"\r\n",r+="Call-ID: "+this.call_id+"\r\n",r+="CSeq: "+this.cseq+" "+this.method+"\r\n",r+="Content-Length: 0\r\n\r\n",this.transport.send(r)},o.prototype=new s},{"./Constants":1,"./Grammar":6,"./NameAddrHeader":9,"./Utils":26,debug:29,"sdp-transform":35}],20:[function(e,t,n){function r(){}t.exports=r;var s=e("./Utils"),i=e("./Grammar"),o=e("debug")("JsSIP:ERROR:Socket");o.log=console.warn.bind(console),r.isSocket=function(e){if(Array.isArray(e))return!1;if(void 0===e)return o("undefined JsSIP.Socket instance"),!1;try{if(!s.isString(e.url))throw o("missing or invalid JsSIP.Socket url property"),new Error;if(!s.isString(e.via_transport))throw o("missing or invalid JsSIP.Socket via_transport property"),new Error;if(-1===i.parse(e.sip_uri,"SIP_URI"))throw o("missing or invalid JsSIP.Socket sip_uri property"),new Error}catch(e){return!1}try{["connect","disconnect","send"].forEach(function(t){if(!s.isFunction(e[t]))throw o("missing or invalid JsSIP.Socket method: "+t),new Error})}catch(e){return!1}return!0}},{"./Grammar":6,"./Utils":26,debug:29}],21:[function(e,t,n){var r=500,s={T1:r,T2:4e3,T4:5e3,TIMER_B:32e3,TIMER_D:0,TIMER_F:32e3,TIMER_H:32e3,TIMER_I:0,TIMER_J:0,TIMER_K:0,TIMER_L:32e3,TIMER_M:32e3,PROVISIONAL_RESPONSE_INTERVAL:6e4};t.exports=s},{}],22:[function(e,t,n){function r(e,t,n){var r;this.type=l.NON_INVITE_CLIENT,this.transport=n,this.id="z9hG4bK"+Math.floor(1e7*Math.random()),this.request_sender=e,this.request=t,r="SIP/2.0/"+n.via_transport,r+=" "+e.ua.configuration.via_host+";branch="+this.id,this.request.setHeader("via",r),this.request_sender.ua.newTransaction(this),c.EventEmitter.call(this)}function s(e,t,n){var r,s=this;this.type=l.INVITE_CLIENT,this.transport=n,this.id="z9hG4bK"+Math.floor(1e7*Math.random()),this.request_sender=e,this.request=t,r="SIP/2.0/"+n.via_transport,r+=" "+e.ua.configuration.via_host+";branch="+this.id,this.request.setHeader("via",r),this.request_sender.ua.newTransaction(this),this.request.cancel=function(e){s.cancel_request(s,e)},c.EventEmitter.call(this)}function i(e,t,n){var r;this.transport=n,this.id="z9hG4bK"+Math.floor(1e7*Math.random()),this.request_sender=e,this.request=t,r="SIP/2.0/"+n.via_transport,r+=" "+e.ua.configuration.via_host+";branch="+this.id,this.request.setHeader("via",r),c.EventEmitter.call(this)}function o(e,t){this.type=l.NON_INVITE_SERVER,this.id=e.via_branch,this.request=e,this.transport=e.transport,this.ua=t,this.last_response="",e.server_transaction=this,this.state=l.STATUS_TRYING,t.newTransaction(this),c.EventEmitter.call(this)}function a(e,t){this.type=l.INVITE_SERVER,this.id=e.via_branch,this.request=e,this.transport=e.transport,this.ua=t,this.last_response="",e.server_transaction=this,this.state=l.STATUS_PROCEEDING,t.newTransaction(this),this.resendProvisionalTimer=null,e.reply(100),c.EventEmitter.call(this)}t.exports={C:null,NonInviteClientTransaction:r,InviteClientTransaction:s,AckClientTransaction:i,NonInviteServerTransaction:o,InviteServerTransaction:a,checkTransaction:function(e,t){var n;switch(t.method){case g.INVITE:if(n=e.transactions.ist[t.via_branch]){switch(n.state){case l.STATUS_PROCEEDING:n.transport.send(n.last_response);break;case l.STATUS_ACCEPTED:}return!0}break;case g.ACK:if(!(n=e.transactions.ist[t.via_branch]))return!1;if(n.state===l.STATUS_ACCEPTED)return!1;if(n.state===l.STATUS_COMPLETED)return n.state=l.STATUS_CONFIRMED,n.I=setTimeout(function(){n.timer_I()},v.TIMER_I),!0;break;case g.CANCEL:return(n=e.transactions.ist[t.via_branch])?(t.reply_sl(200),n.state!==l.STATUS_PROCEEDING):(t.reply_sl(481),!0);default:if(n=e.transactions.nist[t.via_branch]){switch(n.state){case l.STATUS_TRYING:break;case l.STATUS_PROCEEDING:case l.STATUS_COMPLETED:n.transport.send(n.last_response)}return!0}}}};var l={STATUS_TRYING:1,STATUS_PROCEEDING:2,STATUS_CALLING:3,STATUS_ACCEPTED:4,STATUS_COMPLETED:5,STATUS_TERMINATED:6,STATUS_CONFIRMED:7,NON_INVITE_CLIENT:"nict",NON_INVITE_SERVER:"nist",INVITE_CLIENT:"ict",INVITE_SERVER:"ist"};t.exports.C=l;var u=e("util"),c=e("events"),d=e("debug")("JsSIP:NonInviteClientTransaction"),h=e("debug")("JsSIP:InviteClientTransaction"),p=e("debug")("JsSIP:AckClientTransaction"),f=e("debug")("JsSIP:NonInviteServerTransaction"),m=e("debug")("JsSIP:InviteServerTransaction"),g=e("./Constants"),v=e("./Timers");u.inherits(r,c.EventEmitter),r.prototype.stateChanged=function(e){this.state=e,this.emit("stateChanged")},r.prototype.send=function(){var e=this;this.stateChanged(l.STATUS_TRYING),this.F=setTimeout(function(){e.timer_F()},v.TIMER_F),this.transport.send(this.request)||this.onTransportError()},r.prototype.onTransportError=function(){d("transport error occurred, deleting transaction "+this.id),clearTimeout(this.F),clearTimeout(this.K),this.stateChanged(l.STATUS_TERMINATED),this.request_sender.ua.destroyTransaction(this),this.request_sender.onTransportError()},r.prototype.timer_F=function(){d("Timer F expired for transaction "+this.id),this.stateChanged(l.STATUS_TERMINATED),this.request_sender.ua.destroyTransaction(this),this.request_sender.onRequestTimeout()},r.prototype.timer_K=function(){this.stateChanged(l.STATUS_TERMINATED),this.request_sender.ua.destroyTransaction(this)},r.prototype.receiveResponse=function(e){var t=this,n=e.status_code;if(n<200)switch(this.state){case l.STATUS_TRYING:case l.STATUS_PROCEEDING:this.stateChanged(l.STATUS_PROCEEDING),this.request_sender.receiveResponse(e)}else switch(this.state){case l.STATUS_TRYING:case l.STATUS_PROCEEDING:this.stateChanged(l.STATUS_COMPLETED),clearTimeout(this.F),408===n?this.request_sender.onRequestTimeout():this.request_sender.receiveResponse(e),this.K=setTimeout(function(){t.timer_K()},v.TIMER_K);break;case l.STATUS_COMPLETED:}},u.inherits(s,c.EventEmitter),s.prototype.stateChanged=function(e){this.state=e,this.emit("stateChanged")},s.prototype.send=function(){var e=this;this.stateChanged(l.STATUS_CALLING),this.B=setTimeout(function(){e.timer_B()},v.TIMER_B),this.transport.send(this.request)||this.onTransportError()},s.prototype.onTransportError=function(){clearTimeout(this.B),clearTimeout(this.D),clearTimeout(this.M),this.state!==l.STATUS_ACCEPTED&&(h("transport error occurred, deleting transaction "+this.id),this.request_sender.onTransportError()),this.stateChanged(l.STATUS_TERMINATED),this.request_sender.ua.destroyTransaction(this)},s.prototype.timer_M=function(){h("Timer M expired for transaction "+this.id),this.state===l.STATUS_ACCEPTED&&(clearTimeout(this.B),this.stateChanged(l.STATUS_TERMINATED),this.request_sender.ua.destroyTransaction(this))},s.prototype.timer_B=function(){h("Timer B expired for transaction "+this.id),this.state===l.STATUS_CALLING&&(this.stateChanged(l.STATUS_TERMINATED),this.request_sender.ua.destroyTransaction(this),this.request_sender.onRequestTimeout())},s.prototype.timer_D=function(){h("Timer D expired for transaction "+this.id),clearTimeout(this.B),this.stateChanged(l.STATUS_TERMINATED),this.request_sender.ua.destroyTransaction(this)},s.prototype.sendACK=function(e){var t=this;this.ack="ACK "+this.request.ruri+" SIP/2.0\r\n",this.ack+="Via: "+this.request.headers.Via.toString()+"\r\n",this.request.headers.Route&&(this.ack+="Route: "+this.request.headers.Route.toString()+"\r\n"),this.ack+="To: "+e.getHeader("to")+"\r\n",this.ack+="From: "+this.request.headers.From.toString()+"\r\n",this.ack+="Call-ID: "+this.request.headers["Call-ID"].toString()+"\r\n",this.ack+="CSeq: "+this.request.headers.CSeq.toString().split(" ")[0],this.ack+=" ACK\r\n",this.ack+="Content-Length: 0\r\n\r\n",this.D=setTimeout(function(){t.timer_D()},v.TIMER_D),this.transport.send(this.ack)},s.prototype.cancel_request=function(e,t){var n=e.request;this.cancel=g.CANCEL+" "+n.ruri+" SIP/2.0\r\n",this.cancel+="Via: "+n.headers.Via.toString()+"\r\n",this.request.headers.Route&&(this.cancel+="Route: "+n.headers.Route.toString()+"\r\n"),this.cancel+="To: "+n.headers.To.toString()+"\r\n",this.cancel+="From: "+n.headers.From.toString()+"\r\n",this.cancel+="Call-ID: "+n.headers["Call-ID"].toString()+"\r\n",this.cancel+="CSeq: "+n.headers.CSeq.toString().split(" ")[0]+" CANCEL\r\n",t&&(this.cancel+="Reason: "+t+"\r\n"),this.cancel+="Content-Length: 0\r\n\r\n",this.state===l.STATUS_PROCEEDING&&this.transport.send(this.cancel)},s.prototype.receiveResponse=function(e){var t=this,n=e.status_code;if(n>=100&&n<=199)switch(this.state){case l.STATUS_CALLING:this.stateChanged(l.STATUS_PROCEEDING),this.request_sender.receiveResponse(e);break;case l.STATUS_PROCEEDING:this.request_sender.receiveResponse(e)}else if(n>=200&&n<=299)switch(this.state){case l.STATUS_CALLING:case l.STATUS_PROCEEDING:this.stateChanged(l.STATUS_ACCEPTED),this.M=setTimeout(function(){t.timer_M()},v.TIMER_M),this.request_sender.receiveResponse(e);break;case l.STATUS_ACCEPTED:this.request_sender.receiveResponse(e)}else if(n>=300&&n<=699)switch(this.state){case l.STATUS_CALLING:case l.STATUS_PROCEEDING:this.stateChanged(l.STATUS_COMPLETED),this.sendACK(e),this.request_sender.receiveResponse(e);break;case l.STATUS_COMPLETED:this.sendACK(e)}},u.inherits(i,c.EventEmitter),i.prototype.send=function(){this.transport.send(this.request)||this.onTransportError()},i.prototype.onTransportError=function(){p("transport error occurred for transaction "+this.id),this.request_sender.onTransportError()},u.inherits(o,c.EventEmitter),o.prototype.stateChanged=function(e){this.state=e,this.emit("stateChanged")},o.prototype.timer_J=function(){f("Timer J expired for transaction "+this.id),this.stateChanged(l.STATUS_TERMINATED),this.ua.destroyTransaction(this)},o.prototype.onTransportError=function(){this.transportError||(this.transportError=!0,f("transport error occurred, deleting transaction "+this.id),clearTimeout(this.J),this.stateChanged(l.STATUS_TERMINATED),this.ua.destroyTransaction(this))},o.prototype.receiveResponse=function(e,t,n,r){var s=this;if(100===e)switch(this.state){case l.STATUS_TRYING:this.stateChanged(l.STATUS_PROCEEDING),this.transport.send(t)||this.onTransportError();break;case l.STATUS_PROCEEDING:this.last_response=t,this.transport.send(t)?n&&n():(this.onTransportError(),r&&r())}else if(e>=200&&e<=699)switch(this.state){case l.STATUS_TRYING:case l.STATUS_PROCEEDING:this.stateChanged(l.STATUS_COMPLETED),this.last_response=t,this.J=setTimeout(function(){s.timer_J()},v.TIMER_J),this.transport.send(t)?n&&n():(this.onTransportError(),r&&r());break;case l.STATUS_COMPLETED:}},u.inherits(a,c.EventEmitter),a.prototype.stateChanged=function(e){this.state=e,this.emit("stateChanged")},a.prototype.timer_H=function(){m("Timer H expired for transaction "+this.id),this.state===l.STATUS_COMPLETED&&m("ACK not received, dialog will be terminated"),this.stateChanged(l.STATUS_TERMINATED),this.ua.destroyTransaction(this)},a.prototype.timer_I=function(){this.stateChanged(l.STATUS_TERMINATED)},a.prototype.timer_L=function(){m("Timer L expired for transaction "+this.id),this.state===l.STATUS_ACCEPTED&&(this.stateChanged(l.STATUS_TERMINATED),this.ua.destroyTransaction(this))},a.prototype.onTransportError=function(){this.transportError||(this.transportError=!0,m("transport error occurred, deleting transaction "+this.id),null!==this.resendProvisionalTimer&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null),clearTimeout(this.L),clearTimeout(this.H),clearTimeout(this.I),this.stateChanged(l.STATUS_TERMINATED),this.ua.destroyTransaction(this))},a.prototype.resend_provisional=function(){this.transport.send(this.last_response)||this.onTransportError()},a.prototype.receiveResponse=function(e,t,n,r){var s=this;if(e>=100&&e<=199)switch(this.state){case l.STATUS_PROCEEDING:this.transport.send(t)||this.onTransportError(),this.last_response=t}if(e>100&&e<=199&&this.state===l.STATUS_PROCEEDING)null===this.resendProvisionalTimer&&(this.resendProvisionalTimer=setInterval(function(){s.resend_provisional()},v.PROVISIONAL_RESPONSE_INTERVAL));else if(e>=200&&e<=299)switch(this.state){case l.STATUS_PROCEEDING:this.stateChanged(l.STATUS_ACCEPTED),this.last_response=t,this.L=setTimeout(function(){s.timer_L()},v.TIMER_L),null!==this.resendProvisionalTimer&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null);case l.STATUS_ACCEPTED:this.transport.send(t)?n&&n():(this.onTransportError(),r&&r())}else if(e>=300&&e<=699)switch(this.state){case l.STATUS_PROCEEDING:null!==this.resendProvisionalTimer&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null),this.transport.send(t)?(this.stateChanged(l.STATUS_COMPLETED),this.H=setTimeout(function(){s.timer_H()},v.TIMER_H),n&&n()):(this.onTransportError(),r&&r())}}},{"./Constants":1,"./Timers":21,debug:29,events:31,util:41}],23:[function(e,t,n){function r(e,t){if(c("new()"),this.status=h.STATUS_DISCONNECTED,this.socket=null,this.sockets=[],this.recovery_options=t||h.recovery_options,this.recover_attempts=0,this.recovery_timer=null,this.close_requested=!1,void 0===e)throw new TypeError("Invalid argument. undefined 'sockets' argument");e instanceof Array||(e=[e]),e.forEach(function(e){if(!u.isSocket(e.socket))throw new TypeError("Invalid argument. invalid 'JsSIP.Socket' instance");if(e.weight&&!Number(e.weight))throw new TypeError("Invalid argument. 'weight' attribute is not a number");this.sockets.push({socket:e.socket,weight:e.weight||0,status:h.SOCKET_STATUS_READY})},this),Object.defineProperties(this,{via_transport:{get:function(){return this.socket.via_transport}},url:{get:function(){return this.socket.url}},sip_uri:{get:function(){return this.socket.sip_uri}}}),l.call(this)}function s(){this.recover_attempts=0,this.status=h.STATUS_CONNECTED,null!==this.recovery_timer&&(clearTimeout(this.recovery_timer),this.recovery_timer=null),this.onconnect({socket:this})}function i(e,t,n){this.status=h.STATUS_DISCONNECTED,this.ondisconnect({socket:this.socket,error:e,code:t,reason:n}),this.close_requested||(this.sockets.forEach(function(e){this.socket===e.socket&&(e.status=h.SOCKET_STATUS_ERROR)},this),a.call(this,e))}function o(e){if("\r\n"!==e){if("string"!=typeof e){try{e=String.fromCharCode.apply(null,new Uint8Array(e))}catch(e){return void c("received binary message failed to be converted into string, message discarded")}c("received binary message:\n\n"+e+"\n")}else c("received text message:\n\n"+e+"\n");this.ondata({transport:this,message:e})}else c("received message with CRLF Keep Alive response")}function a(){var e,t=this;this.recover_attempts+=1,(e=Math.floor(Math.random()*Math.pow(2,this.recover_attempts)+1))this.recovery_options.max_interval&&(e=this.recovery_options.max_interval),c("reconnection attempt: "+this.recover_attempts+". next connection attempt in "+e+" seconds"),this.recovery_timer=setTimeout(function(){t.close_requested||t.isConnected()||t.isConnecting()||(l.call(t),t.connect())},1e3*e)}function l(){var e=[];if(this.sockets.forEach(function(t){t.status!==h.SOCKET_STATUS_ERROR&&(0===e.length?e.push(t):t.weight>e[0].weight?e=[t]:t.weight===e[0].weight&&e.push(t))}),0===e.length)return this.sockets.forEach(function(e){e.status=h.SOCKET_STATUS_READY}),void l.call(this);var t=Math.floor(Math.random()*e.length);this.socket=e[t].socket}t.exports=r;var u=e("./Socket"),c=e("debug")("JsSIP:Transport"),d=e("debug")("JsSIP:ERROR:Transport"),h={STATUS_CONNECTED:0,STATUS_CONNECTING:1,STATUS_DISCONNECTED:2,SOCKET_STATUS_READY:0,SOCKET_STATUS_ERROR:1,recovery_options:{min_interval:2,max_interval:30}};r.prototype.connect=function(){c("connect()"),this.isConnected()?c("Transport is already connected"):this.isConnecting()?c("Transport is connecting"):(this.close_requested=!1,this.status=h.STATUS_CONNECTING,this.onconnecting({socket:this.socket,attempts:this.recover_attempts}),this.close_requested||(this.socket.onconnect=s.bind(this),this.socket.ondisconnect=i.bind(this),this.socket.ondata=o.bind(this),this.socket.connect()))},r.prototype.disconnect=function(){c("close()"),this.close_requested=!0,this.recover_attempts=0,this.status=h.STATUS_DISCONNECTED,null!==this.recovery_timer&&(clearTimeout(this.recovery_timer),this.recovery_timer=null),this.socket.onconnect=function(){},this.socket.ondisconnect=function(){},this.socket.ondata=function(){},this.socket.disconnect(),this.ondisconnect()},r.prototype.send=function(e){if(c("send()"),!this.isConnected())return d("unable to send message, transport is not connected"),!1;var t=e.toString();return c("sending message:\n\n"+t+"\n"),this.socket.send(t)},r.prototype.isConnected=function(){return this.status===h.STATUS_CONNECTED},r.prototype.isConnecting=function(){return this.status===h.STATUS_CONNECTING}},{"./Socket":20,debug:29}],24:[function(e,t,n){function r(e){if(d("new() [configuration:%o]",e),this.cache={credentials:{}},this.configuration={},this.dynConfiguration={},this.dialogs={},this.applicants={},this.sessions={},this.transport=null,this.contact=null,this.status=l.STATUS_INIT,this.error=null,this.transactions={nist:{},nict:{},ist:{},ict:{}},this.data={},this.closeTimer=null,Object.defineProperties(this,{transactionsCount:{get:function(){var e,t=["nist","nict","ist","ict"],n=0;for(e in t)n+=Object.keys(this.transactions[t[e]]).length;return n}},nictTransactionsCount:{get:function(){return Object.keys(this.transactions.nict).length}},nistTransactionsCount:{get:function(){return Object.keys(this.transactions.nist).length}},ictTransactionsCount:{get:function(){return Object.keys(this.transactions.ict).length}},istTransactionsCount:{get:function(){return Object.keys(this.transactions.ist).length}}}),void 0===e)throw new TypeError("Not enough arguments");try{this.loadConfig(e)}catch(e){throw this.status=l.STATUS_NOT_READY,this.error=l.CONFIGURATION_ERROR,e}this._registrator=new f(this),c.EventEmitter.call(this)}function s(e){this.emit("connecting",e)}function i(e){this.status!==l.STATUS_USER_CLOSED&&(this.status=l.STATUS_READY,this.error=null,this.emit("connected",e),this.dynConfiguration.register&&this._registrator.register())}function o(e){var t,n,r,s=["nict","ict","nist","ist"];for(r=s.length,t=0;t"}};for(t in p)r.configuration_skeleton[t].value=p[t];Object.defineProperties(this.configuration,r.configuration_skeleton);for(t in p)r.configuration_skeleton[t].value="";d("configuration parameters after validation:");for(t in p)switch(t){case"uri":case"registrar_server":d("- "+t+": "+p[t]);break;case"password":case"ha1":d("- "+t+": NOT SHOWN");break;default:d("- "+t+": "+JSON.stringify(p[t]))}},r.configuration_skeleton=function(){var e,t,n,r={},s=["jssip_id","hostport_params","uri","authorization_user","contact_uri","display_name","instance_id","no_answer_timeout","session_timers","password","realm","ha1","register_expires","registrar_server","sockets","use_preloaded_route","via_core_value","via_host"],i=["password","realm","ha1","display_name"];for(e in s)t=s[e],n=-1!==i.indexOf(t),r[t]={value:"",writable:n,configurable:!1};return r.register={value:"",writable:!0,configurable:!1},r}(),r.configuration_check={mandatory:{uri:function(e){var t;return/^sip:/i.test(e)||(e=p.SIP+":"+e),(t=E.parse(e))&&t.user?t:void 0}},optional:{authorization_user:function(e){return-1===y.parse('"'+e+'"',"quoted_string")?void 0:e},connection_recovery_max_interval:function(e){var t;if(C.isDecimal(e)&&(t=Number(e))>0)return t},connection_recovery_min_interval:function(e){var t;if(C.isDecimal(e)&&(t=Number(e))>0)return t},contact_uri:function(e){if("string"==typeof e){var t=y.parse(e,"SIP_URI");if(-1!==t)return t}},display_name:function(e){return-1===y.parse('"'+e+'"',"display_name")?void 0:e},instance_id:function(e){return/^uuid:/i.test(e)&&(e=e.substr(5)),-1===y.parse(e,"uuid")?void 0:e},no_answer_timeout:function(e){var t;if(C.isDecimal(e)&&(t=Number(e))>0)return t},session_timers:function(e){if("boolean"==typeof e)return e},password:function(e){return String(e)},realm:function(e){return String(e)},ha1:function(e){return String(e)},register:function(e){if("boolean"==typeof e)return e},register_expires:function(e){var t;if(C.isDecimal(e)&&(t=Number(e))>0)return t},registrar_server:function(e){var t;return/^sip:/i.test(e)||(e=p.SIP+":"+e),(t=E.parse(e))?t.user?void 0:t:void 0},sockets:function(e){var t,n;if(_.isSocket(e))e=[{socket:e}];else{if(!Array.isArray(e)||!e.length)return;for(n=e.length,t=0;t0&&(r+="?"+s.join("&")),r},toAor:function(e){var t;return t=this.scheme+":",this.user&&(t+=i.escapeUser(this.user)+"@"),t+=this.host,e&&(this.port||0===this.port)&&(t+=":"+this.port),t}},r.parse=function(e){return-1!==(e=o.parse(e,"SIP_URI"))?e:void 0}},{"./Constants":1,"./Grammar":6,"./Utils":26}],26:[function(e,t,n){var r={};t.exports=r;var s=e("./Constants"),i=e("./URI"),o=e("./Grammar");r.str_utf8_length=function(e){return unescape(encodeURIComponent(e)).length},r.isFunction=function(e){return void 0!==e&&"[object Function]"===Object.prototype.toString.call(e)},r.isString=function(e){return void 0!==e&&"[object String]"===Object.prototype.toString.call(e)},r.isDecimal=function(e){return!isNaN(e)&&parseFloat(e)===parseInt(e,10)},r.isEmpty=function(e){if(null===e||""===e||void 0===e||Array.isArray(e)&&0===e.length||"number"==typeof e&&isNaN(e))return!0},r.hasMethods=function(e){for(var t,n=1;t=arguments[n++];)if(this.isFunction(e[t]))return!1;return!0},r.createRandomToken=function(e,t){var n,r="";for(t=t||32,n=0;n>>32-t}function n(e,t){var n,r,s,i,o;return s=2147483648&e,i=2147483648&t,n=1073741824&e,r=1073741824&t,o=(1073741823&e)+(1073741823&t),n&r?2147483648^o^s^i:n|r?1073741824&o?3221225472^o^s^i:1073741824^o^s^i:o^s^i}function r(e,t,n){return e&t|~e&n}function s(e,t,n){return e&n|t&~n}function i(e,t,n){return e^t^n}function o(e,t,n){return t^(e|~n)}function a(e,s,i,o,a,l,u){return e=n(e,n(n(r(s,i,o),a),u)),n(t(e,l),s)}function l(e,r,i,o,a,l,u){return e=n(e,n(n(s(r,i,o),a),u)),n(t(e,l),r)}function u(e,r,s,o,a,l,u){return e=n(e,n(n(i(r,s,o),a),u)),n(t(e,l),r)}function c(e,r,s,i,a,l,u){return e=n(e,n(n(o(r,s,i),a),u)),n(t(e,l),r)}function d(e){var t,n="",r="";for(t=0;t<=3;t++)n+=(r="0"+(e>>>8*t&255).toString(16)).substr(r.length-2,2);return n}var h,p,f,m,g,v,T,_,C,S=[];for(S=function(e){for(var t,n=e.length,r=n+8,s=16*((r-r%64)/64+1),i=new Array(s-1),o=0,a=0;a>>29,i}(e=function(e){e=e.replace(/\r\n/g,"\n");for(var t="",n=0;n127&&r<2048?(t+=String.fromCharCode(r>>6|192),t+=String.fromCharCode(63&r|128)):(t+=String.fromCharCode(r>>12|224),t+=String.fromCharCode(r>>6&63|128),t+=String.fromCharCode(63&r|128))}return t}(e)),v=1732584193,T=4023233417,_=2562383102,C=271733878,h=0;h1)return a("more than one Via header field present in the response, dropping the response"),!1}),h.push(function(){if(c.str_utf8_length(s.body)=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},n.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),n.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],n.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},n.enable(s())}).call(this,e("_process"))},{"./debug":30,_process:33}],30:[function(e,t,n){function r(e){var t,r=0;for(t in e)r=(r<<5)-r+e.charCodeAt(t),r|=0;return n.colors[Math.abs(r)%n.colors.length]}function s(e){function t(){if(t.enabled){var e=t,r=+new Date,s=r-(i||r);e.diff=s,e.prev=i,e.curr=r,i=r;for(var o=new Array(arguments.length),a=0;a0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function n(){this.removeListener(e,n),r||(r=!0,t.apply(this,arguments))}if(!s(t))throw TypeError("listener must be a function");var r=!1;return n.listener=t,this.on(e,n),this},r.prototype.removeListener=function(e,t){var n,r,i,a;if(!s(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(n=this._events[e],i=n.length,r=-1,n===t||s(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(n)){for(a=i;a-- >0;)if(n[a]===t||n[a].listener&&n[a].listener===t){r=a;break}if(r<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(n=this._events[e],s(n))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){return this._events&&this._events[e]?s(this._events[e])?[this._events[e]]:this._events[e].slice():[]},r.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(s(t))return 1;if(t)return t.length}return 0},r.listenerCount=function(e,t){return e.listenerCount(t)}},{}],32:[function(e,t,n){function r(e){if(!((e=String(e)).length>100)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return n*d;case"days":case"day":case"d":return n*c;case"hours":case"hour":case"hrs":case"hr":case"h":return n*u;case"minutes":case"minute":case"mins":case"min":case"m":return n*l;case"seconds":case"second":case"secs":case"sec":case"s":return n*a;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function s(e){return e>=c?Math.round(e/c)+"d":e>=u?Math.round(e/u)+"h":e>=l?Math.round(e/l)+"m":e>=a?Math.round(e/a)+"s":e+"ms"}function i(e){return o(e,c,"day")||o(e,u,"hour")||o(e,l,"minute")||o(e,a,"second")||e+" ms"}function o(e,t,n){if(!(e0)return r(e);if("number"===n&&!1===isNaN(e))return t.long?i(e):s(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},{}],33:[function(e,t,n){function r(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function i(e){if(d===setTimeout)return setTimeout(e,0);if((d===r||!d)&&setTimeout)return d=setTimeout,setTimeout(e,0);try{return d(e,0)}catch(t){try{return d.call(null,e,0)}catch(t){return d.call(this,e,0)}}}function o(e){if(h===clearTimeout)return clearTimeout(e);if((h===s||!h)&&clearTimeout)return h=clearTimeout,clearTimeout(e);try{return h(e)}catch(t){try{return h.call(null,e)}catch(t){return h.call(this,e)}}}function a(){g&&f&&(g=!1,f.length?m=f.concat(m):v=-1,m.length&&l())}function l(){if(!g){var e=i(a);g=!0;for(var t=m.length;t;){for(f=m,m=[];++v1)for(var n=1;n=r)return e;var s=n[t];switch(t+=1,e){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})},o=function(e,t,n){var r=[e+"="+(t.format instanceof Function?t.format(t.push?n:n[t.name]):t.format)];if(t.names)for(var s=0;s0?t[0].split("/")[1]:"sendrecv",uri:t[1]}},r.writeExtmap=function(e){return"a=extmap:"+(e.id||e.preferredId)+(e.direction&&"sendrecv"!==e.direction?"/"+e.direction:"")+" "+e.uri+"\r\n"},r.parseFmtp=function(e){for(var t,n={},r=e.substr(e.indexOf(" ")+1).split(";"),s=0;s-1?(n.attribute=e.substr(t+1,r-t-1),n.value=e.substr(r+1)):n.attribute=e.substr(t+1),n},r.getMid=function(e){var t=r.matchPrefix(e,"a=mid:")[0];if(t)return t.substr(6)},r.parseFingerprint=function(e){var t=e.substr(14).split(" ");return{algorithm:t[0].toLowerCase(),value:t[1]}},r.getDtlsParameters=function(e,t){return{role:"auto",fingerprints:r.matchPrefix(e+t,"a=fingerprint:").map(r.parseFingerprint)}},r.writeDtlsParameters=function(e,t){var n="a=setup:"+t+"\r\n";return e.fingerprints.forEach(function(e){n+="a=fingerprint:"+e.algorithm+" "+e.value+"\r\n"}),n},r.getIceParameters=function(e,t){var n=r.splitLines(e);return{usernameFragment:(n=n.concat(r.splitLines(t))).filter(function(e){return 0===e.indexOf("a=ice-ufrag:")})[0].substr(12),password:n.filter(function(e){return 0===e.indexOf("a=ice-pwd:")})[0].substr(10)}},r.writeIceParameters=function(e){return"a=ice-ufrag:"+e.usernameFragment+"\r\na=ice-pwd:"+e.password+"\r\n"},r.parseRtpParameters=function(e){for(var t={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},n=r.splitLines(e)[0].split(" "),s=3;s0?"9":"0",n+=" UDP/TLS/RTP/SAVPF ",n+=t.codecs.map(function(e){return void 0!==e.preferredPayloadType?e.preferredPayloadType:e.payloadType}).join(" ")+"\r\n",n+="c=IN IP4 0.0.0.0\r\n",n+="a=rtcp:9 IN IP4 0.0.0.0\r\n",t.codecs.forEach(function(e){n+=r.writeRtpMap(e),n+=r.writeFmtp(e),n+=r.writeRtcpFb(e)});var s=0;return t.codecs.forEach(function(e){e.maxptime>s&&(s=e.maxptime)}),s>0&&(n+="a=maxptime:"+s+"\r\n"),n+="a=rtcp-mux\r\n",t.headerExtensions.forEach(function(e){n+=r.writeExtmap(e)}),n},r.parseRtpEncodingParameters=function(e){var t,n=[],s=r.parseRtpParameters(e),i=-1!==s.fecMechanisms.indexOf("RED"),o=-1!==s.fecMechanisms.indexOf("ULPFEC"),a=r.matchPrefix(e,"a=ssrc:").map(function(e){return r.parseSsrcMedia(e)}).filter(function(e){return"cname"===e.attribute}),l=a.length>0&&a[0].ssrc,u=r.matchPrefix(e,"a=ssrc-group:FID").map(function(e){var t=e.split(" ");return t.shift(),t.map(function(e){return parseInt(e,10)})});u.length>0&&u[0].length>1&&u[0][0]===l&&(t=u[0][1]),s.codecs.forEach(function(e){if("RTX"===e.name.toUpperCase()&&e.parameters.apt){var r={ssrc:l,codecPayloadType:parseInt(e.parameters.apt,10),rtx:{ssrc:t}};n.push(r),i&&((r=JSON.parse(JSON.stringify(r))).fec={ssrc:t,mechanism:o?"red+ulpfec":"red"},n.push(r))}}),0===n.length&&l&&n.push({ssrc:l});var c=r.matchPrefix(e,"b=");return c.length&&(0===c[0].indexOf("b=TIAS:")?c=parseInt(c[0].substr(7),10):0===c[0].indexOf("b=AS:")&&(c=parseInt(c[0].substr(5),10)),n.forEach(function(e){e.maxBitrate=c})),n},r.parseRtcpParameters=function(e){var t={},n=r.matchPrefix(e,"a=ssrc:").map(function(e){return r.parseSsrcMedia(e)}).filter(function(e){return"cname"===e.attribute})[0];n&&(t.cname=n.value,t.ssrc=n.ssrc);var s=r.matchPrefix(e,"a=rtcp-rsize");t.reducedSize=s.length>0,t.compound=0===s.length;var i=r.matchPrefix(e,"a=rtcp-mux");return t.mux=i.length>0,t},r.parseMsid=function(e){var t,n=r.matchPrefix(e,"a=msid:");if(1===n.length)return t=n[0].substr(7).split(" "),{stream:t[0],track:t[1]};var s=r.matchPrefix(e,"a=ssrc:").map(function(e){return r.parseSsrcMedia(e)}).filter(function(e){return"msid"===e.attribute});return s.length>0?(t=s[0].value.split(" "),{stream:t[0],track:t[1]}):void 0},r.writeSessionBoilerplate=function(){return"v=0\r\no=thisisadapterortc 8169639915646943137 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},r.writeMediaSection=function(e,t,n,s){var i=r.writeRtpDescription(e.kind,t);if(i+=r.writeIceParameters(e.iceGatherer.getLocalParameters()),i+=r.writeDtlsParameters(e.dtlsTransport.getLocalParameters(),"offer"===n?"actpass":"active"),i+="a=mid:"+e.mid+"\r\n",e.direction?i+="a="+e.direction+"\r\n":e.rtpSender&&e.rtpReceiver?i+="a=sendrecv\r\n":e.rtpSender?i+="a=sendonly\r\n":e.rtpReceiver?i+="a=recvonly\r\n":i+="a=inactive\r\n",e.rtpSender){var o="msid:"+s.id+" "+e.rtpSender.track.id+"\r\n";i+="a="+o,i+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" "+o,e.sendEncodingParameters[0].rtx&&(i+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" "+o,i+="a=ssrc-group:FID "+e.sendEncodingParameters[0].ssrc+" "+e.sendEncodingParameters[0].rtx.ssrc+"\r\n")}return i+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" cname:"+r.localCName+"\r\n",e.rtpSender&&e.sendEncodingParameters[0].rtx&&(i+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" cname:"+r.localCName+"\r\n"),i},r.getDirection=function(e,t){for(var n=r.splitLines(e),s=0;s=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),m(t)?r.showHidden=t:t&&n._extend(r,t),_(r.showHidden)&&(r.showHidden=!1),_(r.depth)&&(r.depth=2),_(r.colors)&&(r.colors=!1),_(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=i),l(r,e,r.depth)}function i(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function o(e,t){return e}function a(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}function l(e,t,r){if(e.customInspect&&t&&A(t.inspect)&&t.inspect!==n.inspect&&(!t.constructor||t.constructor.prototype!==t)){var s=t.inspect(r,e);return T(s)||(s=l(e,s,r)),s}var i=u(e,t);if(i)return i;var o=Object.keys(t),m=a(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),y(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return c(t);if(0===o.length){if(A(t)){var g=t.name?": "+t.name:"";return e.stylize("[Function"+g+"]","special")}if(C(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(E(t))return e.stylize(Date.prototype.toString.call(t),"date");if(y(t))return c(t)}var v="",_=!1,S=["{","}"];if(f(t)&&(_=!0,S=["[","]"]),A(t)&&(v=" [Function"+(t.name?": "+t.name:"")+"]"),C(t)&&(v=" "+RegExp.prototype.toString.call(t)),E(t)&&(v=" "+Date.prototype.toUTCString.call(t)),y(t)&&(v=" "+c(t)),0===o.length&&(!_||0==t.length))return S[0]+v+S[1];if(r<0)return C(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var R;return R=_?d(e,t,r,m,o):o.map(function(n){return h(e,t,r,m,n,_)}),e.seen.pop(),p(R,v,S)}function u(e,t){if(_(t))return e.stylize("undefined","undefined");if(T(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return v(t)?e.stylize(""+t,"number"):m(t)?e.stylize(""+t,"boolean"):g(t)?e.stylize("null","null"):void 0}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function d(e,t,n,r,s){for(var i=[],o=0,a=t.length;o-1&&(a=i?a.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+a.split("\n").map(function(e){return" "+e}).join("\n")):a=e.stylize("[Circular]","special")),_(o)){if(i&&s.match(/^\d+$/))return a;(o=JSON.stringify(""+s)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+a}function p(e,t,n){var r=0;return e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function f(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function g(e){return null===e}function v(e){return"number"==typeof e}function T(e){return"string"==typeof e}function _(e){return void 0===e}function C(e){return S(e)&&"[object RegExp]"===R(e)}function S(e){return"object"==typeof e&&null!==e}function E(e){return S(e)&&"[object Date]"===R(e)}function y(e){return S(e)&&("[object Error]"===R(e)||e instanceof Error)}function A(e){return"function"==typeof e}function R(e){return Object.prototype.toString.call(e)}function b(e){return e<10?"0"+e.toString(10):e.toString(10)}function w(){var e=new Date,t=[b(e.getHours()),b(e.getMinutes()),b(e.getSeconds())].join(":");return[e.getDate(),P[e.getMonth()],t].join(" ")}function I(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var O=/%[sdj%]/g;n.format=function(e){if(!T(e)){for(var t=[],n=0;n=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}}),a=r[n];n0&&"function"==typeof e)return t.apply(this,arguments);if(0===t.length&&(0===arguments.length||"function"!=typeof arguments[0]))return t.apply(this,[]);var o=function(e){var t={};return e.result().forEach(function(e){var n={id:e.id,timestamp:e.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[e.type]||e.type};e.names().forEach(function(t){n[t]=e.stat(t)}),t[n.id]=n}),t},a=function(e){return new Map(Object.keys(e).map(function(t){return[t,e[t]]}))};if(arguments.length>=2){return t.apply(this,[function(e){i[1](a(o(e)))},arguments[0]])}return new Promise(function(e,n){t.apply(s,[function(t){e(a(o(t)))},n])}).then(n,r)},s.version<51&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(e){var t=RTCPeerConnection.prototype[e];RTCPeerConnection.prototype[e]=function(){var e=arguments,n=this,r=new Promise(function(r,s){t.apply(n,[e[0],r,s])});return e.length<2?r:r.then(function(){e[1].apply(null,[])},function(t){e.length>=3&&e[2].apply(null,[t])})}}),s.version<52&&["createOffer","createAnswer"].forEach(function(e){var t=RTCPeerConnection.prototype[e];RTCPeerConnection.prototype[e]=function(){var e=this;if(arguments.length<1||1===arguments.length&&"object"==typeof arguments[0]){var n=1===arguments.length?arguments[0]:void 0;return new Promise(function(r,s){t.apply(e,[r,s,n])})}return t.apply(this,arguments)}}),["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(e){var t=RTCPeerConnection.prototype[e];RTCPeerConnection.prototype[e]=function(){return arguments[0]=new("addIceCandidate"===e?RTCIceCandidate:RTCSessionDescription)(arguments[0]),t.apply(this,arguments)}});var n=RTCPeerConnection.prototype.addIceCandidate;RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?n.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())}}};t.exports={shimMediaStream:i.shimMediaStream,shimOnTrack:i.shimOnTrack,shimGetSendersWithDtmf:i.shimGetSendersWithDtmf,shimSourceObject:i.shimSourceObject,shimPeerConnection:i.shimPeerConnection,shimGetUserMedia:e("./getusermedia")}},{"../utils.js":51,"./getusermedia":44}],44:[function(e,t,n){"use strict";var r=e("../utils.js").log,s=e("../utils.js").browserDetails;t.exports=function(){var e=function(e){if("object"!=typeof e||e.mandatory||e.optional)return e;var t={};return Object.keys(e).forEach(function(n){if("require"!==n&&"advanced"!==n&&"mediaSource"!==n){var r="object"==typeof e[n]?e[n]:{ideal:e[n]};void 0!==r.exact&&"number"==typeof r.exact&&(r.min=r.max=r.exact);var s=function(e,t){return e?e+t.charAt(0).toUpperCase()+t.slice(1):"deviceId"===t?"sourceId":t};if(void 0!==r.ideal){t.optional=t.optional||[];var i={};"number"==typeof r.ideal?(i[s("min",n)]=r.ideal,t.optional.push(i),(i={})[s("max",n)]=r.ideal,t.optional.push(i)):(i[s("",n)]=r.ideal,t.optional.push(i))}void 0!==r.exact&&"number"!=typeof r.exact?(t.mandatory=t.mandatory||{},t.mandatory[s("",n)]=r.exact):["min","max"].forEach(function(e){void 0!==r[e]&&(t.mandatory=t.mandatory||{},t.mandatory[s(e,n)]=r[e])})}}),e.advanced&&(t.optional=(t.optional||[]).concat(e.advanced)),t},t=function(t,n){if((t=JSON.parse(JSON.stringify(t)))&&t.audio&&(t.audio=e(t.audio)),t&&"object"==typeof t.video){var i=t.video.facingMode;i=i&&("object"==typeof i?i:{ideal:i});var o=s.version<61;if(i&&("user"===i.exact||"environment"===i.exact||"user"===i.ideal||"environment"===i.ideal)&&(!navigator.mediaDevices.getSupportedConstraints||!navigator.mediaDevices.getSupportedConstraints().facingMode||o)){delete t.video.facingMode;var a;if("environment"===i.exact||"environment"===i.ideal?a=["back","rear"]:"user"!==i.exact&&"user"!==i.ideal||(a=["front"]),a)return navigator.mediaDevices.enumerateDevices().then(function(s){var o=(s=s.filter(function(e){return"videoinput"===e.kind})).find(function(e){return a.some(function(t){return-1!==e.label.toLowerCase().indexOf(t)})});return!o&&s.length&&-1!==a.indexOf("back")&&(o=s[s.length-1]),o&&(t.video.deviceId=i.exact?{exact:o.deviceId}:{ideal:o.deviceId}),t.video=e(t.video),r("chrome: "+JSON.stringify(t)),n(t)})}t.video=e(t.video)}return r("chrome: "+JSON.stringify(t)),n(t)},n=function(e){return{name:{ConstraintNotSatisfiedError:"OverconstrainedError",PermissionDeniedError:"NotAllowedError",TrackStartError:"NotReadableError"}[e.name]||e.name,message:e.message,constraint:e.constraintName,toString:function(){return this.name+(this.message&&": ")+this.message}}};navigator.getUserMedia=function(e,r,s){t(e,function(e){navigator.webkitGetUserMedia(e,r,function(e){s(n(e))})})};var i=function(e){return new Promise(function(t,n){navigator.getUserMedia(e,t,n)})};if(navigator.mediaDevices||(navigator.mediaDevices={getUserMedia:i,enumerateDevices:function(){return new Promise(function(e){var t={audio:"audioinput",video:"videoinput"};return MediaStreamTrack.getSources(function(n){e(n.map(function(e){return{label:e.label,kind:t[e.kind],deviceId:e.id,groupId:""}}))})})},getSupportedConstraints:function(){return{deviceId:!0,echoCancellation:!0,facingMode:!0,frameRate:!0,height:!0,width:!0}}}),navigator.mediaDevices.getUserMedia){var o=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);navigator.mediaDevices.getUserMedia=function(e){return t(e,function(e){return o(e).then(function(t){if(e.audio&&!t.getAudioTracks().length||e.video&&!t.getVideoTracks().length)throw t.getTracks().forEach(function(e){e.stop()}),new DOMException("","NotFoundError");return t},function(e){return Promise.reject(n(e))})})}}else navigator.mediaDevices.getUserMedia=function(e){return i(e)};void 0===navigator.mediaDevices.addEventListener&&(navigator.mediaDevices.addEventListener=function(){r("Dummy mediaDevices.addEventListener called.")}),void 0===navigator.mediaDevices.removeEventListener&&(navigator.mediaDevices.removeEventListener=function(){r("Dummy mediaDevices.removeEventListener called.")})}},{"../utils.js":51}],45:[function(e,t,n){"use strict";var r=e("../utils").browserDetails,s=e("./rtcpeerconnection_shim");t.exports={shimGetUserMedia:e("./getusermedia"),shimPeerConnection:function(){if(window.RTCIceGatherer&&(window.RTCIceCandidate||(window.RTCIceCandidate=function(e){return e}),window.RTCSessionDescription||(window.RTCSessionDescription=function(e){return e}),r.version<15025)){var e=Object.getOwnPropertyDescriptor(MediaStreamTrack.prototype,"enabled");Object.defineProperty(MediaStreamTrack.prototype,"enabled",{set:function(t){e.set.call(this,t);var n=new Event("enabled");n.enabled=t,this.dispatchEvent(n)}})}window.RTCPeerConnection=s(r.version)},shimReplaceTrack:function(){!window.RTCRtpSender||"replaceTrack"in RTCRtpSender.prototype||(RTCRtpSender.prototype.replaceTrack=RTCRtpSender.prototype.setTrack)}}},{"../utils":51,"./getusermedia":46,"./rtcpeerconnection_shim":47}],46:[function(e,t,n){"use strict";t.exports=function(){var e=function(e){return{name:{PermissionDeniedError:"NotAllowedError"}[e.name]||e.name,message:e.message,constraint:e.constraint,toString:function(){return this.name}}},t=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);navigator.mediaDevices.getUserMedia=function(n){return t(n).catch(function(t){return Promise.reject(e(t))})}}},{}],47:[function(e,t,n){"use strict";function r(e){var t=e.filter(function(e){return"audio"===e.kind}),n=e.filter(function(e){return"video"===e.kind});for(e=[];t.length||n.length;)t.length&&e.push(t.shift()),n.length&&e.push(n.shift());return e}function s(e,t){var n=!1;return(e=JSON.parse(JSON.stringify(e))).filter(function(e){if(e&&(e.urls||e.url)){var r=e.urls||e.url;e.url&&!e.urls&&console.warn("RTCIceServer.url is deprecated! Use urls instead.");var s="string"==typeof r;return s&&(r=[r]),r=r.filter(function(e){return 0===e.indexOf("turn:")&&-1!==e.indexOf("transport=udp")&&-1===e.indexOf("turn:[")&&!n?(n=!0,!0):0===e.indexOf("stun:")&&t>=14393}),delete e.url,e.urls=s?r[0]:r,!!r.length}return!1})}function i(e,t){var n={codecs:[],headerExtensions:[],fecMechanisms:[]},r=function(e,t){e=parseInt(e,10);for(var n=0;n0,n={track:null,iceGatherer:null,iceTransport:null,dtlsTransport:null,localCapabilities:null,remoteCapabilities:null,rtpSender:null,rtpReceiver:null,kind:e,mid:null,sendEncodingParameters:null,recvEncodingParameters:null,stream:null,wantReceive:!0};if(this.usingBundle&&t)n.iceTransport=this.transceivers[0].iceTransport,n.dtlsTransport=this.transceivers[0].dtlsTransport;else{var r=this._createIceAndDtlsTransports();n.iceTransport=r.iceTransport,n.dtlsTransport=r.dtlsTransport}return this.transceivers.push(n),n},t.prototype.addTrack=function(e,t){for(var n,r=0;r=15025)this.localStreams.push(t),t.getTracks().forEach(function(e){n.addTrack(e,t)});else{var r=t.clone();t.getTracks().forEach(function(e,t){var n=r.getTracks()[t];e.addEventListener("enabled",function(e){n.enabled=e.enabled})}),r.getTracks().forEach(function(e){n.addTrack(e,r)}),this.localStreams.push(r)}this._maybeFireNegotiationNeeded()},t.prototype.removeStream=function(e){var t=this.localStreams.indexOf(e);t>-1&&(this.localStreams.splice(t,1),this._maybeFireNegotiationNeeded())},t.prototype.getSenders=function(){return this.transceivers.filter(function(e){return!!e.rtpSender}).map(function(e){return e.rtpSender})},t.prototype.getReceivers=function(){return this.transceivers.filter(function(e){return!!e.rtpReceiver}).map(function(e){return e.rtpReceiver})},t.prototype._createIceGatherer=function(e,t){var n=this,r=new RTCIceGatherer(n.iceOptions);return r.onlocalcandidate=function(s){var i=new Event("icecandidate");i.candidate={sdpMid:e,sdpMLineIndex:t};var o=s.candidate,l=!o||0===Object.keys(o).length;l?void 0===r.state&&(r.state="completed"):(o.component=1,i.candidate.candidate=a.writeCandidate(o));var u=a.splitSections(n.localDescription.sdp);u[i.candidate.sdpMLineIndex+1]+=l?"a=end-of-candidates\r\n":"a="+i.candidate.candidate+"\r\n",n.localDescription.sdp=u.join("");var c=(n._pendingOffer?n._pendingOffer:n.transceivers).every(function(e){return e.iceGatherer&&"completed"===e.iceGatherer.state});switch(n.iceGatheringState){case"new":l||n._localIceCandidatesBuffer.push(i),l&&c&&n._localIceCandidatesBuffer.push(new Event("icecandidate"));break;case"gathering":n._emitBufferedCandidates(),l||(n.dispatchEvent(i),null!==n.onicecandidate&&n.onicecandidate(i)),c&&(n.dispatchEvent(new Event("icecandidate")),null!==n.onicecandidate&&n.onicecandidate(new Event("icecandidate")),n.iceGatheringState="complete",n._emitGatheringStateChange())}},r},t.prototype._createIceAndDtlsTransports=function(){var e=this,t=new RTCIceTransport(null);t.onicestatechange=function(){e._updateConnectionState()};var n=new RTCDtlsTransport(t);return n.ondtlsstatechange=function(){e._updateConnectionState()},n.onerror=function(){Object.defineProperty(n,"state",{value:"failed",writable:!0}),e._updateConnectionState()},{iceTransport:t,dtlsTransport:n}},t.prototype._disposeIceAndDtlsTransports=function(e){var t=this.transceivers[e].iceGatherer;t&&(delete t.onlocalcandidate,delete this.transceivers[e].iceGatherer);var n=this.transceivers[e].iceTransport;n&&(delete n.onicestatechange,delete this.transceivers[e].iceTransport);var r=this.transceivers[e].dtlsTransport;r&&(delete r.ondtlssttatechange,delete r.onerror,delete this.transceivers[e].dtlsTransport)},t.prototype._transceive=function(t,n,r){var s=i(t.localCapabilities,t.remoteCapabilities);n&&t.rtpSender&&(s.encodings=t.sendEncodingParameters,s.rtcp={cname:a.localCName,compound:t.rtcpParameters.compound},t.recvEncodingParameters.length&&(s.rtcp.ssrc=t.recvEncodingParameters[0].ssrc),t.rtpSender.send(s)),r&&t.rtpReceiver&&("video"===t.kind&&t.recvEncodingParameters&&e<15019&&t.recvEncodingParameters.forEach(function(e){delete e.rtx}),s.encodings=t.recvEncodingParameters,s.rtcp={cname:t.rtcpParameters.cname,compound:t.rtcpParameters.compound},t.sendEncodingParameters.length&&(s.rtcp.ssrc=t.sendEncodingParameters[0].ssrc),t.rtpReceiver.receive(s))},t.prototype.setLocalDescription=function(e){var t=this;if(!o("setLocalDescription",e.type,this.signalingState)){var n=new Error("Can not set local "+e.type+" in state "+this.signalingState);return n.name="InvalidStateError",arguments.length>2&&"function"==typeof arguments[2]&&window.setTimeout(arguments[2],0,n),Promise.reject(n)}var r,s;if("offer"===e.type)this._pendingOffer&&(r=a.splitSections(e.sdp),s=r.shift(),r.forEach(function(e,n){var r=a.parseRtpParameters(e);t._pendingOffer[n].localCapabilities=r}),this.transceivers=this._pendingOffer,delete this._pendingOffer);else if("answer"===e.type){r=a.splitSections(t.remoteDescription.sdp),s=r.shift();var l=a.matchPrefix(s,"a=ice-lite").length>0;r.forEach(function(e,n){var r=t.transceivers[n],o=r.iceGatherer,u=r.iceTransport,c=r.dtlsTransport,d=r.localCapabilities,h=r.remoteCapabilities;if(!a.isRejected(e)&&!r.isDatachannel){var p=a.getIceParameters(e,s),f=a.getDtlsParameters(e,s);l&&(f.role="server"),t.usingBundle&&0!==n||(u.start(o,p,l?"controlling":"controlled"),c.start(f));var m=i(d,h);t._transceive(r,m.codecs.length>0,!1)}})}switch(this.localDescription={type:e.type,sdp:e.sdp},e.type){case"offer":this._updateSignalingState("have-local-offer");break;case"answer":this._updateSignalingState("stable");break;default:throw new TypeError('unsupported type "'+e.type+'"')}var u=arguments.length>1&&"function"==typeof arguments[1];if(u){var c=arguments[1];window.setTimeout(function(){c(),"new"===t.iceGatheringState&&(t.iceGatheringState="gathering",t._emitGatheringStateChange()),t._emitBufferedCandidates()},0)}var d=Promise.resolve();return d.then(function(){u||("new"===t.iceGatheringState&&(t.iceGatheringState="gathering",t._emitGatheringStateChange()),window.setTimeout(t._emitBufferedCandidates.bind(t),500))}),d},t.prototype.setRemoteDescription=function(t){var n=this;if(!o("setRemoteDescription",t.type,this.signalingState)){var r=new Error("Can not set remote "+t.type+" in state "+this.signalingState);return r.name="InvalidStateError",arguments.length>2&&"function"==typeof arguments[2]&&window.setTimeout(arguments[2],0,r),Promise.reject(r)}var s={},i=[],l=a.splitSections(t.sdp),u=l.shift(),c=a.matchPrefix(u,"a=ice-lite").length>0,d=a.matchPrefix(u,"a=group:BUNDLE ").length>0;this.usingBundle=d;var h=a.matchPrefix(u,"a=ice-options:")[0];switch(this.canTrickleIceCandidates=!!h&&h.substr(14).split(" ").indexOf("trickle")>=0,l.forEach(function(r,o){var l=a.splitLines(r),h=a.getKind(r),p=a.isRejected(r),f=l[0].substr(2).split(" ")[2],m=a.getDirection(r,u),g=a.parseMsid(r),v=a.getMid(r)||a.generateIdentifier();if("application"!==h||"DTLS/SCTP"!==f){var T,_,C,S,E,y,A,R,b,w,I,O=a.parseRtpParameters(r);p||(w=a.getIceParameters(r,u),(I=a.getDtlsParameters(r,u)).role="client"),A=a.parseRtpEncodingParameters(r);var x=a.parseRtcpParameters(r),N=a.matchPrefix(r,"a=end-of-candidates",u).length>0,P=a.matchPrefix(r,"a=candidate:").map(function(e){return a.parseCandidate(e)}).filter(function(e){return"1"===e.component||1===e.component});"offer"!==t.type||p?"answer"!==t.type||p||(d&&o>0&&(n._disposeIceAndDtlsTransports(o),n.transceivers[o].iceGatherer=n.transceivers[0].iceGatherer,n.transceivers[o].iceTransport=n.transceivers[0].iceTransport,n.transceivers[o].dtlsTransport=n.transceivers[0].dtlsTransport,n.transceivers[o].rtpSender&&n.transceivers[o].rtpSender.setTransport(n.transceivers[0].dtlsTransport),n.transceivers[o].rtpReceiver&&n.transceivers[o].rtpReceiver.setTransport(n.transceivers[0].dtlsTransport)),_=(T=n.transceivers[o]).iceGatherer,C=T.iceTransport,S=T.dtlsTransport,E=T.rtpReceiver,y=T.sendEncodingParameters,R=T.localCapabilities,n.transceivers[o].recvEncodingParameters=A,n.transceivers[o].remoteCapabilities=O,n.transceivers[o].rtcpParameters=x,(c||N)&&P.length&&C.setRemoteCandidates(P),d&&0!==o||(C.start(_,w,"controlling"),S.start(I)),n._transceive(T,"sendrecv"===m||"recvonly"===m,"sendrecv"===m||"sendonly"===m),!E||"sendrecv"!==m&&"sendonly"!==m?delete T.rtpReceiver:(b=E.track,g?(s[g.stream]||(s[g.stream]=new MediaStream),s[g.stream].addTrack(b),i.push([b,E,s[g.stream]])):(s.default||(s.default=new MediaStream),s.default.addTrack(b),i.push([b,E,s.default])))):((T=n.transceivers[o]||n._createTransceiver(h)).mid=v,T.iceGatherer||(T.iceGatherer=d&&o>0?n.transceivers[0].iceGatherer:n._createIceGatherer(v,o)),!N||d&&0!==o||T.iceTransport.setRemoteCandidates(P),R=RTCRtpReceiver.getCapabilities(h),e<15019&&(R.codecs=R.codecs.filter(function(e){return"rtx"!==e.name})),y=[{ssrc:1001*(2*o+2)}],"sendrecv"!==m&&"sendonly"!==m||(b=(E=new RTCRtpReceiver(T.dtlsTransport,h)).track,g?(s[g.stream]||(s[g.stream]=new MediaStream,Object.defineProperty(s[g.stream],"id",{get:function(){return g.stream}})),Object.defineProperty(b,"id",{get:function(){return g.track}}),s[g.stream].addTrack(b),i.push([b,E,s[g.stream]])):(s.default||(s.default=new MediaStream),s.default.addTrack(b),i.push([b,E,s.default]))),T.localCapabilities=R,T.remoteCapabilities=O,T.rtpReceiver=E,T.rtcpParameters=x,T.sendEncodingParameters=y,T.recvEncodingParameters=A,n._transceive(n.transceivers[o],!1,"sendrecv"===m||"sendonly"===m))}else n.transceivers[o]={mid:v,isDatachannel:!0}}),this.remoteDescription={type:t.type,sdp:t.sdp},t.type){case"offer":this._updateSignalingState("have-remote-offer");break;case"answer":this._updateSignalingState("stable");break;default:throw new TypeError('unsupported type "'+t.type+'"')}return Object.keys(s).forEach(function(e){var t=s[e];if(t.getTracks().length){n.remoteStreams.push(t);var r=new Event("addstream");r.stream=t,n.dispatchEvent(r),null!==n.onaddstream&&window.setTimeout(function(){n.onaddstream(r)},0),i.forEach(function(e){var r=e[0],s=e[1];if(t.id===e[2].id){var i=new Event("track");i.track=r,i.receiver=s,i.streams=[t],n.dispatchEvent(i),null!==n.ontrack&&window.setTimeout(function(){n.ontrack(i)},0)}})}}),window.setTimeout(function(){n&&n.transceivers&&n.transceivers.forEach(function(e){e.iceTransport&&"new"===e.iceTransport.state&&e.iceTransport.getRemoteCandidates().length>0&&(console.warn("Timeout for addRemoteCandidate. Consider sending an end-of-candidates notification"),e.iceTransport.addRemoteCandidate({}))})},4e3),arguments.length>1&&"function"==typeof arguments[1]&&window.setTimeout(arguments[1],0),Promise.resolve()},t.prototype.close=function(){this.transceivers.forEach(function(e){e.iceTransport&&e.iceTransport.stop(),e.dtlsTransport&&e.dtlsTransport.stop(),e.rtpSender&&e.rtpSender.stop(),e.rtpReceiver&&e.rtpReceiver.stop()}),this._updateSignalingState("closed")},t.prototype._updateSignalingState=function(e){this.signalingState=e;var t=new Event("signalingstatechange");this.dispatchEvent(t),null!==this.onsignalingstatechange&&this.onsignalingstatechange(t)},t.prototype._maybeFireNegotiationNeeded=function(){var e=this;"stable"===this.signalingState&&!0!==this.needNegotiation&&(this.needNegotiation=!0,window.setTimeout(function(){if(!1!==e.needNegotiation){e.needNegotiation=!1;var t=new Event("negotiationneeded");e.dispatchEvent(t),null!==e.onnegotiationneeded&&e.onnegotiationneeded(t)}},0))},t.prototype._updateConnectionState=function(){var e,t=this,n={new:0,closed:0,connecting:0,checking:0,connected:0,completed:0,failed:0};if(this.transceivers.forEach(function(e){n[e.iceTransport.state]++,n[e.dtlsTransport.state]++}),n.connected+=n.completed,e="new",n.failed>0?e="failed":n.connecting>0||n.checking>0?e="connecting":n.disconnected>0?e="disconnected":n.new>0?e="new":(n.connected>0||n.completed>0)&&(e="connected"),e!==t.iceConnectionState){t.iceConnectionState=e;var r=new Event("iceconnectionstatechange");this.dispatchEvent(r),null!==this.oniceconnectionstatechange&&this.oniceconnectionstatechange(r)}},t.prototype.createOffer=function(){var t=this;if(this._pendingOffer)throw new Error("createOffer called while there is a pending offer.");var n;1===arguments.length&&"function"!=typeof arguments[0]?n=arguments[0]:3===arguments.length&&(n=arguments[2]);var s=this.transceivers.filter(function(e){return"audio"===e.kind}).length,i=this.transceivers.filter(function(e){return"video"===e.kind}).length;if(n){if(n.mandatory||n.optional)throw new TypeError("Legacy mandatory/optional constraints not supported.");void 0!==n.offerToReceiveAudio&&(s=!0===n.offerToReceiveAudio?1:!1===n.offerToReceiveAudio?0:n.offerToReceiveAudio),void 0!==n.offerToReceiveVideo&&(i=!0===n.offerToReceiveVideo?1:!1===n.offerToReceiveVideo?0:n.offerToReceiveVideo)}for(this.transceivers.forEach(function(e){"audio"===e.kind?--s<0&&(e.wantReceive=!1):"video"===e.kind&&--i<0&&(e.wantReceive=!1)});s>0||i>0;)s>0&&(this._createTransceiver("audio"),s--),i>0&&(this._createTransceiver("video"),i--);var o=r(this.transceivers),l=a.writeSessionBoilerplate();o.forEach(function(n,r){var s=n.track,i=n.kind,l=a.generateIdentifier();n.mid=l,n.iceGatherer||(n.iceGatherer=t.usingBundle&&r>0?o[0].iceGatherer:t._createIceGatherer(l,r));var u=RTCRtpSender.getCapabilities(i);e<15019&&(u.codecs=u.codecs.filter(function(e){return"rtx"!==e.name})),u.codecs.forEach(function(e){"H264"===e.name&&void 0===e.parameters["level-asymmetry-allowed"]&&(e.parameters["level-asymmetry-allowed"]="1")});var c=[{ssrc:1001*(2*r+1)}];s&&e>=15019&&"video"===i&&(c[0].rtx={ssrc:1001*(2*r+1)+1}),n.wantReceive&&(n.rtpReceiver=new RTCRtpReceiver(n.dtlsTransport,i)),n.localCapabilities=u,n.sendEncodingParameters=c}),"max-compat"!==this._config.bundlePolicy&&(l+="a=group:BUNDLE "+o.map(function(e){return e.mid}).join(" ")+"\r\n"),l+="a=ice-options:trickle\r\n",o.forEach(function(e,t){l+=a.writeMediaSection(e,e.localCapabilities,"offer",e.stream),l+="a=rtcp-rsize\r\n"}),this._pendingOffer=o;var u=new RTCSessionDescription({type:"offer",sdp:l});return arguments.length&&"function"==typeof arguments[0]&&window.setTimeout(arguments[0],0,u),Promise.resolve(u)},t.prototype.createAnswer=function(){var t=a.writeSessionBoilerplate();this.usingBundle&&(t+="a=group:BUNDLE "+this.transceivers.map(function(e){return e.mid}).join(" ")+"\r\n"),this.transceivers.forEach(function(n,r){if(n.isDatachannel)t+="m=application 0 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=mid:"+n.mid+"\r\n";else{if(n.stream){var s;"audio"===n.kind?s=n.stream.getAudioTracks()[0]:"video"===n.kind&&(s=n.stream.getVideoTracks()[0]),s&&e>=15019&&"video"===n.kind&&(n.sendEncodingParameters[0].rtx={ssrc:1001*(2*r+2)+1})}var o=i(n.localCapabilities,n.remoteCapabilities);!o.codecs.filter(function(e){return"rtx"===e.name.toLowerCase()}).length&&n.sendEncodingParameters[0].rtx&&delete n.sendEncodingParameters[0].rtx,t+=a.writeMediaSection(n,o,"answer",n.stream),n.rtcpParameters&&n.rtcpParameters.reducedSize&&(t+="a=rtcp-rsize\r\n")}});var n=new RTCSessionDescription({type:"answer",sdp:t});return arguments.length&&"function"==typeof arguments[0]&&window.setTimeout(arguments[0],0,n),Promise.resolve(n)},t.prototype.addIceCandidate=function(e){if(e){var t=e.sdpMLineIndex;if(e.sdpMid)for(var n=0;n0?a.parseCandidate(e.candidate):{};if("tcp"===s.protocol&&(0===s.port||9===s.port))return Promise.resolve();if(s.component&&"1"!==s.component&&1!==s.component)return Promise.resolve();r.iceTransport.addRemoteCandidate(s);var i=a.splitSections(this.remoteDescription.sdp);i[t+1]+=(s.type?e.candidate.trim():"a=end-of-candidates")+"\r\n",this.remoteDescription.sdp=i.join("")}}else for(var o=0;o1&&"function"==typeof arguments[1]&&window.setTimeout(arguments[1],0),Promise.resolve()},t.prototype.getStats=function(){var e=[];this.transceivers.forEach(function(t){["rtpSender","rtpReceiver","iceGatherer","iceTransport","dtlsTransport"].forEach(function(n){t[n]&&e.push(t[n].getStats())})});var t=arguments.length>1&&"function"==typeof arguments[1]&&arguments[1],n=function(e){return{inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[e.type]||e.type};return new Promise(function(r){var s=new Map;Promise.all(e).then(function(e){e.forEach(function(e){Object.keys(e).forEach(function(t){e[t].type=n(e[t]),s.set(t,e[t])})}),t&&window.setTimeout(t,0,s),r(s)})})},t}},{sdp:38}],48:[function(e,t,n){"use strict";var r=e("../utils").browserDetails,s={shimOnTrack:function(){"object"!=typeof window||!window.RTCPeerConnection||"ontrack"in window.RTCPeerConnection.prototype||Object.defineProperty(window.RTCPeerConnection.prototype,"ontrack",{get:function(){return this._ontrack},set:function(e){this._ontrack&&(this.removeEventListener("track",this._ontrack),this.removeEventListener("addstream",this._ontrackpoly)),this.addEventListener("track",this._ontrack=e),this.addEventListener("addstream",this._ontrackpoly=function(e){e.stream.getTracks().forEach(function(t){var n=new Event("track");n.track=t,n.receiver={track:t},n.streams=[e.stream],this.dispatchEvent(n)}.bind(this))}.bind(this))}})},shimSourceObject:function(){"object"==typeof window&&(!window.HTMLMediaElement||"srcObject"in window.HTMLMediaElement.prototype||Object.defineProperty(window.HTMLMediaElement.prototype,"srcObject",{get:function(){return this.mozSrcObject},set:function(e){this.mozSrcObject=e}}))},shimPeerConnection:function(){if("object"==typeof window&&(window.RTCPeerConnection||window.mozRTCPeerConnection)){window.RTCPeerConnection||(window.RTCPeerConnection=function(e,t){if(r.version<38&&e&&e.iceServers){for(var n=[],s=0;s=0)){this._streams.push(t);var n=new Event("addstream");n.stream=e.streams[0],this.dispatchEvent(n)}}.bind(this))}})},shimCallbacksAPI:function(){if("object"==typeof window&&window.RTCPeerConnection){var e=RTCPeerConnection.prototype,t=e.createOffer,n=e.createAnswer,r=e.setLocalDescription,s=e.setRemoteDescription,i=e.addIceCandidate;e.createOffer=function(e,n){var r=arguments.length>=2?arguments[2]:arguments[0],s=t.apply(this,[r]);return n?(s.then(e,n),Promise.resolve()):s},e.createAnswer=function(e,t){var r=arguments.length>=2?arguments[2]:arguments[0],s=n.apply(this,[r]);return t?(s.then(e,t),Promise.resolve()):s};var o=function(e,t,n){var s=r.apply(this,[e]);return n?(s.then(t,n),Promise.resolve()):s};e.setLocalDescription=o,o=function(e,t,n){var r=s.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r},e.setRemoteDescription=o,o=function(e,t,n){var r=i.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r},e.addIceCandidate=o}},shimGetUserMedia:function(){navigator.getUserMedia||(navigator.webkitGetUserMedia?navigator.getUserMedia=navigator.webkitGetUserMedia.bind(navigator):navigator.mediaDevices&&navigator.mediaDevices.getUserMedia&&(navigator.getUserMedia=function(e,t,n){navigator.mediaDevices.getUserMedia(e).then(t,n)}.bind(navigator)))}};t.exports={shimCallbacksAPI:r.shimCallbacksAPI,shimAddStream:r.shimAddStream,shimOnAddStream:r.shimOnAddStream,shimGetUserMedia:r.shimGetUserMedia}},{}],51:[function(e,t,n){"use strict";var r=!0,s={disableLog:function(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(r=e,e?"adapter.js logging disabled":"adapter.js logging enabled")},log:function(){if("object"==typeof window){if(r)return;"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments)}},extractVersion:function(e,t,n){var r=e.match(t);return r&&r.length>=n&&parseInt(r[n],10)},detectBrowser:function(){var e={};if(e.browser=null,e.version=null,"undefined"==typeof window||!window.navigator)return e.browser="Not a browser.",e;if(navigator.mozGetUserMedia)e.browser="firefox",e.version=this.extractVersion(navigator.userAgent,/Firefox\/(\d+)\./,1);else if(navigator.webkitGetUserMedia)if(window.webkitRTCPeerConnection)e.browser="chrome",e.version=this.extractVersion(navigator.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else{if(!navigator.userAgent.match(/Version\/(\d+).(\d+)/))return e.browser="Unsupported webkit-based browser with GUM support but no WebRTC support.",e;e.browser="safari",e.version=this.extractVersion(navigator.userAgent,/AppleWebKit\/(\d+)\./,1)}else if(navigator.mediaDevices&&navigator.userAgent.match(/Edge\/(\d+).(\d+)$/))e.browser="edge",e.version=this.extractVersion(navigator.userAgent,/Edge\/(\d+).(\d+)$/,2);else{if(!navigator.mediaDevices||!navigator.userAgent.match(/AppleWebKit\/(\d+)\./))return e.browser="Not a supported browser.",e;e.browser="safari",e.version=this.extractVersion(navigator.userAgent,/AppleWebKit\/(\d+)\./,1)}return e},shimCreateObjectURL:function(){if("object"==typeof window&&window.HTMLMediaElement&&"srcObject"in window.HTMLMediaElement.prototype){var e=URL.createObjectURL.bind(URL),t=URL.revokeObjectURL.bind(URL),n=new Map,r=0;URL.createObjectURL=function(t){if("getTracks"in t){var s="polyblob:"+ ++r;return n.set(s,t),console.log("URL.createObjectURL(stream) is deprecated! Use elem.srcObject = stream instead!"),s}return e(t)},URL.revokeObjectURL=function(e){t(e),n.delete(e)};var s=Object.getOwnPropertyDescriptor(window.HTMLMediaElement.prototype,"src");Object.defineProperty(window.HTMLMediaElement.prototype,"src",{get:function(){return s.get.apply(this)},set:function(e){return this.srcObject=n.get(e)||null,s.set.apply(this,[e])}});var i=HTMLMediaElement.prototype.setAttribute;HTMLMediaElement.prototype.setAttribute=function(){return 2===arguments.length&&"src"===(""+arguments[0]).toLowerCase()&&(this.srcObject=n.get(arguments[1])||null),i.apply(this,arguments)}}}};t.exports={log:s.log,disableLog:s.disableLog,browserDetails:s.detectBrowser(),extractVersion:s.extractVersion,shimCreateObjectURL:s.shimCreateObjectURL,detectBrowser:s.detectBrowser.bind(s)}},{}],52:[function(e,t,n){t.exports={name:"jssip",title:"JsSIP",description:"the Javascript SIP library",version:"3.0.17",homepage:"http://jssip.net",author:"José Luis Millán (https://github.com/jmillan)",contributors:["Iñaki Baz Castillo (https://github.com/ibc)","Saúl Ibarra Corretgé (https://github.com/saghul)"],main:"lib/JsSIP.js",keywords:["sip","websocket","webrtc","node","browser","library"],license:"MIT",repository:{type:"git",url:"https://github.com/versatica/JsSIP.git"},bugs:{url:"https://github.com/versatica/JsSIP/issues"},dependencies:{debug:"^3.0.1","sdp-transform":"^2.3.0","webrtc-adapter":"^5.0.0"},devDependencies:{browserify:"^14.3.0",gulp:"git+https://github.com/gulpjs/gulp.git#4.0","gulp-expect-file":"0.0.7","gulp-header":"1.8.9","gulp-jshint":"^2.0.4","gulp-nodeunit-runner":"^0.2.2","gulp-rename":"^1.2.2","gulp-uglify":"^3.0.0","gulp-util":"^3.0.8",jshint:"^2.9.4","jshint-stylish":"^2.2.1",pegjs:"0.7.0","vinyl-buffer":"^1.0.0","vinyl-source-stream":"^1.1.0"},scripts:{test:"gulp test"}}},{}]},{},[7])(7)}); \ No newline at end of file +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).JsSIP=e()}}(function(){return function e(t,n,r){function s(o,a){if(!n[o]){if(!t[o]){var l="function"==typeof require&&require;if(!a&&l)return l(o,!0);if(i)return i(o,!0);var u=new Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[o]={exports:{}};t[o][0].call(c.exports,function(e){var n=t[o][1][e];return s(n||e)},c,c.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;othis.remote_seqnum&&(this.remote_seqnum=e.cseq);else this.remote_seqnum=e.cseq;if(e.method===a.INVITE||e.method===a.UPDATE&&e.body){if(!0===this.uac_pending_reply)e.reply(491);else{if(!0===this.uas_pending_reply){var n=1+(10*Math.random()|0);return e.reply(500,null,["Retry-After:"+n]),!1}this.uas_pending_reply=!0,e.server_transaction.on("stateChanged",function n(){this.state!==l.C.STATUS_ACCEPTED&&this.state!==l.C.STATUS_COMPLETED&&this.state!==l.C.STATUS_TERMINATED||(e.server_transaction.removeListener("stateChanged",n),t.uas_pending_reply=!1)})}e.hasHeader("contact")&&e.server_transaction.on("stateChanged",function(){this.state===l.C.STATUS_ACCEPTED&&(t.remote_target=e.parseHeader("contact").uri)})}else e.method===a.NOTIFY&&e.hasHeader("contact")&&e.server_transaction.on("stateChanged",function(){this.state===l.C.STATUS_COMPLETED&&(t.remote_target=e.parseHeader("contact").uri)});return!0},sendRequest:function(e,t,n){var r=(n=n||{}).extraHeaders&&n.extraHeaders.slice()||[],s=n.body||null,i=this.createRequest(t,r,s);return new u(this,e,i).send(),i},receiveRequest:function(e){this.checkInDialogRequest(e)&&(e.method===a.ACK&&null!==this.ack_seqnum?this.ack_seqnum=null:e.method===a.INVITE&&(this.ack_seqnum=e.cseq),this.owner.receiveRequest(e))}}},{"./Constants":1,"./Dialog/RequestSender":3,"./SIPMessage":19,"./Transactions":22,debug:29}],3:[function(e,t,n){function r(e,t,n){this.dialog=e,this.applicant=t,this.request=n,this.reattempt=!1,this.reattemptTimer=null}t.exports=r;var s=e("../Constants"),i=e("../Transactions"),o=e("../RTCSession"),a=e("../RequestSender");r.prototype={send:function(){var e=this,t=new a(this,this.dialog.owner.ua);t.send(),(this.request.method===s.INVITE||this.request.method===s.UPDATE&&this.request.body)&&t.clientTransaction.state!==i.C.STATUS_TERMINATED&&(this.dialog.uac_pending_reply=!0,t.clientTransaction.on("stateChanged",function n(){this.state!==i.C.STATUS_ACCEPTED&&this.state!==i.C.STATUS_COMPLETED&&this.state!==i.C.STATUS_TERMINATED||(t.clientTransaction.removeListener("stateChanged",n),e.dialog.uac_pending_reply=!1)}))},onRequestTimeout:function(){this.applicant.onRequestTimeout()},onTransportError:function(){this.applicant.onTransportError()},receiveResponse:function(e){var t=this;408===e.status_code||481===e.status_code?this.applicant.onDialogError(e):e.method===s.INVITE&&491===e.status_code?this.reattempt?this.applicant.receiveResponse(e):(this.request.cseq.value=this.dialog.local_seqnum+=1,this.reattemptTimer=setTimeout(function(){t.applicant.owner.status!==o.C.STATUS_TERMINATED&&(t.reattempt=!0,t.request_sender.send())},1e3)):this.applicant.receiveResponse(e)}}},{"../Constants":1,"../RTCSession":11,"../RequestSender":18,"../Transactions":22}],4:[function(e,t,n){function r(e){this.credentials=e,this.cnonce=null,this.nc=0,this.ncHex="00000000",this.algorithm=null,this.realm=null,this.nonce=null,this.opaque=null,this.stale=null,this.qop=null,this.method=null,this.uri=null,this.ha1=null,this.response=null}t.exports=r;var s=e("debug")("JsSIP:DigestAuthentication"),i=e("debug")("JsSIP:ERROR:DigestAuthentication");i.log=console.warn.bind(console);var o=e("./Utils");r.prototype.get=function(e){switch(e){case"realm":return this.realm;case"ha1":return this.ha1;default:return void i('get() | cannot get "%s" parameter',e)}},r.prototype.authenticate=function(e,t){var n,r;if(this.algorithm=t.algorithm,this.realm=t.realm,this.nonce=t.nonce,this.opaque=t.opaque,this.stale=t.stale,this.algorithm){if("MD5"!==this.algorithm)return i('authenticate() | challenge with Digest algorithm different than "MD5", authentication aborted'),!1}else this.algorithm="MD5";if(!this.nonce)return i("authenticate() | challenge without Digest nonce, authentication aborted"),!1;if(!this.realm)return i("authenticate() | challenge without Digest realm, authentication aborted"),!1;if(!this.credentials.password){if(!this.credentials.ha1)return i("authenticate() | no plain SIP password nor ha1 provided, authentication aborted"),!1;if(this.credentials.realm!==this.realm)return i('authenticate() | no plain SIP password, and stored `realm` does not match the given `realm`, cannot authenticate [stored:"%s", given:"%s"]',this.credentials.realm,this.realm),!1}if(t.qop)if(t.qop.indexOf("auth")>-1)this.qop="auth";else{if(!(t.qop.indexOf("auth-int")>-1))return i('authenticate() | challenge without Digest qop different than "auth" or "auth-int", authentication aborted'),!1;this.qop="auth-int"}else this.qop=null;return this.method=e.method,this.uri=e.ruri,this.cnonce=o.createRandomToken(12),this.nc+=1,r=Number(this.nc).toString(16),this.ncHex="00000000".substr(0,8-r.length)+r,4294967296===this.nc&&(this.nc=1,this.ncHex="00000001"),this.credentials.password?this.ha1=o.calculateMD5(this.credentials.username+":"+this.realm+":"+this.credentials.password):this.ha1=this.credentials.ha1,"auth"===this.qop?(n=o.calculateMD5(this.method+":"+this.uri),this.response=o.calculateMD5(this.ha1+":"+this.nonce+":"+this.ncHex+":"+this.cnonce+":auth:"+n)):"auth-int"===this.qop?(n=o.calculateMD5(this.method+":"+this.uri+":"+o.calculateMD5(this.body?this.body:"")),this.response=o.calculateMD5(this.ha1+":"+this.nonce+":"+this.ncHex+":"+this.cnonce+":auth-int:"+n)):null===this.qop&&(n=o.calculateMD5(this.method+":"+this.uri),this.response=o.calculateMD5(this.ha1+":"+this.nonce+":"+n)),s("authenticate() | response generated"),!0},r.prototype.toString=function(){var e=[];if(!this.response)throw new Error("response field does not exist, cannot generate Authorization header");return e.push("algorithm="+this.algorithm),e.push('username="'+this.credentials.username+'"'),e.push('realm="'+this.realm+'"'),e.push('nonce="'+this.nonce+'"'),e.push('uri="'+this.uri+'"'),e.push('response="'+this.response+'"'),this.opaque&&e.push('opaque="'+this.opaque+'"'),this.qop&&(e.push("qop="+this.qop),e.push('cnonce="'+this.cnonce+'"'),e.push("nc="+this.ncHex)),"Digest "+e.join(", ")}},{"./Utils":26,debug:29}],5:[function(e,t,n){var r={ConfigurationError:function(){var e=function(e,t){this.code=1,this.name="CONFIGURATION_ERROR",this.parameter=e,this.value=t,this.message=this.value?"Invalid value "+JSON.stringify(this.value)+' for parameter "'+this.parameter+'"':"Missing parameter: "+this.parameter};return e.prototype=new Error,e}(),InvalidStateError:function(){var e=function(e){this.code=2,this.name="INVALID_STATE_ERROR",this.status=e,this.message="Invalid status: "+e};return e.prototype=new Error,e}(),NotSupportedError:function(){var e=function(e){this.code=3,this.name="NOT_SUPPORTED_ERROR",this.message=e};return e.prototype=new Error,e}(),NotReadyError:function(){var e=function(e){this.code=4,this.name="NOT_READY_ERROR",this.message=e};return e.prototype=new Error,e}()};t.exports=r},{}],6:[function(e,t,n){t.exports=function(){function t(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g,escape)+'"'}var n={parse:function(n,r){function s(e){knLn&&(Ln=kn,qn=[]),qn.push(e))}function i(){var e;return"\r\n"===n.substr(kn,2)?(e="\r\n",kn+=2):(e=null,0===Mn&&s('"\\r\\n"')),e}function o(){var e;return/^[0-9]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[0-9]")),e}function a(){var e;return/^[a-zA-Z]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[a-zA-Z]")),e}function l(){var e;return/^[0-9a-fA-F]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[0-9a-fA-F]")),e}function u(){var e;return null===(e=h())&&(e=p()),e}function c(){var e;return/^[\0-\xFF]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[\\0-\\xFF]")),e}function d(){var e;return/^["]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s('["]')),e}function h(){var e;return 32===n.charCodeAt(kn)?(e=" ",kn++):(e=null,0===Mn&&s('" "')),e}function p(){var e;return 9===n.charCodeAt(kn)?(e="\t",kn++):(e=null,0===Mn&&s('"\\t"')),e}function f(){var e;return/^[a-zA-Z0-9]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[a-zA-Z0-9]")),e}function m(){var e;return 59===n.charCodeAt(kn)?(e=";",kn++):(e=null,0===Mn&&s('";"')),null===e&&(47===n.charCodeAt(kn)?(e="/",kn++):(e=null,0===Mn&&s('"/"')),null===e&&(63===n.charCodeAt(kn)?(e="?",kn++):(e=null,0===Mn&&s('"?"')),null===e&&(58===n.charCodeAt(kn)?(e=":",kn++):(e=null,0===Mn&&s('":"')),null===e&&(64===n.charCodeAt(kn)?(e="@",kn++):(e=null,0===Mn&&s('"@"')),null===e&&(38===n.charCodeAt(kn)?(e="&",kn++):(e=null,0===Mn&&s('"&"')),null===e&&(61===n.charCodeAt(kn)?(e="=",kn++):(e=null,0===Mn&&s('"="')),null===e&&(43===n.charCodeAt(kn)?(e="+",kn++):(e=null,0===Mn&&s('"+"')),null===e&&(36===n.charCodeAt(kn)?(e="$",kn++):(e=null,0===Mn&&s('"$"')),null===e&&(44===n.charCodeAt(kn)?(e=",",kn++):(e=null,0===Mn&&s('","'))))))))))),e}function g(){var e;return null===(e=f())&&(e=v()),e}function v(){var e;return 45===n.charCodeAt(kn)?(e="-",kn++):(e=null,0===Mn&&s('"-"')),null===e&&(95===n.charCodeAt(kn)?(e="_",kn++):(e=null,0===Mn&&s('"_"')),null===e&&(46===n.charCodeAt(kn)?(e=".",kn++):(e=null,0===Mn&&s('"."')),null===e&&(33===n.charCodeAt(kn)?(e="!",kn++):(e=null,0===Mn&&s('"!"')),null===e&&(126===n.charCodeAt(kn)?(e="~",kn++):(e=null,0===Mn&&s('"~"')),null===e&&(42===n.charCodeAt(kn)?(e="*",kn++):(e=null,0===Mn&&s('"*"')),null===e&&(39===n.charCodeAt(kn)?(e="'",kn++):(e=null,0===Mn&&s('"\'"')),null===e&&(40===n.charCodeAt(kn)?(e="(",kn++):(e=null,0===Mn&&s('"("')),null===e&&(41===n.charCodeAt(kn)?(e=")",kn++):(e=null,0===Mn&&s('")"')))))))))),e}function T(){var e,t,r,i,o;return i=kn,o=kn,37===n.charCodeAt(kn)?(e="%",kn++):(e=null,0===Mn&&s('"%"')),null!==e&&null!==(t=l())&&null!==(r=l())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=e.join("")),null===e&&(kn=i),e}function _(){var e,t,n,r,s,o;for(r=kn,s=kn,o=kn,e=[],t=u();null!==t;)e.push(t),t=u();if(null!==e&&null!==(t=i())?e=[e,t]:(e=null,kn=o),null!==(e=null!==e?e:"")){if(null!==(n=u()))for(t=[];null!==n;)t.push(n),n=u();else t=null;null!==t?e=[e,t]:(e=null,kn=s)}else e=null,kn=s;return null!==e&&(e=" "),null===e&&(kn=r),e}function C(){var e;return e=_(),e=null!==e?e:""}function S(){var e,t,r,i,o;for(i=kn,o=kn,e=[],null===(t=h())&&(t=p());null!==t;)e.push(t),null===(t=h())&&(t=p());return null!==e?(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=C())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=":"),null===e&&(kn=i),e}function E(){var e,t,r,s,i,o,a;if(i=kn,o=kn,null!==(t=y()))for(e=[];null!==t;)e.push(t),t=y();else e=null;if(null!==e){for(t=[],a=kn,r=[],s=_();null!==s;)r.push(s),s=_();for(null!==r&&null!==(s=y())?r=[r,s]:(r=null,kn=a);null!==r;){for(t.push(r),a=kn,r=[],s=_();null!==s;)r.push(s),s=_();null!==r&&null!==(s=y())?r=[r,s]:(r=null,kn=a)}null!==t?e=[e,t]:(e=null,kn=o)}else e=null,kn=o;return null!==e&&(e=function(e){return n.substring(kn,e)}(i)),null===e&&(kn=i),e}function y(){var e;return/^[!-~]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[!-~]")),null===e&&(e=A()),e}function A(){var e;return/^[\x80-\uFFFF]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[\\x80-\\uFFFF]")),e}function R(){var e;return/^[\x80-\xBF]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[\\x80-\\xBF]")),e}function b(){var e,t,r;if(r=kn,null===(t=f())&&(45===n.charCodeAt(kn)?(t="-",kn++):(t=null,0===Mn&&s('"-"')),null===t&&(46===n.charCodeAt(kn)?(t=".",kn++):(t=null,0===Mn&&s('"."')),null===t&&(33===n.charCodeAt(kn)?(t="!",kn++):(t=null,0===Mn&&s('"!"')),null===t&&(37===n.charCodeAt(kn)?(t="%",kn++):(t=null,0===Mn&&s('"%"')),null===t&&(42===n.charCodeAt(kn)?(t="*",kn++):(t=null,0===Mn&&s('"*"')),null===t&&(95===n.charCodeAt(kn)?(t="_",kn++):(t=null,0===Mn&&s('"_"')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"')),null===t&&(96===n.charCodeAt(kn)?(t="`",kn++):(t=null,0===Mn&&s('"`"')),null===t&&(39===n.charCodeAt(kn)?(t="'",kn++):(t=null,0===Mn&&s('"\'"')),null===t&&(126===n.charCodeAt(kn)?(t="~",kn++):(t=null,0===Mn&&s('"~"')))))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=f())&&(45===n.charCodeAt(kn)?(t="-",kn++):(t=null,0===Mn&&s('"-"')),null===t&&(46===n.charCodeAt(kn)?(t=".",kn++):(t=null,0===Mn&&s('"."')),null===t&&(33===n.charCodeAt(kn)?(t="!",kn++):(t=null,0===Mn&&s('"!"')),null===t&&(37===n.charCodeAt(kn)?(t="%",kn++):(t=null,0===Mn&&s('"%"')),null===t&&(42===n.charCodeAt(kn)?(t="*",kn++):(t=null,0===Mn&&s('"*"')),null===t&&(95===n.charCodeAt(kn)?(t="_",kn++):(t=null,0===Mn&&s('"_"')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"')),null===t&&(96===n.charCodeAt(kn)?(t="`",kn++):(t=null,0===Mn&&s('"`"')),null===t&&(39===n.charCodeAt(kn)?(t="'",kn++):(t=null,0===Mn&&s('"\'"')),null===t&&(126===n.charCodeAt(kn)?(t="~",kn++):(t=null,0===Mn&&s('"~"'))))))))))));else e=null;return null!==e&&(e=function(e){return n.substring(kn,e)}(r)),null===e&&(kn=r),e}function w(){var e,t,r;if(r=kn,null===(t=f())&&(45===n.charCodeAt(kn)?(t="-",kn++):(t=null,0===Mn&&s('"-"')),null===t&&(33===n.charCodeAt(kn)?(t="!",kn++):(t=null,0===Mn&&s('"!"')),null===t&&(37===n.charCodeAt(kn)?(t="%",kn++):(t=null,0===Mn&&s('"%"')),null===t&&(42===n.charCodeAt(kn)?(t="*",kn++):(t=null,0===Mn&&s('"*"')),null===t&&(95===n.charCodeAt(kn)?(t="_",kn++):(t=null,0===Mn&&s('"_"')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"')),null===t&&(96===n.charCodeAt(kn)?(t="`",kn++):(t=null,0===Mn&&s('"`"')),null===t&&(39===n.charCodeAt(kn)?(t="'",kn++):(t=null,0===Mn&&s('"\'"')),null===t&&(126===n.charCodeAt(kn)?(t="~",kn++):(t=null,0===Mn&&s('"~"'))))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=f())&&(45===n.charCodeAt(kn)?(t="-",kn++):(t=null,0===Mn&&s('"-"')),null===t&&(33===n.charCodeAt(kn)?(t="!",kn++):(t=null,0===Mn&&s('"!"')),null===t&&(37===n.charCodeAt(kn)?(t="%",kn++):(t=null,0===Mn&&s('"%"')),null===t&&(42===n.charCodeAt(kn)?(t="*",kn++):(t=null,0===Mn&&s('"*"')),null===t&&(95===n.charCodeAt(kn)?(t="_",kn++):(t=null,0===Mn&&s('"_"')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"')),null===t&&(96===n.charCodeAt(kn)?(t="`",kn++):(t=null,0===Mn&&s('"`"')),null===t&&(39===n.charCodeAt(kn)?(t="'",kn++):(t=null,0===Mn&&s('"\'"')),null===t&&(126===n.charCodeAt(kn)?(t="~",kn++):(t=null,0===Mn&&s('"~"')))))))))));else e=null;return null!==e&&(e=function(e){return n.substring(kn,e)}(r)),null===e&&(kn=r),e}function I(){var e,t,r;if(r=kn,null===(t=f())&&(45===n.charCodeAt(kn)?(t="-",kn++):(t=null,0===Mn&&s('"-"')),null===t&&(46===n.charCodeAt(kn)?(t=".",kn++):(t=null,0===Mn&&s('"."')),null===t&&(33===n.charCodeAt(kn)?(t="!",kn++):(t=null,0===Mn&&s('"!"')),null===t&&(37===n.charCodeAt(kn)?(t="%",kn++):(t=null,0===Mn&&s('"%"')),null===t&&(42===n.charCodeAt(kn)?(t="*",kn++):(t=null,0===Mn&&s('"*"')),null===t&&(95===n.charCodeAt(kn)?(t="_",kn++):(t=null,0===Mn&&s('"_"')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"')),null===t&&(96===n.charCodeAt(kn)?(t="`",kn++):(t=null,0===Mn&&s('"`"')),null===t&&(39===n.charCodeAt(kn)?(t="'",kn++):(t=null,0===Mn&&s('"\'"')),null===t&&(126===n.charCodeAt(kn)?(t="~",kn++):(t=null,0===Mn&&s('"~"')),null===t&&(40===n.charCodeAt(kn)?(t="(",kn++):(t=null,0===Mn&&s('"("')),null===t&&(41===n.charCodeAt(kn)?(t=")",kn++):(t=null,0===Mn&&s('")"')),null===t&&(60===n.charCodeAt(kn)?(t="<",kn++):(t=null,0===Mn&&s('"<"')),null===t&&(62===n.charCodeAt(kn)?(t=">",kn++):(t=null,0===Mn&&s('">"')),null===t&&(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null===t&&(92===n.charCodeAt(kn)?(t="\\",kn++):(t=null,0===Mn&&s('"\\\\"')),null===t&&null===(t=d())&&(47===n.charCodeAt(kn)?(t="/",kn++):(t=null,0===Mn&&s('"/"')),null===t&&(91===n.charCodeAt(kn)?(t="[",kn++):(t=null,0===Mn&&s('"["')),null===t&&(93===n.charCodeAt(kn)?(t="]",kn++):(t=null,0===Mn&&s('"]"')),null===t&&(63===n.charCodeAt(kn)?(t="?",kn++):(t=null,0===Mn&&s('"?"')),null===t&&(123===n.charCodeAt(kn)?(t="{",kn++):(t=null,0===Mn&&s('"{"')),null===t&&(125===n.charCodeAt(kn)?(t="}",kn++):(t=null,0===Mn&&s('"}"')))))))))))))))))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=f())&&(45===n.charCodeAt(kn)?(t="-",kn++):(t=null,0===Mn&&s('"-"')),null===t&&(46===n.charCodeAt(kn)?(t=".",kn++):(t=null,0===Mn&&s('"."')),null===t&&(33===n.charCodeAt(kn)?(t="!",kn++):(t=null,0===Mn&&s('"!"')),null===t&&(37===n.charCodeAt(kn)?(t="%",kn++):(t=null,0===Mn&&s('"%"')),null===t&&(42===n.charCodeAt(kn)?(t="*",kn++):(t=null,0===Mn&&s('"*"')),null===t&&(95===n.charCodeAt(kn)?(t="_",kn++):(t=null,0===Mn&&s('"_"')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"')),null===t&&(96===n.charCodeAt(kn)?(t="`",kn++):(t=null,0===Mn&&s('"`"')),null===t&&(39===n.charCodeAt(kn)?(t="'",kn++):(t=null,0===Mn&&s('"\'"')),null===t&&(126===n.charCodeAt(kn)?(t="~",kn++):(t=null,0===Mn&&s('"~"')),null===t&&(40===n.charCodeAt(kn)?(t="(",kn++):(t=null,0===Mn&&s('"("')),null===t&&(41===n.charCodeAt(kn)?(t=")",kn++):(t=null,0===Mn&&s('")"')),null===t&&(60===n.charCodeAt(kn)?(t="<",kn++):(t=null,0===Mn&&s('"<"')),null===t&&(62===n.charCodeAt(kn)?(t=">",kn++):(t=null,0===Mn&&s('">"')),null===t&&(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null===t&&(92===n.charCodeAt(kn)?(t="\\",kn++):(t=null,0===Mn&&s('"\\\\"')),null===t&&null===(t=d())&&(47===n.charCodeAt(kn)?(t="/",kn++):(t=null,0===Mn&&s('"/"')),null===t&&(91===n.charCodeAt(kn)?(t="[",kn++):(t=null,0===Mn&&s('"["')),null===t&&(93===n.charCodeAt(kn)?(t="]",kn++):(t=null,0===Mn&&s('"]"')),null===t&&(63===n.charCodeAt(kn)?(t="?",kn++):(t=null,0===Mn&&s('"?"')),null===t&&(123===n.charCodeAt(kn)?(t="{",kn++):(t=null,0===Mn&&s('"{"')),null===t&&(125===n.charCodeAt(kn)?(t="}",kn++):(t=null,0===Mn&&s('"}"'))))))))))))))))))))))));else e=null;return null!==e&&(e=function(e){return n.substring(kn,e)}(r)),null===e&&(kn=r),e}function O(){var e,t,r,i,o;return i=kn,o=kn,null!==(e=C())?(42===n.charCodeAt(kn)?(t="*",kn++):(t=null,0===Mn&&s('"*"')),null!==t&&null!==(r=C())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e="*"),null===e&&(kn=i),e}function x(){var e,t,r,i,o;return i=kn,o=kn,null!==(e=C())?(47===n.charCodeAt(kn)?(t="/",kn++):(t=null,0===Mn&&s('"/"')),null!==t&&null!==(r=C())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e="/"),null===e&&(kn=i),e}function N(){var e,t,r,i,o;return i=kn,o=kn,null!==(e=C())?(61===n.charCodeAt(kn)?(t="=",kn++):(t=null,0===Mn&&s('"="')),null!==t&&null!==(r=C())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e="="),null===e&&(kn=i),e}function P(){var e,t,r,i,o;return i=kn,o=kn,null!==(e=C())?(40===n.charCodeAt(kn)?(t="(",kn++):(t=null,0===Mn&&s('"("')),null!==t&&null!==(r=C())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e="("),null===e&&(kn=i),e}function D(){var e,t,r,i,o;return i=kn,o=kn,null!==(e=C())?(41===n.charCodeAt(kn)?(t=")",kn++):(t=null,0===Mn&&s('")"')),null!==t&&null!==(r=C())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=")"),null===e&&(kn=i),e}function U(){var e,t,r,i;return r=kn,i=kn,62===n.charCodeAt(kn)?(e=">",kn++):(e=null,0===Mn&&s('">"')),null!==e&&null!==(t=C())?e=[e,t]:(e=null,kn=i),null!==e&&(e=">"),null===e&&(kn=r),e}function k(){var e,t,r,i;return r=kn,i=kn,null!==(e=C())?(60===n.charCodeAt(kn)?(t="<",kn++):(t=null,0===Mn&&s('"<"')),null!==t?e=[e,t]:(e=null,kn=i)):(e=null,kn=i),null!==e&&(e="<"),null===e&&(kn=r),e}function M(){var e,t,r,i,o;return i=kn,o=kn,null!==(e=C())?(44===n.charCodeAt(kn)?(t=",",kn++):(t=null,0===Mn&&s('","')),null!==t&&null!==(r=C())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=","),null===e&&(kn=i),e}function L(){var e,t,r,i,o;return i=kn,o=kn,null!==(e=C())?(59===n.charCodeAt(kn)?(t=";",kn++):(t=null,0===Mn&&s('";"')),null!==t&&null!==(r=C())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=";"),null===e&&(kn=i),e}function q(){var e,t,r,i,o;return i=kn,o=kn,null!==(e=C())?(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=C())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=":"),null===e&&(kn=i),e}function H(){var e,t,n,r;return n=kn,r=kn,null!==(e=C())&&null!==(t=d())?e=[e,t]:(e=null,kn=r),null!==e&&(e='"'),null===e&&(kn=n),e}function F(){var e,t,n,r;return n=kn,r=kn,null!==(e=d())&&null!==(t=C())?e=[e,t]:(e=null,kn=r),null!==e&&(e='"'),null===e&&(kn=n),e}function j(){var e,t,n,r;if(r=kn,null!==(e=P())){for(t=[],null===(n=G())&&null===(n=z())&&(n=j());null!==n;)t.push(n),null===(n=G())&&null===(n=z())&&(n=j());null!==t&&null!==(n=D())?e=[e,t,n]:(e=null,kn=r)}else e=null,kn=r;return e}function G(){var e;return/^[!-']/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[!-']")),null===e&&(/^[*-[]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[*-[]")),null===e&&(/^[\]-~]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[\\]-~]")),null===e&&null===(e=A())&&(e=_()))),e}function B(){var e,t,r,s,i,o;if(i=kn,o=kn,null!==(e=C()))if(null!==(t=d())){for(r=[],null===(s=V())&&(s=z());null!==s;)r.push(s),null===(s=V())&&(s=z());null!==r&&null!==(s=d())?e=[e,t,r,s]:(e=null,kn=o)}else e=null,kn=o;else e=null,kn=o;return null!==e&&(e=function(e){return n.substring(kn,e)}(i)),null===e&&(kn=i),e}function W(){var e,t,r,s,i,o;if(i=kn,o=kn,null!==(e=C()))if(null!==(t=d())){for(r=[],null===(s=V())&&(s=z());null!==s;)r.push(s),null===(s=V())&&(s=z());null!==r&&null!==(s=d())?e=[e,t,r,s]:(e=null,kn=o)}else e=null,kn=o;else e=null,kn=o;return null!==e&&(e=function(e){return n.substring(kn-1,e+1)}(i)),null===e&&(kn=i),e}function V(){var e;return null===(e=_())&&(33===n.charCodeAt(kn)?(e="!",kn++):(e=null,0===Mn&&s('"!"')),null===e&&(/^[#-[]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[#-[]")),null===e&&(/^[\]-~]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[\\]-~]")),null===e&&(e=A())))),e}function z(){var e,t,r;return r=kn,92===n.charCodeAt(kn)?(e="\\",kn++):(e=null,0===Mn&&s('"\\\\"')),null!==e?(/^[\0-\t]/.test(n.charAt(kn))?(t=n.charAt(kn),kn++):(t=null,0===Mn&&s("[\\0-\\t]")),null===t&&(/^[\x0B-\f]/.test(n.charAt(kn))?(t=n.charAt(kn),kn++):(t=null,0===Mn&&s("[\\x0B-\\f]")),null===t&&(/^[\x0E-]/.test(n.charAt(kn))?(t=n.charAt(kn),kn++):(t=null,0===Mn&&s("[\\x0E-]")))),null!==t?e=[e,t]:(e=null,kn=r)):(e=null,kn=r),e}function J(){var e,t,r,i,o,a;return o=kn,a=kn,null!==(e=Y())?(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=null!==(r=Q())?r:"")&&null!==(i=ne())?e=[e,t,r,i]:(e=null,kn=a)):(e=null,kn=a),null!==e&&(e=function(e){try{jn.uri=new Hn(jn.scheme,jn.user,jn.host,jn.port),delete jn.scheme,delete jn.user,delete jn.host,delete jn.host_type,delete jn.port}catch(e){jn=-1}}()),null===e&&(kn=o),e}function K(){var e,t,i,o,a,l,u,c;return u=kn,c=kn,null!==(e=Y())?(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(i=null!==(i=Q())?i:"")&&null!==(o=ne())&&null!==(a=fe())&&null!==(l=null!==(l=we())?l:"")?e=[e,t,i,o,a,l]:(e=null,kn=c)):(e=null,kn=c),null!==e&&(e=function(e){try{jn.uri=new Hn(jn.scheme,jn.user,jn.host,jn.port,jn.uri_params,jn.uri_headers),delete jn.scheme,delete jn.user,delete jn.host,delete jn.host_type,delete jn.port,delete jn.uri_params,"SIP_URI"===r&&(jn=jn.uri)}catch(e){jn=-1}}()),null===e&&(kn=u),e}function Y(){var e;return null===(e=$())&&(e=X()),e}function $(){var e,t;return t=kn,"sips"===n.substr(kn,4).toLowerCase()?(e=n.substr(kn,4),kn+=4):(e=null,0===Mn&&s('"sips"')),null!==e&&(e=function(e,t){jn.scheme=t.toLowerCase()}(0,e)),null===e&&(kn=t),e}function X(){var e,t;return t=kn,"sip"===n.substr(kn,3).toLowerCase()?(e=n.substr(kn,3),kn+=3):(e=null,0===Mn&&s('"sip"')),null!==e&&(e=function(e,t){jn.scheme=t.toLowerCase()}(0,e)),null===e&&(kn=t),e}function Q(){var e,t,r,i,o,a;return i=kn,o=kn,null!==(e=Z())?(a=kn,58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=te())?t=[t,r]:(t=null,kn=a),null!==(t=null!==t?t:"")?(64===n.charCodeAt(kn)?(r="@",kn++):(r=null,0===Mn&&s('"@"')),null!==r?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e){jn.user=decodeURIComponent(n.substring(kn-1,e))}(i)),null===e&&(kn=i),e}function Z(){var e,t;if(null===(t=g())&&null===(t=T())&&(t=ee()),null!==t)for(e=[];null!==t;)e.push(t),null===(t=g())&&null===(t=T())&&(t=ee());else e=null;return e}function ee(){var e;return 38===n.charCodeAt(kn)?(e="&",kn++):(e=null,0===Mn&&s('"&"')),null===e&&(61===n.charCodeAt(kn)?(e="=",kn++):(e=null,0===Mn&&s('"="')),null===e&&(43===n.charCodeAt(kn)?(e="+",kn++):(e=null,0===Mn&&s('"+"')),null===e&&(36===n.charCodeAt(kn)?(e="$",kn++):(e=null,0===Mn&&s('"$"')),null===e&&(44===n.charCodeAt(kn)?(e=",",kn++):(e=null,0===Mn&&s('","')),null===e&&(59===n.charCodeAt(kn)?(e=";",kn++):(e=null,0===Mn&&s('";"')),null===e&&(63===n.charCodeAt(kn)?(e="?",kn++):(e=null,0===Mn&&s('"?"')),null===e&&(47===n.charCodeAt(kn)?(e="/",kn++):(e=null,0===Mn&&s('"/"'))))))))),e}function te(){var e,t,r;for(r=kn,e=[],null===(t=g())&&null===(t=T())&&(38===n.charCodeAt(kn)?(t="&",kn++):(t=null,0===Mn&&s('"&"')),null===t&&(61===n.charCodeAt(kn)?(t="=",kn++):(t=null,0===Mn&&s('"="')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"')),null===t&&(36===n.charCodeAt(kn)?(t="$",kn++):(t=null,0===Mn&&s('"$"')),null===t&&(44===n.charCodeAt(kn)?(t=",",kn++):(t=null,0===Mn&&s('","')))))));null!==t;)e.push(t),null===(t=g())&&null===(t=T())&&(38===n.charCodeAt(kn)?(t="&",kn++):(t=null,0===Mn&&s('"&"')),null===t&&(61===n.charCodeAt(kn)?(t="=",kn++):(t=null,0===Mn&&s('"="')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"')),null===t&&(36===n.charCodeAt(kn)?(t="$",kn++):(t=null,0===Mn&&s('"$"')),null===t&&(44===n.charCodeAt(kn)?(t=",",kn++):(t=null,0===Mn&&s('","')))))));return null!==e&&(e=function(e){jn.password=n.substring(kn,e)}(r)),null===e&&(kn=r),e}function ne(){var e,t,r,i,o;return i=kn,null!==(e=re())?(o=kn,58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=pe())?t=[t,r]:(t=null,kn=o),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=i)):(e=null,kn=i),e}function re(){var e,t;return t=kn,null===(e=se())&&null===(e=de())&&(e=ae()),null!==e&&(e=function(e){return jn.host=n.substring(kn,e).toLowerCase(),jn.host}(t)),null===e&&(kn=t),e}function se(){var e,t,r,i,o,a;for(i=kn,o=kn,e=[],a=kn,null!==(t=ie())?(46===n.charCodeAt(kn)?(r=".",kn++):(r=null,0===Mn&&s('"."')),null!==r?t=[t,r]:(t=null,kn=a)):(t=null,kn=a);null!==t;)e.push(t),a=kn,null!==(t=ie())?(46===n.charCodeAt(kn)?(r=".",kn++):(r=null,0===Mn&&s('"."')),null!==r?t=[t,r]:(t=null,kn=a)):(t=null,kn=a);return null!==e&&null!==(t=oe())?(46===n.charCodeAt(kn)?(r=".",kn++):(r=null,0===Mn&&s('"."')),null!==(r=null!==r?r:"")?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e){return jn.host_type="domain",n.substring(kn,e)}(i)),null===e&&(kn=i),e}function ie(){var e,t,r,i;if(i=kn,null!==(e=f())){for(t=[],null===(r=f())&&(45===n.charCodeAt(kn)?(r="-",kn++):(r=null,0===Mn&&s('"-"')),null===r&&(95===n.charCodeAt(kn)?(r="_",kn++):(r=null,0===Mn&&s('"_"'))));null!==r;)t.push(r),null===(r=f())&&(45===n.charCodeAt(kn)?(r="-",kn++):(r=null,0===Mn&&s('"-"')),null===r&&(95===n.charCodeAt(kn)?(r="_",kn++):(r=null,0===Mn&&s('"_"'))));null!==t?e=[e,t]:(e=null,kn=i)}else e=null,kn=i;return e}function oe(){var e,t,r,i;if(i=kn,null!==(e=a())){for(t=[],null===(r=f())&&(45===n.charCodeAt(kn)?(r="-",kn++):(r=null,0===Mn&&s('"-"')),null===r&&(95===n.charCodeAt(kn)?(r="_",kn++):(r=null,0===Mn&&s('"_"'))));null!==r;)t.push(r),null===(r=f())&&(45===n.charCodeAt(kn)?(r="-",kn++):(r=null,0===Mn&&s('"-"')),null===r&&(95===n.charCodeAt(kn)?(r="_",kn++):(r=null,0===Mn&&s('"_"'))));null!==t?e=[e,t]:(e=null,kn=i)}else e=null,kn=i;return e}function ae(){var e,t,r,i,o;return i=kn,o=kn,91===n.charCodeAt(kn)?(e="[",kn++):(e=null,0===Mn&&s('"["')),null!==e&&null!==(t=le())?(93===n.charCodeAt(kn)?(r="]",kn++):(r=null,0===Mn&&s('"]"')),null!==r?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e){return jn.host_type="IPv6",n.substring(kn,e)}(i)),null===e&&(kn=i),e}function le(){var e,t,r,i,o,a,l,u,c,d,h,p,f,m,g,v;return m=kn,g=kn,null!==(e=ue())?(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=ue())?(58===n.charCodeAt(kn)?(i=":",kn++):(i=null,0===Mn&&s('":"')),null!==i&&null!==(o=ue())?(58===n.charCodeAt(kn)?(a=":",kn++):(a=null,0===Mn&&s('":"')),null!==a&&null!==(l=ue())?(58===n.charCodeAt(kn)?(u=":",kn++):(u=null,0===Mn&&s('":"')),null!==u&&null!==(c=ue())?(58===n.charCodeAt(kn)?(d=":",kn++):(d=null,0===Mn&&s('":"')),null!==d&&null!==(h=ue())?(58===n.charCodeAt(kn)?(p=":",kn++):(p=null,0===Mn&&s('":"')),null!==p&&null!==(f=ce())?e=[e,t,r,i,o,a,l,u,c,d,h,p,f]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,"::"===n.substr(kn,2)?(e="::",kn+=2):(e=null,0===Mn&&s('"::"')),null!==e&&null!==(t=ue())?(58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ue())?(58===n.charCodeAt(kn)?(o=":",kn++):(o=null,0===Mn&&s('":"')),null!==o&&null!==(a=ue())?(58===n.charCodeAt(kn)?(l=":",kn++):(l=null,0===Mn&&s('":"')),null!==l&&null!==(u=ue())?(58===n.charCodeAt(kn)?(c=":",kn++):(c=null,0===Mn&&s('":"')),null!==c&&null!==(d=ue())?(58===n.charCodeAt(kn)?(h=":",kn++):(h=null,0===Mn&&s('":"')),null!==h&&null!==(p=ce())?e=[e,t,r,i,o,a,l,u,c,d,h,p]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,"::"===n.substr(kn,2)?(e="::",kn+=2):(e=null,0===Mn&&s('"::"')),null!==e&&null!==(t=ue())?(58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ue())?(58===n.charCodeAt(kn)?(o=":",kn++):(o=null,0===Mn&&s('":"')),null!==o&&null!==(a=ue())?(58===n.charCodeAt(kn)?(l=":",kn++):(l=null,0===Mn&&s('":"')),null!==l&&null!==(u=ue())?(58===n.charCodeAt(kn)?(c=":",kn++):(c=null,0===Mn&&s('":"')),null!==c&&null!==(d=ce())?e=[e,t,r,i,o,a,l,u,c,d]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,"::"===n.substr(kn,2)?(e="::",kn+=2):(e=null,0===Mn&&s('"::"')),null!==e&&null!==(t=ue())?(58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ue())?(58===n.charCodeAt(kn)?(o=":",kn++):(o=null,0===Mn&&s('":"')),null!==o&&null!==(a=ue())?(58===n.charCodeAt(kn)?(l=":",kn++):(l=null,0===Mn&&s('":"')),null!==l&&null!==(u=ce())?e=[e,t,r,i,o,a,l,u]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,"::"===n.substr(kn,2)?(e="::",kn+=2):(e=null,0===Mn&&s('"::"')),null!==e&&null!==(t=ue())?(58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ue())?(58===n.charCodeAt(kn)?(o=":",kn++):(o=null,0===Mn&&s('":"')),null!==o&&null!==(a=ce())?e=[e,t,r,i,o,a]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,"::"===n.substr(kn,2)?(e="::",kn+=2):(e=null,0===Mn&&s('"::"')),null!==e&&null!==(t=ue())?(58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ce())?e=[e,t,r,i]:(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,"::"===n.substr(kn,2)?(e="::",kn+=2):(e=null,0===Mn&&s('"::"')),null!==e&&null!==(t=ce())?e=[e,t]:(e=null,kn=g),null===e&&(g=kn,"::"===n.substr(kn,2)?(e="::",kn+=2):(e=null,0===Mn&&s('"::"')),null!==e&&null!==(t=ue())?e=[e,t]:(e=null,kn=g),null===e&&(g=kn,null!==(e=ue())?("::"===n.substr(kn,2)?(t="::",kn+=2):(t=null,0===Mn&&s('"::"')),null!==t&&null!==(r=ue())?(58===n.charCodeAt(kn)?(i=":",kn++):(i=null,0===Mn&&s('":"')),null!==i&&null!==(o=ue())?(58===n.charCodeAt(kn)?(a=":",kn++):(a=null,0===Mn&&s('":"')),null!==a&&null!==(l=ue())?(58===n.charCodeAt(kn)?(u=":",kn++):(u=null,0===Mn&&s('":"')),null!==u&&null!==(c=ue())?(58===n.charCodeAt(kn)?(d=":",kn++):(d=null,0===Mn&&s('":"')),null!==d&&null!==(h=ce())?e=[e,t,r,i,o,a,l,u,c,d,h]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,null!==(e=ue())?(v=kn,58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=ue())?t=[t,r]:(t=null,kn=v),null!==(t=null!==t?t:"")?("::"===n.substr(kn,2)?(r="::",kn+=2):(r=null,0===Mn&&s('"::"')),null!==r&&null!==(i=ue())?(58===n.charCodeAt(kn)?(o=":",kn++):(o=null,0===Mn&&s('":"')),null!==o&&null!==(a=ue())?(58===n.charCodeAt(kn)?(l=":",kn++):(l=null,0===Mn&&s('":"')),null!==l&&null!==(u=ue())?(58===n.charCodeAt(kn)?(c=":",kn++):(c=null,0===Mn&&s('":"')),null!==c&&null!==(d=ce())?e=[e,t,r,i,o,a,l,u,c,d]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,null!==(e=ue())?(v=kn,58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=ue())?t=[t,r]:(t=null,kn=v),null!==(t=null!==t?t:"")?(v=kn,58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ue())?r=[r,i]:(r=null,kn=v),null!==(r=null!==r?r:"")?("::"===n.substr(kn,2)?(i="::",kn+=2):(i=null,0===Mn&&s('"::"')),null!==i&&null!==(o=ue())?(58===n.charCodeAt(kn)?(a=":",kn++):(a=null,0===Mn&&s('":"')),null!==a&&null!==(l=ue())?(58===n.charCodeAt(kn)?(u=":",kn++):(u=null,0===Mn&&s('":"')),null!==u&&null!==(c=ce())?e=[e,t,r,i,o,a,l,u,c]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,null!==(e=ue())?(v=kn,58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=ue())?t=[t,r]:(t=null,kn=v),null!==(t=null!==t?t:"")?(v=kn,58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ue())?r=[r,i]:(r=null,kn=v),null!==(r=null!==r?r:"")?(v=kn,58===n.charCodeAt(kn)?(i=":",kn++):(i=null,0===Mn&&s('":"')),null!==i&&null!==(o=ue())?i=[i,o]:(i=null,kn=v),null!==(i=null!==i?i:"")?("::"===n.substr(kn,2)?(o="::",kn+=2):(o=null,0===Mn&&s('"::"')),null!==o&&null!==(a=ue())?(58===n.charCodeAt(kn)?(l=":",kn++):(l=null,0===Mn&&s('":"')),null!==l&&null!==(u=ce())?e=[e,t,r,i,o,a,l,u]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,null!==(e=ue())?(v=kn,58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=ue())?t=[t,r]:(t=null,kn=v),null!==(t=null!==t?t:"")?(v=kn,58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ue())?r=[r,i]:(r=null,kn=v),null!==(r=null!==r?r:"")?(v=kn,58===n.charCodeAt(kn)?(i=":",kn++):(i=null,0===Mn&&s('":"')),null!==i&&null!==(o=ue())?i=[i,o]:(i=null,kn=v),null!==(i=null!==i?i:"")?(v=kn,58===n.charCodeAt(kn)?(o=":",kn++):(o=null,0===Mn&&s('":"')),null!==o&&null!==(a=ue())?o=[o,a]:(o=null,kn=v),null!==(o=null!==o?o:"")?("::"===n.substr(kn,2)?(a="::",kn+=2):(a=null,0===Mn&&s('"::"')),null!==a&&null!==(l=ce())?e=[e,t,r,i,o,a,l]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,null!==(e=ue())?(v=kn,58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=ue())?t=[t,r]:(t=null,kn=v),null!==(t=null!==t?t:"")?(v=kn,58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ue())?r=[r,i]:(r=null,kn=v),null!==(r=null!==r?r:"")?(v=kn,58===n.charCodeAt(kn)?(i=":",kn++):(i=null,0===Mn&&s('":"')),null!==i&&null!==(o=ue())?i=[i,o]:(i=null,kn=v),null!==(i=null!==i?i:"")?(v=kn,58===n.charCodeAt(kn)?(o=":",kn++):(o=null,0===Mn&&s('":"')),null!==o&&null!==(a=ue())?o=[o,a]:(o=null,kn=v),null!==(o=null!==o?o:"")?(v=kn,58===n.charCodeAt(kn)?(a=":",kn++):(a=null,0===Mn&&s('":"')),null!==a&&null!==(l=ue())?a=[a,l]:(a=null,kn=v),null!==(a=null!==a?a:"")?("::"===n.substr(kn,2)?(l="::",kn+=2):(l=null,0===Mn&&s('"::"')),null!==l&&null!==(u=ue())?e=[e,t,r,i,o,a,l,u]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g),null===e&&(g=kn,null!==(e=ue())?(v=kn,58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=ue())?t=[t,r]:(t=null,kn=v),null!==(t=null!==t?t:"")?(v=kn,58===n.charCodeAt(kn)?(r=":",kn++):(r=null,0===Mn&&s('":"')),null!==r&&null!==(i=ue())?r=[r,i]:(r=null,kn=v),null!==(r=null!==r?r:"")?(v=kn,58===n.charCodeAt(kn)?(i=":",kn++):(i=null,0===Mn&&s('":"')),null!==i&&null!==(o=ue())?i=[i,o]:(i=null,kn=v),null!==(i=null!==i?i:"")?(v=kn,58===n.charCodeAt(kn)?(o=":",kn++):(o=null,0===Mn&&s('":"')),null!==o&&null!==(a=ue())?o=[o,a]:(o=null,kn=v),null!==(o=null!==o?o:"")?(v=kn,58===n.charCodeAt(kn)?(a=":",kn++):(a=null,0===Mn&&s('":"')),null!==a&&null!==(l=ue())?a=[a,l]:(a=null,kn=v),null!==(a=null!==a?a:"")?(v=kn,58===n.charCodeAt(kn)?(l=":",kn++):(l=null,0===Mn&&s('":"')),null!==l&&null!==(u=ue())?l=[l,u]:(l=null,kn=v),null!==(l=null!==l?l:"")?("::"===n.substr(kn,2)?(u="::",kn+=2):(u=null,0===Mn&&s('"::"')),null!==u?e=[e,t,r,i,o,a,l,u]:(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g)):(e=null,kn=g))))))))))))))),null!==e&&(e=function(e){return jn.host_type="IPv6",n.substring(kn,e)}(m)),null===e&&(kn=m),e}function ue(){var e,t,n,r,s;return s=kn,null!==(e=l())&&null!==(t=null!==(t=l())?t:"")&&null!==(n=null!==(n=l())?n:"")&&null!==(r=null!==(r=l())?r:"")?e=[e,t,n,r]:(e=null,kn=s),e}function ce(){var e,t,r,i;return i=kn,null!==(e=ue())?(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t&&null!==(r=ue())?e=[e,t,r]:(e=null,kn=i)):(e=null,kn=i),null===e&&(e=de()),e}function de(){var e,t,r,i,o,a,l,u,c;return u=kn,c=kn,null!==(e=he())?(46===n.charCodeAt(kn)?(t=".",kn++):(t=null,0===Mn&&s('"."')),null!==t&&null!==(r=he())?(46===n.charCodeAt(kn)?(i=".",kn++):(i=null,0===Mn&&s('"."')),null!==i&&null!==(o=he())?(46===n.charCodeAt(kn)?(a=".",kn++):(a=null,0===Mn&&s('"."')),null!==a&&null!==(l=he())?e=[e,t,r,i,o,a,l]:(e=null,kn=c)):(e=null,kn=c)):(e=null,kn=c)):(e=null,kn=c),null!==e&&(e=function(e){return jn.host_type="IPv4",n.substring(kn,e)}(u)),null===e&&(kn=u),e}function he(){var e,t,r,i;return i=kn,"25"===n.substr(kn,2)?(e="25",kn+=2):(e=null,0===Mn&&s('"25"')),null!==e?(/^[0-5]/.test(n.charAt(kn))?(t=n.charAt(kn),kn++):(t=null,0===Mn&&s("[0-5]")),null!==t?e=[e,t]:(e=null,kn=i)):(e=null,kn=i),null===e&&(i=kn,50===n.charCodeAt(kn)?(e="2",kn++):(e=null,0===Mn&&s('"2"')),null!==e?(/^[0-4]/.test(n.charAt(kn))?(t=n.charAt(kn),kn++):(t=null,0===Mn&&s("[0-4]")),null!==t&&null!==(r=o())?e=[e,t,r]:(e=null,kn=i)):(e=null,kn=i),null===e&&(i=kn,49===n.charCodeAt(kn)?(e="1",kn++):(e=null,0===Mn&&s('"1"')),null!==e&&null!==(t=o())&&null!==(r=o())?e=[e,t,r]:(e=null,kn=i),null===e&&(i=kn,/^[1-9]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[1-9]")),null!==e&&null!==(t=o())?e=[e,t]:(e=null,kn=i),null===e&&(e=o())))),e}function pe(){var e,t,n,r,s,i,a;return i=kn,a=kn,e=o(),null!==(e=null!==e?e:"")&&null!==(t=null!==(t=o())?t:"")&&null!==(n=null!==(n=o())?n:"")&&null!==(r=null!==(r=o())?r:"")&&null!==(s=null!==(s=o())?s:"")?e=[e,t,n,r,s]:(e=null,kn=a),null!==e&&(e=function(e,t){return t=parseInt(t.join("")),jn.port=t,t}(0,e)),null===e&&(kn=i),e}function fe(){var e,t,r,i;for(e=[],i=kn,59===n.charCodeAt(kn)?(t=";",kn++):(t=null,0===Mn&&s('";"')),null!==t&&null!==(r=me())?t=[t,r]:(t=null,kn=i);null!==t;)e.push(t),i=kn,59===n.charCodeAt(kn)?(t=";",kn++):(t=null,0===Mn&&s('";"')),null!==t&&null!==(r=me())?t=[t,r]:(t=null,kn=i);return e}function me(){var e;return null===(e=ge())&&null===(e=ve())&&null===(e=Te())&&null===(e=_e())&&null===(e=Ce())&&null===(e=Se())&&(e=Ee()),e}function ge(){var e,t,r,i;return r=kn,i=kn,"transport="===n.substr(kn,10).toLowerCase()?(e=n.substr(kn,10),kn+=10):(e=null,0===Mn&&s('"transport="')),null!==e?("udp"===n.substr(kn,3).toLowerCase()?(t=n.substr(kn,3),kn+=3):(t=null,0===Mn&&s('"udp"')),null===t&&("tcp"===n.substr(kn,3).toLowerCase()?(t=n.substr(kn,3),kn+=3):(t=null,0===Mn&&s('"tcp"')),null===t&&("sctp"===n.substr(kn,4).toLowerCase()?(t=n.substr(kn,4),kn+=4):(t=null,0===Mn&&s('"sctp"')),null===t&&("tls"===n.substr(kn,3).toLowerCase()?(t=n.substr(kn,3),kn+=3):(t=null,0===Mn&&s('"tls"')),null===t&&(t=b())))),null!==t?e=[e,t]:(e=null,kn=i)):(e=null,kn=i),null!==e&&(e=function(e,t){jn.uri_params||(jn.uri_params={}),jn.uri_params.transport=t.toLowerCase()}(0,e[1])),null===e&&(kn=r),e}function ve(){var e,t,r,i;return r=kn,i=kn,"user="===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"user="')),null!==e?("phone"===n.substr(kn,5).toLowerCase()?(t=n.substr(kn,5),kn+=5):(t=null,0===Mn&&s('"phone"')),null===t&&("ip"===n.substr(kn,2).toLowerCase()?(t=n.substr(kn,2),kn+=2):(t=null,0===Mn&&s('"ip"')),null===t&&(t=b())),null!==t?e=[e,t]:(e=null,kn=i)):(e=null,kn=i),null!==e&&(e=function(e,t){jn.uri_params||(jn.uri_params={}),jn.uri_params.user=t.toLowerCase()}(0,e[1])),null===e&&(kn=r),e}function Te(){var e,t,r,i;return r=kn,i=kn,"method="===n.substr(kn,7).toLowerCase()?(e=n.substr(kn,7),kn+=7):(e=null,0===Mn&&s('"method="')),null!==e&&null!==(t=ot())?e=[e,t]:(e=null,kn=i),null!==e&&(e=function(e,t){jn.uri_params||(jn.uri_params={}),jn.uri_params.method=t}(0,e[1])),null===e&&(kn=r),e}function _e(){var e,t,r,i;return r=kn,i=kn,"ttl="===n.substr(kn,4).toLowerCase()?(e=n.substr(kn,4),kn+=4):(e=null,0===Mn&&s('"ttl="')),null!==e&&null!==(t=Cn())?e=[e,t]:(e=null,kn=i),null!==e&&(e=function(e,t){jn.params||(jn.params={}),jn.params.ttl=t}(0,e[1])),null===e&&(kn=r),e}function Ce(){var e,t,r,i;return r=kn,i=kn,"maddr="===n.substr(kn,6).toLowerCase()?(e=n.substr(kn,6),kn+=6):(e=null,0===Mn&&s('"maddr="')),null!==e&&null!==(t=re())?e=[e,t]:(e=null,kn=i),null!==e&&(e=function(e,t){jn.uri_params||(jn.uri_params={}),jn.uri_params.maddr=t}(0,e[1])),null===e&&(kn=r),e}function Se(){var e,t,r,i,o,a;return i=kn,o=kn,"lr"===n.substr(kn,2).toLowerCase()?(e=n.substr(kn,2),kn+=2):(e=null,0===Mn&&s('"lr"')),null!==e?(a=kn,61===n.charCodeAt(kn)?(t="=",kn++):(t=null,0===Mn&&s('"="')),null!==t&&null!==(r=b())?t=[t,r]:(t=null,kn=a),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(jn.uri_params||(jn.uri_params={}),e=void(jn.uri_params.lr=void 0)),null===e&&(kn=i),e}function Ee(){var e,t,r,i,o,a;return i=kn,o=kn,null!==(e=ye())?(a=kn,61===n.charCodeAt(kn)?(t="=",kn++):(t=null,0===Mn&&s('"="')),null!==t&&null!==(r=Ae())?t=[t,r]:(t=null,kn=a),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e,t,n){jn.uri_params||(jn.uri_params={}),n=void 0===n?void 0:n[1],jn.uri_params[t.toLowerCase()]=n}(0,e[0],e[1])),null===e&&(kn=i),e}function ye(){var e,t,n;if(n=kn,null!==(t=Re()))for(e=[];null!==t;)e.push(t),t=Re();else e=null;return null!==e&&(e=e.join("")),null===e&&(kn=n),e}function Ae(){var e,t,n;if(n=kn,null!==(t=Re()))for(e=[];null!==t;)e.push(t),t=Re();else e=null;return null!==e&&(e=e.join("")),null===e&&(kn=n),e}function Re(){var e;return null===(e=be())&&null===(e=g())&&(e=T()),e}function be(){var e;return 91===n.charCodeAt(kn)?(e="[",kn++):(e=null,0===Mn&&s('"["')),null===e&&(93===n.charCodeAt(kn)?(e="]",kn++):(e=null,0===Mn&&s('"]"')),null===e&&(47===n.charCodeAt(kn)?(e="/",kn++):(e=null,0===Mn&&s('"/"')),null===e&&(58===n.charCodeAt(kn)?(e=":",kn++):(e=null,0===Mn&&s('":"')),null===e&&(38===n.charCodeAt(kn)?(e="&",kn++):(e=null,0===Mn&&s('"&"')),null===e&&(43===n.charCodeAt(kn)?(e="+",kn++):(e=null,0===Mn&&s('"+"')),null===e&&(36===n.charCodeAt(kn)?(e="$",kn++):(e=null,0===Mn&&s('"$"')))))))),e}function we(){var e,t,r,i,o,a,l;if(a=kn,63===n.charCodeAt(kn)?(e="?",kn++):(e=null,0===Mn&&s('"?"')),null!==e)if(null!==(t=Ie())){for(r=[],l=kn,38===n.charCodeAt(kn)?(i="&",kn++):(i=null,0===Mn&&s('"&"')),null!==i&&null!==(o=Ie())?i=[i,o]:(i=null,kn=l);null!==i;)r.push(i),l=kn,38===n.charCodeAt(kn)?(i="&",kn++):(i=null,0===Mn&&s('"&"')),null!==i&&null!==(o=Ie())?i=[i,o]:(i=null,kn=l);null!==r?e=[e,t,r]:(e=null,kn=a)}else e=null,kn=a;else e=null,kn=a;return e}function Ie(){var e,t,r,i,o;return i=kn,o=kn,null!==(e=Oe())?(61===n.charCodeAt(kn)?(t="=",kn++):(t=null,0===Mn&&s('"="')),null!==t&&null!==(r=xe())?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e,t,n){t=t.join("").toLowerCase(),n=n.join(""),jn.uri_headers||(jn.uri_headers={}),jn.uri_headers[t]?jn.uri_headers[t].push(n):jn.uri_headers[t]=[n]}(0,e[0],e[2])),null===e&&(kn=i),e}function Oe(){var e,t;if(null===(t=Ne())&&null===(t=g())&&(t=T()),null!==t)for(e=[];null!==t;)e.push(t),null===(t=Ne())&&null===(t=g())&&(t=T());else e=null;return e}function xe(){var e,t;for(e=[],null===(t=Ne())&&null===(t=g())&&(t=T());null!==t;)e.push(t),null===(t=Ne())&&null===(t=g())&&(t=T());return e}function Ne(){var e;return 91===n.charCodeAt(kn)?(e="[",kn++):(e=null,0===Mn&&s('"["')),null===e&&(93===n.charCodeAt(kn)?(e="]",kn++):(e=null,0===Mn&&s('"]"')),null===e&&(47===n.charCodeAt(kn)?(e="/",kn++):(e=null,0===Mn&&s('"/"')),null===e&&(63===n.charCodeAt(kn)?(e="?",kn++):(e=null,0===Mn&&s('"?"')),null===e&&(58===n.charCodeAt(kn)?(e=":",kn++):(e=null,0===Mn&&s('":"')),null===e&&(43===n.charCodeAt(kn)?(e="+",kn++):(e=null,0===Mn&&s('"+"')),null===e&&(36===n.charCodeAt(kn)?(e="$",kn++):(e=null,0===Mn&&s('"$"')))))))),e}function Pe(){var e,t,n,r,s,i;return i=kn,null!==(e=ot())&&null!==(t=h())&&null!==(n=De())&&null!==(r=h())&&null!==(s=$e())?e=[e,t,n,r,s]:(e=null,kn=i),e}function De(){var e;return null===(e=K())&&(e=Ue()),e}function Ue(){var e,t,r,i;return i=kn,null!==(e=Ve())?(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null!==t?(null===(r=ke())&&(r=qe()),null!==r?e=[e,t,r]:(e=null,kn=i)):(e=null,kn=i)):(e=null,kn=i),e}function ke(){var e,t,r,i,o;return i=kn,null===(e=Me())&&(e=Le()),null!==e?(o=kn,63===n.charCodeAt(kn)?(t="?",kn++):(t=null,0===Mn&&s('"?"')),null!==t&&null!==(r=Ye())?t=[t,r]:(t=null,kn=o),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=i)):(e=null,kn=i),e}function Me(){var e,t,r,i;return i=kn,"//"===n.substr(kn,2)?(e="//",kn+=2):(e=null,0===Mn&&s('"//"')),null!==e&&null!==(t=ze())&&null!==(r=null!==(r=Le())?r:"")?e=[e,t,r]:(e=null,kn=i),e}function Le(){var e,t,r;return r=kn,47===n.charCodeAt(kn)?(e="/",kn++):(e=null,0===Mn&&s('"/"')),null!==e&&null!==(t=je())?e=[e,t]:(e=null,kn=r),e}function qe(){var e,t,n,r;if(r=kn,null!==(e=Fe())){for(t=[],n=He();null!==n;)t.push(n),n=He();null!==t?e=[e,t]:(e=null,kn=r)}else e=null,kn=r;return e}function He(){var e;return null===(e=m())&&null===(e=g())&&(e=T()),e}function Fe(){var e;return null===(e=g())&&null===(e=T())&&(59===n.charCodeAt(kn)?(e=";",kn++):(e=null,0===Mn&&s('";"')),null===e&&(63===n.charCodeAt(kn)?(e="?",kn++):(e=null,0===Mn&&s('"?"')),null===e&&(58===n.charCodeAt(kn)?(e=":",kn++):(e=null,0===Mn&&s('":"')),null===e&&(64===n.charCodeAt(kn)?(e="@",kn++):(e=null,0===Mn&&s('"@"')),null===e&&(38===n.charCodeAt(kn)?(e="&",kn++):(e=null,0===Mn&&s('"&"')),null===e&&(61===n.charCodeAt(kn)?(e="=",kn++):(e=null,0===Mn&&s('"="')),null===e&&(43===n.charCodeAt(kn)?(e="+",kn++):(e=null,0===Mn&&s('"+"')),null===e&&(36===n.charCodeAt(kn)?(e="$",kn++):(e=null,0===Mn&&s('"$"')),null===e&&(44===n.charCodeAt(kn)?(e=",",kn++):(e=null,0===Mn&&s('","'))))))))))),e}function je(){var e,t,r,i,o,a;if(o=kn,null!==(e=Ge())){for(t=[],a=kn,47===n.charCodeAt(kn)?(r="/",kn++):(r=null,0===Mn&&s('"/"')),null!==r&&null!==(i=Ge())?r=[r,i]:(r=null,kn=a);null!==r;)t.push(r),a=kn,47===n.charCodeAt(kn)?(r="/",kn++):(r=null,0===Mn&&s('"/"')),null!==r&&null!==(i=Ge())?r=[r,i]:(r=null,kn=a);null!==t?e=[e,t]:(e=null,kn=o)}else e=null,kn=o;return e}function Ge(){var e,t,r,i,o,a;for(o=kn,e=[],t=We();null!==t;)e.push(t),t=We();if(null!==e){for(t=[],a=kn,59===n.charCodeAt(kn)?(r=";",kn++):(r=null,0===Mn&&s('";"')),null!==r&&null!==(i=Be())?r=[r,i]:(r=null,kn=a);null!==r;)t.push(r),a=kn,59===n.charCodeAt(kn)?(r=";",kn++):(r=null,0===Mn&&s('";"')),null!==r&&null!==(i=Be())?r=[r,i]:(r=null,kn=a);null!==t?e=[e,t]:(e=null,kn=o)}else e=null,kn=o;return e}function Be(){var e,t;for(e=[],t=We();null!==t;)e.push(t),t=We();return e}function We(){var e;return null===(e=g())&&null===(e=T())&&(58===n.charCodeAt(kn)?(e=":",kn++):(e=null,0===Mn&&s('":"')),null===e&&(64===n.charCodeAt(kn)?(e="@",kn++):(e=null,0===Mn&&s('"@"')),null===e&&(38===n.charCodeAt(kn)?(e="&",kn++):(e=null,0===Mn&&s('"&"')),null===e&&(61===n.charCodeAt(kn)?(e="=",kn++):(e=null,0===Mn&&s('"="')),null===e&&(43===n.charCodeAt(kn)?(e="+",kn++):(e=null,0===Mn&&s('"+"')),null===e&&(36===n.charCodeAt(kn)?(e="$",kn++):(e=null,0===Mn&&s('"$"')),null===e&&(44===n.charCodeAt(kn)?(e=",",kn++):(e=null,0===Mn&&s('","'))))))))),e}function Ve(){var e,t,r,i,l;if(i=kn,l=kn,null!==(e=a())){for(t=[],null===(r=a())&&null===(r=o())&&(43===n.charCodeAt(kn)?(r="+",kn++):(r=null,0===Mn&&s('"+"')),null===r&&(45===n.charCodeAt(kn)?(r="-",kn++):(r=null,0===Mn&&s('"-"')),null===r&&(46===n.charCodeAt(kn)?(r=".",kn++):(r=null,0===Mn&&s('"."')))));null!==r;)t.push(r),null===(r=a())&&null===(r=o())&&(43===n.charCodeAt(kn)?(r="+",kn++):(r=null,0===Mn&&s('"+"')),null===r&&(45===n.charCodeAt(kn)?(r="-",kn++):(r=null,0===Mn&&s('"-"')),null===r&&(46===n.charCodeAt(kn)?(r=".",kn++):(r=null,0===Mn&&s('"."')))));null!==t?e=[e,t]:(e=null,kn=l)}else e=null,kn=l;return null!==e&&(e=function(e){jn.scheme=n.substring(kn,e)}(i)),null===e&&(kn=i),e}function ze(){var e;return null===(e=Je())&&(e=Ke()),e}function Je(){var e,t,r,i;return r=kn,i=kn,null!==(e=Q())?(64===n.charCodeAt(kn)?(t="@",kn++):(t=null,0===Mn&&s('"@"')),null!==t?e=[e,t]:(e=null,kn=i)):(e=null,kn=i),null!==(e=null!==e?e:"")&&null!==(t=ne())?e=[e,t]:(e=null,kn=r),e=null!==e?e:""}function Ke(){var e,t;if(null===(t=g())&&null===(t=T())&&(36===n.charCodeAt(kn)?(t="$",kn++):(t=null,0===Mn&&s('"$"')),null===t&&(44===n.charCodeAt(kn)?(t=",",kn++):(t=null,0===Mn&&s('","')),null===t&&(59===n.charCodeAt(kn)?(t=";",kn++):(t=null,0===Mn&&s('";"')),null===t&&(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null===t&&(64===n.charCodeAt(kn)?(t="@",kn++):(t=null,0===Mn&&s('"@"')),null===t&&(38===n.charCodeAt(kn)?(t="&",kn++):(t=null,0===Mn&&s('"&"')),null===t&&(61===n.charCodeAt(kn)?(t="=",kn++):(t=null,0===Mn&&s('"="')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"')))))))))),null!==t)for(e=[];null!==t;)e.push(t),null===(t=g())&&null===(t=T())&&(36===n.charCodeAt(kn)?(t="$",kn++):(t=null,0===Mn&&s('"$"')),null===t&&(44===n.charCodeAt(kn)?(t=",",kn++):(t=null,0===Mn&&s('","')),null===t&&(59===n.charCodeAt(kn)?(t=";",kn++):(t=null,0===Mn&&s('";"')),null===t&&(58===n.charCodeAt(kn)?(t=":",kn++):(t=null,0===Mn&&s('":"')),null===t&&(64===n.charCodeAt(kn)?(t="@",kn++):(t=null,0===Mn&&s('"@"')),null===t&&(38===n.charCodeAt(kn)?(t="&",kn++):(t=null,0===Mn&&s('"&"')),null===t&&(61===n.charCodeAt(kn)?(t="=",kn++):(t=null,0===Mn&&s('"="')),null===t&&(43===n.charCodeAt(kn)?(t="+",kn++):(t=null,0===Mn&&s('"+"'))))))))));else e=null;return e}function Ye(){var e,t;for(e=[],t=He();null!==t;)e.push(t),t=He();return e}function $e(){var e,t,r,i,a,l,u,c;if(u=kn,c=kn,"sip"===n.substr(kn,3).toLowerCase()?(e=n.substr(kn,3),kn+=3):(e=null,0===Mn&&s('"SIP"')),null!==e)if(47===n.charCodeAt(kn)?(t="/",kn++):(t=null,0===Mn&&s('"/"')),null!==t){if(null!==(i=o()))for(r=[];null!==i;)r.push(i),i=o();else r=null;if(null!==r)if(46===n.charCodeAt(kn)?(i=".",kn++):(i=null,0===Mn&&s('"."')),null!==i){if(null!==(l=o()))for(a=[];null!==l;)a.push(l),l=o();else a=null;null!==a?e=[e,t,r,i,a]:(e=null,kn=c)}else e=null,kn=c;else e=null,kn=c}else e=null,kn=c;else e=null,kn=c;return null!==e&&(e=function(e){jn.sip_version=n.substring(kn,e)}(u)),null===e&&(kn=u),e}function Xe(){var e;return"INVITE"===n.substr(kn,6)?(e="INVITE",kn+=6):(e=null,0===Mn&&s('"INVITE"')),e}function Qe(){var e;return"ACK"===n.substr(kn,3)?(e="ACK",kn+=3):(e=null,0===Mn&&s('"ACK"')),e}function Ze(){var e;return"OPTIONS"===n.substr(kn,7)?(e="OPTIONS",kn+=7):(e=null,0===Mn&&s('"OPTIONS"')),e}function et(){var e;return"BYE"===n.substr(kn,3)?(e="BYE",kn+=3):(e=null,0===Mn&&s('"BYE"')),e}function tt(){var e;return"CANCEL"===n.substr(kn,6)?(e="CANCEL",kn+=6):(e=null,0===Mn&&s('"CANCEL"')),e}function nt(){var e;return"REGISTER"===n.substr(kn,8)?(e="REGISTER",kn+=8):(e=null,0===Mn&&s('"REGISTER"')),e}function rt(){var e;return"SUBSCRIBE"===n.substr(kn,9)?(e="SUBSCRIBE",kn+=9):(e=null,0===Mn&&s('"SUBSCRIBE"')),e}function st(){var e;return"NOTIFY"===n.substr(kn,6)?(e="NOTIFY",kn+=6):(e=null,0===Mn&&s('"NOTIFY"')),e}function it(){var e;return"REFER"===n.substr(kn,5)?(e="REFER",kn+=5):(e=null,0===Mn&&s('"REFER"')),e}function ot(){var e,t;return t=kn,null===(e=Xe())&&null===(e=Qe())&&null===(e=Ze())&&null===(e=et())&&null===(e=tt())&&null===(e=nt())&&null===(e=rt())&&null===(e=st())&&null===(e=it())&&(e=b()),null!==e&&(e=function(e){return jn.method=n.substring(kn,e),jn.method}(t)),null===e&&(kn=t),e}function at(){var e,t,n,r,s,i;return i=kn,null!==(e=$e())&&null!==(t=h())&&null!==(n=lt())&&null!==(r=h())&&null!==(s=ct())?e=[e,t,n,r,s]:(e=null,kn=i),e}function lt(){var e,t;return t=kn,null!==(e=ut())&&(e=function(e,t){jn.status_code=parseInt(t.join(""))}(0,e)),null===e&&(kn=t),e}function ut(){var e,t,n,r;return r=kn,null!==(e=o())&&null!==(t=o())&&null!==(n=o())?e=[e,t,n]:(e=null,kn=r),e}function ct(){var e,t,r;for(r=kn,e=[],null===(t=m())&&null===(t=g())&&null===(t=T())&&null===(t=A())&&null===(t=R())&&null===(t=h())&&(t=p());null!==t;)e.push(t),null===(t=m())&&null===(t=g())&&null===(t=T())&&null===(t=A())&&null===(t=R())&&null===(t=h())&&(t=p());return null!==e&&(e=function(e){jn.reason_phrase=n.substring(kn,e)}(r)),null===e&&(kn=r),e}function dt(){var e,t,n,r,s,i,o;if(s=kn,i=kn,null===(e=J())&&(e=ht()),null!==e){for(t=[],o=kn,null!==(n=L())&&null!==(r=ft())?n=[n,r]:(n=null,kn=o);null!==n;)t.push(n),o=kn,null!==(n=L())&&null!==(r=ft())?n=[n,r]:(n=null,kn=o);null!==t?e=[e,t]:(e=null,kn=i)}else e=null,kn=i;return null!==e&&(e=function(e){var t;jn.multi_header||(jn.multi_header=[]);try{t=new Fn(jn.uri,jn.display_name,jn.params),delete jn.uri,delete jn.display_name,delete jn.params}catch(e){t=null}jn.multi_header.push({possition:kn,offset:e,parsed:t})}(s)),null===e&&(kn=s),e}function ht(){var e,t,n,r,s;return s=kn,e=pt(),null!==(e=null!==e?e:"")&&null!==(t=k())&&null!==(n=K())&&null!==(r=U())?e=[e,t,n,r]:(e=null,kn=s),e}function pt(){var e,t,r,s,i,o,a;if(i=kn,o=kn,null!==(e=b())){for(t=[],a=kn,null!==(r=_())&&null!==(s=b())?r=[r,s]:(r=null,kn=a);null!==r;)t.push(r),a=kn,null!==(r=_())&&null!==(s=b())?r=[r,s]:(r=null,kn=a);null!==t?e=[e,t]:(e=null,kn=o)}else e=null,kn=o;return null===e&&(e=B()),null!==e&&(e=function(e,t){'"'===(t=n.substring(kn,e).trim())[0]&&(t=t.substring(1,t.length-1)),jn.display_name=t}(i,e)),null===e&&(kn=i),e}function ft(){var e;return null===(e=mt())&&null===(e=gt())&&(e=_t()),e}function mt(){var e,t,r,i,o;return i=kn,o=kn,"q"===n.substr(kn,1).toLowerCase()?(e=n.substr(kn,1),kn++):(e=null,0===Mn&&s('"q"')),null!==e&&null!==(t=N())&&null!==(r=Tt())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){jn.params||(jn.params={}),jn.params.q=t}(0,e[2])),null===e&&(kn=i),e}function gt(){var e,t,r,i,o;return i=kn,o=kn,"expires"===n.substr(kn,7).toLowerCase()?(e=n.substr(kn,7),kn+=7):(e=null,0===Mn&&s('"expires"')),null!==e&&null!==(t=N())&&null!==(r=vt())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){jn.params||(jn.params={}),jn.params.expires=t}(0,e[2])),null===e&&(kn=i),e}function vt(){var e,t,n;if(n=kn,null!==(t=o()))for(e=[];null!==t;)e.push(t),t=o();else e=null;return null!==e&&(e=function(e,t){return parseInt(t.join(""))}(0,e)),null===e&&(kn=n),e}function Tt(){var e,t,r,i,a,l,u,c;return l=kn,u=kn,48===n.charCodeAt(kn)?(e="0",kn++):(e=null,0===Mn&&s('"0"')),null!==e?(c=kn,46===n.charCodeAt(kn)?(t=".",kn++):(t=null,0===Mn&&s('"."')),null!==t&&null!==(r=null!==(r=o())?r:"")&&null!==(i=null!==(i=o())?i:"")&&null!==(a=null!==(a=o())?a:"")?t=[t,r,i,a]:(t=null,kn=c),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=u)):(e=null,kn=u),null!==e&&(e=function(e){return parseFloat(n.substring(kn,e))}(l)),null===e&&(kn=l),e}function _t(){var e,t,n,r,s,i;return r=kn,s=kn,null!==(e=b())?(i=kn,null!==(t=N())&&null!==(n=Ct())?t=[t,n]:(t=null,kn=i),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=s)):(e=null,kn=s),null!==e&&(e=function(e,t,n){jn.params||(jn.params={}),n=void 0===n?void 0:n[1],jn.params[t.toLowerCase()]=n}(0,e[0],e[1])),null===e&&(kn=r),e}function Ct(){var e;return null===(e=b())&&null===(e=re())&&(e=B()),e}function St(){var e;return"render"===n.substr(kn,6).toLowerCase()?(e=n.substr(kn,6),kn+=6):(e=null,0===Mn&&s('"render"')),null===e&&("session"===n.substr(kn,7).toLowerCase()?(e=n.substr(kn,7),kn+=7):(e=null,0===Mn&&s('"session"')),null===e&&("icon"===n.substr(kn,4).toLowerCase()?(e=n.substr(kn,4),kn+=4):(e=null,0===Mn&&s('"icon"')),null===e&&("alert"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"alert"')),null===e&&(e=b())))),e}function Et(){var e;return null===(e=yt())&&(e=_t()),e}function yt(){var e,t,r,i;return i=kn,"handling"===n.substr(kn,8).toLowerCase()?(e=n.substr(kn,8),kn+=8):(e=null,0===Mn&&s('"handling"')),null!==e&&null!==(t=N())?("optional"===n.substr(kn,8).toLowerCase()?(r=n.substr(kn,8),kn+=8):(r=null,0===Mn&&s('"optional"')),null===r&&("required"===n.substr(kn,8).toLowerCase()?(r=n.substr(kn,8),kn+=8):(r=null,0===Mn&&s('"required"')),null===r&&(r=b())),null!==r?e=[e,t,r]:(e=null,kn=i)):(e=null,kn=i),e}function At(){var e,t,n,r,s,i,o,a;if(o=kn,null!==(e=Rt()))if(null!==(t=x()))if(null!==(n=xt())){for(r=[],a=kn,null!==(s=L())&&null!==(i=Nt())?s=[s,i]:(s=null,kn=a);null!==s;)r.push(s),a=kn,null!==(s=L())&&null!==(i=Nt())?s=[s,i]:(s=null,kn=a);null!==r?e=[e,t,n,r]:(e=null,kn=o)}else e=null,kn=o;else e=null,kn=o;else e=null,kn=o;return e}function Rt(){var e;return null===(e=bt())&&(e=wt()),e}function bt(){var e;return"text"===n.substr(kn,4).toLowerCase()?(e=n.substr(kn,4),kn+=4):(e=null,0===Mn&&s('"text"')),null===e&&("image"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"image"')),null===e&&("audio"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"audio"')),null===e&&("video"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"video"')),null===e&&("application"===n.substr(kn,11).toLowerCase()?(e=n.substr(kn,11),kn+=11):(e=null,0===Mn&&s('"application"')),null===e&&(e=It()))))),e}function wt(){var e;return"message"===n.substr(kn,7).toLowerCase()?(e=n.substr(kn,7),kn+=7):(e=null,0===Mn&&s('"message"')),null===e&&("multipart"===n.substr(kn,9).toLowerCase()?(e=n.substr(kn,9),kn+=9):(e=null,0===Mn&&s('"multipart"')),null===e&&(e=It())),e}function It(){var e;return null===(e=b())&&(e=Ot()),e}function Ot(){var e,t,r;return r=kn,"x-"===n.substr(kn,2).toLowerCase()?(e=n.substr(kn,2),kn+=2):(e=null,0===Mn&&s('"x-"')),null!==e&&null!==(t=b())?e=[e,t]:(e=null,kn=r),e}function xt(){var e;return null===(e=It())&&(e=b()),e}function Nt(){var e,t,n,r;return r=kn,null!==(e=b())&&null!==(t=N())&&null!==(n=Pt())?e=[e,t,n]:(e=null,kn=r),e}function Pt(){var e;return null===(e=b())&&(e=B()),e}function Dt(){var e,t,n;if(n=kn,null!==(t=o()))for(e=[];null!==t;)e.push(t),t=o();else e=null;return null!==e&&(e=function(e,t){jn.value=parseInt(t.join(""))}(0,e)),null===e&&(kn=n),e}function Ut(){var e,t,r,i,o,a;if(o=kn,null!==(e=w())){for(t=[],a=kn,46===n.charCodeAt(kn)?(r=".",kn++):(r=null,0===Mn&&s('"."')),null!==r&&null!==(i=w())?r=[r,i]:(r=null,kn=a);null!==r;)t.push(r),a=kn,46===n.charCodeAt(kn)?(r=".",kn++):(r=null,0===Mn&&s('"."')),null!==r&&null!==(i=w())?r=[r,i]:(r=null,kn=a);null!==t?e=[e,t]:(e=null,kn=o)}else e=null,kn=o;return e}function kt(){var e;return null===(e=Mt())&&(e=_t()),e}function Mt(){var e,t,r,i,o;return i=kn,o=kn,"tag"===n.substr(kn,3).toLowerCase()?(e=n.substr(kn,3),kn+=3):(e=null,0===Mn&&s('"tag"')),null!==e&&null!==(t=N())&&null!==(r=b())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){jn.tag=t}(0,e[2])),null===e&&(kn=i),e}function Lt(){var e,t,r,i,o,a,l,u;if(l=kn,"digest"===n.substr(kn,6).toLowerCase()?(e=n.substr(kn,6),kn+=6):(e=null,0===Mn&&s('"Digest"')),null!==e)if(null!==(t=_()))if(null!==(r=Ft())){for(i=[],u=kn,null!==(o=M())&&null!==(a=Ft())?o=[o,a]:(o=null,kn=u);null!==o;)i.push(o),u=kn,null!==(o=M())&&null!==(a=Ft())?o=[o,a]:(o=null,kn=u);null!==i?e=[e,t,r,i]:(e=null,kn=l)}else e=null,kn=l;else e=null,kn=l;else e=null,kn=l;return null===e&&(e=qt()),e}function qt(){var e,t,n,r,s,i,o,a;if(o=kn,null!==(e=b()))if(null!==(t=_()))if(null!==(n=Ht())){for(r=[],a=kn,null!==(s=M())&&null!==(i=Ht())?s=[s,i]:(s=null,kn=a);null!==s;)r.push(s),a=kn,null!==(s=M())&&null!==(i=Ht())?s=[s,i]:(s=null,kn=a);null!==r?e=[e,t,n,r]:(e=null,kn=o)}else e=null,kn=o;else e=null,kn=o;else e=null,kn=o;return e}function Ht(){var e,t,n,r;return r=kn,null!==(e=b())&&null!==(t=N())?(null===(n=b())&&(n=B()),null!==n?e=[e,t,n]:(e=null,kn=r)):(e=null,kn=r),e}function Ft(){var e;return null===(e=jt())&&null===(e=Bt())&&null===(e=Vt())&&null===(e=Jt())&&null===(e=Kt())&&null===(e=Yt())&&null===(e=$t())&&(e=Ht()),e}function jt(){var e,t,r,i;return i=kn,"realm"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"realm"')),null!==e&&null!==(t=N())&&null!==(r=Gt())?e=[e,t,r]:(e=null,kn=i),e}function Gt(){var e,t;return t=kn,null!==(e=W())&&(e=function(e,t){jn.realm=t}(0,e)),null===e&&(kn=t),e}function Bt(){var e,t,r,i,o,a,l,u,c;if(u=kn,"domain"===n.substr(kn,6).toLowerCase()?(e=n.substr(kn,6),kn+=6):(e=null,0===Mn&&s('"domain"')),null!==e)if(null!==(t=N()))if(null!==(r=H()))if(null!==(i=Wt())){if(o=[],c=kn,null!==(l=h()))for(a=[];null!==l;)a.push(l),l=h();else a=null;for(null!==a&&null!==(l=Wt())?a=[a,l]:(a=null,kn=c);null!==a;){if(o.push(a),c=kn,null!==(l=h()))for(a=[];null!==l;)a.push(l),l=h();else a=null;null!==a&&null!==(l=Wt())?a=[a,l]:(a=null,kn=c)}null!==o&&null!==(a=F())?e=[e,t,r,i,o,a]:(e=null,kn=u)}else e=null,kn=u;else e=null,kn=u;else e=null,kn=u;else e=null,kn=u;return e}function Wt(){var e;return null===(e=Ue())&&(e=Le()),e}function Vt(){var e,t,r,i;return i=kn,"nonce"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"nonce"')),null!==e&&null!==(t=N())&&null!==(r=zt())?e=[e,t,r]:(e=null,kn=i),e}function zt(){var e,t;return t=kn,null!==(e=W())&&(e=function(e,t){jn.nonce=t}(0,e)),null===e&&(kn=t),e}function Jt(){var e,t,r,i,o;return i=kn,o=kn,"opaque"===n.substr(kn,6).toLowerCase()?(e=n.substr(kn,6),kn+=6):(e=null,0===Mn&&s('"opaque"')),null!==e&&null!==(t=N())&&null!==(r=W())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){jn.opaque=t}(0,e[2])),null===e&&(kn=i),e}function Kt(){var e,t,r,i,o;return i=kn,"stale"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"stale"')),null!==e&&null!==(t=N())?(o=kn,"true"===n.substr(kn,4).toLowerCase()?(r=n.substr(kn,4),kn+=4):(r=null,0===Mn&&s('"true"')),null!==r&&(r=void(jn.stale=!0)),null===r&&(kn=o),null===r&&(o=kn,"false"===n.substr(kn,5).toLowerCase()?(r=n.substr(kn,5),kn+=5):(r=null,0===Mn&&s('"false"')),null!==r&&(r=void(jn.stale=!1)),null===r&&(kn=o)),null!==r?e=[e,t,r]:(e=null,kn=i)):(e=null,kn=i),e}function Yt(){var e,t,r,i,o;return i=kn,o=kn,"algorithm"===n.substr(kn,9).toLowerCase()?(e=n.substr(kn,9),kn+=9):(e=null,0===Mn&&s('"algorithm"')),null!==e&&null!==(t=N())?("md5"===n.substr(kn,3).toLowerCase()?(r=n.substr(kn,3),kn+=3):(r=null,0===Mn&&s('"MD5"')),null===r&&("md5-sess"===n.substr(kn,8).toLowerCase()?(r=n.substr(kn,8),kn+=8):(r=null,0===Mn&&s('"MD5-sess"')),null===r&&(r=b())),null!==r?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e,t){jn.algorithm=t.toUpperCase()}(0,e[2])),null===e&&(kn=i),e}function $t(){var e,t,r,i,o,a,l,u,c,d;if(u=kn,"qop"===n.substr(kn,3).toLowerCase()?(e=n.substr(kn,3),kn+=3):(e=null,0===Mn&&s('"qop"')),null!==e)if(null!==(t=N()))if(null!==(r=H())){if(c=kn,null!==(i=Xt())){for(o=[],d=kn,44===n.charCodeAt(kn)?(a=",",kn++):(a=null,0===Mn&&s('","')),null!==a&&null!==(l=Xt())?a=[a,l]:(a=null,kn=d);null!==a;)o.push(a),d=kn,44===n.charCodeAt(kn)?(a=",",kn++):(a=null,0===Mn&&s('","')),null!==a&&null!==(l=Xt())?a=[a,l]:(a=null,kn=d);null!==o?i=[i,o]:(i=null,kn=c)}else i=null,kn=c;null!==i&&null!==(o=F())?e=[e,t,r,i,o]:(e=null,kn=u)}else e=null,kn=u;else e=null,kn=u;else e=null,kn=u;return e}function Xt(){var e,t;return t=kn,"auth-int"===n.substr(kn,8).toLowerCase()?(e=n.substr(kn,8),kn+=8):(e=null,0===Mn&&s('"auth-int"')),null===e&&("auth"===n.substr(kn,4).toLowerCase()?(e=n.substr(kn,4),kn+=4):(e=null,0===Mn&&s('"auth"')),null===e&&(e=b())),null!==e&&(e=function(e,t){jn.qop||(jn.qop=[]),jn.qop.push(t.toLowerCase())}(0,e)),null===e&&(kn=t),e}function Qt(){var e,t,n,r,s,i,o;if(s=kn,i=kn,null!==(e=ht())){for(t=[],o=kn,null!==(n=L())&&null!==(r=_t())?n=[n,r]:(n=null,kn=o);null!==n;)t.push(n),o=kn,null!==(n=L())&&null!==(r=_t())?n=[n,r]:(n=null,kn=o);null!==t?e=[e,t]:(e=null,kn=i)}else e=null,kn=i;return null!==e&&(e=function(e){var t;jn.multi_header||(jn.multi_header=[]);try{t=new Fn(jn.uri,jn.display_name,jn.params),delete jn.uri,delete jn.display_name,delete jn.params}catch(e){t=null}jn.multi_header.push({possition:kn,offset:e,parsed:t})}(s)),null===e&&(kn=s),e}function Zt(){var e;return null===(e=en())&&(e=_t()),e}function en(){var e,t,r,i,a,l;if(a=kn,l=kn,"cause"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"cause"')),null!==e)if(null!==(t=N())){if(null!==(i=o()))for(r=[];null!==i;)r.push(i),i=o();else r=null;null!==r?e=[e,t,r]:(e=null,kn=l)}else e=null,kn=l;else e=null,kn=l;return null!==e&&(e=function(e,t){jn.cause=parseInt(t.join(""))}(0,e[2])),null===e&&(kn=a),e}function tn(){var e,t,n,r,s,i;if(s=kn,null!==(e=ht())){for(t=[],i=kn,null!==(n=L())&&null!==(r=_t())?n=[n,r]:(n=null,kn=i);null!==n;)t.push(n),i=kn,null!==(n=L())&&null!==(r=_t())?n=[n,r]:(n=null,kn=i);null!==t?e=[e,t]:(e=null,kn=s)}else e=null,kn=s;return e}function nn(){var e,t;return t=kn,"active"===n.substr(kn,6).toLowerCase()?(e=n.substr(kn,6),kn+=6):(e=null,0===Mn&&s('"active"')),null===e&&("pending"===n.substr(kn,7).toLowerCase()?(e=n.substr(kn,7),kn+=7):(e=null,0===Mn&&s('"pending"')),null===e&&("terminated"===n.substr(kn,10).toLowerCase()?(e=n.substr(kn,10),kn+=10):(e=null,0===Mn&&s('"terminated"')),null===e&&(e=b()))),null!==e&&(e=function(e){jn.state=n.substring(kn,e)}(t)),null===e&&(kn=t),e}function rn(){var e,t,r,i,o;return i=kn,o=kn,"reason"===n.substr(kn,6).toLowerCase()?(e=n.substr(kn,6),kn+=6):(e=null,0===Mn&&s('"reason"')),null!==e&&null!==(t=N())&&null!==(r=sn())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){void 0!==t&&(jn.reason=t)}(0,e[2])),null===e&&(kn=i),null===e&&(i=kn,o=kn,"expires"===n.substr(kn,7).toLowerCase()?(e=n.substr(kn,7),kn+=7):(e=null,0===Mn&&s('"expires"')),null!==e&&null!==(t=N())&&null!==(r=vt())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){void 0!==t&&(jn.expires=t)}(0,e[2])),null===e&&(kn=i),null===e&&(i=kn,o=kn,"retry_after"===n.substr(kn,11).toLowerCase()?(e=n.substr(kn,11),kn+=11):(e=null,0===Mn&&s('"retry_after"')),null!==e&&null!==(t=N())&&null!==(r=vt())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){void 0!==t&&(jn.retry_after=t)}(0,e[2])),null===e&&(kn=i),null===e&&(e=_t()))),e}function sn(){var e;return"deactivated"===n.substr(kn,11).toLowerCase()?(e=n.substr(kn,11),kn+=11):(e=null,0===Mn&&s('"deactivated"')),null===e&&("probation"===n.substr(kn,9).toLowerCase()?(e=n.substr(kn,9),kn+=9):(e=null,0===Mn&&s('"probation"')),null===e&&("rejected"===n.substr(kn,8).toLowerCase()?(e=n.substr(kn,8),kn+=8):(e=null,0===Mn&&s('"rejected"')),null===e&&("timeout"===n.substr(kn,7).toLowerCase()?(e=n.substr(kn,7),kn+=7):(e=null,0===Mn&&s('"timeout"')),null===e&&("giveup"===n.substr(kn,6).toLowerCase()?(e=n.substr(kn,6),kn+=6):(e=null,0===Mn&&s('"giveup"')),null===e&&("noresource"===n.substr(kn,10).toLowerCase()?(e=n.substr(kn,10),kn+=10):(e=null,0===Mn&&s('"noresource"')),null===e&&("invariant"===n.substr(kn,9).toLowerCase()?(e=n.substr(kn,9),kn+=9):(e=null,0===Mn&&s('"invariant"')),null===e&&(e=b()))))))),e}function on(){var e;return null===(e=Mt())&&(e=_t()),e}function an(){var e,t,n,r,s,i,o,a;if(o=kn,null!==(e=fn()))if(null!==(t=_()))if(null!==(n=vn())){for(r=[],a=kn,null!==(s=L())&&null!==(i=ln())?s=[s,i]:(s=null,kn=a);null!==s;)r.push(s),a=kn,null!==(s=L())&&null!==(i=ln())?s=[s,i]:(s=null,kn=a);null!==r?e=[e,t,n,r]:(e=null,kn=o)}else e=null,kn=o;else e=null,kn=o;else e=null,kn=o;return e}function ln(){var e;return null===(e=un())&&null===(e=cn())&&null===(e=dn())&&null===(e=hn())&&null===(e=pn())&&(e=_t()),e}function un(){var e,t,r,i,o;return i=kn,o=kn,"ttl"===n.substr(kn,3).toLowerCase()?(e=n.substr(kn,3),kn+=3):(e=null,0===Mn&&s('"ttl"')),null!==e&&null!==(t=N())&&null!==(r=Cn())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){jn.ttl=t}(0,e[2])),null===e&&(kn=i),e}function cn(){var e,t,r,i,o;return i=kn,o=kn,"maddr"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"maddr"')),null!==e&&null!==(t=N())&&null!==(r=re())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){jn.maddr=t}(0,e[2])),null===e&&(kn=i),e}function dn(){var e,t,r,i,o;return i=kn,o=kn,"received"===n.substr(kn,8).toLowerCase()?(e=n.substr(kn,8),kn+=8):(e=null,0===Mn&&s('"received"')),null!==e&&null!==(t=N())?(null===(r=de())&&(r=le()),null!==r?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e,t){jn.received=t}(0,e[2])),null===e&&(kn=i),e}function hn(){var e,t,r,i,o;return i=kn,o=kn,"branch"===n.substr(kn,6).toLowerCase()?(e=n.substr(kn,6),kn+=6):(e=null,0===Mn&&s('"branch"')),null!==e&&null!==(t=N())&&null!==(r=b())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){jn.branch=t}(0,e[2])),null===e&&(kn=i),e}function pn(){var e,t,r,i,a,l,u;if(a=kn,l=kn,"rport"===n.substr(kn,5).toLowerCase()?(e=n.substr(kn,5),kn+=5):(e=null,0===Mn&&s('"rport"')),null!==e){if(u=kn,null!==(t=N())){for(r=[],i=o();null!==i;)r.push(i),i=o();null!==r?t=[t,r]:(t=null,kn=u)}else t=null,kn=u;null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=l)}else e=null,kn=l;return null!==e&&(e=void("undefined"!=typeof response_port&&(jn.rport=response_port.join("")))),null===e&&(kn=a),e}function fn(){var e,t,n,r,s,i;return i=kn,null!==(e=mn())&&null!==(t=x())&&null!==(n=b())&&null!==(r=x())&&null!==(s=gn())?e=[e,t,n,r,s]:(e=null,kn=i),e}function mn(){var e,t;return t=kn,"sip"===n.substr(kn,3).toLowerCase()?(e=n.substr(kn,3),kn+=3):(e=null,0===Mn&&s('"SIP"')),null===e&&(e=b()),null!==e&&(e=function(e,t){jn.protocol=t}(0,e)),null===e&&(kn=t),e}function gn(){var e,t;return t=kn,"udp"===n.substr(kn,3).toLowerCase()?(e=n.substr(kn,3),kn+=3):(e=null,0===Mn&&s('"UDP"')),null===e&&("tcp"===n.substr(kn,3).toLowerCase()?(e=n.substr(kn,3),kn+=3):(e=null,0===Mn&&s('"TCP"')),null===e&&("tls"===n.substr(kn,3).toLowerCase()?(e=n.substr(kn,3),kn+=3):(e=null,0===Mn&&s('"TLS"')),null===e&&("sctp"===n.substr(kn,4).toLowerCase()?(e=n.substr(kn,4),kn+=4):(e=null,0===Mn&&s('"SCTP"')),null===e&&(e=b())))),null!==e&&(e=function(e,t){jn.transport=t}(0,e)),null===e&&(kn=t),e}function vn(){var e,t,n,r,s;return r=kn,null!==(e=Tn())?(s=kn,null!==(t=q())&&null!==(n=_n())?t=[t,n]:(t=null,kn=s),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=r)):(e=null,kn=r),e}function Tn(){var e,t;return t=kn,null===(e=de())&&null===(e=ae())&&(e=se()),null!==e&&(e=function(e){jn.host=n.substring(kn,e)}(t)),null===e&&(kn=t),e}function _n(){var e,t,n,r,s,i,a;return i=kn,a=kn,e=o(),null!==(e=null!==e?e:"")&&null!==(t=null!==(t=o())?t:"")&&null!==(n=null!==(n=o())?n:"")&&null!==(r=null!==(r=o())?r:"")&&null!==(s=null!==(s=o())?s:"")?e=[e,t,n,r,s]:(e=null,kn=a),null!==e&&(e=function(e,t){jn.port=parseInt(t.join(""))}(0,e)),null===e&&(kn=i),e}function Cn(){var e,t,n,r,s;return r=kn,s=kn,null!==(e=o())&&null!==(t=null!==(t=o())?t:"")&&null!==(n=null!==(n=o())?n:"")?e=[e,t,n]:(e=null,kn=s),null!==e&&(e=function(e,t){return parseInt(t.join(""))}(0,e)),null===e&&(kn=r),e}function Sn(){var e,t;return t=kn,null!==(e=vt())&&(e=function(e,t){jn.expires=t}(0,e)),null===e&&(kn=t),e}function En(){var e;return null===(e=yn())&&(e=_t()),e}function yn(){var e,t,r,i,o;return i=kn,o=kn,"refresher"===n.substr(kn,9).toLowerCase()?(e=n.substr(kn,9),kn+=9):(e=null,0===Mn&&s('"refresher"')),null!==e&&null!==(t=N())?("uac"===n.substr(kn,3).toLowerCase()?(r=n.substr(kn,3),kn+=3):(r=null,0===Mn&&s('"uac"')),null===r&&("uas"===n.substr(kn,3).toLowerCase()?(r=n.substr(kn,3),kn+=3):(r=null,0===Mn&&s('"uas"'))),null!==r?e=[e,t,r]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e,t){jn.refresher=t.toLowerCase()}(0,e[2])),null===e&&(kn=i),e}function An(){var e,t;for(e=[],null===(t=y())&&null===(t=R())&&(t=_());null!==t;)e.push(t),null===(t=y())&&null===(t=R())&&(t=_());return e}function Rn(){var e,t,r,i,o,a,l,u,c,d,h;return d=kn,h=kn,null!==(e=wn())?(45===n.charCodeAt(kn)?(t="-",kn++):(t=null,0===Mn&&s('"-"')),null!==t&&null!==(r=bn())?(45===n.charCodeAt(kn)?(i="-",kn++):(i=null,0===Mn&&s('"-"')),null!==i&&null!==(o=bn())?(45===n.charCodeAt(kn)?(a="-",kn++):(a=null,0===Mn&&s('"-"')),null!==a&&null!==(l=bn())?(45===n.charCodeAt(kn)?(u="-",kn++):(u=null,0===Mn&&s('"-"')),null!==u&&null!==(c=In())?e=[e,t,r,i,o,a,l,u,c]:(e=null,kn=h)):(e=null,kn=h)):(e=null,kn=h)):(e=null,kn=h)):(e=null,kn=h),null!==e&&(e=function(e,t){jn=n.substring(kn+5,e)}(d,e[0])),null===e&&(kn=d),e}function bn(){var e,t,n,r,s;return s=kn,null!==(e=l())&&null!==(t=l())&&null!==(n=l())&&null!==(r=l())?e=[e,t,n,r]:(e=null,kn=s),e}function wn(){var e,t,n;return n=kn,null!==(e=bn())&&null!==(t=bn())?e=[e,t]:(e=null,kn=n),e}function In(){var e,t,n,r;return r=kn,null!==(e=bn())&&null!==(t=bn())&&null!==(n=bn())?e=[e,t,n]:(e=null,kn=r),e}function On(){var e,t,r,i,o,a;return i=kn,o=kn,null!==(e=I())?(a=kn,64===n.charCodeAt(kn)?(t="@",kn++):(t=null,0===Mn&&s('"@"')),null!==t&&null!==(r=I())?t=[t,r]:(t=null,kn=a),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e){jn.call_id=n.substring(kn,e)}(i)),null===e&&(kn=i),e}function xn(){var e;return null===(e=Nn())&&null===(e=Pn())&&null===(e=Dn())&&(e=_t()),e}function Nn(){var e,t,r,i,o;return i=kn,o=kn,"to-tag"===n.substr(kn,6)?(e="to-tag",kn+=6):(e=null,0===Mn&&s('"to-tag"')),null!==e&&null!==(t=N())&&null!==(r=b())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){jn.to_tag=t}(0,e[2])),null===e&&(kn=i),e}function Pn(){var e,t,r,i,o;return i=kn,o=kn,"from-tag"===n.substr(kn,8)?(e="from-tag",kn+=8):(e=null,0===Mn&&s('"from-tag"')),null!==e&&null!==(t=N())&&null!==(r=b())?e=[e,t,r]:(e=null,kn=o),null!==e&&(e=function(e,t){jn.from_tag=t}(0,e[2])),null===e&&(kn=i),e}function Dn(){var e,t;return t=kn,"early-only"===n.substr(kn,10)?(e="early-only",kn+=10):(e=null,0===Mn&&s('"early-only"')),null!==e&&(e=void(jn.early_only=!0)),null===e&&(kn=t),e}var Un={CRLF:i,DIGIT:o,ALPHA:a,HEXDIG:l,WSP:u,OCTET:c,DQUOTE:d,SP:h,HTAB:p,alphanum:f,reserved:m,unreserved:g,mark:v,escaped:T,LWS:_,SWS:C,HCOLON:S,TEXT_UTF8_TRIM:E,TEXT_UTF8char:y,UTF8_NONASCII:A,UTF8_CONT:R,LHEX:function(){var e;return null===(e=o())&&(/^[a-f]/.test(n.charAt(kn))?(e=n.charAt(kn),kn++):(e=null,0===Mn&&s("[a-f]"))),e},token:b,token_nodot:w,separators:function(){var e;return 40===n.charCodeAt(kn)?(e="(",kn++):(e=null,0===Mn&&s('"("')),null===e&&(41===n.charCodeAt(kn)?(e=")",kn++):(e=null,0===Mn&&s('")"')),null===e&&(60===n.charCodeAt(kn)?(e="<",kn++):(e=null,0===Mn&&s('"<"')),null===e&&(62===n.charCodeAt(kn)?(e=">",kn++):(e=null,0===Mn&&s('">"')),null===e&&(64===n.charCodeAt(kn)?(e="@",kn++):(e=null,0===Mn&&s('"@"')),null===e&&(44===n.charCodeAt(kn)?(e=",",kn++):(e=null,0===Mn&&s('","')),null===e&&(59===n.charCodeAt(kn)?(e=";",kn++):(e=null,0===Mn&&s('";"')),null===e&&(58===n.charCodeAt(kn)?(e=":",kn++):(e=null,0===Mn&&s('":"')),null===e&&(92===n.charCodeAt(kn)?(e="\\",kn++):(e=null,0===Mn&&s('"\\\\"')),null===e&&null===(e=d())&&(47===n.charCodeAt(kn)?(e="/",kn++):(e=null,0===Mn&&s('"/"')),null===e&&(91===n.charCodeAt(kn)?(e="[",kn++):(e=null,0===Mn&&s('"["')),null===e&&(93===n.charCodeAt(kn)?(e="]",kn++):(e=null,0===Mn&&s('"]"')),null===e&&(63===n.charCodeAt(kn)?(e="?",kn++):(e=null,0===Mn&&s('"?"')),null===e&&(61===n.charCodeAt(kn)?(e="=",kn++):(e=null,0===Mn&&s('"="')),null===e&&(123===n.charCodeAt(kn)?(e="{",kn++):(e=null,0===Mn&&s('"{"')),null===e&&(125===n.charCodeAt(kn)?(e="}",kn++):(e=null,0===Mn&&s('"}"')),null===e&&null===(e=h())&&(e=p())))))))))))))))),e},word:I,STAR:O,SLASH:x,EQUAL:N,LPAREN:P,RPAREN:D,RAQUOT:U,LAQUOT:k,COMMA:M,SEMI:L,COLON:q,LDQUOT:H,RDQUOT:F,comment:j,ctext:G,quoted_string:B,quoted_string_clean:W,qdtext:V,quoted_pair:z,SIP_URI_noparams:J,SIP_URI:K,uri_scheme:Y,uri_scheme_sips:$,uri_scheme_sip:X,userinfo:Q,user:Z,user_unreserved:ee,password:te,hostport:ne,host:re,hostname:se,domainlabel:ie,toplabel:oe,IPv6reference:ae,IPv6address:le,h16:ue,ls32:ce,IPv4address:de,dec_octet:he,port:pe,uri_parameters:fe,uri_parameter:me,transport_param:ge,user_param:ve,method_param:Te,ttl_param:_e,maddr_param:Ce,lr_param:Se,other_param:Ee,pname:ye,pvalue:Ae,paramchar:Re,param_unreserved:be,headers:we,header:Ie,hname:Oe,hvalue:xe,hnv_unreserved:Ne,Request_Response:function(){var e;return null===(e=at())&&(e=Pe()),e},Request_Line:Pe,Request_URI:De,absoluteURI:Ue,hier_part:ke,net_path:Me,abs_path:Le,opaque_part:qe,uric:He,uric_no_slash:Fe,path_segments:je,segment:Ge,param:Be,pchar:We,scheme:Ve,authority:ze,srvr:Je,reg_name:Ke,query:Ye,SIP_Version:$e,INVITEm:Xe,ACKm:Qe,OPTIONSm:Ze,BYEm:et,CANCELm:tt,REGISTERm:nt,SUBSCRIBEm:rt,NOTIFYm:st,REFERm:it,Method:ot,Status_Line:at,Status_Code:lt,extension_code:ut,Reason_Phrase:ct,Allow_Events:function(){var e,t,n,r,s,i;if(s=kn,null!==(e=Ut())){for(t=[],i=kn,null!==(n=M())&&null!==(r=Ut())?n=[n,r]:(n=null,kn=i);null!==n;)t.push(n),i=kn,null!==(n=M())&&null!==(r=Ut())?n=[n,r]:(n=null,kn=i);null!==t?e=[e,t]:(e=null,kn=s)}else e=null,kn=s;return e},Call_ID:function(){var e,t,r,i,o,a;return i=kn,o=kn,null!==(e=I())?(a=kn,64===n.charCodeAt(kn)?(t="@",kn++):(t=null,0===Mn&&s('"@"')),null!==t&&null!==(r=I())?t=[t,r]:(t=null,kn=a),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,kn=o)):(e=null,kn=o),null!==e&&(e=function(e){jn=n.substring(kn,e)}(i)),null===e&&(kn=i),e},Contact:function(){var e,t,n,r,s,i,o;if(s=kn,null===(e=O()))if(i=kn,null!==(e=dt())){for(t=[],o=kn,null!==(n=M())&&null!==(r=dt())?n=[n,r]:(n=null,kn=o);null!==n;)t.push(n),o=kn,null!==(n=M())&&null!==(r=dt())?n=[n,r]:(n=null,kn=o);null!==t?e=[e,t]:(e=null,kn=i)}else e=null,kn=i;return null!==e&&(e=function(e){var t,n;for(n=jn.multi_header.length,t=0;t=700)throw new TypeError("Invalid status_code: "+t);this.request.reply(t,n,r,s)},r.prototype.newMessage=function(e,t){"remote"===e?(this.direction="incoming",this.local_identity=t.to,this.remote_identity=t.from):"local"===e&&(this.direction="outgoing",this.local_identity=t.from,this.remote_identity=t.to),this.ua.newMessage({originator:e,message:this,request:t})}},{"./Constants":1,"./Exceptions":5,"./RequestSender":18,"./SIPMessage":19,"./Transactions":22,"./Utils":26,events:31,util:41}],9:[function(e,t,n){function r(e,t,n){var r;if(!(e&&e instanceof s))throw new TypeError('missing or invalid "uri" parameter');this.uri=e,this.parameters={};for(r in n)this.setParam(r,n[r]);Object.defineProperties(this,{display_name:{get:function(){return t},set:function(e){t=0===e?"0":e}}})}t.exports=r;var s=e("./URI"),i=e("./Grammar");r.prototype={setParam:function(e,t){e&&(this.parameters[e.toLowerCase()]=void 0===t||null===t?null:t.toString())},getParam:function(e){if(e)return this.parameters[e.toLowerCase()]},hasParam:function(e){if(e)return this.parameters.hasOwnProperty(e.toLowerCase())&&!0||!1},deleteParam:function(e){var t;if(e=e.toLowerCase(),this.parameters.hasOwnProperty(e))return t=this.parameters[e],delete this.parameters[e],t},clearParams:function(){this.parameters={}},clone:function(){return new r(this.uri.clone(),this.display_name,JSON.parse(JSON.stringify(this.parameters)))},toString:function(){var e,t;e=this.display_name||0===this.display_name?'"'+this.display_name+'" ':"",e+="<"+this.uri.toString()+">";for(t in this.parameters)e+=";"+t,null!==this.parameters[t]&&(e+="="+this.parameters[t]);return e}},r.parse=function(e){return-1!==(e=i.parse(e,"Name_Addr_Header"))?e:void 0}},{"./Grammar":6,"./URI":25}],10:[function(e,t,n){function r(e,t){var n=t,r=0,s=0;if(e.substring(n,n+2).match(/(^\r\n)/))return-2;for(;0===r;){if(-1===(s=e.indexOf("\r\n",n)))return s;!e.substring(s+2,s+4).match(/(^\r\n)/)&&e.charAt(s+2).match(/(^\s+)/)?n=s+2:r=s}return r}function s(e,t,n,r){var s,i,o,u,c=t.indexOf(":",n),d=t.substring(n,c).trim(),h=t.substring(c+1,r).trim();switch(d.toLowerCase()){case"via":case"v":e.addHeader("via",h),1===e.getHeaders("via").length?(u=e.parseHeader("Via"))&&(e.via=u,e.via_branch=u.branch):u=0;break;case"from":case"f":e.setHeader("from",h),(u=e.parseHeader("from"))&&(e.from=u,e.from_tag=u.getParam("tag"));break;case"to":case"t":e.setHeader("to",h),(u=e.parseHeader("to"))&&(e.to=u,e.to_tag=u.getParam("tag"));break;case"record-route":if(-1===(u=a.parse(h,"Record_Route")))u=void 0;else for(o=u.length,i=0;iK.T2&&(r=K.T2),n.timers.invite2xxTimer=setTimeout(s,r))},r)}function i(){var e=this;this.timers.ackTimer=setTimeout(function(){e.status===q.STATUS_WAITING_FOR_ACK&&(j("no ACK received, terminating the session"),clearTimeout(e.timers.invite2xxTimer),_.call(e,W.BYE),P.call(e,"remote",null,W.causes.NO_ACK))},K.TIMER_H)}function o(e,t){var n=this;this.connection=new RTCPeerConnection(e,t),this.connection.addEventListener("iceconnectionstatechange",function(){"failed"===n.connection.iceConnectionState&&n.terminate({cause:W.causes.RTP_TIMEOUT,status_code:408,reason_phrase:W.causes.RTP_TIMEOUT})})}function a(e,t,n,r){function s(r){var s;o.addEventListener("icecandidate",s=function(n){if(!n.candidate){if(o.removeEventListener("icecandidate",s),i.rtcReady=!0,t){var r={originator:"local",type:e,sdp:o.localDescription.sdp};j('emit "sdp"'),i.emit("sdp",r),t(r.sdp)}t=null}}),o.setLocalDescription(r).then(function(){if("complete"===o.iceGatheringState&&(i.rtcReady=!0,t)){var n={originator:"local",type:e,sdp:o.localDescription.sdp};j('emit "sdp"'),i.emit("sdp",n),t(n.sdp),t=null}}).catch(function(e){i.rtcReady=!0,n&&n(e),G('emit "peerconnection:setlocaldescriptionfailed" [error:%o]',e),i.emit("peerconnection:setlocaldescriptionfailed",e)})}j("createLocalDescription()");var i=this,o=this.connection;if(this.rtcReady=!1,"offer"===e)o.createOffer(r).then(s).catch(function(e){i.rtcReady=!0,n&&n(e),G('emit "peerconnection:createofferfailed" [error:%o]',e),i.emit("peerconnection:createofferfailed",e)});else{if("answer"!==e)throw new Error('createLocalDescription() | type must be "offer" or "answer", but "'+e+'" was given');o.createAnswer(r).then(s).catch(function(e){i.rtcReady=!0,n&&n(e),G('emit "peerconnection:createanswerfailed" [error:%o]',e),i.emit("peerconnection:createanswerfailed",e)})}}function l(e,t,n){var r,s,i="UAS"===t?e.to_tag:e.from_tag,o="UAS"===t?e.from_tag:e.to_tag,a=e.call_id+i+o;return s=this.earlyDialogs[a],n?!!s||((s=new $(this,e,t,$.C.STATUS_EARLY)).error?(j(s.error),D.call(this,"remote",e,W.causes.INTERNAL_ERROR),!1):(this.earlyDialogs[a]=s,!0)):(this.from_tag=e.from_tag,this.to_tag=e.to_tag,s?(s.update(e,t),this.dialog=s,delete this.earlyDialogs[a],!0):(r=new $(this,e,t)).error?(j(r.error),D.call(this,"remote",e,W.causes.INTERNAL_ERROR),!1):(this.dialog=r,!0))}function u(e){function t(){n(function(t){var n=["Contact: "+c.contact];E.call(c,e,n),c.late_sdp&&(t=C.call(c,t)),e.reply(200,null,n,t,function(){c.status=q.STATUS_WAITING_FOR_ACK,s.call(c,e,t),i.call(c)}),"function"==typeof f.callback&&f.callback()},function(){e.reply(500)})}function n(e,t){c.late_sdp?a.call(c,"offer",e,t,c.rtcOfferConstraints):(!0===c.remoteHold&&!1===h?(c.remoteHold=!1,k.call(c,"remote")):!1===c.remoteHold&&!0===h&&(c.remoteHold=!0,U.call(c,"remote")),a.call(c,"answer",e,t,c.rtcAnswerConstraints))}j("receiveReinvite()");var r,o,l,u,c=this,d=e.getHeader("Content-Type"),h=!1,p=!1,f={request:e,callback:void 0,reject:function(t){p=!0;var n=(t=t||{}).status_code||403,r=t.reason_phrase||"",s=t.extraHeaders&&t.extraHeaders.slice()||[];if(this.status!==q.STATUS_CONFIRMED)return!1;if(n<300||n>=700)throw new TypeError("Invalid status_code: "+n);e.reply(n,r,s)}.bind(this)};if(this.emit("reinvite",f),!p)if(e.body){if(this.late_sdp=!1,"application/sdp"!==d)return j("invalid Content-Type"),void e.reply(415);for(r=e.parseSDP(),o=0;o=700)throw new TypeError("Invalid status_code: "+n);e.reply(n,r,s)}.bind(this)};if(this.emit("update",c),!l){if(!e.body){var d=[];return E.call(this,e,d),void e.reply(200,null,d)}if("application/sdp"!==o)return j("invalid Content-Type"),void e.reply(415);for(t=e.parseSDP(),n=0;n=200&&e.status_code<=299)return this.dialog.id.call_id===e.call_id&&this.dialog.id.local_tag===e.from_tag&&this.dialog.id.remote_tag===e.to_tag?void _.call(this,W.ACK):void 0!==(n=new $(this,e,"UAC")).error?void j(n.error):(n.sendRequest({owner:{status:q.STATUS_TERMINATED},onRequestTimeout:function(){},onTransportError:function(){},onDialogError:function(){},receiveResponse:function(){}},W.ACK),void n.sendRequest({owner:{status:q.STATUS_TERMINATED},onRequestTimeout:function(){},onTransportError:function(){},onDialogError:function(){},receiveResponse:function(){}},W.BYE));if(this.isCanceled)return this.isCanceled=!1,void(e.status_code>=100&&e.status_code<200?this.request.cancel(this.cancelReason):e.status_code>=200&&e.status_code<299&&T.call(this,e));if(this.status===q.STATUS_INVITE_SENT||this.status===q.STATUS_1XX_RECEIVED)switch(!0){case/^100$/.test(e.status_code):this.status=q.STATUS_1XX_RECEIVED;break;case/^1[0-9]{2}$/.test(e.status_code):if(!e.to_tag){j("1xx response received without to tag");break}if(e.hasHeader("contact")&&!l.call(this,e,"UAC",!0))break;if(this.status=q.STATUS_1XX_RECEIVED,O.call(this,"remote",e),!e.body)break;r={originator:"remote",type:"answer",sdp:e.body},j('emit "sdp"'),this.emit("sdp",r),s=new RTCSessionDescription({type:"answer",sdp:r.sdp}),this.connection.setRemoteDescription(s).catch(function(e){G('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),i.emit("peerconnection:setremotedescriptionfailed",e)});break;case/^2[0-9]{2}$/.test(e.status_code):if(this.status=q.STATUS_CONFIRMED,!e.body){T.call(this,e,400,W.causes.MISSING_SDP),D.call(this,"remote",e,W.causes.BAD_MEDIA_DESCRIPTION);break}if(!l.call(this,e,"UAC"))break;r={originator:"remote",type:"answer",sdp:e.body},j('emit "sdp"'),this.emit("sdp",r),s=new RTCSessionDescription({type:"answer",sdp:r.sdp}),Promise.resolve().then(function(){if("stable"===i.connection.signalingState)return i.connection.createOffer().then(function(e){return i.connection.setLocalDescription(e)}).catch(function(t){T.call(i,e,500,t.toString()),D.call(i,"local",e,W.causes.WEBRTC_ERROR),G('emit "peerconnection:setlocaldescriptionfailed" [error:%o]',t),i.emit("peerconnection:setlocaldescriptionfailed",t)})}).then(function(){i.connection.setRemoteDescription(s).then(function(){y.call(i,e),x.call(i,"remote",e),_.call(i,W.ACK),N.call(i,"local",null)}).catch(function(t){T.call(i,e,488,"Not Acceptable Here"),D.call(i,"remote",e,W.causes.BAD_MEDIA_DESCRIPTION),G('emit "peerconnection:setremotedescriptionfailed" [error:%o]',t),i.emit("peerconnection:setremotedescriptionfailed",t)})});break;default:t=J.sipErrorCause(e.status_code),D.call(this,"remote",e,t)}}function g(e){function t(e){if(r.status!==q.STATUS_TERMINATED&&(_.call(r,W.ACK),!l))if(y.call(r,e),e.body)if("application/sdp"===e.getHeader("Content-Type")){var t={originator:"remote",type:"answer",sdp:e.body};j('emit "sdp"'),r.emit("sdp",t);var s=new RTCSessionDescription({type:"answer",sdp:t.sdp});r.connection.setRemoteDescription(s).then(function(){i.succeeded&&i.succeeded(e)}).catch(function(e){n(),G('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),r.emit("peerconnection:setremotedescriptionfailed",e)})}else n();else n()}function n(e){i.failed&&i.failed(e)}j("sendReinvite()");var r=this,s=(e=e||{}).extraHeaders||[],i=e.eventHandlers||{},o=e.rtcOfferConstraints||this.rtcOfferConstraints||null,l=!1;s.push("Contact: "+this.contact),s.push("Content-Type: application/sdp"),this.sessionTimers.running&&s.push("Session-Expires: "+this.sessionTimers.currentExpires+";refresher="+(this.sessionTimers.refresher?"uac":"uas")),a.call(this,"offer",function(e){e=C.call(r,e),new Q(r,W.INVITE).send({extraHeaders:s,body:e,eventHandlers:{onSuccessResponse:function(e){t(e),l=!0},onErrorResponse:function(e){n(e)},onTransportError:function(){r.onTransportError()},onRequestTimeout:function(){r.onRequestTimeout()},onDialogError:function(){r.onDialogError()}}})},function(){n()},o)}function v(e){function t(e){if(r.status!==q.STATUS_TERMINATED&&!u)if(y.call(r,e),l){if(!e.body)return void n();if("application/sdp"!==e.getHeader("Content-Type"))return void n();var t={originator:"remote",type:"answer",sdp:e.body};j('emit "sdp"'),r.emit("sdp",t);var s=new RTCSessionDescription({type:"answer",sdp:t.sdp});r.connection.setRemoteDescription(s).then(function(){i.succeeded&&i.succeeded(e)}).catch(function(e){n(),G('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),r.emit("peerconnection:setremotedescriptionfailed",e)})}else i.succeeded&&i.succeeded(e)}function n(e){i.failed&&i.failed(e)}j("sendUpdate()");var r=this,s=(e=e||{}).extraHeaders||[],i=e.eventHandlers||{},o=e.rtcOfferConstraints||this.rtcOfferConstraints||null,l=e.sdpOffer||!1,u=!1;s.push("Contact: "+this.contact),this.sessionTimers.running&&s.push("Session-Expires: "+this.sessionTimers.currentExpires+";refresher="+(this.sessionTimers.refresher?"uac":"uas")),l?(s.push("Content-Type: application/sdp"),a.call(this,"offer",function(e){e=C.call(r,e),new Q(r,W.UPDATE).send({extraHeaders:s,body:e,eventHandlers:{onSuccessResponse:function(e){t(e),u=!0},onErrorResponse:function(e){n(e)},onTransportError:function(){r.onTransportError()},onRequestTimeout:function(){r.onRequestTimeout()},onDialogError:function(){r.onDialogError()}}})},function(){n()},o)):new Q(r,W.UPDATE).send({extraHeaders:s,eventHandlers:{onSuccessResponse:function(e){t(e)},onErrorResponse:function(e){n(e)},onTransportError:function(){r.onTransportError()},onRequestTimeout:function(){r.onRequestTimeout()},onDialogError:function(){r.onDialogError()}}})}function T(e,t,n){j("acceptAndTerminate()");var r=[];t&&(n=n||W.REASON_PHRASE[t]||"",r.push("Reason: SIP ;cause="+t+'; text="'+n+'"')),(this.dialog||l.call(this,e,"UAC"))&&(_.call(this,W.ACK),_.call(this,W.BYE,{extraHeaders:r})),this.status=q.STATUS_TERMINATED}function _(e,t){j("sendRequest()"),new Q(this,e).send(t)}function C(e){var t,n,r;if(!this.localHold&&!this.remoteHold)return e;if(e=B.parse(e),this.localHold&&!this.remoteHold)for(j("mangleOffer() | me on hold, mangling offer"),n=e.media.length,t=0;t=W.MIN_SESSION_EXPIRES?(this.sessionTimers.currentExpires=e.session_expires,n=e.session_expires_refresher||"uas"):(this.sessionTimers.currentExpires=this.sessionTimers.defaultExpires,n="uas"),t.push("Session-Expires: "+this.sessionTimers.currentExpires+";refresher="+n),this.sessionTimers.refresher="uas"===n,A.call(this)}}function y(e){if(this.sessionTimers.enabled){var t;e.session_expires&&e.session_expires>=W.MIN_SESSION_EXPIRES?(this.sessionTimers.currentExpires=e.session_expires,t=e.session_expires_refresher||"uac"):(this.sessionTimers.currentExpires=this.sessionTimers.defaultExpires,t="uac"),this.sessionTimers.refresher="uac"===t,A.call(this)}}function A(){var e=this,t=this.sessionTimers.currentExpires;this.sessionTimers.running=!0,clearTimeout(this.sessionTimers.timer),this.sessionTimers.refresher?this.sessionTimers.timer=setTimeout(function(){e.status!==q.STATUS_TERMINATED&&(j("runSessionTimer() | sending session refresh request"),v.call(e,{eventHandlers:{succeeded:function(t){y.call(e,t)}}}))},500*t):this.sessionTimers.timer=setTimeout(function(){e.status!==q.STATUS_TERMINATED&&(G("runSessionTimer() | timer expired, terminating the session"),e.terminate({cause:W.causes.REQUEST_TIMEOUT,status_code:408,reason_phrase:"Session Timer Expired"}))},1100*t)}function R(e){var t,n,r,s,i,o=this.connection.getLocalStreams();for(r=o.length,t=0;t=W.MIN_SESSION_EXPIRES?this.sessionTimers.defaultExpires=t.sessionTimersExpires:this.sessionTimers.defaultExpires=W.SESSION_EXPIRES),this.data=t.data||this.data,void 0===e)throw new TypeError("Not enough arguments");if(!window.RTCPeerConnection)throw new V.NotSupportedError("WebRTC not supported");if(!(e=this.ua.normalizeTarget(e)))throw new TypeError("Invalid target: "+i);if(this.status!==q.STATUS_NULL)throw new V.InvalidStateError(this.status);for(r in a)this.on(r,a[r]);this.from_tag=J.newTag(),this.anonymous=t.anonymous||!1,this.isCanceled=!1,s={from_tag:this.from_tag},this.contact=this.ua.contact.toString({anonymous:this.anonymous,outbound:!0}),this.anonymous&&(s.from_display_name="Anonymous",s.from_uri="sip:anonymous@anonymous.invalid",l.push("P-Preferred-Identity: "+this.ua.configuration.uri.toString()),l.push("Privacy: id")),l.push("Contact: "+this.contact),l.push("Content-Type: application/sdp"),this.sessionTimers.enabled&&l.push("Session-Expires: "+this.sessionTimers.defaultExpires),this.request=new Y.OutgoingRequest(W.INVITE,e,this.ua,s,l),this.id=this.request.call_id+this.from_tag,o.call(this,d,h),this.ua.sessions[this.id]=this,this.direction="outgoing",this.local_identity=this.request.from,this.remote_identity=this.request.to,n?n(this):w.call(this,"local",this.request),f.call(this,u,p,c)},r.prototype.init_incoming=function(e,t){j("init_incoming()");var n,r=this,s=e.getHeader("Content-Type");e.body&&"application/sdp"!==s?e.reply(415):(this.status=q.STATUS_INVITE_RECEIVED,this.from_tag=e.from_tag,this.id=e.call_id+this.from_tag,this.request=e,this.contact=this.ua.contact.toString(),this.ua.sessions[this.id]=this,e.hasHeader("expires")&&(n=1e3*e.getHeader("expires")),e.to_tag=J.newTag(),l.call(this,e,"UAS",!0)?(e.body?this.late_sdp=!1:this.late_sdp=!0,this.status=q.STATUS_WAITING_FOR_ANSWER,this.timers.userNoAnswerTimer=setTimeout(function(){e.reply(408),D.call(r,"local",null,W.causes.NO_ANSWER)},this.ua.configuration.no_answer_timeout),n&&(this.timers.expiresTimer=setTimeout(function(){r.status===q.STATUS_WAITING_FOR_ANSWER&&(e.reply(487),D.call(r,"system",null,W.causes.EXPIRES))},n)),this.direction="incoming",this.local_identity=e.to,this.remote_identity=e.from,t?t(this):w.call(this,"remote",e),this.status!==q.STATUS_TERMINATED&&(e.reply(180,null,["Contact: "+r.contact]),O.call(r,"local",null))):e.reply(500,"Missing Contact header field"))},r.prototype.answer=function(e){function t(e){if(_.status!==q.STATUS_TERMINATED)if(_.localMediaStream=e,e&&_.connection.addStream(e),j('emit "peerconnection"'),_.emit("peerconnection",{peerconnection:_.connection}),_.late_sdp)r();else{var t={originator:"remote",type:"offer",sdp:C.body};j('emit "sdp"'),_.emit("sdp",t);var n=new RTCSessionDescription({type:"offer",sdp:t.sdp});_.connection.setRemoteDescription(n).then(r).catch(function(e){C.reply(488),D.call(_,"system",null,W.causes.WEBRTC_ERROR),G('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),_.emit("peerconnection:setremotedescriptionfailed",e)})}}function n(){_.status!==q.STATUS_TERMINATED&&(C.reply(480),D.call(_,"local",null,W.causes.USER_DENIED_MEDIA_ACCESS))}function r(){I.call(_,C),_.late_sdp?a.call(_,"offer",u,c,_.rtcOfferConstraints):a.call(_,"answer",u,c,w)}function u(e){_.status!==q.STATUS_TERMINATED&&(E.call(_,C,S),C.reply(200,null,S,e,function(){_.status=q.STATUS_WAITING_FOR_ACK,s.call(_,C,e),i.call(_),x.call(_,"local")},function(){D.call(_,"system",null,W.causes.CONNECTION_ERROR)}))}function c(){_.status!==q.STATUS_TERMINATED&&(C.reply(500),D.call(_,"system",null,W.causes.WEBRTC_ERROR))}j("answer()"),e=e||{};var d,h,p,f,m=!1,g=!1,v=!1,T=!1,_=this,C=this.request,S=e.extraHeaders&&e.extraHeaders.slice()||[],y=e.mediaConstraints||{},A=e.mediaStream||null,R=e.pcConfig||{iceServers:[]},b=e.rtcConstraints||null,w=e.rtcAnswerConstraints||null;if(this.rtcAnswerConstraints=w,this.rtcOfferConstraints=e.rtcOfferConstraints||null,this.sessionTimers.enabled&&J.isDecimal(e.sessionTimersExpires)&&(e.sessionTimersExpires>=W.MIN_SESSION_EXPIRES?this.sessionTimers.defaultExpires=e.sessionTimersExpires:this.sessionTimers.defaultExpires=W.SESSION_EXPIRES),this.data=e.data||this.data,"incoming"!==this.direction)throw new V.NotSupportedError('"answer" not supported for outgoing RTCSession');if(this.status!==q.STATUS_WAITING_FOR_ANSWER)throw new V.InvalidStateError(this.status);if(this.status=q.STATUS_ANSWERED,l.call(this,C,"UAS")){for(clearTimeout(this.timers.userNoAnswerTimer),S.unshift("Contact: "+_.contact),p=C.parseSDP(),Array.isArray(p.media)||(p.media=[p.media]),d=p.media.length;d--;){var O=p.media[d];"audio"===O.type&&(m=!0,O.direction&&"sendrecv"!==O.direction||(v=!0)),"video"===O.type&&(g=!0,O.direction&&"sendrecv"!==O.direction||(T=!0))}if(A&&!1===y.audio)for(h=(f=A.getAudioTracks()).length,d=0;d=700))throw new TypeError("Invalid status_code: "+s);s&&(t="SIP ;cause="+s+' ;text="'+(i=i||W.REASON_PHRASE[s]||"")+'"'),this.status===q.STATUS_NULL?(this.isCanceled=!0,this.cancelReason=t):this.status===q.STATUS_INVITE_SENT?(this.isCanceled=!0,this.cancelReason=t):this.status===q.STATUS_1XX_RECEIVED&&this.request.cancel(t),this.status=q.STATUS_CANCELED,D.call(this,"local",null,W.causes.CANCELED);break;case q.STATUS_WAITING_FOR_ANSWER:case q.STATUS_ANSWERED:if(j("rejecting session"),(s=s||480)<300||s>=700)throw new TypeError("Invalid status_code: "+s);this.request.reply(s,i,o,a),D.call(this,"local",null,W.causes.REJECTED);break;case q.STATUS_WAITING_FOR_ACK:case q.STATUS_CONFIRMED:if(j("terminating session"),i=e.reason_phrase||W.REASON_PHRASE[s]||"",s&&(s<200||s>=700))throw new TypeError("Invalid status_code: "+s);s&&o.push("Reason: SIP ;cause="+s+'; text="'+i+'"'),this.status===q.STATUS_WAITING_FOR_ACK&&"incoming"===this.direction&&this.request.server_transaction.state!==z.C.STATUS_TERMINATED?(n=this.dialog,this.receiveRequest=function(e){e.method===W.ACK&&(_.call(this,W.BYE,{extraHeaders:o,body:a}),n.terminate())},this.request.server_transaction.on("stateChanged",function(){this.state===z.C.STATUS_TERMINATED&&(_.call(l,W.BYE,{extraHeaders:o,body:a}),n.terminate())}),P.call(this,"local",null,r),this.dialog=n,this.ua.dialogs[n.id.toString()]=n):(_.call(this,W.BYE,{extraHeaders:o,body:a}),P.call(this,"local",null,r))}},r.prototype.close=function(){j("close()");var e;if(this.status!==q.STATUS_TERMINATED){if(this.connection)try{this.connection.close()}catch(e){G("close() | error closing the RTCPeerConnection: %o",e)}this.localMediaStream&&this.localMediaStreamLocallyGenerated&&(j("close() | closing local MediaStream"),J.closeMediaStream(this.localMediaStream));for(e in this.timers)clearTimeout(this.timers[e]);clearTimeout(this.sessionTimers.timer),this.dialog&&(this.dialog.terminate(),delete this.dialog);for(e in this.earlyDialogs)this.earlyDialogs[e].terminate(),delete this.earlyDialogs[e];this.status=q.STATUS_TERMINATED,delete this.ua.sessions[this.id]}},r.prototype.sendDTMF=function(e,t){function n(){var e,a;if(o.status===q.STATUS_TERMINATED||!o.tones||i>=o.tones.length)o.tones=null;else{if(e=o.tones[i],i+=1,","===e)a=2e3;else{var l=new Z(o);t.eventHandlers={onFailed:function(){o.tones=null}},l.send(e,t),a=r+s}setTimeout(n,a)}}j("sendDTMF() | tones: %s",e);var r,s,i=0,o=this;if(t=t||{},r=t.duration||null,s=t.interToneGap||null,void 0===e)throw new TypeError("Not enough arguments");if(this.status!==q.STATUS_CONFIRMED&&this.status!==q.STATUS_WAITING_FOR_ACK)throw new V.InvalidStateError(this.status);if("number"==typeof e&&(e=e.toString()),!e||"string"!=typeof e||!e.match(/^[0-9A-DR#*,]+$/i))throw new TypeError("Invalid tones: "+e);if(r&&!J.isDecimal(r))throw new TypeError("Invalid tone duration: "+r);if(r?rZ.C.MAX_DURATION?(j('"duration" value is greater than the maximum allowed, setting it to '+Z.C.MAX_DURATION+" milliseconds"),r=Z.C.MAX_DURATION):r=Math.abs(r):r=Z.C.DEFAULT_DURATION,t.duration=r,s&&!J.isDecimal(s))throw new TypeError("Invalid interToneGap: "+s);s?s=1&&n.test(t[0])&&(this.tone=t[0].replace(n,"$2")),t.length>=2&&r.test(t[1])&&(this.duration=parseInt(t[1].replace(r,"$2"),10))),this.duration||(this.duration=s.DEFAULT_DURATION),this.tone?this.owner.newDTMF({originator:"remote",dtmf:this,request:e}):a("invalid INFO DTMF received, discarded")}},{"../Constants":1,"../Exceptions":5,"../RTCSession":11,debug:29,events:31,util:41}],13:[function(e,t,n){function r(e){this.owner=e,this.direction=null,this.contentType=null,this.body=null,i.EventEmitter.call(this)}t.exports=r;var s=e("util"),i=e("events"),o=e("debug")("JsSIP:ERROR:RTCSession:Info");o.log=console.warn.bind(console);var a=e("../Constants"),l=e("../Exceptions"),u=e("../RTCSession");s.inherits(r,i.EventEmitter),r.prototype.send=function(e,t,n){var r;if(this.direction="outgoing",void 0===e)throw new TypeError("Not enough arguments");if(this.owner.status!==u.C.STATUS_CONFIRMED&&this.owner.status!==u.C.STATUS_WAITING_FOR_ACK)throw new l.InvalidStateError(this.owner.status);this.contentType=e,this.body=t,(r=(n=n||{}).extraHeaders?n.extraHeaders.slice():[]).push("Content-Type: "+e),this.owner.newInfo({originator:"local",info:this,request:this.request}),this.owner.dialog.sendRequest(this,a.INFO,{extraHeaders:r,body:t})},r.prototype.receiveResponse=function(e){switch(!0){case/^1[0-9]{2}$/.test(e.status_code):break;case/^2[0-9]{2}$/.test(e.status_code):this.emit("succeeded",{originator:"remote",response:e});break;default:this.emit("failed",{originator:"remote",response:e})}},r.prototype.onRequestTimeout=function(){o("onRequestTimeout"),this.owner.onRequestTimeout()},r.prototype.onTransportError=function(){o("onTransportError"),this.owner.onTransportError()},r.prototype.onDialogError=function(){o("onDialogError"),this.owner.onDialogError()},r.prototype.init_incoming=function(e){this.direction="incoming",this.request=e,e.reply(200),this.contentType=e.getHeader("content-type"),this.body=e.body,this.owner.newInfo({originator:"remote",info:this,request:e})}},{"../Constants":1,"../Exceptions":5,"../RTCSession":11,debug:29,events:31,util:41}],14:[function(e,t,n){function r(e,t,n){this.session=e,this.id=t,this.expires=n||s.expires,this.active=!0,this.notify(100)}t.exports=r;var s={event_type:"refer",body_type:"message/sipfrag;version=2.0",expires:300},i=e("debug")("JsSIP:RTCSession:ReferNotifier"),o=e("../Constants"),a=e("./Request");r.prototype.notify=function(e,t){i("notify()");var n,r=this;!1!==this.active&&(t=t||o.REASON_PHRASE[e]||"",n=e>=200?"terminated;reason=noresource":"active;expires="+this.expires,new a(this.session,o.NOTIFY).send({extraHeaders:["Event: "+s.event_type+";id="+r.id,"Subscription-State: "+n,"Content-Type: "+s.body_type],body:"SIP/2.0 "+e+" "+t,eventHandlers:{onErrorResponse:function(){r.active=!1}}}))}},{"../Constants":1,"./Request":16,debug:29}],15:[function(e,t,n){function r(e){this.session=e,this.timer=null,this.outgoingRequest=null,a.EventEmitter.call(this)}function s(){console.log("removeSubscriber()"),clearTimeout(this.timer),this.session.referSubscriber=null}t.exports=r;var i={expires:120},o=e("util"),a=e("events"),l=e("debug")("JsSIP:RTCSession:ReferSubscriber"),u=e("../Constants"),c=e("../Grammar"),d=e("./Request");o.inherits(r,a.EventEmitter),r.prototype.sendRefer=function(e,t){l("sendRefer()");var n,r,o,a=null,c=this;n=(t=t||{}).extraHeaders?t.extraHeaders.slice():[],r=t.eventHandlers||{};for(var h in r)this.on(h,r[h]);t.replaces&&(a=t.replaces.request.call_id,a+=";to-tag="+t.replaces.to_tag,a+=";from-tag="+t.replaces.from_tag,a=encodeURIComponent(a)),o="Refer-To: <"+e+(a?"?Replaces="+a:"")+">",n.push(o);var p=new d(this.session,u.REFER);this.timer=setTimeout(function(){s.call(c)},1e3*i.expires),p.send({extraHeaders:n,eventHandlers:{onSuccessResponse:function(e){c.emit("requestSucceeded",{response:e})},onErrorResponse:function(e){c.emit("requestFailed",{response:e,cause:u.causes.REJECTED})},onTransportError:function(){s.call(c),c.emit("requestFailed",{response:null,cause:u.causes.CONNECTION_ERROR})},onRequestTimeout:function(){s.call(c),c.emit("requestFailed",{response:null,cause:u.causes.REQUEST_TIMEOUT})},onDialogError:function(){s.call(c),c.emit("requestFailed",{response:null,cause:u.causes.DIALOG_ERROR})}}}),this.outgoingRequest=p.outgoingRequest},r.prototype.receiveNotify=function(e){l("receiveNotify()");var t;if(e.body)if(-1!==(t=c.parse(e.body,"Status_Line")))switch(!0){case/^100$/.test(t.status_code):this.emit("trying",{request:e,status_line:t});break;case/^1[0-9]{2}$/.test(t.status_code):this.emit("progress",{request:e,status_line:t});break;case/^2[0-9]{2}$/.test(t.status_code):s.call(this),this.emit("accepted",{request:e,status_line:t});break;default:s.call(this),this.emit("failed",{request:e,status_line:t})}else l('receiveNotify() | error parsing NOTIFY body: "'+e.body+'"')}},{"../Constants":1,"../Grammar":6,"./Request":16,debug:29,events:31,util:41}],16:[function(e,t,n){function r(e,t){if(s("new | %s",t),this.session=e,this.method=t,this.outgoingRequest=null,this.session.status!==l.C.STATUS_1XX_RECEIVED&&this.session.status!==l.C.STATUS_WAITING_FOR_ANSWER&&this.session.status!==l.C.STATUS_WAITING_FOR_ACK&&this.session.status!==l.C.STATUS_CONFIRMED&&this.session.status!==l.C.STATUS_TERMINATED)throw new a.InvalidStateError(this.session.status);if(this.session.status===l.C.STATUS_TERMINATED&&t!==o.BYE)throw new a.InvalidStateError(this.session.status)}t.exports=r;var s=e("debug")("JsSIP:RTCSession:Request"),i=e("debug")("JsSIP:ERROR:RTCSession:Request");i.log=console.warn.bind(console);var o=e("../Constants"),a=e("../Exceptions"),l=e("../RTCSession");r.prototype.send=function(e){var t=(e=e||{}).extraHeaders&&e.extraHeaders.slice()||[],n=e.body||null;this.eventHandlers=e.eventHandlers||{},this.outgoingRequest=this.session.dialog.sendRequest(this,this.method,{extraHeaders:t,body:n})},r.prototype.receiveResponse=function(e){switch(!0){case/^1[0-9]{2}$/.test(e.status_code):s("onProgressResponse"),this.eventHandlers.onProgressResponse&&this.eventHandlers.onProgressResponse(e);break;case/^2[0-9]{2}$/.test(e.status_code):s("onSuccessResponse"),this.eventHandlers.onSuccessResponse&&this.eventHandlers.onSuccessResponse(e);break;default:s("onErrorResponse"),this.eventHandlers.onErrorResponse&&this.eventHandlers.onErrorResponse(e)}},r.prototype.onRequestTimeout=function(){i("onRequestTimeout"),this.eventHandlers.onRequestTimeout&&this.eventHandlers.onRequestTimeout()},r.prototype.onTransportError=function(){i("onTransportError"),this.eventHandlers.onTransportError&&this.eventHandlers.onTransportError()},r.prototype.onDialogError=function(){i("onDialogError"),this.eventHandlers.onDialogError&&this.eventHandlers.onDialogError()}},{"../Constants":1,"../Exceptions":5,"../RTCSession":11,debug:29}],17:[function(e,t,n){function r(e,t){this.ua=e,this.transport=t,this.registrar=e.configuration.registrar_server,this.expires=e.configuration.register_expires,this.call_id=i.createRandomToken(22),this.cseq=0,this.to_uri=e.configuration.uri,this.registrationTimer=null,this.registering=!1,this.registered=!1,this.contact=this.ua.contact.toString(),this.contact+=";+sip.ice",this.extraHeaders=[],this.extraContactParams="",this.contact+=";reg-id=1",this.contact+=';+sip.instance=""'}t.exports=r;var s=e("debug")("JsSIP:Registrator"),i=e("./Utils"),o=e("./Constants"),a=e("./SIPMessage"),l=e("./RequestSender");r.prototype={setExtraHeaders:function(e){Array.isArray(e)||(e=[]),this.extraHeaders=e.slice()},setExtraContactParams:function(e){e instanceof Object||(e={}),this.extraContactParams="";for(var t in e){var n=e[t];this.extraContactParams+=";"+t,n&&(this.extraContactParams+="="+n)}},register:function(){var e,t,n,r=this;this.registering?s("Register request in progress..."):((n=this.extraHeaders.slice()).push("Contact: "+this.contact+";expires="+this.expires+this.extraContactParams),n.push("Expires: "+this.expires),this.request=new a.OutgoingRequest(o.REGISTER,this.registrar,this.ua,{to_uri:this.to_uri,call_id:this.call_id,cseq:this.cseq+=1},n),e=new l(this,this.ua),this.receiveResponse=function(e){var n,a,l=e.getHeaders("contact").length;if(e.cseq===this.cseq)switch(null!==this.registrationTimer&&(clearTimeout(this.registrationTimer),this.registrationTimer=null),!0){case/^1[0-9]{2}$/.test(e.status_code):break;case/^2[0-9]{2}$/.test(e.status_code):if(this.registering=!1,e.hasHeader("expires")&&(a=e.getHeader("expires")),!l){s("no Contact header in response to REGISTER, response ignored");break}for(;l--;){if((n=e.parseHeader("contact",l)).uri.user===this.ua.contact.uri.user){a=n.getParam("expires");break}n=null}if(!n){s("no Contact header pointing to us, response ignored");break}a||(a=this.expires),this.registrationTimer=setTimeout(function(){r.registrationTimer=null,0===r.ua.listeners("registrationExpiring").length?r.register():r.ua.emit("registrationExpiring")},1e3*a-5e3),n.hasParam("temp-gruu")&&(this.ua.contact.temp_gruu=n.getParam("temp-gruu").replace(/"/g,"")),n.hasParam("pub-gruu")&&(this.ua.contact.pub_gruu=n.getParam("pub-gruu").replace(/"/g,"")),this.registered||(this.registered=!0,this.ua.registered({response:e}));break;case/^423$/.test(e.status_code):e.hasHeader("min-expires")?(this.expires=e.getHeader("min-expires"),this.register()):(s("423 response received for REGISTER without Min-Expires"),this.registrationFailure(e,o.causes.SIP_FAILURE_CODE));break;default:t=i.sipErrorCause(e.status_code),this.registrationFailure(e,t)}},this.onRequestTimeout=function(){this.registrationFailure(null,o.causes.REQUEST_TIMEOUT)},this.onTransportError=function(){this.registrationFailure(null,o.causes.CONNECTION_ERROR)},this.registering=!0,e.send())},unregister:function(e){var t;if(this.registered){e=e||{},this.registered=!1,null!==this.registrationTimer&&(clearTimeout(this.registrationTimer),this.registrationTimer=null),t=this.extraHeaders.slice(),e.all?(t.push("Contact: *"+this.extraContactParams),t.push("Expires: 0"),this.request=new a.OutgoingRequest(o.REGISTER,this.registrar,this.ua,{to_uri:this.to_uri,call_id:this.call_id,cseq:this.cseq+=1},t)):(t.push("Contact: "+this.contact+";expires=0"+this.extraContactParams),t.push("Expires: 0"),this.request=new a.OutgoingRequest(o.REGISTER,this.registrar,this.ua,{to_uri:this.to_uri,call_id:this.call_id,cseq:this.cseq+=1},t));var n=new l(this,this.ua);this.receiveResponse=function(e){var t;switch(!0){case/^1[0-9]{2}$/.test(e.status_code):break;case/^2[0-9]{2}$/.test(e.status_code):this.unregistered(e);break;default:t=i.sipErrorCause(e.status_code),this.unregistered(e,t)}},this.onRequestTimeout=function(){this.unregistered(null,o.causes.REQUEST_TIMEOUT)},this.onTransportError=function(){this.unregistered(null,o.causes.CONNECTION_ERROR)},n.send()}else s("already unregistered")},registrationFailure:function(e,t){this.registering=!1,this.ua.registrationFailed({response:e||null,cause:t}),this.registered&&(this.registered=!1,this.ua.unregistered({response:e||null,cause:t}))},unregistered:function(e,t){this.registering=!1,this.registered=!1,this.ua.unregistered({response:e||null,cause:t||null})},onTransportClosed:function(){this.registering=!1,null!==this.registrationTimer&&(clearTimeout(this.registrationTimer),this.registrationTimer=null),this.registered&&(this.registered=!1,this.ua.unregistered({}))},close:function(){this.registered&&this.unregister()}}},{"./Constants":1,"./RequestSender":18,"./SIPMessage":19,"./Utils":26,debug:29}],18:[function(e,t,n){function r(e,t){this.ua=t,this.applicant=e,this.method=e.request.method,this.request=e.request,this.auth=null,this.challenged=!1,this.staled=!1,t.status!==o.C.STATUS_USER_CLOSED||this.method===i.BYE&&this.method===i.ACK||this.onTransportError()}t.exports=r;var s=e("debug")("JsSIP:RequestSender"),i=e("./Constants"),o=e("./UA"),a=e("./DigestAuthentication"),l=e("./Transactions");r.prototype={send:function(){switch(this.method){case"INVITE":this.clientTransaction=new l.InviteClientTransaction(this,this.request,this.ua.transport);break;case"ACK":this.clientTransaction=new l.AckClientTransaction(this,this.request,this.ua.transport);break;default:this.clientTransaction=new l.NonInviteClientTransaction(this,this.request,this.ua.transport)}this.clientTransaction.send()},onRequestTimeout:function(){this.applicant.onRequestTimeout()},onTransportError:function(){this.applicant.onTransportError()},receiveResponse:function(e){var t,n,r,o=e.status_code;if(401!==o&&407!==o||null===this.ua.configuration.password&&null===this.ua.configuration.ha1)this.applicant.receiveResponse(e);else{if(401===e.status_code?(n=e.parseHeader("www-authenticate"),r="authorization"):(n=e.parseHeader("proxy-authenticate"),r="proxy-authorization"),!n)return s(e.status_code+" with wrong or missing challenge, cannot authenticate"),void this.applicant.receiveResponse(e);if(!this.challenged||!this.staled&&!0===n.stale){if(this.auth||(this.auth=new a({username:this.ua.configuration.authorization_user,password:this.ua.configuration.password,realm:this.ua.configuration.realm,ha1:this.ua.configuration.ha1})),!this.auth.authenticate(this.request,n))return void this.applicant.receiveResponse(e);this.challenged=!0,this.ua.set("realm",this.auth.get("realm")),this.ua.set("ha1",this.auth.get("ha1")),n.stale&&(this.staled=!0),t=e.method===i.REGISTER?this.applicant.cseq+=1:this.request.dialog?this.request.dialog.local_seqnum+=1:this.request.cseq+1,this.request=this.applicant.request=this.request.clone(),this.request.cseq=t,this.request.setHeader("cseq",t+" "+this.method),this.request.setHeader(r,this.auth.toString()),this.send()}else this.applicant.receiveResponse(e)}}}},{"./Constants":1,"./DigestAuthentication":4,"./Transactions":22,"./UA":24,debug:29}],19:[function(e,t,n){function r(e,t,n,r,s,i){var o,a,l,h;if(r=r||{},!e||!t||!n)return null;this.ua=n,this.headers={},this.method=e,this.ruri=t,this.body=i,this.extraHeaders=s&&s.slice()||[],r.route_set?this.setHeader("route",r.route_set):n.configuration.use_preloaded_route&&this.setHeader("route","<"+n.transport.sip_uri+";lr>"),this.setHeader("via",""),this.setHeader("max-forwards",u.MAX_FORWARDS),o=r.to_display_name||0===r.to_display_name?'"'+r.to_display_name+'" ':"",o+="<"+(r.to_uri||t)+">",o+=r.to_tag?";tag="+r.to_tag:"",this.to=new d.parse(o),this.setHeader("to",o),a=r.from_display_name||0===r.from_display_name?'"'+r.from_display_name+'" ':n.configuration.display_name?'"'+n.configuration.display_name+'" ':"",a+="<"+(r.from_uri||n.configuration.uri)+">;tag=",a+=r.from_tag||c.newTag(),this.from=new d.parse(a),this.setHeader("from",a),l=r.call_id||n.configuration.jssip_id+c.createRandomToken(15),this.call_id=l,this.setHeader("call-id",l),h=r.cseq||Math.floor(1e4*Math.random()),this.cseq=h,this.setHeader("cseq",h+" "+e)}function s(){this.data=null,this.headers=null,this.method=null,this.via=null,this.via_branch=null,this.call_id=null,this.cseq=null,this.from=null,this.from_tag=null,this.to=null,this.to_tag=null,this.body=null,this.sdp=null}function i(e){this.ua=e,this.headers={},this.ruri=null,this.transport=null,this.server_transaction=null}function o(){this.headers={},this.status_code=null,this.reason_phrase=null}t.exports={OutgoingRequest:r,IncomingRequest:i,IncomingResponse:o};var a=e("debug")("JsSIP:SIPMessage"),l=e("sdp-transform"),u=e("./Constants"),c=e("./Utils"),d=e("./NameAddrHeader"),h=e("./Grammar");r.prototype={setHeader:function(e,t){var n,r;for(n=new RegExp("^\\s*"+e+"\\s*:","i"),r=0;r=this.headers[e].length))return n=this.headers[e][t],r=n.raw,n.parsed?n.parsed:-1===(s=h.parse(r,e.replace(/-/g,"_")))?(this.headers[e].splice(t,1),void a('error parsing "'+e+'" header field with value "'+r+'"')):(n.parsed=s,s);a('not so many "'+e+'" headers present')}else a('header "'+e+'" not present')},s:function(e,t){return this.parseHeader(e,t)},setHeader:function(e,t){var n={raw:t};this.headers[c.headerize(e)]=[n]},parseSDP:function(e){return!e&&this.sdp?this.sdp:(this.sdp=l.parse(this.body||""),this.sdp)},toString:function(){return this.data}},(i.prototype=new s).reply=function(e,t,n,r,s,i){var o,a,l,d,h,p=[],f=this.getHeader("To"),m=0,g=0;if(e=e||null,t=t||null,!e||e<100||e>699)throw new TypeError("Invalid status_code: "+e);if(t&&"string"!=typeof t&&!(t instanceof String))throw new TypeError("Invalid reason_phrase: "+t);if(t=t||u.REASON_PHRASE[e]||"",n=n&&n.slice()||[],h="SIP/2.0 "+e+" "+t+"\r\n",this.method===u.INVITE&&e>100&&e<=200)for(l=(o=this.getHeaders("record-route")).length,m;m100?f+=";tag="+c.newTag():this.to_tag&&!this.s("to").hasParam("tag")&&(f+=";tag="+this.to_tag),h+="To: "+f+"\r\n",h+="From: "+this.getHeader("From")+"\r\n",h+="Call-ID: "+this.call_id+"\r\n",h+="CSeq: "+this.cseq+" "+this.method+"\r\n",l=n.length,d=0;d699)throw new TypeError("Invalid status_code: "+e);if(t&&"string"!=typeof t&&!(t instanceof String))throw new TypeError("Invalid reason_phrase: "+t);for(r="SIP/2.0 "+e+" "+(t=t||u.REASON_PHRASE[e]||"")+"\r\n",s;s100?n+=";tag="+c.newTag():this.to_tag&&!this.s("to").hasParam("tag")&&(n+=";tag="+this.to_tag),r+="To: "+n+"\r\n",r+="From: "+this.getHeader("From")+"\r\n",r+="Call-ID: "+this.call_id+"\r\n",r+="CSeq: "+this.cseq+" "+this.method+"\r\n",r+="Content-Length: 0\r\n\r\n",this.transport.send(r)},o.prototype=new s},{"./Constants":1,"./Grammar":6,"./NameAddrHeader":9,"./Utils":26,debug:29,"sdp-transform":35}],20:[function(e,t,n){function r(){}t.exports=r;var s=e("./Utils"),i=e("./Grammar"),o=e("debug")("JsSIP:ERROR:Socket");o.log=console.warn.bind(console),r.isSocket=function(e){if(Array.isArray(e))return!1;if(void 0===e)return o("undefined JsSIP.Socket instance"),!1;try{if(!s.isString(e.url))throw o("missing or invalid JsSIP.Socket url property"),new Error;if(!s.isString(e.via_transport))throw o("missing or invalid JsSIP.Socket via_transport property"),new Error;if(-1===i.parse(e.sip_uri,"SIP_URI"))throw o("missing or invalid JsSIP.Socket sip_uri property"),new Error}catch(e){return!1}try{["connect","disconnect","send"].forEach(function(t){if(!s.isFunction(e[t]))throw o("missing or invalid JsSIP.Socket method: "+t),new Error})}catch(e){return!1}return!0}},{"./Grammar":6,"./Utils":26,debug:29}],21:[function(e,t,n){var r=500,s={T1:r,T2:4e3,T4:5e3,TIMER_B:32e3,TIMER_D:0,TIMER_F:32e3,TIMER_H:32e3,TIMER_I:0,TIMER_J:0,TIMER_K:0,TIMER_L:32e3,TIMER_M:32e3,PROVISIONAL_RESPONSE_INTERVAL:6e4};t.exports=s},{}],22:[function(e,t,n){function r(e,t,n){var r;this.type=l.NON_INVITE_CLIENT,this.transport=n,this.id="z9hG4bK"+Math.floor(1e7*Math.random()),this.request_sender=e,this.request=t,r="SIP/2.0/"+n.via_transport,r+=" "+e.ua.configuration.via_host+";branch="+this.id,this.request.setHeader("via",r),this.request_sender.ua.newTransaction(this),c.EventEmitter.call(this)}function s(e,t,n){var r,s=this;this.type=l.INVITE_CLIENT,this.transport=n,this.id="z9hG4bK"+Math.floor(1e7*Math.random()),this.request_sender=e,this.request=t,r="SIP/2.0/"+n.via_transport,r+=" "+e.ua.configuration.via_host+";branch="+this.id,this.request.setHeader("via",r),this.request_sender.ua.newTransaction(this),this.request.cancel=function(e){s.cancel_request(s,e)},c.EventEmitter.call(this)}function i(e,t,n){var r;this.transport=n,this.id="z9hG4bK"+Math.floor(1e7*Math.random()),this.request_sender=e,this.request=t,r="SIP/2.0/"+n.via_transport,r+=" "+e.ua.configuration.via_host+";branch="+this.id,this.request.setHeader("via",r),c.EventEmitter.call(this)}function o(e,t){this.type=l.NON_INVITE_SERVER,this.id=e.via_branch,this.request=e,this.transport=e.transport,this.ua=t,this.last_response="",e.server_transaction=this,this.state=l.STATUS_TRYING,t.newTransaction(this),c.EventEmitter.call(this)}function a(e,t){this.type=l.INVITE_SERVER,this.id=e.via_branch,this.request=e,this.transport=e.transport,this.ua=t,this.last_response="",e.server_transaction=this,this.state=l.STATUS_PROCEEDING,t.newTransaction(this),this.resendProvisionalTimer=null,e.reply(100),c.EventEmitter.call(this)}t.exports={C:null,NonInviteClientTransaction:r,InviteClientTransaction:s,AckClientTransaction:i,NonInviteServerTransaction:o,InviteServerTransaction:a,checkTransaction:function(e,t){var n;switch(t.method){case g.INVITE:if(n=e.transactions.ist[t.via_branch]){switch(n.state){case l.STATUS_PROCEEDING:n.transport.send(n.last_response);break;case l.STATUS_ACCEPTED:}return!0}break;case g.ACK:if(!(n=e.transactions.ist[t.via_branch]))return!1;if(n.state===l.STATUS_ACCEPTED)return!1;if(n.state===l.STATUS_COMPLETED)return n.state=l.STATUS_CONFIRMED,n.I=setTimeout(function(){n.timer_I()},v.TIMER_I),!0;break;case g.CANCEL:return(n=e.transactions.ist[t.via_branch])?(t.reply_sl(200),n.state!==l.STATUS_PROCEEDING):(t.reply_sl(481),!0);default:if(n=e.transactions.nist[t.via_branch]){switch(n.state){case l.STATUS_TRYING:break;case l.STATUS_PROCEEDING:case l.STATUS_COMPLETED:n.transport.send(n.last_response)}return!0}}}};var l={STATUS_TRYING:1,STATUS_PROCEEDING:2,STATUS_CALLING:3,STATUS_ACCEPTED:4,STATUS_COMPLETED:5,STATUS_TERMINATED:6,STATUS_CONFIRMED:7,NON_INVITE_CLIENT:"nict",NON_INVITE_SERVER:"nist",INVITE_CLIENT:"ict",INVITE_SERVER:"ist"};t.exports.C=l;var u=e("util"),c=e("events"),d=e("debug")("JsSIP:NonInviteClientTransaction"),h=e("debug")("JsSIP:InviteClientTransaction"),p=e("debug")("JsSIP:AckClientTransaction"),f=e("debug")("JsSIP:NonInviteServerTransaction"),m=e("debug")("JsSIP:InviteServerTransaction"),g=e("./Constants"),v=e("./Timers");u.inherits(r,c.EventEmitter),r.prototype.stateChanged=function(e){this.state=e,this.emit("stateChanged")},r.prototype.send=function(){var e=this;this.stateChanged(l.STATUS_TRYING),this.F=setTimeout(function(){e.timer_F()},v.TIMER_F),this.transport.send(this.request)||this.onTransportError()},r.prototype.onTransportError=function(){d("transport error occurred, deleting transaction "+this.id),clearTimeout(this.F),clearTimeout(this.K),this.stateChanged(l.STATUS_TERMINATED),this.request_sender.ua.destroyTransaction(this),this.request_sender.onTransportError()},r.prototype.timer_F=function(){d("Timer F expired for transaction "+this.id),this.stateChanged(l.STATUS_TERMINATED),this.request_sender.ua.destroyTransaction(this),this.request_sender.onRequestTimeout()},r.prototype.timer_K=function(){this.stateChanged(l.STATUS_TERMINATED),this.request_sender.ua.destroyTransaction(this)},r.prototype.receiveResponse=function(e){var t=this,n=e.status_code;if(n<200)switch(this.state){case l.STATUS_TRYING:case l.STATUS_PROCEEDING:this.stateChanged(l.STATUS_PROCEEDING),this.request_sender.receiveResponse(e)}else switch(this.state){case l.STATUS_TRYING:case l.STATUS_PROCEEDING:this.stateChanged(l.STATUS_COMPLETED),clearTimeout(this.F),408===n?this.request_sender.onRequestTimeout():this.request_sender.receiveResponse(e),this.K=setTimeout(function(){t.timer_K()},v.TIMER_K);break;case l.STATUS_COMPLETED:}},u.inherits(s,c.EventEmitter),s.prototype.stateChanged=function(e){this.state=e,this.emit("stateChanged")},s.prototype.send=function(){var e=this;this.stateChanged(l.STATUS_CALLING),this.B=setTimeout(function(){e.timer_B()},v.TIMER_B),this.transport.send(this.request)||this.onTransportError()},s.prototype.onTransportError=function(){clearTimeout(this.B),clearTimeout(this.D),clearTimeout(this.M),this.state!==l.STATUS_ACCEPTED&&(h("transport error occurred, deleting transaction "+this.id),this.request_sender.onTransportError()),this.stateChanged(l.STATUS_TERMINATED),this.request_sender.ua.destroyTransaction(this)},s.prototype.timer_M=function(){h("Timer M expired for transaction "+this.id),this.state===l.STATUS_ACCEPTED&&(clearTimeout(this.B),this.stateChanged(l.STATUS_TERMINATED),this.request_sender.ua.destroyTransaction(this))},s.prototype.timer_B=function(){h("Timer B expired for transaction "+this.id),this.state===l.STATUS_CALLING&&(this.stateChanged(l.STATUS_TERMINATED),this.request_sender.ua.destroyTransaction(this),this.request_sender.onRequestTimeout())},s.prototype.timer_D=function(){h("Timer D expired for transaction "+this.id),clearTimeout(this.B),this.stateChanged(l.STATUS_TERMINATED),this.request_sender.ua.destroyTransaction(this)},s.prototype.sendACK=function(e){var t=this;this.ack="ACK "+this.request.ruri+" SIP/2.0\r\n",this.ack+="Via: "+this.request.headers.Via.toString()+"\r\n",this.request.headers.Route&&(this.ack+="Route: "+this.request.headers.Route.toString()+"\r\n"),this.ack+="To: "+e.getHeader("to")+"\r\n",this.ack+="From: "+this.request.headers.From.toString()+"\r\n",this.ack+="Call-ID: "+this.request.headers["Call-ID"].toString()+"\r\n",this.ack+="CSeq: "+this.request.headers.CSeq.toString().split(" ")[0],this.ack+=" ACK\r\n",this.ack+="Content-Length: 0\r\n\r\n",this.D=setTimeout(function(){t.timer_D()},v.TIMER_D),this.transport.send(this.ack)},s.prototype.cancel_request=function(e,t){var n=e.request;this.cancel=g.CANCEL+" "+n.ruri+" SIP/2.0\r\n",this.cancel+="Via: "+n.headers.Via.toString()+"\r\n",this.request.headers.Route&&(this.cancel+="Route: "+n.headers.Route.toString()+"\r\n"),this.cancel+="To: "+n.headers.To.toString()+"\r\n",this.cancel+="From: "+n.headers.From.toString()+"\r\n",this.cancel+="Call-ID: "+n.headers["Call-ID"].toString()+"\r\n",this.cancel+="CSeq: "+n.headers.CSeq.toString().split(" ")[0]+" CANCEL\r\n",t&&(this.cancel+="Reason: "+t+"\r\n"),this.cancel+="Content-Length: 0\r\n\r\n",this.state===l.STATUS_PROCEEDING&&this.transport.send(this.cancel)},s.prototype.receiveResponse=function(e){var t=this,n=e.status_code;if(n>=100&&n<=199)switch(this.state){case l.STATUS_CALLING:this.stateChanged(l.STATUS_PROCEEDING),this.request_sender.receiveResponse(e);break;case l.STATUS_PROCEEDING:this.request_sender.receiveResponse(e)}else if(n>=200&&n<=299)switch(this.state){case l.STATUS_CALLING:case l.STATUS_PROCEEDING:this.stateChanged(l.STATUS_ACCEPTED),this.M=setTimeout(function(){t.timer_M()},v.TIMER_M),this.request_sender.receiveResponse(e);break;case l.STATUS_ACCEPTED:this.request_sender.receiveResponse(e)}else if(n>=300&&n<=699)switch(this.state){case l.STATUS_CALLING:case l.STATUS_PROCEEDING:this.stateChanged(l.STATUS_COMPLETED),this.sendACK(e),this.request_sender.receiveResponse(e);break;case l.STATUS_COMPLETED:this.sendACK(e)}},u.inherits(i,c.EventEmitter),i.prototype.send=function(){this.transport.send(this.request)||this.onTransportError()},i.prototype.onTransportError=function(){p("transport error occurred for transaction "+this.id),this.request_sender.onTransportError()},u.inherits(o,c.EventEmitter),o.prototype.stateChanged=function(e){this.state=e,this.emit("stateChanged")},o.prototype.timer_J=function(){f("Timer J expired for transaction "+this.id),this.stateChanged(l.STATUS_TERMINATED),this.ua.destroyTransaction(this)},o.prototype.onTransportError=function(){this.transportError||(this.transportError=!0,f("transport error occurred, deleting transaction "+this.id),clearTimeout(this.J),this.stateChanged(l.STATUS_TERMINATED),this.ua.destroyTransaction(this))},o.prototype.receiveResponse=function(e,t,n,r){var s=this;if(100===e)switch(this.state){case l.STATUS_TRYING:this.stateChanged(l.STATUS_PROCEEDING),this.transport.send(t)||this.onTransportError();break;case l.STATUS_PROCEEDING:this.last_response=t,this.transport.send(t)?n&&n():(this.onTransportError(),r&&r())}else if(e>=200&&e<=699)switch(this.state){case l.STATUS_TRYING:case l.STATUS_PROCEEDING:this.stateChanged(l.STATUS_COMPLETED),this.last_response=t,this.J=setTimeout(function(){s.timer_J()},v.TIMER_J),this.transport.send(t)?n&&n():(this.onTransportError(),r&&r());break;case l.STATUS_COMPLETED:}},u.inherits(a,c.EventEmitter),a.prototype.stateChanged=function(e){this.state=e,this.emit("stateChanged")},a.prototype.timer_H=function(){m("Timer H expired for transaction "+this.id),this.state===l.STATUS_COMPLETED&&m("ACK not received, dialog will be terminated"),this.stateChanged(l.STATUS_TERMINATED),this.ua.destroyTransaction(this)},a.prototype.timer_I=function(){this.stateChanged(l.STATUS_TERMINATED)},a.prototype.timer_L=function(){m("Timer L expired for transaction "+this.id),this.state===l.STATUS_ACCEPTED&&(this.stateChanged(l.STATUS_TERMINATED),this.ua.destroyTransaction(this))},a.prototype.onTransportError=function(){this.transportError||(this.transportError=!0,m("transport error occurred, deleting transaction "+this.id),null!==this.resendProvisionalTimer&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null),clearTimeout(this.L),clearTimeout(this.H),clearTimeout(this.I),this.stateChanged(l.STATUS_TERMINATED),this.ua.destroyTransaction(this))},a.prototype.resend_provisional=function(){this.transport.send(this.last_response)||this.onTransportError()},a.prototype.receiveResponse=function(e,t,n,r){var s=this;if(e>=100&&e<=199)switch(this.state){case l.STATUS_PROCEEDING:this.transport.send(t)||this.onTransportError(),this.last_response=t}if(e>100&&e<=199&&this.state===l.STATUS_PROCEEDING)null===this.resendProvisionalTimer&&(this.resendProvisionalTimer=setInterval(function(){s.resend_provisional()},v.PROVISIONAL_RESPONSE_INTERVAL));else if(e>=200&&e<=299)switch(this.state){case l.STATUS_PROCEEDING:this.stateChanged(l.STATUS_ACCEPTED),this.last_response=t,this.L=setTimeout(function(){s.timer_L()},v.TIMER_L),null!==this.resendProvisionalTimer&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null);case l.STATUS_ACCEPTED:this.transport.send(t)?n&&n():(this.onTransportError(),r&&r())}else if(e>=300&&e<=699)switch(this.state){case l.STATUS_PROCEEDING:null!==this.resendProvisionalTimer&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null),this.transport.send(t)?(this.stateChanged(l.STATUS_COMPLETED),this.H=setTimeout(function(){s.timer_H()},v.TIMER_H),n&&n()):(this.onTransportError(),r&&r())}}},{"./Constants":1,"./Timers":21,debug:29,events:31,util:41}],23:[function(e,t,n){function r(e,t){if(c("new()"),this.status=h.STATUS_DISCONNECTED,this.socket=null,this.sockets=[],this.recovery_options=t||h.recovery_options,this.recover_attempts=0,this.recovery_timer=null,this.close_requested=!1,void 0===e)throw new TypeError("Invalid argument. undefined 'sockets' argument");e instanceof Array||(e=[e]),e.forEach(function(e){if(!u.isSocket(e.socket))throw new TypeError("Invalid argument. invalid 'JsSIP.Socket' instance");if(e.weight&&!Number(e.weight))throw new TypeError("Invalid argument. 'weight' attribute is not a number");this.sockets.push({socket:e.socket,weight:e.weight||0,status:h.SOCKET_STATUS_READY})},this),Object.defineProperties(this,{via_transport:{get:function(){return this.socket.via_transport}},url:{get:function(){return this.socket.url}},sip_uri:{get:function(){return this.socket.sip_uri}}}),l.call(this)}function s(){this.recover_attempts=0,this.status=h.STATUS_CONNECTED,null!==this.recovery_timer&&(clearTimeout(this.recovery_timer),this.recovery_timer=null),this.onconnect({socket:this})}function i(e,t,n){this.status=h.STATUS_DISCONNECTED,this.ondisconnect({socket:this.socket,error:e,code:t,reason:n}),this.close_requested||(this.sockets.forEach(function(e){this.socket===e.socket&&(e.status=h.SOCKET_STATUS_ERROR)},this),a.call(this,e))}function o(e){if("\r\n"!==e){if("string"!=typeof e){try{e=String.fromCharCode.apply(null,new Uint8Array(e))}catch(e){return void c("received binary message failed to be converted into string, message discarded")}c("received binary message:\n\n"+e+"\n")}else c("received text message:\n\n"+e+"\n");this.ondata({transport:this,message:e})}else c("received message with CRLF Keep Alive response")}function a(){var e,t=this;this.recover_attempts+=1,(e=Math.floor(Math.random()*Math.pow(2,this.recover_attempts)+1))this.recovery_options.max_interval&&(e=this.recovery_options.max_interval),c("reconnection attempt: "+this.recover_attempts+". next connection attempt in "+e+" seconds"),this.recovery_timer=setTimeout(function(){t.close_requested||t.isConnected()||t.isConnecting()||(l.call(t),t.connect())},1e3*e)}function l(){var e=[];if(this.sockets.forEach(function(t){t.status!==h.SOCKET_STATUS_ERROR&&(0===e.length?e.push(t):t.weight>e[0].weight?e=[t]:t.weight===e[0].weight&&e.push(t))}),0===e.length)return this.sockets.forEach(function(e){e.status=h.SOCKET_STATUS_READY}),void l.call(this);var t=Math.floor(Math.random()*e.length);this.socket=e[t].socket}t.exports=r;var u=e("./Socket"),c=e("debug")("JsSIP:Transport"),d=e("debug")("JsSIP:ERROR:Transport"),h={STATUS_CONNECTED:0,STATUS_CONNECTING:1,STATUS_DISCONNECTED:2,SOCKET_STATUS_READY:0,SOCKET_STATUS_ERROR:1,recovery_options:{min_interval:2,max_interval:30}};r.prototype.connect=function(){c("connect()"),this.isConnected()?c("Transport is already connected"):this.isConnecting()?c("Transport is connecting"):(this.close_requested=!1,this.status=h.STATUS_CONNECTING,this.onconnecting({socket:this.socket,attempts:this.recover_attempts}),this.close_requested||(this.socket.onconnect=s.bind(this),this.socket.ondisconnect=i.bind(this),this.socket.ondata=o.bind(this),this.socket.connect()))},r.prototype.disconnect=function(){c("close()"),this.close_requested=!0,this.recover_attempts=0,this.status=h.STATUS_DISCONNECTED,null!==this.recovery_timer&&(clearTimeout(this.recovery_timer),this.recovery_timer=null),this.socket.onconnect=function(){},this.socket.ondisconnect=function(){},this.socket.ondata=function(){},this.socket.disconnect(),this.ondisconnect()},r.prototype.send=function(e){if(c("send()"),!this.isConnected())return d("unable to send message, transport is not connected"),!1;var t=e.toString();return c("sending message:\n\n"+t+"\n"),this.socket.send(t)},r.prototype.isConnected=function(){return this.status===h.STATUS_CONNECTED},r.prototype.isConnecting=function(){return this.status===h.STATUS_CONNECTING}},{"./Socket":20,debug:29}],24:[function(e,t,n){function r(e){if(d("new() [configuration:%o]",e),this.cache={credentials:{}},this.configuration={},this.dynConfiguration={},this.dialogs={},this.applicants={},this.sessions={},this.transport=null,this.contact=null,this.status=l.STATUS_INIT,this.error=null,this.transactions={nist:{},nict:{},ist:{},ict:{}},this.data={},this.closeTimer=null,Object.defineProperties(this,{transactionsCount:{get:function(){var e,t=["nist","nict","ist","ict"],n=0;for(e in t)n+=Object.keys(this.transactions[t[e]]).length;return n}},nictTransactionsCount:{get:function(){return Object.keys(this.transactions.nict).length}},nistTransactionsCount:{get:function(){return Object.keys(this.transactions.nist).length}},ictTransactionsCount:{get:function(){return Object.keys(this.transactions.ict).length}},istTransactionsCount:{get:function(){return Object.keys(this.transactions.ist).length}}}),void 0===e)throw new TypeError("Not enough arguments");try{this.loadConfig(e)}catch(e){throw this.status=l.STATUS_NOT_READY,this.error=l.CONFIGURATION_ERROR,e}this._registrator=new f(this),c.EventEmitter.call(this)}function s(e){this.emit("connecting",e)}function i(e){this.status!==l.STATUS_USER_CLOSED&&(this.status=l.STATUS_READY,this.error=null,this.emit("connected",e),this.dynConfiguration.register&&this._registrator.register())}function o(e){var t,n,r,s=["nict","ict","nist","ist"];for(r=s.length,t=0;t"}};for(t in p)r.configuration_skeleton[t].value=p[t];Object.defineProperties(this.configuration,r.configuration_skeleton);for(t in p)r.configuration_skeleton[t].value="";d("configuration parameters after validation:");for(t in p)switch(t){case"uri":case"registrar_server":d("- "+t+": "+p[t]);break;case"password":case"ha1":d("- "+t+": NOT SHOWN");break;default:d("- "+t+": "+JSON.stringify(p[t]))}},r.configuration_skeleton=function(){var e,t,n,r={},s=["jssip_id","hostport_params","uri","authorization_user","contact_uri","display_name","instance_id","no_answer_timeout","session_timers","password","realm","ha1","register_expires","registrar_server","sockets","use_preloaded_route","via_core_value","via_host"],i=["password","realm","ha1","display_name"];for(e in s)t=s[e],n=-1!==i.indexOf(t),r[t]={value:"",writable:n,configurable:!1};return r.register={value:"",writable:!0,configurable:!1},r}(),r.configuration_check={mandatory:{uri:function(e){var t;return/^sip:/i.test(e)||(e=p.SIP+":"+e),(t=E.parse(e))&&t.user?t:void 0}},optional:{authorization_user:function(e){return-1===y.parse('"'+e+'"',"quoted_string")?void 0:e},connection_recovery_max_interval:function(e){var t;if(C.isDecimal(e)&&(t=Number(e))>0)return t},connection_recovery_min_interval:function(e){var t;if(C.isDecimal(e)&&(t=Number(e))>0)return t},contact_uri:function(e){if("string"==typeof e){var t=y.parse(e,"SIP_URI");if(-1!==t)return t}},display_name:function(e){return-1===y.parse('"'+e+'"',"display_name")?void 0:e},instance_id:function(e){return/^uuid:/i.test(e)&&(e=e.substr(5)),-1===y.parse(e,"uuid")?void 0:e},no_answer_timeout:function(e){var t;if(C.isDecimal(e)&&(t=Number(e))>0)return t},session_timers:function(e){if("boolean"==typeof e)return e},password:function(e){return String(e)},realm:function(e){return String(e)},ha1:function(e){return String(e)},register:function(e){if("boolean"==typeof e)return e},register_expires:function(e){var t;if(C.isDecimal(e)&&(t=Number(e))>0)return t},registrar_server:function(e){var t;return/^sip:/i.test(e)||(e=p.SIP+":"+e),(t=E.parse(e))?t.user?void 0:t:void 0},sockets:function(e){var t,n;if(_.isSocket(e))e=[{socket:e}];else{if(!Array.isArray(e)||!e.length)return;for(n=e.length,t=0;t0&&(r+="?"+s.join("&")),r},toAor:function(e){var t;return t=this.scheme+":",this.user&&(t+=i.escapeUser(this.user)+"@"),t+=this.host,e&&(this.port||0===this.port)&&(t+=":"+this.port),t}},r.parse=function(e){return-1!==(e=o.parse(e,"SIP_URI"))?e:void 0}},{"./Constants":1,"./Grammar":6,"./Utils":26}],26:[function(e,t,n){var r={};t.exports=r;var s=e("./Constants"),i=e("./URI"),o=e("./Grammar");r.str_utf8_length=function(e){return unescape(encodeURIComponent(e)).length},r.isFunction=function(e){return void 0!==e&&"[object Function]"===Object.prototype.toString.call(e)},r.isString=function(e){return void 0!==e&&"[object String]"===Object.prototype.toString.call(e)},r.isDecimal=function(e){return!isNaN(e)&&parseFloat(e)===parseInt(e,10)},r.isEmpty=function(e){if(null===e||""===e||void 0===e||Array.isArray(e)&&0===e.length||"number"==typeof e&&isNaN(e))return!0},r.hasMethods=function(e){for(var t,n=1;t=arguments[n++];)if(this.isFunction(e[t]))return!1;return!0},r.createRandomToken=function(e,t){var n,r="";for(t=t||32,n=0;n>>32-t}function n(e,t){var n,r,s,i,o;return s=2147483648&e,i=2147483648&t,n=1073741824&e,r=1073741824&t,o=(1073741823&e)+(1073741823&t),n&r?2147483648^o^s^i:n|r?1073741824&o?3221225472^o^s^i:1073741824^o^s^i:o^s^i}function r(e,t,n){return e&t|~e&n}function s(e,t,n){return e&n|t&~n}function i(e,t,n){return e^t^n}function o(e,t,n){return t^(e|~n)}function a(e,s,i,o,a,l,u){return e=n(e,n(n(r(s,i,o),a),u)),n(t(e,l),s)}function l(e,r,i,o,a,l,u){return e=n(e,n(n(s(r,i,o),a),u)),n(t(e,l),r)}function u(e,r,s,o,a,l,u){return e=n(e,n(n(i(r,s,o),a),u)),n(t(e,l),r)}function c(e,r,s,i,a,l,u){return e=n(e,n(n(o(r,s,i),a),u)),n(t(e,l),r)}function d(e){var t,n="",r="";for(t=0;t<=3;t++)n+=(r="0"+(e>>>8*t&255).toString(16)).substr(r.length-2,2);return n}var h,p,f,m,g,v,T,_,C,S=[];for(S=function(e){for(var t,n=e.length,r=n+8,s=16*((r-r%64)/64+1),i=new Array(s-1),o=0,a=0;a>>29,i}(e=function(e){e=e.replace(/\r\n/g,"\n");for(var t="",n=0;n127&&r<2048?(t+=String.fromCharCode(r>>6|192),t+=String.fromCharCode(63&r|128)):(t+=String.fromCharCode(r>>12|224),t+=String.fromCharCode(r>>6&63|128),t+=String.fromCharCode(63&r|128))}return t}(e)),v=1732584193,T=4023233417,_=2562383102,C=271733878,h=0;h1)return a("more than one Via header field present in the response, dropping the response"),!1}),h.push(function(){if(c.str_utf8_length(s.body)=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},n.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),n.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],n.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},n.enable(s())}).call(this,e("_process"))},{"./debug":30,_process:33}],30:[function(e,t,n){function r(e){var t,r=0;for(t in e)r=(r<<5)-r+e.charCodeAt(t),r|=0;return n.colors[Math.abs(r)%n.colors.length]}function s(e){function t(){if(t.enabled){var e=t,r=+new Date,s=r-(i||r);e.diff=s,e.prev=i,e.curr=r,i=r;for(var o=new Array(arguments.length),a=0;a0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function n(){this.removeListener(e,n),r||(r=!0,t.apply(this,arguments))}if(!s(t))throw TypeError("listener must be a function");var r=!1;return n.listener=t,this.on(e,n),this},r.prototype.removeListener=function(e,t){var n,r,i,a;if(!s(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(n=this._events[e],i=n.length,r=-1,n===t||s(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(n)){for(a=i;a-- >0;)if(n[a]===t||n[a].listener&&n[a].listener===t){r=a;break}if(r<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(n=this._events[e],s(n))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){return this._events&&this._events[e]?s(this._events[e])?[this._events[e]]:this._events[e].slice():[]},r.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(s(t))return 1;if(t)return t.length}return 0},r.listenerCount=function(e,t){return e.listenerCount(t)}},{}],32:[function(e,t,n){function r(e){if(!((e=String(e)).length>100)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return n*d;case"days":case"day":case"d":return n*c;case"hours":case"hour":case"hrs":case"hr":case"h":return n*u;case"minutes":case"minute":case"mins":case"min":case"m":return n*l;case"seconds":case"second":case"secs":case"sec":case"s":return n*a;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function s(e){return e>=c?Math.round(e/c)+"d":e>=u?Math.round(e/u)+"h":e>=l?Math.round(e/l)+"m":e>=a?Math.round(e/a)+"s":e+"ms"}function i(e){return o(e,c,"day")||o(e,u,"hour")||o(e,l,"minute")||o(e,a,"second")||e+" ms"}function o(e,t,n){if(!(e0)return r(e);if("number"===n&&!1===isNaN(e))return t.long?i(e):s(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},{}],33:[function(e,t,n){function r(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function i(e){if(d===setTimeout)return setTimeout(e,0);if((d===r||!d)&&setTimeout)return d=setTimeout,setTimeout(e,0);try{return d(e,0)}catch(t){try{return d.call(null,e,0)}catch(t){return d.call(this,e,0)}}}function o(e){if(h===clearTimeout)return clearTimeout(e);if((h===s||!h)&&clearTimeout)return h=clearTimeout,clearTimeout(e);try{return h(e)}catch(t){try{return h.call(null,e)}catch(t){return h.call(this,e)}}}function a(){g&&f&&(g=!1,f.length?m=f.concat(m):v=-1,m.length&&l())}function l(){if(!g){var e=i(a);g=!0;for(var t=m.length;t;){for(f=m,m=[];++v1)for(var n=1;n=r)return e;var s=n[t];switch(t+=1,e){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})},o=function(e,t,n){var r=[e+"="+(t.format instanceof Function?t.format(t.push?n:n[t.name]):t.format)];if(t.names)for(var s=0;s0?t[0].split("/")[1]:"sendrecv",uri:t[1]}},r.writeExtmap=function(e){return"a=extmap:"+(e.id||e.preferredId)+(e.direction&&"sendrecv"!==e.direction?"/"+e.direction:"")+" "+e.uri+"\r\n"},r.parseFmtp=function(e){for(var t,n={},r=e.substr(e.indexOf(" ")+1).split(";"),s=0;s-1?(n.attribute=e.substr(t+1,r-t-1),n.value=e.substr(r+1)):n.attribute=e.substr(t+1),n},r.getMid=function(e){var t=r.matchPrefix(e,"a=mid:")[0];if(t)return t.substr(6)},r.parseFingerprint=function(e){var t=e.substr(14).split(" ");return{algorithm:t[0].toLowerCase(),value:t[1]}},r.getDtlsParameters=function(e,t){return{role:"auto",fingerprints:r.matchPrefix(e+t,"a=fingerprint:").map(r.parseFingerprint)}},r.writeDtlsParameters=function(e,t){var n="a=setup:"+t+"\r\n";return e.fingerprints.forEach(function(e){n+="a=fingerprint:"+e.algorithm+" "+e.value+"\r\n"}),n},r.getIceParameters=function(e,t){var n=r.splitLines(e);return{usernameFragment:(n=n.concat(r.splitLines(t))).filter(function(e){return 0===e.indexOf("a=ice-ufrag:")})[0].substr(12),password:n.filter(function(e){return 0===e.indexOf("a=ice-pwd:")})[0].substr(10)}},r.writeIceParameters=function(e){return"a=ice-ufrag:"+e.usernameFragment+"\r\na=ice-pwd:"+e.password+"\r\n"},r.parseRtpParameters=function(e){for(var t={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},n=r.splitLines(e)[0].split(" "),s=3;s0?"9":"0",n+=" UDP/TLS/RTP/SAVPF ",n+=t.codecs.map(function(e){return void 0!==e.preferredPayloadType?e.preferredPayloadType:e.payloadType}).join(" ")+"\r\n",n+="c=IN IP4 0.0.0.0\r\n",n+="a=rtcp:9 IN IP4 0.0.0.0\r\n",t.codecs.forEach(function(e){n+=r.writeRtpMap(e),n+=r.writeFmtp(e),n+=r.writeRtcpFb(e)});var s=0;return t.codecs.forEach(function(e){e.maxptime>s&&(s=e.maxptime)}),s>0&&(n+="a=maxptime:"+s+"\r\n"),n+="a=rtcp-mux\r\n",t.headerExtensions.forEach(function(e){n+=r.writeExtmap(e)}),n},r.parseRtpEncodingParameters=function(e){var t,n=[],s=r.parseRtpParameters(e),i=-1!==s.fecMechanisms.indexOf("RED"),o=-1!==s.fecMechanisms.indexOf("ULPFEC"),a=r.matchPrefix(e,"a=ssrc:").map(function(e){return r.parseSsrcMedia(e)}).filter(function(e){return"cname"===e.attribute}),l=a.length>0&&a[0].ssrc,u=r.matchPrefix(e,"a=ssrc-group:FID").map(function(e){var t=e.split(" ");return t.shift(),t.map(function(e){return parseInt(e,10)})});u.length>0&&u[0].length>1&&u[0][0]===l&&(t=u[0][1]),s.codecs.forEach(function(e){if("RTX"===e.name.toUpperCase()&&e.parameters.apt){var r={ssrc:l,codecPayloadType:parseInt(e.parameters.apt,10),rtx:{ssrc:t}};n.push(r),i&&((r=JSON.parse(JSON.stringify(r))).fec={ssrc:t,mechanism:o?"red+ulpfec":"red"},n.push(r))}}),0===n.length&&l&&n.push({ssrc:l});var c=r.matchPrefix(e,"b=");return c.length&&(0===c[0].indexOf("b=TIAS:")?c=parseInt(c[0].substr(7),10):0===c[0].indexOf("b=AS:")&&(c=parseInt(c[0].substr(5),10)),n.forEach(function(e){e.maxBitrate=c})),n},r.parseRtcpParameters=function(e){var t={},n=r.matchPrefix(e,"a=ssrc:").map(function(e){return r.parseSsrcMedia(e)}).filter(function(e){return"cname"===e.attribute})[0];n&&(t.cname=n.value,t.ssrc=n.ssrc);var s=r.matchPrefix(e,"a=rtcp-rsize");t.reducedSize=s.length>0,t.compound=0===s.length;var i=r.matchPrefix(e,"a=rtcp-mux");return t.mux=i.length>0,t},r.parseMsid=function(e){var t,n=r.matchPrefix(e,"a=msid:");if(1===n.length)return t=n[0].substr(7).split(" "),{stream:t[0],track:t[1]};var s=r.matchPrefix(e,"a=ssrc:").map(function(e){return r.parseSsrcMedia(e)}).filter(function(e){return"msid"===e.attribute});return s.length>0?(t=s[0].value.split(" "),{stream:t[0],track:t[1]}):void 0},r.writeSessionBoilerplate=function(){return"v=0\r\no=thisisadapterortc 8169639915646943137 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},r.writeMediaSection=function(e,t,n,s){var i=r.writeRtpDescription(e.kind,t);if(i+=r.writeIceParameters(e.iceGatherer.getLocalParameters()),i+=r.writeDtlsParameters(e.dtlsTransport.getLocalParameters(),"offer"===n?"actpass":"active"),i+="a=mid:"+e.mid+"\r\n",e.direction?i+="a="+e.direction+"\r\n":e.rtpSender&&e.rtpReceiver?i+="a=sendrecv\r\n":e.rtpSender?i+="a=sendonly\r\n":e.rtpReceiver?i+="a=recvonly\r\n":i+="a=inactive\r\n",e.rtpSender){var o="msid:"+s.id+" "+e.rtpSender.track.id+"\r\n";i+="a="+o,i+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" "+o,e.sendEncodingParameters[0].rtx&&(i+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" "+o,i+="a=ssrc-group:FID "+e.sendEncodingParameters[0].ssrc+" "+e.sendEncodingParameters[0].rtx.ssrc+"\r\n")}return i+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" cname:"+r.localCName+"\r\n",e.rtpSender&&e.sendEncodingParameters[0].rtx&&(i+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" cname:"+r.localCName+"\r\n"),i},r.getDirection=function(e,t){for(var n=r.splitLines(e),s=0;s=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),m(t)?r.showHidden=t:t&&n._extend(r,t),_(r.showHidden)&&(r.showHidden=!1),_(r.depth)&&(r.depth=2),_(r.colors)&&(r.colors=!1),_(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=i),l(r,e,r.depth)}function i(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function o(e,t){return e}function a(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}function l(e,t,r){if(e.customInspect&&t&&A(t.inspect)&&t.inspect!==n.inspect&&(!t.constructor||t.constructor.prototype!==t)){var s=t.inspect(r,e);return T(s)||(s=l(e,s,r)),s}var i=u(e,t);if(i)return i;var o=Object.keys(t),m=a(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),y(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return c(t);if(0===o.length){if(A(t)){var g=t.name?": "+t.name:"";return e.stylize("[Function"+g+"]","special")}if(C(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(E(t))return e.stylize(Date.prototype.toString.call(t),"date");if(y(t))return c(t)}var v="",_=!1,S=["{","}"];if(f(t)&&(_=!0,S=["[","]"]),A(t)&&(v=" [Function"+(t.name?": "+t.name:"")+"]"),C(t)&&(v=" "+RegExp.prototype.toString.call(t)),E(t)&&(v=" "+Date.prototype.toUTCString.call(t)),y(t)&&(v=" "+c(t)),0===o.length&&(!_||0==t.length))return S[0]+v+S[1];if(r<0)return C(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var R;return R=_?d(e,t,r,m,o):o.map(function(n){return h(e,t,r,m,n,_)}),e.seen.pop(),p(R,v,S)}function u(e,t){if(_(t))return e.stylize("undefined","undefined");if(T(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return v(t)?e.stylize(""+t,"number"):m(t)?e.stylize(""+t,"boolean"):g(t)?e.stylize("null","null"):void 0}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function d(e,t,n,r,s){for(var i=[],o=0,a=t.length;o-1&&(a=i?a.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+a.split("\n").map(function(e){return" "+e}).join("\n")):a=e.stylize("[Circular]","special")),_(o)){if(i&&s.match(/^\d+$/))return a;(o=JSON.stringify(""+s)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+a}function p(e,t,n){var r=0;return e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function f(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function g(e){return null===e}function v(e){return"number"==typeof e}function T(e){return"string"==typeof e}function _(e){return void 0===e}function C(e){return S(e)&&"[object RegExp]"===R(e)}function S(e){return"object"==typeof e&&null!==e}function E(e){return S(e)&&"[object Date]"===R(e)}function y(e){return S(e)&&("[object Error]"===R(e)||e instanceof Error)}function A(e){return"function"==typeof e}function R(e){return Object.prototype.toString.call(e)}function b(e){return e<10?"0"+e.toString(10):e.toString(10)}function w(){var e=new Date,t=[b(e.getHours()),b(e.getMinutes()),b(e.getSeconds())].join(":");return[e.getDate(),P[e.getMonth()],t].join(" ")}function I(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var O=/%[sdj%]/g;n.format=function(e){if(!T(e)){for(var t=[],n=0;n=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}}),a=r[n];n0&&"function"==typeof e)return t.apply(this,arguments);if(0===t.length&&(0===arguments.length||"function"!=typeof arguments[0]))return t.apply(this,[]);var o=function(e){var t={};return e.result().forEach(function(e){var n={id:e.id,timestamp:e.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[e.type]||e.type};e.names().forEach(function(t){n[t]=e.stat(t)}),t[n.id]=n}),t},a=function(e){return new Map(Object.keys(e).map(function(t){return[t,e[t]]}))};if(arguments.length>=2){return t.apply(this,[function(e){i[1](a(o(e)))},arguments[0]])}return new Promise(function(e,n){t.apply(s,[function(t){e(a(o(t)))},n])}).then(n,r)},s.version<51&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(e){var t=RTCPeerConnection.prototype[e];RTCPeerConnection.prototype[e]=function(){var e=arguments,n=this,r=new Promise(function(r,s){t.apply(n,[e[0],r,s])});return e.length<2?r:r.then(function(){e[1].apply(null,[])},function(t){e.length>=3&&e[2].apply(null,[t])})}}),s.version<52&&["createOffer","createAnswer"].forEach(function(e){var t=RTCPeerConnection.prototype[e];RTCPeerConnection.prototype[e]=function(){var e=this;if(arguments.length<1||1===arguments.length&&"object"==typeof arguments[0]){var n=1===arguments.length?arguments[0]:void 0;return new Promise(function(r,s){t.apply(e,[r,s,n])})}return t.apply(this,arguments)}}),["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(e){var t=RTCPeerConnection.prototype[e];RTCPeerConnection.prototype[e]=function(){return arguments[0]=new("addIceCandidate"===e?RTCIceCandidate:RTCSessionDescription)(arguments[0]),t.apply(this,arguments)}});var n=RTCPeerConnection.prototype.addIceCandidate;RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?n.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())}}};t.exports={shimMediaStream:i.shimMediaStream,shimOnTrack:i.shimOnTrack,shimGetSendersWithDtmf:i.shimGetSendersWithDtmf,shimSourceObject:i.shimSourceObject,shimPeerConnection:i.shimPeerConnection,shimGetUserMedia:e("./getusermedia")}},{"../utils.js":51,"./getusermedia":44}],44:[function(e,t,n){"use strict";var r=e("../utils.js").log,s=e("../utils.js").browserDetails;t.exports=function(){var e=function(e){if("object"!=typeof e||e.mandatory||e.optional)return e;var t={};return Object.keys(e).forEach(function(n){if("require"!==n&&"advanced"!==n&&"mediaSource"!==n){var r="object"==typeof e[n]?e[n]:{ideal:e[n]};void 0!==r.exact&&"number"==typeof r.exact&&(r.min=r.max=r.exact);var s=function(e,t){return e?e+t.charAt(0).toUpperCase()+t.slice(1):"deviceId"===t?"sourceId":t};if(void 0!==r.ideal){t.optional=t.optional||[];var i={};"number"==typeof r.ideal?(i[s("min",n)]=r.ideal,t.optional.push(i),(i={})[s("max",n)]=r.ideal,t.optional.push(i)):(i[s("",n)]=r.ideal,t.optional.push(i))}void 0!==r.exact&&"number"!=typeof r.exact?(t.mandatory=t.mandatory||{},t.mandatory[s("",n)]=r.exact):["min","max"].forEach(function(e){void 0!==r[e]&&(t.mandatory=t.mandatory||{},t.mandatory[s(e,n)]=r[e])})}}),e.advanced&&(t.optional=(t.optional||[]).concat(e.advanced)),t},t=function(t,n){if((t=JSON.parse(JSON.stringify(t)))&&t.audio&&(t.audio=e(t.audio)),t&&"object"==typeof t.video){var i=t.video.facingMode;i=i&&("object"==typeof i?i:{ideal:i});var o=s.version<61;if(i&&("user"===i.exact||"environment"===i.exact||"user"===i.ideal||"environment"===i.ideal)&&(!navigator.mediaDevices.getSupportedConstraints||!navigator.mediaDevices.getSupportedConstraints().facingMode||o)){delete t.video.facingMode;var a;if("environment"===i.exact||"environment"===i.ideal?a=["back","rear"]:"user"!==i.exact&&"user"!==i.ideal||(a=["front"]),a)return navigator.mediaDevices.enumerateDevices().then(function(s){var o=(s=s.filter(function(e){return"videoinput"===e.kind})).find(function(e){return a.some(function(t){return-1!==e.label.toLowerCase().indexOf(t)})});return!o&&s.length&&-1!==a.indexOf("back")&&(o=s[s.length-1]),o&&(t.video.deviceId=i.exact?{exact:o.deviceId}:{ideal:o.deviceId}),t.video=e(t.video),r("chrome: "+JSON.stringify(t)),n(t)})}t.video=e(t.video)}return r("chrome: "+JSON.stringify(t)),n(t)},n=function(e){return{name:{ConstraintNotSatisfiedError:"OverconstrainedError",PermissionDeniedError:"NotAllowedError",TrackStartError:"NotReadableError"}[e.name]||e.name,message:e.message,constraint:e.constraintName,toString:function(){return this.name+(this.message&&": ")+this.message}}};navigator.getUserMedia=function(e,r,s){t(e,function(e){navigator.webkitGetUserMedia(e,r,function(e){s(n(e))})})};var i=function(e){return new Promise(function(t,n){navigator.getUserMedia(e,t,n)})};if(navigator.mediaDevices||(navigator.mediaDevices={getUserMedia:i,enumerateDevices:function(){return new Promise(function(e){var t={audio:"audioinput",video:"videoinput"};return MediaStreamTrack.getSources(function(n){e(n.map(function(e){return{label:e.label,kind:t[e.kind],deviceId:e.id,groupId:""}}))})})},getSupportedConstraints:function(){return{deviceId:!0,echoCancellation:!0,facingMode:!0,frameRate:!0,height:!0,width:!0}}}),navigator.mediaDevices.getUserMedia){var o=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);navigator.mediaDevices.getUserMedia=function(e){return t(e,function(e){return o(e).then(function(t){if(e.audio&&!t.getAudioTracks().length||e.video&&!t.getVideoTracks().length)throw t.getTracks().forEach(function(e){e.stop()}),new DOMException("","NotFoundError");return t},function(e){return Promise.reject(n(e))})})}}else navigator.mediaDevices.getUserMedia=function(e){return i(e)};void 0===navigator.mediaDevices.addEventListener&&(navigator.mediaDevices.addEventListener=function(){r("Dummy mediaDevices.addEventListener called.")}),void 0===navigator.mediaDevices.removeEventListener&&(navigator.mediaDevices.removeEventListener=function(){r("Dummy mediaDevices.removeEventListener called.")})}},{"../utils.js":51}],45:[function(e,t,n){"use strict";var r=e("../utils").browserDetails,s=e("./rtcpeerconnection_shim");t.exports={shimGetUserMedia:e("./getusermedia"),shimPeerConnection:function(){if(window.RTCIceGatherer&&(window.RTCIceCandidate||(window.RTCIceCandidate=function(e){return e}),window.RTCSessionDescription||(window.RTCSessionDescription=function(e){return e}),r.version<15025)){var e=Object.getOwnPropertyDescriptor(MediaStreamTrack.prototype,"enabled");Object.defineProperty(MediaStreamTrack.prototype,"enabled",{set:function(t){e.set.call(this,t);var n=new Event("enabled");n.enabled=t,this.dispatchEvent(n)}})}window.RTCPeerConnection=s(r.version)},shimReplaceTrack:function(){!window.RTCRtpSender||"replaceTrack"in RTCRtpSender.prototype||(RTCRtpSender.prototype.replaceTrack=RTCRtpSender.prototype.setTrack)}}},{"../utils":51,"./getusermedia":46,"./rtcpeerconnection_shim":47}],46:[function(e,t,n){"use strict";t.exports=function(){var e=function(e){return{name:{PermissionDeniedError:"NotAllowedError"}[e.name]||e.name,message:e.message,constraint:e.constraint,toString:function(){return this.name}}},t=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);navigator.mediaDevices.getUserMedia=function(n){return t(n).catch(function(t){return Promise.reject(e(t))})}}},{}],47:[function(e,t,n){"use strict";function r(e){var t=e.filter(function(e){return"audio"===e.kind}),n=e.filter(function(e){return"video"===e.kind});for(e=[];t.length||n.length;)t.length&&e.push(t.shift()),n.length&&e.push(n.shift());return e}function s(e,t){var n=!1;return(e=JSON.parse(JSON.stringify(e))).filter(function(e){if(e&&(e.urls||e.url)){var r=e.urls||e.url;e.url&&!e.urls&&console.warn("RTCIceServer.url is deprecated! Use urls instead.");var s="string"==typeof r;return s&&(r=[r]),r=r.filter(function(e){return 0===e.indexOf("turn:")&&-1!==e.indexOf("transport=udp")&&-1===e.indexOf("turn:[")&&!n?(n=!0,!0):0===e.indexOf("stun:")&&t>=14393}),delete e.url,e.urls=s?r[0]:r,!!r.length}return!1})}function i(e,t){var n={codecs:[],headerExtensions:[],fecMechanisms:[]},r=function(e,t){e=parseInt(e,10);for(var n=0;n0,n={track:null,iceGatherer:null,iceTransport:null,dtlsTransport:null,localCapabilities:null,remoteCapabilities:null,rtpSender:null,rtpReceiver:null,kind:e,mid:null,sendEncodingParameters:null,recvEncodingParameters:null,stream:null,wantReceive:!0};if(this.usingBundle&&t)n.iceTransport=this.transceivers[0].iceTransport,n.dtlsTransport=this.transceivers[0].dtlsTransport;else{var r=this._createIceAndDtlsTransports();n.iceTransport=r.iceTransport,n.dtlsTransport=r.dtlsTransport}return this.transceivers.push(n),n},t.prototype.addTrack=function(e,t){for(var n,r=0;r=15025)this.localStreams.push(t),t.getTracks().forEach(function(e){n.addTrack(e,t)});else{var r=t.clone();t.getTracks().forEach(function(e,t){var n=r.getTracks()[t];e.addEventListener("enabled",function(e){n.enabled=e.enabled})}),r.getTracks().forEach(function(e){n.addTrack(e,r)}),this.localStreams.push(r)}this._maybeFireNegotiationNeeded()},t.prototype.removeStream=function(e){var t=this.localStreams.indexOf(e);t>-1&&(this.localStreams.splice(t,1),this._maybeFireNegotiationNeeded())},t.prototype.getSenders=function(){return this.transceivers.filter(function(e){return!!e.rtpSender}).map(function(e){return e.rtpSender})},t.prototype.getReceivers=function(){return this.transceivers.filter(function(e){return!!e.rtpReceiver}).map(function(e){return e.rtpReceiver})},t.prototype._createIceGatherer=function(e,t){var n=this,r=new RTCIceGatherer(n.iceOptions);return r.onlocalcandidate=function(s){var i=new Event("icecandidate");i.candidate={sdpMid:e,sdpMLineIndex:t};var o=s.candidate,l=!o||0===Object.keys(o).length;l?void 0===r.state&&(r.state="completed"):(o.component=1,i.candidate.candidate=a.writeCandidate(o));var u=a.splitSections(n.localDescription.sdp);u[i.candidate.sdpMLineIndex+1]+=l?"a=end-of-candidates\r\n":"a="+i.candidate.candidate+"\r\n",n.localDescription.sdp=u.join("");var c=(n._pendingOffer?n._pendingOffer:n.transceivers).every(function(e){return e.iceGatherer&&"completed"===e.iceGatherer.state});switch(n.iceGatheringState){case"new":l||n._localIceCandidatesBuffer.push(i),l&&c&&n._localIceCandidatesBuffer.push(new Event("icecandidate"));break;case"gathering":n._emitBufferedCandidates(),l||(n.dispatchEvent(i),null!==n.onicecandidate&&n.onicecandidate(i)),c&&(n.dispatchEvent(new Event("icecandidate")),null!==n.onicecandidate&&n.onicecandidate(new Event("icecandidate")),n.iceGatheringState="complete",n._emitGatheringStateChange())}},r},t.prototype._createIceAndDtlsTransports=function(){var e=this,t=new RTCIceTransport(null);t.onicestatechange=function(){e._updateConnectionState()};var n=new RTCDtlsTransport(t);return n.ondtlsstatechange=function(){e._updateConnectionState()},n.onerror=function(){Object.defineProperty(n,"state",{value:"failed",writable:!0}),e._updateConnectionState()},{iceTransport:t,dtlsTransport:n}},t.prototype._disposeIceAndDtlsTransports=function(e){var t=this.transceivers[e].iceGatherer;t&&(delete t.onlocalcandidate,delete this.transceivers[e].iceGatherer);var n=this.transceivers[e].iceTransport;n&&(delete n.onicestatechange,delete this.transceivers[e].iceTransport);var r=this.transceivers[e].dtlsTransport;r&&(delete r.ondtlssttatechange,delete r.onerror,delete this.transceivers[e].dtlsTransport)},t.prototype._transceive=function(t,n,r){var s=i(t.localCapabilities,t.remoteCapabilities);n&&t.rtpSender&&(s.encodings=t.sendEncodingParameters,s.rtcp={cname:a.localCName,compound:t.rtcpParameters.compound},t.recvEncodingParameters.length&&(s.rtcp.ssrc=t.recvEncodingParameters[0].ssrc),t.rtpSender.send(s)),r&&t.rtpReceiver&&("video"===t.kind&&t.recvEncodingParameters&&e<15019&&t.recvEncodingParameters.forEach(function(e){delete e.rtx}),s.encodings=t.recvEncodingParameters,s.rtcp={cname:t.rtcpParameters.cname,compound:t.rtcpParameters.compound},t.sendEncodingParameters.length&&(s.rtcp.ssrc=t.sendEncodingParameters[0].ssrc),t.rtpReceiver.receive(s))},t.prototype.setLocalDescription=function(e){var t=this;if(!o("setLocalDescription",e.type,this.signalingState)){var n=new Error("Can not set local "+e.type+" in state "+this.signalingState);return n.name="InvalidStateError",arguments.length>2&&"function"==typeof arguments[2]&&window.setTimeout(arguments[2],0,n),Promise.reject(n)}var r,s;if("offer"===e.type)this._pendingOffer&&(r=a.splitSections(e.sdp),s=r.shift(),r.forEach(function(e,n){var r=a.parseRtpParameters(e);t._pendingOffer[n].localCapabilities=r}),this.transceivers=this._pendingOffer,delete this._pendingOffer);else if("answer"===e.type){r=a.splitSections(t.remoteDescription.sdp),s=r.shift();var l=a.matchPrefix(s,"a=ice-lite").length>0;r.forEach(function(e,n){var r=t.transceivers[n],o=r.iceGatherer,u=r.iceTransport,c=r.dtlsTransport,d=r.localCapabilities,h=r.remoteCapabilities;if(!a.isRejected(e)&&!r.isDatachannel){var p=a.getIceParameters(e,s),f=a.getDtlsParameters(e,s);l&&(f.role="server"),t.usingBundle&&0!==n||(u.start(o,p,l?"controlling":"controlled"),c.start(f));var m=i(d,h);t._transceive(r,m.codecs.length>0,!1)}})}switch(this.localDescription={type:e.type,sdp:e.sdp},e.type){case"offer":this._updateSignalingState("have-local-offer");break;case"answer":this._updateSignalingState("stable");break;default:throw new TypeError('unsupported type "'+e.type+'"')}var u=arguments.length>1&&"function"==typeof arguments[1];if(u){var c=arguments[1];window.setTimeout(function(){c(),"new"===t.iceGatheringState&&(t.iceGatheringState="gathering",t._emitGatheringStateChange()),t._emitBufferedCandidates()},0)}var d=Promise.resolve();return d.then(function(){u||("new"===t.iceGatheringState&&(t.iceGatheringState="gathering",t._emitGatheringStateChange()),window.setTimeout(t._emitBufferedCandidates.bind(t),500))}),d},t.prototype.setRemoteDescription=function(t){var n=this;if(!o("setRemoteDescription",t.type,this.signalingState)){var r=new Error("Can not set remote "+t.type+" in state "+this.signalingState);return r.name="InvalidStateError",arguments.length>2&&"function"==typeof arguments[2]&&window.setTimeout(arguments[2],0,r),Promise.reject(r)}var s={},i=[],l=a.splitSections(t.sdp),u=l.shift(),c=a.matchPrefix(u,"a=ice-lite").length>0,d=a.matchPrefix(u,"a=group:BUNDLE ").length>0;this.usingBundle=d;var h=a.matchPrefix(u,"a=ice-options:")[0];switch(this.canTrickleIceCandidates=!!h&&h.substr(14).split(" ").indexOf("trickle")>=0,l.forEach(function(r,o){var l=a.splitLines(r),h=a.getKind(r),p=a.isRejected(r),f=l[0].substr(2).split(" ")[2],m=a.getDirection(r,u),g=a.parseMsid(r),v=a.getMid(r)||a.generateIdentifier();if("application"!==h||"DTLS/SCTP"!==f){var T,_,C,S,E,y,A,R,b,w,I,O=a.parseRtpParameters(r);p||(w=a.getIceParameters(r,u),(I=a.getDtlsParameters(r,u)).role="client"),A=a.parseRtpEncodingParameters(r);var x=a.parseRtcpParameters(r),N=a.matchPrefix(r,"a=end-of-candidates",u).length>0,P=a.matchPrefix(r,"a=candidate:").map(function(e){return a.parseCandidate(e)}).filter(function(e){return"1"===e.component||1===e.component});"offer"!==t.type||p?"answer"!==t.type||p||(d&&o>0&&(n._disposeIceAndDtlsTransports(o),n.transceivers[o].iceGatherer=n.transceivers[0].iceGatherer,n.transceivers[o].iceTransport=n.transceivers[0].iceTransport,n.transceivers[o].dtlsTransport=n.transceivers[0].dtlsTransport,n.transceivers[o].rtpSender&&n.transceivers[o].rtpSender.setTransport(n.transceivers[0].dtlsTransport),n.transceivers[o].rtpReceiver&&n.transceivers[o].rtpReceiver.setTransport(n.transceivers[0].dtlsTransport)),_=(T=n.transceivers[o]).iceGatherer,C=T.iceTransport,S=T.dtlsTransport,E=T.rtpReceiver,y=T.sendEncodingParameters,R=T.localCapabilities,n.transceivers[o].recvEncodingParameters=A,n.transceivers[o].remoteCapabilities=O,n.transceivers[o].rtcpParameters=x,(c||N)&&P.length&&C.setRemoteCandidates(P),d&&0!==o||(C.start(_,w,"controlling"),S.start(I)),n._transceive(T,"sendrecv"===m||"recvonly"===m,"sendrecv"===m||"sendonly"===m),!E||"sendrecv"!==m&&"sendonly"!==m?delete T.rtpReceiver:(b=E.track,g?(s[g.stream]||(s[g.stream]=new MediaStream),s[g.stream].addTrack(b),i.push([b,E,s[g.stream]])):(s.default||(s.default=new MediaStream),s.default.addTrack(b),i.push([b,E,s.default])))):((T=n.transceivers[o]||n._createTransceiver(h)).mid=v,T.iceGatherer||(T.iceGatherer=d&&o>0?n.transceivers[0].iceGatherer:n._createIceGatherer(v,o)),!N||d&&0!==o||T.iceTransport.setRemoteCandidates(P),R=RTCRtpReceiver.getCapabilities(h),e<15019&&(R.codecs=R.codecs.filter(function(e){return"rtx"!==e.name})),y=[{ssrc:1001*(2*o+2)}],"sendrecv"!==m&&"sendonly"!==m||(b=(E=new RTCRtpReceiver(T.dtlsTransport,h)).track,g?(s[g.stream]||(s[g.stream]=new MediaStream,Object.defineProperty(s[g.stream],"id",{get:function(){return g.stream}})),Object.defineProperty(b,"id",{get:function(){return g.track}}),s[g.stream].addTrack(b),i.push([b,E,s[g.stream]])):(s.default||(s.default=new MediaStream),s.default.addTrack(b),i.push([b,E,s.default]))),T.localCapabilities=R,T.remoteCapabilities=O,T.rtpReceiver=E,T.rtcpParameters=x,T.sendEncodingParameters=y,T.recvEncodingParameters=A,n._transceive(n.transceivers[o],!1,"sendrecv"===m||"sendonly"===m))}else n.transceivers[o]={mid:v,isDatachannel:!0}}),this.remoteDescription={type:t.type,sdp:t.sdp},t.type){case"offer":this._updateSignalingState("have-remote-offer");break;case"answer":this._updateSignalingState("stable");break;default:throw new TypeError('unsupported type "'+t.type+'"')}return Object.keys(s).forEach(function(e){var t=s[e];if(t.getTracks().length){n.remoteStreams.push(t);var r=new Event("addstream");r.stream=t,n.dispatchEvent(r),null!==n.onaddstream&&window.setTimeout(function(){n.onaddstream(r)},0),i.forEach(function(e){var r=e[0],s=e[1];if(t.id===e[2].id){var i=new Event("track");i.track=r,i.receiver=s,i.streams=[t],n.dispatchEvent(i),null!==n.ontrack&&window.setTimeout(function(){n.ontrack(i)},0)}})}}),window.setTimeout(function(){n&&n.transceivers&&n.transceivers.forEach(function(e){e.iceTransport&&"new"===e.iceTransport.state&&e.iceTransport.getRemoteCandidates().length>0&&(console.warn("Timeout for addRemoteCandidate. Consider sending an end-of-candidates notification"),e.iceTransport.addRemoteCandidate({}))})},4e3),arguments.length>1&&"function"==typeof arguments[1]&&window.setTimeout(arguments[1],0),Promise.resolve()},t.prototype.close=function(){this.transceivers.forEach(function(e){e.iceTransport&&e.iceTransport.stop(),e.dtlsTransport&&e.dtlsTransport.stop(),e.rtpSender&&e.rtpSender.stop(),e.rtpReceiver&&e.rtpReceiver.stop()}),this._updateSignalingState("closed")},t.prototype._updateSignalingState=function(e){this.signalingState=e;var t=new Event("signalingstatechange");this.dispatchEvent(t),null!==this.onsignalingstatechange&&this.onsignalingstatechange(t)},t.prototype._maybeFireNegotiationNeeded=function(){var e=this;"stable"===this.signalingState&&!0!==this.needNegotiation&&(this.needNegotiation=!0,window.setTimeout(function(){if(!1!==e.needNegotiation){e.needNegotiation=!1;var t=new Event("negotiationneeded");e.dispatchEvent(t),null!==e.onnegotiationneeded&&e.onnegotiationneeded(t)}},0))},t.prototype._updateConnectionState=function(){var e,t=this,n={new:0,closed:0,connecting:0,checking:0,connected:0,completed:0,failed:0};if(this.transceivers.forEach(function(e){n[e.iceTransport.state]++,n[e.dtlsTransport.state]++}),n.connected+=n.completed,e="new",n.failed>0?e="failed":n.connecting>0||n.checking>0?e="connecting":n.disconnected>0?e="disconnected":n.new>0?e="new":(n.connected>0||n.completed>0)&&(e="connected"),e!==t.iceConnectionState){t.iceConnectionState=e;var r=new Event("iceconnectionstatechange");this.dispatchEvent(r),null!==this.oniceconnectionstatechange&&this.oniceconnectionstatechange(r)}},t.prototype.createOffer=function(){var t=this;if(this._pendingOffer)throw new Error("createOffer called while there is a pending offer.");var n;1===arguments.length&&"function"!=typeof arguments[0]?n=arguments[0]:3===arguments.length&&(n=arguments[2]);var s=this.transceivers.filter(function(e){return"audio"===e.kind}).length,i=this.transceivers.filter(function(e){return"video"===e.kind}).length;if(n){if(n.mandatory||n.optional)throw new TypeError("Legacy mandatory/optional constraints not supported.");void 0!==n.offerToReceiveAudio&&(s=!0===n.offerToReceiveAudio?1:!1===n.offerToReceiveAudio?0:n.offerToReceiveAudio),void 0!==n.offerToReceiveVideo&&(i=!0===n.offerToReceiveVideo?1:!1===n.offerToReceiveVideo?0:n.offerToReceiveVideo)}for(this.transceivers.forEach(function(e){"audio"===e.kind?--s<0&&(e.wantReceive=!1):"video"===e.kind&&--i<0&&(e.wantReceive=!1)});s>0||i>0;)s>0&&(this._createTransceiver("audio"),s--),i>0&&(this._createTransceiver("video"),i--);var o=r(this.transceivers),l=a.writeSessionBoilerplate();o.forEach(function(n,r){var s=n.track,i=n.kind,l=a.generateIdentifier();n.mid=l,n.iceGatherer||(n.iceGatherer=t.usingBundle&&r>0?o[0].iceGatherer:t._createIceGatherer(l,r));var u=RTCRtpSender.getCapabilities(i);e<15019&&(u.codecs=u.codecs.filter(function(e){return"rtx"!==e.name})),u.codecs.forEach(function(e){"H264"===e.name&&void 0===e.parameters["level-asymmetry-allowed"]&&(e.parameters["level-asymmetry-allowed"]="1")});var c=[{ssrc:1001*(2*r+1)}];s&&e>=15019&&"video"===i&&(c[0].rtx={ssrc:1001*(2*r+1)+1}),n.wantReceive&&(n.rtpReceiver=new RTCRtpReceiver(n.dtlsTransport,i)),n.localCapabilities=u,n.sendEncodingParameters=c}),"max-compat"!==this._config.bundlePolicy&&(l+="a=group:BUNDLE "+o.map(function(e){return e.mid}).join(" ")+"\r\n"),l+="a=ice-options:trickle\r\n",o.forEach(function(e,t){l+=a.writeMediaSection(e,e.localCapabilities,"offer",e.stream),l+="a=rtcp-rsize\r\n"}),this._pendingOffer=o;var u=new RTCSessionDescription({type:"offer",sdp:l});return arguments.length&&"function"==typeof arguments[0]&&window.setTimeout(arguments[0],0,u),Promise.resolve(u)},t.prototype.createAnswer=function(){var t=a.writeSessionBoilerplate();this.usingBundle&&(t+="a=group:BUNDLE "+this.transceivers.map(function(e){return e.mid}).join(" ")+"\r\n"),this.transceivers.forEach(function(n,r){if(n.isDatachannel)t+="m=application 0 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=mid:"+n.mid+"\r\n";else{if(n.stream){var s;"audio"===n.kind?s=n.stream.getAudioTracks()[0]:"video"===n.kind&&(s=n.stream.getVideoTracks()[0]),s&&e>=15019&&"video"===n.kind&&(n.sendEncodingParameters[0].rtx={ssrc:1001*(2*r+2)+1})}var o=i(n.localCapabilities,n.remoteCapabilities);!o.codecs.filter(function(e){return"rtx"===e.name.toLowerCase()}).length&&n.sendEncodingParameters[0].rtx&&delete n.sendEncodingParameters[0].rtx,t+=a.writeMediaSection(n,o,"answer",n.stream),n.rtcpParameters&&n.rtcpParameters.reducedSize&&(t+="a=rtcp-rsize\r\n")}});var n=new RTCSessionDescription({type:"answer",sdp:t});return arguments.length&&"function"==typeof arguments[0]&&window.setTimeout(arguments[0],0,n),Promise.resolve(n)},t.prototype.addIceCandidate=function(e){if(e){var t=e.sdpMLineIndex;if(e.sdpMid)for(var n=0;n0?a.parseCandidate(e.candidate):{};if("tcp"===s.protocol&&(0===s.port||9===s.port))return Promise.resolve();if(s.component&&"1"!==s.component&&1!==s.component)return Promise.resolve();r.iceTransport.addRemoteCandidate(s);var i=a.splitSections(this.remoteDescription.sdp);i[t+1]+=(s.type?e.candidate.trim():"a=end-of-candidates")+"\r\n",this.remoteDescription.sdp=i.join("")}}else for(var o=0;o1&&"function"==typeof arguments[1]&&window.setTimeout(arguments[1],0),Promise.resolve()},t.prototype.getStats=function(){var e=[];this.transceivers.forEach(function(t){["rtpSender","rtpReceiver","iceGatherer","iceTransport","dtlsTransport"].forEach(function(n){t[n]&&e.push(t[n].getStats())})});var t=arguments.length>1&&"function"==typeof arguments[1]&&arguments[1],n=function(e){return{inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[e.type]||e.type};return new Promise(function(r){var s=new Map;Promise.all(e).then(function(e){e.forEach(function(e){Object.keys(e).forEach(function(t){e[t].type=n(e[t]),s.set(t,e[t])})}),t&&window.setTimeout(t,0,s),r(s)})})},t}},{sdp:38}],48:[function(e,t,n){"use strict";var r=e("../utils").browserDetails,s={shimOnTrack:function(){"object"!=typeof window||!window.RTCPeerConnection||"ontrack"in window.RTCPeerConnection.prototype||Object.defineProperty(window.RTCPeerConnection.prototype,"ontrack",{get:function(){return this._ontrack},set:function(e){this._ontrack&&(this.removeEventListener("track",this._ontrack),this.removeEventListener("addstream",this._ontrackpoly)),this.addEventListener("track",this._ontrack=e),this.addEventListener("addstream",this._ontrackpoly=function(e){e.stream.getTracks().forEach(function(t){var n=new Event("track");n.track=t,n.receiver={track:t},n.streams=[e.stream],this.dispatchEvent(n)}.bind(this))}.bind(this))}})},shimSourceObject:function(){"object"==typeof window&&(!window.HTMLMediaElement||"srcObject"in window.HTMLMediaElement.prototype||Object.defineProperty(window.HTMLMediaElement.prototype,"srcObject",{get:function(){return this.mozSrcObject},set:function(e){this.mozSrcObject=e}}))},shimPeerConnection:function(){if("object"==typeof window&&(window.RTCPeerConnection||window.mozRTCPeerConnection)){window.RTCPeerConnection||(window.RTCPeerConnection=function(e,t){if(r.version<38&&e&&e.iceServers){for(var n=[],s=0;s=0)){this._streams.push(t);var n=new Event("addstream");n.stream=e.streams[0],this.dispatchEvent(n)}}.bind(this))}})},shimCallbacksAPI:function(){if("object"==typeof window&&window.RTCPeerConnection){var e=RTCPeerConnection.prototype,t=e.createOffer,n=e.createAnswer,r=e.setLocalDescription,s=e.setRemoteDescription,i=e.addIceCandidate;e.createOffer=function(e,n){var r=arguments.length>=2?arguments[2]:arguments[0],s=t.apply(this,[r]);return n?(s.then(e,n),Promise.resolve()):s},e.createAnswer=function(e,t){var r=arguments.length>=2?arguments[2]:arguments[0],s=n.apply(this,[r]);return t?(s.then(e,t),Promise.resolve()):s};var o=function(e,t,n){var s=r.apply(this,[e]);return n?(s.then(t,n),Promise.resolve()):s};e.setLocalDescription=o,o=function(e,t,n){var r=s.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r},e.setRemoteDescription=o,o=function(e,t,n){var r=i.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r},e.addIceCandidate=o}},shimGetUserMedia:function(){navigator.getUserMedia||(navigator.webkitGetUserMedia?navigator.getUserMedia=navigator.webkitGetUserMedia.bind(navigator):navigator.mediaDevices&&navigator.mediaDevices.getUserMedia&&(navigator.getUserMedia=function(e,t,n){navigator.mediaDevices.getUserMedia(e).then(t,n)}.bind(navigator)))}};t.exports={shimCallbacksAPI:r.shimCallbacksAPI,shimAddStream:r.shimAddStream,shimOnAddStream:r.shimOnAddStream,shimGetUserMedia:r.shimGetUserMedia}},{}],51:[function(e,t,n){"use strict";var r=!0,s={disableLog:function(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(r=e,e?"adapter.js logging disabled":"adapter.js logging enabled")},log:function(){if("object"==typeof window){if(r)return;"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments)}},extractVersion:function(e,t,n){var r=e.match(t);return r&&r.length>=n&&parseInt(r[n],10)},detectBrowser:function(){var e={};if(e.browser=null,e.version=null,"undefined"==typeof window||!window.navigator)return e.browser="Not a browser.",e;if(navigator.mozGetUserMedia)e.browser="firefox",e.version=this.extractVersion(navigator.userAgent,/Firefox\/(\d+)\./,1);else if(navigator.webkitGetUserMedia)if(window.webkitRTCPeerConnection)e.browser="chrome",e.version=this.extractVersion(navigator.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else{if(!navigator.userAgent.match(/Version\/(\d+).(\d+)/))return e.browser="Unsupported webkit-based browser with GUM support but no WebRTC support.",e;e.browser="safari",e.version=this.extractVersion(navigator.userAgent,/AppleWebKit\/(\d+)\./,1)}else if(navigator.mediaDevices&&navigator.userAgent.match(/Edge\/(\d+).(\d+)$/))e.browser="edge",e.version=this.extractVersion(navigator.userAgent,/Edge\/(\d+).(\d+)$/,2);else{if(!navigator.mediaDevices||!navigator.userAgent.match(/AppleWebKit\/(\d+)\./))return e.browser="Not a supported browser.",e;e.browser="safari",e.version=this.extractVersion(navigator.userAgent,/AppleWebKit\/(\d+)\./,1)}return e},shimCreateObjectURL:function(){if("object"==typeof window&&window.HTMLMediaElement&&"srcObject"in window.HTMLMediaElement.prototype){var e=URL.createObjectURL.bind(URL),t=URL.revokeObjectURL.bind(URL),n=new Map,r=0;URL.createObjectURL=function(t){if("getTracks"in t){var s="polyblob:"+ ++r;return n.set(s,t),console.log("URL.createObjectURL(stream) is deprecated! Use elem.srcObject = stream instead!"),s}return e(t)},URL.revokeObjectURL=function(e){t(e),n.delete(e)};var s=Object.getOwnPropertyDescriptor(window.HTMLMediaElement.prototype,"src");Object.defineProperty(window.HTMLMediaElement.prototype,"src",{get:function(){return s.get.apply(this)},set:function(e){return this.srcObject=n.get(e)||null,s.set.apply(this,[e])}});var i=HTMLMediaElement.prototype.setAttribute;HTMLMediaElement.prototype.setAttribute=function(){return 2===arguments.length&&"src"===(""+arguments[0]).toLowerCase()&&(this.srcObject=n.get(arguments[1])||null),i.apply(this,arguments)}}}};t.exports={log:s.log,disableLog:s.disableLog,browserDetails:s.detectBrowser(),extractVersion:s.extractVersion,shimCreateObjectURL:s.shimCreateObjectURL,detectBrowser:s.detectBrowser.bind(s)}},{}],52:[function(e,t,n){t.exports={name:"jssip",title:"JsSIP",description:"the Javascript SIP library",version:"3.0.18",homepage:"http://jssip.net",author:"José Luis Millán (https://github.com/jmillan)",contributors:["Iñaki Baz Castillo (https://github.com/ibc)","Saúl Ibarra Corretgé (https://github.com/saghul)"],main:"lib/JsSIP.js",keywords:["sip","websocket","webrtc","node","browser","library"],license:"MIT",repository:{type:"git",url:"https://github.com/versatica/JsSIP.git"},bugs:{url:"https://github.com/versatica/JsSIP/issues"},dependencies:{debug:"^3.0.1","sdp-transform":"^2.3.0","webrtc-adapter":"^5.0.0"},devDependencies:{browserify:"^14.3.0",gulp:"git+https://github.com/gulpjs/gulp.git#4.0","gulp-expect-file":"0.0.7","gulp-header":"1.8.9","gulp-jshint":"^2.0.4","gulp-nodeunit-runner":"^0.2.2","gulp-rename":"^1.2.2","gulp-uglify":"^3.0.0","gulp-util":"^3.0.8",jshint:"^2.9.4","jshint-stylish":"^2.2.1",pegjs:"0.7.0","vinyl-buffer":"^1.0.0","vinyl-source-stream":"^1.1.0"},scripts:{test:"gulp test"}}},{}]},{},[7])(7)}); \ No newline at end of file diff --git a/package.json b/package.json index 5c2c28248..70cf1ad94 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "jssip", "title": "JsSIP", "description": "the Javascript SIP library", - "version": "3.0.17", + "version": "3.0.18", "homepage": "http://jssip.net", "author": "José Luis Millán (https://github.com/jmillan)", "contributors": [