MT#56085 Reply with 486 from WebRTC when the user is busy in another conversation

Change-Id: I3eea53440fe14452e0abe8d873f6ac99961e45f6
dependabot/npm_and_yarn/decode-uri-component-0.4.0
Hugo Zigha 3 years ago
parent dcb49ebd6d
commit 175c344157

@ -134,18 +134,25 @@ export function callRegister ({ instanceId }) {
delegateEvent('registrationFailed') delegateEvent('registrationFailed')
$userAgent.on('newRTCSession', (event) => { $userAgent.on('newRTCSession', (event) => {
if (event.originator === 'remote') { if (event.originator === 'remote') {
$incomingRtcSession = event.session if ($incomingRtcSession || $outgoingRtcSession) {
$incomingRtcSession.on('peerconnection', () => { event.session.terminate({
$incomingRtcSession.connection.ontrack = handleRemoteMediaStream status_code: 486,
}) reason_phrase: 'Busy'
$incomingRtcSession.on('failed', (failedEvent) => { })
callEvent.emit('incomingFailed', failedEvent) } else {
}) $incomingRtcSession = event.session
$incomingRtcSession.on('ended', (failedEvent) => { $incomingRtcSession.on('peerconnection', () => {
callEvent.emit('incomingEnded', failedEvent) $incomingRtcSession.connection.ontrack = handleRemoteMediaStream
$incomingRtcSession = null })
}) $incomingRtcSession.on('failed', (failedEvent) => {
callEvent.emit('incoming', $incomingRtcSession) callEvent.emit('incomingFailed', failedEvent)
})
$incomingRtcSession.on('ended', (failedEvent) => {
callEvent.emit('incomingEnded', failedEvent)
$incomingRtcSession = null
})
callEvent.emit('incoming', $incomingRtcSession)
}
} }
}) })
$userAgent.start() $userAgent.start()

@ -77,12 +77,14 @@ export default {
context.commit('hangUpCall') context.commit('hangUpCall')
} else if (options.cause && !errorVisibilityTimer) { } else if (options.cause && !errorVisibilityTimer) {
context.commit('endCall', options.cause) context.commit('endCall', options.cause)
errorVisibilityTimer = setTimeout(() => { if (options.cause !== 'Busy') {
if (context.state.callState === 'ended') { errorVisibilityTimer = setTimeout(() => {
context.commit('hangUpCall') if (context.state.callState === 'ended') {
} context.commit('hangUpCall')
errorVisibilityTimer = null }
}, errorVisibilityTimeout) errorVisibilityTimer = null
}, errorVisibilityTimeout)
}
} }
}, },
sendDTMF (context, tone) { sendDTMF (context, tone) {

Loading…
Cancel
Save