support send refer custom header to referhook (#981)

This commit is contained in:
Hoan Luu Huu
2024-11-28 20:34:34 +07:00
committed by GitHub
parent efdb56f0a0
commit 070671a3fb
2 changed files with 15 additions and 1 deletions

View File

@@ -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);

View File

@@ -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)) {