Skip to content

Commit

Permalink
Merge 8e007fa into 14fc8d3
Browse files Browse the repository at this point in the history
  • Loading branch information
RA-dim committed Feb 8, 2018
2 parents 14fc8d3 + 8e007fa commit b4ec000
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 6 deletions.
16 changes: 10 additions & 6 deletions lib/AmiTestServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const EventEmitter = require('events').EventEmitter;
const debugLog = require('debug')('AmiTestServer');
const errorLog = require('debug')('AmiTestServer:error');
const amiUtils = require('asterisk-ami-event-utils');
const amiDataStream = require('asterisk-ami-events-stream');
const AmiDataStream = require('asterisk-ami-events-stream');
const meta = require('../package.json');

/**
Expand All @@ -29,7 +29,7 @@ class AmiTestServer extends EventEmitter{
super();

Object.assign(this, {
_helloMessage: `Asterisk AMI Test Server ${meta.version}`,
_helloMessage: `Asterisk AMI Test Server/${meta.version}`,
_options: Object.assign({
silent: false,
maxConnections: 50,
Expand Down Expand Up @@ -166,7 +166,7 @@ class AmiTestServer extends EventEmitter{

Object.assign(clientSocket, {
_key: shortId.generate(),
_eventStream: new amiDataStream(),
_eventStream: new AmiDataStream(),
_authTimer: null
});

Expand Down Expand Up @@ -199,6 +199,10 @@ class AmiTestServer extends EventEmitter{

clientSocket._eventStream.on('amiAction', action => this._amiActionHandler(action, clientSocket));
debugLog(`Client's connect established [key:${clientSocket._key}].`);

if(this._helloMessage){
clientSocket.write(this._helloMessage + CRLF);
}
}

/**
Expand Down Expand Up @@ -239,9 +243,6 @@ class AmiTestServer extends EventEmitter{

this._authClients[clientSocket._key] = clientSocket;
delete this._unAuthClients[clientSocket._key];
if(this._helloMessage){
clientSocket.write(this._helloMessage + CRLF);
}

let authClientsCount = Object.keys(this._authClients).length;
this.emit('connection', authClientsCount);
Expand Down Expand Up @@ -295,6 +296,9 @@ class AmiTestServer extends EventEmitter{
Response: 'Goodbye',
Message: 'Thanks for all the fish.'
}, action.ActionID ? {ActionID: action.ActionID} : {}));

clientSocket.unpipe(clientSocket._eventStream);
clientSocket.end();
}

}else{
Expand Down
19 changes: 19 additions & 0 deletions test/AmiTestServerTest.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ describe('AmiTestServer internal functionality', function() {
}
};
server = new AmiTestServer(optionsDefault);
server._helloMessage = null
});

afterEach(() => {
Expand Down Expand Up @@ -85,6 +86,24 @@ describe('AmiTestServer internal functionality', function() {
});
});

it('Check Welcome message', done => {
server._helloMessage = "Asterisk AMI Test Server/X.X";
server.listen(defaultPort).then(() => {
client = net.connect({port: defaultPort}, () => {
client
.once('data', chunk => {
assert.ok(/Asterisk AMI Test Server\/X\.X/.test(chunk.toString()));
done();
})
.write([
'Action: Login',
`Username: ${optionsDefault.credentials.username}`,
`Secret: ${optionsDefault.credentials.secret}`
].join(CRLF) + CRLF.repeat(2));
});
});
});

it('Auth with correct credentials', done => {
server.listen(defaultPort).then(() => {
client = net.connect({port: defaultPort}, () => {
Expand Down

0 comments on commit b4ec000

Please sign in to comment.