mirror of
https://github.com/jambonz/sbc-outbound.git
synced 2026-01-25 02:07:59 +00:00
fixes for sending calls to sip endpoint that challenges
This commit is contained in:
@@ -126,12 +126,13 @@ class CallSession extends Emitter {
|
|||||||
let earlyMedia = false;
|
let earlyMedia = false;
|
||||||
while (uris.length) {
|
while (uris.length) {
|
||||||
const uri = uris.shift();
|
const uri = uris.shift();
|
||||||
|
const passFailure = 0 === uris.length; // only a single target
|
||||||
debug(`sending INVITE to ${uri} via ${proxy})`);
|
debug(`sending INVITE to ${uri} via ${proxy})`);
|
||||||
this.logger.info(`sending INVITE to ${uri}`);
|
this.logger.info(`sending INVITE to ${uri}`);
|
||||||
try {
|
try {
|
||||||
const {uas, uac} = await this.srf.createB2BUA(this.req, this.res, uri, {
|
const {uas, uac} = await this.srf.createB2BUA(this.req, this.res, uri, {
|
||||||
proxy,
|
proxy,
|
||||||
passFailure: false,
|
passFailure,
|
||||||
proxyRequestHeaders: ['all', '-X-MS-Teams-FQDN', '-X-MS-Teams-Tenant-FQDN', '-Allow',
|
proxyRequestHeaders: ['all', '-X-MS-Teams-FQDN', '-X-MS-Teams-Tenant-FQDN', '-Allow',
|
||||||
'-Session-Expires', 'Min-SE'],
|
'-Session-Expires', 'Min-SE'],
|
||||||
proxyResponseHeaders: ['all', '-Allow'],
|
proxyResponseHeaders: ['all', '-Allow'],
|
||||||
@@ -172,7 +173,7 @@ class CallSession extends Emitter {
|
|||||||
if (err instanceof SipError) this.logger.info(`final call failure ${err.status}`);
|
if (err instanceof SipError) this.logger.info(`final call failure ${err.status}`);
|
||||||
else this.logger.error(err, 'unexpected call failure');
|
else this.logger.error(err, 'unexpected call failure');
|
||||||
debug(`got final outdial error: ${err}`);
|
debug(`got final outdial error: ${err}`);
|
||||||
this.res.send(err.status || 500);
|
if (!passFailure) this.res.send(err.status || 500);
|
||||||
this.emit('failed');
|
this.emit('failed');
|
||||||
this.rtpEngineResource.destroy();
|
this.rtpEngineResource.destroy();
|
||||||
const tags = ['accepted:no', `sipStatus:${err.status || 500}`];
|
const tags = ['accepted:no', `sipStatus:${err.status || 500}`];
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ function route(opts) {
|
|||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!isLocalUri(uri.host, req) /*|| !dotDecimalHost */) {
|
if (!dotDecimalHost || !isLocalUri(uri.host, req)) {
|
||||||
// TODO: need to try to forward calls to a DNS host name
|
// TODO: need to try to forward calls to a DNS host name
|
||||||
// so long as that domain name is not associated with an account or SP in our DB
|
// so long as that domain name is not associated with an account or SP in our DB
|
||||||
logger.info(`forwarding call to sip endpoint ${req.uri}`);
|
logger.info(`forwarding call to sip endpoint ${req.uri}`);
|
||||||
|
|||||||
@@ -55,7 +55,9 @@ api_key_sid CHAR(36) NOT NULL UNIQUE ,
|
|||||||
token CHAR(36) NOT NULL UNIQUE ,
|
token CHAR(36) NOT NULL UNIQUE ,
|
||||||
account_sid CHAR(36),
|
account_sid CHAR(36),
|
||||||
service_provider_sid CHAR(36),
|
service_provider_sid CHAR(36),
|
||||||
expires_at TIMESTAMP,
|
expires_at TIMESTAMP NULL,
|
||||||
|
last_used TIMESTAMP NULL,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
PRIMARY KEY (api_key_sid)
|
PRIMARY KEY (api_key_sid)
|
||||||
) ENGINE=InnoDB COMMENT='An authorization token that is used to access the REST api';
|
) ENGINE=InnoDB COMMENT='An authorization token that is used to access the REST api';
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user