diff --git a/src/api/ngcp-call.js b/src/api/ngcp-call.js index e828318d..294da75e 100644 --- a/src/api/ngcp-call.js +++ b/src/api/ngcp-call.js @@ -107,18 +107,19 @@ export function callConfigure ({ baseWebSocketUrl }) { $baseWebSocketUrl = baseWebSocketUrl } -export async function callInitialize ({ subscriber }) { +export async function callInitialize ({ subscriber, instanceId }) { $subscriber = subscriber - callRegister() + callRegister({ instanceId }) } -export function callRegister () { +export function callRegister ({ instanceId }) { if (!$socket) { $socket = callCreateSocket() const config = { sockets: [$socket], uri: getSubscriberUri(), - password: $subscriber.password + password: $subscriber.password, + instance_id: instanceId } $userAgent = new jssip.UA(config) const delegateEvent = (eventName) => { diff --git a/src/helpers/call-utils.js b/src/helpers/call-utils.js index f2685004..cafdcdf0 100644 --- a/src/helpers/call-utils.js +++ b/src/helpers/call-utils.js @@ -1,3 +1,20 @@ +import { getLocal, setLocal } from 'src/storage' +import { v4 } from 'uuid' + +const SIP_INSTANCE_ID_NAME = 'sip_instance_id' + +export function setSipInstanceId (instanceId) { + setLocal(SIP_INSTANCE_ID_NAME, instanceId) +} + +export function getSipInstanceId () { + let instanceId = getLocal(SIP_INSTANCE_ID_NAME) + if (!instanceId) { + instanceId = v4() + setSipInstanceId(instanceId) + } + return instanceId +} export function callIcon (call) { if (call.call_type === 'cfu' || call.call_type === 'cfna' || diff --git a/src/store/user.js b/src/store/user.js index 930c27a0..c7a745ad 100644 --- a/src/store/user.js +++ b/src/store/user.js @@ -26,6 +26,7 @@ import { import { date } from 'quasar' import { callInitialize } from 'src/api/ngcp-call' import { setLocal } from 'src/storage' +import { getSipInstanceId } from 'src/helpers/call-utils' export default { namespaced: true, @@ -340,7 +341,8 @@ export default { } try { await callInitialize({ - subscriber: userData.subscriber + subscriber: userData.subscriber, + instanceId: getSipInstanceId() }) } catch (err) { console.log(err)