add support for live call control

This commit is contained in:
Dave Horton
2020-02-07 10:26:35 -05:00
parent 2811e35c6b
commit 3ca2d982cc
18 changed files with 332 additions and 73 deletions

View File

@@ -2,7 +2,7 @@ const Task = require('./task');
const {TaskName} = require('../utils/constants');
const errBadInstruction = new Error('malformed jambonz application payload');
function makeTask(logger, obj) {
function makeTask(logger, obj, parent) {
const keys = Object.keys(obj);
if (!keys || keys.length !== 1) {
throw errBadInstruction;
@@ -17,40 +17,40 @@ function makeTask(logger, obj) {
switch (name) {
case TaskName.SipDecline:
const TaskSipDecline = require('./sip_decline');
return new TaskSipDecline(logger, data);
return new TaskSipDecline(logger, data, parent);
case TaskName.Dial:
const TaskDial = require('./dial');
return new TaskDial(logger, data);
return new TaskDial(logger, data, parent);
case TaskName.Hangup:
const TaskHangup = require('./hangup');
return new TaskHangup(logger, data);
return new TaskHangup(logger, data, parent);
case TaskName.Say:
const TaskSay = require('./say');
return new TaskSay(logger, data);
return new TaskSay(logger, data, parent);
case TaskName.Play:
const TaskPlay = require('./play');
return new TaskPlay(logger, data);
return new TaskPlay(logger, data, parent);
case TaskName.Pause:
const TaskPause = require('./pause');
return new TaskPause(logger, data);
return new TaskPause(logger, data, parent);
case TaskName.Gather:
const TaskGather = require('./gather');
return new TaskGather(logger, data);
return new TaskGather(logger, data, parent);
case TaskName.Transcribe:
const TaskTranscribe = require('./transcribe');
return new TaskTranscribe(logger, data);
return new TaskTranscribe(logger, data, parent);
case TaskName.Listen:
const TaskListen = require('./listen');
return new TaskListen(logger, data);
return new TaskListen(logger, data, parent);
case TaskName.Redirect:
const TaskRedirect = require('./redirect');
return new TaskRedirect(logger, data);
return new TaskRedirect(logger, data, parent);
case TaskName.RestDial:
const TaskRestDial = require('./rest_dial');
return new TaskRestDial(logger, data);
return new TaskRestDial(logger, data, parent);
case TaskName.Tag:
const TaskTag = require('./tag');
return new TaskTag(logger, data);
return new TaskTag(logger, data, parent);
}
// should never reach