@telegenta/webclient 2.0.12 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/README.md +102 -81
  2. package/demos/add_phone_number.html +8 -7
  3. package/demos/calldata_available.html +5 -5
  4. package/demos/embedded_config.html +3 -3
  5. package/demos/event_client.html +226 -211
  6. package/demos/phone_client.html +540 -514
  7. package/demos/styles.css +0 -0
  8. package/dist/telegenta.js +3663 -0
  9. package/dist/telegenta.min.js +1 -0
  10. package/docs/EventClient.html +3 -1093
  11. package/docs/EventServiceNotConnected.html +3 -0
  12. package/docs/InvalidMediaDevice.html +3 -0
  13. package/docs/InvalidOptions.html +3 -0
  14. package/docs/InvalidParameter.html +3 -0
  15. package/docs/LogHandler.html +7 -0
  16. package/docs/MediaNotPrepared.html +3 -0
  17. package/docs/NoActiveSession.html +3 -0
  18. package/docs/NotAllowed.html +3 -0
  19. package/docs/NotReady.html +3 -0
  20. package/docs/Phone.html +4 -2837
  21. package/docs/Request.html +3 -0
  22. package/docs/Requestor.html +3 -0
  23. package/docs/Session.html +3 -2599
  24. package/docs/UnableToConnect.html +3 -0
  25. package/docs/data/search.json +1 -0
  26. package/docs/event-client.js.html +352 -0
  27. package/docs/exceptions.js.html +104 -0
  28. package/docs/fonts/Inconsolata-Regular.ttf +0 -0
  29. package/docs/fonts/OpenSans-Regular.ttf +0 -0
  30. package/docs/fonts/WorkSans-Bold.ttf +0 -0
  31. package/docs/global.html +5 -4950
  32. package/docs/index.html +3 -66
  33. package/docs/logger.js.html +106 -0
  34. package/docs/phone-client.js.html +2175 -0
  35. package/docs/requestor.js.html +223 -0
  36. package/docs/scripts/core.js +726 -0
  37. package/docs/scripts/core.min.js +23 -0
  38. package/docs/scripts/resize.js +90 -0
  39. package/docs/scripts/search.js +265 -0
  40. package/docs/scripts/search.min.js +6 -0
  41. package/docs/scripts/{prettify → third-party}/Apache-License-2.0.txt +202 -202
  42. package/docs/scripts/third-party/fuse.js +9 -0
  43. package/docs/scripts/third-party/hljs-line-num-original.js +369 -0
  44. package/docs/scripts/third-party/hljs-line-num.js +1 -0
  45. package/docs/scripts/third-party/hljs-original.js +5171 -0
  46. package/docs/scripts/third-party/hljs.js +1 -0
  47. package/docs/scripts/third-party/popper.js +5 -0
  48. package/docs/scripts/third-party/tippy.js +1 -0
  49. package/docs/scripts/third-party/tocbot.js +672 -0
  50. package/docs/scripts/third-party/tocbot.min.js +1 -0
  51. package/docs/styles/clean-jsdoc-theme-base.css +1159 -0
  52. package/docs/styles/clean-jsdoc-theme-dark.css +412 -0
  53. package/docs/styles/clean-jsdoc-theme-light.css +482 -0
  54. package/docs/styles/clean-jsdoc-theme-scrollbar.css +30 -0
  55. package/docs/styles/clean-jsdoc-theme-without-scrollbar.min.css +1 -0
  56. package/docs/styles/clean-jsdoc-theme.min.css +1 -0
  57. package/package.json +38 -26
  58. package/babel.config.js +0 -16
  59. package/browser/telegenta.min.js +0 -1
  60. package/demos/telegenta.min.js +0 -1
  61. package/docs/fonts/OpenSans-Bold-webfont.eot +0 -0
  62. package/docs/fonts/OpenSans-Bold-webfont.svg +0 -1830
  63. package/docs/fonts/OpenSans-Bold-webfont.woff +0 -0
  64. package/docs/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  65. package/docs/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
  66. package/docs/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  67. package/docs/fonts/OpenSans-Italic-webfont.eot +0 -0
  68. package/docs/fonts/OpenSans-Italic-webfont.svg +0 -1830
  69. package/docs/fonts/OpenSans-Italic-webfont.woff +0 -0
  70. package/docs/fonts/OpenSans-Light-webfont.eot +0 -0
  71. package/docs/fonts/OpenSans-Light-webfont.svg +0 -1831
  72. package/docs/fonts/OpenSans-Light-webfont.woff +0 -0
  73. package/docs/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  74. package/docs/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
  75. package/docs/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  76. package/docs/fonts/OpenSans-Regular-webfont.eot +0 -0
  77. package/docs/fonts/OpenSans-Regular-webfont.svg +0 -1831
  78. package/docs/fonts/OpenSans-Regular-webfont.woff +0 -0
  79. package/docs/fonts/OpenSans-Semibold-webfont.eot +0 -0
  80. package/docs/fonts/OpenSans-Semibold-webfont.svg +0 -1830
  81. package/docs/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  82. package/docs/fonts/OpenSans-Semibold-webfont.woff +0 -0
  83. package/docs/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  84. package/docs/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
  85. package/docs/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  86. package/docs/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  87. package/docs/scripts/linenumber.js +0 -25
  88. package/docs/scripts/prettify/lang-css.js +0 -2
  89. package/docs/scripts/prettify/prettify.js +0 -28
  90. package/docs/styles/jsdoc-default.css +0 -692
  91. package/docs/styles/prettify-jsdoc.css +0 -111
  92. package/docs/styles/prettify-tomorrow.css +0 -132
  93. package/embedded_client/embedded_phone.js +0 -325
  94. package/embedded_client/index.html +0 -201
  95. package/embedded_client/server.php +0 -28
  96. package/embedded_client/styles.css +0 -310
  97. package/embedded_client/tiny_rest_client.php +0 -73
  98. package/embedded_client/webphone_sprites.png +0 -0
  99. package/es5/event-client.js +0 -277
  100. package/es5/index.js +0 -44
  101. package/es5/phone-client.js +0 -1336
  102. package/src/event-client.js +0 -1
  103. package/src/index.js +0 -10
  104. package/src/phone-client.js +0 -1
  105. package/webpack.config.js +0 -39
@@ -1 +0,0 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Telegenta=t():e.Telegenta=t()}(window,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var s=t[r]={i:r,l:!1,exports:{}};return e[r].call(s.exports,s,s.exports,n),s.l=!0,s.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)n.d(r,s,function(t){return e[t]}.bind(null,s));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=42)}([function(e,t,n){(function(r){function s(){var e;try{e=t.storage.debug}catch(e){}return!e&&void 0!==r&&"env"in r&&(e=r.env.DEBUG),e}(t=e.exports=n(24)).log=function(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)},t.formatArgs=function(e){var n=this.useColors;if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),!n)return;var r="color: "+this.color;e.splice(1,0,r,"color: inherit");var s=0,i=0;e[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(s++,"%c"===e&&(i=s))})),e.splice(i,0,r)},t.save=function(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}},t.load=s,t.useColors=function(){if("undefined"!=typeof window&&window.process&&"renderer"===window.process.type)return!0;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},t.enable(s())}).call(this,n(23))},function(e,t,n){"use strict";var r=n(13);e.exports={USER_AGENT:"".concat(r.title," ").concat(r.version),SIP:"sip",SIPS:"sips",causes:{CONNECTION_ERROR:"Connection Error",REQUEST_TIMEOUT:"Request Timeout",SIP_FAILURE_CODE:"SIP Failure Code",INTERNAL_ERROR:"Internal Error",BUSY:"Busy",REJECTED:"Rejected",REDIRECTED:"Redirected",UNAVAILABLE:"Unavailable",NOT_FOUND:"Not Found",ADDRESS_INCOMPLETE:"Address Incomplete",INCOMPATIBLE_SDP:"Incompatible SDP",MISSING_SDP:"Missing SDP",AUTHENTICATION_ERROR:"Authentication Error",BYE:"Terminated",WEBRTC_ERROR:"WebRTC Error",CANCELED:"Canceled",NO_ANSWER:"No Answer",EXPIRES:"Expires",NO_ACK:"No ACK",DIALOG_ERROR:"Dialog Error",USER_DENIED_MEDIA_ACCESS:"User Denied Media Access",BAD_MEDIA_DESCRIPTION:"Bad Media Description",RTP_TIMEOUT:"RTP Timeout"},SIP_ERROR_CAUSES:{REDIRECTED:[300,301,302,305,380],BUSY:[486,600],REJECTED:[403,603],NOT_FOUND:[404,604],UNAVAILABLE:[480,410,408,430],ADDRESS_INCOMPLETE:[484,424],INCOMPATIBLE_SDP:[488,606],AUTHENTICATION_ERROR:[401,407]},ACK:"ACK",BYE:"BYE",CANCEL:"CANCEL",INFO:"INFO",INVITE:"INVITE",MESSAGE:"MESSAGE",NOTIFY:"NOTIFY",OPTIONS:"OPTIONS",REGISTER:"REGISTER",REFER:"REFER",UPDATE:"UPDATE",SUBSCRIBE:"SUBSCRIBE",REASON_PHRASE:{100:"Trying",180:"Ringing",181:"Call Is Being Forwarded",182:"Queued",183:"Session Progress",199:"Early Dialog Terminated",200:"OK",202:"Accepted",204:"No Notification",300:"Multiple Choices",301:"Moved Permanently",302:"Moved Temporarily",305:"Use Proxy",380:"Alternative Service",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",410:"Gone",412:"Conditional Request Failed",413:"Request Entity Too Large",414:"Request-URI Too Long",415:"Unsupported Media Type",416:"Unsupported URI Scheme",417:"Unknown Resource-Priority",420:"Bad Extension",421:"Extension Required",422:"Session Interval Too Small",423:"Interval Too Brief",424:"Bad Location Information",428:"Use Identity Header",429:"Provide Referrer Identity",430:"Flow Failed",433:"Anonymity Disallowed",436:"Bad Identity-Info",437:"Unsupported Certificate",438:"Invalid Identity Header",439:"First Hop Lacks Outbound Support",440:"Max-Breadth Exceeded",469:"Bad Info Package",470:"Consent Needed",478:"Unresolvable Destination",480:"Temporarily Unavailable",481:"Call/Transaction Does Not Exist",482:"Loop Detected",483:"Too Many Hops",484:"Address Incomplete",485:"Ambiguous",486:"Busy Here",487:"Request Terminated",488:"Not Acceptable Here",489:"Bad Event",491:"Request Pending",493:"Undecipherable",494:"Security Agreement Required",500:"JsSIP Internal Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Server Time-out",505:"Version Not Supported",513:"Message Too Large",580:"Precondition Failure",600:"Busy Everywhere",603:"Decline",604:"Does Not Exist Anywhere",606:"Not Acceptable"},ALLOWED_METHODS:"INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO,NOTIFY",ACCEPTED_BODY_TYPES:"application/sdp, application/dtmf-relay",MAX_FORWARDS:69,SESSION_EXPIRES:90,MIN_SESSION_EXPIRES:60,CONNECTION_RECOVERY_MAX_INTERVAL:30,CONNECTION_RECOVERY_MIN_INTERVAL:2}},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var s=n(1),i=n(7),o=n(4);t.str_utf8_length=function(e){return unescape(encodeURIComponent(e)).length};var l=t.isFunction=function(e){return void 0!==e&&"[object Function]"===Object.prototype.toString.call(e)};t.isString=function(e){return void 0!==e&&"[object String]"===Object.prototype.toString.call(e)},t.isDecimal=function(e){return!isNaN(e)&&parseFloat(e)===parseInt(e,10)},t.isEmpty=function(e){return null===e||""===e||void 0===e||Array.isArray(e)&&0===e.length||"number"==typeof e&&isNaN(e)},t.hasMethods=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];for(var s=0;s<n.length;s++){var i=n[s];if(l(e[i]))return!1}return!0};var a=t.createRandomToken=function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:32,r="";for(t=0;t<e;t++)r+=(Math.random()*n|0).toString(n);return r};t.newTag=function(){return a(10)},t.newUUID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))},t.hostType=function(e){if(e)return-1!==(e=o.parse(e,"host"))?e.host_type:void 0};var u=t.escapeUser=function(e){return encodeURIComponent(decodeURIComponent(e)).replace(/%3A/gi,":").replace(/%2B/gi,"+").replace(/%3F/gi,"?").replace(/%2F/gi,"/")};t.normalizeTarget=function(e,t){if(e){if(e instanceof i)return e;if("string"==typeof e){var n,r,o,l=e.split("@");switch(l.length){case 1:if(!t)return;n=e,r=t;break;case 2:n=l[0],r=l[1];break;default:n=l.slice(0,l.length-1).join("@"),r=l[l.length-1]}return n=n.replace(/^(sips?|tel):/i,""),/^[-.()]*\+?[0-9\-.()]+$/.test(n)&&(n=n.replace(/[-.()]/g,"")),e="".concat(s.SIP,":").concat(u(n),"@").concat(r),(o=i.parse(e))?o:void 0}}else;},t.headerize=function(e){var t,n={"Call-Id":"Call-ID",Cseq:"CSeq","Www-Authenticate":"WWW-Authenticate"},r=e.toLowerCase().replace(/_/g,"-").split("-"),s="",i=r.length;for(t=0;t<i;t++)0!==t&&(s+="-"),s+=r[t].charAt(0).toUpperCase()+r[t].substring(1);return n[s]&&(s=n[s]),s},t.sipErrorCause=function(e){for(var t in s.SIP_ERROR_CAUSES)if(-1!==s.SIP_ERROR_CAUSES[t].indexOf(e))return s.causes[t];return s.causes.SIP_FAILURE_CODE},t.getRandomTestNetIP=function(){return"192.0.2.".concat((e=1,t=254,Math.floor(Math.random()*(t-e+1)+e)));var e,t},t.calculateMD5=function(e){function t(e,t){return e<<t|e>>>32-t}function n(e,t){var n=2147483648&e,r=2147483648&t,s=1073741824&e,i=1073741824&t,o=(1073741823&e)+(1073741823&t);return s&i?2147483648^o^n^r:s|i?1073741824&o?3221225472^o^n^r:1073741824^o^n^r:o^n^r}function r(e,r,s,i,o,l,a){return e=n(e,n(n(function(e,t,n){return e&t|~e&n}(r,s,i),o),a)),n(t(e,l),r)}function s(e,r,s,i,o,l,a){return e=n(e,n(n(function(e,t,n){return e&n|t&~n}(r,s,i),o),a)),n(t(e,l),r)}function i(e,r,s,i,o,l,a){return e=n(e,n(n(function(e,t,n){return e^t^n}(r,s,i),o),a)),n(t(e,l),r)}function o(e,r,s,i,o,l,a){return e=n(e,n(n(function(e,t,n){return t^(e|~n)}(r,s,i),o),a)),n(t(e,l),r)}function l(e){var t,n="",r="";for(t=0;t<=3;t++)n+=(r="0".concat((e>>>8*t&255).toString(16))).substr(r.length-2,2);return n}var a,u,c,h,d,f,_,p,m,v;for(a=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,l=0;l<n;)o=l%4*8,i[t=(l-l%4)/4]=i[t]|e.charCodeAt(l)<<o,l++;return o=l%4*8,i[t=(l-l%4)/4]=i[t]|128<<o,i[s-2]=n<<3,i[s-1]=n>>>29,i}(e=function(e){e=e.replace(/\r\n/g,"\n");for(var t="",n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t+=String.fromCharCode(r):r>127&&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)),_=1732584193,p=4023233417,m=2562383102,v=271733878,u=0;u<a.length;u+=16)c=_,h=p,d=m,f=v,_=r(_,p,m,v,a[u+0],7,3614090360),v=r(v,_,p,m,a[u+1],12,3905402710),m=r(m,v,_,p,a[u+2],17,606105819),p=r(p,m,v,_,a[u+3],22,3250441966),_=r(_,p,m,v,a[u+4],7,4118548399),v=r(v,_,p,m,a[u+5],12,1200080426),m=r(m,v,_,p,a[u+6],17,2821735955),p=r(p,m,v,_,a[u+7],22,4249261313),_=r(_,p,m,v,a[u+8],7,1770035416),v=r(v,_,p,m,a[u+9],12,2336552879),m=r(m,v,_,p,a[u+10],17,4294925233),p=r(p,m,v,_,a[u+11],22,2304563134),_=r(_,p,m,v,a[u+12],7,1804603682),v=r(v,_,p,m,a[u+13],12,4254626195),m=r(m,v,_,p,a[u+14],17,2792965006),_=s(_,p=r(p,m,v,_,a[u+15],22,1236535329),m,v,a[u+1],5,4129170786),v=s(v,_,p,m,a[u+6],9,3225465664),m=s(m,v,_,p,a[u+11],14,643717713),p=s(p,m,v,_,a[u+0],20,3921069994),_=s(_,p,m,v,a[u+5],5,3593408605),v=s(v,_,p,m,a[u+10],9,38016083),m=s(m,v,_,p,a[u+15],14,3634488961),p=s(p,m,v,_,a[u+4],20,3889429448),_=s(_,p,m,v,a[u+9],5,568446438),v=s(v,_,p,m,a[u+14],9,3275163606),m=s(m,v,_,p,a[u+3],14,4107603335),p=s(p,m,v,_,a[u+8],20,1163531501),_=s(_,p,m,v,a[u+13],5,2850285829),v=s(v,_,p,m,a[u+2],9,4243563512),m=s(m,v,_,p,a[u+7],14,1735328473),_=i(_,p=s(p,m,v,_,a[u+12],20,2368359562),m,v,a[u+5],4,4294588738),v=i(v,_,p,m,a[u+8],11,2272392833),m=i(m,v,_,p,a[u+11],16,1839030562),p=i(p,m,v,_,a[u+14],23,4259657740),_=i(_,p,m,v,a[u+1],4,2763975236),v=i(v,_,p,m,a[u+4],11,1272893353),m=i(m,v,_,p,a[u+7],16,4139469664),p=i(p,m,v,_,a[u+10],23,3200236656),_=i(_,p,m,v,a[u+13],4,681279174),v=i(v,_,p,m,a[u+0],11,3936430074),m=i(m,v,_,p,a[u+3],16,3572445317),p=i(p,m,v,_,a[u+6],23,76029189),_=i(_,p,m,v,a[u+9],4,3654602809),v=i(v,_,p,m,a[u+12],11,3873151461),m=i(m,v,_,p,a[u+15],16,530742520),_=o(_,p=i(p,m,v,_,a[u+2],23,3299628645),m,v,a[u+0],6,4096336452),v=o(v,_,p,m,a[u+7],10,1126891415),m=o(m,v,_,p,a[u+14],15,2878612391),p=o(p,m,v,_,a[u+5],21,4237533241),_=o(_,p,m,v,a[u+12],6,1700485571),v=o(v,_,p,m,a[u+3],10,2399980690),m=o(m,v,_,p,a[u+10],15,4293915773),p=o(p,m,v,_,a[u+1],21,2240044497),_=o(_,p,m,v,a[u+8],6,1873313359),v=o(v,_,p,m,a[u+15],10,4264355552),m=o(m,v,_,p,a[u+6],15,2734768916),p=o(p,m,v,_,a[u+13],21,1309151649),_=o(_,p,m,v,a[u+4],6,4149444226),v=o(v,_,p,m,a[u+11],10,3174756917),m=o(m,v,_,p,a[u+2],15,718787259),p=o(p,m,v,_,a[u+9],21,3951481745),_=n(_,c),p=n(p,h),m=n(m,d),v=n(v,f);return(l(_)+l(p)+l(m)+l(v)).toLowerCase()},t.closeMediaStream=function(e){if(e)try{var t;if(e.getTracks){t=e.getTracks();var n=!0,s=!1,i=void 0;try{for(var o,l=t[Symbol.iterator]();!(n=(o=l.next()).done);n=!0){o.value.stop()}}catch(e){s=!0,i=e}finally{try{n||null==l.return||l.return()}finally{if(s)throw i}}}else{t=e.getAudioTracks();var a=!0,u=!1,c=void 0;try{for(var h,d=t[Symbol.iterator]();!(a=(h=d.next()).done);a=!0){h.value.stop()}}catch(e){u=!0,c=e}finally{try{a||null==d.return||d.return()}finally{if(u)throw c}}t=e.getVideoTracks();var f=!0,_=!1,p=void 0;try{for(var m,v=t[Symbol.iterator]();!(f=(m=v.next()).done);f=!0){m.value.stop()}}catch(e){_=!0,p=e}finally{try{f||null==v.return||v.return()}finally{if(_)throw p}}}}catch(t){"function"!=typeof e.stop&&"object"!==r(e.stop)||e.stop()}},t.cloneArray=function(e){return e&&e.slice()||[]}},function(e,t,n){"use strict";var r,s="object"==typeof Reflect?Reflect:null,i=s&&"function"==typeof s.apply?s.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};r=s&&"function"==typeof s.ownKeys?s.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var o=Number.isNaN||function(e){return e!=e};function l(){l.init.call(this)}e.exports=l,e.exports.once=function(e,t){return new Promise((function(n,r){function s(){void 0!==i&&e.removeListener("error",i),n([].slice.call(arguments))}var i;"error"!==t&&(i=function(n){e.removeListener(t,s),r(n)},e.once("error",i)),e.once(t,s)}))},l.EventEmitter=l,l.prototype._events=void 0,l.prototype._eventsCount=0,l.prototype._maxListeners=void 0;var a=10;function u(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function c(e){return void 0===e._maxListeners?l.defaultMaxListeners:e._maxListeners}function h(e,t,n,r){var s,i,o,l;if(u(n),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),o=i[t]),void 0===o)o=i[t]=n,++e._eventsCount;else if("function"==typeof o?o=i[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),(s=c(e))>0&&o.length>s&&!o.warned){o.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=e,a.type=t,a.count=o.length,l=a,console&&console.warn&&console.warn(l)}return e}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},s=d.bind(r);return s.listener=n,r.wrapFn=s,s}function _(e,t,n){var r=e._events;if(void 0===r)return[];var s=r[t];return void 0===s?[]:"function"==typeof s?n?[s.listener||s]:[s]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(s):m(s,s.length)}function p(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function m(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}Object.defineProperty(l,"defaultMaxListeners",{enumerable:!0,get:function(){return a},set:function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");a=e}}),l.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},l.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},l.prototype.getMaxListeners=function(){return c(this)},l.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var r="error"===e,s=this._events;if(void 0!==s)r=r&&void 0===s.error;else if(!r)return!1;if(r){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var l=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw l.context=o,l}var a=s[e];if(void 0===a)return!1;if("function"==typeof a)i(a,this,t);else{var u=a.length,c=m(a,u);for(n=0;n<u;++n)i(c[n],this,t)}return!0},l.prototype.addListener=function(e,t){return h(this,e,t,!1)},l.prototype.on=l.prototype.addListener,l.prototype.prependListener=function(e,t){return h(this,e,t,!0)},l.prototype.once=function(e,t){return u(t),this.on(e,f(this,e,t)),this},l.prototype.prependOnceListener=function(e,t){return u(t),this.prependListener(e,f(this,e,t)),this},l.prototype.removeListener=function(e,t){var n,r,s,i,o;if(u(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(s=-1,i=n.length-1;i>=0;i--)if(n[i]===t||n[i].listener===t){o=n[i].listener,s=i;break}if(s<0)return this;0===s?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,s),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,o||t)}return this},l.prototype.off=l.prototype.removeListener,l.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var s,i=Object.keys(n);for(r=0;r<i.length;++r)"removeListener"!==(s=i[r])&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},l.prototype.listeners=function(e){return _(this,e,!0)},l.prototype.rawListeners=function(e){return _(this,e,!1)},l.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},l.prototype.listenerCount=p,l.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){"use strict";e.exports=function(){function e(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 t={parse:function(t,r){var s={CRLF:u,DIGIT:c,ALPHA:h,HEXDIG:d,WSP:f,OCTET:_,DQUOTE:p,SP:m,HTAB:v,alphanum:g,reserved:x,unreserved:y,mark:T,escaped:b,LWS:S,SWS:E,HCOLON:C,TEXT_UTF8_TRIM:A,TEXT_UTF8char:w,UTF8_NONASCII:R,UTF8_CONT:I,LHEX:function(){var e;null===(e=c())&&(/^[a-f]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a("[a-f]")));return e},token:O,token_nodot:N,separators:function(){var e;40===t.charCodeAt(i)?(e="(",i++):(e=null,a('"("'));null===e&&(41===t.charCodeAt(i)?(e=")",i++):(e=null,a('")"')),null===e&&(60===t.charCodeAt(i)?(e="<",i++):(e=null,a('"<"')),null===e&&(62===t.charCodeAt(i)?(e=">",i++):(e=null,a('">"')),null===e&&(64===t.charCodeAt(i)?(e="@",i++):(e=null,a('"@"')),null===e&&(44===t.charCodeAt(i)?(e=",",i++):(e=null,a('","')),null===e&&(59===t.charCodeAt(i)?(e=";",i++):(e=null,a('";"')),null===e&&(58===t.charCodeAt(i)?(e=":",i++):(e=null,a('":"')),null===e&&(92===t.charCodeAt(i)?(e="\\",i++):(e=null,a('"\\\\"')),null===e&&null===(e=p())&&(47===t.charCodeAt(i)?(e="/",i++):(e=null,a('"/"')),null===e&&(91===t.charCodeAt(i)?(e="[",i++):(e=null,a('"["')),null===e&&(93===t.charCodeAt(i)?(e="]",i++):(e=null,a('"]"')),null===e&&(63===t.charCodeAt(i)?(e="?",i++):(e=null,a('"?"')),null===e&&(61===t.charCodeAt(i)?(e="=",i++):(e=null,a('"="')),null===e&&(123===t.charCodeAt(i)?(e="{",i++):(e=null,a('"{"')),null===e&&(125===t.charCodeAt(i)?(e="}",i++):(e=null,a('"}"')),null===e&&null===(e=m())&&(e=v()))))))))))))))));return e},word:k,STAR:D,SLASH:U,EQUAL:P,LPAREN:q,RPAREN:M,RAQUOT:L,LAQUOT:H,COMMA:F,SEMI:j,COLON:G,LDQUOT:W,RDQUOT:B,comment:function e(){var t,n,r,s;if(s=i,null!==(t=q())){for(n=[],null===(r=V())&&null===(r=Y())&&(r=e());null!==r;)n.push(r),null===(r=V())&&null===(r=Y())&&(r=e());null!==n&&null!==(r=M())?t=[t,n,r]:(t=null,i=s)}else t=null,i=s;return t},ctext:V,quoted_string:K,quoted_string_clean:z,qdtext:J,quoted_pair:Y,SIP_URI_noparams:$,SIP_URI:X,uri_scheme:Q,uri_scheme_sips:Z,uri_scheme_sip:ee,userinfo:te,user:ne,user_unreserved:re,password:se,hostport:ie,host:oe,hostname:le,domainlabel:ae,toplabel:ue,IPv6reference:ce,IPv6address:he,h16:de,ls32:fe,IPv4address:_e,dec_octet:pe,port:me,uri_parameters:ve,uri_parameter:ge,transport_param:xe,user_param:ye,method_param:Te,ttl_param:be,maddr_param:Se,lr_param:Ee,other_param:Ce,pname:Ae,pvalue:we,paramchar:Re,param_unreserved:Ie,headers:Oe,header:Ne,hname:ke,hvalue:De,hnv_unreserved:Ue,Request_Response:function(){var e;null===(e=ct())&&(e=Pe());return e},Request_Line:Pe,Request_URI:qe,absoluteURI:Me,hier_part:Le,net_path:He,abs_path:Fe,opaque_part:je,uric:Ge,uric_no_slash:We,path_segments:Be,segment:Ve,param:Ke,pchar:ze,scheme:Je,authority:Ye,srvr:$e,reg_name:Xe,query:Qe,SIP_Version:Ze,INVITEm:et,ACKm:tt,OPTIONSm:nt,BYEm:rt,CANCELm:st,REGISTERm:it,SUBSCRIBEm:ot,NOTIFYm:lt,REFERm:at,Method:ut,Status_Line:ct,Status_Code:ht,extension_code:dt,Reason_Phrase:ft,Allow_Events:function(){var e,t,n,r,s,o;if(s=i,null!==(e=Mt())){for(t=[],o=i,null!==(n=F())&&null!==(r=Mt())?n=[n,r]:(n=null,i=o);null!==n;)t.push(n),o=i,null!==(n=F())&&null!==(r=Mt())?n=[n,r]:(n=null,i=o);null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e},Call_ID:function(){var e,n,r,s,o,l;s=i,o=i,null!==(e=k())?(l=i,64===t.charCodeAt(i)?(n="@",i++):(n=null,a('"@"')),null!==n&&null!==(r=k())?n=[n,r]:(n=null,i=l),null!==(n=null!==n?n:"")?e=[e,n]:(e=null,i=o)):(e=null,i=o);null!==e&&(e=function(e){Hn=t.substring(i,e)}(s));null===e&&(i=s);return e},Contact:function(){var e,t,n,r,s,o,l;if(s=i,null===(e=D()))if(o=i,null!==(e=_t())){for(t=[],l=i,null!==(n=F())&&null!==(r=_t())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=F())&&null!==(r=_t())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;null!==e&&(e=function(e){var t,n;for(n=Hn.multi_header.length,t=0;t<n;t++)if(null===Hn.multi_header[t].parsed){Hn=null;break}Hn=null!==Hn?Hn.multi_header:-1}());null===e&&(i=s);return e},contact_param:_t,name_addr:pt,display_name:mt,contact_params:vt,c_p_q:gt,c_p_expires:xt,delta_seconds:yt,qvalue:Tt,generic_param:bt,gen_value:St,Content_Disposition:function(){var e,t,n,r,s,o;if(s=i,null!==(e=Et())){for(t=[],o=i,null!==(n=j())&&null!==(r=Ct())?n=[n,r]:(n=null,i=o);null!==n;)t.push(n),o=i,null!==(n=j())&&null!==(r=Ct())?n=[n,r]:(n=null,i=o);null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e},disp_type:Et,disp_param:Ct,handling_param:At,Content_Encoding:function(){var e,t,n,r,s,o;if(s=i,null!==(e=O())){for(t=[],o=i,null!==(n=F())&&null!==(r=O())?n=[n,r]:(n=null,i=o);null!==n;)t.push(n),o=i,null!==(n=F())&&null!==(r=O())?n=[n,r]:(n=null,i=o);null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e},Content_Length:function(){var e,t,n;if(n=i,null!==(t=c()))for(e=[];null!==t;)e.push(t),t=c();else e=null;null!==e&&(e=void(Hn=parseInt(e.join(""))));null===e&&(i=n);return e},Content_Type:function(){var e,n;n=i,null!==(e=wt())&&(e=function(e){Hn=t.substring(i,e)}(n));null===e&&(i=n);return e},media_type:wt,m_type:Rt,discrete_type:It,composite_type:Ot,extension_token:Nt,x_token:kt,m_subtype:Dt,m_parameter:Ut,m_value:Pt,CSeq:function(){var e,t,n,r;r=i,null!==(e=qt())&&null!==(t=S())&&null!==(n=ut())?e=[e,t,n]:(e=null,i=r);return e},CSeq_value:qt,Expires:function(){var e,t;t=i,null!==(e=yt())&&(e=void(Hn=e));null===e&&(i=t);return e},Event:function(){var e,t,n,r,s,o,l;if(s=i,o=i,null!==(e=Mt())){for(t=[],l=i,null!==(n=j())&&null!==(r=bt())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=j())&&null!==(r=bt())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;null!==e&&(a=e[0],e=void(Hn.event=a.join("").toLowerCase()));var a;null===e&&(i=s);return e},event_type:Mt,From:function(){var e,t,n,r,s,o,l;s=i,o=i,null===(e=$())&&(e=pt());if(null!==e){for(t=[],l=i,null!==(n=j())&&null!==(r=Lt())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=j())&&null!==(r=Lt())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;null!==e&&(e=function(e){var t=Hn.tag;try{Hn=new Ln(Hn.uri,Hn.display_name,Hn.params),t&&Hn.setParam("tag",t)}catch(e){Hn=-1}}());null===e&&(i=s);return e},from_param:Lt,tag_param:Ht,Max_Forwards:function(){var e,t,n;if(n=i,null!==(t=c()))for(e=[];null!==t;)e.push(t),t=c();else e=null;null!==e&&(e=void(Hn=parseInt(e.join(""))));null===e&&(i=n);return e},Min_Expires:function(){var e,t;t=i,null!==(e=yt())&&(e=void(Hn=e));null===e&&(i=t);return e},Name_Addr_Header:function(){var e,t,n,r,s,o,l,a,u,c;a=i,u=i,e=[],t=mt();for(;null!==t;)e.push(t),t=mt();if(null!==e)if(null!==(t=H()))if(null!==(n=X()))if(null!==(r=L())){for(s=[],c=i,null!==(o=j())&&null!==(l=bt())?o=[o,l]:(o=null,i=c);null!==o;)s.push(o),c=i,null!==(o=j())&&null!==(l=bt())?o=[o,l]:(o=null,i=c);null!==s?e=[e,t,n,r,s]:(e=null,i=u)}else e=null,i=u;else e=null,i=u;else e=null,i=u;else e=null,i=u;null!==e&&(e=function(e){try{Hn=new Ln(Hn.uri,Hn.display_name,Hn.params)}catch(e){Hn=-1}}());null===e&&(i=a);return e},Proxy_Authenticate:function(){return Ft()},challenge:Ft,other_challenge:jt,auth_param:Gt,digest_cln:Wt,realm:Bt,realm_value:Vt,domain:Kt,URI:zt,nonce:Jt,nonce_value:Yt,opaque:$t,stale:Xt,algorithm:Qt,qop_options:Zt,qop_value:en,Proxy_Require:function(){var e,t,n,r,s,o;if(s=i,null!==(e=O())){for(t=[],o=i,null!==(n=F())&&null!==(r=O())?n=[n,r]:(n=null,i=o);null!==n;)t.push(n),o=i,null!==(n=F())&&null!==(r=O())?n=[n,r]:(n=null,i=o);null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e},Record_Route:function(){var e,t,n,r,s,o,l;if(s=i,o=i,null!==(e=tn())){for(t=[],l=i,null!==(n=F())&&null!==(r=tn())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=F())&&null!==(r=tn())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;null!==e&&(e=function(e){var t,n;for(n=Hn.multi_header.length,t=0;t<n;t++)if(null===Hn.multi_header[t].parsed){Hn=null;break}Hn=null!==Hn?Hn.multi_header:-1}());null===e&&(i=s);return e},rec_route:tn,Reason:function(){var e,n,r,s,o,l,u;o=i,l=i,"sip"===t.substr(i,3).toLowerCase()?(e=t.substr(i,3),i+=3):(e=null,a('"SIP"'));null===e&&(e=O());if(null!==e){for(n=[],u=i,null!==(r=j())&&null!==(s=nn())?r=[r,s]:(r=null,i=u);null!==r;)n.push(r),u=i,null!==(r=j())&&null!==(s=nn())?r=[r,s]:(r=null,i=u);null!==n?e=[e,n]:(e=null,i=l)}else e=null,i=l;null!==e&&(e=function(e,t){if(Hn.protocol=t.toLowerCase(),Hn.params||(Hn.params={}),Hn.params.text&&'"'===Hn.params.text[0]){var n=Hn.params.text;Hn.text=n.substring(1,n.length-1),delete Hn.params.text}}(0,e[0]));null===e&&(i=o);return e},reason_param:nn,reason_cause:rn,Require:function(){var e,t,n,r,s,o;if(s=i,null!==(e=O())){for(t=[],o=i,null!==(n=F())&&null!==(r=O())?n=[n,r]:(n=null,i=o);null!==n;)t.push(n),o=i,null!==(n=F())&&null!==(r=O())?n=[n,r]:(n=null,i=o);null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e},Route:function(){var e,t,n,r,s,o;if(s=i,null!==(e=sn())){for(t=[],o=i,null!==(n=F())&&null!==(r=sn())?n=[n,r]:(n=null,i=o);null!==n;)t.push(n),o=i,null!==(n=F())&&null!==(r=sn())?n=[n,r]:(n=null,i=o);null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e},route_param:sn,Subscription_State:function(){var e,t,n,r,s,o;if(s=i,null!==(e=on())){for(t=[],o=i,null!==(n=j())&&null!==(r=ln())?n=[n,r]:(n=null,i=o);null!==n;)t.push(n),o=i,null!==(n=j())&&null!==(r=ln())?n=[n,r]:(n=null,i=o);null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e},substate_value:on,subexp_params:ln,event_reason_value:an,Subject:function(){var e;return e=null!==(e=A())?e:""},Supported:function(){var e,t,n,r,s,o;if(s=i,null!==(e=O())){for(t=[],o=i,null!==(n=F())&&null!==(r=O())?n=[n,r]:(n=null,i=o);null!==n;)t.push(n),o=i,null!==(n=F())&&null!==(r=O())?n=[n,r]:(n=null,i=o);null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e=null!==e?e:""},To:function(){var e,t,n,r,s,o,l;s=i,o=i,null===(e=$())&&(e=pt());if(null!==e){for(t=[],l=i,null!==(n=j())&&null!==(r=un())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=j())&&null!==(r=un())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;null!==e&&(e=function(e){var t=Hn.tag;try{Hn=new Ln(Hn.uri,Hn.display_name,Hn.params),t&&Hn.setParam("tag",t)}catch(e){Hn=-1}}());null===e&&(i=s);return e},to_param:un,Via:function(){var e,t,n,r,s,o;if(s=i,null!==(e=cn())){for(t=[],o=i,null!==(n=F())&&null!==(r=cn())?n=[n,r]:(n=null,i=o);null!==n;)t.push(n),o=i,null!==(n=F())&&null!==(r=cn())?n=[n,r]:(n=null,i=o);null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e},via_param:cn,via_params:hn,via_ttl:dn,via_maddr:fn,via_received:_n,via_branch:pn,response_port:mn,sent_protocol:vn,protocol_name:gn,transport:xn,sent_by:yn,via_host:Tn,via_port:bn,ttl:Sn,WWW_Authenticate:function(){return Ft()},Session_Expires:function(){var e,t,n,r,s,o;if(s=i,null!==(e=En())){for(t=[],o=i,null!==(n=j())&&null!==(r=Cn())?n=[n,r]:(n=null,i=o);null!==n;)t.push(n),o=i,null!==(n=j())&&null!==(r=Cn())?n=[n,r]:(n=null,i=o);null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e},s_e_expires:En,s_e_params:Cn,s_e_refresher:An,extension_header:function(){var e,t,n,r;r=i,null!==(e=O())&&null!==(t=C())&&null!==(n=wn())?e=[e,t,n]:(e=null,i=r);return e},header_value:wn,message_body:function(){var e,t;e=[],t=_();for(;null!==t;)e.push(t),t=_();return e},uuid_URI:function(){var e,n,r;r=i,"uuid:"===t.substr(i,5)?(e="uuid:",i+=5):(e=null,a('"uuid:"'));null!==e&&null!==(n=Rn())?e=[e,n]:(e=null,i=r);return e},uuid:Rn,hex4:In,hex8:On,hex12:Nn,Refer_To:function(){var e,t,n,r,s,o,l;s=i,o=i,null===(e=$())&&(e=pt());if(null!==e){for(t=[],l=i,null!==(n=j())&&null!==(r=bt())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=j())&&null!==(r=bt())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;null!==e&&(e=function(e){try{Hn=new Ln(Hn.uri,Hn.display_name,Hn.params)}catch(e){Hn=-1}}());null===e&&(i=s);return e},Replaces:function(){var e,t,n,r,s,o;if(s=i,null!==(e=kn())){for(t=[],o=i,null!==(n=j())&&null!==(r=Dn())?n=[n,r]:(n=null,i=o);null!==n;)t.push(n),o=i,null!==(n=j())&&null!==(r=Dn())?n=[n,r]:(n=null,i=o);null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e},call_id:kn,replaces_param:Dn,to_tag:Un,from_tag:Pn,early_flag:qn};if(void 0!==r){if(void 0===s[r])throw new Error("Invalid rule name: "+e(r)+".")}else r="CRLF";var i=0,o=0,l=[];function a(e){i<o||(i>o&&(o=i,l=[]),l.push(e))}function u(){var e;return"\r\n"===t.substr(i,2)?(e="\r\n",i+=2):(e=null,a('"\\r\\n"')),e}function c(){var e;return/^[0-9]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a("[0-9]")),e}function h(){var e;return/^[a-zA-Z]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a("[a-zA-Z]")),e}function d(){var e;return/^[0-9a-fA-F]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a("[0-9a-fA-F]")),e}function f(){var e;return null===(e=m())&&(e=v()),e}function _(){var e;return/^[\0-\xFF]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a("[\\0-\\xFF]")),e}function p(){var e;return/^["]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a('["]')),e}function m(){var e;return 32===t.charCodeAt(i)?(e=" ",i++):(e=null,a('" "')),e}function v(){var e;return 9===t.charCodeAt(i)?(e="\t",i++):(e=null,a('"\\t"')),e}function g(){var e;return/^[a-zA-Z0-9]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a("[a-zA-Z0-9]")),e}function x(){var e;return 59===t.charCodeAt(i)?(e=";",i++):(e=null,a('";"')),null===e&&(47===t.charCodeAt(i)?(e="/",i++):(e=null,a('"/"')),null===e&&(63===t.charCodeAt(i)?(e="?",i++):(e=null,a('"?"')),null===e&&(58===t.charCodeAt(i)?(e=":",i++):(e=null,a('":"')),null===e&&(64===t.charCodeAt(i)?(e="@",i++):(e=null,a('"@"')),null===e&&(38===t.charCodeAt(i)?(e="&",i++):(e=null,a('"&"')),null===e&&(61===t.charCodeAt(i)?(e="=",i++):(e=null,a('"="')),null===e&&(43===t.charCodeAt(i)?(e="+",i++):(e=null,a('"+"')),null===e&&(36===t.charCodeAt(i)?(e="$",i++):(e=null,a('"$"')),null===e&&(44===t.charCodeAt(i)?(e=",",i++):(e=null,a('","'))))))))))),e}function y(){var e;return null===(e=g())&&(e=T()),e}function T(){var e;return 45===t.charCodeAt(i)?(e="-",i++):(e=null,a('"-"')),null===e&&(95===t.charCodeAt(i)?(e="_",i++):(e=null,a('"_"')),null===e&&(46===t.charCodeAt(i)?(e=".",i++):(e=null,a('"."')),null===e&&(33===t.charCodeAt(i)?(e="!",i++):(e=null,a('"!"')),null===e&&(126===t.charCodeAt(i)?(e="~",i++):(e=null,a('"~"')),null===e&&(42===t.charCodeAt(i)?(e="*",i++):(e=null,a('"*"')),null===e&&(39===t.charCodeAt(i)?(e="'",i++):(e=null,a('"\'"')),null===e&&(40===t.charCodeAt(i)?(e="(",i++):(e=null,a('"("')),null===e&&(41===t.charCodeAt(i)?(e=")",i++):(e=null,a('")"')))))))))),e}function b(){var e,n,r,s,o;return s=i,o=i,37===t.charCodeAt(i)?(e="%",i++):(e=null,a('"%"')),null!==e&&null!==(n=d())&&null!==(r=d())?e=[e,n,r]:(e=null,i=o),null!==e&&(e=e.join("")),null===e&&(i=s),e}function S(){var e,t,n,r,s,o;for(r=i,s=i,o=i,e=[],t=f();null!==t;)e.push(t),t=f();if(null!==e&&null!==(t=u())?e=[e,t]:(e=null,i=o),null!==(e=null!==e?e:"")){if(null!==(n=f()))for(t=[];null!==n;)t.push(n),n=f();else t=null;null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return null!==e&&(e=" "),null===e&&(i=r),e}function E(){var e;return e=null!==(e=S())?e:""}function C(){var e,n,r,s,o;for(s=i,o=i,e=[],null===(n=m())&&(n=v());null!==n;)e.push(n),null===(n=m())&&(n=v());return null!==e?(58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null!==n&&null!==(r=E())?e=[e,n,r]:(e=null,i=o)):(e=null,i=o),null!==e&&(e=":"),null===e&&(i=s),e}function A(){var e,n,r,s,o,l,a;if(o=i,l=i,null!==(n=w()))for(e=[];null!==n;)e.push(n),n=w();else e=null;if(null!==e){for(n=[],a=i,r=[],s=S();null!==s;)r.push(s),s=S();for(null!==r&&null!==(s=w())?r=[r,s]:(r=null,i=a);null!==r;){for(n.push(r),a=i,r=[],s=S();null!==s;)r.push(s),s=S();null!==r&&null!==(s=w())?r=[r,s]:(r=null,i=a)}null!==n?e=[e,n]:(e=null,i=l)}else e=null,i=l;return null!==e&&(e=function(e){return t.substring(i,e)}(o)),null===e&&(i=o),e}function w(){var e;return/^[!-~]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a("[!-~]")),null===e&&(e=R()),e}function R(){var e;return/^[\x80-\uFFFF]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a("[\\x80-\\uFFFF]")),e}function I(){var e;return/^[\x80-\xBF]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a("[\\x80-\\xBF]")),e}function O(){var e,n,r;if(r=i,null===(n=g())&&(45===t.charCodeAt(i)?(n="-",i++):(n=null,a('"-"')),null===n&&(46===t.charCodeAt(i)?(n=".",i++):(n=null,a('"."')),null===n&&(33===t.charCodeAt(i)?(n="!",i++):(n=null,a('"!"')),null===n&&(37===t.charCodeAt(i)?(n="%",i++):(n=null,a('"%"')),null===n&&(42===t.charCodeAt(i)?(n="*",i++):(n=null,a('"*"')),null===n&&(95===t.charCodeAt(i)?(n="_",i++):(n=null,a('"_"')),null===n&&(43===t.charCodeAt(i)?(n="+",i++):(n=null,a('"+"')),null===n&&(96===t.charCodeAt(i)?(n="`",i++):(n=null,a('"`"')),null===n&&(39===t.charCodeAt(i)?(n="'",i++):(n=null,a('"\'"')),null===n&&(126===t.charCodeAt(i)?(n="~",i++):(n=null,a('"~"')))))))))))),null!==n)for(e=[];null!==n;)e.push(n),null===(n=g())&&(45===t.charCodeAt(i)?(n="-",i++):(n=null,a('"-"')),null===n&&(46===t.charCodeAt(i)?(n=".",i++):(n=null,a('"."')),null===n&&(33===t.charCodeAt(i)?(n="!",i++):(n=null,a('"!"')),null===n&&(37===t.charCodeAt(i)?(n="%",i++):(n=null,a('"%"')),null===n&&(42===t.charCodeAt(i)?(n="*",i++):(n=null,a('"*"')),null===n&&(95===t.charCodeAt(i)?(n="_",i++):(n=null,a('"_"')),null===n&&(43===t.charCodeAt(i)?(n="+",i++):(n=null,a('"+"')),null===n&&(96===t.charCodeAt(i)?(n="`",i++):(n=null,a('"`"')),null===n&&(39===t.charCodeAt(i)?(n="'",i++):(n=null,a('"\'"')),null===n&&(126===t.charCodeAt(i)?(n="~",i++):(n=null,a('"~"'))))))))))));else e=null;return null!==e&&(e=function(e){return t.substring(i,e)}(r)),null===e&&(i=r),e}function N(){var e,n,r;if(r=i,null===(n=g())&&(45===t.charCodeAt(i)?(n="-",i++):(n=null,a('"-"')),null===n&&(33===t.charCodeAt(i)?(n="!",i++):(n=null,a('"!"')),null===n&&(37===t.charCodeAt(i)?(n="%",i++):(n=null,a('"%"')),null===n&&(42===t.charCodeAt(i)?(n="*",i++):(n=null,a('"*"')),null===n&&(95===t.charCodeAt(i)?(n="_",i++):(n=null,a('"_"')),null===n&&(43===t.charCodeAt(i)?(n="+",i++):(n=null,a('"+"')),null===n&&(96===t.charCodeAt(i)?(n="`",i++):(n=null,a('"`"')),null===n&&(39===t.charCodeAt(i)?(n="'",i++):(n=null,a('"\'"')),null===n&&(126===t.charCodeAt(i)?(n="~",i++):(n=null,a('"~"'))))))))))),null!==n)for(e=[];null!==n;)e.push(n),null===(n=g())&&(45===t.charCodeAt(i)?(n="-",i++):(n=null,a('"-"')),null===n&&(33===t.charCodeAt(i)?(n="!",i++):(n=null,a('"!"')),null===n&&(37===t.charCodeAt(i)?(n="%",i++):(n=null,a('"%"')),null===n&&(42===t.charCodeAt(i)?(n="*",i++):(n=null,a('"*"')),null===n&&(95===t.charCodeAt(i)?(n="_",i++):(n=null,a('"_"')),null===n&&(43===t.charCodeAt(i)?(n="+",i++):(n=null,a('"+"')),null===n&&(96===t.charCodeAt(i)?(n="`",i++):(n=null,a('"`"')),null===n&&(39===t.charCodeAt(i)?(n="'",i++):(n=null,a('"\'"')),null===n&&(126===t.charCodeAt(i)?(n="~",i++):(n=null,a('"~"')))))))))));else e=null;return null!==e&&(e=function(e){return t.substring(i,e)}(r)),null===e&&(i=r),e}function k(){var e,n,r;if(r=i,null===(n=g())&&(45===t.charCodeAt(i)?(n="-",i++):(n=null,a('"-"')),null===n&&(46===t.charCodeAt(i)?(n=".",i++):(n=null,a('"."')),null===n&&(33===t.charCodeAt(i)?(n="!",i++):(n=null,a('"!"')),null===n&&(37===t.charCodeAt(i)?(n="%",i++):(n=null,a('"%"')),null===n&&(42===t.charCodeAt(i)?(n="*",i++):(n=null,a('"*"')),null===n&&(95===t.charCodeAt(i)?(n="_",i++):(n=null,a('"_"')),null===n&&(43===t.charCodeAt(i)?(n="+",i++):(n=null,a('"+"')),null===n&&(96===t.charCodeAt(i)?(n="`",i++):(n=null,a('"`"')),null===n&&(39===t.charCodeAt(i)?(n="'",i++):(n=null,a('"\'"')),null===n&&(126===t.charCodeAt(i)?(n="~",i++):(n=null,a('"~"')),null===n&&(40===t.charCodeAt(i)?(n="(",i++):(n=null,a('"("')),null===n&&(41===t.charCodeAt(i)?(n=")",i++):(n=null,a('")"')),null===n&&(60===t.charCodeAt(i)?(n="<",i++):(n=null,a('"<"')),null===n&&(62===t.charCodeAt(i)?(n=">",i++):(n=null,a('">"')),null===n&&(58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null===n&&(92===t.charCodeAt(i)?(n="\\",i++):(n=null,a('"\\\\"')),null===n&&null===(n=p())&&(47===t.charCodeAt(i)?(n="/",i++):(n=null,a('"/"')),null===n&&(91===t.charCodeAt(i)?(n="[",i++):(n=null,a('"["')),null===n&&(93===t.charCodeAt(i)?(n="]",i++):(n=null,a('"]"')),null===n&&(63===t.charCodeAt(i)?(n="?",i++):(n=null,a('"?"')),null===n&&(123===t.charCodeAt(i)?(n="{",i++):(n=null,a('"{"')),null===n&&(125===t.charCodeAt(i)?(n="}",i++):(n=null,a('"}"')))))))))))))))))))))))),null!==n)for(e=[];null!==n;)e.push(n),null===(n=g())&&(45===t.charCodeAt(i)?(n="-",i++):(n=null,a('"-"')),null===n&&(46===t.charCodeAt(i)?(n=".",i++):(n=null,a('"."')),null===n&&(33===t.charCodeAt(i)?(n="!",i++):(n=null,a('"!"')),null===n&&(37===t.charCodeAt(i)?(n="%",i++):(n=null,a('"%"')),null===n&&(42===t.charCodeAt(i)?(n="*",i++):(n=null,a('"*"')),null===n&&(95===t.charCodeAt(i)?(n="_",i++):(n=null,a('"_"')),null===n&&(43===t.charCodeAt(i)?(n="+",i++):(n=null,a('"+"')),null===n&&(96===t.charCodeAt(i)?(n="`",i++):(n=null,a('"`"')),null===n&&(39===t.charCodeAt(i)?(n="'",i++):(n=null,a('"\'"')),null===n&&(126===t.charCodeAt(i)?(n="~",i++):(n=null,a('"~"')),null===n&&(40===t.charCodeAt(i)?(n="(",i++):(n=null,a('"("')),null===n&&(41===t.charCodeAt(i)?(n=")",i++):(n=null,a('")"')),null===n&&(60===t.charCodeAt(i)?(n="<",i++):(n=null,a('"<"')),null===n&&(62===t.charCodeAt(i)?(n=">",i++):(n=null,a('">"')),null===n&&(58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null===n&&(92===t.charCodeAt(i)?(n="\\",i++):(n=null,a('"\\\\"')),null===n&&null===(n=p())&&(47===t.charCodeAt(i)?(n="/",i++):(n=null,a('"/"')),null===n&&(91===t.charCodeAt(i)?(n="[",i++):(n=null,a('"["')),null===n&&(93===t.charCodeAt(i)?(n="]",i++):(n=null,a('"]"')),null===n&&(63===t.charCodeAt(i)?(n="?",i++):(n=null,a('"?"')),null===n&&(123===t.charCodeAt(i)?(n="{",i++):(n=null,a('"{"')),null===n&&(125===t.charCodeAt(i)?(n="}",i++):(n=null,a('"}"'))))))))))))))))))))))));else e=null;return null!==e&&(e=function(e){return t.substring(i,e)}(r)),null===e&&(i=r),e}function D(){var e,n,r,s,o;return s=i,o=i,null!==(e=E())?(42===t.charCodeAt(i)?(n="*",i++):(n=null,a('"*"')),null!==n&&null!==(r=E())?e=[e,n,r]:(e=null,i=o)):(e=null,i=o),null!==e&&(e="*"),null===e&&(i=s),e}function U(){var e,n,r,s,o;return s=i,o=i,null!==(e=E())?(47===t.charCodeAt(i)?(n="/",i++):(n=null,a('"/"')),null!==n&&null!==(r=E())?e=[e,n,r]:(e=null,i=o)):(e=null,i=o),null!==e&&(e="/"),null===e&&(i=s),e}function P(){var e,n,r,s,o;return s=i,o=i,null!==(e=E())?(61===t.charCodeAt(i)?(n="=",i++):(n=null,a('"="')),null!==n&&null!==(r=E())?e=[e,n,r]:(e=null,i=o)):(e=null,i=o),null!==e&&(e="="),null===e&&(i=s),e}function q(){var e,n,r,s,o;return s=i,o=i,null!==(e=E())?(40===t.charCodeAt(i)?(n="(",i++):(n=null,a('"("')),null!==n&&null!==(r=E())?e=[e,n,r]:(e=null,i=o)):(e=null,i=o),null!==e&&(e="("),null===e&&(i=s),e}function M(){var e,n,r,s,o;return s=i,o=i,null!==(e=E())?(41===t.charCodeAt(i)?(n=")",i++):(n=null,a('")"')),null!==n&&null!==(r=E())?e=[e,n,r]:(e=null,i=o)):(e=null,i=o),null!==e&&(e=")"),null===e&&(i=s),e}function L(){var e,n,r,s;return r=i,s=i,62===t.charCodeAt(i)?(e=">",i++):(e=null,a('">"')),null!==e&&null!==(n=E())?e=[e,n]:(e=null,i=s),null!==e&&(e=">"),null===e&&(i=r),e}function H(){var e,n,r,s;return r=i,s=i,null!==(e=E())?(60===t.charCodeAt(i)?(n="<",i++):(n=null,a('"<"')),null!==n?e=[e,n]:(e=null,i=s)):(e=null,i=s),null!==e&&(e="<"),null===e&&(i=r),e}function F(){var e,n,r,s,o;return s=i,o=i,null!==(e=E())?(44===t.charCodeAt(i)?(n=",",i++):(n=null,a('","')),null!==n&&null!==(r=E())?e=[e,n,r]:(e=null,i=o)):(e=null,i=o),null!==e&&(e=","),null===e&&(i=s),e}function j(){var e,n,r,s,o;return s=i,o=i,null!==(e=E())?(59===t.charCodeAt(i)?(n=";",i++):(n=null,a('";"')),null!==n&&null!==(r=E())?e=[e,n,r]:(e=null,i=o)):(e=null,i=o),null!==e&&(e=";"),null===e&&(i=s),e}function G(){var e,n,r,s,o;return s=i,o=i,null!==(e=E())?(58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null!==n&&null!==(r=E())?e=[e,n,r]:(e=null,i=o)):(e=null,i=o),null!==e&&(e=":"),null===e&&(i=s),e}function W(){var e,t,n,r;return n=i,r=i,null!==(e=E())&&null!==(t=p())?e=[e,t]:(e=null,i=r),null!==e&&(e='"'),null===e&&(i=n),e}function B(){var e,t,n,r;return n=i,r=i,null!==(e=p())&&null!==(t=E())?e=[e,t]:(e=null,i=r),null!==e&&(e='"'),null===e&&(i=n),e}function V(){var e;return/^[!-']/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a("[!-']")),null===e&&(/^[*-[]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a("[*-[]")),null===e&&(/^[\]-~]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a("[\\]-~]")),null===e&&null===(e=R())&&(e=S()))),e}function K(){var e,n,r,s,o,l;if(o=i,l=i,null!==(e=E()))if(null!==(n=p())){for(r=[],null===(s=J())&&(s=Y());null!==s;)r.push(s),null===(s=J())&&(s=Y());null!==r&&null!==(s=p())?e=[e,n,r,s]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;return null!==e&&(e=function(e){return t.substring(i,e)}(o)),null===e&&(i=o),e}function z(){var e,n,r,s,o,l;if(o=i,l=i,null!==(e=E()))if(null!==(n=p())){for(r=[],null===(s=J())&&(s=Y());null!==s;)r.push(s),null===(s=J())&&(s=Y());null!==r&&null!==(s=p())?e=[e,n,r,s]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;return null!==e&&(e=function(e){var n=t.substring(i,e).trim();return n.substring(1,n.length-1).replace(/\\([\x00-\x09\x0b-\x0c\x0e-\x7f])/g,"$1")}(o)),null===e&&(i=o),e}function J(){var e;return null===(e=S())&&(33===t.charCodeAt(i)?(e="!",i++):(e=null,a('"!"')),null===e&&(/^[#-[]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a("[#-[]")),null===e&&(/^[\]-~]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a("[\\]-~]")),null===e&&(e=R())))),e}function Y(){var e,n,r;return r=i,92===t.charCodeAt(i)?(e="\\",i++):(e=null,a('"\\\\"')),null!==e?(/^[\0-\t]/.test(t.charAt(i))?(n=t.charAt(i),i++):(n=null,a("[\\0-\\t]")),null===n&&(/^[\x0B-\f]/.test(t.charAt(i))?(n=t.charAt(i),i++):(n=null,a("[\\x0B-\\f]")),null===n&&(/^[\x0E-]/.test(t.charAt(i))?(n=t.charAt(i),i++):(n=null,a("[\\x0E-]")))),null!==n?e=[e,n]:(e=null,i=r)):(e=null,i=r),e}function $(){var e,n,r,s,o,l;return o=i,l=i,null!==(e=Q())?(58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null!==n&&null!==(r=null!==(r=te())?r:"")&&null!==(s=ie())?e=[e,n,r,s]:(e=null,i=l)):(e=null,i=l),null!==e&&(e=function(e){try{Hn.uri=new Mn(Hn.scheme,Hn.user,Hn.host,Hn.port),delete Hn.scheme,delete Hn.user,delete Hn.host,delete Hn.host_type,delete Hn.port}catch(e){Hn=-1}}()),null===e&&(i=o),e}function X(){var e,n,s,o,l,u,c,h;return c=i,h=i,null!==(e=Q())?(58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null!==n&&null!==(s=null!==(s=te())?s:"")&&null!==(o=ie())&&null!==(l=ve())&&null!==(u=null!==(u=Oe())?u:"")?e=[e,n,s,o,l,u]:(e=null,i=h)):(e=null,i=h),null!==e&&(e=function(e){try{Hn.uri=new Mn(Hn.scheme,Hn.user,Hn.host,Hn.port,Hn.uri_params,Hn.uri_headers),delete Hn.scheme,delete Hn.user,delete Hn.host,delete Hn.host_type,delete Hn.port,delete Hn.uri_params,"SIP_URI"===r&&(Hn=Hn.uri)}catch(e){Hn=-1}}()),null===e&&(i=c),e}function Q(){var e;return null===(e=Z())&&(e=ee()),e}function Z(){var e,n,r;return n=i,"sips"===t.substr(i,4).toLowerCase()?(e=t.substr(i,4),i+=4):(e=null,a('"sips"')),null!==e&&(r=e,e=void(Hn.scheme=r.toLowerCase())),null===e&&(i=n),e}function ee(){var e,n,r;return n=i,"sip"===t.substr(i,3).toLowerCase()?(e=t.substr(i,3),i+=3):(e=null,a('"sip"')),null!==e&&(r=e,e=void(Hn.scheme=r.toLowerCase())),null===e&&(i=n),e}function te(){var e,n,r,s,o,l;return s=i,o=i,null!==(e=ne())?(l=i,58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null!==n&&null!==(r=se())?n=[n,r]:(n=null,i=l),null!==(n=null!==n?n:"")?(64===t.charCodeAt(i)?(r="@",i++):(r=null,a('"@"')),null!==r?e=[e,n,r]:(e=null,i=o)):(e=null,i=o)):(e=null,i=o),null!==e&&(e=function(e){Hn.user=decodeURIComponent(t.substring(i-1,e))}(s)),null===e&&(i=s),e}function ne(){var e,t;if(null===(t=y())&&null===(t=b())&&(t=re()),null!==t)for(e=[];null!==t;)e.push(t),null===(t=y())&&null===(t=b())&&(t=re());else e=null;return e}function re(){var e;return 38===t.charCodeAt(i)?(e="&",i++):(e=null,a('"&"')),null===e&&(61===t.charCodeAt(i)?(e="=",i++):(e=null,a('"="')),null===e&&(43===t.charCodeAt(i)?(e="+",i++):(e=null,a('"+"')),null===e&&(36===t.charCodeAt(i)?(e="$",i++):(e=null,a('"$"')),null===e&&(44===t.charCodeAt(i)?(e=",",i++):(e=null,a('","')),null===e&&(59===t.charCodeAt(i)?(e=";",i++):(e=null,a('";"')),null===e&&(63===t.charCodeAt(i)?(e="?",i++):(e=null,a('"?"')),null===e&&(47===t.charCodeAt(i)?(e="/",i++):(e=null,a('"/"'))))))))),e}function se(){var e,n,r;for(r=i,e=[],null===(n=y())&&null===(n=b())&&(38===t.charCodeAt(i)?(n="&",i++):(n=null,a('"&"')),null===n&&(61===t.charCodeAt(i)?(n="=",i++):(n=null,a('"="')),null===n&&(43===t.charCodeAt(i)?(n="+",i++):(n=null,a('"+"')),null===n&&(36===t.charCodeAt(i)?(n="$",i++):(n=null,a('"$"')),null===n&&(44===t.charCodeAt(i)?(n=",",i++):(n=null,a('","')))))));null!==n;)e.push(n),null===(n=y())&&null===(n=b())&&(38===t.charCodeAt(i)?(n="&",i++):(n=null,a('"&"')),null===n&&(61===t.charCodeAt(i)?(n="=",i++):(n=null,a('"="')),null===n&&(43===t.charCodeAt(i)?(n="+",i++):(n=null,a('"+"')),null===n&&(36===t.charCodeAt(i)?(n="$",i++):(n=null,a('"$"')),null===n&&(44===t.charCodeAt(i)?(n=",",i++):(n=null,a('","')))))));return null!==e&&(e=function(e){Hn.password=t.substring(i,e)}(r)),null===e&&(i=r),e}function ie(){var e,n,r,s,o;return s=i,null!==(e=oe())?(o=i,58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null!==n&&null!==(r=me())?n=[n,r]:(n=null,i=o),null!==(n=null!==n?n:"")?e=[e,n]:(e=null,i=s)):(e=null,i=s),e}function oe(){var e,n;return n=i,null===(e=le())&&null===(e=_e())&&(e=ce()),null!==e&&(e=function(e){return Hn.host=t.substring(i,e).toLowerCase(),Hn.host}(n)),null===e&&(i=n),e}function le(){var e,n,r,s,o,l;for(s=i,o=i,e=[],l=i,null!==(n=ae())?(46===t.charCodeAt(i)?(r=".",i++):(r=null,a('"."')),null!==r?n=[n,r]:(n=null,i=l)):(n=null,i=l);null!==n;)e.push(n),l=i,null!==(n=ae())?(46===t.charCodeAt(i)?(r=".",i++):(r=null,a('"."')),null!==r?n=[n,r]:(n=null,i=l)):(n=null,i=l);return null!==e&&null!==(n=ue())?(46===t.charCodeAt(i)?(r=".",i++):(r=null,a('"."')),null!==(r=null!==r?r:"")?e=[e,n,r]:(e=null,i=o)):(e=null,i=o),null!==e&&(e=function(e){return Hn.host_type="domain",t.substring(i,e)}(s)),null===e&&(i=s),e}function ae(){var e,n,r,s;if(s=i,null!==(e=g())){for(n=[],null===(r=g())&&(45===t.charCodeAt(i)?(r="-",i++):(r=null,a('"-"')),null===r&&(95===t.charCodeAt(i)?(r="_",i++):(r=null,a('"_"'))));null!==r;)n.push(r),null===(r=g())&&(45===t.charCodeAt(i)?(r="-",i++):(r=null,a('"-"')),null===r&&(95===t.charCodeAt(i)?(r="_",i++):(r=null,a('"_"'))));null!==n?e=[e,n]:(e=null,i=s)}else e=null,i=s;return e}function ue(){var e,n,r,s;if(s=i,null!==(e=h())){for(n=[],null===(r=g())&&(45===t.charCodeAt(i)?(r="-",i++):(r=null,a('"-"')),null===r&&(95===t.charCodeAt(i)?(r="_",i++):(r=null,a('"_"'))));null!==r;)n.push(r),null===(r=g())&&(45===t.charCodeAt(i)?(r="-",i++):(r=null,a('"-"')),null===r&&(95===t.charCodeAt(i)?(r="_",i++):(r=null,a('"_"'))));null!==n?e=[e,n]:(e=null,i=s)}else e=null,i=s;return e}function ce(){var e,n,r,s,o;return s=i,o=i,91===t.charCodeAt(i)?(e="[",i++):(e=null,a('"["')),null!==e&&null!==(n=he())?(93===t.charCodeAt(i)?(r="]",i++):(r=null,a('"]"')),null!==r?e=[e,n,r]:(e=null,i=o)):(e=null,i=o),null!==e&&(e=function(e){return Hn.host_type="IPv6",t.substring(i,e)}(s)),null===e&&(i=s),e}function he(){var e,n,r,s,o,l,u,c,h,d,f,_,p,m,v,g;return m=i,v=i,null!==(e=de())?(58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null!==n&&null!==(r=de())?(58===t.charCodeAt(i)?(s=":",i++):(s=null,a('":"')),null!==s&&null!==(o=de())?(58===t.charCodeAt(i)?(l=":",i++):(l=null,a('":"')),null!==l&&null!==(u=de())?(58===t.charCodeAt(i)?(c=":",i++):(c=null,a('":"')),null!==c&&null!==(h=de())?(58===t.charCodeAt(i)?(d=":",i++):(d=null,a('":"')),null!==d&&null!==(f=de())?(58===t.charCodeAt(i)?(_=":",i++):(_=null,a('":"')),null!==_&&null!==(p=fe())?e=[e,n,r,s,o,l,u,c,h,d,f,_,p]:(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v),null===e&&(v=i,"::"===t.substr(i,2)?(e="::",i+=2):(e=null,a('"::"')),null!==e&&null!==(n=de())?(58===t.charCodeAt(i)?(r=":",i++):(r=null,a('":"')),null!==r&&null!==(s=de())?(58===t.charCodeAt(i)?(o=":",i++):(o=null,a('":"')),null!==o&&null!==(l=de())?(58===t.charCodeAt(i)?(u=":",i++):(u=null,a('":"')),null!==u&&null!==(c=de())?(58===t.charCodeAt(i)?(h=":",i++):(h=null,a('":"')),null!==h&&null!==(d=de())?(58===t.charCodeAt(i)?(f=":",i++):(f=null,a('":"')),null!==f&&null!==(_=fe())?e=[e,n,r,s,o,l,u,c,h,d,f,_]:(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v),null===e&&(v=i,"::"===t.substr(i,2)?(e="::",i+=2):(e=null,a('"::"')),null!==e&&null!==(n=de())?(58===t.charCodeAt(i)?(r=":",i++):(r=null,a('":"')),null!==r&&null!==(s=de())?(58===t.charCodeAt(i)?(o=":",i++):(o=null,a('":"')),null!==o&&null!==(l=de())?(58===t.charCodeAt(i)?(u=":",i++):(u=null,a('":"')),null!==u&&null!==(c=de())?(58===t.charCodeAt(i)?(h=":",i++):(h=null,a('":"')),null!==h&&null!==(d=fe())?e=[e,n,r,s,o,l,u,c,h,d]:(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v),null===e&&(v=i,"::"===t.substr(i,2)?(e="::",i+=2):(e=null,a('"::"')),null!==e&&null!==(n=de())?(58===t.charCodeAt(i)?(r=":",i++):(r=null,a('":"')),null!==r&&null!==(s=de())?(58===t.charCodeAt(i)?(o=":",i++):(o=null,a('":"')),null!==o&&null!==(l=de())?(58===t.charCodeAt(i)?(u=":",i++):(u=null,a('":"')),null!==u&&null!==(c=fe())?e=[e,n,r,s,o,l,u,c]:(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v),null===e&&(v=i,"::"===t.substr(i,2)?(e="::",i+=2):(e=null,a('"::"')),null!==e&&null!==(n=de())?(58===t.charCodeAt(i)?(r=":",i++):(r=null,a('":"')),null!==r&&null!==(s=de())?(58===t.charCodeAt(i)?(o=":",i++):(o=null,a('":"')),null!==o&&null!==(l=fe())?e=[e,n,r,s,o,l]:(e=null,i=v)):(e=null,i=v)):(e=null,i=v),null===e&&(v=i,"::"===t.substr(i,2)?(e="::",i+=2):(e=null,a('"::"')),null!==e&&null!==(n=de())?(58===t.charCodeAt(i)?(r=":",i++):(r=null,a('":"')),null!==r&&null!==(s=fe())?e=[e,n,r,s]:(e=null,i=v)):(e=null,i=v),null===e&&(v=i,"::"===t.substr(i,2)?(e="::",i+=2):(e=null,a('"::"')),null!==e&&null!==(n=fe())?e=[e,n]:(e=null,i=v),null===e&&(v=i,"::"===t.substr(i,2)?(e="::",i+=2):(e=null,a('"::"')),null!==e&&null!==(n=de())?e=[e,n]:(e=null,i=v),null===e&&(v=i,null!==(e=de())?("::"===t.substr(i,2)?(n="::",i+=2):(n=null,a('"::"')),null!==n&&null!==(r=de())?(58===t.charCodeAt(i)?(s=":",i++):(s=null,a('":"')),null!==s&&null!==(o=de())?(58===t.charCodeAt(i)?(l=":",i++):(l=null,a('":"')),null!==l&&null!==(u=de())?(58===t.charCodeAt(i)?(c=":",i++):(c=null,a('":"')),null!==c&&null!==(h=de())?(58===t.charCodeAt(i)?(d=":",i++):(d=null,a('":"')),null!==d&&null!==(f=fe())?e=[e,n,r,s,o,l,u,c,h,d,f]:(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v),null===e&&(v=i,null!==(e=de())?(g=i,58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null!==n&&null!==(r=de())?n=[n,r]:(n=null,i=g),null!==(n=null!==n?n:"")?("::"===t.substr(i,2)?(r="::",i+=2):(r=null,a('"::"')),null!==r&&null!==(s=de())?(58===t.charCodeAt(i)?(o=":",i++):(o=null,a('":"')),null!==o&&null!==(l=de())?(58===t.charCodeAt(i)?(u=":",i++):(u=null,a('":"')),null!==u&&null!==(c=de())?(58===t.charCodeAt(i)?(h=":",i++):(h=null,a('":"')),null!==h&&null!==(d=fe())?e=[e,n,r,s,o,l,u,c,h,d]:(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v),null===e&&(v=i,null!==(e=de())?(g=i,58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null!==n&&null!==(r=de())?n=[n,r]:(n=null,i=g),null!==(n=null!==n?n:"")?(g=i,58===t.charCodeAt(i)?(r=":",i++):(r=null,a('":"')),null!==r&&null!==(s=de())?r=[r,s]:(r=null,i=g),null!==(r=null!==r?r:"")?("::"===t.substr(i,2)?(s="::",i+=2):(s=null,a('"::"')),null!==s&&null!==(o=de())?(58===t.charCodeAt(i)?(l=":",i++):(l=null,a('":"')),null!==l&&null!==(u=de())?(58===t.charCodeAt(i)?(c=":",i++):(c=null,a('":"')),null!==c&&null!==(h=fe())?e=[e,n,r,s,o,l,u,c,h]:(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v),null===e&&(v=i,null!==(e=de())?(g=i,58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null!==n&&null!==(r=de())?n=[n,r]:(n=null,i=g),null!==(n=null!==n?n:"")?(g=i,58===t.charCodeAt(i)?(r=":",i++):(r=null,a('":"')),null!==r&&null!==(s=de())?r=[r,s]:(r=null,i=g),null!==(r=null!==r?r:"")?(g=i,58===t.charCodeAt(i)?(s=":",i++):(s=null,a('":"')),null!==s&&null!==(o=de())?s=[s,o]:(s=null,i=g),null!==(s=null!==s?s:"")?("::"===t.substr(i,2)?(o="::",i+=2):(o=null,a('"::"')),null!==o&&null!==(l=de())?(58===t.charCodeAt(i)?(u=":",i++):(u=null,a('":"')),null!==u&&null!==(c=fe())?e=[e,n,r,s,o,l,u,c]:(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v),null===e&&(v=i,null!==(e=de())?(g=i,58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null!==n&&null!==(r=de())?n=[n,r]:(n=null,i=g),null!==(n=null!==n?n:"")?(g=i,58===t.charCodeAt(i)?(r=":",i++):(r=null,a('":"')),null!==r&&null!==(s=de())?r=[r,s]:(r=null,i=g),null!==(r=null!==r?r:"")?(g=i,58===t.charCodeAt(i)?(s=":",i++):(s=null,a('":"')),null!==s&&null!==(o=de())?s=[s,o]:(s=null,i=g),null!==(s=null!==s?s:"")?(g=i,58===t.charCodeAt(i)?(o=":",i++):(o=null,a('":"')),null!==o&&null!==(l=de())?o=[o,l]:(o=null,i=g),null!==(o=null!==o?o:"")?("::"===t.substr(i,2)?(l="::",i+=2):(l=null,a('"::"')),null!==l&&null!==(u=fe())?e=[e,n,r,s,o,l,u]:(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v),null===e&&(v=i,null!==(e=de())?(g=i,58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null!==n&&null!==(r=de())?n=[n,r]:(n=null,i=g),null!==(n=null!==n?n:"")?(g=i,58===t.charCodeAt(i)?(r=":",i++):(r=null,a('":"')),null!==r&&null!==(s=de())?r=[r,s]:(r=null,i=g),null!==(r=null!==r?r:"")?(g=i,58===t.charCodeAt(i)?(s=":",i++):(s=null,a('":"')),null!==s&&null!==(o=de())?s=[s,o]:(s=null,i=g),null!==(s=null!==s?s:"")?(g=i,58===t.charCodeAt(i)?(o=":",i++):(o=null,a('":"')),null!==o&&null!==(l=de())?o=[o,l]:(o=null,i=g),null!==(o=null!==o?o:"")?(g=i,58===t.charCodeAt(i)?(l=":",i++):(l=null,a('":"')),null!==l&&null!==(u=de())?l=[l,u]:(l=null,i=g),null!==(l=null!==l?l:"")?("::"===t.substr(i,2)?(u="::",i+=2):(u=null,a('"::"')),null!==u&&null!==(c=de())?e=[e,n,r,s,o,l,u,c]:(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v),null===e&&(v=i,null!==(e=de())?(g=i,58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null!==n&&null!==(r=de())?n=[n,r]:(n=null,i=g),null!==(n=null!==n?n:"")?(g=i,58===t.charCodeAt(i)?(r=":",i++):(r=null,a('":"')),null!==r&&null!==(s=de())?r=[r,s]:(r=null,i=g),null!==(r=null!==r?r:"")?(g=i,58===t.charCodeAt(i)?(s=":",i++):(s=null,a('":"')),null!==s&&null!==(o=de())?s=[s,o]:(s=null,i=g),null!==(s=null!==s?s:"")?(g=i,58===t.charCodeAt(i)?(o=":",i++):(o=null,a('":"')),null!==o&&null!==(l=de())?o=[o,l]:(o=null,i=g),null!==(o=null!==o?o:"")?(g=i,58===t.charCodeAt(i)?(l=":",i++):(l=null,a('":"')),null!==l&&null!==(u=de())?l=[l,u]:(l=null,i=g),null!==(l=null!==l?l:"")?(g=i,58===t.charCodeAt(i)?(u=":",i++):(u=null,a('":"')),null!==u&&null!==(c=de())?u=[u,c]:(u=null,i=g),null!==(u=null!==u?u:"")?("::"===t.substr(i,2)?(c="::",i+=2):(c=null,a('"::"')),null!==c?e=[e,n,r,s,o,l,u,c]:(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v)):(e=null,i=v))))))))))))))),null!==e&&(e=function(e){return Hn.host_type="IPv6",t.substring(i,e)}(m)),null===e&&(i=m),e}function de(){var e,t,n,r,s;return s=i,null!==(e=d())&&null!==(t=null!==(t=d())?t:"")&&null!==(n=null!==(n=d())?n:"")&&null!==(r=null!==(r=d())?r:"")?e=[e,t,n,r]:(e=null,i=s),e}function fe(){var e,n,r,s;return s=i,null!==(e=de())?(58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null!==n&&null!==(r=de())?e=[e,n,r]:(e=null,i=s)):(e=null,i=s),null===e&&(e=_e()),e}function _e(){var e,n,r,s,o,l,u,c,h;return c=i,h=i,null!==(e=pe())?(46===t.charCodeAt(i)?(n=".",i++):(n=null,a('"."')),null!==n&&null!==(r=pe())?(46===t.charCodeAt(i)?(s=".",i++):(s=null,a('"."')),null!==s&&null!==(o=pe())?(46===t.charCodeAt(i)?(l=".",i++):(l=null,a('"."')),null!==l&&null!==(u=pe())?e=[e,n,r,s,o,l,u]:(e=null,i=h)):(e=null,i=h)):(e=null,i=h)):(e=null,i=h),null!==e&&(e=function(e){return Hn.host_type="IPv4",t.substring(i,e)}(c)),null===e&&(i=c),e}function pe(){var e,n,r,s;return s=i,"25"===t.substr(i,2)?(e="25",i+=2):(e=null,a('"25"')),null!==e?(/^[0-5]/.test(t.charAt(i))?(n=t.charAt(i),i++):(n=null,a("[0-5]")),null!==n?e=[e,n]:(e=null,i=s)):(e=null,i=s),null===e&&(s=i,50===t.charCodeAt(i)?(e="2",i++):(e=null,a('"2"')),null!==e?(/^[0-4]/.test(t.charAt(i))?(n=t.charAt(i),i++):(n=null,a("[0-4]")),null!==n&&null!==(r=c())?e=[e,n,r]:(e=null,i=s)):(e=null,i=s),null===e&&(s=i,49===t.charCodeAt(i)?(e="1",i++):(e=null,a('"1"')),null!==e&&null!==(n=c())&&null!==(r=c())?e=[e,n,r]:(e=null,i=s),null===e&&(s=i,/^[1-9]/.test(t.charAt(i))?(e=t.charAt(i),i++):(e=null,a("[1-9]")),null!==e&&null!==(n=c())?e=[e,n]:(e=null,i=s),null===e&&(e=c())))),e}function me(){var e,t,n,r,s,o,l,a;return o=i,l=i,null!==(e=null!==(e=c())?e:"")&&null!==(t=null!==(t=c())?t:"")&&null!==(n=null!==(n=c())?n:"")&&null!==(r=null!==(r=c())?r:"")&&null!==(s=null!==(s=c())?s:"")?e=[e,t,n,r,s]:(e=null,i=l),null!==e&&(a=e,a=parseInt(a.join("")),Hn.port=a,e=a),null===e&&(i=o),e}function ve(){var e,n,r,s;for(e=[],s=i,59===t.charCodeAt(i)?(n=";",i++):(n=null,a('";"')),null!==n&&null!==(r=ge())?n=[n,r]:(n=null,i=s);null!==n;)e.push(n),s=i,59===t.charCodeAt(i)?(n=";",i++):(n=null,a('";"')),null!==n&&null!==(r=ge())?n=[n,r]:(n=null,i=s);return e}function ge(){var e;return null===(e=xe())&&null===(e=ye())&&null===(e=Te())&&null===(e=be())&&null===(e=Se())&&null===(e=Ee())&&(e=Ce()),e}function xe(){var e,n,r,s,o;return r=i,s=i,"transport="===t.substr(i,10).toLowerCase()?(e=t.substr(i,10),i+=10):(e=null,a('"transport="')),null!==e?("udp"===t.substr(i,3).toLowerCase()?(n=t.substr(i,3),i+=3):(n=null,a('"udp"')),null===n&&("tcp"===t.substr(i,3).toLowerCase()?(n=t.substr(i,3),i+=3):(n=null,a('"tcp"')),null===n&&("sctp"===t.substr(i,4).toLowerCase()?(n=t.substr(i,4),i+=4):(n=null,a('"sctp"')),null===n&&("tls"===t.substr(i,3).toLowerCase()?(n=t.substr(i,3),i+=3):(n=null,a('"tls"')),null===n&&(n=O())))),null!==n?e=[e,n]:(e=null,i=s)):(e=null,i=s),null!==e&&(o=e[1],Hn.uri_params||(Hn.uri_params={}),e=void(Hn.uri_params.transport=o.toLowerCase())),null===e&&(i=r),e}function ye(){var e,n,r,s,o;return r=i,s=i,"user="===t.substr(i,5).toLowerCase()?(e=t.substr(i,5),i+=5):(e=null,a('"user="')),null!==e?("phone"===t.substr(i,5).toLowerCase()?(n=t.substr(i,5),i+=5):(n=null,a('"phone"')),null===n&&("ip"===t.substr(i,2).toLowerCase()?(n=t.substr(i,2),i+=2):(n=null,a('"ip"')),null===n&&(n=O())),null!==n?e=[e,n]:(e=null,i=s)):(e=null,i=s),null!==e&&(o=e[1],Hn.uri_params||(Hn.uri_params={}),e=void(Hn.uri_params.user=o.toLowerCase())),null===e&&(i=r),e}function Te(){var e,n,r,s,o;return r=i,s=i,"method="===t.substr(i,7).toLowerCase()?(e=t.substr(i,7),i+=7):(e=null,a('"method="')),null!==e&&null!==(n=ut())?e=[e,n]:(e=null,i=s),null!==e&&(o=e[1],Hn.uri_params||(Hn.uri_params={}),e=void(Hn.uri_params.method=o)),null===e&&(i=r),e}function be(){var e,n,r,s,o;return r=i,s=i,"ttl="===t.substr(i,4).toLowerCase()?(e=t.substr(i,4),i+=4):(e=null,a('"ttl="')),null!==e&&null!==(n=Sn())?e=[e,n]:(e=null,i=s),null!==e&&(o=e[1],Hn.params||(Hn.params={}),e=void(Hn.params.ttl=o)),null===e&&(i=r),e}function Se(){var e,n,r,s,o;return r=i,s=i,"maddr="===t.substr(i,6).toLowerCase()?(e=t.substr(i,6),i+=6):(e=null,a('"maddr="')),null!==e&&null!==(n=oe())?e=[e,n]:(e=null,i=s),null!==e&&(o=e[1],Hn.uri_params||(Hn.uri_params={}),e=void(Hn.uri_params.maddr=o)),null===e&&(i=r),e}function Ee(){var e,n,r,s,o,l;return s=i,o=i,"lr"===t.substr(i,2).toLowerCase()?(e=t.substr(i,2),i+=2):(e=null,a('"lr"')),null!==e?(l=i,61===t.charCodeAt(i)?(n="=",i++):(n=null,a('"="')),null!==n&&null!==(r=O())?n=[n,r]:(n=null,i=l),null!==(n=null!==n?n:"")?e=[e,n]:(e=null,i=o)):(e=null,i=o),null!==e&&(Hn.uri_params||(Hn.uri_params={}),e=void(Hn.uri_params.lr=void 0)),null===e&&(i=s),e}function Ce(){var e,n,r,s,o,l,u,c;return s=i,o=i,null!==(e=Ae())?(l=i,61===t.charCodeAt(i)?(n="=",i++):(n=null,a('"="')),null!==n&&null!==(r=we())?n=[n,r]:(n=null,i=l),null!==(n=null!==n?n:"")?e=[e,n]:(e=null,i=o)):(e=null,i=o),null!==e&&(u=e[0],c=e[1],Hn.uri_params||(Hn.uri_params={}),c=void 0===c?void 0:c[1],e=void(Hn.uri_params[u.toLowerCase()]=c)),null===e&&(i=s),e}function Ae(){var e,t,n;if(n=i,null!==(t=Re()))for(e=[];null!==t;)e.push(t),t=Re();else e=null;return null!==e&&(e=e.join("")),null===e&&(i=n),e}function we(){var e,t,n;if(n=i,null!==(t=Re()))for(e=[];null!==t;)e.push(t),t=Re();else e=null;return null!==e&&(e=e.join("")),null===e&&(i=n),e}function Re(){var e;return null===(e=Ie())&&null===(e=y())&&(e=b()),e}function Ie(){var e;return 91===t.charCodeAt(i)?(e="[",i++):(e=null,a('"["')),null===e&&(93===t.charCodeAt(i)?(e="]",i++):(e=null,a('"]"')),null===e&&(47===t.charCodeAt(i)?(e="/",i++):(e=null,a('"/"')),null===e&&(58===t.charCodeAt(i)?(e=":",i++):(e=null,a('":"')),null===e&&(38===t.charCodeAt(i)?(e="&",i++):(e=null,a('"&"')),null===e&&(43===t.charCodeAt(i)?(e="+",i++):(e=null,a('"+"')),null===e&&(36===t.charCodeAt(i)?(e="$",i++):(e=null,a('"$"')))))))),e}function Oe(){var e,n,r,s,o,l,u;if(l=i,63===t.charCodeAt(i)?(e="?",i++):(e=null,a('"?"')),null!==e)if(null!==(n=Ne())){for(r=[],u=i,38===t.charCodeAt(i)?(s="&",i++):(s=null,a('"&"')),null!==s&&null!==(o=Ne())?s=[s,o]:(s=null,i=u);null!==s;)r.push(s),u=i,38===t.charCodeAt(i)?(s="&",i++):(s=null,a('"&"')),null!==s&&null!==(o=Ne())?s=[s,o]:(s=null,i=u);null!==r?e=[e,n,r]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;return e}function Ne(){var e,n,r,s,o,l,u;return s=i,o=i,null!==(e=ke())?(61===t.charCodeAt(i)?(n="=",i++):(n=null,a('"="')),null!==n&&null!==(r=De())?e=[e,n,r]:(e=null,i=o)):(e=null,i=o),null!==e&&(l=e[0],u=e[2],l=l.join("").toLowerCase(),u=u.join(""),Hn.uri_headers||(Hn.uri_headers={}),e=void(Hn.uri_headers[l]?Hn.uri_headers[l].push(u):Hn.uri_headers[l]=[u])),null===e&&(i=s),e}function ke(){var e,t;if(null===(t=Ue())&&null===(t=y())&&(t=b()),null!==t)for(e=[];null!==t;)e.push(t),null===(t=Ue())&&null===(t=y())&&(t=b());else e=null;return e}function De(){var e,t;for(e=[],null===(t=Ue())&&null===(t=y())&&(t=b());null!==t;)e.push(t),null===(t=Ue())&&null===(t=y())&&(t=b());return e}function Ue(){var e;return 91===t.charCodeAt(i)?(e="[",i++):(e=null,a('"["')),null===e&&(93===t.charCodeAt(i)?(e="]",i++):(e=null,a('"]"')),null===e&&(47===t.charCodeAt(i)?(e="/",i++):(e=null,a('"/"')),null===e&&(63===t.charCodeAt(i)?(e="?",i++):(e=null,a('"?"')),null===e&&(58===t.charCodeAt(i)?(e=":",i++):(e=null,a('":"')),null===e&&(43===t.charCodeAt(i)?(e="+",i++):(e=null,a('"+"')),null===e&&(36===t.charCodeAt(i)?(e="$",i++):(e=null,a('"$"')))))))),e}function Pe(){var e,t,n,r,s,o;return o=i,null!==(e=ut())&&null!==(t=m())&&null!==(n=qe())&&null!==(r=m())&&null!==(s=Ze())?e=[e,t,n,r,s]:(e=null,i=o),e}function qe(){var e;return null===(e=X())&&(e=Me()),e}function Me(){var e,n,r,s;return s=i,null!==(e=Je())?(58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null!==n?(null===(r=Le())&&(r=je()),null!==r?e=[e,n,r]:(e=null,i=s)):(e=null,i=s)):(e=null,i=s),e}function Le(){var e,n,r,s,o;return s=i,null===(e=He())&&(e=Fe()),null!==e?(o=i,63===t.charCodeAt(i)?(n="?",i++):(n=null,a('"?"')),null!==n&&null!==(r=Qe())?n=[n,r]:(n=null,i=o),null!==(n=null!==n?n:"")?e=[e,n]:(e=null,i=s)):(e=null,i=s),e}function He(){var e,n,r,s;return s=i,"//"===t.substr(i,2)?(e="//",i+=2):(e=null,a('"//"')),null!==e&&null!==(n=Ye())&&null!==(r=null!==(r=Fe())?r:"")?e=[e,n,r]:(e=null,i=s),e}function Fe(){var e,n,r;return r=i,47===t.charCodeAt(i)?(e="/",i++):(e=null,a('"/"')),null!==e&&null!==(n=Be())?e=[e,n]:(e=null,i=r),e}function je(){var e,t,n,r;if(r=i,null!==(e=We())){for(t=[],n=Ge();null!==n;)t.push(n),n=Ge();null!==t?e=[e,t]:(e=null,i=r)}else e=null,i=r;return e}function Ge(){var e;return null===(e=x())&&null===(e=y())&&(e=b()),e}function We(){var e;return null===(e=y())&&null===(e=b())&&(59===t.charCodeAt(i)?(e=";",i++):(e=null,a('";"')),null===e&&(63===t.charCodeAt(i)?(e="?",i++):(e=null,a('"?"')),null===e&&(58===t.charCodeAt(i)?(e=":",i++):(e=null,a('":"')),null===e&&(64===t.charCodeAt(i)?(e="@",i++):(e=null,a('"@"')),null===e&&(38===t.charCodeAt(i)?(e="&",i++):(e=null,a('"&"')),null===e&&(61===t.charCodeAt(i)?(e="=",i++):(e=null,a('"="')),null===e&&(43===t.charCodeAt(i)?(e="+",i++):(e=null,a('"+"')),null===e&&(36===t.charCodeAt(i)?(e="$",i++):(e=null,a('"$"')),null===e&&(44===t.charCodeAt(i)?(e=",",i++):(e=null,a('","'))))))))))),e}function Be(){var e,n,r,s,o,l;if(o=i,null!==(e=Ve())){for(n=[],l=i,47===t.charCodeAt(i)?(r="/",i++):(r=null,a('"/"')),null!==r&&null!==(s=Ve())?r=[r,s]:(r=null,i=l);null!==r;)n.push(r),l=i,47===t.charCodeAt(i)?(r="/",i++):(r=null,a('"/"')),null!==r&&null!==(s=Ve())?r=[r,s]:(r=null,i=l);null!==n?e=[e,n]:(e=null,i=o)}else e=null,i=o;return e}function Ve(){var e,n,r,s,o,l;for(o=i,e=[],n=ze();null!==n;)e.push(n),n=ze();if(null!==e){for(n=[],l=i,59===t.charCodeAt(i)?(r=";",i++):(r=null,a('";"')),null!==r&&null!==(s=Ke())?r=[r,s]:(r=null,i=l);null!==r;)n.push(r),l=i,59===t.charCodeAt(i)?(r=";",i++):(r=null,a('";"')),null!==r&&null!==(s=Ke())?r=[r,s]:(r=null,i=l);null!==n?e=[e,n]:(e=null,i=o)}else e=null,i=o;return e}function Ke(){var e,t;for(e=[],t=ze();null!==t;)e.push(t),t=ze();return e}function ze(){var e;return null===(e=y())&&null===(e=b())&&(58===t.charCodeAt(i)?(e=":",i++):(e=null,a('":"')),null===e&&(64===t.charCodeAt(i)?(e="@",i++):(e=null,a('"@"')),null===e&&(38===t.charCodeAt(i)?(e="&",i++):(e=null,a('"&"')),null===e&&(61===t.charCodeAt(i)?(e="=",i++):(e=null,a('"="')),null===e&&(43===t.charCodeAt(i)?(e="+",i++):(e=null,a('"+"')),null===e&&(36===t.charCodeAt(i)?(e="$",i++):(e=null,a('"$"')),null===e&&(44===t.charCodeAt(i)?(e=",",i++):(e=null,a('","'))))))))),e}function Je(){var e,n,r,s,o;if(s=i,o=i,null!==(e=h())){for(n=[],null===(r=h())&&null===(r=c())&&(43===t.charCodeAt(i)?(r="+",i++):(r=null,a('"+"')),null===r&&(45===t.charCodeAt(i)?(r="-",i++):(r=null,a('"-"')),null===r&&(46===t.charCodeAt(i)?(r=".",i++):(r=null,a('"."')))));null!==r;)n.push(r),null===(r=h())&&null===(r=c())&&(43===t.charCodeAt(i)?(r="+",i++):(r=null,a('"+"')),null===r&&(45===t.charCodeAt(i)?(r="-",i++):(r=null,a('"-"')),null===r&&(46===t.charCodeAt(i)?(r=".",i++):(r=null,a('"."')))));null!==n?e=[e,n]:(e=null,i=o)}else e=null,i=o;return null!==e&&(e=function(e){Hn.scheme=t.substring(i,e)}(s)),null===e&&(i=s),e}function Ye(){var e;return null===(e=$e())&&(e=Xe()),e}function $e(){var e,n,r,s;return r=i,s=i,null!==(e=te())?(64===t.charCodeAt(i)?(n="@",i++):(n=null,a('"@"')),null!==n?e=[e,n]:(e=null,i=s)):(e=null,i=s),null!==(e=null!==e?e:"")&&null!==(n=ie())?e=[e,n]:(e=null,i=r),e=null!==e?e:""}function Xe(){var e,n;if(null===(n=y())&&null===(n=b())&&(36===t.charCodeAt(i)?(n="$",i++):(n=null,a('"$"')),null===n&&(44===t.charCodeAt(i)?(n=",",i++):(n=null,a('","')),null===n&&(59===t.charCodeAt(i)?(n=";",i++):(n=null,a('";"')),null===n&&(58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null===n&&(64===t.charCodeAt(i)?(n="@",i++):(n=null,a('"@"')),null===n&&(38===t.charCodeAt(i)?(n="&",i++):(n=null,a('"&"')),null===n&&(61===t.charCodeAt(i)?(n="=",i++):(n=null,a('"="')),null===n&&(43===t.charCodeAt(i)?(n="+",i++):(n=null,a('"+"')))))))))),null!==n)for(e=[];null!==n;)e.push(n),null===(n=y())&&null===(n=b())&&(36===t.charCodeAt(i)?(n="$",i++):(n=null,a('"$"')),null===n&&(44===t.charCodeAt(i)?(n=",",i++):(n=null,a('","')),null===n&&(59===t.charCodeAt(i)?(n=";",i++):(n=null,a('";"')),null===n&&(58===t.charCodeAt(i)?(n=":",i++):(n=null,a('":"')),null===n&&(64===t.charCodeAt(i)?(n="@",i++):(n=null,a('"@"')),null===n&&(38===t.charCodeAt(i)?(n="&",i++):(n=null,a('"&"')),null===n&&(61===t.charCodeAt(i)?(n="=",i++):(n=null,a('"="')),null===n&&(43===t.charCodeAt(i)?(n="+",i++):(n=null,a('"+"'))))))))));else e=null;return e}function Qe(){var e,t;for(e=[],t=Ge();null!==t;)e.push(t),t=Ge();return e}function Ze(){var e,n,r,s,o,l,u,h;if(u=i,h=i,"sip"===t.substr(i,3).toLowerCase()?(e=t.substr(i,3),i+=3):(e=null,a('"SIP"')),null!==e)if(47===t.charCodeAt(i)?(n="/",i++):(n=null,a('"/"')),null!==n){if(null!==(s=c()))for(r=[];null!==s;)r.push(s),s=c();else r=null;if(null!==r)if(46===t.charCodeAt(i)?(s=".",i++):(s=null,a('"."')),null!==s){if(null!==(l=c()))for(o=[];null!==l;)o.push(l),l=c();else o=null;null!==o?e=[e,n,r,s,o]:(e=null,i=h)}else e=null,i=h;else e=null,i=h}else e=null,i=h;else e=null,i=h;return null!==e&&(e=function(e){Hn.sip_version=t.substring(i,e)}(u)),null===e&&(i=u),e}function et(){var e;return"INVITE"===t.substr(i,6)?(e="INVITE",i+=6):(e=null,a('"INVITE"')),e}function tt(){var e;return"ACK"===t.substr(i,3)?(e="ACK",i+=3):(e=null,a('"ACK"')),e}function nt(){var e;return"OPTIONS"===t.substr(i,7)?(e="OPTIONS",i+=7):(e=null,a('"OPTIONS"')),e}function rt(){var e;return"BYE"===t.substr(i,3)?(e="BYE",i+=3):(e=null,a('"BYE"')),e}function st(){var e;return"CANCEL"===t.substr(i,6)?(e="CANCEL",i+=6):(e=null,a('"CANCEL"')),e}function it(){var e;return"REGISTER"===t.substr(i,8)?(e="REGISTER",i+=8):(e=null,a('"REGISTER"')),e}function ot(){var e;return"SUBSCRIBE"===t.substr(i,9)?(e="SUBSCRIBE",i+=9):(e=null,a('"SUBSCRIBE"')),e}function lt(){var e;return"NOTIFY"===t.substr(i,6)?(e="NOTIFY",i+=6):(e=null,a('"NOTIFY"')),e}function at(){var e;return"REFER"===t.substr(i,5)?(e="REFER",i+=5):(e=null,a('"REFER"')),e}function ut(){var e,n;return n=i,null===(e=et())&&null===(e=tt())&&null===(e=nt())&&null===(e=rt())&&null===(e=st())&&null===(e=it())&&null===(e=ot())&&null===(e=lt())&&null===(e=at())&&(e=O()),null!==e&&(e=function(e){return Hn.method=t.substring(i,e),Hn.method}(n)),null===e&&(i=n),e}function ct(){var e,t,n,r,s,o;return o=i,null!==(e=Ze())&&null!==(t=m())&&null!==(n=ht())&&null!==(r=m())&&null!==(s=ft())?e=[e,t,n,r,s]:(e=null,i=o),e}function ht(){var e,t,n;return t=i,null!==(e=dt())&&(n=e,e=void(Hn.status_code=parseInt(n.join("")))),null===e&&(i=t),e}function dt(){var e,t,n,r;return r=i,null!==(e=c())&&null!==(t=c())&&null!==(n=c())?e=[e,t,n]:(e=null,i=r),e}function ft(){var e,n,r;for(r=i,e=[],null===(n=x())&&null===(n=y())&&null===(n=b())&&null===(n=R())&&null===(n=I())&&null===(n=m())&&(n=v());null!==n;)e.push(n),null===(n=x())&&null===(n=y())&&null===(n=b())&&null===(n=R())&&null===(n=I())&&null===(n=m())&&(n=v());return null!==e&&(e=function(e){Hn.reason_phrase=t.substring(i,e)}(r)),null===e&&(i=r),e}function _t(){var e,t,n,r,s,o,l;if(s=i,o=i,null===(e=$())&&(e=pt()),null!==e){for(t=[],l=i,null!==(n=j())&&null!==(r=vt())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=j())&&null!==(r=vt())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;return null!==e&&(e=function(e){var t;Hn.multi_header||(Hn.multi_header=[]);try{t=new Ln(Hn.uri,Hn.display_name,Hn.params),delete Hn.uri,delete Hn.display_name,delete Hn.params}catch(e){t=null}Hn.multi_header.push({possition:i,offset:e,parsed:t})}(s)),null===e&&(i=s),e}function pt(){var e,t,n,r,s;return s=i,null!==(e=null!==(e=mt())?e:"")&&null!==(t=H())&&null!==(n=X())&&null!==(r=L())?e=[e,t,n,r]:(e=null,i=s),e}function mt(){var e,t,n,r,s,o,l,a;if(s=i,o=i,null!==(e=O())){for(t=[],l=i,null!==(n=S())&&null!==(r=O())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=S())&&null!==(r=O())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;return null===e&&(e=z()),null!==e&&(a=e,e=void(Hn.display_name="string"==typeof a?a:a[1].reduce((function(e,t){return e+t[0]+t[1]}),a[0]))),null===e&&(i=s),e}function vt(){var e;return null===(e=gt())&&null===(e=xt())&&(e=bt()),e}function gt(){var e,n,r,s,o,l;return s=i,o=i,"q"===t.substr(i,1).toLowerCase()?(e=t.substr(i,1),i++):(e=null,a('"q"')),null!==e&&null!==(n=P())&&null!==(r=Tt())?e=[e,n,r]:(e=null,i=o),null!==e&&(l=e[2],Hn.params||(Hn.params={}),e=void(Hn.params.q=l)),null===e&&(i=s),e}function xt(){var e,n,r,s,o,l;return s=i,o=i,"expires"===t.substr(i,7).toLowerCase()?(e=t.substr(i,7),i+=7):(e=null,a('"expires"')),null!==e&&null!==(n=P())&&null!==(r=yt())?e=[e,n,r]:(e=null,i=o),null!==e&&(l=e[2],Hn.params||(Hn.params={}),e=void(Hn.params.expires=l)),null===e&&(i=s),e}function yt(){var e,t,n;if(n=i,null!==(t=c()))for(e=[];null!==t;)e.push(t),t=c();else e=null;return null!==e&&(e=parseInt(e.join(""))),null===e&&(i=n),e}function Tt(){var e,n,r,s,o,l,u,h;return l=i,u=i,48===t.charCodeAt(i)?(e="0",i++):(e=null,a('"0"')),null!==e?(h=i,46===t.charCodeAt(i)?(n=".",i++):(n=null,a('"."')),null!==n&&null!==(r=null!==(r=c())?r:"")&&null!==(s=null!==(s=c())?s:"")&&null!==(o=null!==(o=c())?o:"")?n=[n,r,s,o]:(n=null,i=h),null!==(n=null!==n?n:"")?e=[e,n]:(e=null,i=u)):(e=null,i=u),null!==e&&(e=function(e){return parseFloat(t.substring(i,e))}(l)),null===e&&(i=l),e}function bt(){var e,t,n,r,s,o,l,a;return r=i,s=i,null!==(e=O())?(o=i,null!==(t=P())&&null!==(n=St())?t=[t,n]:(t=null,i=o),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=s)):(e=null,i=s),null!==e&&(l=e[0],a=e[1],Hn.params||(Hn.params={}),a=void 0===a?void 0:a[1],e=void(Hn.params[l.toLowerCase()]=a)),null===e&&(i=r),e}function St(){var e;return null===(e=O())&&null===(e=oe())&&(e=K()),e}function Et(){var e;return"render"===t.substr(i,6).toLowerCase()?(e=t.substr(i,6),i+=6):(e=null,a('"render"')),null===e&&("session"===t.substr(i,7).toLowerCase()?(e=t.substr(i,7),i+=7):(e=null,a('"session"')),null===e&&("icon"===t.substr(i,4).toLowerCase()?(e=t.substr(i,4),i+=4):(e=null,a('"icon"')),null===e&&("alert"===t.substr(i,5).toLowerCase()?(e=t.substr(i,5),i+=5):(e=null,a('"alert"')),null===e&&(e=O())))),e}function Ct(){var e;return null===(e=At())&&(e=bt()),e}function At(){var e,n,r,s;return s=i,"handling"===t.substr(i,8).toLowerCase()?(e=t.substr(i,8),i+=8):(e=null,a('"handling"')),null!==e&&null!==(n=P())?("optional"===t.substr(i,8).toLowerCase()?(r=t.substr(i,8),i+=8):(r=null,a('"optional"')),null===r&&("required"===t.substr(i,8).toLowerCase()?(r=t.substr(i,8),i+=8):(r=null,a('"required"')),null===r&&(r=O())),null!==r?e=[e,n,r]:(e=null,i=s)):(e=null,i=s),e}function wt(){var e,t,n,r,s,o,l,a;if(l=i,null!==(e=Rt()))if(null!==(t=U()))if(null!==(n=Dt())){for(r=[],a=i,null!==(s=j())&&null!==(o=Ut())?s=[s,o]:(s=null,i=a);null!==s;)r.push(s),a=i,null!==(s=j())&&null!==(o=Ut())?s=[s,o]:(s=null,i=a);null!==r?e=[e,t,n,r]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;else e=null,i=l;return e}function Rt(){var e;return null===(e=It())&&(e=Ot()),e}function It(){var e;return"text"===t.substr(i,4).toLowerCase()?(e=t.substr(i,4),i+=4):(e=null,a('"text"')),null===e&&("image"===t.substr(i,5).toLowerCase()?(e=t.substr(i,5),i+=5):(e=null,a('"image"')),null===e&&("audio"===t.substr(i,5).toLowerCase()?(e=t.substr(i,5),i+=5):(e=null,a('"audio"')),null===e&&("video"===t.substr(i,5).toLowerCase()?(e=t.substr(i,5),i+=5):(e=null,a('"video"')),null===e&&("application"===t.substr(i,11).toLowerCase()?(e=t.substr(i,11),i+=11):(e=null,a('"application"')),null===e&&(e=Nt()))))),e}function Ot(){var e;return"message"===t.substr(i,7).toLowerCase()?(e=t.substr(i,7),i+=7):(e=null,a('"message"')),null===e&&("multipart"===t.substr(i,9).toLowerCase()?(e=t.substr(i,9),i+=9):(e=null,a('"multipart"')),null===e&&(e=Nt())),e}function Nt(){var e;return null===(e=O())&&(e=kt()),e}function kt(){var e,n,r;return r=i,"x-"===t.substr(i,2).toLowerCase()?(e=t.substr(i,2),i+=2):(e=null,a('"x-"')),null!==e&&null!==(n=O())?e=[e,n]:(e=null,i=r),e}function Dt(){var e;return null===(e=Nt())&&(e=O()),e}function Ut(){var e,t,n,r;return r=i,null!==(e=O())&&null!==(t=P())&&null!==(n=Pt())?e=[e,t,n]:(e=null,i=r),e}function Pt(){var e;return null===(e=O())&&(e=K()),e}function qt(){var e,t,n,r;if(n=i,null!==(t=c()))for(e=[];null!==t;)e.push(t),t=c();else e=null;return null!==e&&(r=e,e=void(Hn.value=parseInt(r.join("")))),null===e&&(i=n),e}function Mt(){var e,n,r,s,o,l;if(o=i,null!==(e=N())){for(n=[],l=i,46===t.charCodeAt(i)?(r=".",i++):(r=null,a('"."')),null!==r&&null!==(s=N())?r=[r,s]:(r=null,i=l);null!==r;)n.push(r),l=i,46===t.charCodeAt(i)?(r=".",i++):(r=null,a('"."')),null!==r&&null!==(s=N())?r=[r,s]:(r=null,i=l);null!==n?e=[e,n]:(e=null,i=o)}else e=null,i=o;return e}function Lt(){var e;return null===(e=Ht())&&(e=bt()),e}function Ht(){var e,n,r,s,o,l;return s=i,o=i,"tag"===t.substr(i,3).toLowerCase()?(e=t.substr(i,3),i+=3):(e=null,a('"tag"')),null!==e&&null!==(n=P())&&null!==(r=O())?e=[e,n,r]:(e=null,i=o),null!==e&&(l=e[2],e=void(Hn.tag=l)),null===e&&(i=s),e}function Ft(){var e,n,r,s,o,l,u,c;if(u=i,"digest"===t.substr(i,6).toLowerCase()?(e=t.substr(i,6),i+=6):(e=null,a('"Digest"')),null!==e)if(null!==(n=S()))if(null!==(r=Wt())){for(s=[],c=i,null!==(o=F())&&null!==(l=Wt())?o=[o,l]:(o=null,i=c);null!==o;)s.push(o),c=i,null!==(o=F())&&null!==(l=Wt())?o=[o,l]:(o=null,i=c);null!==s?e=[e,n,r,s]:(e=null,i=u)}else e=null,i=u;else e=null,i=u;else e=null,i=u;return null===e&&(e=jt()),e}function jt(){var e,t,n,r,s,o,l,a;if(l=i,null!==(e=O()))if(null!==(t=S()))if(null!==(n=Gt())){for(r=[],a=i,null!==(s=F())&&null!==(o=Gt())?s=[s,o]:(s=null,i=a);null!==s;)r.push(s),a=i,null!==(s=F())&&null!==(o=Gt())?s=[s,o]:(s=null,i=a);null!==r?e=[e,t,n,r]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;else e=null,i=l;return e}function Gt(){var e,t,n,r;return r=i,null!==(e=O())&&null!==(t=P())?(null===(n=O())&&(n=K()),null!==n?e=[e,t,n]:(e=null,i=r)):(e=null,i=r),e}function Wt(){var e;return null===(e=Bt())&&null===(e=Kt())&&null===(e=Jt())&&null===(e=$t())&&null===(e=Xt())&&null===(e=Qt())&&null===(e=Zt())&&(e=Gt()),e}function Bt(){var e,n,r,s;return s=i,"realm"===t.substr(i,5).toLowerCase()?(e=t.substr(i,5),i+=5):(e=null,a('"realm"')),null!==e&&null!==(n=P())&&null!==(r=Vt())?e=[e,n,r]:(e=null,i=s),e}function Vt(){var e,t,n;return t=i,null!==(e=z())&&(n=e,e=void(Hn.realm=n)),null===e&&(i=t),e}function Kt(){var e,n,r,s,o,l,u,c,h;if(c=i,"domain"===t.substr(i,6).toLowerCase()?(e=t.substr(i,6),i+=6):(e=null,a('"domain"')),null!==e)if(null!==(n=P()))if(null!==(r=W()))if(null!==(s=zt())){if(o=[],h=i,null!==(u=m()))for(l=[];null!==u;)l.push(u),u=m();else l=null;for(null!==l&&null!==(u=zt())?l=[l,u]:(l=null,i=h);null!==l;){if(o.push(l),h=i,null!==(u=m()))for(l=[];null!==u;)l.push(u),u=m();else l=null;null!==l&&null!==(u=zt())?l=[l,u]:(l=null,i=h)}null!==o&&null!==(l=B())?e=[e,n,r,s,o,l]:(e=null,i=c)}else e=null,i=c;else e=null,i=c;else e=null,i=c;else e=null,i=c;return e}function zt(){var e;return null===(e=Me())&&(e=Fe()),e}function Jt(){var e,n,r,s;return s=i,"nonce"===t.substr(i,5).toLowerCase()?(e=t.substr(i,5),i+=5):(e=null,a('"nonce"')),null!==e&&null!==(n=P())&&null!==(r=Yt())?e=[e,n,r]:(e=null,i=s),e}function Yt(){var e,t,n;return t=i,null!==(e=z())&&(n=e,e=void(Hn.nonce=n)),null===e&&(i=t),e}function $t(){var e,n,r,s,o,l;return s=i,o=i,"opaque"===t.substr(i,6).toLowerCase()?(e=t.substr(i,6),i+=6):(e=null,a('"opaque"')),null!==e&&null!==(n=P())&&null!==(r=z())?e=[e,n,r]:(e=null,i=o),null!==e&&(l=e[2],e=void(Hn.opaque=l)),null===e&&(i=s),e}function Xt(){var e,n,r,s,o;return s=i,"stale"===t.substr(i,5).toLowerCase()?(e=t.substr(i,5),i+=5):(e=null,a('"stale"')),null!==e&&null!==(n=P())?(o=i,"true"===t.substr(i,4).toLowerCase()?(r=t.substr(i,4),i+=4):(r=null,a('"true"')),null!==r&&(r=void(Hn.stale=!0)),null===r&&(i=o),null===r&&(o=i,"false"===t.substr(i,5).toLowerCase()?(r=t.substr(i,5),i+=5):(r=null,a('"false"')),null!==r&&(r=void(Hn.stale=!1)),null===r&&(i=o)),null!==r?e=[e,n,r]:(e=null,i=s)):(e=null,i=s),e}function Qt(){var e,n,r,s,o,l;return s=i,o=i,"algorithm"===t.substr(i,9).toLowerCase()?(e=t.substr(i,9),i+=9):(e=null,a('"algorithm"')),null!==e&&null!==(n=P())?("md5"===t.substr(i,3).toLowerCase()?(r=t.substr(i,3),i+=3):(r=null,a('"MD5"')),null===r&&("md5-sess"===t.substr(i,8).toLowerCase()?(r=t.substr(i,8),i+=8):(r=null,a('"MD5-sess"')),null===r&&(r=O())),null!==r?e=[e,n,r]:(e=null,i=o)):(e=null,i=o),null!==e&&(l=e[2],e=void(Hn.algorithm=l.toUpperCase())),null===e&&(i=s),e}function Zt(){var e,n,r,s,o,l,u,c,h,d;if(c=i,"qop"===t.substr(i,3).toLowerCase()?(e=t.substr(i,3),i+=3):(e=null,a('"qop"')),null!==e)if(null!==(n=P()))if(null!==(r=W())){if(h=i,null!==(s=en())){for(o=[],d=i,44===t.charCodeAt(i)?(l=",",i++):(l=null,a('","')),null!==l&&null!==(u=en())?l=[l,u]:(l=null,i=d);null!==l;)o.push(l),d=i,44===t.charCodeAt(i)?(l=",",i++):(l=null,a('","')),null!==l&&null!==(u=en())?l=[l,u]:(l=null,i=d);null!==o?s=[s,o]:(s=null,i=h)}else s=null,i=h;null!==s&&null!==(o=B())?e=[e,n,r,s,o]:(e=null,i=c)}else e=null,i=c;else e=null,i=c;else e=null,i=c;return e}function en(){var e,n,r;return n=i,"auth-int"===t.substr(i,8).toLowerCase()?(e=t.substr(i,8),i+=8):(e=null,a('"auth-int"')),null===e&&("auth"===t.substr(i,4).toLowerCase()?(e=t.substr(i,4),i+=4):(e=null,a('"auth"')),null===e&&(e=O())),null!==e&&(r=e,Hn.qop||(Hn.qop=[]),e=void Hn.qop.push(r.toLowerCase())),null===e&&(i=n),e}function tn(){var e,t,n,r,s,o,l;if(s=i,o=i,null!==(e=pt())){for(t=[],l=i,null!==(n=j())&&null!==(r=bt())?n=[n,r]:(n=null,i=l);null!==n;)t.push(n),l=i,null!==(n=j())&&null!==(r=bt())?n=[n,r]:(n=null,i=l);null!==t?e=[e,t]:(e=null,i=o)}else e=null,i=o;return null!==e&&(e=function(e){var t;Hn.multi_header||(Hn.multi_header=[]);try{t=new Ln(Hn.uri,Hn.display_name,Hn.params),delete Hn.uri,delete Hn.display_name,delete Hn.params}catch(e){t=null}Hn.multi_header.push({possition:i,offset:e,parsed:t})}(s)),null===e&&(i=s),e}function nn(){var e;return null===(e=rn())&&(e=bt()),e}function rn(){var e,n,r,s,o,l,u;if(o=i,l=i,"cause"===t.substr(i,5).toLowerCase()?(e=t.substr(i,5),i+=5):(e=null,a('"cause"')),null!==e)if(null!==(n=P())){if(null!==(s=c()))for(r=[];null!==s;)r.push(s),s=c();else r=null;null!==r?e=[e,n,r]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;return null!==e&&(u=e[2],e=void(Hn.cause=parseInt(u.join("")))),null===e&&(i=o),e}function sn(){var e,t,n,r,s,o;if(s=i,null!==(e=pt())){for(t=[],o=i,null!==(n=j())&&null!==(r=bt())?n=[n,r]:(n=null,i=o);null!==n;)t.push(n),o=i,null!==(n=j())&&null!==(r=bt())?n=[n,r]:(n=null,i=o);null!==t?e=[e,t]:(e=null,i=s)}else e=null,i=s;return e}function on(){var e,n;return n=i,"active"===t.substr(i,6).toLowerCase()?(e=t.substr(i,6),i+=6):(e=null,a('"active"')),null===e&&("pending"===t.substr(i,7).toLowerCase()?(e=t.substr(i,7),i+=7):(e=null,a('"pending"')),null===e&&("terminated"===t.substr(i,10).toLowerCase()?(e=t.substr(i,10),i+=10):(e=null,a('"terminated"')),null===e&&(e=O()))),null!==e&&(e=function(e){Hn.state=t.substring(i,e)}(n)),null===e&&(i=n),e}function ln(){var e,n,r,s,o,l,u,c;return s=i,o=i,"reason"===t.substr(i,6).toLowerCase()?(e=t.substr(i,6),i+=6):(e=null,a('"reason"')),null!==e&&null!==(n=P())&&null!==(r=an())?e=[e,n,r]:(e=null,i=o),null!==e&&(e=void(void 0!==(l=e[2])&&(Hn.reason=l))),null===e&&(i=s),null===e&&(s=i,o=i,"expires"===t.substr(i,7).toLowerCase()?(e=t.substr(i,7),i+=7):(e=null,a('"expires"')),null!==e&&null!==(n=P())&&null!==(r=yt())?e=[e,n,r]:(e=null,i=o),null!==e&&(e=void(void 0!==(c=e[2])&&(Hn.expires=c))),null===e&&(i=s),null===e&&(s=i,o=i,"retry_after"===t.substr(i,11).toLowerCase()?(e=t.substr(i,11),i+=11):(e=null,a('"retry_after"')),null!==e&&null!==(n=P())&&null!==(r=yt())?e=[e,n,r]:(e=null,i=o),null!==e&&(e=void(void 0!==(u=e[2])&&(Hn.retry_after=u))),null===e&&(i=s),null===e&&(e=bt()))),e}function an(){var e;return"deactivated"===t.substr(i,11).toLowerCase()?(e=t.substr(i,11),i+=11):(e=null,a('"deactivated"')),null===e&&("probation"===t.substr(i,9).toLowerCase()?(e=t.substr(i,9),i+=9):(e=null,a('"probation"')),null===e&&("rejected"===t.substr(i,8).toLowerCase()?(e=t.substr(i,8),i+=8):(e=null,a('"rejected"')),null===e&&("timeout"===t.substr(i,7).toLowerCase()?(e=t.substr(i,7),i+=7):(e=null,a('"timeout"')),null===e&&("giveup"===t.substr(i,6).toLowerCase()?(e=t.substr(i,6),i+=6):(e=null,a('"giveup"')),null===e&&("noresource"===t.substr(i,10).toLowerCase()?(e=t.substr(i,10),i+=10):(e=null,a('"noresource"')),null===e&&("invariant"===t.substr(i,9).toLowerCase()?(e=t.substr(i,9),i+=9):(e=null,a('"invariant"')),null===e&&(e=O()))))))),e}function un(){var e;return null===(e=Ht())&&(e=bt()),e}function cn(){var e,t,n,r,s,o,l,a;if(l=i,null!==(e=vn()))if(null!==(t=S()))if(null!==(n=yn())){for(r=[],a=i,null!==(s=j())&&null!==(o=hn())?s=[s,o]:(s=null,i=a);null!==s;)r.push(s),a=i,null!==(s=j())&&null!==(o=hn())?s=[s,o]:(s=null,i=a);null!==r?e=[e,t,n,r]:(e=null,i=l)}else e=null,i=l;else e=null,i=l;else e=null,i=l;return e}function hn(){var e;return null===(e=dn())&&null===(e=fn())&&null===(e=_n())&&null===(e=pn())&&null===(e=mn())&&(e=bt()),e}function dn(){var e,n,r,s,o,l;return s=i,o=i,"ttl"===t.substr(i,3).toLowerCase()?(e=t.substr(i,3),i+=3):(e=null,a('"ttl"')),null!==e&&null!==(n=P())&&null!==(r=Sn())?e=[e,n,r]:(e=null,i=o),null!==e&&(l=e[2],e=void(Hn.ttl=l)),null===e&&(i=s),e}function fn(){var e,n,r,s,o,l;return s=i,o=i,"maddr"===t.substr(i,5).toLowerCase()?(e=t.substr(i,5),i+=5):(e=null,a('"maddr"')),null!==e&&null!==(n=P())&&null!==(r=oe())?e=[e,n,r]:(e=null,i=o),null!==e&&(l=e[2],e=void(Hn.maddr=l)),null===e&&(i=s),e}function _n(){var e,n,r,s,o,l;return s=i,o=i,"received"===t.substr(i,8).toLowerCase()?(e=t.substr(i,8),i+=8):(e=null,a('"received"')),null!==e&&null!==(n=P())?(null===(r=_e())&&(r=he()),null!==r?e=[e,n,r]:(e=null,i=o)):(e=null,i=o),null!==e&&(l=e[2],e=void(Hn.received=l)),null===e&&(i=s),e}function pn(){var e,n,r,s,o,l;return s=i,o=i,"branch"===t.substr(i,6).toLowerCase()?(e=t.substr(i,6),i+=6):(e=null,a('"branch"')),null!==e&&null!==(n=P())&&null!==(r=O())?e=[e,n,r]:(e=null,i=o),null!==e&&(l=e[2],e=void(Hn.branch=l)),null===e&&(i=s),e}function mn(){var e,n,r,s,o,l,u;if(o=i,l=i,"rport"===t.substr(i,5).toLowerCase()?(e=t.substr(i,5),i+=5):(e=null,a('"rport"')),null!==e){if(u=i,null!==(n=P())){for(r=[],s=c();null!==s;)r.push(s),s=c();null!==r?n=[n,r]:(n=null,i=u)}else n=null,i=u;null!==(n=null!==n?n:"")?e=[e,n]:(e=null,i=l)}else e=null,i=l;return null!==e&&(e=void("undefined"!=typeof response_port&&(Hn.rport=response_port.join("")))),null===e&&(i=o),e}function vn(){var e,t,n,r,s,o;return o=i,null!==(e=gn())&&null!==(t=U())&&null!==(n=O())&&null!==(r=U())&&null!==(s=xn())?e=[e,t,n,r,s]:(e=null,i=o),e}function gn(){var e,n,r;return n=i,"sip"===t.substr(i,3).toLowerCase()?(e=t.substr(i,3),i+=3):(e=null,a('"SIP"')),null===e&&(e=O()),null!==e&&(r=e,e=void(Hn.protocol=r)),null===e&&(i=n),e}function xn(){var e,n,r;return n=i,"udp"===t.substr(i,3).toLowerCase()?(e=t.substr(i,3),i+=3):(e=null,a('"UDP"')),null===e&&("tcp"===t.substr(i,3).toLowerCase()?(e=t.substr(i,3),i+=3):(e=null,a('"TCP"')),null===e&&("tls"===t.substr(i,3).toLowerCase()?(e=t.substr(i,3),i+=3):(e=null,a('"TLS"')),null===e&&("sctp"===t.substr(i,4).toLowerCase()?(e=t.substr(i,4),i+=4):(e=null,a('"SCTP"')),null===e&&(e=O())))),null!==e&&(r=e,e=void(Hn.transport=r)),null===e&&(i=n),e}function yn(){var e,t,n,r,s;return r=i,null!==(e=Tn())?(s=i,null!==(t=G())&&null!==(n=bn())?t=[t,n]:(t=null,i=s),null!==(t=null!==t?t:"")?e=[e,t]:(e=null,i=r)):(e=null,i=r),e}function Tn(){var e,n;return n=i,null===(e=_e())&&null===(e=ce())&&(e=le()),null!==e&&(e=function(e){Hn.host=t.substring(i,e)}(n)),null===e&&(i=n),e}function bn(){var e,t,n,r,s,o,l,a;return o=i,l=i,null!==(e=null!==(e=c())?e:"")&&null!==(t=null!==(t=c())?t:"")&&null!==(n=null!==(n=c())?n:"")&&null!==(r=null!==(r=c())?r:"")&&null!==(s=null!==(s=c())?s:"")?e=[e,t,n,r,s]:(e=null,i=l),null!==e&&(a=e,e=void(Hn.port=parseInt(a.join("")))),null===e&&(i=o),e}function Sn(){var e,t,n,r,s;return r=i,s=i,null!==(e=c())&&null!==(t=null!==(t=c())?t:"")&&null!==(n=null!==(n=c())?n:"")?e=[e,t,n]:(e=null,i=s),null!==e&&(e=parseInt(e.join(""))),null===e&&(i=r),e}function En(){var e,t,n;return t=i,null!==(e=yt())&&(n=e,e=void(Hn.expires=n)),null===e&&(i=t),e}function Cn(){var e;return null===(e=An())&&(e=bt()),e}function An(){var e,n,r,s,o,l;return s=i,o=i,"refresher"===t.substr(i,9).toLowerCase()?(e=t.substr(i,9),i+=9):(e=null,a('"refresher"')),null!==e&&null!==(n=P())?("uac"===t.substr(i,3).toLowerCase()?(r=t.substr(i,3),i+=3):(r=null,a('"uac"')),null===r&&("uas"===t.substr(i,3).toLowerCase()?(r=t.substr(i,3),i+=3):(r=null,a('"uas"'))),null!==r?e=[e,n,r]:(e=null,i=o)):(e=null,i=o),null!==e&&(l=e[2],e=void(Hn.refresher=l.toLowerCase())),null===e&&(i=s),e}function wn(){var e,t;for(e=[],null===(t=w())&&null===(t=I())&&(t=S());null!==t;)e.push(t),null===(t=w())&&null===(t=I())&&(t=S());return e}function Rn(){var e,n,r,s,o,l,u,c,h,d,f;return d=i,f=i,null!==(e=On())?(45===t.charCodeAt(i)?(n="-",i++):(n=null,a('"-"')),null!==n&&null!==(r=In())?(45===t.charCodeAt(i)?(s="-",i++):(s=null,a('"-"')),null!==s&&null!==(o=In())?(45===t.charCodeAt(i)?(l="-",i++):(l=null,a('"-"')),null!==l&&null!==(u=In())?(45===t.charCodeAt(i)?(c="-",i++):(c=null,a('"-"')),null!==c&&null!==(h=Nn())?e=[e,n,r,s,o,l,u,c,h]:(e=null,i=f)):(e=null,i=f)):(e=null,i=f)):(e=null,i=f)):(e=null,i=f),null!==e&&(e=function(e,n){Hn=t.substring(i+5,e)}(d,e[0])),null===e&&(i=d),e}function In(){var e,t,n,r,s;return s=i,null!==(e=d())&&null!==(t=d())&&null!==(n=d())&&null!==(r=d())?e=[e,t,n,r]:(e=null,i=s),e}function On(){var e,t,n;return n=i,null!==(e=In())&&null!==(t=In())?e=[e,t]:(e=null,i=n),e}function Nn(){var e,t,n,r;return r=i,null!==(e=In())&&null!==(t=In())&&null!==(n=In())?e=[e,t,n]:(e=null,i=r),e}function kn(){var e,n,r,s,o,l;return s=i,o=i,null!==(e=k())?(l=i,64===t.charCodeAt(i)?(n="@",i++):(n=null,a('"@"')),null!==n&&null!==(r=k())?n=[n,r]:(n=null,i=l),null!==(n=null!==n?n:"")?e=[e,n]:(e=null,i=o)):(e=null,i=o),null!==e&&(e=function(e){Hn.call_id=t.substring(i,e)}(s)),null===e&&(i=s),e}function Dn(){var e;return null===(e=Un())&&null===(e=Pn())&&null===(e=qn())&&(e=bt()),e}function Un(){var e,n,r,s,o,l;return s=i,o=i,"to-tag"===t.substr(i,6)?(e="to-tag",i+=6):(e=null,a('"to-tag"')),null!==e&&null!==(n=P())&&null!==(r=O())?e=[e,n,r]:(e=null,i=o),null!==e&&(l=e[2],e=void(Hn.to_tag=l)),null===e&&(i=s),e}function Pn(){var e,n,r,s,o,l;return s=i,o=i,"from-tag"===t.substr(i,8)?(e="from-tag",i+=8):(e=null,a('"from-tag"')),null!==e&&null!==(n=P())&&null!==(r=O())?e=[e,n,r]:(e=null,i=o),null!==e&&(l=e[2],e=void(Hn.from_tag=l)),null===e&&(i=s),e}function qn(){var e,n;return n=i,"early-only"===t.substr(i,10)?(e="early-only",i+=10):(e=null,a('"early-only"')),null!==e&&(e=void(Hn.early_only=!0)),null===e&&(i=n),e}var Mn=n(7),Ln=n(11),Hn={};if(null===s[r]()||i!==t.length){var Fn=Math.max(i,o),jn=Fn<t.length?t.charAt(Fn):null,Gn=function(){for(var e=1,n=1,r=!1,s=0;s<Math.max(i,o);s++){var l=t.charAt(s);"\n"===l?(r||e++,n=1,r=!1):"\r"===l||"\u2028"===l||"\u2029"===l?(e++,n=1,r=!0):(n++,r=!1)}return{line:e,column:n}}();return new this.SyntaxError(function(e){e.sort();for(var t=null,n=[],r=0;r<e.length;r++)e[r]!==t&&(n.push(e[r]),t=e[r]);return n}(l),jn,Fn,Gn.line,Gn.column),-1}return Hn},toSource:function(){return this._source},SyntaxError:function(t,n,r,s,i){this.name="SyntaxError",this.expected=t,this.found=n,this.message=function(t,n){var r;switch(t.length){case 0:r="end of input";break;case 1:r=t[0];break;default:r=t.slice(0,t.length-1).join(", ")+" or "+t[t.length-1]}return"Expected "+r+" but "+(n?e(n):"end of input")+" found."}(t,n),this.offset=r,this.line=s,this.column=i}};return t.SyntaxError.prototype=Error.prototype,t}()},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function i(e){return(i=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function c(e,t,n){return t&&u(e.prototype,t),n&&u(e,n),e}var h=n(14),d=n(1),f=n(2),_=n(11),p=n(4),m=n(0)("JsSIP:SIPMessage"),v=function(){function e(t,n,r,s,i,o){if(a(this,e),!t||!n||!r)return null;s=s||{},this.ua=r,this.headers={},this.method=t,this.ruri=n,this.body=o,this.extraHeaders=f.cloneArray(i),s.route_set?this.setHeader("route",s.route_set):r.configuration.use_preloaded_route&&this.setHeader("route","<".concat(r.transport.sip_uri,";lr>")),this.setHeader("via",""),this.setHeader("max-forwards",d.MAX_FORWARDS);var l=s.to_uri||n,u=s.to_tag?{tag:s.to_tag}:null,c=void 0!==s.to_display_name?s.to_display_name:null;this.to=new _(l,c,u),this.setHeader("to",this.to.toString());var h,p=s.from_uri||r.configuration.uri,m={tag:s.from_tag||f.newTag()};h=void 0!==s.from_display_name?s.from_display_name:r.configuration.display_name?r.configuration.display_name:null,this.from=new _(p,h,m),this.setHeader("from",this.from.toString());var v=s.call_id||r.configuration.jssip_id+f.createRandomToken(15);this.call_id=v,this.setHeader("call-id",v);var g=s.cseq||Math.floor(1e4*Math.random());this.cseq=g,this.setHeader("cseq","".concat(g," ").concat(t))}return c(e,[{key:"setHeader",value:function(e,t){for(var n=new RegExp("^\\s*".concat(e,"\\s*:"),"i"),r=0;r<this.extraHeaders.length;r++)n.test(this.extraHeaders[r])&&this.extraHeaders.splice(r,1);this.headers[f.headerize(e)]=Array.isArray(t)?t:[t]}},{key:"getHeader",value:function(e){var t=this.headers[f.headerize(e)];if(t){if(t[0])return t[0]}else{var n=new RegExp("^\\s*".concat(e,"\\s*:"),"i"),r=!0,s=!1,i=void 0;try{for(var o,l=this.extraHeaders[Symbol.iterator]();!(r=(o=l.next()).done);r=!0){var a=o.value;if(n.test(a))return a.substring(a.indexOf(":")+1).trim()}}catch(e){s=!0,i=e}finally{try{r||null==l.return||l.return()}finally{if(s)throw i}}}}},{key:"getHeaders",value:function(e){var t=this.headers[f.headerize(e)],n=[];if(t){var r=!0,s=!1,i=void 0;try{for(var o,l=t[Symbol.iterator]();!(r=(o=l.next()).done);r=!0){var a=o.value;n.push(a)}}catch(e){s=!0,i=e}finally{try{r||null==l.return||l.return()}finally{if(s)throw i}}return n}var u=new RegExp("^\\s*".concat(e,"\\s*:"),"i"),c=!0,h=!1,d=void 0;try{for(var _,p=this.extraHeaders[Symbol.iterator]();!(c=(_=p.next()).done);c=!0){var m=_.value;u.test(m)&&n.push(m.substring(m.indexOf(":")+1).trim())}}catch(e){h=!0,d=e}finally{try{c||null==p.return||p.return()}finally{if(h)throw d}}return n}},{key:"hasHeader",value:function(e){if(this.headers[f.headerize(e)])return!0;var t=new RegExp("^\\s*".concat(e,"\\s*:"),"i"),n=!0,r=!1,s=void 0;try{for(var i,o=this.extraHeaders[Symbol.iterator]();!(n=(i=o.next()).done);n=!0){var l=i.value;if(t.test(l))return!0}}catch(e){r=!0,s=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw s}}return!1}},{key:"parseSDP",value:function(e){return!e&&this.sdp||(this.sdp=h.parse(this.body||"")),this.sdp}},{key:"toString",value:function(){var e="".concat(this.method," ").concat(this.ruri," SIP/2.0\r\n");for(var t in this.headers)if(Object.prototype.hasOwnProperty.call(this.headers,t)){var n=!0,r=!1,s=void 0;try{for(var i,o=this.headers[t][Symbol.iterator]();!(n=(i=o.next()).done);n=!0){var l=i.value;e+="".concat(t,": ").concat(l,"\r\n")}}catch(e){r=!0,s=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw s}}}var a=!0,u=!1,c=void 0;try{for(var h,_=this.extraHeaders[Symbol.iterator]();!(a=(h=_.next()).done);a=!0){var p=h.value;e+="".concat(p.trim(),"\r\n")}}catch(e){u=!0,c=e}finally{try{a||null==_.return||_.return()}finally{if(u)throw c}}var m=[];switch(this.method){case d.REGISTER:m.push("path","gruu");break;case d.INVITE:this.ua.configuration.session_timers&&m.push("timer"),(this.ua.contact.pub_gruu||this.ua.contact.temp_gruu)&&m.push("gruu"),m.push("ice","replaces");break;case d.UPDATE:this.ua.configuration.session_timers&&m.push("timer"),m.push("ice")}m.push("outbound");var v=this.ua.configuration.user_agent||d.USER_AGENT;if(e+="Allow: ".concat(d.ALLOWED_METHODS,"\r\n"),e+="Supported: ".concat(m,"\r\n"),e+="User-Agent: ".concat(v,"\r\n"),this.body){var g=f.str_utf8_length(this.body);e+="Content-Length: ".concat(g,"\r\n\r\n"),e+=this.body}else e+="Content-Length: 0\r\n\r\n";return e}},{key:"clone",value:function(){var t=new e(this.method,this.ruri,this.ua);return Object.keys(this.headers).forEach((function(e){t.headers[e]=this.headers[e].slice()}),this),t.body=this.body,t.extraHeaders=f.cloneArray(this.extraHeaders),t.to=this.to,t.from=this.from,t.call_id=this.call_id,t.cseq=this.cseq,t}}]),e}(),g=function(e){function t(e,n,r,o,l){var u;return a(this,t),(u=s(this,i(t).call(this,d.INVITE,e,n,r,o,l))).transaction=null,u}return o(t,e),c(t,[{key:"cancel",value:function(e){this.transaction.cancel(e)}},{key:"clone",value:function(){var e=new t(this.ruri,this.ua);return Object.keys(this.headers).forEach((function(t){e.headers[t]=this.headers[t].slice()}),this),e.body=this.body,e.extraHeaders=f.cloneArray(this.extraHeaders),e.to=this.to,e.from=this.from,e.call_id=this.call_id,e.cseq=this.cseq,e.transaction=this.transaction,e}}]),t}(v),x=function(){function e(){a(this,e),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}return c(e,[{key:"addHeader",value:function(e,t){var n={raw:t};e=f.headerize(e),this.headers[e]?this.headers[e].push(n):this.headers[e]=[n]}},{key:"getHeader",value:function(e){var t=this.headers[f.headerize(e)];if(t)return t[0]?t[0].raw:void 0}},{key:"getHeaders",value:function(e){var t=this.headers[f.headerize(e)],n=[];if(!t)return[];var r=!0,s=!1,i=void 0;try{for(var o,l=t[Symbol.iterator]();!(r=(o=l.next()).done);r=!0){var a=o.value;n.push(a.raw)}}catch(e){s=!0,i=e}finally{try{r||null==l.return||l.return()}finally{if(s)throw i}}return n}},{key:"hasHeader",value:function(e){return!!this.headers[f.headerize(e)]}},{key:"parseHeader",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(e=f.headerize(e),this.headers[e]){if(!(t>=this.headers[e].length)){var n=this.headers[e][t],r=n.raw;if(n.parsed)return n.parsed;var s=p.parse(r,e.replace(/-/g,"_"));return-1===s?(this.headers[e].splice(t,1),void m('error parsing "'.concat(e,'" header field with value "').concat(r,'"'))):(n.parsed=s,s)}m('not so many "'.concat(e,'" headers present'))}else m('header "'.concat(e,'" not present'))}},{key:"s",value:function(e,t){return this.parseHeader(e,t)}},{key:"setHeader",value:function(e,t){var n={raw:t};this.headers[f.headerize(e)]=[n]}},{key:"parseSDP",value:function(e){return!e&&this.sdp||(this.sdp=h.parse(this.body||"")),this.sdp}},{key:"toString",value:function(){return this.data}}]),e}(),y=function(e){function t(e){var n;return a(this,t),(n=s(this,i(t).call(this))).ua=e,n.headers={},n.ruri=null,n.transport=null,n.server_transaction=null,n}return o(t,e),c(t,[{key:"reply",value:function(e,t,n,r,s,i){var o=[],l=this.getHeader("To");if(t=t||null,!(e=e||null)||e<100||e>699)throw new TypeError("Invalid status_code: ".concat(e));if(t&&"string"!=typeof t&&!(t instanceof String))throw new TypeError("Invalid reason_phrase: ".concat(t));t=t||d.REASON_PHRASE[e]||"",n=f.cloneArray(n);var a="SIP/2.0 ".concat(e," ").concat(t,"\r\n");if(this.method===d.INVITE&&e>100&&e<=200){var u=this.getHeaders("record-route"),c=!0,h=!1,_=void 0;try{for(var p,m=u[Symbol.iterator]();!(c=(p=m.next()).done);c=!0){var v=p.value;a+="Record-Route: ".concat(v,"\r\n")}}catch(e){h=!0,_=e}finally{try{c||null==m.return||m.return()}finally{if(h)throw _}}}var g=this.getHeaders("via"),x=!0,y=!1,T=void 0;try{for(var b,S=g[Symbol.iterator]();!(x=(b=S.next()).done);x=!0){var E=b.value;a+="Via: ".concat(E,"\r\n")}}catch(e){y=!0,T=e}finally{try{x||null==S.return||S.return()}finally{if(y)throw T}}!this.to_tag&&e>100?l+=";tag=".concat(f.newTag()):this.to_tag&&!this.s("to").hasParam("tag")&&(l+=";tag=".concat(this.to_tag)),a+="To: ".concat(l,"\r\n"),a+="From: ".concat(this.getHeader("From"),"\r\n"),a+="Call-ID: ".concat(this.call_id,"\r\n"),a+="CSeq: ".concat(this.cseq," ").concat(this.method,"\r\n");var C=!0,A=!1,w=void 0;try{for(var R,I=n[Symbol.iterator]();!(C=(R=I.next()).done);C=!0){var O=R.value;a+="".concat(O.trim(),"\r\n")}}catch(e){A=!0,w=e}finally{try{C||null==I.return||I.return()}finally{if(A)throw w}}switch(this.method){case d.INVITE:this.ua.configuration.session_timers&&o.push("timer"),(this.ua.contact.pub_gruu||this.ua.contact.temp_gruu)&&o.push("gruu"),o.push("ice","replaces");break;case d.UPDATE:this.ua.configuration.session_timers&&o.push("timer"),r&&o.push("ice"),o.push("replaces")}if(o.push("outbound"),this.method===d.OPTIONS?(a+="Allow: ".concat(d.ALLOWED_METHODS,"\r\n"),a+="Accept: ".concat(d.ACCEPTED_BODY_TYPES,"\r\n")):405===e?a+="Allow: ".concat(d.ALLOWED_METHODS,"\r\n"):415===e&&(a+="Accept: ".concat(d.ACCEPTED_BODY_TYPES,"\r\n")),a+="Supported: ".concat(o,"\r\n"),r){var N=f.str_utf8_length(r);a+="Content-Type: application/sdp\r\n",a+="Content-Length: ".concat(N,"\r\n\r\n"),a+=r}else a+="Content-Length: ".concat(0,"\r\n\r\n");this.server_transaction.receiveResponse(e,a,s,i)}},{key:"reply_sl",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this.getHeaders("via");if(!e||e<100||e>699)throw new TypeError("Invalid status_code: ".concat(e));if(t&&"string"!=typeof t&&!(t instanceof String))throw new TypeError("Invalid reason_phrase: ".concat(t));t=t||d.REASON_PHRASE[e]||"";var r="SIP/2.0 ".concat(e," ").concat(t,"\r\n"),s=!0,i=!1,o=void 0;try{for(var l,a=n[Symbol.iterator]();!(s=(l=a.next()).done);s=!0){var u=l.value;r+="Via: ".concat(u,"\r\n")}}catch(e){i=!0,o=e}finally{try{s||null==a.return||a.return()}finally{if(i)throw o}}var c=this.getHeader("To");!this.to_tag&&e>100?c+=";tag=".concat(f.newTag()):this.to_tag&&!this.s("to").hasParam("tag")&&(c+=";tag=".concat(this.to_tag)),r+="To: ".concat(c,"\r\n"),r+="From: ".concat(this.getHeader("From"),"\r\n"),r+="Call-ID: ".concat(this.call_id,"\r\n"),r+="CSeq: ".concat(this.cseq," ").concat(this.method,"\r\n"),r+="Content-Length: ".concat(0,"\r\n\r\n"),this.transport.send(r)}}]),t}(x),T=function(e){function t(){var e;return a(this,t),(e=s(this,i(t).call(this))).headers={},e.status_code=null,e.reason_phrase=null,e}return o(t,e),t}(x);e.exports={OutgoingRequest:v,InitialOutgoingInviteRequest:g,IncomingRequest:y,IncomingResponse:T}},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}function l(e){var t="function"==typeof Map?new Map:void 0;return(l=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return u(e,arguments,h(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),c(r,e)})(e)}function a(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function u(e,t,n){return(u=a()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var s=new(Function.bind.apply(e,r));return n&&c(s,n.prototype),s}).apply(null,arguments)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var d=function(e){function t(e,n){var r;return s(this,t),(r=i(this,h(t).call(this))).code=1,r.name="CONFIGURATION_ERROR",r.parameter=e,r.value=n,r.message=r.value?"Invalid value ".concat(JSON.stringify(r.value),' for parameter "').concat(r.parameter,'"'):"Missing parameter: ".concat(r.parameter),r}return o(t,e),t}(l(Error)),f=function(e){function t(e){var n;return s(this,t),(n=i(this,h(t).call(this))).code=2,n.name="INVALID_STATE_ERROR",n.status=e,n.message="Invalid status: ".concat(e),n}return o(t,e),t}(l(Error)),_=function(e){function t(e){var n;return s(this,t),(n=i(this,h(t).call(this))).code=3,n.name="NOT_SUPPORTED_ERROR",n.message=e,n}return o(t,e),t}(l(Error)),p=function(e){function t(e){var n;return s(this,t),(n=i(this,h(t).call(this))).code=4,n.name="NOT_READY_ERROR",n.message=e,n}return o(t,e),t}(l(Error));e.exports={ConfigurationError:d,InvalidStateError:f,NotSupportedError:_,NotReadyError:p}},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&s(e.prototype,t),n&&s(e,n),e}var o=n(1),l=n(2),a=n(4);e.exports=function(){function e(t,n,s,i){var l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(r(this,e),!s)throw new TypeError('missing or invalid "host" parameter');for(var u in this._parameters={},this._headers={},this._scheme=t||o.SIP,this._user=n,this._host=s,this._port=i,l)Object.prototype.hasOwnProperty.call(l,u)&&this.setParam(u,l[u]);for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&this.setHeader(c,a[c])}return i(e,null,[{key:"parse",value:function(e){return-1!==(e=a.parse(e,"SIP_URI"))?e:void 0}}]),i(e,[{key:"setParam",value:function(e,t){e&&(this._parameters[e.toLowerCase()]=null==t?null:t.toString())}},{key:"getParam",value:function(e){if(e)return this._parameters[e.toLowerCase()]}},{key:"hasParam",value:function(e){if(e)return!!this._parameters.hasOwnProperty(e.toLowerCase())}},{key:"deleteParam",value:function(e){if(e=e.toLowerCase(),this._parameters.hasOwnProperty(e)){var t=this._parameters[e];return delete this._parameters[e],t}}},{key:"clearParams",value:function(){this._parameters={}}},{key:"setHeader",value:function(e,t){this._headers[l.headerize(e)]=Array.isArray(t)?t:[t]}},{key:"getHeader",value:function(e){if(e)return this._headers[l.headerize(e)]}},{key:"hasHeader",value:function(e){if(e)return!!this._headers.hasOwnProperty(l.headerize(e))}},{key:"deleteHeader",value:function(e){if(e=l.headerize(e),this._headers.hasOwnProperty(e)){var t=this._headers[e];return delete this._headers[e],t}}},{key:"clearHeaders",value:function(){this._headers={}}},{key:"clone",value:function(){return new e(this._scheme,this._user,this._host,this._port,JSON.parse(JSON.stringify(this._parameters)),JSON.parse(JSON.stringify(this._headers)))}},{key:"toString",value:function(){var e=[],t="".concat(this._scheme,":");for(var n in this._user&&(t+="".concat(l.escapeUser(this._user),"@")),t+=this._host,(this._port||0===this._port)&&(t+=":".concat(this._port)),this._parameters)Object.prototype.hasOwnProperty.call(this._parameters,n)&&(t+=";".concat(n),null!==this._parameters[n]&&(t+="=".concat(this._parameters[n])));for(var r in this._headers)if(Object.prototype.hasOwnProperty.call(this._headers,r)){var s=!0,i=!1,o=void 0;try{for(var a,u=this._headers[r][Symbol.iterator]();!(s=(a=u.next()).done);s=!0){var c=a.value;e.push("".concat(r,"=").concat(c))}}catch(e){i=!0,o=e}finally{try{s||null==u.return||u.return()}finally{if(i)throw o}}}return e.length>0&&(t+="?".concat(e.join("&"))),t}},{key:"toAor",value:function(e){var t="".concat(this._scheme,":");return this._user&&(t+="".concat(l.escapeUser(this._user),"@")),t+=this._host,e&&(this._port||0===this._port)&&(t+=":".concat(this._port)),t}},{key:"scheme",get:function(){return this._scheme},set:function(e){this._scheme=e.toLowerCase()}},{key:"user",get:function(){return this._user},set:function(e){this._user=e}},{key:"host",get:function(){return this._host},set:function(e){this._host=e.toLowerCase()}},{key:"port",get:function(){return this._port},set:function(e){this._port=0===e?e:parseInt(e,10)||null}}]),e}()},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}function l(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?h(e):t}function a(e){return(a=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function h(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var d=n(3).EventEmitter,f=n(1),_=n(5),p=n(16),m=n(0)("JsSIP:NonInviteClientTransaction"),v=n(0)("JsSIP:InviteClientTransaction"),g=n(0)("JsSIP:AckClientTransaction"),x=n(0)("JsSIP:NonInviteServerTransaction"),y=n(0)("JsSIP:InviteServerTransaction"),T={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"},b=function(e){function t(e,n,r,i){var o;s(this,t),(o=l(this,a(t).call(this))).type=T.NON_INVITE_CLIENT,o.id="z9hG4bK".concat(Math.floor(1e7*Math.random())),o.ua=e,o.transport=n,o.request=r,o.eventHandlers=i;var u="SIP/2.0/".concat(n.via_transport);return u+=" ".concat(e.configuration.via_host,";branch=").concat(o.id),o.request.setHeader("via",u),o.ua.newTransaction(h(h(o))),o}return u(t,e),o(t,[{key:"stateChanged",value:function(e){this.state=e,this.emit("stateChanged")}},{key:"send",value:function(){var e=this;this.stateChanged(T.STATUS_TRYING),this.F=setTimeout((function(){e.timer_F()}),p.TIMER_F),this.transport.send(this.request)||this.onTransportError()}},{key:"onTransportError",value:function(){m("transport error occurred, deleting transaction ".concat(this.id)),clearTimeout(this.F),clearTimeout(this.K),this.stateChanged(T.STATUS_TERMINATED),this.ua.destroyTransaction(this),this.eventHandlers.onTransportError()}},{key:"timer_F",value:function(){m("Timer F expired for transaction ".concat(this.id)),this.stateChanged(T.STATUS_TERMINATED),this.ua.destroyTransaction(this),this.eventHandlers.onRequestTimeout()}},{key:"timer_K",value:function(){this.stateChanged(T.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"receiveResponse",value:function(e){var t=this,n=e.status_code;if(n<200)switch(this.state){case T.STATUS_TRYING:case T.STATUS_PROCEEDING:this.stateChanged(T.STATUS_PROCEEDING),this.eventHandlers.onReceiveResponse(e)}else switch(this.state){case T.STATUS_TRYING:case T.STATUS_PROCEEDING:this.stateChanged(T.STATUS_COMPLETED),clearTimeout(this.F),408===n?this.eventHandlers.onRequestTimeout():this.eventHandlers.onReceiveResponse(e),this.K=setTimeout((function(){t.timer_K()}),p.TIMER_K)}}},{key:"C",get:function(){return T}}]),t}(d),S=function(e){function t(e,n,r,i){var o;s(this,t),(o=l(this,a(t).call(this))).type=T.INVITE_CLIENT,o.id="z9hG4bK".concat(Math.floor(1e7*Math.random())),o.ua=e,o.transport=n,o.request=r,o.eventHandlers=i,r.transaction=h(h(o));var u="SIP/2.0/".concat(n.via_transport);return u+=" ".concat(e.configuration.via_host,";branch=").concat(o.id),o.request.setHeader("via",u),o.ua.newTransaction(h(h(o))),o}return u(t,e),o(t,[{key:"stateChanged",value:function(e){this.state=e,this.emit("stateChanged")}},{key:"send",value:function(){var e=this;this.stateChanged(T.STATUS_CALLING),this.B=setTimeout((function(){e.timer_B()}),p.TIMER_B),this.transport.send(this.request)||this.onTransportError()}},{key:"onTransportError",value:function(){clearTimeout(this.B),clearTimeout(this.D),clearTimeout(this.M),this.state!==T.STATUS_ACCEPTED&&(v("transport error occurred, deleting transaction ".concat(this.id)),this.eventHandlers.onTransportError()),this.stateChanged(T.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"timer_M",value:function(){v("Timer M expired for transaction ".concat(this.id)),this.state===T.STATUS_ACCEPTED&&(clearTimeout(this.B),this.stateChanged(T.STATUS_TERMINATED),this.ua.destroyTransaction(this))}},{key:"timer_B",value:function(){v("Timer B expired for transaction ".concat(this.id)),this.state===T.STATUS_CALLING&&(this.stateChanged(T.STATUS_TERMINATED),this.ua.destroyTransaction(this),this.eventHandlers.onRequestTimeout())}},{key:"timer_D",value:function(){v("Timer D expired for transaction ".concat(this.id)),clearTimeout(this.B),this.stateChanged(T.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"sendACK",value:function(e){var t=this,n=new _.OutgoingRequest(f.ACK,this.request.ruri,this.ua,{route_set:this.request.getHeaders("route"),call_id:this.request.getHeader("call-id"),cseq:this.request.cseq});n.setHeader("from",this.request.getHeader("from")),n.setHeader("via",this.request.getHeader("via")),n.setHeader("to",e.getHeader("to")),this.D=setTimeout((function(){t.timer_D()}),p.TIMER_D),this.transport.send(n)}},{key:"cancel",value:function(e){if(this.state===T.STATUS_PROCEEDING){var t=new _.OutgoingRequest(f.CANCEL,this.request.ruri,this.ua,{route_set:this.request.getHeaders("route"),call_id:this.request.getHeader("call-id"),cseq:this.request.cseq});t.setHeader("from",this.request.getHeader("from")),t.setHeader("via",this.request.getHeader("via")),t.setHeader("to",this.request.getHeader("to")),e&&t.setHeader("reason",e),this.transport.send(t)}}},{key:"receiveResponse",value:function(e){var t=this,n=e.status_code;if(n>=100&&n<=199)switch(this.state){case T.STATUS_CALLING:this.stateChanged(T.STATUS_PROCEEDING),this.eventHandlers.onReceiveResponse(e);break;case T.STATUS_PROCEEDING:this.eventHandlers.onReceiveResponse(e)}else if(n>=200&&n<=299)switch(this.state){case T.STATUS_CALLING:case T.STATUS_PROCEEDING:this.stateChanged(T.STATUS_ACCEPTED),this.M=setTimeout((function(){t.timer_M()}),p.TIMER_M),this.eventHandlers.onReceiveResponse(e);break;case T.STATUS_ACCEPTED:this.eventHandlers.onReceiveResponse(e)}else if(n>=300&&n<=699)switch(this.state){case T.STATUS_CALLING:case T.STATUS_PROCEEDING:this.stateChanged(T.STATUS_COMPLETED),this.sendACK(e),this.eventHandlers.onReceiveResponse(e);break;case T.STATUS_COMPLETED:this.sendACK(e)}}},{key:"C",get:function(){return T}}]),t}(d),E=function(e){function t(e,n,r,i){var o;s(this,t),(o=l(this,a(t).call(this))).id="z9hG4bK".concat(Math.floor(1e7*Math.random())),o.transport=n,o.request=r,o.eventHandlers=i;var u="SIP/2.0/".concat(n.via_transport);return u+=" ".concat(e.configuration.via_host,";branch=").concat(o.id),o.request.setHeader("via",u),o}return u(t,e),o(t,[{key:"send",value:function(){this.transport.send(this.request)||this.onTransportError()}},{key:"onTransportError",value:function(){g("transport error occurred for transaction ".concat(this.id)),this.eventHandlers.onTransportError()}},{key:"C",get:function(){return T}}]),t}(d),C=function(e){function t(e,n,r){var i;return s(this,t),(i=l(this,a(t).call(this))).type=T.NON_INVITE_SERVER,i.id=r.via_branch,i.ua=e,i.transport=n,i.request=r,i.last_response="",r.server_transaction=h(h(i)),i.state=T.STATUS_TRYING,e.newTransaction(h(h(i))),i}return u(t,e),o(t,[{key:"stateChanged",value:function(e){this.state=e,this.emit("stateChanged")}},{key:"timer_J",value:function(){x("Timer J expired for transaction ".concat(this.id)),this.stateChanged(T.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"onTransportError",value:function(){this.transportError||(this.transportError=!0,x("transport error occurred, deleting transaction ".concat(this.id)),clearTimeout(this.J),this.stateChanged(T.STATUS_TERMINATED),this.ua.destroyTransaction(this))}},{key:"receiveResponse",value:function(e,t,n,r){var s=this;if(100===e)switch(this.state){case T.STATUS_TRYING:this.stateChanged(T.STATUS_PROCEEDING),this.transport.send(t)||this.onTransportError();break;case T.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 T.STATUS_TRYING:case T.STATUS_PROCEEDING:this.stateChanged(T.STATUS_COMPLETED),this.last_response=t,this.J=setTimeout((function(){s.timer_J()}),p.TIMER_J),this.transport.send(t)?n&&n():(this.onTransportError(),r&&r())}}},{key:"C",get:function(){return T}}]),t}(d),A=function(e){function t(e,n,r){var i;return s(this,t),(i=l(this,a(t).call(this))).type=T.INVITE_SERVER,i.id=r.via_branch,i.ua=e,i.transport=n,i.request=r,i.last_response="",r.server_transaction=h(h(i)),i.state=T.STATUS_PROCEEDING,e.newTransaction(h(h(i))),i.resendProvisionalTimer=null,r.reply(100),i}return u(t,e),o(t,[{key:"stateChanged",value:function(e){this.state=e,this.emit("stateChanged")}},{key:"timer_H",value:function(){y("Timer H expired for transaction ".concat(this.id)),this.state===T.STATUS_COMPLETED&&y("ACK not received, dialog will be terminated"),this.stateChanged(T.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"timer_I",value:function(){this.stateChanged(T.STATUS_TERMINATED)}},{key:"timer_L",value:function(){y("Timer L expired for transaction ".concat(this.id)),this.state===T.STATUS_ACCEPTED&&(this.stateChanged(T.STATUS_TERMINATED),this.ua.destroyTransaction(this))}},{key:"onTransportError",value:function(){this.transportError||(this.transportError=!0,y("transport error occurred, deleting transaction ".concat(this.id)),null!==this.resendProvisionalTimer&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null),clearTimeout(this.L),clearTimeout(this.H),clearTimeout(this.I),this.stateChanged(T.STATUS_TERMINATED),this.ua.destroyTransaction(this))}},{key:"resend_provisional",value:function(){this.transport.send(this.last_response)||this.onTransportError()}},{key:"receiveResponse",value:function(e,t,n,r){var s=this;if(e>=100&&e<=199)switch(this.state){case T.STATUS_PROCEEDING:this.transport.send(t)||this.onTransportError(),this.last_response=t}if(e>100&&e<=199&&this.state===T.STATUS_PROCEEDING)null===this.resendProvisionalTimer&&(this.resendProvisionalTimer=setInterval((function(){s.resend_provisional()}),p.PROVISIONAL_RESPONSE_INTERVAL));else if(e>=200&&e<=299)switch(this.state){case T.STATUS_PROCEEDING:this.stateChanged(T.STATUS_ACCEPTED),this.last_response=t,this.L=setTimeout((function(){s.timer_L()}),p.TIMER_L),null!==this.resendProvisionalTimer&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null);case T.STATUS_ACCEPTED:this.transport.send(t)?n&&n():(this.onTransportError(),r&&r())}else if(e>=300&&e<=699)switch(this.state){case T.STATUS_PROCEEDING:null!==this.resendProvisionalTimer&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null),this.transport.send(t)?(this.stateChanged(T.STATUS_COMPLETED),this.H=setTimeout((function(){s.timer_H()}),p.TIMER_H),n&&n()):(this.onTransportError(),r&&r())}}},{key:"C",get:function(){return T}}]),t}(d);e.exports={C:T,NonInviteClientTransaction:b,InviteClientTransaction:S,AckClientTransaction:E,NonInviteServerTransaction:C,InviteServerTransaction:A,checkTransaction:function(e,t){var n,r=e._transactions;switch(t.method){case f.INVITE:if(n=r.ist[t.via_branch]){switch(n.state){case T.STATUS_PROCEEDING:n.transport.send(n.last_response)}return!0}break;case f.ACK:if(!(n=r.ist[t.via_branch]))return!1;if(n.state===T.STATUS_ACCEPTED)return!1;if(n.state===T.STATUS_COMPLETED)return n.state=T.STATUS_CONFIRMED,n.I=setTimeout((function(){n.timer_I()}),p.TIMER_I),!0;break;case f.CANCEL:return(n=r.ist[t.via_branch])?(t.reply_sl(200),n.state!==T.STATUS_PROCEEDING):(t.reply_sl(481),!0);default:if(n=r.nist[t.via_branch]){switch(n.state){case T.STATUS_TRYING:break;case T.STATUS_PROCEEDING:case T.STATUS_COMPLETED:n.transport.send(n.last_response)}return!0}}}}},function(e,t,n){"use strict";var r=n(13),s=n(1),i=n(6),o=n(2),l=n(19),a=n(7),u=n(11),c=n(4),h=n(38);n(0)("JsSIP")("version %s",r.version),e.exports={C:s,Exceptions:i,Utils:o,UA:l,URI:a,NameAddrHeader:u,WebSocketInterface:h,Grammar:c,debug:n(0),get name(){return r.title},get version(){return r.version}}},function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var s=n(1),i=n(26),o=n(8),l=n(0)("JsSIP:RequestSender"),a={onRequestTimeout:function(){},onTransportError:function(){},onReceiveResponse:function(){},onAuthenticated:function(){}};e.exports=function(){function e(t,n,r){for(var i in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._ua=t,this._eventHandlers=r,this._method=n.method,this._request=n,this._auth=null,this._challenged=!1,this._staled=!1,a)Object.prototype.hasOwnProperty.call(a,i)&&(this._eventHandlers[i]||(this._eventHandlers[i]=a[i]));t.status!==t.C.STATUS_USER_CLOSED||this._method===s.BYE&&this._method===s.ACK||this._eventHandlers.onTransportError()}var t,n,u;return t=e,(n=[{key:"send",value:function(){var e=this,t={onRequestTimeout:function(){e._eventHandlers.onRequestTimeout()},onTransportError:function(){e._eventHandlers.onTransportError()},onReceiveResponse:function(t){e._receiveResponse(t)}};switch(this._method){case"INVITE":this.clientTransaction=new o.InviteClientTransaction(this._ua,this._ua.transport,this._request,t);break;case"ACK":this.clientTransaction=new o.AckClientTransaction(this._ua,this._ua.transport,this._request,t);break;default:this.clientTransaction=new o.NonInviteClientTransaction(this._ua,this._ua.transport,this._request,t)}this.clientTransaction.send()}},{key:"_receiveResponse",value:function(e){var t,n,r=e.status_code;if(401!==r&&407!==r||null===this._ua.configuration.password&&null===this._ua.configuration.ha1)this._eventHandlers.onReceiveResponse(e);else{if(401===e.status_code?(t=e.parseHeader("www-authenticate"),n="authorization"):(t=e.parseHeader("proxy-authenticate"),n="proxy-authorization"),!t)return l("".concat(e.status_code," with wrong or missing challenge, cannot authenticate")),void this._eventHandlers.onReceiveResponse(e);if(!this._challenged||!this._staled&&!0===t.stale){if(this._auth||(this._auth=new i({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,t))return void this._eventHandlers.onReceiveResponse(e);this._challenged=!0,this._ua.set("realm",this._auth.get("realm")),this._ua.set("ha1",this._auth.get("ha1")),t.stale&&(this._staled=!0),this._request=this._request.clone(),this._request.cseq+=1,this._request.setHeader("cseq","".concat(this._request.cseq," ").concat(this._method)),this._request.setHeader(n,this._auth.toString()),this._eventHandlers.onAuthenticated(this._request),this.send()}else this._eventHandlers.onReceiveResponse(e)}}}])&&r(t.prototype,n),u&&r(t,u),e}()},function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}var i=n(7),o=n(4);e.exports=function(){function e(t,n,r){if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),!(t&&t instanceof i))throw new TypeError('missing or invalid "uri" parameter');for(var s in this._uri=t,this._parameters={},this.display_name=n,r)Object.prototype.hasOwnProperty.call(r,s)&&this.setParam(s,r[s])}return s(e,null,[{key:"parse",value:function(e){return-1!==(e=o.parse(e,"Name_Addr_Header"))?e:void 0}}]),s(e,[{key:"setParam",value:function(e,t){e&&(this._parameters[e.toLowerCase()]=null==t?null:t.toString())}},{key:"getParam",value:function(e){if(e)return this._parameters[e.toLowerCase()]}},{key:"hasParam",value:function(e){if(e)return!!this._parameters.hasOwnProperty(e.toLowerCase())}},{key:"deleteParam",value:function(e){if(e=e.toLowerCase(),this._parameters.hasOwnProperty(e)){var t=this._parameters[e];return delete this._parameters[e],t}}},{key:"clearParams",value:function(){this._parameters={}}},{key:"clone",value:function(){return new e(this._uri.clone(),this._display_name,JSON.parse(JSON.stringify(this._parameters)))}},{key:"_quote",value:function(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}},{key:"toString",value:function(){var e=this._display_name?'"'.concat(this._quote(this._display_name),'" '):"";for(var t in e+="<".concat(this._uri.toString(),">"),this._parameters)Object.prototype.hasOwnProperty.call(this._parameters,t)&&(e+=";".concat(t),null!==this._parameters[t]&&(e+="=".concat(this._parameters[t])));return e}},{key:"uri",get:function(){return this._uri}},{key:"display_name",get:function(){return this._display_name},set:function(e){this._display_name=0===e?"0":e}}]),e}()},function(e,t,n){"use strict";const r=n(39),s=n(40),i=n(41),o=new i({maxSize:1e5}),l=(e,t)=>{t=Object.assign({deep:!1},t);const{exclude:n}=t;return r(e,(e,t)=>{if(!n||!((e,t)=>e.some(e=>"string"==typeof e?e===t:e.test(t)))(n,e))if(o.has(e))e=o.get(e);else{const t=s(e);e.length<100&&o.set(e,t),e=t}return[e,t]},{deep:t.deep})};e.exports=(e,t)=>Array.isArray(e)?Object.keys(e).map(n=>l(e[n],t)):l(e,t)},function(e){e.exports=JSON.parse('{"_args":[["jssip@3.3.11","/mnt/c/Users/Allan/code/telegenta/client-lib/npm/webclient"]],"_from":"jssip@3.3.11","_id":"jssip@3.3.11","_inBundle":false,"_integrity":"sha512-1fHHX/ISNc2WRoK0k43hUAuRiEsLvwBcEGG5i3P4s7tayKEn/aQWuh1gKEPjuSEWMp/t7k5e657Fsqjh6ynHhw==","_location":"/jssip","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"jssip@3.3.11","name":"jssip","escapedName":"jssip","rawSpec":"3.3.11","saveSpec":null,"fetchSpec":"3.3.11"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/jssip/-/jssip-3.3.11.tgz","_spec":"3.3.11","_where":"/mnt/c/Users/Allan/code/telegenta/client-lib/npm/webclient","author":{"name":"José Luis Millán","email":"jmillan@aliax.net","url":"https://github.com/jmillan"},"bugs":{"url":"https://github.com/versatica/JsSIP/issues"},"contributors":[{"name":"Iñaki Baz Castillo","email":"ibc@aliax.net","url":"https://github.com/ibc"}],"dependencies":{"debug":"^4.1.1","events":"^3.0.0","sdp-transform":"^2.7.0"},"description":"the Javascript SIP library","devDependencies":{"@babel/core":"^7.4.3","@babel/preset-env":"^7.4.3","ansi-colors":"^3.2.4","browserify":"^16.2.3","eslint":"^5.16.0","fancy-log":"^1.3.3","gulp":"^4.0.0","gulp-babel":"^8.0.0","gulp-eslint":"^5.0.0","gulp-expect-file":"^1.0.1","gulp-header":"^2.0.7","gulp-nodeunit-runner":"^0.2.2","gulp-plumber":"^1.2.1","gulp-rename":"^1.4.0","gulp-uglify-es":"^1.0.4","pegjs":"^0.7.0","vinyl-buffer":"^1.0.1","vinyl-source-stream":"^2.0.0"},"homepage":"https://jssip.net","keywords":["sip","websocket","webrtc","node","browser","library"],"license":"MIT","main":"lib-es5/JsSIP.js","name":"jssip","repository":{"type":"git","url":"git+https://github.com/versatica/JsSIP.git"},"scripts":{"lint":"gulp lint","prepublishOnly":"gulp babel","test":"gulp test"},"title":"JsSIP","version":"3.3.11"}')},function(e,t,n){var r=n(21),s=n(22);t.write=s,t.parse=r.parse,t.parseParams=r.parseParams,t.parseFmtpConfig=r.parseFmtpConfig,t.parsePayloads=r.parsePayloads,t.parseRemoteCandidates=r.parseRemoteCandidates,t.parseImageAttributes=r.parseImageAttributes,t.parseSimulcastStreamList=r.parseSimulcastStreamList},function(e,t){var n=e.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(e){return null!=e.address?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(e){return null!=e.subtype?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return null!=e.sessionConfig?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(e){var t="candidate:%s %d %s %d %s %d typ %s";return t+=null!=e.raddr?" raddr %s rport %d":"%v%v",t+=null!=e.tcptype?" tcptype %s":"%v",null!=e.generation&&(t+=" generation %d"),t+=null!=e["network-id"]?" network-id %d":"%v",t+=null!=e["network-cost"]?" network-cost %d":"%v"}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(e){var t="ssrc:%d";return null!=e.attribute&&(t+=" %s",null!=e.value&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(e){return null!=e.maxMessageSize?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(e){return e.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(e){return"imageattr:%s %s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(e){return"simulcast:%s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(e){return"ts-refclk:%s"+(null!=e.clksrcExt?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var t="mediaclk:";return t+=null!=e.id?"id=%s %s":"%v%s",t+=null!=e.mediaClockValue?"=%s":"",t+=null!=e.rateNumerator?" rate=%s":"",t+=null!=e.rateDenominator?"/%s":""}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(n).forEach((function(e){n[e].forEach((function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")}))}))},function(e,t,n){"use strict";var r=500;e.exports={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}},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function i(e){return(i=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function l(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e}function a(e,t){return(a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var u=n(3).EventEmitter,c=n(14),h=n(1),d=n(6),f=n(8),_=n(2),p=n(16),m=n(5),v=n(27),g=n(10),x=n(29),y=n(30),T=n(31),b=n(32),S=n(7),E=n(0)("JsSIP:RTCSession"),C=n(0)("JsSIP:ERROR:RTCSession");C.log=console.warn.bind(console);var A={STATUS_NULL:0,STATUS_INVITE_SENT:1,STATUS_1XX_RECEIVED:2,STATUS_INVITE_RECEIVED:3,STATUS_WAITING_FOR_ANSWER:4,STATUS_ANSWERED:5,STATUS_WAITING_FOR_ACK:6,STATUS_CANCELED:7,STATUS_TERMINATED:8,STATUS_CONFIRMED:9},w=["audio","video"];e.exports=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),E("new"),(n=s(this,i(t).call(this)))._id=null,n._ua=e,n._status=A.STATUS_NULL,n._dialog=null,n._earlyDialogs={},n._contact=null,n._from_tag=null,n._to_tag=null,n._connection=null,n._connectionPromiseQueue=Promise.resolve(),n._request=null,n._is_canceled=!1,n._cancel_reason="",n._is_confirmed=!1,n._late_sdp=!1,n._rtcOfferConstraints=null,n._rtcAnswerConstraints=null,n._localMediaStream=null,n._localMediaStreamLocallyGenerated=!1,n._rtcReady=!0,n._timers={ackTimer:null,expiresTimer:null,invite2xxTimer:null,userNoAnswerTimer:null},n._direction=null,n._local_identity=null,n._remote_identity=null,n._start_time=null,n._end_time=null,n._tones=null,n._audioMuted=!1,n._videoMuted=!1,n._localHold=!1,n._remoteHold=!1,n._sessionTimers={enabled:n._ua.configuration.session_timers,refreshMethod:n._ua.configuration.session_timers_refresh_method,defaultExpires:h.SESSION_EXPIRES,currentExpires:null,running:!1,refresher:!1,timer:null},n._referSubscribers={},n._data={},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&a(e,t)}(t,e),l(t,null,[{key:"C",get:function(){return A}}]),l(t,[{key:"isInProgress",value:function(){switch(this._status){case A.STATUS_NULL:case A.STATUS_INVITE_SENT:case A.STATUS_1XX_RECEIVED:case A.STATUS_INVITE_RECEIVED:case A.STATUS_WAITING_FOR_ANSWER:return!0;default:return!1}}},{key:"isEstablished",value:function(){switch(this._status){case A.STATUS_ANSWERED:case A.STATUS_WAITING_FOR_ACK:case A.STATUS_CONFIRMED:return!0;default:return!1}}},{key:"isEnded",value:function(){switch(this._status){case A.STATUS_CANCELED:case A.STATUS_TERMINATED:return!0;default:return!1}}},{key:"isMuted",value:function(){return{audio:this._audioMuted,video:this._videoMuted}}},{key:"isOnHold",value:function(){return{local:this._localHold,remote:this._remoteHold}}},{key:"connect",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;E("connect()");var r=e,s=t.eventHandlers||{},i=_.cloneArray(t.extraHeaders),o=t.mediaConstraints||{audio:!0,video:!0},l=t.mediaStream||null,a=t.pcConfig||{iceServers:[]},u=t.rtcConstraints||null,c=t.rtcOfferConstraints||null;if(this._rtcOfferConstraints=c,this._rtcAnswerConstraints=t.rtcAnswerConstraints||null,this._data=t.data||this._data,void 0===e)throw new TypeError("Not enough arguments");if(this._status!==A.STATUS_NULL)throw new d.InvalidStateError(this._status);if(!window.RTCPeerConnection)throw new d.NotSupportedError("WebRTC not supported");if(!(e=this._ua.normalizeTarget(e)))throw new TypeError("Invalid target: ".concat(r));for(var f in this._sessionTimers.enabled&&_.isDecimal(t.sessionTimersExpires)&&(t.sessionTimersExpires>=h.MIN_SESSION_EXPIRES?this._sessionTimers.defaultExpires=t.sessionTimersExpires:this._sessionTimers.defaultExpires=h.SESSION_EXPIRES),s)Object.prototype.hasOwnProperty.call(s,f)&&this.on(f,s[f]);this._from_tag=_.newTag();var p=t.anonymous||!1,v={from_tag:this._from_tag};this._contact=this._ua.contact.toString({anonymous:p,outbound:!0}),p&&(v.from_display_name="Anonymous",v.from_uri=new S("sip","anonymous","anonymous.invalid"),i.push("P-Preferred-Identity: ".concat(this._ua.configuration.uri.toString())),i.push("Privacy: id")),i.push("Contact: ".concat(this._contact)),i.push("Content-Type: application/sdp"),this._sessionTimers.enabled&&i.push("Session-Expires: ".concat(this._sessionTimers.defaultExpires)),this._request=new m.InitialOutgoingInviteRequest(e,this._ua,v,i),this._id=this._request.call_id+this._from_tag,this._createRTCConnection(a,u),this._direction="outgoing",this._local_identity=this._request.from,this._remote_identity=this._request.to,n&&n(this),this._newRTCSession("local",this._request),this._sendInitialRequest(o,c,l)}},{key:"init_incoming",value:function(e,t){var n,r=this;E("init_incoming()");var s=e.getHeader("Content-Type");e.body&&"application/sdp"!==s?e.reply(415):(this._status=A.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(),e.hasHeader("expires")&&(n=1e3*e.getHeader("expires")),e.to_tag=_.newTag(),this._createDialog(e,"UAS",!0)?(e.body?this._late_sdp=!1:this._late_sdp=!0,this._status=A.STATUS_WAITING_FOR_ANSWER,this._timers.userNoAnswerTimer=setTimeout((function(){e.reply(408),r._failed("local",null,h.causes.NO_ANSWER)}),this._ua.configuration.no_answer_timeout),n&&(this._timers.expiresTimer=setTimeout((function(){r._status===A.STATUS_WAITING_FOR_ANSWER&&(e.reply(487),r._failed("system",null,h.causes.EXPIRES))}),n)),this._direction="incoming",this._local_identity=e.to,this._remote_identity=e.from,t&&t(this),this._newRTCSession("remote",e),this._status!==A.STATUS_TERMINATED&&(e.reply(180,null,["Contact: ".concat(this._contact)]),this._progress("local",null))):e.reply(500,"Missing Contact header field"))}},{key:"answer",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};E("answer()");var n,r=this._request,s=_.cloneArray(t.extraHeaders),i=t.mediaConstraints||{},o=t.mediaStream||null,l=t.pcConfig||{iceServers:[]},a=t.rtcConstraints||null,u=t.rtcAnswerConstraints||null,c=!1,f=!1,p=!1,m=!1;if(this._rtcAnswerConstraints=u,this._rtcOfferConstraints=t.rtcOfferConstraints||null,this._data=t.data||this._data,"incoming"!==this._direction)throw new d.NotSupportedError('"answer" not supported for outgoing RTCSession');if(this._status!==A.STATUS_WAITING_FOR_ANSWER)throw new d.InvalidStateError(this._status);if(this._sessionTimers.enabled&&_.isDecimal(t.sessionTimersExpires)&&(t.sessionTimersExpires>=h.MIN_SESSION_EXPIRES?this._sessionTimers.defaultExpires=t.sessionTimersExpires:this._sessionTimers.defaultExpires=h.SESSION_EXPIRES),this._status=A.STATUS_ANSWERED,this._createDialog(r,"UAS")){clearTimeout(this._timers.userNoAnswerTimer),s.unshift("Contact: ".concat(this._contact));var v=r.parseSDP();Array.isArray(v.media)||(v.media=[v.media]);var g=!0,x=!1,y=void 0;try{for(var T,b=v.media[Symbol.iterator]();!(g=(T=b.next()).done);g=!0){var S=T.value;"audio"===S.type&&(c=!0,S.direction&&"sendrecv"!==S.direction||(p=!0)),"video"===S.type&&(f=!0,S.direction&&"sendrecv"!==S.direction||(m=!0))}}catch(e){x=!0,y=e}finally{try{g||null==b.return||b.return()}finally{if(x)throw y}}if(o&&!1===i.audio){n=o.getAudioTracks();var w=!0,R=!1,I=void 0;try{for(var O,N=n[Symbol.iterator]();!(w=(O=N.next()).done);w=!0){var k=O.value;o.removeTrack(k)}}catch(e){R=!0,I=e}finally{try{w||null==N.return||N.return()}finally{if(R)throw I}}}if(o&&!1===i.video){n=o.getVideoTracks();var D=!0,U=!1,P=void 0;try{for(var q,M=n[Symbol.iterator]();!(D=(q=M.next()).done);D=!0){var L=q.value;o.removeTrack(L)}}catch(e){U=!0,P=e}finally{try{D||null==M.return||M.return()}finally{if(U)throw P}}}o||void 0!==i.audio||(i.audio=p),o||void 0!==i.video||(i.video=m),o||c||(i.audio=!1),o||f||(i.video=!1),this._createRTCConnection(l,a),Promise.resolve().then((function(){return o||(i.audio||i.video?(e._localMediaStreamLocallyGenerated=!0,navigator.mediaDevices.getUserMedia(i).catch((function(t){if(e._status===A.STATUS_TERMINATED)throw new Error("terminated");throw r.reply(480),e._failed("local",null,h.causes.USER_DENIED_MEDIA_ACCESS),C('emit "getusermediafailed" [error:%o]',t),e.emit("getusermediafailed",t),new Error("getUserMedia() failed")}))):void 0)})).then((function(t){if(e._status===A.STATUS_TERMINATED)throw new Error("terminated");e._localMediaStream=t,t&&t.getTracks().forEach((function(n){e._connection.addTrack(n,t)}))})).then((function(){if(!e._late_sdp){var t={originator:"remote",type:"offer",sdp:r.body};E('emit "sdp"'),e.emit("sdp",t);var n=new RTCSessionDescription({type:"offer",sdp:t.sdp});return e._connectionPromiseQueue=e._connectionPromiseQueue.then((function(){return e._connection.setRemoteDescription(n)})).catch((function(t){throw r.reply(488),e._failed("system",null,h.causes.WEBRTC_ERROR),C('emit "peerconnection:setremotedescriptionfailed" [error:%o]',t),e.emit("peerconnection:setremotedescriptionfailed",t),new Error("peerconnection.setRemoteDescription() failed")})),e._connectionPromiseQueue}})).then((function(){if(e._status===A.STATUS_TERMINATED)throw new Error("terminated");return e._connecting(r),e._late_sdp?e._createLocalDescription("offer",e._rtcOfferConstraints).catch((function(){throw r.reply(500),new Error("_createLocalDescription() failed")})):e._createLocalDescription("answer",u).catch((function(){throw r.reply(500),new Error("_createLocalDescription() failed")}))})).then((function(t){if(e._status===A.STATUS_TERMINATED)throw new Error("terminated");e._handleSessionTimersInIncomingRequest(r,s),r.reply(200,null,s,t,(function(){e._status=A.STATUS_WAITING_FOR_ACK,e._setInvite2xxTimer(r,t),e._setACKTimer(),e._accepted("local")}),(function(){e._failed("system",null,h.causes.CONNECTION_ERROR)}))})).catch((function(t){e._status!==A.STATUS_TERMINATED&&C(t)}))}else r.reply(500,"Error creating dialog")}},{key:"terminate",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};E("terminate()");var n,r=t.cause||h.causes.BYE,s=_.cloneArray(t.extraHeaders),i=t.body,o=t.status_code,l=t.reason_phrase;if(this._status===A.STATUS_TERMINATED)throw new d.InvalidStateError(this._status);switch(this._status){case A.STATUS_NULL:case A.STATUS_INVITE_SENT:case A.STATUS_1XX_RECEIVED:if(E("canceling session"),o&&(o<200||o>=700))throw new TypeError("Invalid status_code: ".concat(o));o&&(l=l||h.REASON_PHRASE[o]||"",n="SIP ;cause=".concat(o,' ;text="').concat(l,'"')),this._status===A.STATUS_NULL||this._status===A.STATUS_INVITE_SENT?(this._is_canceled=!0,this._cancel_reason=n):this._status===A.STATUS_1XX_RECEIVED&&this._request.cancel(n),this._status=A.STATUS_CANCELED,this._failed("local",null,h.causes.CANCELED);break;case A.STATUS_WAITING_FOR_ANSWER:case A.STATUS_ANSWERED:if(E("rejecting session"),(o=o||480)<300||o>=700)throw new TypeError("Invalid status_code: ".concat(o));this._request.reply(o,l,s,i),this._failed("local",null,h.causes.REJECTED);break;case A.STATUS_WAITING_FOR_ACK:case A.STATUS_CONFIRMED:if(E("terminating session"),l=t.reason_phrase||h.REASON_PHRASE[o]||"",o&&(o<200||o>=700))throw new TypeError("Invalid status_code: ".concat(o));if(o&&s.push("Reason: SIP ;cause=".concat(o,'; text="').concat(l,'"')),this._status===A.STATUS_WAITING_FOR_ACK&&"incoming"===this._direction&&this._request.server_transaction.state!==f.C.STATUS_TERMINATED){var a=this._dialog;this.receiveRequest=function(t){t.method===h.ACK&&(e.sendRequest(h.BYE,{extraHeaders:s,body:i}),a.terminate())},this._request.server_transaction.on("stateChanged",(function(){e._request.server_transaction.state===f.C.STATUS_TERMINATED&&(e.sendRequest(h.BYE,{extraHeaders:s,body:i}),a.terminate())})),this._ended("local",null,r),this._dialog=a,this._ua.newDialog(a)}else this.sendRequest(h.BYE,{extraHeaders:s,body:i}),this._ended("local",null,r)}}},{key:"sendDTMF",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};E("sendDTMF() | tones: %s",e);var n=0,r=t.duration||null,s=t.interToneGap||null;if(void 0===e)throw new TypeError("Not enough arguments");if(this._status!==A.STATUS_CONFIRMED&&this._status!==A.STATUS_WAITING_FOR_ACK)throw new d.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: ".concat(e));if(r&&!_.isDecimal(r))throw new TypeError("Invalid tone duration: ".concat(r));if(r?r<x.C.MIN_DURATION?(E('"duration" value is lower than the minimum allowed, setting it to '.concat(x.C.MIN_DURATION," milliseconds")),r=x.C.MIN_DURATION):r>x.C.MAX_DURATION?(E('"duration" value is greater than the maximum allowed, setting it to '.concat(x.C.MAX_DURATION," milliseconds")),r=x.C.MAX_DURATION):r=Math.abs(r):r=x.C.DEFAULT_DURATION,t.duration=r,s&&!_.isDecimal(s))throw new TypeError("Invalid interToneGap: ".concat(s));function i(){var e,o=this;if(this._status===A.STATUS_TERMINATED||!this._tones||n>=this._tones.length)this._tones=null;else{var l=this._tones[n];if(n+=1,","===l)e=2e3;else{var a=new x(this);t.eventHandlers={onFailed:function(){o._tones=null}},a.send(l,t),e=r+s}setTimeout(i.bind(this),e)}}s?s<x.C.MIN_INTER_TONE_GAP?(E('"interToneGap" value is lower than the minimum allowed, setting it to '.concat(x.C.MIN_INTER_TONE_GAP," milliseconds")),s=x.C.MIN_INTER_TONE_GAP):s=Math.abs(s):s=x.C.DEFAULT_INTER_TONE_GAP,this._tones?this._tones+=e:(this._tones=e,i.call(this))}},{key:"sendInfo",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(E("sendInfo()"),this._status!==A.STATUS_CONFIRMED&&this._status!==A.STATUS_WAITING_FOR_ACK)throw new d.InvalidStateError(this._status);var r=new y(this);r.send(e,t,n)}},{key:"mute",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{audio:!0,video:!1};E("mute()");var t=!1,n=!1;!1===this._audioMuted&&e.audio&&(t=!0,this._audioMuted=!0,this._toggleMuteAudio(!0)),!1===this._videoMuted&&e.video&&(n=!0,this._videoMuted=!0,this._toggleMuteVideo(!0)),!0!==t&&!0!==n||this._onmute({audio:t,video:n})}},{key:"unmute",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{audio:!0,video:!0};E("unmute()");var t=!1,n=!1;!0===this._audioMuted&&e.audio&&(t=!0,this._audioMuted=!1,!1===this._localHold&&this._toggleMuteAudio(!1)),!0===this._videoMuted&&e.video&&(n=!0,this._videoMuted=!1,!1===this._localHold&&this._toggleMuteVideo(!1)),!0!==t&&!0!==n||this._onunmute({audio:t,video:n})}},{key:"hold",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(E("hold()"),this._status!==A.STATUS_WAITING_FOR_ACK&&this._status!==A.STATUS_CONFIRMED)return!1;if(!0===this._localHold)return!1;if(!this._isReadyToReOffer())return!1;this._localHold=!0,this._onhold("local");var r={succeeded:function(){n&&n()},failed:function(){e.terminate({cause:h.causes.WEBRTC_ERROR,status_code:500,reason_phrase:"Hold Failed"})}};return t.useUpdate?this._sendUpdate({sdpOffer:!0,eventHandlers:r,extraHeaders:t.extraHeaders}):this._sendReinvite({eventHandlers:r,extraHeaders:t.extraHeaders}),!0}},{key:"unhold",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(E("unhold()"),this._status!==A.STATUS_WAITING_FOR_ACK&&this._status!==A.STATUS_CONFIRMED)return!1;if(!1===this._localHold)return!1;if(!this._isReadyToReOffer())return!1;this._localHold=!1,this._onunhold("local");var r={succeeded:function(){n&&n()},failed:function(){e.terminate({cause:h.causes.WEBRTC_ERROR,status_code:500,reason_phrase:"Unhold Failed"})}};return t.useUpdate?this._sendUpdate({sdpOffer:!0,eventHandlers:r,extraHeaders:t.extraHeaders}):this._sendReinvite({eventHandlers:r,extraHeaders:t.extraHeaders}),!0}},{key:"renegotiate",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;E("renegotiate()");var r=t.rtcOfferConstraints||null;if(this._status!==A.STATUS_WAITING_FOR_ACK&&this._status!==A.STATUS_CONFIRMED)return!1;if(!this._isReadyToReOffer())return!1;var s={succeeded:function(){n&&n()},failed:function(){e.terminate({cause:h.causes.WEBRTC_ERROR,status_code:500,reason_phrase:"Media Renegotiation Failed"})}};return this._setLocalMediaStatus(),t.useUpdate?this._sendUpdate({sdpOffer:!0,eventHandlers:s,rtcOfferConstraints:r,extraHeaders:t.extraHeaders}):this._sendReinvite({eventHandlers:s,rtcOfferConstraints:r,extraHeaders:t.extraHeaders}),!0}},{key:"refer",value:function(e,t){var n=this;E("refer()");var r=e;if(this._status!==A.STATUS_WAITING_FOR_ACK&&this._status!==A.STATUS_CONFIRMED)return!1;if(!(e=this._ua.normalizeTarget(e)))throw new TypeError("Invalid target: ".concat(r));var s=new b(this);s.sendRefer(e,t);var i=s.id;return this._referSubscribers[i]=s,s.on("requestFailed",(function(){delete n._referSubscribers[i]})),s.on("accepted",(function(){delete n._referSubscribers[i]})),s.on("failed",(function(){delete n._referSubscribers[i]})),s}},{key:"sendRequest",value:function(e,t){return E("sendRequest()"),this._dialog.sendRequest(e,t)}},{key:"receiveRequest",value:function(e){var t=this;if(E("receiveRequest()"),e.method===h.CANCEL)this._status!==A.STATUS_WAITING_FOR_ANSWER&&this._status!==A.STATUS_ANSWERED||(this._status=A.STATUS_CANCELED,this._request.reply(487),this._failed("remote",e,h.causes.CANCELED));else switch(e.method){case h.ACK:if(this._status!==A.STATUS_WAITING_FOR_ACK)return;if(this._status=A.STATUS_CONFIRMED,clearTimeout(this._timers.ackTimer),clearTimeout(this._timers.invite2xxTimer),this._late_sdp){if(!e.body){this.terminate({cause:h.causes.MISSING_SDP,status_code:400});break}var n={originator:"remote",type:"answer",sdp:e.body};E('emit "sdp"'),this.emit("sdp",n);var r=new RTCSessionDescription({type:"answer",sdp:n.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then((function(){return t._connection.setRemoteDescription(r)})).then((function(){t._is_confirmed||t._confirmed("remote",e)})).catch((function(e){t.terminate({cause:h.causes.BAD_MEDIA_DESCRIPTION,status_code:488}),C('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),t.emit("peerconnection:setremotedescriptionfailed",e)}))}else this._is_confirmed||this._confirmed("remote",e);break;case h.BYE:this._status===A.STATUS_CONFIRMED||this._status===A.STATUS_WAITING_FOR_ACK?(e.reply(200),this._ended("remote",e,h.causes.BYE)):this._status===A.STATUS_INVITE_RECEIVED?(e.reply(200),this._request.reply(487,"BYE Received"),this._ended("remote",e,h.causes.BYE)):e.reply(403,"Wrong Status");break;case h.INVITE:this._status===A.STATUS_CONFIRMED?e.hasHeader("replaces")?this._receiveReplaces(e):this._receiveReinvite(e):e.reply(403,"Wrong Status");break;case h.INFO:if(this._status===A.STATUS_1XX_RECEIVED||this._status===A.STATUS_WAITING_FOR_ANSWER||this._status===A.STATUS_ANSWERED||this._status===A.STATUS_WAITING_FOR_ACK||this._status===A.STATUS_CONFIRMED){var s=e.getHeader("content-type");s&&s.match(/^application\/dtmf-relay/i)?new x(this).init_incoming(e):void 0!==s?new y(this).init_incoming(e):e.reply(415)}else e.reply(403,"Wrong Status");break;case h.UPDATE:this._status===A.STATUS_CONFIRMED?this._receiveUpdate(e):e.reply(403,"Wrong Status");break;case h.REFER:this._status===A.STATUS_CONFIRMED?this._receiveRefer(e):e.reply(403,"Wrong Status");break;case h.NOTIFY:this._status===A.STATUS_CONFIRMED?this._receiveNotify(e):e.reply(403,"Wrong Status");break;default:e.reply(501)}}},{key:"onTransportError",value:function(){C("onTransportError()"),this._status!==A.STATUS_TERMINATED&&this.terminate({status_code:500,reason_phrase:h.causes.CONNECTION_ERROR,cause:h.causes.CONNECTION_ERROR})}},{key:"onRequestTimeout",value:function(){C("onRequestTimeout()"),this._status!==A.STATUS_TERMINATED&&this.terminate({status_code:408,reason_phrase:h.causes.REQUEST_TIMEOUT,cause:h.causes.REQUEST_TIMEOUT})}},{key:"onDialogError",value:function(){C("onDialogError()"),this._status!==A.STATUS_TERMINATED&&this.terminate({status_code:500,reason_phrase:h.causes.DIALOG_ERROR,cause:h.causes.DIALOG_ERROR})}},{key:"newDTMF",value:function(e){E("newDTMF()"),this.emit("newDTMF",e)}},{key:"newInfo",value:function(e){E("newInfo()"),this.emit("newInfo",e)}},{key:"_isReadyToReOffer",value:function(){return this._rtcReady?this._dialog?!0!==this._dialog.uac_pending_reply&&!0!==this._dialog.uas_pending_reply||(E("_isReadyToReOffer() | there is another INVITE/UPDATE transaction in progress"),!1):(E("_isReadyToReOffer() | session not established yet"),!1):(E("_isReadyToReOffer() | internal WebRTC status not ready"),!1)}},{key:"_close",value:function(){if(E("close()"),this._status!==A.STATUS_TERMINATED){if(this._status=A.STATUS_TERMINATED,this._connection)try{this._connection.close()}catch(e){C("close() | error closing the RTCPeerConnection: %o",e)}for(var e in this._localMediaStream&&this._localMediaStreamLocallyGenerated&&(E("close() | closing local MediaStream"),_.closeMediaStream(this._localMediaStream)),this._timers)Object.prototype.hasOwnProperty.call(this._timers,e)&&clearTimeout(this._timers[e]);for(var t in clearTimeout(this._sessionTimers.timer),this._dialog&&(this._dialog.terminate(),delete this._dialog),this._earlyDialogs)Object.prototype.hasOwnProperty.call(this._earlyDialogs,t)&&(this._earlyDialogs[t].terminate(),delete this._earlyDialogs[t]);for(var n in this._referSubscribers)Object.prototype.hasOwnProperty.call(this._referSubscribers,n)&&delete this._referSubscribers[n];this._ua.destroyRTCSession(this)}}},{key:"_setInvite2xxTimer",value:function(e,t){var n=p.T1;this._timers.invite2xxTimer=setTimeout(function r(){this._status===A.STATUS_WAITING_FOR_ACK&&(e.reply(200,null,["Contact: ".concat(this._contact)],t),n<p.T2&&(n*=2)>p.T2&&(n=p.T2),this._timers.invite2xxTimer=setTimeout(r.bind(this),n))}.bind(this),n)}},{key:"_setACKTimer",value:function(){var e=this;this._timers.ackTimer=setTimeout((function(){e._status===A.STATUS_WAITING_FOR_ACK&&(E("no ACK received, terminating the session"),clearTimeout(e._timers.invite2xxTimer),e.sendRequest(h.BYE),e._ended("remote",null,h.causes.NO_ACK))}),p.TIMER_H)}},{key:"_createRTCConnection",value:function(e,t){var n=this;this._connection=new RTCPeerConnection(e,t),this._connection.addEventListener("iceconnectionstatechange",(function(){"failed"===n._connection.iceConnectionState&&n.terminate({cause:h.causes.RTP_TIMEOUT,status_code:408,reason_phrase:h.causes.RTP_TIMEOUT})})),E('emit "peerconnection"'),this.emit("peerconnection",{peerconnection:this._connection})}},{key:"_createLocalDescription",value:function(e,t){var n=this;if(E("createLocalDescription()"),"offer"!==e&&"answer"!==e)throw new Error('createLocalDescription() | invalid type "'.concat(e,'"'));var r=this._connection;return this._rtcReady=!1,Promise.resolve().then((function(){return"offer"===e?r.createOffer(t).catch((function(e){return C('emit "peerconnection:createofferfailed" [error:%o]',e),n.emit("peerconnection:createofferfailed",e),Promise.reject(e)})):r.createAnswer(t).catch((function(e){return C('emit "peerconnection:createanswerfailed" [error:%o]',e),n.emit("peerconnection:createanswerfailed",e),Promise.reject(e)}))})).then((function(e){return r.setLocalDescription(e).catch((function(e){return n._rtcReady=!0,C('emit "peerconnection:setlocaldescriptionfailed" [error:%o]',e),n.emit("peerconnection:setlocaldescriptionfailed",e),Promise.reject(e)}))})).then((function(){if("complete"===r.iceGatheringState){n._rtcReady=!0;var t={originator:"local",type:e,sdp:r.localDescription.sdp};return E('emit "sdp"'),n.emit("sdp",t),Promise.resolve(t.sdp)}return new Promise((function(t){var s,i,o=!1,l=function(){r.removeEventListener("icecandidate",s),r.removeEventListener("icegatheringstatechange",i),o=!0,n._rtcReady=!0;var l={originator:"local",type:e,sdp:r.localDescription.sdp};E('emit "sdp"'),n.emit("sdp",l),t(l.sdp)};r.addEventListener("icecandidate",s=function(e){var t=e.candidate;t?n.emit("icecandidate",{candidate:t,ready:l}):o||l()}),r.addEventListener("icegatheringstatechange",i=function(){"complete"!==r.iceGatheringState||o||l()})}))}))}},{key:"_createDialog",value:function(e,t,n){var r="UAS"===t?e.to_tag:e.from_tag,s="UAS"===t?e.from_tag:e.to_tag,i=e.call_id+r+s,o=this._earlyDialogs[i];if(n)return!!o||((o=new v(this,e,t,v.C.STATUS_EARLY)).error?(E(o.error),this._failed("remote",e,h.causes.INTERNAL_ERROR),!1):(this._earlyDialogs[i]=o,!0));if(this._from_tag=e.from_tag,this._to_tag=e.to_tag,o)return o.update(e,t),this._dialog=o,delete this._earlyDialogs[i],!0;var l=new v(this,e,t);return l.error?(E(l.error),this._failed("remote",e,h.causes.INTERNAL_ERROR),!1):(this._dialog=l,!0)}},{key:"_receiveReinvite",value:function(e){var t=this;E("receiveReinvite()");var n=e.getHeader("Content-Type"),r={request:e,callback:void 0,reject:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};s=!0;var n=t.status_code||403,r=t.reason_phrase||"",i=_.cloneArray(t.extraHeaders);if(this._status!==A.STATUS_CONFIRMED)return!1;if(n<300||n>=700)throw new TypeError("Invalid status_code: ".concat(n));e.reply(n,r,i)}.bind(this)},s=!1;if(this.emit("reinvite",r),!s){if(this._late_sdp=!1,!e.body)return this._late_sdp=!0,void(this._connectionPromiseQueue=this._connectionPromiseQueue.then((function(){return t._createLocalDescription("offer",t._rtcOfferConstraints)})).then((function(e){i.call(t,e)})).catch((function(){e.reply(500)})));if("application/sdp"!==n)return E("invalid Content-Type"),void e.reply(415);this._processInDialogSdpOffer(e).then((function(e){t._status!==A.STATUS_TERMINATED&&i.call(t,e)})).catch((function(e){C(e)}))}function i(t){var n=this,s=["Contact: ".concat(this._contact)];this._handleSessionTimersInIncomingRequest(e,s),this._late_sdp&&(t=this._mangleOffer(t)),e.reply(200,null,s,t,(function(){n._status=A.STATUS_WAITING_FOR_ACK,n._setInvite2xxTimer(e,t),n._setACKTimer()})),"function"==typeof r.callback&&r.callback()}}},{key:"_receiveUpdate",value:function(e){var t=this;E("receiveUpdate()");var n=e.getHeader("Content-Type"),r={request:e,callback:void 0,reject:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};s=!0;var n=t.status_code||403,r=t.reason_phrase||"",i=_.cloneArray(t.extraHeaders);if(this._status!==A.STATUS_CONFIRMED)return!1;if(n<300||n>=700)throw new TypeError("Invalid status_code: ".concat(n));e.reply(n,r,i)}.bind(this)},s=!1;if(this.emit("update",r),!s)if(e.body){if("application/sdp"!==n)return E("invalid Content-Type"),void e.reply(415);this._processInDialogSdpOffer(e).then((function(e){t._status!==A.STATUS_TERMINATED&&i.call(t,e)})).catch((function(e){C(e)}))}else i.call(this,null);function i(t){var n=["Contact: ".concat(this._contact)];this._handleSessionTimersInIncomingRequest(e,n),e.reply(200,null,n,t),"function"==typeof r.callback&&r.callback()}}},{key:"_processInDialogSdpOffer",value:function(e){var t=this;E("_processInDialogSdpOffer()");var n=e.parseSDP(),r=!1,s=!0,i=!1,o=void 0;try{for(var l,a=n.media[Symbol.iterator]();!(s=(l=a.next()).done);s=!0){var u=l.value;if(-1!==w.indexOf(u.type)){var c=u.direction||n.direction||"sendrecv";if("sendonly"!==c&&"inactive"!==c){r=!1;break}r=!0}}}catch(e){i=!0,o=e}finally{try{s||null==a.return||a.return()}finally{if(i)throw o}}var h={originator:"remote",type:"offer",sdp:e.body};E('emit "sdp"'),this.emit("sdp",h);var d=new RTCSessionDescription({type:"offer",sdp:h.sdp});return this._connectionPromiseQueue=this._connectionPromiseQueue.then((function(){if(t._status===A.STATUS_TERMINATED)throw new Error("terminated");return t._connection.setRemoteDescription(d).catch((function(n){throw e.reply(488),C('emit "peerconnection:setremotedescriptionfailed" [error:%o]',n),t.emit("peerconnection:setremotedescriptionfailed",n),new Error("peerconnection.setRemoteDescription() failed")}))})).then((function(){if(t._status===A.STATUS_TERMINATED)throw new Error("terminated");!0===t._remoteHold&&!1===r?(t._remoteHold=!1,t._onunhold("remote")):!1===t._remoteHold&&!0===r&&(t._remoteHold=!0,t._onhold("remote"))})).then((function(){if(t._status===A.STATUS_TERMINATED)throw new Error("terminated");return t._createLocalDescription("answer",t._rtcAnswerConstraints).catch((function(){throw e.reply(500),new Error("_createLocalDescription() failed")}))})),this._connectionPromiseQueue}},{key:"_receiveRefer",value:function(e){var n=this;if(E("receiveRefer()"),!e.refer_to)return E("no Refer-To header field present in REFER"),void e.reply(400);if(e.refer_to.uri.scheme!==h.SIP)return E("Refer-To header field points to a non-SIP URI scheme"),void e.reply(416);e.reply(202);var r=new T(this,e.cseq);function s(n){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(n="function"==typeof n?n:null,this._status!==A.STATUS_WAITING_FOR_ACK&&this._status!==A.STATUS_CONFIRMED)return!1;var i=new t(this._ua);if(i.on("progress",(function(e){var t=e.response;r.notify(t.status_code,t.reason_phrase)})),i.on("accepted",(function(e){var t=e.response;r.notify(t.status_code,t.reason_phrase)})),i.on("_failed",(function(e){var t=e.message,n=e.cause;t?r.notify(t.status_code,t.reason_phrase):r.notify(487,n)})),e.refer_to.uri.hasHeader("replaces")){var o=decodeURIComponent(e.refer_to.uri.getHeader("replaces"));s.extraHeaders=_.cloneArray(s.extraHeaders),s.extraHeaders.push("Replaces: ".concat(o))}i.connect(e.refer_to.uri.toAor(),s,n)}function i(){r.notify(603)}E('emit "refer"'),this.emit("refer",{request:e,accept:function(e,t){s.call(n,e,t)},reject:function(){i.call(n)}})}},{key:"_receiveNotify",value:function(e){switch(E("receiveNotify()"),e.event||e.reply(400),e.event.event){case"refer":var t,n;if(e.event.params&&e.event.params.id)t=e.event.params.id,n=this._referSubscribers[t];else{if(1!==Object.keys(this._referSubscribers).length)return void e.reply(400,"Missing event id parameter");n=this._referSubscribers[Object.keys(this._referSubscribers)[0]]}if(!n)return void e.reply(481,"Subscription does not exist");n.receiveNotify(e),e.reply(200);break;default:e.reply(489)}}},{key:"_receiveReplaces",value:function(e){var n=this;function r(n){var r=this;if(this._status!==A.STATUS_WAITING_FOR_ACK&&this._status!==A.STATUS_CONFIRMED)return!1;var s=new t(this._ua);s.on("confirmed",(function(){r.terminate()})),s.init_incoming(e,n)}function s(){E("Replaced INVITE rejected by the user"),e.reply(486)}E("receiveReplaces()"),this.emit("replaces",{request:e,accept:function(e){r.call(n,e)},reject:function(){s.call(n)}})}},{key:"_sendInitialRequest",value:function(e,t,n){var r=this,s=new g(this._ua,this._request,{onRequestTimeout:function(){r.onRequestTimeout()},onTransportError:function(){r.onTransportError()},onAuthenticated:function(e){r._request=e},onReceiveResponse:function(e){r._receiveInviteResponse(e)}});Promise.resolve().then((function(){return n||(e.audio||e.video?(r._localMediaStreamLocallyGenerated=!0,navigator.mediaDevices.getUserMedia(e).catch((function(e){if(r._status===A.STATUS_TERMINATED)throw new Error("terminated");throw r._failed("local",null,h.causes.USER_DENIED_MEDIA_ACCESS),C('emit "getusermediafailed" [error:%o]',e),r.emit("getusermediafailed",e),e}))):void 0)})).then((function(e){if(r._status===A.STATUS_TERMINATED)throw new Error("terminated");return r._localMediaStream=e,e&&e.getTracks().forEach((function(t){r._connection.addTrack(t,e)})),r._connecting(r._request),r._createLocalDescription("offer",t).catch((function(e){throw r._failed("local",null,h.causes.WEBRTC_ERROR),e}))})).then((function(e){if(r._is_canceled||r._status===A.STATUS_TERMINATED)throw new Error("terminated");r._request.body=e,r._status=A.STATUS_INVITE_SENT,E('emit "sending" [request:%o]',r._request),r.emit("sending",{request:r._request}),s.send()})).catch((function(e){r._status!==A.STATUS_TERMINATED&&C(e)}))}},{key:"_receiveInviteResponse",value:function(e){var t=this;if(E("receiveInviteResponse()"),this._dialog&&e.status_code>=200&&e.status_code<=299){if(this._dialog.id.call_id===e.call_id&&this._dialog.id.local_tag===e.from_tag&&this._dialog.id.remote_tag===e.to_tag)return void this.sendRequest(h.ACK);var n=new v(this,e,"UAC");return void 0!==n.error?void E(n.error):(this.sendRequest(h.ACK),void this.sendRequest(h.BYE))}if(this._is_canceled)e.status_code>=100&&e.status_code<200?this._request.cancel(this._cancel_reason):e.status_code>=200&&e.status_code<299&&this._acceptAndTerminate(e);else if(this._status===A.STATUS_INVITE_SENT||this._status===A.STATUS_1XX_RECEIVED)switch(!0){case/^100$/.test(e.status_code):this._status=A.STATUS_1XX_RECEIVED;break;case/^1[0-9]{2}$/.test(e.status_code):if(!e.to_tag){E("1xx response received without to tag");break}if(e.hasHeader("contact")&&!this._createDialog(e,"UAC",!0))break;if(this._status=A.STATUS_1XX_RECEIVED,this._progress("remote",e),!e.body)break;var r={originator:"remote",type:"answer",sdp:e.body};E('emit "sdp"'),this.emit("sdp",r);var s=new RTCSessionDescription({type:"answer",sdp:r.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then((function(){return t._connection.setRemoteDescription(s)})).catch((function(e){C('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),t.emit("peerconnection:setremotedescriptionfailed",e)}));break;case/^2[0-9]{2}$/.test(e.status_code):if(this._status=A.STATUS_CONFIRMED,!e.body){this._acceptAndTerminate(e,400,h.causes.MISSING_SDP),this._failed("remote",e,h.causes.BAD_MEDIA_DESCRIPTION);break}if(!this._createDialog(e,"UAC"))break;var i={originator:"remote",type:"answer",sdp:e.body};E('emit "sdp"'),this.emit("sdp",i);var o=new RTCSessionDescription({type:"answer",sdp:i.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then((function(){if("stable"===t._connection.signalingState)return t._connection.createOffer(t._rtcOfferConstraints).then((function(e){return t._connection.setLocalDescription(e)})).catch((function(n){t._acceptAndTerminate(e,500,n.toString()),t._failed("local",e,h.causes.WEBRTC_ERROR)}))})).then((function(){t._connection.setRemoteDescription(o).then((function(){t._handleSessionTimersInIncomingResponse(e),t._accepted("remote",e),t.sendRequest(h.ACK),t._confirmed("local",null)})).catch((function(n){t._acceptAndTerminate(e,488,"Not Acceptable Here"),t._failed("remote",e,h.causes.BAD_MEDIA_DESCRIPTION),C('emit "peerconnection:setremotedescriptionfailed" [error:%o]',n),t.emit("peerconnection:setremotedescriptionfailed",n)}))}));break;default:var l=_.sipErrorCause(e.status_code);this._failed("remote",e,l)}}},{key:"_sendReinvite",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};E("sendReinvite()");var n=_.cloneArray(t.extraHeaders),r=t.eventHandlers||{},s=t.rtcOfferConstraints||this._rtcOfferConstraints||null,i=!1;function o(e){var t=this;if(this._status!==A.STATUS_TERMINATED&&(this.sendRequest(h.ACK),!i))if(this._handleSessionTimersInIncomingResponse(e),e.body)if("application/sdp"===e.getHeader("Content-Type")){var n={originator:"remote",type:"answer",sdp:e.body};E('emit "sdp"'),this.emit("sdp",n);var s=new RTCSessionDescription({type:"answer",sdp:n.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then((function(){return t._connection.setRemoteDescription(s)})).then((function(){r.succeeded&&r.succeeded(e)})).catch((function(e){l.call(t),C('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),t.emit("peerconnection:setremotedescriptionfailed",e)}))}else l.call(this);else l.call(this)}function l(e){r.failed&&r.failed(e)}n.push("Contact: ".concat(this._contact)),n.push("Content-Type: application/sdp"),this._sessionTimers.running&&n.push("Session-Expires: ".concat(this._sessionTimers.currentExpires,";refresher=").concat(this._sessionTimers.refresher?"uac":"uas")),this._connectionPromiseQueue=this._connectionPromiseQueue.then((function(){return e._createLocalDescription("offer",s)})).then((function(t){var r={originator:"local",type:"offer",sdp:t=e._mangleOffer(t)};E('emit "sdp"'),e.emit("sdp",r),e.sendRequest(h.INVITE,{extraHeaders:n,body:t,eventHandlers:{onSuccessResponse:function(t){o.call(e,t),i=!0},onErrorResponse:function(t){l.call(e,t)},onTransportError:function(){e.onTransportError()},onRequestTimeout:function(){e.onRequestTimeout()},onDialogError:function(){e.onDialogError()}}})})).catch((function(){l()}))}},{key:"_sendUpdate",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};E("sendUpdate()");var n=_.cloneArray(t.extraHeaders),r=t.eventHandlers||{},s=t.rtcOfferConstraints||this._rtcOfferConstraints||null,i=t.sdpOffer||!1,o=!1;function l(e){var t=this;if(this._status!==A.STATUS_TERMINATED&&!o)if(this._handleSessionTimersInIncomingResponse(e),i){if(!e.body)return void a.call(this);if("application/sdp"!==e.getHeader("Content-Type"))return void a.call(this);var n={originator:"remote",type:"answer",sdp:e.body};E('emit "sdp"'),this.emit("sdp",n);var s=new RTCSessionDescription({type:"answer",sdp:n.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then((function(){return t._connection.setRemoteDescription(s)})).then((function(){r.succeeded&&r.succeeded(e)})).catch((function(e){a.call(t),C('emit "peerconnection:setremotedescriptionfailed" [error:%o]',e),t.emit("peerconnection:setremotedescriptionfailed",e)}))}else r.succeeded&&r.succeeded(e)}function a(e){r.failed&&r.failed(e)}n.push("Contact: ".concat(this._contact)),this._sessionTimers.running&&n.push("Session-Expires: ".concat(this._sessionTimers.currentExpires,";refresher=").concat(this._sessionTimers.refresher?"uac":"uas")),i?(n.push("Content-Type: application/sdp"),this._connectionPromiseQueue=this._connectionPromiseQueue.then((function(){return e._createLocalDescription("offer",s)})).then((function(t){var r={originator:"local",type:"offer",sdp:t=e._mangleOffer(t)};E('emit "sdp"'),e.emit("sdp",r),e.sendRequest(h.UPDATE,{extraHeaders:n,body:t,eventHandlers:{onSuccessResponse:function(t){l.call(e,t),o=!0},onErrorResponse:function(t){a.call(e,t)},onTransportError:function(){e.onTransportError()},onRequestTimeout:function(){e.onRequestTimeout()},onDialogError:function(){e.onDialogError()}}})})).catch((function(){a.call(e)}))):this.sendRequest(h.UPDATE,{extraHeaders:n,eventHandlers:{onSuccessResponse:function(t){l.call(e,t)},onErrorResponse:function(t){a.call(e,t)},onTransportError:function(){e.onTransportError()},onRequestTimeout:function(){e.onRequestTimeout()},onDialogError:function(){e.onDialogError()}}})}},{key:"_acceptAndTerminate",value:function(e,t,n){E("acceptAndTerminate()");var r=[];t&&(n=n||h.REASON_PHRASE[t]||"",r.push("Reason: SIP ;cause=".concat(t,'; text="').concat(n,'"'))),(this._dialog||this._createDialog(e,"UAC"))&&(this.sendRequest(h.ACK),this.sendRequest(h.BYE,{extraHeaders:r})),this._status=A.STATUS_TERMINATED}},{key:"_mangleOffer",value:function(e){if(!this._localHold&&!this._remoteHold)return e;if(e=c.parse(e),this._localHold&&!this._remoteHold){E("mangleOffer() | me on hold, mangling offer");var t=!0,n=!1,r=void 0;try{for(var s,i=e.media[Symbol.iterator]();!(t=(s=i.next()).done);t=!0){var o=s.value;-1!==w.indexOf(o.type)&&(o.direction?"sendrecv"===o.direction?o.direction="sendonly":"recvonly"===o.direction&&(o.direction="inactive"):o.direction="sendonly")}}catch(e){n=!0,r=e}finally{try{t||null==i.return||i.return()}finally{if(n)throw r}}}else if(this._localHold&&this._remoteHold){E("mangleOffer() | both on hold, mangling offer");var l=!0,a=!1,u=void 0;try{for(var h,d=e.media[Symbol.iterator]();!(l=(h=d.next()).done);l=!0){var f=h.value;-1!==w.indexOf(f.type)&&(f.direction="inactive")}}catch(e){a=!0,u=e}finally{try{l||null==d.return||d.return()}finally{if(a)throw u}}}else if(this._remoteHold){E("mangleOffer() | remote on hold, mangling offer");var _=!0,p=!1,m=void 0;try{for(var v,g=e.media[Symbol.iterator]();!(_=(v=g.next()).done);_=!0){var x=v.value;-1!==w.indexOf(x.type)&&(x.direction?"sendrecv"===x.direction?x.direction="recvonly":"recvonly"===x.direction&&(x.direction="inactive"):x.direction="recvonly")}}catch(e){p=!0,m=e}finally{try{_||null==g.return||g.return()}finally{if(p)throw m}}}return c.write(e)}},{key:"_setLocalMediaStatus",value:function(){var e=!0,t=!0;(this._localHold||this._remoteHold)&&(e=!1,t=!1),this._audioMuted&&(e=!1),this._videoMuted&&(t=!1),this._toggleMuteAudio(!e),this._toggleMuteVideo(!t)}},{key:"_handleSessionTimersInIncomingRequest",value:function(e,t){var n;this._sessionTimers.enabled&&(e.session_expires&&e.session_expires>=h.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: ".concat(this._sessionTimers.currentExpires,";refresher=").concat(n)),this._sessionTimers.refresher="uas"===n,this._runSessionTimer())}},{key:"_handleSessionTimersInIncomingResponse",value:function(e){var t;this._sessionTimers.enabled&&(e.session_expires&&e.session_expires>=h.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,this._runSessionTimer())}},{key:"_runSessionTimer",value:function(){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!==A.STATUS_TERMINATED&&(E("runSessionTimer() | sending session refresh request"),e._sessionTimers.refreshMethod===h.UPDATE?e._sendUpdate():e._sendReinvite())}),500*t):this._sessionTimers.timer=setTimeout((function(){e._status!==A.STATUS_TERMINATED&&(C("runSessionTimer() | timer expired, terminating the session"),e.terminate({cause:h.causes.REQUEST_TIMEOUT,status_code:408,reason_phrase:"Session Timer Expired"}))}),1100*t)}},{key:"_toggleMuteAudio",value:function(e){var t=this._connection.getSenders().filter((function(e){return e.track&&"audio"===e.track.kind})),n=!0,r=!1,s=void 0;try{for(var i,o=t[Symbol.iterator]();!(n=(i=o.next()).done);n=!0){i.value.track.enabled=!e}}catch(e){r=!0,s=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw s}}}},{key:"_toggleMuteVideo",value:function(e){var t=this._connection.getSenders().filter((function(e){return e.track&&"video"===e.track.kind})),n=!0,r=!1,s=void 0;try{for(var i,o=t[Symbol.iterator]();!(n=(i=o.next()).done);n=!0){i.value.track.enabled=!e}}catch(e){r=!0,s=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw s}}}},{key:"_newRTCSession",value:function(e,t){E("newRTCSession()"),this._ua.newRTCSession(this,{originator:e,session:this,request:t})}},{key:"_connecting",value:function(e){E("session connecting"),E('emit "connecting"'),this.emit("connecting",{request:e})}},{key:"_progress",value:function(e,t){E("session progress"),E('emit "progress"'),this.emit("progress",{originator:e,response:t||null})}},{key:"_accepted",value:function(e,t){E("session accepted"),this._start_time=new Date,E('emit "accepted"'),this.emit("accepted",{originator:e,response:t||null})}},{key:"_confirmed",value:function(e,t){E("session confirmed"),this._is_confirmed=!0,E('emit "confirmed"'),this.emit("confirmed",{originator:e,ack:t||null})}},{key:"_ended",value:function(e,t,n){E("session ended"),this._end_time=new Date,this._close(),E('emit "ended"'),this.emit("ended",{originator:e,message:t||null,cause:n})}},{key:"_failed",value:function(e,t,n){E("session failed"),E('emit "_failed"'),this.emit("_failed",{originator:e,message:t||null,cause:n}),this._close(),E('emit "failed"'),this.emit("failed",{originator:e,message:t||null,cause:n})}},{key:"_onhold",value:function(e){E("session onhold"),this._setLocalMediaStatus(),E('emit "hold"'),this.emit("hold",{originator:e})}},{key:"_onunhold",value:function(e){E("session onunhold"),this._setLocalMediaStatus(),E('emit "unhold"'),this.emit("unhold",{originator:e})}},{key:"_onmute",value:function(e){var t=e.audio,n=e.video;E("session onmute"),this._setLocalMediaStatus(),E('emit "muted"'),this.emit("muted",{audio:t,video:n})}},{key:"_onunmute",value:function(e){var t=e.audio,n=e.video;E("session onunmute"),this._setLocalMediaStatus(),E('emit "unmuted"'),this.emit("unmuted",{audio:t,video:n})}},{key:"C",get:function(){return A}},{key:"causes",get:function(){return h.causes}},{key:"id",get:function(){return this._id}},{key:"connection",get:function(){return this._connection}},{key:"contact",get:function(){return this._contact}},{key:"direction",get:function(){return this._direction}},{key:"local_identity",get:function(){return this._local_identity}},{key:"remote_identity",get:function(){return this._remote_identity}},{key:"start_time",get:function(){return this._start_time}},{key:"end_time",get:function(){return this._end_time}},{key:"data",get:function(){return this._data},set:function(e){this._data=e}},{key:"status",get:function(){return this._status}}]),t}(u)},function(e,t,n){"use strict";var r=n(2),s=n(4),i=n(0)("JsSIP:ERROR:Socket");i.log=console.warn.bind(console),t.isSocket=function(e){if(Array.isArray(e))return!1;if(void 0===e)return i("undefined JsSIP.Socket instance"),!1;try{if(!r.isString(e.url))throw i("missing or invalid JsSIP.Socket url property"),new Error;if(!r.isString(e.via_transport))throw i("missing or invalid JsSIP.Socket via_transport property"),new Error;if(-1===s.parse(e.sip_uri,"SIP_URI"))throw i("missing or invalid JsSIP.Socket sip_uri property"),new Error}catch(e){return!1}try{["connect","disconnect","send"].forEach((function(t){if(!r.isFunction(e[t]))throw i("missing or invalid JsSIP.Socket method: ".concat(t)),new Error}))}catch(e){return!1}return!0}},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var u=n(3).EventEmitter,c=n(1),h=n(20),d=n(17),f=n(33),_=n(8),p=n(34),m=n(2),v=n(6),g=n(7),x=n(35),y=n(5),T=n(36),b=n(37),S=n(0)("JsSIP:UA"),E=n(0)("JsSIP:ERROR:UA");E.log=console.warn.bind(console);var C={STATUS_INIT:0,STATUS_READY:1,STATUS_USER_CLOSED:2,STATUS_NOT_READY:3,CONFIGURATION_ERROR:1,NETWORK_ERROR:2};function A(e){this.emit("connecting",e)}function w(e){this._status!==C.STATUS_USER_CLOSED&&(this._status=C.STATUS_READY,this._error=null,this.emit("connected",e),this._dynConfiguration.register&&this._registrator.register())}function R(e){for(var t=["nict","ict","nist","ist"],n=0;n<t.length;n++){var r=t[n];for(var s in this._transactions[r])Object.prototype.hasOwnProperty.call(this._transactions[r],s)&&this._transactions[r][s].onTransportError()}this.emit("disconnected",e),this._registrator.onTransportClosed(),this._status!==C.STATUS_USER_CLOSED&&(this._status=C.STATUS_NOT_READY,this._error=C.NETWORK_ERROR)}function I(e){var t=e.transport,n=e.message;if((n=x.parseMessage(n,this))&&!(this._status===C.STATUS_USER_CLOSED&&n instanceof y.IncomingRequest)&&T(n,this,t))if(n instanceof y.IncomingRequest)n.transport=t,this.receiveRequest(n);else if(n instanceof y.IncomingResponse){var r;switch(n.method){case c.INVITE:(r=this._transactions.ict[n.via_branch])&&r.receiveResponse(n);break;case c.ACK:break;default:(r=this._transactions.nict[n.via_branch])&&r.receiveResponse(n)}}}e.exports=function(e){function t(e){var n,i,o;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),S("new() [configuration:%o]",e),i=this,(n=!(o=s(t).call(this))||"object"!==r(o)&&"function"!=typeof o?a(i):o)._cache={credentials:{}},n._configuration=Object.assign({},b.settings),n._dynConfiguration={},n._dialogs={},n._applicants={},n._sessions={},n._transport=null,n._contact=null,n._status=C.STATUS_INIT,n._error=null,n._transactions={nist:{},nict:{},ist:{},ict:{}},n._data={},n._closeTimer=null,void 0===e)throw new TypeError("Not enough arguments");try{n._loadConfig(e)}catch(e){throw n._status=C.STATUS_NOT_READY,n._error=C.CONFIGURATION_ERROR,e}return n._registrator=new h(a(a(n))),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)}(t,e),o(t,null,[{key:"C",get:function(){return C}}]),o(t,[{key:"start",value:function(){S("start()"),this._status===C.STATUS_INIT?this._transport.connect():this._status===C.STATUS_USER_CLOSED?(S("restarting UA"),null!==this._closeTimer&&(clearTimeout(this._closeTimer),this._closeTimer=null,this._transport.disconnect()),this._status=C.STATUS_INIT,this._transport.connect()):this._status===C.STATUS_READY?S("UA is in READY status, not restarted"):S("ERROR: connection is down, Auto-Recovery system is trying to reconnect"),this._dynConfiguration.register=this._configuration.register}},{key:"register",value:function(){S("register()"),this._dynConfiguration.register=!0,this._registrator.register()}},{key:"unregister",value:function(e){S("unregister()"),this._dynConfiguration.register=!1,this._registrator.unregister(e)}},{key:"registrator",value:function(){return this._registrator}},{key:"isRegistered",value:function(){return this._registrator.registered}},{key:"isConnected",value:function(){return this._transport.isConnected()}},{key:"call",value:function(e,t){S("call()");var n=new d(this);return n.connect(e,t),n}},{key:"sendMessage",value:function(e,t,n){S("sendMessage()");var r=new f(this);return r.send(e,t,n),r}},{key:"terminateSessions",value:function(e){for(var t in S("terminateSessions()"),this._sessions)this._sessions[t].isEnded()||this._sessions[t].terminate(e)}},{key:"stop",value:function(){var e=this;if(S("stop()"),this._dynConfiguration={},this._status!==C.STATUS_USER_CLOSED){this._registrator.close();var t=Object.keys(this._sessions).length;for(var n in this._sessions)if(Object.prototype.hasOwnProperty.call(this._sessions,n)){S("closing session ".concat(n));try{this._sessions[n].terminate()}catch(e){}}for(var r in this._applicants)if(Object.prototype.hasOwnProperty.call(this._applicants,r))try{this._applicants[r].close()}catch(e){}this._status=C.STATUS_USER_CLOSED,0===Object.keys(this._transactions.nict).length+Object.keys(this._transactions.nist).length+Object.keys(this._transactions.ict).length+Object.keys(this._transactions.ist).length&&0===t?this._transport.disconnect():this._closeTimer=setTimeout((function(){e._closeTimer=null,e._transport.disconnect()}),2e3)}else S("UA already closed")}},{key:"normalizeTarget",value:function(e){return m.normalizeTarget(e,this._configuration.hostport_params)}},{key:"get",value:function(e){switch(e){case"realm":return this._configuration.realm;case"ha1":return this._configuration.ha1;default:return void E('get() | cannot get "%s" parameter in runtime',e)}}},{key:"set",value:function(e,t){switch(e){case"password":this._configuration.password=String(t);break;case"realm":this._configuration.realm=String(t);break;case"ha1":this._configuration.ha1=String(t),this._configuration.password=null;break;case"display_name":this._configuration.display_name=t;break;default:return E('set() | cannot set "%s" parameter in runtime',e),!1}return!0}},{key:"newTransaction",value:function(e){this._transactions[e.type][e.id]=e,this.emit("newTransaction",{transaction:e})}},{key:"destroyTransaction",value:function(e){delete this._transactions[e.type][e.id],this.emit("transactionDestroyed",{transaction:e})}},{key:"newDialog",value:function(e){this._dialogs[e.id]=e}},{key:"destroyDialog",value:function(e){delete this._dialogs[e.id]}},{key:"newMessage",value:function(e,t){this._applicants[e]=e,this.emit("newMessage",t)}},{key:"destroyMessage",value:function(e){delete this._applicants[e]}},{key:"newRTCSession",value:function(e,t){this._sessions[e.id]=e,this.emit("newRTCSession",t)}},{key:"destroyRTCSession",value:function(e){delete this._sessions[e.id]}},{key:"registered",value:function(e){this.emit("registered",e)}},{key:"unregistered",value:function(e){this.emit("unregistered",e)}},{key:"registrationFailed",value:function(e){this.emit("registrationFailed",e)}},{key:"receiveRequest",value:function(e){var t=e.method;if(e.ruri.user!==this._configuration.uri.user&&e.ruri.user!==this._contact.uri.user)return S("Request-URI does not point to us"),void(e.method!==c.ACK&&e.reply_sl(404));if(e.ruri.scheme!==c.SIPS){if(!_.checkTransaction(this,e)){if(t===c.INVITE?new _.InviteServerTransaction(this,this._transport,e):t!==c.ACK&&t!==c.CANCEL&&new _.NonInviteServerTransaction(this,this._transport,e),t===c.OPTIONS)e.reply(200);else if(t===c.MESSAGE){if(0===this.listeners("newMessage").length)return void e.reply(405);new f(this).init_incoming(e)}else if(t===c.INVITE&&!e.to_tag&&0===this.listeners("newRTCSession").length)return void e.reply(405);var n,r;if(e.to_tag)(n=this._findDialog(e.call_id,e.from_tag,e.to_tag))?n.receiveRequest(e):t===c.NOTIFY?(r=this._findSession(e))?r.receiveRequest(e):(S("received NOTIFY request for a non existent subscription"),e.reply(481,"Subscription does not exist")):t!==c.ACK&&e.reply(481);else switch(t){case c.INVITE:if(window.RTCPeerConnection)if(e.hasHeader("replaces")){var s=e.replaces;(n=this._findDialog(s.call_id,s.from_tag,s.to_tag))?(r=n.owner).isEnded()?e.reply(603):r.receiveRequest(e):e.reply(481)}else(r=new d(this)).init_incoming(e);else E("INVITE received but WebRTC is not supported"),e.reply(488);break;case c.BYE:e.reply(481);break;case c.CANCEL:(r=this._findSession(e))?r.receiveRequest(e):S("received CANCEL request for a non existent session");break;case c.ACK:break;case c.NOTIFY:this.emit("sipEvent",{event:e.event,request:e}),e.reply(200);break;default:e.reply(405)}}}else e.reply_sl(416)}},{key:"_findSession",value:function(e){var t=e.call_id,n=e.from_tag,r=e.to_tag,s=t+n,i=this._sessions[s],o=t+r,l=this._sessions[o];return i||(l||null)}},{key:"_findDialog",value:function(e,t,n){var r=e+t+n,s=this._dialogs[r];return s||(r=e+n+t,(s=this._dialogs[r])||null)}},{key:"_loadConfig",value:function(e){try{b.load(this._configuration,e)}catch(e){throw e}0===this._configuration.display_name&&(this._configuration.display_name="0"),this._configuration.instance_id||(this._configuration.instance_id=m.newUUID()),this._configuration.jssip_id=m.createRandomToken(5);var t=this._configuration.uri.clone();t.user=null,this._configuration.hostport_params=t.toString().replace(/^sip:/i,"");try{this._transport=new p(this._configuration.sockets,{max_interval:this._configuration.connection_recovery_max_interval,min_interval:this._configuration.connection_recovery_min_interval}),this._transport.onconnecting=A.bind(this),this._transport.onconnect=w.bind(this),this._transport.ondisconnect=R.bind(this),this._transport.ondata=I.bind(this)}catch(e){throw E(e),new v.ConfigurationError("sockets",this._configuration.sockets)}if(delete this._configuration.sockets,this._configuration.authorization_user||(this._configuration.authorization_user=this._configuration.uri.user),!this._configuration.registrar_server){var n=this._configuration.uri.clone();n.user=null,n.clearParams(),n.clearHeaders(),this._configuration.registrar_server=n}this._configuration.no_answer_timeout*=1e3,this._configuration.contact_uri?this._configuration.via_host=this._configuration.contact_uri.host:this._configuration.contact_uri=new g("sip",m.createRandomToken(8),this._configuration.via_host,null,{transport:"ws"}),this._contact={pub_gruu:null,temp_gruu:null,uri:this._configuration.contact_uri,toString:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.anonymous||null,n=e.outbound||null,r="<";return r+=t?this.temp_gruu||"sip:anonymous@anonymous.invalid;transport=ws":this.pub_gruu||this.uri.toString(),!n||(t?this.temp_gruu:this.pub_gruu)||(r+=";ob"),r+=">"}};var r=["password","realm","ha1","display_name","register"];for(var s in this._configuration)Object.prototype.hasOwnProperty.call(this._configuration,s)&&(-1!==r.indexOf(s)?Object.defineProperty(this._configuration,s,{writable:!0,configurable:!1}):Object.defineProperty(this._configuration,s,{writable:!1,configurable:!1}));for(var i in S("configuration parameters after validation:"),this._configuration)if(Object.prototype.hasOwnProperty.call(b.settings,i))switch(i){case"uri":case"registrar_server":S("- ".concat(i,": ").concat(this._configuration[i]));break;case"password":case"ha1":S("- ".concat(i,": NOT SHOWN"));break;default:S("- ".concat(i,": ").concat(JSON.stringify(this._configuration[i])))}}},{key:"C",get:function(){return C}},{key:"status",get:function(){return this._status}},{key:"contact",get:function(){return this._contact}},{key:"configuration",get:function(){return this._configuration}},{key:"transport",get:function(){return this._transport}}]),t}(u)},function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var s=n(2),i=n(1),o=n(5),l=n(10),a=n(0)("JsSIP:Registrator");e.exports=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);this._ua=t,this._transport=n,this._registrar=t.configuration.registrar_server,this._expires=t.configuration.register_expires,this._call_id=s.createRandomToken(22),this._cseq=0,this._to_uri=t.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=".concat(1),this._contact+=';+sip.instance="<urn:uuid:'.concat(this._ua.configuration.instance_id,'>"')}var t,n,u;return t=e,(n=[{key:"setExtraHeaders",value:function(e){Array.isArray(e)||(e=[]),this._extraHeaders=e.slice()}},{key:"setExtraContactParams",value:function(e){for(var t in e instanceof Object||(e={}),this._extraContactParams="",e)if(Object.prototype.hasOwnProperty.call(e,t)){var n=e[t];this._extraContactParams+=";".concat(t),n&&(this._extraContactParams+="=".concat(n))}}},{key:"register",value:function(){var e=this;if(this._registering)a("Register request in progress...");else{var t=this._extraHeaders.slice();t.push("Contact: ".concat(this._contact,";expires=").concat(this._expires).concat(this._extraContactParams)),t.push("Expires: ".concat(this._expires));var n=new o.OutgoingRequest(i.REGISTER,this._registrar,this._ua,{to_uri:this._to_uri,call_id:this._call_id,cseq:this._cseq+=1},t),r=new l(this._ua,n,{onRequestTimeout:function(){e._registrationFailure(null,i.causes.REQUEST_TIMEOUT)},onTransportError:function(){e._registrationFailure(null,i.causes.CONNECTION_ERROR)},onAuthenticated:function(){e._cseq+=1},onReceiveResponse:function(t){if(t.cseq===e._cseq)switch(null!==e._registrationTimer&&(clearTimeout(e._registrationTimer),e._registrationTimer=null),!0){case/^1[0-9]{2}$/.test(t.status_code):break;case/^2[0-9]{2}$/.test(t.status_code):if(e._registering=!1,!t.hasHeader("Contact")){a("no Contact header in response to REGISTER, response ignored");break}var n=t.headers.Contact.reduce((function(e,t){return e.concat(t.parsed)}),[]).find((function(t){return t.uri.user===e._ua.contact.uri.user}));if(!n){a("no Contact header pointing to us, response ignored");break}var r=n.getParam("expires");!r&&t.hasHeader("expires")&&(r=t.getHeader("expires")),r||(r=e._expires),(r=Number(r))<10&&(r=10),e._registrationTimer=setTimeout((function(){e._registrationTimer=null,0===e._ua.listeners("registrationExpiring").length?e.register():e._ua.emit("registrationExpiring")}),1e3*r-5e3),n.hasParam("temp-gruu")&&(e._ua.contact.temp_gruu=n.getParam("temp-gruu").replace(/"/g,"")),n.hasParam("pub-gruu")&&(e._ua.contact.pub_gruu=n.getParam("pub-gruu").replace(/"/g,"")),e._registered||(e._registered=!0,e._ua.registered({response:t}));break;case/^423$/.test(t.status_code):t.hasHeader("min-expires")?(e._expires=Number(t.getHeader("min-expires")),e._expires<10&&(e._expires=10),e.register()):(a("423 response received for REGISTER without Min-Expires"),e._registrationFailure(t,i.causes.SIP_FAILURE_CODE));break;default:var o=s.sipErrorCause(t.status_code);e._registrationFailure(t,o)}}});this._registering=!0,r.send()}}},{key:"unregister",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this._registered){this._registered=!1,null!==this._registrationTimer&&(clearTimeout(this._registrationTimer),this._registrationTimer=null);var n=this._extraHeaders.slice();t.all?n.push("Contact: *".concat(this._extraContactParams)):n.push("Contact: ".concat(this._contact,";expires=0").concat(this._extraContactParams)),n.push("Expires: 0");var r=new o.OutgoingRequest(i.REGISTER,this._registrar,this._ua,{to_uri:this._to_uri,call_id:this._call_id,cseq:this._cseq+=1},n),u=new l(this._ua,r,{onRequestTimeout:function(){e._unregistered(null,i.causes.REQUEST_TIMEOUT)},onTransportError:function(){e._unregistered(null,i.causes.CONNECTION_ERROR)},onAuthenticated:function(){e._cseq+=1},onReceiveResponse:function(t){switch(!0){case/^1[0-9]{2}$/.test(t.status_code):break;case/^2[0-9]{2}$/.test(t.status_code):e._unregistered(t);break;default:var n=s.sipErrorCause(t.status_code);e._unregistered(t,n)}}});u.send()}else a("already unregistered")}},{key:"close",value:function(){this._registered&&this.unregister()}},{key:"onTransportClosed",value:function(){this._registering=!1,null!==this._registrationTimer&&(clearTimeout(this._registrationTimer),this._registrationTimer=null),this._registered&&(this._registered=!1,this._ua.unregistered({}))}},{key:"_registrationFailure",value: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}))}},{key:"_unregistered",value:function(e,t){this._registering=!1,this._registered=!1,this._ua.unregistered({response:e||null,cause:t||null})}},{key:"registered",get:function(){return this._registered}}])&&r(t.prototype,n),u&&r(t,u),e}()},function(e,t,n){var r=function(e){return String(Number(e))===e?Number(e):e},s=function(e,t,n){var s=e.name&&e.names;e.push&&!t[e.push]?t[e.push]=[]:s&&!t[e.name]&&(t[e.name]={});var i=e.push?{}:s?t[e.name]:t;!function(e,t,n,s){if(s&&!n)t[s]=r(e[1]);else for(var i=0;i<n.length;i+=1)null!=e[i+1]&&(t[n[i]]=r(e[i+1]))}(n.match(e.reg),i,e.names,e.name),e.push&&t[e.push].push(i)},i=n(15),o=RegExp.prototype.test.bind(/^([a-z])=(.*)/);t.parse=function(e){var t={},n=[],r=t;return e.split(/(\r\n|\r|\n)/).filter(o).forEach((function(e){var t=e[0],o=e.slice(2);"m"===t&&(n.push({rtp:[],fmtp:[]}),r=n[n.length-1]);for(var l=0;l<(i[t]||[]).length;l+=1){var a=i[t][l];if(a.reg.test(o))return s(a,r,o)}})),t.media=n,t};var l=function(e,t){var n=t.split(/=(.+)/,2);return 2===n.length?e[n[0]]=r(n[1]):1===n.length&&t.length>1&&(e[n[0]]=void 0),e};t.parseParams=function(e){return e.split(/;\s?/).reduce(l,{})},t.parseFmtpConfig=t.parseParams,t.parsePayloads=function(e){return e.toString().split(" ").map(Number)},t.parseRemoteCandidates=function(e){for(var t=[],n=e.split(" ").map(r),s=0;s<n.length;s+=3)t.push({component:n[s],ip:n[s+1],port:n[s+2]});return t},t.parseImageAttributes=function(e){return e.split(" ").map((function(e){return e.substring(1,e.length-1).split(",").reduce(l,{})}))},t.parseSimulcastStreamList=function(e){return e.split(";").map((function(e){return e.split(",").map((function(e){var t,n=!1;return"~"!==e[0]?t=r(e):(t=r(e.substring(1,e.length)),n=!0),{scid:t,paused:n}}))}))}},function(e,t,n){var r=n(15),s=/%[sdv%]/g,i=function(e){var t=1,n=arguments,r=n.length;return e.replace(s,(function(e){if(t>=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;s<t.names.length;s+=1){var o=t.names[s];t.name?r.push(n[t.name][o]):r.push(n[t.names[s]])}else r.push(n[t.name]);return i.apply(null,r)},l=["v","o","s","i","u","e","p","c","b","t","r","z","a"],a=["i","c","b","a"];e.exports=function(e,t){t=t||{},null==e.version&&(e.version=0),null==e.name&&(e.name=" "),e.media.forEach((function(e){null==e.payloads&&(e.payloads="")}));var n=t.outerOrder||l,s=t.innerOrder||a,i=[];return n.forEach((function(t){r[t].forEach((function(n){n.name in e&&null!=e[n.name]?i.push(o(t,n,e)):n.push in e&&null!=e[n.push]&&e[n.push].forEach((function(e){i.push(o(t,n,e))}))}))})),e.media.forEach((function(e){i.push(o("m",r.m[0],e)),s.forEach((function(t){r[t].forEach((function(n){n.name in e&&null!=e[n.name]?i.push(o(t,n,e)):n.push in e&&null!=e[n.push]&&e[n.push].forEach((function(e){i.push(o(t,n,e))}))}))}))})),i.join("\r\n")+"\r\n"}},function(e,t){var n,r,s=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function l(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(e){r=o}}();var a,u=[],c=!1,h=-1;function d(){c&&a&&(c=!1,a.length?u=a.concat(u):h=-1,u.length&&f())}function f(){if(!c){var e=l(d);c=!0;for(var t=u.length;t;){for(a=u,u=[];++h<t;)a&&a[h].run();h=-1,t=u.length}a=null,c=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===o||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function _(e,t){this.fun=e,this.array=t}function p(){}s.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];u.push(new _(e,t)),1!==u.length||c||l(f)},_.prototype.run=function(){this.fun.apply(null,this.array)},s.title="browser",s.browser=!0,s.env={},s.argv=[],s.version="",s.versions={},s.on=p,s.addListener=p,s.once=p,s.off=p,s.removeListener=p,s.removeAllListeners=p,s.emit=p,s.prependListener=p,s.prependOnceListener=p,s.listeners=function(e){return[]},s.binding=function(e){throw new Error("process.binding is not supported")},s.cwd=function(){return"/"},s.chdir=function(e){throw new Error("process.chdir is not supported")},s.umask=function(){return 0}},function(e,t,n){var r;function s(e){function n(){if(n.enabled){var e=n,s=+new Date,i=s-(r||s);e.diff=i,e.prev=r,e.curr=s,r=s;for(var o=new Array(arguments.length),l=0;l<o.length;l++)o[l]=arguments[l];o[0]=t.coerce(o[0]),"string"!=typeof o[0]&&o.unshift("%O");var a=0;o[0]=o[0].replace(/%([a-zA-Z%])/g,(function(n,r){if("%%"===n)return n;a++;var s=t.formatters[r];if("function"==typeof s){var i=o[a];n=s.call(e,i),o.splice(a,1),a--}return n})),t.formatArgs.call(e,o);var u=n.log||t.log||console.log.bind(console);u.apply(e,o)}}return n.namespace=e,n.enabled=t.enabled(e),n.useColors=t.useColors(),n.color=function(e){var n,r=0;for(n in e)r=(r<<5)-r+e.charCodeAt(n),r|=0;return t.colors[Math.abs(r)%t.colors.length]}(e),"function"==typeof t.init&&t.init(n),n}(t=e.exports=s.debug=s.default=s).coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){t.enable("")},t.enable=function(e){t.save(e),t.names=[],t.skips=[];for(var n=("string"==typeof e?e:"").split(/[\s,]+/),r=n.length,s=0;s<r;s++)n[s]&&("-"===(e=n[s].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){var n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(25),t.names=[],t.skips=[],t.formatters={}},function(e,t){var n=1e3,r=6e4,s=60*r,i=24*s;function o(e,t,n){if(!(e<t))return e<1.5*t?Math.floor(e/t)+" "+n:Math.ceil(e/t)+" "+n+"s"}e.exports=function(e,t){t=t||{};var l,a=typeof e;if("string"===a&&e.length>0)return function(e){if((e=String(e)).length>100)return;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)return;var o=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*o;case"days":case"day":case"d":return o*i;case"hours":case"hour":case"hrs":case"hr":case"h":return o*s;case"minutes":case"minute":case"mins":case"min":case"m":return o*r;case"seconds":case"second":case"secs":case"sec":case"s":return o*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:return}}(e);if("number"===a&&!1===isNaN(e))return t.long?o(l=e,i,"day")||o(l,s,"hour")||o(l,r,"minute")||o(l,n,"second")||l+" ms":function(e){if(e>=i)return Math.round(e/i)+"d";if(e>=s)return Math.round(e/s)+"h";if(e>=r)return Math.round(e/r)+"m";if(e>=n)return Math.round(e/n)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var s=n(2),i=n(0)("JsSIP:DigestAuthentication"),o=n(0)("JsSIP:ERROR:DigestAuthentication");o.log=console.warn.bind(console),e.exports=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._credentials=t,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}var t,n,l;return t=e,(n=[{key:"get",value:function(e){switch(e){case"realm":return this._realm;case"ha1":return this._ha1;default:return void o('get() | cannot get "%s" parameter',e)}}},{key:"authenticate",value:function(e,t){var n=e.method,r=e.ruri,l=e.body,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;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 o('authenticate() | challenge with Digest algorithm different than "MD5", authentication aborted'),!1}else this._algorithm="MD5";if(!this._nonce)return o("authenticate() | challenge without Digest nonce, authentication aborted"),!1;if(!this._realm)return o("authenticate() | challenge without Digest realm, authentication aborted"),!1;if(!this._credentials.password){if(!this._credentials.ha1)return o("authenticate() | no plain SIP password nor ha1 provided, authentication aborted"),!1;if(this._credentials.realm!==this._realm)return o('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-int")>-1)this._qop="auth-int";else{if(!(t.qop.indexOf("auth")>-1))return o('authenticate() | challenge without Digest qop different than "auth" or "auth-int", authentication aborted'),!1;this._qop="auth"}else this._qop=null;this._method=n,this._uri=r,this._cnonce=a||s.createRandomToken(12),this._nc+=1;var u,c,h=Number(this._nc).toString(16);return this._ncHex="00000000".substr(0,8-h.length)+h,4294967296===this._nc&&(this._nc=1,this._ncHex="00000001"),this._credentials.password?this._ha1=s.calculateMD5("".concat(this._credentials.username,":").concat(this._realm,":").concat(this._credentials.password)):this._ha1=this._credentials.ha1,"auth"===this._qop?(u="".concat(this._method,":").concat(this._uri),c=s.calculateMD5(u),i('authenticate() | using qop=auth [a2:"%s"]',u),this._response=s.calculateMD5("".concat(this._ha1,":").concat(this._nonce,":").concat(this._ncHex,":").concat(this._cnonce,":auth:").concat(c))):"auth-int"===this._qop?(u="".concat(this._method,":").concat(this._uri,":").concat(s.calculateMD5(l||"")),c=s.calculateMD5(u),i('authenticate() | using qop=auth-int [a2:"%s"]',u),this._response=s.calculateMD5("".concat(this._ha1,":").concat(this._nonce,":").concat(this._ncHex,":").concat(this._cnonce,":auth-int:").concat(c))):null===this._qop&&(u="".concat(this._method,":").concat(this._uri),c=s.calculateMD5(u),i('authenticate() | using qop=null [a2:"%s"]',u),this._response=s.calculateMD5("".concat(this._ha1,":").concat(this._nonce,":").concat(c))),i("authenticate() | response generated"),!0}},{key:"toString",value:function(){var e=[];if(!this._response)throw new Error("response field does not exist, cannot generate Authorization header");return e.push("algorithm=".concat(this._algorithm)),e.push('username="'.concat(this._credentials.username,'"')),e.push('realm="'.concat(this._realm,'"')),e.push('nonce="'.concat(this._nonce,'"')),e.push('uri="'.concat(this._uri,'"')),e.push('response="'.concat(this._response,'"')),this._opaque&&e.push('opaque="'.concat(this._opaque,'"')),this._qop&&(e.push("qop=".concat(this._qop)),e.push('cnonce="'.concat(this._cnonce,'"')),e.push("nc=".concat(this._ncHex))),"Digest ".concat(e.join(", "))}}])&&r(t.prototype,n),l&&r(t,l),e}()},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&s(e.prototype,t),n&&s(e,n),e}var o=n(5),l=n(1),a=n(8),u=n(28),c=n(2),h=n(0)("JsSIP:Dialog"),d={STATUS_EARLY:1,STATUS_CONFIRMED:2};e.exports=function(){function e(t,n,s){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:d.STATUS_CONFIRMED;if(r(this,e),this._owner=t,this._ua=t._ua,this._uac_pending_reply=!1,this._uas_pending_reply=!1,!n.hasHeader("contact"))return{error:"unable to create a Dialog without Contact header field"};n instanceof o.IncomingResponse&&(i=n.status_code<200?d.STATUS_EARLY:d.STATUS_CONFIRMED);var l=n.parseHeader("contact");"UAS"===s?(this._id={call_id:n.call_id,local_tag:n.to_tag,remote_tag:n.from_tag,toString:function(){return this.call_id+this.local_tag+this.remote_tag}},this._state=i,this._remote_seqnum=n.cseq,this._local_uri=n.parseHeader("to").uri,this._remote_uri=n.parseHeader("from").uri,this._remote_target=l.uri,this._route_set=n.getHeaders("record-route"),this._ack_seqnum=this._remote_seqnum):"UAC"===s&&(this._id={call_id:n.call_id,local_tag:n.from_tag,remote_tag:n.to_tag,toString:function(){return this.call_id+this.local_tag+this.remote_tag}},this._state=i,this._local_seqnum=n.cseq,this._local_uri=n.parseHeader("from").uri,this._remote_uri=n.parseHeader("to").uri,this._remote_target=l.uri,this._route_set=n.getHeaders("record-route").reverse(),this._ack_seqnum=null),this._ua.newDialog(this),h("new ".concat(s," dialog created with status ").concat(this._state===d.STATUS_EARLY?"EARLY":"CONFIRMED"))}return i(e,null,[{key:"C",get:function(){return d}}]),i(e,[{key:"update",value:function(e,t){this._state=d.STATUS_CONFIRMED,h("dialog ".concat(this._id.toString()," changed to CONFIRMED state")),"UAC"===t&&(this._route_set=e.getHeaders("record-route").reverse())}},{key:"terminate",value:function(){h("dialog ".concat(this._id.toString()," deleted")),this._ua.destroyDialog(this)}},{key:"sendRequest",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=c.cloneArray(n.extraHeaders),s=n.eventHandlers||{},i=n.body||null,o=this._createRequest(e,r,i);s.onAuthenticated=function(){t._local_seqnum+=1};var l=new u(this,o,s);return l.send(),o}},{key:"receiveRequest",value:function(e){this._checkInDialogRequest(e)&&(e.method===l.ACK&&null!==this._ack_seqnum?this._ack_seqnum=null:e.method===l.INVITE&&(this._ack_seqnum=e.cseq),this._owner.receiveRequest(e))}},{key:"_createRequest",value:function(e,t,n){t=c.cloneArray(t),this._local_seqnum||(this._local_seqnum=Math.floor(1e4*Math.random()));var r=e===l.CANCEL||e===l.ACK?this._local_seqnum:this._local_seqnum+=1;return new o.OutgoingRequest(e,this._remote_target,this._ua,{cseq:r,call_id:this._id.call_id,from_uri:this._local_uri,from_tag:this._id.local_tag,to_uri:this._remote_uri,to_tag:this._id.remote_tag,route_set:this._route_set},t,n)}},{key:"_checkInDialogRequest",value:function(e){var t=this;if(this._remote_seqnum)if(e.cseq<this._remote_seqnum){if(e.method!==l.ACK)return e.reply(500),!1;if(null===this._ack_seqnum||e.cseq!==this._ack_seqnum)return!1}else e.cseq>this._remote_seqnum&&(this._remote_seqnum=e.cseq);else this._remote_seqnum=e.cseq;if(e.method===l.INVITE||e.method===l.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:".concat(n)]),!1}this._uas_pending_reply=!0;e.server_transaction.on("stateChanged",(function n(){e.server_transaction.state!==a.C.STATUS_ACCEPTED&&e.server_transaction.state!==a.C.STATUS_COMPLETED&&e.server_transaction.state!==a.C.STATUS_TERMINATED||(e.server_transaction.removeListener("stateChanged",n),t._uas_pending_reply=!1)}))}e.hasHeader("contact")&&e.server_transaction.on("stateChanged",(function(){e.server_transaction.state===a.C.STATUS_ACCEPTED&&(t._remote_target=e.parseHeader("contact").uri)}))}else e.method===l.NOTIFY&&e.hasHeader("contact")&&e.server_transaction.on("stateChanged",(function(){e.server_transaction.state===a.C.STATUS_COMPLETED&&(t._remote_target=e.parseHeader("contact").uri)}));return!0}},{key:"id",get:function(){return this._id}},{key:"local_seqnum",get:function(){return this._local_seqnum},set:function(e){this._local_seqnum=e}},{key:"owner",get:function(){return this._owner}},{key:"uac_pending_reply",get:function(){return this._uac_pending_reply},set:function(e){this._uac_pending_reply=e}},{key:"uas_pending_reply",get:function(){return this._uas_pending_reply}}]),e}()},function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var s=n(1),i=n(8),o=n(17),l=n(10),a={onRequestTimeout:function(){},onTransportError:function(){},onSuccessResponse:function(){},onErrorResponse:function(){},onAuthenticated:function(){},onDialogError:function(){}};e.exports=function(){function e(t,n,r){for(var s in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._dialog=t,this._ua=t._ua,this._request=n,this._eventHandlers=r,this._reattempt=!1,this._reattemptTimer=null,a)Object.prototype.hasOwnProperty.call(a,s)&&(this._eventHandlers[s]||(this._eventHandlers[s]=a[s]))}var t,n,u;return t=e,(n=[{key:"send",value:function(){var e=this,t=new l(this._ua,this._request,{onRequestTimeout:function(){e._eventHandlers.onRequestTimeout()},onTransportError:function(){e._eventHandlers.onTransportError()},onAuthenticated:function(t){e._eventHandlers.onAuthenticated(t)},onReceiveResponse:function(t){e._receiveResponse(t)}});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(){t.clientTransaction.state!==i.C.STATUS_ACCEPTED&&t.clientTransaction.state!==i.C.STATUS_COMPLETED&&t.clientTransaction.state!==i.C.STATUS_TERMINATED||(t.clientTransaction.removeListener("stateChanged",n),e._dialog.uac_pending_reply=!1)})))}},{key:"_receiveResponse",value:function(e){var t=this;408===e.status_code||481===e.status_code?this._eventHandlers.onDialogError(e):e.method===s.INVITE&&491===e.status_code?this._reattempt?e.status_code>=200&&e.status_code<300?this._eventHandlers.onSuccessResponse(e):e.status_code>=300&&this._eventHandlers.onErrorResponse(e):(this._request.cseq.value=this._dialog.local_seqnum+=1,this._reattemptTimer=setTimeout((function(){t._dialog.owner.status!==o.C.STATUS_TERMINATED&&(t._reattempt=!0,t._request_sender.send())}),1e3)):e.status_code>=200&&e.status_code<300?this._eventHandlers.onSuccessResponse(e):e.status_code>=300&&this._eventHandlers.onErrorResponse(e)}},{key:"request",get:function(){return this._request}}])&&r(t.prototype,n),u&&r(t,u),e}()},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var a=n(3).EventEmitter,u=n(1),c=n(6),h=n(2),d=n(0)("JsSIP:RTCSession:DTMF");n(0)("JsSIP:ERROR:RTCSession:DTMF").log=console.warn.bind(console);var f={MIN_DURATION:70,MAX_DURATION:6e3,DEFAULT_DURATION:100,MIN_INTER_TONE_GAP:50,DEFAULT_INTER_TONE_GAP:500};e.exports=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=i(this,o(t).call(this)))._session=e,n._direction=null,n._tone=null,n._duration=null,n._request=null,n}var n,r,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)}(t,e),n=t,(r=[{key:"send",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(void 0===e)throw new TypeError("Not enough arguments");if(this._direction="outgoing",this._session.status!==this._session.C.STATUS_CONFIRMED&&this._session.status!==this._session.C.STATUS_WAITING_FOR_ACK)throw new c.InvalidStateError(this._session.status);var r=h.cloneArray(n.extraHeaders);if(this.eventHandlers=n.eventHandlers||{},"string"==typeof e)e=e.toUpperCase();else{if("number"!=typeof e)throw new TypeError("Invalid tone: ".concat(e));e=e.toString()}if(!e.match(/^[0-9A-DR#*]$/))throw new TypeError("Invalid tone: ".concat(e));this._tone=e,this._duration=n.duration,r.push("Content-Type: application/dtmf-relay");var s="Signal=".concat(this._tone,"\r\n");s+="Duration=".concat(this._duration),this._session.newDTMF({originator:"local",dtmf:this,request:this._request}),this._session.sendRequest(u.INFO,{extraHeaders:r,eventHandlers:{onSuccessResponse:function(e){t.emit("succeeded",{originator:"remote",response:e})},onErrorResponse:function(e){t.eventHandlers.onFailed&&t.eventHandlers.onFailed(),t.emit("failed",{originator:"remote",response:e})},onRequestTimeout:function(){t._session.onRequestTimeout()},onTransportError:function(){t._session.onTransportError()},onDialogError:function(){t._session.onDialogError()}},body:s})}},{key:"init_incoming",value:function(e){var t=/^(Signal\s*?=\s*?)([0-9A-D#*]{1})(\s)?.*/,n=/^(Duration\s?=\s?)([0-9]{1,4})(\s)?.*/;if(this._direction="incoming",this._request=e,e.reply(200),e.body){var r=e.body.split("\n");r.length>=1&&t.test(r[0])&&(this._tone=r[0].replace(t,"$2")),r.length>=2&&n.test(r[1])&&(this._duration=parseInt(r[1].replace(n,"$2"),10))}this._duration||(this._duration=f.DEFAULT_DURATION),this._tone?this._session.newDTMF({originator:"remote",dtmf:this,request:e}):d("invalid INFO DTMF received, discarded")}},{key:"tone",get:function(){return this._tone}},{key:"duration",get:function(){return this._duration}}])&&s(n.prototype,r),a&&s(n,a),t}(a),e.exports.C=f},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var a=n(3).EventEmitter;n(0)("JsSIP:ERROR:RTCSession:Info").log=console.warn.bind(console);var u=n(1),c=n(6),h=n(2);e.exports=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=i(this,o(t).call(this)))._session=e,n._direction=null,n._contentType=null,n._body=null,n}var n,r,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)}(t,e),n=t,(r=[{key:"send",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(this._direction="outgoing",void 0===e)throw new TypeError("Not enough arguments");if(this._session.status!==this._session.C.STATUS_CONFIRMED&&this._session.status!==this._session.C.STATUS_WAITING_FOR_ACK)throw new c.InvalidStateError(this._session.status);this._contentType=e,this._body=t;var s=h.cloneArray(r.extraHeaders);s.push("Content-Type: ".concat(e)),this._session.newInfo({originator:"local",info:this,request:this.request}),this._session.sendRequest(u.INFO,{extraHeaders:s,eventHandlers:{onSuccessResponse:function(e){n.emit("succeeded",{originator:"remote",response:e})},onErrorResponse:function(e){n.emit("failed",{originator:"remote",response:e})},onTransportError:function(){n._session.onTransportError()},onRequestTimeout:function(){n._session.onRequestTimeout()},onDialogError:function(){n._session.onDialogError()}},body:t})}},{key:"init_incoming",value:function(e){this._direction="incoming",this.request=e,e.reply(200),this._contentType=e.getHeader("content-type"),this._body=e.body,this._session.newInfo({originator:"remote",info:this,request:e})}},{key:"contentType",get:function(){return this._contentType}},{key:"body",get:function(){return this._body}}])&&s(n.prototype,r),a&&s(n,a),t}(a)},function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var s=n(1),i=n(0)("JsSIP:RTCSession:ReferNotifier"),o="refer",l="message/sipfrag;version=2.0",a=300;e.exports=function(){function e(t,n,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._session=t,this._id=n,this._expires=r||a,this._active=!0,this.notify(100)}var t,n,u;return t=e,(n=[{key:"notify",value:function(e,t){var n;i("notify()"),!1!==this._active&&(t=t||s.REASON_PHRASE[e]||"",n=e>=200?"terminated;reason=noresource":"active;expires=".concat(this._expires),this._session.sendRequest(s.NOTIFY,{extraHeaders:["Event: ".concat(o,";id=").concat(this._id),"Subscription-State: ".concat(n),"Content-Type: ".concat(l)],body:"SIP/2.0 ".concat(e," ").concat(t),eventHandlers:{onErrorResponse:function(){this._active=!1}}}))}}])&&r(t.prototype,n),u&&r(t,u),e}()},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var a=n(3).EventEmitter,u=n(1),c=n(4),h=n(2),d=n(0)("JsSIP:RTCSession:ReferSubscriber");e.exports=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=i(this,o(t).call(this)))._id=null,n._session=e,n}var n,r,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)}(t,e),n=t,(r=[{key:"sendRefer",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};d("sendRefer()");var r=h.cloneArray(n.extraHeaders),s=n.eventHandlers||{};for(var i in s)Object.prototype.hasOwnProperty.call(s,i)&&this.on(i,s[i]);var o=null;n.replaces&&(o=n.replaces._request.call_id,o+=";to-tag=".concat(n.replaces._to_tag),o+=";from-tag=".concat(n.replaces._from_tag),o=encodeURIComponent(o));var l="Refer-To: <".concat(e).concat(o?"?Replaces=".concat(o):"",">");r.push(l);var a="Referred-By: <".concat(this._session._ua._configuration.uri._scheme,":").concat(this._session._ua._configuration.uri._user,"@").concat(this._session._ua._configuration.uri._host,">");r.push(a),r.push("Contact: ".concat(this._session.contact));var c=this._session.sendRequest(u.REFER,{extraHeaders:r,eventHandlers:{onSuccessResponse:function(e){t._requestSucceeded(e)},onErrorResponse:function(e){t._requestFailed(e,u.causes.REJECTED)},onTransportError:function(){t._requestFailed(null,u.causes.CONNECTION_ERROR)},onRequestTimeout:function(){t._requestFailed(null,u.causes.REQUEST_TIMEOUT)},onDialogError:function(){t._requestFailed(null,u.causes.DIALOG_ERROR)}}});this._id=c.cseq}},{key:"receiveNotify",value:function(e){if(d("receiveNotify()"),e.body){var t=c.parse(e.body.trim(),"Status_Line");if(-1!==t)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):this.emit("accepted",{request:e,status_line:t});break;default:this.emit("failed",{request:e,status_line:t})}else d('receiveNotify() | error parsing NOTIFY body: "'.concat(e.body,'"'))}}},{key:"_requestSucceeded",value:function(e){d("REFER succeeded"),d('emit "requestSucceeded"'),this.emit("requestSucceeded",{response:e})}},{key:"_requestFailed",value:function(e,t){d("REFER failed"),d('emit "requestFailed"'),this.emit("requestFailed",{response:e||null,cause:t})}},{key:"id",get:function(){return this._id}}])&&s(n.prototype,r),a&&s(n,a),t}(a)},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var a=n(3).EventEmitter,u=n(1),c=n(5),h=n(2),d=n(10),f=n(6),_=n(0)("JsSIP:Message");e.exports=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=i(this,o(t).call(this)))._ua=e,n._request=null,n._closed=!1,n._direction=null,n._local_identity=null,n._remote_identity=null,n._is_replied=!1,n._data={},n}var n,r,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)}(t,e),n=t,(r=[{key:"send",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=e;if(void 0===e||void 0===t)throw new TypeError("Not enough arguments");if(!(e=this._ua.normalizeTarget(e)))throw new TypeError("Invalid target: ".concat(s));var i=h.cloneArray(r.extraHeaders),o=r.eventHandlers||{},l=r.contentType||"text/plain";for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&this.on(a,o[a]);i.push("Content-Type: ".concat(l)),this._request=new c.OutgoingRequest(u.MESSAGE,e,this._ua,null,i),t&&(this._request.body=t);var f=new d(this._ua,this._request,{onRequestTimeout:function(){n._onRequestTimeout()},onTransportError:function(){n._onTransportError()},onReceiveResponse:function(e){n._receiveResponse(e)}});this._newMessage("local",this._request),f.send()}},{key:"init_incoming",value:function(e){this._request=e,this._newMessage("remote",e),this._is_replied||(this._is_replied=!0,e.reply(200)),this._close()}},{key:"accept",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=h.cloneArray(e.extraHeaders),n=e.body;if("incoming"!==this._direction)throw new f.NotSupportedError('"accept" not supported for outgoing Message');if(this._is_replied)throw new Error("incoming Message already replied");this._is_replied=!0,this._request.reply(200,null,t,n)}},{key:"reject",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.status_code||480,n=e.reason_phrase,r=h.cloneArray(e.extraHeaders),s=e.body;if("incoming"!==this._direction)throw new f.NotSupportedError('"reject" not supported for outgoing Message');if(this._is_replied)throw new Error("incoming Message already replied");if(t<300||t>=700)throw new TypeError("Invalid status_code: ".concat(t));this._is_replied=!0,this._request.reply(t,n,r,s)}},{key:"_receiveResponse",value:function(e){if(!this._closed)switch(!0){case/^1[0-9]{2}$/.test(e.status_code):break;case/^2[0-9]{2}$/.test(e.status_code):this._succeeded("remote",e);break;default:var t=h.sipErrorCause(e.status_code);this._failed("remote",e,t)}}},{key:"_onRequestTimeout",value:function(){this._closed||this._failed("system",null,u.causes.REQUEST_TIMEOUT)}},{key:"_onTransportError",value:function(){this._closed||this._failed("system",null,u.causes.CONNECTION_ERROR)}},{key:"_close",value:function(){this._closed=!0,this._ua.destroyMessage(this)}},{key:"_newMessage",value: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(this,{originator:e,message:this,request:t})}},{key:"_failed",value:function(e,t,n){_("MESSAGE failed"),this._close(),_('emit "failed"'),this.emit("failed",{originator:e,response:t||null,cause:n})}},{key:"_succeeded",value:function(e,t){_("MESSAGE succeeded"),this._close(),_('emit "succeeded"'),this.emit("succeeded",{originator:e,response:t})}},{key:"direction",get:function(){return this._direction}},{key:"local_identity",get:function(){return this._local_identity}},{key:"remote_identity",get:function(){return this._remote_identity}}])&&s(n.prototype,r),a&&s(n,a),t}(a)},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var i=n(18),o=n(0)("JsSIP:Transport"),l=n(0)("JsSIP:ERROR:Transport"),a=n(1);l.log=console.warn.bind(console);var u={STATUS_CONNECTED:0,STATUS_CONNECTING:1,STATUS_DISCONNECTED:2,SOCKET_STATUS_READY:0,SOCKET_STATUS_ERROR:1,recovery_options:{min_interval:a.CONNECTION_RECOVERY_MIN_INTERVAL,max_interval:a.CONNECTION_RECOVERY_MAX_INTERVAL}};e.exports=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:u.recovery_options;if(r(this,e),o("new()"),this.status=u.STATUS_DISCONNECTED,this.socket=null,this.sockets=[],this.recovery_options=n,this.recover_attempts=0,this.recovery_timer=null,this.close_requested=!1,void 0===t)throw new TypeError("Invalid argument. undefined 'sockets' argument");t instanceof Array||(t=[t]),t.forEach((function(e){if(!i.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:u.SOCKET_STATUS_READY})}),this),this._getSocket()}var t,n,a;return t=e,(n=[{key:"connect",value:function(){o("connect()"),this.isConnected()?o("Transport is already connected"):this.isConnecting()?o("Transport is connecting"):(this.close_requested=!1,this.status=u.STATUS_CONNECTING,this.onconnecting({socket:this.socket,attempts:this.recover_attempts}),this.close_requested||(this.socket.onconnect=this._onConnect.bind(this),this.socket.ondisconnect=this._onDisconnect.bind(this),this.socket.ondata=this._onData.bind(this),this.socket.connect()))}},{key:"disconnect",value:function(){o("close()"),this.close_requested=!0,this.recover_attempts=0,this.status=u.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({socket:this.socket,error:!1})}},{key:"send",value:function(e){if(o("send()"),!this.isConnected())return l("unable to send message, transport is not connected"),!1;var t=e.toString();return o("sending message:\n\n".concat(t,"\n")),this.socket.send(t)}},{key:"isConnected",value:function(){return this.status===u.STATUS_CONNECTED}},{key:"isConnecting",value:function(){return this.status===u.STATUS_CONNECTING}},{key:"_reconnect",value:function(){var e=this;this.recover_attempts+=1;var t=Math.floor(Math.random()*Math.pow(2,this.recover_attempts)+1);t<this.recovery_options.min_interval?t=this.recovery_options.min_interval:t>this.recovery_options.max_interval&&(t=this.recovery_options.max_interval),o("reconnection attempt: ".concat(this.recover_attempts,". next connection attempt in ").concat(t," seconds")),this.recovery_timer=setTimeout((function(){e.close_requested||e.isConnected()||e.isConnecting()||(e._getSocket(),e.connect())}),1e3*t)}},{key:"_getSocket",value:function(){var e=[];if(this.sockets.forEach((function(t){t.status!==u.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=u.SOCKET_STATUS_READY})),void this._getSocket();var t=Math.floor(Math.random()*e.length);this.socket=e[t].socket}},{key:"_onConnect",value:function(){this.recover_attempts=0,this.status=u.STATUS_CONNECTED,null!==this.recovery_timer&&(clearTimeout(this.recovery_timer),this.recovery_timer=null),this.onconnect({socket:this})}},{key:"_onDisconnect",value:function(e,t,n){this.status=u.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=u.SOCKET_STATUS_ERROR)}),this),this._reconnect(e))}},{key:"_onData",value:function(e){if("\r\n"!==e){if("string"!=typeof e){try{e=String.fromCharCode.apply(null,new Uint8Array(e))}catch(e){return void o("received binary message failed to be converted into string, message discarded")}o("received binary message:\n\n".concat(e,"\n"))}else o("received text message:\n\n".concat(e,"\n"));this.ondata({transport:this,message:e})}else o("received message with CRLF Keep Alive response")}},{key:"via_transport",get:function(){return this.socket.via_transport}},{key:"url",get:function(){return this.socket.url}},{key:"sip_uri",get:function(){return this.socket.sip_uri}}])&&s(t.prototype,n),a&&s(t,a),e}()},function(e,t,n){"use strict";var r=n(4),s=n(5),i=n(0)("JsSIP:ERROR:Parser");function o(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 l(e,t,n,i){var o,l=t.indexOf(":",n),a=t.substring(n,l).trim(),u=t.substring(l+1,i).trim();switch(a.toLowerCase()){case"via":case"v":e.addHeader("via",u),1===e.getHeaders("via").length?(o=e.parseHeader("Via"))&&(e.via=o,e.via_branch=o.branch):o=0;break;case"from":case"f":e.setHeader("from",u),(o=e.parseHeader("from"))&&(e.from=o,e.from_tag=o.getParam("tag"));break;case"to":case"t":e.setHeader("to",u),(o=e.parseHeader("to"))&&(e.to=o,e.to_tag=o.getParam("tag"));break;case"record-route":if(-1===(o=r.parse(u,"Record_Route")))o=void 0;else{var c=!0,h=!1,d=void 0;try{for(var f,_=o[Symbol.iterator]();!(c=(f=_.next()).done);c=!0){var p=f.value;e.addHeader("record-route",u.substring(p.possition,p.offset)),e.headers["Record-Route"][e.getHeaders("record-route").length-1].parsed=p.parsed}}catch(e){h=!0,d=e}finally{try{c||null==_.return||_.return()}finally{if(h)throw d}}}break;case"call-id":case"i":e.setHeader("call-id",u),(o=e.parseHeader("call-id"))&&(e.call_id=u);break;case"contact":case"m":if(-1===(o=r.parse(u,"Contact")))o=void 0;else{var m=!0,v=!1,g=void 0;try{for(var x,y=o[Symbol.iterator]();!(m=(x=y.next()).done);m=!0){var T=x.value;e.addHeader("contact",u.substring(T.possition,T.offset)),e.headers.Contact[e.getHeaders("contact").length-1].parsed=T.parsed}}catch(e){v=!0,g=e}finally{try{m||null==y.return||y.return()}finally{if(v)throw g}}}break;case"content-length":case"l":e.setHeader("content-length",u),o=e.parseHeader("content-length");break;case"content-type":case"c":e.setHeader("content-type",u),o=e.parseHeader("content-type");break;case"cseq":e.setHeader("cseq",u),(o=e.parseHeader("cseq"))&&(e.cseq=o.value),e instanceof s.IncomingResponse&&(e.method=o.method);break;case"max-forwards":e.setHeader("max-forwards",u),o=e.parseHeader("max-forwards");break;case"www-authenticate":e.setHeader("www-authenticate",u),o=e.parseHeader("www-authenticate");break;case"proxy-authenticate":e.setHeader("proxy-authenticate",u),o=e.parseHeader("proxy-authenticate");break;case"session-expires":case"x":e.setHeader("session-expires",u),(o=e.parseHeader("session-expires"))&&(e.session_expires=o.expires,e.session_expires_refresher=o.refresher);break;case"refer-to":case"r":e.setHeader("refer-to",u),(o=e.parseHeader("refer-to"))&&(e.refer_to=o);break;case"replaces":e.setHeader("replaces",u),(o=e.parseHeader("replaces"))&&(e.replaces=o);break;case"event":case"o":e.setHeader("event",u),(o=e.parseHeader("event"))&&(e.event=o);break;default:e.addHeader(a,u),o=0}return void 0!==o||{error:'error parsing header "'.concat(a,'"')}}i.log=console.warn.bind(console),t.parseMessage=function(e,t){var n,a,u=e.indexOf("\r\n");if(-1!==u){var c=e.substring(0,u),h=r.parse(c,"Request_Response");if(-1!==h){h.status_code?((n=new s.IncomingResponse).status_code=h.status_code,n.reason_phrase=h.reason_phrase):((n=new s.IncomingRequest(t)).method=h.method,n.ruri=h.uri),n.data=e;for(var d=u+2;;){if(-2===(u=o(e,d))){a=d+2;break}if(-1===u)return void i("parseMessage() | malformed message");if(!0!==(h=l(n,e,d,u)))return void i("parseMessage() |",h.error);d=u+2}if(n.hasHeader("content-length")){var f=n.getHeader("content-length");n.body=e.substr(a,f)}else n.body=e.substring(a);return n}i('parseMessage() | error parsing first line of SIP message: "'.concat(c,'"'))}else i("parseMessage() | no CRLF found, not a SIP message")}},function(e,t,n){"use strict";var r,s,i,o=n(1),l=n(5),a=n(2),u=n(0)("JsSIP:sanityCheck"),c=[function(){for(var e=["from","to","call_id","cseq","via"],t=0;t<e.length;t++){var n=e[t];if(!r.hasHeader(n))return u("missing mandatory header field : ".concat(n,", dropping the response")),!1}}],h=[function(){if("sip"!==r.s("to").uri.scheme)return f(416),!1},function(){if(!r.to_tag&&r.call_id.substr(0,5)===s.configuration.jssip_id)return f(482),!1},function(){var e=a.str_utf8_length(r.body),t=r.getHeader("content-length");if(e<t)return f(400),!1},function(){var e,t=r.from_tag,n=r.call_id,i=r.cseq;if(r.to_tag)return;if(r.method===o.INVITE){if(s._transactions.ist[r.via_branch])return!1;for(var l in s._transactions.ist)if(Object.prototype.hasOwnProperty.call(s._transactions.ist,l)&&(e=s._transactions.ist[l]).request.from_tag===t&&e.request.call_id===n&&e.request.cseq===i)return f(482),!1}else{if(s._transactions.nist[r.via_branch])return!1;for(var a in s._transactions.nist)if(Object.prototype.hasOwnProperty.call(s._transactions.nist,a)&&(e=s._transactions.nist[a]).request.from_tag===t&&e.request.call_id===n&&e.request.cseq===i)return f(482),!1}}],d=[function(){if(r.getHeaders("via").length>1)return u("more than one Via header field present in the response, dropping the response"),!1},function(){var e=a.str_utf8_length(r.body),t=r.getHeader("content-length");if(e<t)return u("message body length is lower than the value in Content-Length header field, dropping the response"),!1}];function f(e){var t,n=r.getHeaders("via"),s="SIP/2.0 ".concat(e," ").concat(o.REASON_PHRASE[e],"\r\n"),l=!0,u=!1,c=void 0;try{for(var h,d=n[Symbol.iterator]();!(l=(h=d.next()).done);l=!0){var f=h.value;s+="Via: ".concat(f,"\r\n")}}catch(e){u=!0,c=e}finally{try{l||null==d.return||d.return()}finally{if(u)throw c}}t=r.getHeader("To"),r.to_tag||(t+=";tag=".concat(a.newTag())),s+="To: ".concat(t,"\r\n"),s+="From: ".concat(r.getHeader("From"),"\r\n"),s+="Call-ID: ".concat(r.call_id,"\r\n"),s+="CSeq: ".concat(r.cseq," ").concat(r.method,"\r\n"),s+="\r\n",i.send(s)}e.exports=function(e,t,n){r=e,s=t,i=n;for(var o=0;o<c.length;o++){if(!1===(0,c[o])())return!1}if(r instanceof l.IncomingRequest)for(var a=0;a<h.length;a++){if(!1===(0,h[a])())return!1}else if(r instanceof l.IncomingResponse)for(var u=0;u<d.length;u++){if(!1===(0,d[u])())return!1}return!0}},function(e,t,n){"use strict";var r=n(2),s=n(1),i=n(4),o=n(7),l=n(18),a=n(6);t.settings={authorization_user:null,password:null,realm:null,ha1:null,display_name:null,uri:null,contact_uri:null,instance_id:null,use_preloaded_route:!1,session_timers:!0,session_timers_refresh_method:s.UPDATE,no_answer_timeout:60,register:!0,register_expires:600,registrar_server:null,sockets:null,connection_recovery_max_interval:s.CONNECTION_RECOVERY_MAX_INTERVAL,connection_recovery_min_interval:s.CONNECTION_RECOVERY_MIN_INTERVAL,via_host:"".concat(r.createRandomToken(12),".invalid")};var u={mandatory:{sockets:function(e){var t=[];if(l.isSocket(e))t.push({socket:e});else{if(!Array.isArray(e)||!e.length)return;var n=!0,r=!1,s=void 0;try{for(var i,o=e[Symbol.iterator]();!(n=(i=o.next()).done);n=!0){var a=i.value;Object.prototype.hasOwnProperty.call(a,"socket")&&l.isSocket(a.socket)?t.push(a):l.isSocket(a)&&t.push({socket:a})}}catch(e){r=!0,s=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw s}}}return t},uri:function(e){/^sip:/i.test(e)||(e="".concat(s.SIP,":").concat(e));var t=o.parse(e);return t&&t.user?t:void 0}},optional:{authorization_user:function(e){return-1===i.parse('"'.concat(e,'"'),"quoted_string")?void 0:e},user_agent:function(e){if("string"==typeof e)return e},connection_recovery_max_interval:function(e){if(r.isDecimal(e)){var t=Number(e);if(t>0)return t}},connection_recovery_min_interval:function(e){if(r.isDecimal(e)){var t=Number(e);if(t>0)return t}},contact_uri:function(e){if("string"==typeof e){var t=i.parse(e,"SIP_URI");if(-1!==t)return t}},display_name:function(e){return e},instance_id:function(e){return/^uuid:/i.test(e)&&(e=e.substr(5)),-1===i.parse(e,"uuid")?void 0:e},no_answer_timeout:function(e){if(r.isDecimal(e)){var t=Number(e);if(t>0)return t}},session_timers:function(e){if("boolean"==typeof e)return e},session_timers_refresh_method:function(e){if("string"==typeof e&&((e=e.toUpperCase())===s.INVITE||e===s.UPDATE))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){if(r.isDecimal(e)){var t=Number(e);if(t>0)return t}},registrar_server:function(e){/^sip:/i.test(e)||(e="".concat(s.SIP,":").concat(e));var t=o.parse(e);return t?t.user?void 0:t:void 0},use_preloaded_route:function(e){if("boolean"==typeof e)return e}}};t.load=function(e,t){for(var n in u.mandatory){if(!t.hasOwnProperty(n))throw new a.ConfigurationError(n);var s=t[n],i=u.mandatory[n](s);if(void 0===i)throw new a.ConfigurationError(n,s);e[n]=i}for(var o in u.optional)if(t.hasOwnProperty(o)){var l=t[o];if(r.isEmpty(l))continue;var c=u.optional[o](l);if(void 0===c)throw new a.ConfigurationError(o,l);e[o]=c}}},function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var s=n(4),i=n(0)("JsSIP:WebSocketInterface"),o=n(0)("JsSIP:ERROR:WebSocketInterface");o.log=console.warn.bind(console),e.exports=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),i('new() [url:"%s"]',t),this._url=t,this._sip_uri=null,this._via_transport=null,this._ws=null;var n=s.parse(t,"absoluteURI");if(-1===n)throw o("invalid WebSocket URI: ".concat(t)),new TypeError("Invalid argument: ".concat(t));if("wss"!==n.scheme&&"ws"!==n.scheme)throw o("invalid WebSocket URI scheme: ".concat(n.scheme)),new TypeError("Invalid argument: ".concat(t));this._sip_uri="sip:".concat(n.host).concat(n.port?":".concat(n.port):"",";transport=ws"),this._via_transport=n.scheme.toUpperCase()}var t,n,l;return t=e,(n=[{key:"connect",value:function(){if(i("connect()"),this.isConnected())i("WebSocket ".concat(this._url," is already connected"));else if(this.isConnecting())i("WebSocket ".concat(this._url," is connecting"));else{this._ws&&this.disconnect(),i("connecting to WebSocket ".concat(this._url));try{this._ws=new WebSocket(this._url,"sip"),this._ws.binaryType="arraybuffer",this._ws.onopen=this._onOpen.bind(this),this._ws.onclose=this._onClose.bind(this),this._ws.onmessage=this._onMessage.bind(this),this._ws.onerror=this._onError.bind(this)}catch(e){this._onError(e)}}}},{key:"disconnect",value:function(){i("disconnect()"),this._ws&&(this._ws.onopen=function(){},this._ws.onclose=function(){},this._ws.onmessage=function(){},this._ws.onerror=function(){},this._ws.close(),this._ws=null)}},{key:"send",value:function(e){return i("send()"),this.isConnected()?(this._ws.send(e),!0):(o("unable to send message, WebSocket is not open"),!1)}},{key:"isConnected",value:function(){return this._ws&&this._ws.readyState===this._ws.OPEN}},{key:"isConnecting",value:function(){return this._ws&&this._ws.readyState===this._ws.CONNECTING}},{key:"_onOpen",value:function(){i("WebSocket ".concat(this._url," connected")),this.onconnect()}},{key:"_onClose",value:function(e){var t=e.wasClean,n=e.code,r=e.reason;i("WebSocket ".concat(this._url," closed")),!1===t&&i("WebSocket abrupt disconnection");var s={socket:this,error:!t,code:n,reason:r};this.ondisconnect(s)}},{key:"_onMessage",value:function(e){var t=e.data;i("received WebSocket message"),this.ondata(t)}},{key:"_onError",value:function(e){o("WebSocket ".concat(this._url," error: ").concat(e))}},{key:"via_transport",get:function(){return this._via_transport},set:function(e){this._via_transport=e.toUpperCase()}},{key:"sip_uri",get:function(){return this._sip_uri}},{key:"url",get:function(){return this._url}}])&&r(t.prototype,n),l&&r(t,l),e}()},function(e,t,n){"use strict";const r=e=>!("object"!=typeof e||null===e||e instanceof RegExp||e instanceof Error||e instanceof Date),s=(e,t,n,i=new WeakMap)=>{if(n=Object.assign({deep:!1,target:{}},n),i.has(e))return i.get(e);i.set(e,n.target);const{target:o}=n;delete n.target;const l=e=>e.map(e=>r(e)?s(e,t,n,i):e);if(Array.isArray(e))return l(e);for(const a of Object.keys(e)){const u=e[a];let[c,h]=t(a,u,e);n.deep&&r(h)&&(h=Array.isArray(h)?l(h):s(h,t,n,i)),o[c]=h}return o};e.exports=s},function(e,t,n){"use strict";const r=(e,t)=>{if("string"!=typeof e&&!Array.isArray(e))throw new TypeError("Expected the input to be `string | string[]`");t=Object.assign({pascalCase:!1},t);if(0===(e=Array.isArray(e)?e.map(e=>e.trim()).filter(e=>e.length).join("-"):e.trim()).length)return"";if(1===e.length)return t.pascalCase?e.toUpperCase():e.toLowerCase();return e!==e.toLowerCase()&&(e=(e=>{let t=!1,n=!1,r=!1;for(let s=0;s<e.length;s++){const i=e[s];t&&/[a-zA-Z]/.test(i)&&i.toUpperCase()===i?(e=e.slice(0,s)+"-"+e.slice(s),t=!1,r=n,n=!0,s++):n&&r&&/[a-zA-Z]/.test(i)&&i.toLowerCase()===i?(e=e.slice(0,s-1)+"-"+e.slice(s-1),r=n,n=!1,t=!0):(t=i.toLowerCase()===i&&i.toUpperCase()!==i,r=n,n=i.toUpperCase()===i&&i.toLowerCase()!==i)}return e})(e)),e=e.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(e,t)=>t.toUpperCase()).replace(/\d+(\w|$)/g,e=>e.toUpperCase()),n=e,t.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;var n};e.exports=r,e.exports.default=r},function(e,t,n){"use strict";class r{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map)}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){const t=this.oldCache.get(e);return this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){return this.cache.has(e)?this.cache.get(e):this.oldCache.has(e)?this.oldCache.get(e):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(const[e]of this)yield e}*values(){for(const[,e]of this)yield e}*[Symbol.iterator](){for(const e of this.cache)yield e;for(const e of this.oldCache){const[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return this._size+e}}e.exports=r},function(e,t,n){"use strict";n.r(t),n.d(t,"Logger",(function(){return r})),n.d(t,"Exceptions",(function(){return s})),n.d(t,"Requestor",(function(){return R})),n.d(t,"Tools",(function(){return i})),n.d(t,"EventClient",(function(){return q})),n.d(t,"Phone",(function(){return Z})),n.d(t,"Session",(function(){return ee}));var r={};n.r(r),n.d(r,"LogHandler",(function(){return o})),n.d(r,"LOGLVL",(function(){return l}));var s={};n.r(s),n.d(s,"MediaNotPrepared",(function(){return u})),n.d(s,"NotReady",(function(){return c})),n.d(s,"InvalidMediaDevice",(function(){return h})),n.d(s,"InvalidOptions",(function(){return d})),n.d(s,"InvalidParameter",(function(){return f})),n.d(s,"NoActiveSession",(function(){return _})),n.d(s,"UnableToConnect",(function(){return p})),n.d(s,"NotAllowed",(function(){return m}));var i={};n.r(i),n.d(i,"createUUID",(function(){return x})),n.d(i,"compareObjects",(function(){return y})),n.d(i,"createDurationString",(function(){return T})),n.d(i,"browserIsOpera",(function(){return b})),n.d(i,"browserIsChrome",(function(){return S})),n.d(i,"browserIsFirefox",(function(){return E})),n.d(i,"browserIsSafari",(function(){return C})),n.d(i,"browserIsEdge",(function(){return A}));class o{constructor(e=2,t=null){this.extHandler=t,this.level=e}debug(...e){this._doLog(l.DEBUG,e)}info(...e){this._doLog(l.INFO,e)}warn(...e){this._doLog(l.WARN,e)}warning(...e){this._doLog(l.WARN,e)}error(...e){this._doLog(l.ERROR,e)}_doLog(e,t){if(!(e>this.level))if(1===t.length&&(t=t[0]),this.extHandler)this.extHandler(a[e],t);else switch(e){case l.DEBUG:console.debug(t);break;case l.INFO:console.info(t);break;case l.WARN:console.warn(t);break;case l.ERROR:console.error(t);break;default:console.log(t)}}}const l={DEBUG:3,INFO:2,WARN:1,ERROR:0},a={3:"DEBUG",2:"INFO ",1:"WARN ",0:"ERROR"};class u extends Error{constructor(e){super(),this.name="MediaNotPrepared",this.message=e}}class c extends Error{constructor(e){super(),this.name="NotReady",this.message=e}}class h extends Error{constructor(e){super(),this.name="InvalidMediaDevice",this.message=e}}class d extends Error{constructor(e,t){super(),this.name="InvalidOptions",this.param=e,this.message=t}}class f extends Error{constructor(e){super(),this.name="InvalidParameter",this.message=e}}class _ extends Error{constructor(){super(),this.name="NoActiveSession"}}class p extends Error{constructor(){super(),this.name="UnableToConnect"}}class m extends Error{constructor(e){super(),this.name="NotAllowed",this.message=e}}var v=n(3),g=n.n(v);function x(){let e=(new Date).getTime();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(e+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){let n=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"===t?n:3&n|8).toString(16)}))}function y(e,t){if(!e||!t)return!1;const n=Object.keys(t);return Object.keys(e).every((function(r){return-1!==n.indexOf(r)&&e[r]===t[r]}))}function T(e){const t=Math.floor(e/1e3);let n="";return t/86400>=1&&(n=n+Math.floor(t/86400)+"d "),t/3600>=1&&(n=n+Math.floor(t/3600)%24+"h "),t>=0?(n=n+("00"+Math.floor(t/60)%60).slice(-2)+":",n+=("00"+t%60).slice(-2)):n="00:00",n}function b(){return-1!==(navigator.userAgent.indexOf("Opera")||navigator.userAgent.indexOf("OPR"))}function S(){return-1!==navigator.userAgent.indexOf("Chrome")}function E(){return-1!==navigator.userAgent.indexOf("Firefox")}function C(){return-1!==navigator.userAgent.indexOf("Safari")}function A(){return-1!==navigator.userAgent.indexOf("Edge")}class w{constructor(e,t,n){this.socket=t,this._owner=e,this._request=n,this._handled=!1,this.data=n.data}resolve(e=null){this._assertSingleRequest();try{this.socket.send(JSON.stringify({type:"_ACK",id:this._request.id,data:e}))}catch(e){this._owner.log.warning(`Unable to resolve request ${this._request.id}: ${e}`)}}reject(e=null){this._assertSingleRequest();try{this.socket.send(JSON.stringify({type:"_NACK",id:this._request.id,reason:e}))}catch(e){this._owner.log.warning(`Unable to reject request ${this._request.id}: ${e}`)}}_assertSingleRequest(){if(this._handled)throw new m(`Request ${this._request.id} already fulfilled`);this._handled=!0}}class R extends g.a{constructor(e=null){super(),this.log=e||new o(l.INFO),this._pendingRequests=[]}receiveMessage(e,t){let n;this.log.debug("Received message: "+t);try{n=JSON.parse(t)}catch(e){return void this.log.warning("Unable to parse message: "+t)}if(n.hasOwnProperty("type")&&n.hasOwnProperty("id")){if("_ACK"===n.type||"_NACK"===n.type){const e=this.findPendingRequest(n.id);return e?("_ACK"===n.type?(this.log.debug("Received ACK with id="+n.id),e.resolve(n.data)):"_NACK"===n.type&&(this.log.debug("Received NACK with id="+n.id),e.reject(n.reason)),void this.removePendingRequest(n.id)):void this.log.warning(`Received message with invalid request id: ${n.id} - timed out?`)}if("_PING"===n.type)return this.log.debug("Received ping, sending pong (ACK)"),void e.send(JSON.stringify({type:"_ACK",id:n.id,data:"pong"}));this.log.debug(`Received new request of type '${n.type}' with id=${n.id}`),this.emit(n.type,new w(this,e,n))||(this.log.warning("Received request with no listeners, rejecting"),e.send(JSON.stringify({type:"_NACK",id:n.id,reason:"No handlers for that request type"})))}else this.log.warning(`Invalid message received: ${n} - missing type or id`)}sendRequest(e,t,n={}){if(!e||!t)throw new f("You must specify socket and request type");let r={type:t,id:x(),data:n};this.log.debug(`Sending request type '${t}' with id ${r.id}`);try{e.send(JSON.stringify(r))}catch(e){return this.log.warning(`Unable to send request ${r.id} socket error: ${e}`),new Promise((function(t,n){n("Unable to send request: "+e)}))}const s=this;return new Promise((function(e,t){s._pendingRequests.push({request:r,resolve:e,reject:t,timeoutObj:setTimeout((function(){s.log.warning(`Timeout on request ${r.id}, rejecting!`),s.removePendingRequest(r.id),t("Request timed out")}),1e4)})}))}ping(e){return this.log.debug("Sending ping"),this.sendRequest(e,"_PING")}removePendingRequest(e){for(let t in this._pendingRequests)if(this._pendingRequests[t].request.id===e)return clearTimeout(this._pendingRequests[t].timeoutObj),this._pendingRequests.splice(t,1),this.log.debug("Removed request id: "+e),!0;return this.log.warning(`Unable to remove request ${e} => not found`),!1}findPendingRequest(e){for(let t of this._pendingRequests)if(t.request.id===e)return t;return null}}var I,O,N=["data","Received event for subcription id "," payload: ","stringify","payload","Callback had unhandled exception ","reject","Invalid subscription id for event: ","wss://api.telegenta.com/es/","random","specification","callback","_previousSubscriptions","_activeSubscriptions","_pingTimerObj","_autoReconnect","_reconnectRetrySeconds","log","LogHandler","LOGLVL","_requestor","event","_connectServer","disconnect","readyState","close","isConnected","_socket","subscribe","InvalidParameter","You must specify both event spec and callback function","hasOwnProperty","event_name","NoActiveSession","then","Subscription to '","push","unsubscribe","You must specify subscription id","Unsubscribe id: ","sendRequest","info","' was successful","_removeSubscription","warning","' failed: ","fireEvent","Event "," was successful","debug","Removed local subscription: ","splice"," locally, not found?","Connecting to event server: ","_serverAddress","Unable to connect, already connecting","Unable to connect, already connected","Unable to connect, socket is still closing","addEventListener","open","Successfully connected to event service","message","receiveMessage","ping","_reconnectServer","catch","error","Resubscribing to ","Disconnected from event service","Websocket connection error","Unable to connect: ","floor","Reconnecting in ","Reconnect attempt successful","Auto reconnect disabled (disconnecting?)","_handleIncomingEvent"];I=N,O=236,function(e){for(;--e;)I.push(I.shift())}(++O);var k=function(e,t){return N[e-=0]};const D=k("0x0"),U=1+Math[k("0x1")]();class P{constructor(e,t,n){this.id=e,this[k("0x2")]=t,this[k("0x3")]=n}doCallback(e,t){return this[k("0x3")].apply(e,[t])}}class q{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this._socket=null,this[k("0x4")]=[],this[k("0x5")]=[],this[k("0x6")]=null,this[k("0x7")]=!1,this[k("0x8")]=U,this[k("0x9")]=e||new(r[k("0xa")])(r[k("0xb")].ERROR),this[k("0xc")]=new R(this[k("0x9")]),this[k("0xc")].on(k("0xd"),e=>{this._handleIncomingEvent(e)})}connect(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return e||(e=D),this._serverAddress=e,this[k("0x4")]=[],this[k("0x5")]=[],this[k("0xe")]()}[k("0xf")](){if(1!==this._socket[k("0x10")])throw new s.NoActiveSession;this[k("0x5")]=[],this[k("0x7")]=!1,this._socket[k("0x11")]()}[k("0x12")](){return!!this._socket&&1===this[k("0x13")][k("0x10")]}[k("0x14")](e,t){if(!e||!t)throw new(s[k("0x15")])(k("0x16"));if(!e[k("0x17")](k("0x18")))throw new(s[k("0x15")])("Your event specification must contain event name");if(!this[k("0x12")]())throw new(s[k("0x19")]);const n=this;return new Promise((function(r,s){n._requestor.sendRequest(n[k("0x13")],k("0x14"),e)[k("0x1a")]((function(s){n.log.debug(k("0x1b")+e[k("0x18")]+"' was successful, ID = "+s),n._activeSubscriptions[k("0x1c")](new P(s,e,t)),r(s)}),(function(t){n[k("0x9")].warning(k("0x1b")+e[k("0x18")]+"' failed: "+t),s(t)}))}))}[k("0x1d")](e){if(!e)throw new s.InvalidParameter(k("0x1e"));if(!this[k("0x12")]())throw new s.NoActiveSession;this.log.info(k("0x1f")+e);const t=this;return new Promise((function(n,r){t[k("0xc")][k("0x20")](t[k("0x13")],k("0x1d"),{id:e})[k("0x1a")](r=>{t[k("0x9")][k("0x21")]("Unsubscribe to '"+e+k("0x22")),t[k("0x23")](e),n(r)},n=>{t[k("0x9")][k("0x24")]("Remote unsubscribe to '"+e+k("0x25")+n),r(n)})}))}[k("0x26")](e,t){if(!this[k("0x12")]())throw new s.NoActiveSession;return new Promise((n,r)=>{this._requestor.sendRequest(this[k("0x13")],e,t)[k("0x1a")](t=>{this[k("0x9")][k("0x21")](k("0x27")+e+k("0x28")),n(t)},t=>{this[k("0x9")].warning("Event "+e+" failed: "+t),r(t)})})}[k("0x23")](e){for(let t in this[k("0x5")])if(this._activeSubscriptions[t].id===e)return this[k("0x9")][k("0x29")](k("0x2a")+e),this._activeSubscriptions[k("0x2b")](t,1),!0;return this[k("0x9")][k("0x24")]("Unable to remove subscription "+e+k("0x2c")),!1}[k("0xe")](){this.log[k("0x21")](k("0x2d")+this[k("0x2e")]);const e=this;return new Promise((function(t,n){if(e._socket)switch(e._socket.readyState){case 0:return void n(k("0x2f"));case 1:return void n(k("0x30"));case 2:return void n(k("0x31"))}e[k("0x13")]=new WebSocket(e._serverAddress);let r=!1;e[k("0x13")][k("0x32")](k("0x33"),(function(){e.log[k("0x21")](k("0x34")),r=!0,e._autoReconnect=!0,e[k("0x8")]=U,e[k("0x13")][k("0x32")](k("0x35"),(function(t){e[k("0xc")][k("0x36")](e._socket,t.data)})),clearTimeout(e[k("0x6")]),e[k("0x6")]=setInterval((function(){e[k("0xc")][k("0x37")](e[k("0x13")])[k("0x1a")]((function(){}),(function(t){e[k("0x9")][k("0x24")]("Ping failed: "+t),e[k("0x38")]()}))}),5e4),e[k("0x4")]=e[k("0x5")],e[k("0x5")]=[];for(let t of e._previousSubscriptions)e[k("0x14")](t[k("0x2")],t[k("0x3")])[k("0x39")]((function(n){e[k("0x9")][k("0x3a")](k("0x3b")+t.specification[k("0x18")]+" failed: "+n)}));t()})),e._socket[k("0x32")](k("0x11"),(function(){e[k("0x9")][k("0x21")](k("0x3c")),clearTimeout(e._pingTimerObj),e[k("0x38")]()})),e[k("0x13")][k("0x32")]("error",(function(t){e.log[k("0x3a")](k("0x3d")),r||n(k("0x3e")+t)}))}))}[k("0x38")](){if(this[k("0x7")]){const e=Math[k("0x3f")](this._reconnectRetrySeconds);this.log[k("0x21")](k("0x40")+e+" secs");const t=this;setTimeout((function(){t[k("0xe")]()[k("0x1a")]((function(){t[k("0x9")].info(k("0x41"))}),(function(){t[k("0x9")][k("0x24")]("Reconnect attempt failed")})),t._reconnectRetrySeconds<=300&&(t._reconnectRetrySeconds=2*t._reconnectRetrySeconds)}),1e3*t[k("0x8")])}else this[k("0x9")][k("0x21")](k("0x42"))}[k("0x43")](e){const t=e[k("0x44")].subscription_id;for(let n of this[k("0x5")])if(n.id===t){this[k("0x9")][k("0x29")](k("0x45")+n.id+k("0x46")+JSON[k("0x47")](e[k("0x44")][k("0x48")]));try{n[k("0x3")](e[k("0x44")][k("0x48")])}catch(t){this.log[k("0x24")](k("0x49")+t),e.resolve()}return void e.resolve()}e[k("0x4a")](k("0x4b")+t)}}var M,L,H=n(9),F=n.n(H),j=n(12),G=n.n(j),W=["icecandidate","Got ICE candidate: ","candidate","type","srflx","relatedAddress","relatedPort","ICE Timeout (","iceGatherTimeout"," ms) reached","ready","connecting","_startDurationUpdateTimer","_startRTCPStatsUpdateTimer","_setSessionState","playCallInitializedTone","progress","response","status_code","Answer call timeout after "," seconds","hangup","No active session, ignoring answer call timeout","_callAnswerTime","true","Call is being prerecorded","Media switch handling call: ","ended","_callEndTime","TERMINATED","failed","message","reason_phrase","dtmf","Session DTMF","New session info","_fireHoldStateEvent","ON_HOLD","_fireMuteStateEvent","unmuted","reinvite","update","getusermediafailed","Getusermedia failed","connection","Hanging up call","terminate","Hanging up call with disposition ","X-HDISP: ","answer","Rejected call","Rejecting call","destinationNumber","localNumberName","originatingNumber","Setting destination number to: ","_sessionState","LISTEN","direction","outgoing","Call direction is OUTBOUND","OUTBOUND","Unknown call direction: ","UNKNOWN","startRecording","Record: on","Request start recording","once","newInfo","local","Recording started successfully","recordingStateChange","Exception in recordingStateChange event: ","Recording start failed: ","_fireRecordingStateEvent","sendInfo","application/info","Record: off","Request stop recording","stopRecording","isRecording","mute","unmuteMic","Unmute microphone","unmute","toggleMute","muteMic","Hold call","unhold","Uncall call","isOnHold","Invalid DTMF code","Sending DTMF: ","sendDTMF","playTone","Unmute mic after DTMF","transfer","refer","_request","ruri","Transfer completed successfully","requestFailed","Transfer rejected: ","playback","Event service not enabled","Playback media file "," hangup after ","fireEvent","call_command","Call is not correct type (listen)","Invalid mode","_whisperMode","_fireWhisperModeChangeEvent","_durationUpdTimerObj","_callBeginTime","callDurationUpdate","Exception in call duration update event: ","_rtcpStatsTimer","_connection","getStats","assign","values","outbound-rtp","outboundPacketsSent","packetsSent","bytesSent","outboundBytesSent","inbound-rtp","inboundPacketsReceived","packetsReceived","inboundBytesReceived","bytesReceived","inboundPacketsLost","inboundJitter","jitter","remote-inbound-rtp","outboundPacketsLost","packetsLost","outboundJitter","roundTripTime","_calcReportMetrics","callQualityReportUpdate","Exception in call quality report update event: ","inboundPacketLossPct","effectiveLatency","max","mos","rFactor","qualityString","Bad","Good","Session state: ","sessionStateChange","_callDisposition","_callFinished","FAILED","cause","TEMP_UNAVAIL","playSignalTones","Not Found","Canceled","Rejected","INBOUND","REJECTED","BARRED","BUSY","incoming","Setting answer call timeout to: ","holdStateChange","Exception in hold state change event: ","whisperModeChange","Exception in whisper mode change event: ","toISOString","durationStr","callQualityReport","Exception in callEnded event: ","_handleRemoteAudio","Start media output (track):","streams","wss://api.telegenta.com/sip/","_mediaPermission","_mediaPermissionError","_UA","_isStarted","_eventClient","_sessionCounter","_activeSessions","_remoteAudioElement","_toneAudioElement","autoplay","_toneTimer","_repeatToneActive","_repeatToneSequence","_repeatToneSequencePos","_toneGainProcessor","_oscillator1","log","LogHandler","LOGLVL","level","DEBUG","debug","disable","JsSIP:*","Get media permission","mediaDevices","then","info","Media permission granted","error","Denied media permission: ","start","_checkMediaPermission","_options","_initToneGenerator","provisionToken","InvalidOptions","Using provisioning token authorization","wssServer","wss_server","eventServer","event_server","authorizationUsername","wss_username","password","wss_password","Missing password","callToken","Missing call token","connectEventService","Enabled event service because 'useCallDataInfoEvent' is enabled","connect","useCallDataInfoEvent","calldata_available","subscribe","Received remote call data info","_fireCallDataInfoEvent","Event callback failed: ","Subscription successful ID = ","Subscribe failed: ","Unable to connect to event server: ","WebSocketInterface","UnableToConnect","Unable to connect phone websocket: ","Starting phone","@telegenta.com","newRTCSession","New RTCSession","originator","remote","newInboundSession","_startRepeatTone","autoBusyIncoming","keys","length","uuid"," because there is already active calls","reject","Busy","There are no other sessions, adding incoming call","_addSession","INCOMING","_fireIncomingCallEvent","_setConnectionState","CONNECTING","connected","disconnected","registered","REGISTERED","unregistered","UNREGISTERED","registrationFailed","Successfully started phone","NotReady","removeAllListeners","Event client not running, not stopping","warning","Unable to disconnect event client","Phone client successfully stopped","call","Phone is not started","NotAllowed","Unable to make new calls while others are connecting","replace","Calling number: ","newOutboundSession","split","sip:","getSessionByUUID","hasOwnProperty","options","sessions","push","hasMediaPermission","hasMediaPermissionError","isStarted","browserIsFirefox","browserIsSafari","Playing tone "," / "," for "," ms","_oscillator2","frequency","value","toneVolume","stopTone","gain","_doRepeatTone","Playing repeated tone, pos = ","bind","Repeating tone stopped","AudioContext","webkitAudioContext","_toneStreamNode","srcObject","stream","createGain","createOscillator","holdAllCalls","Holding all active sessions","_checkForConnectingCalls","state","ACTIVE","hold","__containerId","Adding new session ","We now have "," sessions:","emit","sessionCreated","Exception in sessionCreated event: ","_removeSession","sessionRemoved","Exception in sessionRemoved event: ","_endRepeatTone","_sessionTerminated","Session "," terminated, removing in ","autoRemoveSessionTime","INITIALIZING","CALLING","PROGRESS","Exception in connectionStateChange event: ","Exception in incomingCall event: ","recordings","duration","answerDuration","activeDuration","createDurationString","answerDurationStr","activeDurationStr","callDataInfo","Exception in callDataInfo event: ","MediaNotPrepared","_callUUID","_webRTCSession","_iceCandidateTimer","_isOnHold","_isMuted","_isRecording","_recordingError","_destinationNumber","_localNumberName","_isListenCall","_manualDisposition","_currentReport","_answerCallTimeout","_answerCallTimer","_mediaSwitch","createUUID","Created new outbound session to: ","stun:stun.l.google.com:19302","X-Call-token: ","_phone","X-P-UUID: ","explicitCallerId","X-CID-Number-Id: ","explicitShortCallerId","extraHeaders","X-Short-CID-Id: ","metaInfo","X-Meta-Info: ","toString","substr","record","InvalidParameter","Record parameter must be a number"," days","mediaSwitchURI","Requesting specific media switch ","getOtherSessions","Requesting call grouping on media switch ","X-RMS: sip:","No other active calls, no media switch grouping requested","_initWebRTCSession","Error starting call:","answerCallTimeout","_setAnswerCallTimeout","request","X-P-UUID","getHeader","X-DID-NAME","_originName","from","display_name","_originatingNumber","uri","session","now"];M=W,L=179,function(e){for(;--e;)M.push(M.shift())}(++L);var B=function(e,t){return W[e-=0]};const V={wssServer:B("0x0"),eventServer:"wss://api.telegenta.com/es/",provisionToken:null,authorizationUsername:null,password:null,callToken:null,register:!0,iceGatherTimeout:3e3,playSignalTones:!0,logger:null,logLevel:3,connectEventService:!1,useCallDataInfoEvent:!1,toneVolume:.3,autoBusyIncoming:!0,autoRemoveSessionTime:3e3,playRingOnIncoming:!0,playCallInitializedTone:!1},K={1:[1209,697],2:[1336,697],3:[1477,697],a:[1633,697],4:[1209,770],5:[1336,770],6:[1477,770],b:[1633,770],7:[1209,852],8:[1336,852],9:[1477,852],c:[1633,852],"*":[1209,941],0:[1336,941],"#":[1477,941],d:[1633,941]},z=[{d:250,f1:425,f2:0,g:250}],J=[{d:500,f1:425,f2:0,g:500}],Y=[{d:333,f1:950,f2:0,g:0},{d:333,f1:1400,f2:0,g:0},{d:333,f1:1800,f2:0,g:1e3}],$=[{d:200,f1:500,f2:0,g:0},{d:200,f1:700,f2:0,g:5e3}],X=[{d:1e3,f1:425,f2:0,g:4e3}],Q=[{d:150,f1:400,f2:0,g:0},{d:150,f1:600,f2:0,g:0},{d:150,f1:400,f2:0,g:0},{d:150,f1:600,f2:0,g:0},{d:150,f1:400,f2:0,g:0},{d:150,f1:600,f2:0,g:3e3}];class Z extends g.a{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;super(),this[B("0x1")]=!1,this[B("0x2")]=!1,this[B("0x3")]=null,this._connectionState=null,this[B("0x4")]=!1,this[B("0x5")]=null,this._options=null,this[B("0x6")]=0,this[B("0x7")]={},this[B("0x8")]=document.createElement("AUDIO"),this[B("0x8")].autoplay=!0,this._toneAudioElement=document.createElement("AUDIO"),this[B("0x9")][B("0xa")]=!0,this[B("0xb")]=null,this[B("0xc")]=!1,this[B("0xd")]=[],this[B("0xe")]=0,this[B("0xf")]=null,this[B("0x10")]=null,this._oscillator2=null,this[B("0x11")]=e||new(r[B("0x12")])(r[B("0x13")].INFO),this[B("0x11")][B("0x14")],r[B("0x13")][B("0x15")],F.a[B("0x16")][B("0x17")](B("0x18"))}prepareMedia(){this[B("0x11")].info(B("0x19"));const e=this,t={audio:!0,video:!1};return new Promise((function(n,r){navigator[B("0x1a")].getUserMedia(t)[B("0x1b")](()=>{e[B("0x1")]=!0,e[B("0x2")]=!1,e.log[B("0x1c")](B("0x1d")),n()},t=>{e[B("0x1")]=!1,e._mediaPermissionError=!0,e[B("0x11")][B("0x1e")](B("0x1f")+t),r(t)})}))}[B("0x20")](e){if(this[B("0x21")](),this[B("0x4")]&&(this.log.warning("Phone already started, stopping first"),this.stop()),this[B("0x22")]=Object.assign(V,e),this[B("0x23")](),this[B("0x22")][B("0x24")]){let e=null;try{e=JSON.parse(atob(this[B("0x22")].provisionToken))}catch(e){throw new(s[B("0x25")])(B("0x24"),"Invalid token")}this[B("0x11")][B("0x1c")](B("0x26")),this[B("0x22")][B("0x27")]=e[B("0x28")],this[B("0x22")][B("0x29")]=e[B("0x2a")],this[B("0x22")][B("0x2b")]=e[B("0x2c")],this[B("0x22")][B("0x2d")]=e[B("0x2e")],this[B("0x22")].callToken=e.wss_token}else{if(this[B("0x11")][B("0x1c")]("Using manual specified credentials"),!this[B("0x22")][B("0x2b")])throw new s.InvalidOptions(B("0x2b"),"Missing username");if(!this[B("0x22")].password)throw new(s[B("0x25")])(B("0x2d"),B("0x2f"));if(!this._options.callToken)throw new(s[B("0x25")])(B("0x30"),B("0x31"))}this[B("0x22")].useCallDataInfoEvent&&!this[B("0x22")][B("0x32")]&&(this.log.info(B("0x33")),this[B("0x22")][B("0x32")]=!0),this[B("0x22")][B("0x32")]&&(this[B("0x5")]=new q(this[B("0x11")]),this[B("0x5")][B("0x34")](this[B("0x22")][B("0x29")])[B("0x1b")](()=>{if(this[B("0x11")][B("0x1c")]("Connected to event server"),this[B("0x22")][B("0x35")]){let e={event_name:B("0x36"),call_token:this[B("0x22")].callToken};this[B("0x5")][B("0x37")](e,e=>{try{this[B("0x11")][B("0x16")](B("0x38")),this[B("0x11")].debug(e),this[B("0x39")](e)}catch(e){this[B("0x11")][B("0x1e")](B("0x3a")+e)}})[B("0x1b")](e=>{this[B("0x11")][B("0x1c")](B("0x3b")+e)},e=>{this[B("0x11")][B("0x1e")](B("0x3c")+e)})}},e=>{this.log[B("0x1e")](B("0x3d")+e)}));let t=null;try{t=new(F.a[B("0x3e")])(this[B("0x22")][B("0x27")])}catch(e){throw new(s[B("0x3f")])(B("0x40")+e)}this.log[B("0x1c")](B("0x41")),this.log[B("0x16")](this[B("0x22")]),this._UA=new F.a.UA({sockets:[t],authorization_user:this[B("0x22")][B("0x2b")],password:this[B("0x22")][B("0x2d")],register:this[B("0x22")].register,display_name:this._options.authorizationUsername,uri:this._options[B("0x2b")]+B("0x42"),session_timers:!1});const n=this;this[B("0x3")].on(B("0x43"),(function(e){if(n[B("0x11")].debug(B("0x44")),e[B("0x45")]===B("0x46")){const t=new ee(n);if(t[B("0x47")](e),n[B("0x22")].playRingOnIncoming&&n[B("0x48")](Q),n[B("0x22")][B("0x49")]){if(Object[B("0x4a")](n[B("0x7")])[B("0x4b")]>0)return n.log[B("0x1c")]("Autorejecting incoming call "+t[B("0x4c")]+B("0x4d")),void t[B("0x4e")](486,B("0x4f"));n[B("0x11")].debug(B("0x50"))}n[B("0x51")](t),t._setSessionState(B("0x52")),n[B("0x53")](t)}})),this[B("0x3")].on("connecting",(function(){n[B("0x54")](B("0x55"))})),this[B("0x3")].on(B("0x56"),(function(){n._setConnectionState("CONNECTED")})),this[B("0x3")].on(B("0x57"),(function(){n[B("0x54")]("DISCONNECTED")})),this._UA.on(B("0x58"),(function(){n._setConnectionState(B("0x59"))})),this[B("0x3")].on(B("0x5a"),(function(){n[B("0x54")](B("0x5b"))})),this._UA.on(B("0x5c"),(function(){n[B("0x54")]("REGISTRATION_FAILED")})),this[B("0x3")].start(),this[B("0x4")]=!0,this[B("0x11")][B("0x1c")](B("0x5d"))}stop(){if(!this._isStarted)throw new(s[B("0x5e")])("Phone is not started");if(this._UA[B("0x5f")](),this._UA.stop(),delete this[B("0x3")],this._eventClient){try{this._eventClient.disconnect(),delete this[B("0x5")]}catch(e){this[B("0x11")][B("0x61")](B("0x62"))}this[B("0x4")]=!1,this.log[B("0x1c")](B("0x63"))}else this[B("0x11")].debug(B("0x60"))}[B("0x64")](e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this[B("0x4")])throw new(s[B("0x5e")])(B("0x65"));if(this._checkForConnectingCalls())throw s[B("0x66")](B("0x67"));this.holdAllCalls();const n=Object.assign({record:!1,maximumCallCost:0,answerCallTimeout:0,explicitCallerId:null,explicitShortCallerId:null,metaInfo:null,_isListenCall:!1},t);e=e.trim()[B("0x68")](/ |\(|\)/g,""),this[B("0x11")][B("0x1c")](B("0x69")+e);let r=new ee(this);return r[B("0x6a")](e,n),this[B("0x51")](r),r}listen(e){const t=e[B("0x6b")]("@");let n=t[0],r=B("0x6c")+t[1];return this[B("0x11")].debug("Initiating listen to call with uuid "+n+" on media switch "+r),this[B("0x64")]("listen-"+n,{mediaSwitchURI:r,_isListenCall:!0})}[B("0x6d")](e){for(let t in this[B("0x7")])if(this[B("0x7")][B("0x6e")](t)&&this._activeSessions[t][B("0x4c")]===e)return this[B("0x7")][t];return null}get[B("0x6f")](){return this[B("0x22")]}get[B("0x70")](){let e=[];for(let t in this[B("0x7")])this[B("0x7")].hasOwnProperty(t)&&e[B("0x71")](this[B("0x7")][t]);return e}get[B("0x72")](){return this._mediaPermission}get[B("0x73")](){return this[B("0x2")]}get[B("0x74")](){return this._isStarted}get browserSupported(){return i.browserIsChrome()||i[B("0x75")]()||i.browserIsOpera()||i[B("0x76")]()}get remoteAudioElement(){return this[B("0x8")]}playTone(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;this.log[B("0x16")](B("0x77")+t+B("0x78")+n+B("0x79")+e+B("0x7a")),this[B("0x10")].frequency.value=t,this[B("0x7b")][B("0x7c")][B("0x7d")]=n,this[B("0xf")].gain.value=this[B("0x22")][B("0x7e")];const s=this;this[B("0xb")]=setTimeout((function(){s[B("0x7f")](),r&&r()}),e)}[B("0x7f")](){this[B("0x10")].frequency.value=0,this._oscillator2.frequency[B("0x7d")]=0,this[B("0xf")][B("0x80")][B("0x7d")]=0,clearTimeout(this[B("0xb")])}[B("0x48")](e){this.log[B("0x1c")]("Repeating tone sequence started"),this[B("0x11")].debug(e),this[B("0xd")]=e,this[B("0xe")]=0,this[B("0xc")]=!0,this[B("0x81")]()}[B("0x81")](){if(this[B("0xc")]){this.log[B("0x16")](B("0x82")+this[B("0xe")]);let e=this[B("0xd")][this[B("0xe")]];this[B("0xe")]++,this[B("0xe")]===this[B("0xd")].length&&(this[B("0xe")]=0);const t=this;this.playTone(e.d,e.f1,e.f2,(function(){setTimeout(t._doRepeatTone[B("0x83")](t),e.g)}))}}_endRepeatTone(){this[B("0xc")]&&(this[B("0x11")].info(B("0x84")),this[B("0xc")]=!1,this[B("0x7f")]())}[B("0x23")](){const e=window[B("0x85")]||window[B("0x86")]||!1;if(!e)throw new s.NotAllowed("Audio API not supported by this browser");const t=new e;this[B("0x87")]=t.createMediaStreamDestination(),this[B("0x9")][B("0x88")]=this[B("0x87")][B("0x89")],this[B("0xf")]=t[B("0x8a")](),this[B("0xf")][B("0x80")][B("0x7d")]=0,this[B("0xf")][B("0x34")](this[B("0x87")]),this[B("0x10")]=t.createOscillator(),this[B("0x10")][B("0x34")](this[B("0xf")]),this[B("0x10")][B("0x7c")][B("0x7d")]=0,this[B("0x10")][B("0x20")](),this[B("0x7b")]=t[B("0x8b")](),this[B("0x7b")][B("0x34")](this[B("0xf")]),this[B("0x7b")][B("0x7c")][B("0x7d")]=0,this._oscillator2[B("0x20")]()}[B("0x8c")](){if(this.log[B("0x1c")](B("0x8d")),this[B("0x8e")]())throw s[B("0x66")]("A session is currently connecting");for(let e in this._activeSessions)if(this._activeSessions[B("0x6e")](e)){let t=this[B("0x7")][e];t[B("0x8f")]===B("0x90")&&t[B("0x91")]()}}_addSession(e){this[B("0x6")]++,e[B("0x92")]=this[B("0x6")],this[B("0x11")][B("0x1c")](B("0x93")+e[B("0x92")]+": "+e[B("0x4c")]),this[B("0x7")][e.__containerId]=e,this[B("0x11")][B("0x16")](B("0x94")+Object[B("0x4a")](this[B("0x7")])[B("0x4b")]+B("0x95")),this[B("0x11")][B("0x16")](this[B("0x7")]);try{this[B("0x96")](B("0x97"),{session:e})}catch(e){this.log[B("0x1e")](B("0x98")+e)}}[B("0x99")](e){this[B("0x11")].info("Removing session "+e[B("0x92")]+": "+e[B("0x4c")]);try{this[B("0x96")](B("0x9a"),{session:e})}catch(e){this[B("0x11")].error(B("0x9b")+e)}delete this[B("0x7")][e.__containerId],this.log.debug("We now have "+Object[B("0x4a")](this._activeSessions)[B("0x4b")]+" sessions"),this[B("0x11")][B("0x16")](this[B("0x7")]),this[B("0x9c")]()}[B("0x9d")](e){this[B("0x11")][B("0x16")](B("0x9e")+e.uuid+B("0x9f")+this[B("0x22")][B("0xa0")]+B("0x7a"));const t=this;setTimeout((function(){t[B("0x99")](e)}),this[B("0x22")].autoRemoveSessionTime)}_checkForConnectingCalls(){for(let e in this[B("0x7")])if(this[B("0x7")][B("0x6e")](e)){let t=this[B("0x7")][e];if(t[B("0x8f")]===B("0xa1")||t[B("0x8f")]===B("0xa2")||t[B("0x8f")]===B("0xa3")||"INCOMING"===t[B("0x8f")])return!0}return!1}[B("0x54")](e){this[B("0x11")][B("0x1c")]("Connection state: "+e),this._connectionState=e;try{this[B("0x96")]("connectionStateChange",{state:e})}catch(e){this.log[B("0x1e")](B("0xa4")+e)}}[B("0x53")](e){try{this[B("0x96")]("incomingCall",e)}catch(e){this[B("0x11")][B("0x1e")](B("0xa5")+e)}}[B("0x39")](){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e=G()(t),e[B("0xa6")]=G()(t[B("0xa6")]),e[B("0xa7")]=1e3*e[B("0xa7")],e[B("0xa8")]=1e3*e[B("0xa8")],e[B("0xa9")]=1e3*e[B("0xa9")],e.durationStr=i[B("0xaa")](e[B("0xa7")]),e[B("0xab")]=e[B("0xa8")]?i.createDurationString(e[B("0xa8")]):"",e[B("0xac")]=e[B("0xa9")]?i.createDurationString(e[B("0xa9")]):"";try{this[B("0x96")](B("0xad"),e)}catch(e){this[B("0x11")][B("0x1e")](B("0xae")+e)}}[B("0x21")](){if(!this[B("0x1")])throw new(s[B("0xaf")])}}class ee extends g.a{constructor(e){super(),this._phone=e,this[B("0x11")]=e[B("0x11")],this[B("0xb0")]=null,this[B("0xb1")]=null,this._sessionState=null,this[B("0xb2")]=null,this[B("0xb3")]=!1,this[B("0xb4")]=!1,this[B("0xb5")]=!1,this[B("0xb6")]=null,this._callBeginTime=null,this._callAnswerTime=null,this._callEndTime=null,this._durationUpdTimerObj=null,this._originatingNumber=null,this[B("0xb7")]=null,this._callDisposition=null,this[B("0xb8")]=null,this[B("0xb9")]=!1,this._whisperMode=null,this[B("0xba")]=null,this._rtcpStatsTimer=null,this[B("0xbb")]=null,this[B("0xbc")]=0,this[B("0xbd")]=null,this[B("0xbe")]=null}newOutboundSession(e,t){this._callUUID=i[B("0xbf")](),this[B("0x11")][B("0x16")](B("0xc0")+e+" ["+this[B("0xb0")]+"]"),this.destinationNumber=e;let n={mediaConstraints:{audio:!0,video:!1},pcConfig:{iceServers:[{urls:[B("0xc1")]}]},extraHeaders:[B("0xc2")+this[B("0xc3")][B("0x6f")][B("0x30")],B("0xc4")+this[B("0xb0")],"X-Max-cost: "+t.maximumCallCost]};if(t[B("0xc5")]&&n.extraHeaders[B("0x71")](B("0xc6")+t[B("0xc5")]),t[B("0xc7")]&&n[B("0xc8")].push(B("0xc9")+t.explicitShortCallerId),t[B("0xca")]&&n[B("0xc8")][B("0x71")](B("0xcb")+encodeURI(t[B("0xca")][B("0xcc")]()[B("0xcd")](0,255))),t[B("0xce")]){if(isNaN(t[B("0xce")]))throw new(s[B("0xcf")])(B("0xd0"));this.log.debug("Recording enabled and kept for "+t[B("0xce")]+B("0xd1")),n[B("0xc8")][B("0x71")]("X-Record: "+t[B("0xce")]),this[B("0xb5")]=!0}else this[B("0xb5")]=!1;if(this[B("0xb9")]=t._isListenCall,t[B("0xd2")])this[B("0x11")][B("0x16")](B("0xd3")+t.mediaSwitchURI),n[B("0xc8")].push("X-RMS: "+t.mediaSwitchURI);else{const e=this[B("0xd4")]();e.length>0?e[0]._mediaSwitch?(this[B("0x11")][B("0x16")](B("0xd5")+e[0]._mediaSwitch),n[B("0xc8")][B("0x71")](B("0xd6")+e[0][B("0xbe")])):this[B("0x11")].warning("Other sessions exist but media switch address is invalid"):this[B("0x11")][B("0x16")](B("0xd7"))}const r="sip:"+e+B("0x42");try{this[B("0xd8")](this._phone[B("0x3")][B("0x64")](r,n))}catch(e){return this[B("0x11")][B("0x1e")](B("0xd9"),e),null}t[B("0xda")]&&this[B("0xdb")](t[B("0xda")])}[B("0x47")](e){this[B("0xb0")]=e[B("0xdc")].getHeader(B("0xdd"),0),this[B("0xb7")]=e[B("0xdc")][B("0xde")]("X-DID",0),this[B("0xb8")]=unescape(e.request[B("0xde")](B("0xdf"),0)),this[B("0xe0")]=e[B("0xdc")][B("0xe1")][B("0xe2")],this[B("0xe3")]=e[B("0xdc")][B("0xe1")][B("0xe4")].user,this[B("0x11")][B("0x1c")]("Incoming call from "+this[B("0xe3")]+" ["+this[B("0xb0")]+"]"),this.log[B("0x16")](e),this[B("0xbe")]=e[B("0xdc")][B("0xde")]("X-MS"),this[B("0x11")][B("0x16")]("Media switch handling call: "+this[B("0xbe")]),this[B("0xd8")](e[B("0xe5")])}[B("0xd4")](){const e=this._phone[B("0x70")];let t=[];for(let n in e)e[n]&&e[n][B("0x92")]!==this[B("0x92")]&&t[B("0x71")](e[n]);return t}_initWebRTCSession(e){this[B("0xb1")]=e,this._callBeginTime=Date[B("0xe6")]();const t=this;this[B("0xb1")].on(B("0xe7"),(function(e){const n=e.candidate;t[B("0x11")][B("0x16")](B("0xe8")+n[B("0xe9")]),n[B("0xea")]===B("0xeb")&&null!==n[B("0xec")]&&null!==n[B("0xed")]?(t[B("0x11")].info("Accepting ICE candidate: "+n[B("0xe9")]),null!=t._iceCandidateTimer&&clearTimeout(t[B("0xb2")]),e.ready()):(null!=t[B("0xb2")]&&clearTimeout(t[B("0xb2")]),t[B("0xb2")]=setTimeout((function(e){t[B("0x11")].debug(B("0xee")+t[B("0xc3")][B("0x6f")][B("0xef")]+B("0xf0")),e[B("0xf1")]()}),t._phone[B("0x6f")][B("0xef")],e))})),this[B("0xb1")].on(B("0xf2"),(function(){t[B("0xf3")](),t[B("0xf4")](),t[B("0xf5")](B("0xa1"))})),this[B("0xb1")].on("sending",(function(){t._phone[B("0x6f")][B("0xf6")]&&t[B("0xc3")][B("0x48")]($),t[B("0xf5")](B("0xa2"))})),this._webRTCSession.on(B("0xf7"),(function(e){"remote"===e.originator&&(t[B("0xf5")](B("0xa3"),{code:e[B("0xf8")].status_code}),t[B("0xc3")]._endRepeatTone(),180===e[B("0xf8")][B("0xf9")]&&t[B("0xc3")][B("0x48")](X),t._answerCallTimeout&&(t._answerCallTimer=setTimeout((function(){t[B("0x11")][B("0x1c")](B("0xfa")+t._answerCallTimeout+B("0xfb"));try{t[B("0xfc")]()}catch(e){t[B("0x11")].info(B("0xfd"))}}),1e3*t[B("0xbc")])))})),this[B("0xb1")].on("accepted",(function(e){if(t[B("0xc3")][B("0x9c")](),t[B("0xfe")]=Date[B("0xe6")](),t._answerCallTimeout&&(clearTimeout(t[B("0xbd")]),t[B("0xbc")]=0),e[B("0x45")]===B("0x46")){e.response[B("0xde")]("X-Recording")===B("0xff")?t.log[B("0x16")](B("0x100")):t.log[B("0x16")]("No call recording started yet"),t[B("0xbe")]=e[B("0xf8")][B("0xde")]("X-MS"),t.log[B("0x16")](B("0x101")+t[B("0xbe")])}})),this._webRTCSession.on("confirmed",(function(){t[B("0xf5")](B("0x90"))})),this[B("0xb1")].on(B("0x102"),(function(){t[B("0xc3")][B("0x9c")](),t[B("0x103")]=Date[B("0xe6")](),t[B("0xbc")]&&clearTimeout(t._answerCallTimer),t[B("0xf5")](B("0x104"))})),this[B("0xb1")].on(B("0x105"),(function(e){let n;t[B("0xc3")][B("0x9c")](),t[B("0x103")]=Date.now(),t[B("0xbc")]&&clearTimeout(t[B("0xbd")]),n=e.message?e[B("0x106")][B("0xf9")]+" "+e[B("0x106")][B("0x107")]:"",t[B("0xf5")]("FAILED",{cause:e.cause,message:n})})),this._webRTCSession.on(B("0x108"),(function(e){t.log[B("0x16")](B("0x109"),e)})),this[B("0xb1")].on("newInfo",(function(e){t.log[B("0x16")](B("0x10a"),e)})),this[B("0xb1")].on(B("0x91"),(function(){t[B("0xb3")]=!0,t[B("0x10b")](),t[B("0xf5")](B("0x10c"))})),this[B("0xb1")].on("unhold",(function(){t[B("0xb3")]=!1,t._fireHoldStateEvent(),t[B("0xf5")](B("0x90"))})),this._webRTCSession.on("muted",(function(e){t[B("0x11")].debug("Microphone muted",e),t._isMuted=!0,t[B("0x10d")]()})),this[B("0xb1")].on(B("0x10e"),(function(e){t[B("0x11")][B("0x16")]("Microphone unmuted",e),t[B("0xb4")]=!1,t[B("0x10d")]()})),this[B("0xb1")].on(B("0x10f"),(function(e){t[B("0x11")][B("0x16")]("Session reinvite",e)})),this[B("0xb1")].on(B("0x110"),(function(e){t[B("0x11")].debug("Session update",e)})),this[B("0xb1")].on(B("0x111"),(function(e){t[B("0x11")][B("0x1e")](B("0x112"),e)})),t[B("0xb1")][B("0x113")]&&t._handleRemoteAudio(t[B("0xb1")]),this.log[B("0x16")]("WebRTCSession object:"),this.log[B("0x16")](this)}[B("0xfc")](){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e?(this[B("0x11")][B("0x1c")](B("0x116")+e),this[B("0xba")]=e,this._webRTCSession[B("0x115")]({extraHeaders:[B("0x117")+e]})):(this[B("0x11")][B("0x1c")](B("0x114")),this[B("0xb1")][B("0x115")]())}[B("0x118")](){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t={mediaConstraints:{audio:!0,video:!1},pcConfig:{iceServers:[{urls:["stun:stun.l.google.com:19302"]}]},extraHeaders:[B("0xc2")+this._phone.options[B("0x30")]]};e&&t[B("0xc8")][B("0x71")]("X-Meta-Info: "+encodeURI(e.toString().substr(0,255))),this._webRTCSession[B("0x118")](t),this._handleRemoteAudio(this._webRTCSession)}[B("0x4e")](){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:603,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:B("0x119");this.log[B("0x1c")](B("0x11a")),this[B("0xb1")][B("0x115")]({status_code:e,reason_phrase:t})}get[B("0x4c")](){return this[B("0xb0")]}get[B("0x11b")](){return this[B("0xb7")]}get[B("0x11c")](){return this[B("0xb8")]}get[B("0x11d")](){return this[B("0xe3")]}set[B("0x11b")](e){this.log[B("0x16")](B("0x11e")+e),this[B("0xb7")]=e}get[B("0x8f")](){return this[B("0x11f")]}get direction(){return this[B("0xb9")]?(this[B("0x11")][B("0x16")]("Call direction is LISTEN"),B("0x120")):"incoming"===this[B("0xb1")][B("0x121")]?(this[B("0x11")][B("0x16")]("Call direction is INBOUND"),"INBOUND"):this._webRTCSession[B("0x121")]===B("0x122")?(this[B("0x11")][B("0x16")](B("0x123")),B("0x124")):(this[B("0x11")][B("0x1e")](B("0x125")+this[B("0xb1")][B("0x121")]),B("0x126"))}[B("0x127")](){const e={extraHeaders:[B("0x128")]};this[B("0x11")].debug(B("0x129"));const t=this;this[B("0xb1")][B("0x12a")](B("0x12b"),e=>{e[B("0x45")]===B("0x12c")&&(e.info.on("succeeded",(function(){t[B("0x11")][B("0x1c")](B("0x12d")),t[B("0xb5")]=!0;try{t[B("0x96")](B("0x12e"),{state:!0,error:null})}catch(e){t[B("0x11")][B("0x1e")](B("0x12f")+e)}})),e.info.on(B("0x105"),(function(e){t[B("0xb6")]=e[B("0xf8")][B("0x107")],t[B("0x11")][B("0x1e")](B("0x130")+t[B("0xb6")]),t[B("0x131")]()})))}),this[B("0xb1")][B("0x132")](B("0x133"),null,e)}stopRecording(){const e={extraHeaders:[B("0x134")]};this[B("0x11")][B("0x16")](B("0x135"));const t=this;this[B("0xb1")][B("0x12a")](B("0x12b"),e=>{e[B("0x1c")].on("succeeded",(function(){t.log[B("0x1c")]("Recording stopped successfully"),t._isRecording=!1;try{t[B("0x96")](B("0x12e"),{state:!1,error:null})}catch(e){t[B("0x11")][B("0x1e")](B("0x12f")+e)}})),e.info.on(B("0x105"),(function(e){t.log[B("0x1e")]("Recording stopped failed: "+e.response[B("0x107")]);try{t[B("0x96")](B("0x12e"),{state:t[B("0xb5")],error:e[B("0xf8")][B("0x107")]})}catch(e){t.log[B("0x1e")](B("0x12f")+e)}}))}),this[B("0xb1")][B("0x132")]("application/info",null,e)}toggleRecording(){return this[B("0xb5")]?(this[B("0x136")](),!1):(this.startRecording(),!0)}get[B("0x137")](){return this[B("0xb5")]}muteMic(){this[B("0x11")].info("Mute microphone"),this._webRTCSession[B("0x138")]()}[B("0x139")](){this.log[B("0x1c")](B("0x13a")),this[B("0xb1")][B("0x13b")]()}[B("0x13c")](){this[B("0xb4")]?this[B("0x139")]():this[B("0x13d")]()}get isMuted(){return this[B("0xb4")]}[B("0x91")](){this.log[B("0x1c")](B("0x13e")),this[B("0xb1")][B("0x91")]()}[B("0x13f")](){this[B("0x11")].info(B("0x140")),this._phone[B("0x8c")](),this._webRTCSession[B("0x13f")]()}toggleHold(){this[B("0xb3")]?this.unhold():this.hold()}get[B("0x141")](){return this._isOnHold}sendDTMF(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!(e in K))throw new(s[B("0xcf")])(B("0x142"));if(this[B("0x11")].info(B("0x143")+e),this[B("0xb1")][B("0x144")](e),t){const t=K[e];if(this._isMuted)this[B("0x11")][B("0x16")]("Mic already muted, just sending DTMF"),this[B("0xc3")][B("0x145")](500,t[0],t[1]);else{this.log[B("0x16")]("Mute mic while sending DTMF"),this[B("0xb1")][B("0x138")]();const e=this;this[B("0xc3")][B("0x145")](500,t[0],t[1],(function(){e[B("0x11")][B("0x16")](B("0x146")),e[B("0xb1")][B("0x13b")]()}))}}}[B("0x147")](e){this.log[B("0x1c")]("Transferring "+this[B("0x4c")]+" => "+e[B("0x4c")]);const t=this[B("0xb1")][B("0x148")](this[B("0xb1")][B("0x149")][B("0x14a")],{replaces:e[B("0xb1")]}),n=this;t.on("requestSucceeded",(function(){n[B("0x11")][B("0x1c")](B("0x14b"))})),t.on(B("0x14c"),(function(e){n[B("0x11")].error(B("0x14d")+e)})),t.on(B("0x105"),(function(e){n[B("0x11")][B("0x1e")]("Transfer failed: "+e)}))}[B("0x14e")](e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this[B("0xc3")][B("0x22")][B("0x32")])throw new s.NotAllowed(B("0x14f"));this[B("0x11")][B("0x1c")](B("0x150")+e+B("0x151")+t);const n=this[B("0xc3")]._eventClient[B("0x152")](B("0x153"),{call_uuid:this[B("0x4c")],call_command:B("0x14e"),media_file_id:e,hangup_after:t});return t&&(this[B("0xc3")][B("0x8")][B("0x88")]=null,n.then(()=>{this[B("0xf5")]("PLAYBACK")})),n}setWhisperMode(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(!this[B("0x121")]===B("0x120"))throw new(s[B("0x66")])(B("0x154"));if(t<0||t>2)throw new(s[B("0x25")])(B("0x155"));0===t&&(e=0),1===t&&(e=2),2===t&&(e=3),this[B("0x144")](e,!1),this[B("0x156")]=t,this[B("0x157")]()}[B("0xf3")](){const e=this;this[B("0x158")]||(this[B("0x158")]=setInterval((function(){const t=e[B("0xfe")]?Date[B("0xe6")]()-e[B("0xfe")]:null,n={uuid:e[B("0xb0")],beginTime:e._callBeginTime,answerTime:e[B("0xfe")],endTime:e[B("0x103")],duration:Date.now()-e[B("0x159")],durationStr:i[B("0xaa")](Date[B("0xe6")]()-e[B("0x159")]),activeDuration:t,activeDurationStr:t?i.createDurationString(t):""};try{e.emit(B("0x15a"),n)}catch(t){e[B("0x11")][B("0x1e")](B("0x15b")+t)}}),1e3))}[B("0xf4")](){if(!this[B("0x15c")]){const e={outboundPacketsSent:0,outboundBytesSent:0,outboundPacketsLost:0,outboundJitter:0,inboundPacketsReceived:0,inboundBytesReceived:0,inboundPacketsLost:0,inboundJitter:0,roundTripTime:0};this._currentReport=Object.assign({},e),this._rtcpStatsTimer=setInterval(()=>{this[B("0xb1")][B("0x15d")][B("0x15e")]().then(t=>{let n=Object[B("0x15f")]({},e),r=Object[B("0x15f")]({},e);for(let e of t[B("0x160")]())switch(e[B("0xea")]){case B("0x161"):n[B("0x162")]=e[B("0x163")],r.outboundPacketsSent=e[B("0x163")]-this[B("0xbb")].outboundPacketsSent,n.outboundBytesSent=e[B("0x164")],r[B("0x165")]=e[B("0x164")]-this[B("0xbb")][B("0x165")];break;case B("0x166"):n[B("0x167")]=e.packetsReceived,r[B("0x167")]=e[B("0x168")]-this[B("0xbb")].inboundPacketsReceived,n[B("0x169")]=e[B("0x16a")],r[B("0x169")]=e[B("0x16a")]-this[B("0xbb")][B("0x169")],n[B("0x16b")]=e.packetsLost,r[B("0x16b")]=e.packetsLost-this[B("0xbb")].inboundPacketsLost,n[B("0x16c")]=1e3*e[B("0x16d")],r[B("0x16c")]=1e3*e[B("0x16d")];break;case B("0x16e"):n[B("0x16f")]=e[B("0x170")],r[B("0x16f")]=e[B("0x170")]-this[B("0xbb")][B("0x16f")],n[B("0x171")]=1e3*e[B("0x16d")],r[B("0x171")]=1e3*e[B("0x16d")],n[B("0x172")]=1e3*e[B("0x172")],r.roundTripTime=1e3*e[B("0x172")]}if(this._currentReport=this[B("0x173")](n),n[B("0x172")]){const e={total:this[B("0xbb")],delta:this[B("0x173")](r)};try{this[B("0x96")](B("0x174"),e)}catch(e){this[B("0x11")].error(B("0x175")+e)}}})},5e3)}}[B("0x173")](e){e.outboundPacketLossPct=e[B("0x16f")]/e[B("0x162")],e[B("0x176")]=e.inboundPacketsLost/e[B("0x167")],e.effectiveLatency=e[B("0x172")]+(e[B("0x16c")]+e.outboundJitter)+10;const t=100*(e.outboundPacketLossPct+e.inboundPacketLossPct),n=95*t/(t+10),r=.1*e[B("0x177")];switch(e.rFactor=Math[B("0x178")](0,100-n-r),e[B("0x179")]=1+.035*e[B("0x17a")]+7e-6*e[B("0x17a")]*(e.rFactor-60)*(100-e[B("0x17a")]),!0){case e[B("0x17a")]<50:e[B("0x17b")]=B("0x17c");break;case e[B("0x17a")]<70:e[B("0x17b")]="Poor";break;case e[B("0x17a")]<80:e[B("0x17b")]="Fair";break;case e.rFactor<90:e.qualityString=B("0x17d");break;case e[B("0x17a")]<=100:e[B("0x17b")]="Excellent";break;default:e[B("0x17b")]="Error"}return e}_setSessionState(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.log[B("0x16")](B("0x17e")+e),t&&this.log[B("0x16")](t),this[B("0x11f")]=e;try{this[B("0x96")](B("0x17f"),Object[B("0x15f")]({state:e,uuid:this._callUUID},t))}catch(e){this[B("0x11")][B("0x1e")]("Exception in sessionStateChange event:"+e)}e===B("0x104")&&(this[B("0x180")]=this._manualDisposition||"NORMAL",this[B("0x181")]()),e===B("0x182")&&("Unavailable"===t[B("0x183")]&&(this[B("0x180")]=B("0x184"),this._phone[B("0x6f")][B("0x185")]&&this[B("0xc3")][B("0x48")](z)),t[B("0x183")]===B("0x186")&&(this[B("0x180")]="INVALID_NUMBER",this[B("0xc3")][B("0x6f")].playSignalTones&&this._phone[B("0x48")](Y)),t.cause===B("0x187")&&(this._callDisposition=this[B("0xba")]||"NO_ANSWER"),t[B("0x183")]===B("0x188")&&(this[B("0x121")]===B("0x189")?this._callDisposition=B("0x18a"):this[B("0x180")]=B("0x18b")),"Busy"===t[B("0x183")]&&(this[B("0x180")]=B("0x18c"),this[B("0xc3")][B("0x6f")].playSignalTones&&this._phone[B("0x48")](J)),this[B("0xb1")].direction,B("0x18d"),this[B("0x181")]())}_callFinished(){this[B("0x11")][B("0x1c")]("Call finished"),this._fireCallEndedEvent(),clearInterval(this[B("0x158")]),clearInterval(this[B("0x15c")]),this[B("0xc3")][B("0x9d")](this)}[B("0xdb")](e){this.log[B("0x16")](B("0x18e")+e),this[B("0xbc")]=e}_fireRecordingStateEvent(){try{this[B("0x96")]("recordingStateChange",{state:this._isRecording,error:this[B("0xb6")]})}catch(e){this[B("0x11")][B("0x1e")]("Exception in recording state change event: "+e)}}_fireMuteStateEvent(){try{this[B("0x96")]("muteStateChange",{state:this[B("0xb4")]})}catch(e){this.log[B("0x1e")]("Exception in mute state change event: "+e)}}_fireHoldStateEvent(){try{this[B("0x96")](B("0x18f"),{state:this[B("0xb3")]})}catch(e){this[B("0x11")][B("0x1e")](B("0x190")+e)}}_fireWhisperModeChangeEvent(){try{this[B("0x96")](B("0x191"),{mode:this[B("0x156")]})}catch(e){this.log[B("0x1e")](B("0x192")+e)}}_fireCallEndedEvent(){let e;e={uuid:this[B("0xb0")],direction:this[B("0x121")],disposition:this[B("0x180")],originatingNumber:this._originatingNumber,destinationNumber:this[B("0xb7")],duration:this[B("0x103")]-this[B("0x159")],answerDuration:this._callAnswerTime?this[B("0xfe")]-this[B("0x159")]:null,activeDuration:this[B("0xfe")]?this[B("0x103")]-this[B("0xfe")]:null,startTime:new Date(this[B("0x159")])[B("0x193")](),endTime:new Date(this._callEndTime)[B("0x193")](),answerTime:this[B("0xfe")]?new Date(this[B("0xfe")])[B("0x193")]():null},e[B("0x194")]=i[B("0xaa")](e[B("0xa7")]),e.answerDurationStr=e[B("0xa8")]?i[B("0xaa")](e[B("0xa8")]):"",e[B("0xac")]=e[B("0xa9")]?i[B("0xaa")](e[B("0xa9")]):"",e[B("0x195")]=this[B("0xbb")];try{this[B("0x96")]("callEnded",e)}catch(e){this[B("0x11")][B("0x1e")](B("0x196")+e)}}[B("0x197")](e){this[B("0xc3")][B("0x9c")]();const t=this;e[B("0x113")].ontrack=function(e){t[B("0x11")].debug(B("0x198")),t[B("0x11")][B("0x16")](e),t._phone._remoteAudioElement[B("0x88")]=e[B("0x199")][0]}}}}])}));