diff --git a/lib/http-routes/api/create-call.js b/lib/http-routes/api/create-call.js index 0ea32119..a3a24e79 100644 --- a/lib/http-routes/api/create-call.js +++ b/lib/http-routes/api/create-call.js @@ -293,6 +293,8 @@ router.post('/', }, cbProvisional: (prov) => { const callStatus = prov.body ? CallStatus.EarlyMedia : CallStatus.Ringing; + // Update call-id for sbc outbound INVITE + cs.callInfo.sbcCallid = prov.get('X-CID'); if ([180, 183].includes(prov.status) && prov.body) connectStream(prov.body); restDial.emit('callStatus', prov.status, !!prov.body); cs.emit('callStatusChange', {callStatus, sipStatus: prov.status}); diff --git a/lib/session/call-info.js b/lib/session/call-info.js index a87bb63d..ceec0925 100644 --- a/lib/session/call-info.js +++ b/lib/session/call-info.js @@ -32,6 +32,7 @@ class CallInfo { this.sipStatus = 100; this.sipReason = 'Trying'; this.callStatus = CallStatus.Trying; + this.sbcCallid = req.get('X-CID'); this.originatingSipIp = req.get('X-Forwarded-For'); this.originatingSipTrunkName = req.get('X-Originating-Carrier'); const {siprec} = req.locals; @@ -129,6 +130,7 @@ class CallInfo { from: this.from, to: this.to, callId: this.callId, + sbcCallid: this.sbcCallid, sipStatus: this.sipStatus, sipReason: this.sipReason, callStatus: this.callStatus, diff --git a/lib/tasks/dial.js b/lib/tasks/dial.js index f0936d1d..e11ee78e 100644 --- a/lib/tasks/dial.js +++ b/lib/tasks/dial.js @@ -612,6 +612,7 @@ class TaskDial extends Task { dialCallStatus: obj.callStatus, dialSipStatus: obj.sipStatus, dialCallSid: sd.callSid, + dialSbcCallid: sd.callInfo.sbcCallid }); } switch (obj.callStatus) { diff --git a/lib/utils/place-outdial.js b/lib/utils/place-outdial.js index d8e850af..70111b6c 100644 --- a/lib/utils/place-outdial.js +++ b/lib/utils/place-outdial.js @@ -213,6 +213,8 @@ class SingleDialer extends Emitter { }, cbProvisional: (prov) => { const status = {sipStatus: prov.status, sipReason: prov.reason}; + // Update call-id for sbc outbound INVITE + this.callInfo.sbcCallid = prov.get('X-CID'); if ([180, 183].includes(prov.status) && prov.body) { if (status.callStatus !== CallStatus.EarlyMedia) { status.callStatus = CallStatus.EarlyMedia;