/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/drachtio-fsmrf@5.0.0/lib/mrf.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
const esl=require("drachtio-modesl"),assert=require("assert"),MediaServer=require("./mediaserver"),Emitter=require("events").EventEmitter,os=require("os"),parseBodyText=require("./utils").parseBodyText,debug=require("debug")("drachtio:fsmrf");class Mrf extends Emitter{constructor(e,r){super(),r=r||{},this._srf=e,this.debugDir=r.debugDir,this.debugSendonly=r.sendonly,this.localAddresses=[],this.customEvents=r.customEvents||[];const s=os.networkInterfaces();for(const e in s)for(const r in s[e]){const t=s[e][r];"IPv4"!==t.family||t.internal||this.localAddresses.push(t.address)}}get srf(){return this._srf}connect(e,r){assert.equal(typeof e,"object","argument 'opts' must be provided with connection options"),assert.equal(typeof e.address,"string","argument 'opts.address' containing \n      media server address is required");const s=e.address,t=e.port||8021,n=e.secret||"ClueCon",o=e.listenPort||0,i=e.listenAddress||this.localAddresses[0]||"0.0.0.0",d=e.profile||"drachtio_mrf";function c(e,r){e(r)}const a=r=>{const a=c.bind(this,r);debug(`Mrf#connect - connecting to ${s}:${t} with secret: ${n}`);const u=new esl.Connection(s,t,n,(()=>{debug("initial connection made"),u.removeListener("error",a);const s=new MediaServer(u,this,i,o,e.advertisedAddress,e.advertisedPort,d);s.once("ready",(()=>{debug("Mrf#connect - media server is ready for action!"),r(null,s)})),s.once("error",(e=>{debug(`Mrf#connect - error event emitted from media server: ${e}`),r(e)}))}));u.on("error",a),u.on("esl::event::raw::text/rude-rejection",c.bind(this,r,new Error("acl-error")))};return r?a(r):new Promise(((e,r)=>{a(((s,t)=>{if(s)return r(s);e(t)}))}))}}Mrf.utils={parseBodyText:parseBodyText},module.exports=exports=Mrf;
//# sourceMappingURL=/sm/44833177a8ecc0e686f072d9a590ac8b89f3a5f8a0eca519a873e1c64d1a03fb.map