mirror of
https://github.com/jambonz/jambonz-feature-server.git
synced 2025-12-20 16:50:39 +00:00
@@ -232,7 +232,7 @@ class TaskDial extends Task {
|
|||||||
}
|
}
|
||||||
this._removeDtmfDetection(cs.dlg);
|
this._removeDtmfDetection(cs.dlg);
|
||||||
this._removeDtmfDetection(this.dlg);
|
this._removeDtmfDetection(this.dlg);
|
||||||
this._killOutdials();
|
await this._killOutdials();
|
||||||
if (this.sd) {
|
if (this.sd) {
|
||||||
this.sd.kill();
|
this.sd.kill();
|
||||||
this.sd.removeAllListeners();
|
this.sd.removeAllListeners();
|
||||||
@@ -353,11 +353,16 @@ class TaskDial extends Task {
|
|||||||
sd.removeAllListeners('callCreateFail');
|
sd.removeAllListeners('callCreateFail');
|
||||||
}
|
}
|
||||||
|
|
||||||
_killOutdials() {
|
async _killOutdials() {
|
||||||
for (const [callSid, sd] of Array.from(this.dials)) {
|
for (const [callSid, sd] of Array.from(this.dials)) {
|
||||||
this.logger.debug(`Dial:_killOutdials killing callSid ${callSid}`);
|
this.logger.debug(`Dial:_killOutdials killing callSid ${callSid}`);
|
||||||
sd.kill().catch((err) => this.logger.info(err, `Dial:_killOutdials Error killing ${callSid}`));
|
try {
|
||||||
|
await sd.kill();
|
||||||
|
} catch (err) {
|
||||||
|
this.logger.info(err, `Dial:_killOutdials Error killing ${callSid}`);
|
||||||
|
}
|
||||||
this._removeHandlers(sd);
|
this._removeHandlers(sd);
|
||||||
|
this.logger.debug(`Dial:_killOutdials killed callSid ${callSid}`);
|
||||||
}
|
}
|
||||||
this.dials.clear();
|
this.dials.clear();
|
||||||
}
|
}
|
||||||
@@ -449,10 +454,14 @@ class TaskDial extends Task {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const ms = await cs.getMS();
|
const ms = await cs.getMS();
|
||||||
this.timerRing = setTimeout(() => {
|
this.timerRing = setTimeout(async() => {
|
||||||
this.logger.info(`Dial:_attemptCall: ring no answer timer ${this.timeout}s exceeded`);
|
this.logger.info(`Dial:_attemptCall: ring no answer timer ${this.timeout}s exceeded`);
|
||||||
this.timerRing = null;
|
this.timerRing = null;
|
||||||
this._killOutdials();
|
try {
|
||||||
|
await this._killOutdials();
|
||||||
|
} catch (err) {
|
||||||
|
this.logger.info(err, 'Dial:_attemptCall - error killing outdials');
|
||||||
|
}
|
||||||
this.result = {
|
this.result = {
|
||||||
dialCallStatus: CallStatus.NoAnswer,
|
dialCallStatus: CallStatus.NoAnswer,
|
||||||
dialSipStatus: 487
|
dialSipStatus: 487
|
||||||
@@ -531,7 +540,8 @@ class TaskDial extends Task {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.on('callStatusChange', (obj) => {
|
.on('callStatusChange', (obj) => {
|
||||||
if (this.results.dialCallStatus !== CallStatus.Completed) {
|
if (this.results.dialCallStatus !== CallStatus.Completed &&
|
||||||
|
this.results.dialCallStatus !== CallStatus.NoAnswer) {
|
||||||
Object.assign(this.results, {
|
Object.assign(this.results, {
|
||||||
dialCallStatus: obj.callStatus,
|
dialCallStatus: obj.callStatus,
|
||||||
dialSipStatus: obj.sipStatus,
|
dialSipStatus: obj.sipStatus,
|
||||||
|
|||||||
Reference in New Issue
Block a user