mirror of
https://github.com/jambonz/sbc-outbound.git
synced 2026-01-25 02:07:59 +00:00
migrate to github Actions from travis
This commit is contained in:
10
.travis.yml
10
.travis.yml
@@ -1,10 +0,0 @@
|
|||||||
sudo: required
|
|
||||||
language: node_js
|
|
||||||
node_js:
|
|
||||||
- "lts/*"
|
|
||||||
services:
|
|
||||||
- docker
|
|
||||||
- mysql
|
|
||||||
script:
|
|
||||||
- npm test
|
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
# sbc-outbound [](http://travis-ci.org/jambonz/sbc-outbound)
|
# sbc-outbound 
|
||||||
|
|
||||||
This application provides a part of the SBC (Session Border Controller) functionality of jambonz. It handles outbound INVITE requests from the cpaas application server that is going to carrier sip trunks or registered sip users/devices, including webrtc applications.
|
This application provides a part of the SBC (Session Border Controller) functionality of jambonz. It handles outbound INVITE requests from the cpaas application server that is going to carrier sip trunks or registered sip users/devices, including webrtc applications.
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
const test = require('blue-tape');
|
const test = require('blue-tape');
|
||||||
//const test = require('tape').test ;
|
//const test = require('tape').test ;
|
||||||
const exec = require('child_process').exec ;
|
const exec = require('child_process').exec ;
|
||||||
const pwd = process.env.TRAVIS ? '' : '-p$MYSQL_ROOT_PASSWORD';
|
const pwd = '-p$MYSQL_ROOT_PASSWORD';
|
||||||
|
|
||||||
test('creating jambones_test database', (t) => {
|
test('creating jambones_test database', (t) => {
|
||||||
exec(`mysql -h localhost -u root ${pwd} < ${__dirname}/db/create_test_db.sql`, (err, stdout, stderr) => {
|
exec(`mysql -h 127.0.0.1 -u root --protocol=tcp < ${__dirname}/db/create_test_db.sql`, (err, stdout, stderr) => {
|
||||||
if (err) return t.end(err);
|
if (err) return t.end(err);
|
||||||
t.pass('database successfully created');
|
t.pass('database successfully created');
|
||||||
t.end();
|
t.end();
|
||||||
@@ -12,7 +12,7 @@ test('creating jambones_test database', (t) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('creating schema', (t) => {
|
test('creating schema', (t) => {
|
||||||
exec(`mysql -h localhost -u root ${pwd} -D jambones_test < ${__dirname}/db/jambones-sql.sql`, (err, stdout, stderr) => {
|
exec(`mysql -h 127.0.0.1 -u root --protocol=tcp -D jambones_test < ${__dirname}/db/jambones-sql.sql`, (err, stdout, stderr) => {
|
||||||
if (err) return t.end(err);
|
if (err) return t.end(err);
|
||||||
t.pass('schema successfully created');
|
t.pass('schema successfully created');
|
||||||
t.end();
|
t.end();
|
||||||
@@ -20,7 +20,7 @@ test('creating schema', (t) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('populating test case data', (t) => {
|
test('populating test case data', (t) => {
|
||||||
exec(`mysql -h localhost -u root ${pwd} -D jambones_test < ${__dirname}/db/populate-test-data.sql`, (err, stdout, stderr) => {
|
exec(`mysql -h 127.0.0.1 -u root --protocol=tcp -D jambones_test < ${__dirname}/db/populate-test-data.sql`, (err, stdout, stderr) => {
|
||||||
if (err) return t.end(err);
|
if (err) return t.end(err);
|
||||||
t.pass('test data set created');
|
t.pass('test data set created');
|
||||||
t.end();
|
t.end();
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
create database jambones_test;
|
create database jambones_test;
|
||||||
create user jambones_test@localhost IDENTIFIED WITH mysql_native_password by 'jambones_test';
|
create user jambones_test@'%' IDENTIFIED WITH mysql_native_password by 'jambones_test';
|
||||||
grant all on jambones_test.* to jambones_test@localhost;
|
grant all on jambones_test.* to jambones_test@'%';
|
||||||
|
|||||||
@@ -8,6 +8,16 @@ networks:
|
|||||||
- subnet: 172.39.0.0/16
|
- subnet: 172.39.0.0/16
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
mysql:
|
||||||
|
image: mysql:5.7
|
||||||
|
ports:
|
||||||
|
- "3306:3306"
|
||||||
|
environment:
|
||||||
|
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
|
||||||
|
networks:
|
||||||
|
sbc-outbound:
|
||||||
|
ipv4_address: 172.39.0.2
|
||||||
|
|
||||||
sbc:
|
sbc:
|
||||||
image: drachtio/drachtio-server:latest
|
image: drachtio/drachtio-server:latest
|
||||||
command: drachtio --contact "sip:*;transport=udp" --loglevel debug --sofia-loglevel 9
|
command: drachtio --contact "sip:*;transport=udp" --loglevel debug --sofia-loglevel 9
|
||||||
|
|||||||
@@ -4,8 +4,12 @@ const exec = require('child_process').exec ;
|
|||||||
|
|
||||||
test('starting docker network..', (t) => {
|
test('starting docker network..', (t) => {
|
||||||
exec(`docker-compose -f ${__dirname}/docker-compose-testbed.yaml up -d`, (err, stdout, stderr) => {
|
exec(`docker-compose -f ${__dirname}/docker-compose-testbed.yaml up -d`, (err, stdout, stderr) => {
|
||||||
t.pass('docker started');
|
|
||||||
t.end(err);
|
// wait 5 secs for mysql to be ready for connections
|
||||||
|
setTimeout(() => {
|
||||||
|
t.pass('docker started');
|
||||||
|
t.end(err);
|
||||||
|
}, 10000);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
require('./docker_start');
|
require('./docker_start');
|
||||||
require('./create-test-db');
|
require('./create-test-db');
|
||||||
require('./sip-tests');
|
require('./sip-tests');
|
||||||
require('./remove-test-db');
|
|
||||||
require('./docker_stop');
|
require('./docker_stop');
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
const test = require('blue-tape') ;
|
|
||||||
const exec = require('child_process').exec ;
|
|
||||||
const pwd = process.env.TRAVIS ? '' : '-p$MYSQL_ROOT_PASSWORD';
|
|
||||||
|
|
||||||
test('dropping jambones_test database', (t) => {
|
|
||||||
exec(`mysql -h localhost -u root ${pwd} < ${__dirname}/db/remove_test_db.sql`, (err, stdout, stderr) => {
|
|
||||||
if (err) return t.end(err);
|
|
||||||
t.pass('database successfully dropped');
|
|
||||||
t.end();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
const test = require('blue-tape');
|
const test = require('blue-tape');
|
||||||
const { output, sippUac } = require('./sipp')('test_sbc-outbound');
|
const { output, sippUac } = require('./sipp')('test_sbc-outbound');
|
||||||
const {execSync} = require('child_process');
|
const {execSync} = require('child_process');
|
||||||
const pwd = process.env.TRAVIS ? '' : '-p$MYSQL_ROOT_PASSWORD';
|
|
||||||
const debug = require('debug')('jambonz:sbc-outbound');
|
const debug = require('debug')('jambonz:sbc-outbound');
|
||||||
|
const pwd = '-p$MYSQL_ROOT_PASSWORD';
|
||||||
|
|
||||||
process.on('unhandledRejection', (reason, p) => {
|
process.on('unhandledRejection', (reason, p) => {
|
||||||
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
||||||
@@ -31,24 +31,24 @@ test('sbc-outbound tests', async(t) => {
|
|||||||
t.pass('successfully completed outbound call to configured sip trunk');
|
t.pass('successfully completed outbound call to configured sip trunk');
|
||||||
|
|
||||||
// re-rack test data
|
// re-rack test data
|
||||||
execSync(`mysql -h localhost -u root ${pwd} -D jambones_test < ${__dirname}/db/jambones-sql.sql`);
|
execSync(`mysql -h 127.0.0.1 -u root --protocol=tcp -D jambones_test < ${__dirname}/db/jambones-sql.sql`);
|
||||||
execSync(`mysql -h localhost -u root ${pwd} -D jambones_test < ${__dirname}/db/populate-test-data2.sql`);
|
execSync(`mysql -h 127.0.0.1 -u root --protocol=tcp -D jambones_test < ${__dirname}/db/populate-test-data2.sql`);
|
||||||
|
|
||||||
/* call to PSTN with lcr configured */
|
/* call to PSTN with lcr configured */
|
||||||
await sippUac('uac-pcap-carrier-success.xml');
|
await sippUac('uac-pcap-carrier-success.xml');
|
||||||
t.pass('successfully completed outbound lcr carrier with crankback after failure');
|
t.pass('successfully completed outbound lcr carrier with crankback after failure');
|
||||||
|
|
||||||
// re-rack test data
|
// re-rack test data
|
||||||
execSync(`mysql -h localhost -u root ${pwd} -D jambones_test < ${__dirname}/db/jambones-sql.sql`);
|
execSync(`mysql -h 127.0.0.1 -u root --protocol=tcp -D jambones_test < ${__dirname}/db/jambones-sql.sql`);
|
||||||
execSync(`mysql -h localhost -u root ${pwd} -D jambones_test < ${__dirname}/db/populate-test-data3.sql`);
|
execSync(`mysql -h 127.0.0.1 -u root --protocol=tcp -D jambones_test < ${__dirname}/db/populate-test-data3.sql`);
|
||||||
|
|
||||||
/* call to PSTN where caller hangs up during outdial */
|
/* call to PSTN where caller hangs up during outdial */
|
||||||
await sippUac('uac-cancel.xml');
|
await sippUac('uac-cancel.xml');
|
||||||
t.pass('successfully handled caller hangup during lcr outdial');
|
t.pass('successfully handled caller hangup during lcr outdial');
|
||||||
|
|
||||||
// re-rack test data
|
// re-rack test data
|
||||||
execSync(`mysql -h localhost -u root ${pwd} -D jambones_test < ${__dirname}/db/jambones-sql.sql`);
|
execSync(`mysql -h 127.0.0.1 -u root --protocol=tcp -D jambones_test < ${__dirname}/db/jambones-sql.sql`);
|
||||||
execSync(`mysql -h localhost -u root ${pwd} -D jambones_test < ${__dirname}/db/populate-test-data4.sql`);
|
execSync(`mysql -h 127.0.0.1 -u root --protocol=tcp -D jambones_test < ${__dirname}/db/populate-test-data4.sql`);
|
||||||
|
|
||||||
/* reinvite after call established */
|
/* reinvite after call established */
|
||||||
await sippUac('uac-pcap-carrier-success-reinvite.xml');
|
await sippUac('uac-pcap-carrier-success-reinvite.xml');
|
||||||
|
|||||||
Reference in New Issue
Block a user