+
+
+
+
+
{{ $t('call.startNew') }}
@@ -31,8 +36,10 @@
dark clearable max="64" @blur="phoneNumberBlur()" @focus="phoneNumberFocus()"/>
-
-
+
+
{{ getNumber | numberFormat }}
{{ getEndedReason }}
@@ -48,7 +55,7 @@
-
+
@@ -262,18 +269,17 @@
'isIncoming',
'isEstablished',
'getNumber',
- 'getMediaType',
- 'getLocalMediaType',
'getEndedReason',
'hasRemoteVideo',
'hasVideo',
'isAudioEnabled',
'isVideoEnabled',
- 'isMuted'
+ 'isMuted',
+ 'localMediaType',
+ 'remoteMediaType',
+ 'isCaller',
+ 'isCallee'
]),
- hasLocalVideo() {
- return this.getLocalMediaType !== null && this.getLocalMediaType.match(/(v|V)ideo/) !== null;
- },
isMobile() {
return Platform.is.mobile;
}
diff --git a/src/filters/number-format.js b/src/filters/number-format.js
index 520e05d7..11ce99ac 100644
--- a/src/filters/number-format.js
+++ b/src/filters/number-format.js
@@ -14,7 +14,7 @@ export default function numberFormat(number) {
if(normalizedNumber !== extractedNumber) {
return normalizedNumber;
} else {
- return number;
+ return extractedNumber;
}
} catch(err) {
return normalizeNumber(number);
diff --git a/src/store/call.js b/src/store/call.js
index 99bfeee5..08e0de21 100644
--- a/src/store/call.js
+++ b/src/store/call.js
@@ -12,7 +12,7 @@ export var CallState = {
};
export var MediaType = {
- audio: 'audio',
+ audioOnly: 'audioOnly',
audioVideo: 'audioVideo',
audioScreen: 'audioScreen'
};
@@ -26,23 +26,35 @@ export default {
endedReason: null,
callState: CallState.input,
number: null,
- mediaType: null,
- localMediaType: null,
localMediaStream: null,
remoteMediaStream: null,
audioEnabled: true,
videoEnabled: true,
- muted: false
+ muted: false,
+ caller: false,
+ callee: false
},
getters: {
getNumber(state, getters) {
return state.number;
},
- getMediaType(state, getters) {
- return state.mediaType;
+ localMediaType(state) {
+ if(state.localMediaStream !== null && state.localMediaStream.hasAudio() && state.localMediaStream.hasVideo()) {
+ return MediaType.audioVideo;
+ } else if (state.localMediaStream !== null && state.localMediaStream.hasAudio()) {
+ return MediaType.audioOnly;
+ } else {
+ return null;
+ }
},
- getLocalMediaType(state, getters) {
- return state.localMediaType
+ remoteMediaType(state) {
+ if(state.remoteMediaStream !== null && state.remoteMediaStream.hasAudio() && state.remoteMediaStream.hasVideo()) {
+ return MediaType.audioVideo;
+ } else if (state.remoteMediaStream !== null && state.remoteMediaStream.hasAudio()) {
+ return MediaType.audioOnly;
+ } else {
+ return null;
+ }
},
getEndedReason(state, getters) {
return state.endedReason;
@@ -106,6 +118,12 @@ export default {
},
isMuted(state, getters) {
return state.muted;
+ },
+ isCaller(state) {
+ return state.caller;
+ },
+ isCallee(state) {
+ return state.callee;
}
},
mutations: {
@@ -125,9 +143,9 @@ export default {
},
startCalling(state, options) {
state.number = options.number;
- state.mediaType = options.mediaType;
- state.localMediaType = state.mediaType;
state.callState = CallState.initiating;
+ state.caller = true;
+ state.callee = false;
},
localMediaSuccess(state, localMediaStream) {
state.localMediaStream = localMediaStream;
@@ -138,11 +156,15 @@ export default {
establishCall(state, remoteMediaStream) {
state.remoteMediaStream = remoteMediaStream;
state.callState = CallState.established;
+ state.audioEnabled = true;
+ state.videoEnabled = true;
+ state.muted = false;
},
incomingCall(state, options) {
state.callState = CallState.incoming;
state.number = options.number;
- state.mediaType = options.mediaType;
+ state.callee = true;
+ state.caller = false;
},
hangUpCall(state) {
state.callState = CallState.input;
@@ -190,17 +212,9 @@ export default {
initialize(context) {
return new Promise((resolve, reject)=>{
Vue.call.onIncoming(()=>{
- let mediaType;
- if(Vue.call.isRemoteSendingAudio()) {
- mediaType = MediaType.audio;
- }
- if(Vue.call.isRemoteSendingVideo()) {
- mediaType = MediaType.audioVideo;
- }
context.commit('layout/showRight', null, { root: true });
context.commit('incomingCall', {
- number: Vue.call.getNumber(),
- mediaType: mediaType
+ number: Vue.call.getNumber()
});
}).onRemoteMedia((remoteMediaStream)=>{
context.commit('establishCall', remoteMediaStream);
@@ -226,9 +240,7 @@ export default {
},
start(context, options) {
context.commit('layout/showRight', null, { root: true });
- context.commit('startCalling', {
- number: options.number,
- mediaType: options.localMedia });
+ context.commit('startCalling', { number: options.number });
Promise.resolve().then(()=>{
return Vue.call.createLocalMedia(options.localMedia);
}).then((localMediaStream)=>{
diff --git a/t/unit/number-format.js b/t/unit/number-format.js
index 09a79a34..1f035270 100644
--- a/t/unit/number-format.js
+++ b/t/unit/number-format.js
@@ -53,7 +53,7 @@ describe('NumberFormatFilter', function() {
it('should format a number or sip uri', function(){
assert.equal(numberFormat(sipUris.valid1), numbers.valid1);
- assert.equal(numberFormat(sipUris.invalid1), sipUris.invalid1);
+ assert.equal(numberFormat(sipUris.invalid1), numbers.invalid3);
});
it('should format a call forward destination', function(){