mirror of
https://github.com/jambonz/jambonz-feature-server.git
synced 2025-12-20 08:40:38 +00:00
support send refer custom header to referhook (#981)
This commit is contained in:
@@ -2351,6 +2351,12 @@ Duration=${duration} `
|
|||||||
try {
|
try {
|
||||||
const to = parseUri(req.getParsedHeader('Refer-To').uri);
|
const to = parseUri(req.getParsedHeader('Refer-To').uri);
|
||||||
const by = parseUri(req.getParsedHeader('Referred-By').uri);
|
const by = parseUri(req.getParsedHeader('Referred-By').uri);
|
||||||
|
const customHeaders = Object.keys(req.headers)
|
||||||
|
.filter((h) => h.toLowerCase().startsWith('x-'))
|
||||||
|
.reduce((acc, h) => {
|
||||||
|
acc[h] = req.get(h);
|
||||||
|
return acc;
|
||||||
|
}, {});
|
||||||
const b3 = this.b3;
|
const b3 = this.b3;
|
||||||
const httpHeaders = b3 && {b3};
|
const httpHeaders = b3 && {b3};
|
||||||
const json = await this.requestor.request('verb:hook', this._referHook, {
|
const json = await this.requestor.request('verb:hook', this._referHook, {
|
||||||
@@ -2363,6 +2369,7 @@ Duration=${duration} `
|
|||||||
referred_by_user: by.scheme === 'tel' ? by.number : by.user,
|
referred_by_user: by.scheme === 'tel' ? by.number : by.user,
|
||||||
referring_call_sid: this.callSid,
|
referring_call_sid: this.callSid,
|
||||||
referred_call_sid: null,
|
referred_call_sid: null,
|
||||||
|
...customHeaders
|
||||||
}
|
}
|
||||||
}, httpHeaders);
|
}, httpHeaders);
|
||||||
|
|
||||||
|
|||||||
@@ -361,6 +361,12 @@ class TaskDial extends Task {
|
|||||||
const by = parseUri(req.getParsedHeader('Referred-By').uri);
|
const by = parseUri(req.getParsedHeader('Referred-By').uri);
|
||||||
const referredBy = req.get('Referred-By');
|
const referredBy = req.get('Referred-By');
|
||||||
const userAgent = req.get('User-Agent');
|
const userAgent = req.get('User-Agent');
|
||||||
|
const customHeaders = Object.keys(req.headers)
|
||||||
|
.filter((h) => h.toLowerCase().startsWith('x-'))
|
||||||
|
.reduce((acc, h) => {
|
||||||
|
acc[h] = req.get(h);
|
||||||
|
return acc;
|
||||||
|
}, {});
|
||||||
this.logger.info({to}, 'refer to parsed');
|
this.logger.info({to}, 'refer to parsed');
|
||||||
const json = await cs.requestor.request('verb:hook', this.referHook, {
|
const json = await cs.requestor.request('verb:hook', this.referHook, {
|
||||||
...(callInfo.toJSON()),
|
...(callInfo.toJSON()),
|
||||||
@@ -371,7 +377,8 @@ class TaskDial extends Task {
|
|||||||
...(userAgent && {sip_user_agent: userAgent}),
|
...(userAgent && {sip_user_agent: userAgent}),
|
||||||
...(by && {referred_by_user: by.scheme === 'tel' ? by.number : by.user}),
|
...(by && {referred_by_user: by.scheme === 'tel' ? by.number : by.user}),
|
||||||
referring_call_sid,
|
referring_call_sid,
|
||||||
referred_call_sid
|
referred_call_sid,
|
||||||
|
...customHeaders
|
||||||
}
|
}
|
||||||
}, httpHeaders);
|
}, httpHeaders);
|
||||||
if (json && Array.isArray(json)) {
|
if (json && Array.isArray(json)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user