mirror of
https://github.com/jambonz/jambonz-feature-server.git
synced 2025-12-20 16:50:39 +00:00
Dial: fix error when receiving a REFER without a Referred-By header (#954)
This commit is contained in:
@@ -340,15 +340,17 @@ class TaskDial extends Task {
|
|||||||
|
|
||||||
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 referredBy = req.get('Referred-By');
|
||||||
|
const userAgent = req.get('User-Agent');
|
||||||
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()),
|
||||||
refer_details: {
|
refer_details: {
|
||||||
sip_refer_to: req.get('Refer-To'),
|
sip_refer_to: req.get('Refer-To'),
|
||||||
sip_referred_by: req.get('Referred-By'),
|
|
||||||
sip_user_agent: req.get('User-Agent'),
|
|
||||||
refer_to_user: to.scheme === 'tel' ? to.number : to.user,
|
refer_to_user: to.scheme === 'tel' ? to.number : to.user,
|
||||||
referred_by_user: by.scheme === 'tel' ? by.number : by.user,
|
...(referredBy && {sip_referred_by: referredBy}),
|
||||||
|
...(userAgent && {sip_user_agent: userAgent}),
|
||||||
|
...(by && {referred_by_user: by.scheme === 'tel' ? by.number : by.user}),
|
||||||
referring_call_sid,
|
referring_call_sid,
|
||||||
referred_call_sid
|
referred_call_sid
|
||||||
}
|
}
|
||||||
@@ -379,6 +381,7 @@ class TaskDial extends Task {
|
|||||||
res.send(202);
|
res.send(202);
|
||||||
this.logger.info('DialTask:handleRefer - sent 202 Accepted');
|
this.logger.info('DialTask:handleRefer - sent 202 Accepted');
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
this.logger.info({err}, 'DialTask:handleRefer - error processing incoming REFER');
|
||||||
res.send(err.statusCode || 501);
|
res.send(err.statusCode || 501);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user