var esl = require( "modesl"); var localServer = "localhost"; var localServerPort = 8021; var localServerUser = "ClueCon"; var connectionCallback = function() { // , connection.on( "esl::end", function( event) { // , }); } // var connection = new esl.Connection( localServer, localServerPort, localServerUser, connectionCallback); connection.once( "error", function() { // });
connection.on( "esl::event::**", function( event) {});
Connection.prototype.api = function(command, args, cb)
Connection.prototype.bgapi = function(command, args, jobid, cb)
<extension name="conference_server"> <condition field="destination_number" expression="^(5555)$"> <action application="socket" data="127.0.0.1:8087 async full"/> </condition> </extension>
var esl = require('modesl'); var esl_server = new esl.Server({port: 8087, myevents:true}, function(){ console.log("ConferenceServer server is up"); }); esl_server.on( 'connection::ready', function( conn, id) { console.log( 'ConferenceServer new call', id); conn.execute( 'conference', 'ConfName@default', function( err, result){ console.log( arguments); }); conn.on('esl::end', function( evt, body) { console.log( "ConferenceServer call ended ", id); }); });
conference [conference name] dial sofia/internal/[sip address]
self.dial = function( sipAddress, callback){ self.connection.bgapi( "conference", conferenceName + " dial sofia/internal/" + sipAddress, function( result){ var resultId = result.getBody().indexOf( "SUCCESS") if( resultId == -1){ var body = result.getBody(); var startIndex = body.indexOf( '['); var result = body.substring( startIndex + 1, body.length - 2); callbackHelper.call( callback, "Conference call error: " + result); } else callbackHelper.call( callback, null); }); };
conference [conference name] deaf [memberId]
self.deaf = function( conferenceName, memberId, callback){ self.connection.bgapi( "conference", conferenceName + " deaf " + memberId, function( result){ callbackHelper.call( callback, null); }); };
self.mute = function( conferenceName, memberId, callback){ self.connection.bgapi( "conference", conferenceName + " mute " + memberId, function( result){ callbackHelper.call( callback, null); }); };
. self.undeaf = function( conferenceName, memberId, callback){ self.connection.bgapi( "conference", conferenceName + " undeaf " + memberId, function( result){ callbackHelper.call( callback, null); }); };
. function FsConferenceAPI( connection){ var self = this; self.connection = connection; self.unmuteAll = function( conferenceName){ self.connection.bgapi( "conference", conferenceName + " unmute all", function( result){}); }; self.dial = function( sipAddress, callback){ self.connection.bgapi( "conference", conferenceName + " dial sofia/internal/" + sipAddress, function( result){ var resultId = result.getBody().indexOf( "SUCCESS") if( resultId == -1){ var body = result.getBody(); var startIndex = body.indexOf( '['); var result = body.substring( startIndex + 1, body.length - 2); callbackHelper.call( callback, "Conference call error: " + result); } else callbackHelper.call( callback, null); }); }; self.kick = function( conferenceName, memberId, callback){ self.connection.bgapi( "conference", conferenceName + " kick " + memberId, function( result){ var body = result.getBody(); if( body.indexOf( "OK kicked " + memberId) != -1) callbackHelper.call( callback, null); else callbackHelper.call( callback, body); }); }; self.kickAll = function( conferenceName, callback){ self.connection.bgapi( "conference", conferenceName + " kick all", function( result){ var body = result.getBody(); if( body.indexOf( "OK kicked") != -1) callbackHelper.call( callback, null); else callbackHelper.call( callback, body); }); }; self.deaf = function( conferenceName, memberId, callback){ self.connection.bgapi( "conference", conferenceName + " deaf " + memberId, function( result){ callbackHelper.call( callback, null); }); }; self.undeaf = function( conferenceName, memberId, callback){ self.connection.bgapi( "conference", conferenceName + " undeaf " + memberId, function( result){ callbackHelper.call( callback, null); }); }; self.mute = function( conferenceName, memberId, callback){ self.connection.bgapi( "conference", conferenceName + " mute " + memberId, function( result){ callbackHelper.call( callback, null); }); }; self.unmute = function( conferenceName, memberId, callback){ self.connection.bgapi( "conference", conferenceName + " unmute " + memberId, function( result){ callbackHelper.call( callback, null); }); }; }
Source: https://habr.com/ru/post/268773/
All Articles