Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
880fb810
提交
880fb810
authored
8月 18, 2015
作者:
Stefan Yohansson
提交者:
root
8月 19, 2015
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
FS-7977 - [Verto Communicator] Fixing default resolution and cleaning code
上级
3e785654
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
449 行增加
和
249 行删除
+449
-249
jquery.FSRTC.js
html5/verto/js/src/jquery.FSRTC.js
+5
-1
app.js
html5/verto/verto_communicator/js/app.js
+26
-24
controllers.js
html5/verto/verto_communicator/js/controllers.js
+190
-134
directives.js
html5/verto/verto_communicator/js/directives.js
+6
-6
storage-service.js
html5/verto/verto_communicator/js/storage-service.js
+31
-29
verto-service.js
html5/verto/verto_communicator/js/verto-service.js
+191
-55
没有找到文件。
html5/verto/js/src/jquery.FSRTC.js
浏览文件 @
880fb810
...
...
@@ -1040,7 +1040,11 @@ var iceTimer;
var
checkRes
=
function
(
cam
,
func
)
{
if
(
resI
>=
resList
.
length
)
{
if
(
func
)
return
func
();
var
res
=
{
'validRes'
:
$
.
FSRTC
.
validRes
,
'bestResSupported'
:
$
.
FSRTC
.
bestResSupported
()
};
if
(
func
)
return
func
(
res
);
return
;
}
...
...
html5/verto/verto_communicator/js/app.js
浏览文件 @
880fb810
...
...
@@ -48,17 +48,18 @@ vertoApp.config(['$routeProvider',
otherwise
({
redirectTo
:
'/login'
});
}]);
}
]);
vertoApp
.
run
([
'$rootScope'
,
'$location'
,
'toastr'
,
'prompt'
,
function
(
$rootScope
,
$location
,
toastr
,
prompt
)
{
$rootScope
.
$on
(
'$routeChangeSuccess'
,
function
(
event
,
current
,
previous
)
{
$rootScope
.
$on
(
'$routeChangeSuccess'
,
function
(
event
,
current
,
previous
)
{
$rootScope
.
title
=
current
.
$$route
.
title
;
});
$rootScope
.
safeProtocol
=
false
;
if
(
window
.
location
.
protocol
==
'https:'
)
{
if
(
window
.
location
.
protocol
==
'https:'
)
{
$rootScope
.
safeProtocol
=
true
;
}
...
...
@@ -79,7 +80,7 @@ vertoApp.run(['$rootScope', '$location', 'toastr', 'prompt',
message
:
message
,
input
:
true
,
label
:
label
}).
then
(
function
(
ret
)
{
}).
then
(
function
(
ret
)
{
if
(
angular
.
isFunction
(
callback
))
{
callback
(
ret
);
}
...
...
@@ -89,4 +90,5 @@ vertoApp.run(['$rootScope', '$location', 'toastr', 'prompt',
};
}]);
}
]);
html5/verto/verto_communicator/js/controllers.js
浏览文件 @
880fb810
...
...
@@ -2,12 +2,14 @@
/* Controllers */
var
vertoControllers
=
angular
.
module
(
'vertoControllers'
,
[
'ui.bootstrap'
,
'vertoService'
,
'storageService'
]);
var
vertoControllers
=
angular
.
module
(
'vertoControllers'
,
[
'ui.bootstrap'
,
'vertoService'
,
'storageService'
]);
vertoControllers
.
filter
(
'gravatar'
,
function
()
{
return
function
(
email
,
size
)
{
return
function
(
email
,
size
)
{
if
(
angular
.
isUndefined
(
size
))
{
size
=
40
;
}
...
...
@@ -17,8 +19,11 @@ vertoControllers.filter('gravatar',
});
vertoControllers
.
controller
(
'MainController'
,
[
'$scope'
,
'$rootScope'
,
'$location'
,
'$modal'
,
'$timeout'
,
'verto'
,
'storage'
,
'toastr'
,
'Fullscreen'
,
'prompt'
,
function
(
$scope
,
$rootScope
,
$location
,
$modal
,
$timeout
,
verto
,
storage
,
toastr
,
Fullscreen
,
prompt
)
{
vertoControllers
.
controller
(
'MainController'
,
[
'$scope'
,
'$rootScope'
,
'$location'
,
'$modal'
,
'$timeout'
,
'verto'
,
'storage'
,
'toastr'
,
'Fullscreen'
,
'prompt'
,
function
(
$scope
,
$rootScope
,
$location
,
$modal
,
$timeout
,
verto
,
storage
,
toastr
,
Fullscreen
,
prompt
)
{
console
.
debug
(
'Executing MainController.'
);
var
myVideo
=
document
.
getElementById
(
"webcam"
);
...
...
@@ -42,7 +47,7 @@ vertoControllers.controller('MainController', ['$scope', '$rootScope', '$locatio
/**
* if user data saved, use stored data for logon
*/
if
(
storage
.
data
.
ui_connected
&&
storage
.
data
.
ws_connected
)
{
if
(
storage
.
data
.
ui_connected
&&
storage
.
data
.
ws_connected
)
{
$scope
.
verto
.
data
.
name
=
storage
.
data
.
name
;
$scope
.
verto
.
data
.
email
=
storage
.
data
.
email
;
$scope
.
verto
.
data
.
login
=
storage
.
data
.
login
;
...
...
@@ -50,7 +55,7 @@ vertoControllers.controller('MainController', ['$scope', '$rootScope', '$locatio
verto
.
connect
(
function
(
v
,
connected
)
{
$scope
.
$apply
(
function
()
{
if
(
connected
)
{
if
(
connected
)
{
toastr
.
success
(
'Nice to see you again.'
,
'Welcome back'
);
$location
.
path
(
'/dialpad'
);
}
...
...
@@ -84,7 +89,8 @@ vertoControllers.controller('MainController', ['$scope', '$rootScope', '$locatio
toastr
.
success
(
'Login successful.'
,
'Welcome'
);
$location
.
path
(
'/dialpad'
);
}
else
{
toastr
.
error
(
'There was an error while trying to login. Please try again.'
,
'Error'
);
toastr
.
error
(
'There was an error while trying to login.
\
Please try again.'
,
'Error'
);
}
});
};
...
...
@@ -114,7 +120,7 @@ vertoControllers.controller('MainController', ['$scope', '$rootScope', '$locatio
verto
.
hangup
();
}
if
(
verto
.
data
.
call
)
{
if
(
verto
.
data
.
call
)
{
prompt
({
title
:
'Oops, Active Call in Course.'
,
message
:
'It seems that you are in a call. Do you want to hang up?'
...
...
@@ -130,7 +136,7 @@ vertoControllers.controller('MainController', ['$scope', '$rootScope', '$locatio
/**
* Shows a modal with the settings.
*/
$scope
.
openModalSettings
=
function
()
{
$scope
.
openModalSettings
=
function
()
{
var
modalInstance
=
$modal
.
open
({
animation
:
$scope
.
animationsEnabled
,
templateUrl
:
'partials/modal_settings.html'
,
...
...
@@ -138,10 +144,10 @@ vertoControllers.controller('MainController', ['$scope', '$rootScope', '$locatio
});
modalInstance
.
result
.
then
(
function
(
result
)
{
function
(
result
)
{
console
.
log
(
result
);
},
function
()
{
function
()
{
console
.
info
(
'Modal dismissed at: '
+
new
Date
());
}
);
...
...
@@ -161,10 +167,10 @@ vertoControllers.controller('MainController', ['$scope', '$rootScope', '$locatio
});
modalInstance
.
result
.
then
(
function
(
result
)
{
function
(
result
)
{
console
.
log
(
result
);
},
function
()
{
function
()
{
console
.
info
(
'Modal dismissed at: '
+
new
Date
());
}
);
...
...
@@ -203,8 +209,8 @@ vertoControllers.controller('MainController', ['$scope', '$rootScope', '$locatio
};
$scope
.
toggleCallHistory
=
function
()
{
if
(
!
$scope
.
call_history
)
{
$scope
.
toggleCallHistory
=
function
()
{
if
(
!
$scope
.
call_history
)
{
angular
.
element
(
"#call_history"
).
addClass
(
'active'
);
angular
.
element
(
"#call-history-wrapper"
).
addClass
(
'active'
);
}
else
{
...
...
@@ -218,33 +224,33 @@ vertoControllers.controller('MainController', ['$scope', '$rootScope', '$locatio
storage
.
data
.
call_history
=
[];
}
$scope
.
toggleChat
=
function
()
{
if
(
$scope
.
chatStatus
&&
$rootScope
.
activePane
==
'chat'
)
{
$scope
.
toggleChat
=
function
()
{
if
(
$scope
.
chatStatus
&&
$rootScope
.
activePane
==
'chat'
)
{
$rootScope
.
chat_counter
=
0
;
}
angular
.
element
(
'#wrapper'
).
toggleClass
(
'toggled'
);
$scope
.
chatStatus
=
angular
.
element
(
'#wrapper'
).
hasClass
(
'toggled'
);
};
$scope
.
openChat
=
function
()
{
$scope
.
openChat
=
function
()
{
$scope
.
chatStatus
=
false
;
angular
.
element
(
'#wrapper'
).
removeClass
(
'toggled'
);
};
$scope
.
closeChat
=
function
()
{
$scope
.
closeChat
=
function
()
{
$scope
.
chatStatus
=
true
;
angular
.
element
(
'#wrapper'
).
addClass
(
'toggled'
);
};
$scope
.
goFullscreen
=
function
()
{
if
(
storage
.
data
.
userStatus
!=
'connected'
)
{
if
(
storage
.
data
.
userStatus
!=
'connected'
)
{
return
;
}
$rootScope
.
fullscreenEnabled
=
!
Fullscreen
.
isEnabled
();
if
(
Fullscreen
.
isEnabled
())
{
if
(
Fullscreen
.
isEnabled
())
{
Fullscreen
.
cancel
();
}
else
{
Fullscreen
.
enable
(
document
.
getElementsByTagName
(
'body'
)[
0
]
);
Fullscreen
.
enable
(
document
.
getElementsByTagName
(
'body'
)[
0
]
);
}
}
...
...
@@ -253,13 +259,13 @@ vertoControllers.controller('MainController', ['$scope', '$rootScope', '$locatio
});
$rootScope
.
$on
(
'call.hangup'
,
function
(
event
,
data
)
{
if
(
Fullscreen
.
isEnabled
())
{
if
(
Fullscreen
.
isEnabled
())
{
Fullscreen
.
cancel
();
}
console
.
log
(
$scope
.
chatStatus
);
if
(
!
$scope
.
chatStatus
)
{
if
(
!
$scope
.
chatStatus
)
{
angular
.
element
(
'#wrapper'
).
toggleClass
(
'toggled'
);
$scope
.
chatStatus
=
angular
.
element
(
'#wrapper'
).
hasClass
(
'toggled'
);
}
...
...
@@ -270,17 +276,17 @@ vertoControllers.controller('MainController', ['$scope', '$rootScope', '$locatio
try
{
$rootScope
.
$digest
();
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
log
(
'not digest'
);
}
});
$rootScope
.
$on
(
'page.incall'
,
function
(
event
,
data
)
{
$rootScope
.
$on
(
'page.incall'
,
function
(
event
,
data
)
{
prompt
({
title
:
'Oops, Active Call in Course.'
,
message
:
'It seems you were in a call before leaving the last time. Wanna go back to that?'
}).
then
(
function
()
{
verto
.
changeData
(
storage
.
data
.
verto
);
verto
.
changeData
(
angular
.
fromJson
(
storage
.
data
.
verto
)
);
console
.
log
(
'redirect to incall page'
);
$location
.
path
(
'/incall'
);
},
function
()
{
...
...
@@ -293,7 +299,7 @@ vertoControllers.controller('MainController', ['$scope', '$rootScope', '$locatio
verto
.
data
.
mutedMic
=
storage
.
data
.
mutedMic
;
verto
.
data
.
mutedVideo
=
storage
.
data
.
mutedVideo
;
if
(
!
storage
.
data
.
cur_call
)
{
if
(
!
storage
.
data
.
cur_call
)
{
storage
.
data
.
call_start
=
new
Date
();
}
storage
.
data
.
userStatus
=
'connected'
;
...
...
@@ -337,11 +343,21 @@ vertoControllers.controller('MainController', ['$scope', '$rootScope', '$locatio
$scope
.
answerCall
();
storage
.
data
.
called_number
=
data
;
storage
.
data
.
call_history
.
unshift
({
'number'
:
data
,
'direction'
:
'inbound'
,
'status'
:
true
,
'call_start'
:
Date
()});
storage
.
data
.
call_history
.
unshift
({
'number'
:
data
,
'direction'
:
'inbound'
,
'status'
:
true
,
'call_start'
:
Date
()
});
$location
.
path
(
'/incall'
);
},
function
()
{
$scope
.
declineCall
();
storage
.
data
.
call_history
.
unshift
({
'number'
:
data
,
'direction'
:
'inbound'
,
'status'
:
false
,
'call_start'
:
Date
()});
storage
.
data
.
call_history
.
unshift
({
'number'
:
data
,
'direction'
:
'inbound'
,
'status'
:
false
,
'call_start'
:
Date
()
});
});
});
...
...
@@ -393,7 +409,7 @@ vertoControllers.controller('MainController', ['$scope', '$rootScope', '$locatio
};
$scope
.
screenshare
=
function
()
{
if
(
verto
.
data
.
shareCall
)
{
if
(
verto
.
data
.
shareCall
)
{
verto
.
screenshareHangup
();
return
false
;
}
...
...
@@ -401,7 +417,8 @@ vertoControllers.controller('MainController', ['$scope', '$rootScope', '$locatio
};
$scope
.
play
=
function
()
{
var
file
=
$scope
.
promptInput
(
'Please, enter filename'
,
''
,
'File'
,
function
(
file
)
{
var
file
=
$scope
.
promptInput
(
'Please, enter filename'
,
''
,
'File'
,
function
(
file
)
{
verto
.
data
.
conf
.
play
(
file
);
console
.
log
(
'play file :'
,
file
);
});
...
...
@@ -413,7 +430,8 @@ vertoControllers.controller('MainController', ['$scope', '$rootScope', '$locatio
};
$scope
.
record
=
function
()
{
var
file
=
$scope
.
promptInput
(
'Please, enter filename'
,
''
,
'File'
,
function
(
file
)
{
var
file
=
$scope
.
promptInput
(
'Please, enter filename'
,
''
,
'File'
,
function
(
file
)
{
verto
.
data
.
conf
.
record
(
file
);
console
.
log
(
'recording file :'
,
file
);
});
...
...
@@ -424,18 +442,22 @@ vertoControllers.controller('MainController', ['$scope', '$rootScope', '$locatio
};
$scope
.
snapshot
=
function
()
{
var
file
=
$scope
.
promptInput
(
'Please, enter filename'
,
''
,
'File'
,
function
(
file
)
{
var
file
=
$scope
.
promptInput
(
'Please, enter filename'
,
''
,
'File'
,
function
(
file
)
{
verto
.
data
.
conf
.
snapshot
(
file
);
console
.
log
(
'snapshot file :'
,
file
);
});
};
}]);
}
]);
vertoControllers
.
controller
(
'ChatController'
,
[
'$scope'
,
'$rootScope'
,
'$http'
,
'$location'
,
'$anchorScroll'
,
'$timeout'
,
'verto'
,
function
(
$scope
,
$rootScope
,
$http
,
$location
,
$anchorScroll
,
$timeout
,
verto
)
{
vertoControllers
.
controller
(
'ChatController'
,
[
'$scope'
,
'$rootScope'
,
'$http'
,
'$location'
,
'$anchorScroll'
,
'$timeout'
,
'verto'
,
function
(
$scope
,
$rootScope
,
$http
,
$location
,
$anchorScroll
,
$timeout
,
verto
)
{
console
.
debug
(
'Executing ChatController.'
);
function
scrollToChatBottom
()
{
...
...
@@ -457,7 +479,7 @@ vertoControllers.controller('ChatController', ['$scope', '$rootScope', '$http',
clearConferenceChat
();
$scope
.
$watch
(
'activePane'
,
function
()
{
if
(
$scope
.
activePane
==
'chat'
)
{
if
(
$scope
.
activePane
==
'chat'
)
{
$rootScope
.
chat_counter
=
0
;
}
$rootScope
.
activePane
=
$scope
.
activePane
;
...
...
@@ -468,7 +490,8 @@ vertoControllers.controller('ChatController', ['$scope', '$rootScope', '$http',
console
.
log
(
'chat.newMessage'
,
data
);
$scope
.
$apply
(
function
()
{
$scope
.
messages
.
push
(
data
);
if
(
data
.
from
!=
verto
.
data
.
name
&&
(
!
$scope
.
chatStatus
||
$scope
.
activePane
!=
'chat'
))
{
if
(
data
.
from
!=
verto
.
data
.
name
&&
(
!
$scope
.
chatStatus
||
$scope
.
activePane
!=
'chat'
))
{
++
$rootScope
.
chat_counter
;
}
$timeout
(
function
()
{
...
...
@@ -542,8 +565,9 @@ vertoControllers.controller('ChatController', ['$scope', '$rootScope', '$http',
if
(
memberIdx
<
0
)
{
console
.
log
(
'Didn
\'
t find the member uuid '
+
member
.
uuid
);
}
else
{
$scope
.
$apply
(
function
()
{
console
.
log
(
'Updating'
,
memberIdx
,
' <'
,
$scope
.
members
[
memberIdx
],
'> with <'
,
member
,
'>'
);
$scope
.
$apply
(
function
()
{
console
.
log
(
'Updating'
,
memberIdx
,
' <'
,
$scope
.
members
[
memberIdx
],
'> with <'
,
member
,
'>'
);
angular
.
extend
(
$scope
.
members
[
memberIdx
],
member
);
});
}
...
...
@@ -612,24 +636,32 @@ vertoControllers.controller('ChatController', ['$scope', '$rootScope', '$http',
var
exten
=
'1800'
;
verto
.
data
.
conf
.
transfer
(
memberID
,
exten
);
};
}]);
}
]);
vertoControllers
.
controller
(
'MenuController'
,
[
'$scope'
,
'$http'
,
'$location'
,
'verto'
,
'storage'
,
vertoControllers
.
controller
(
'MenuController'
,
[
'$scope'
,
'$http'
,
'$location'
,
'verto'
,
'storage'
,
function
(
$scope
,
$http
,
$location
,
verto
,
storage
)
{
console
.
debug
(
'Executing MenuController.'
);
}]);
}
]);
vertoControllers
.
controller
(
'ModalSettingsController'
,
[
'$scope'
,
'$http'
,
'$location'
,
'$modalInstance'
,
'verto'
,
'storage'
,
vertoControllers
.
controller
(
'ModalSettingsController'
,
[
'$scope'
,
'$http'
,
'$location'
,
'$modalInstance'
,
'verto'
,
'storage'
,
function
(
$scope
,
$http
,
$location
,
$modalInstance
,
verto
,
storage
)
{
console
.
debug
(
'Executing ModalSettingsController.'
);
$scope
.
verto
=
storage
.
data
.
verto
;
$scope
.
verto
=
verto
;
$scope
.
verto
=
angular
.
fromJson
(
storage
.
data
.
verto
);
$scope
.
storage
=
storage
;
$scope
.
ok
=
function
()
{
$modalInstance
.
close
(
'Ok.'
);
verto
.
changeData
(
storage
.
data
.
verto
);
storage
.
data
.
verto
=
angular
.
toJson
(
$scope
.
verto
);
verto
.
changeData
(
$scope
.
verto
);
};
$scope
.
cancel
=
function
()
{
...
...
@@ -639,9 +671,11 @@ vertoControllers.controller('ModalSettingsController', ['$scope', '$http', '$loc
$scope
.
refreshDeviceList
=
function
()
{
verto
.
refreshDevices
();
}
}]);
}
]);
vertoControllers
.
controller
(
'ModalLoginInformationController'
,
[
'$scope'
,
'$http'
,
'$location'
,
'$modalInstance'
,
'verto'
,
'storage'
,
vertoControllers
.
controller
(
'ModalLoginInformationController'
,
[
'$scope'
,
'$http'
,
'$location'
,
'$modalInstance'
,
'verto'
,
'storage'
,
function
(
$scope
,
$http
,
$location
,
$modalInstance
,
verto
,
storage
)
{
console
.
debug
(
'Executing ModalLoginInformationController.'
);
...
...
@@ -656,9 +690,11 @@ vertoControllers.controller('ModalLoginInformationController', ['$scope', '$http
$modalInstance
.
dismiss
(
'cancel'
);
};
}]);
}
]);
vertoControllers
.
controller
(
'LoginController'
,
[
'$scope'
,
'$http'
,
'$location'
,
'verto'
,
vertoControllers
.
controller
(
'LoginController'
,
[
'$scope'
,
'$http'
,
'$location'
,
'verto'
,
function
(
$scope
,
$http
,
$location
,
verto
)
{
$scope
.
checkBrowser
();
...
...
@@ -667,16 +703,18 @@ vertoControllers.controller('LoginController', ['$scope', '$http', '$location',
*/
verto
.
data
.
name
=
$scope
.
storage
.
data
.
name
;
verto
.
data
.
email
=
$scope
.
storage
.
data
.
email
;
if
(
$scope
.
storage
.
data
.
login
!=
''
&&
$scope
.
storage
.
data
.
password
!=
''
)
{
if
(
$scope
.
storage
.
data
.
login
!=
''
&&
$scope
.
storage
.
data
.
password
!=
''
)
{
verto
.
data
.
login
=
$scope
.
storage
.
data
.
login
;
verto
.
data
.
password
=
$scope
.
storage
.
data
.
password
;
}
console
.
debug
(
'Executing LoginController.'
);
}]);
}
]);
vertoControllers
.
controller
(
'DialPadController'
,
[
'$rootScope'
,
'$scope'
,
'$http'
,
'$location'
,
'toastr'
,
'verto'
,
'storage'
,
vertoControllers
.
controller
(
'DialPadController'
,
[
'$rootScope'
,
'$scope'
,
'$http'
,
'$location'
,
'toastr'
,
'verto'
,
'storage'
,
function
(
$rootScope
,
$scope
,
$http
,
$location
,
toastr
,
verto
,
storage
)
{
console
.
debug
(
'Executing DialPadController.'
);
...
...
@@ -688,7 +726,7 @@ vertoControllers.controller('DialPadController', ['$rootScope', '$scope', '$http
/**
* fill dialpad via querystring [?autocall=\d+]
*/
if
(
$location
.
search
().
autocall
)
{
if
(
$location
.
search
().
autocall
)
{
$rootScope
.
dialpadNumber
=
$location
.
search
().
autocall
;
}
...
...
@@ -701,7 +739,7 @@ vertoControllers.controller('DialPadController', ['$rootScope', '$scope', '$http
};
$rootScope
.
transfer
=
function
()
{
if
(
!
$rootScope
.
dialpadNumber
)
{
if
(
!
$rootScope
.
dialpadNumber
)
{
return
false
;
}
verto
.
data
.
call
.
transfer
(
$rootScope
.
dialpadNumber
);
...
...
@@ -714,7 +752,7 @@ vertoControllers.controller('DialPadController', ['$rootScope', '$scope', '$http
storage
.
data
.
onHold
=
false
;
storage
.
data
.
cur_call
=
0
;
$rootScope
.
dialpadNumber
=
extension
;
if
(
!
$rootScope
.
dialpadNumber
&&
storage
.
data
.
called_number
)
{
if
(
!
$rootScope
.
dialpadNumber
&&
storage
.
data
.
called_number
)
{
$rootScope
.
dialpadNumber
=
storage
.
data
.
called_number
;
return
false
;
}
else
if
(
!
$rootScope
.
dialpadNumber
&&
!
storage
.
data
.
called_number
)
{
...
...
@@ -734,14 +772,22 @@ vertoControllers.controller('DialPadController', ['$rootScope', '$scope', '$http
verto
.
call
(
$rootScope
.
dialpadNumber
);
storage
.
data
.
called_number
=
$rootScope
.
dialpadNumber
;
storage
.
data
.
call_history
.
unshift
({
'number'
:
$rootScope
.
dialpadNumber
,
'direction'
:
'outbound'
,
'call_start'
:
Date
()});
storage
.
data
.
call_history
.
unshift
({
'number'
:
$rootScope
.
dialpadNumber
,
'direction'
:
'outbound'
,
'call_start'
:
Date
()
});
$location
.
path
(
'/incall'
);
}
}]);
}
]);
vertoControllers
.
controller
(
'InCallController'
,
[
'$rootScope'
,
'$scope'
,
'$http'
,
'$location'
,
'$modal'
,
'$timeout'
,
'toastr'
,
'verto'
,
'storage'
,
'prompt'
,
'Fullscreen'
,
function
(
$rootScope
,
$scope
,
$http
,
$location
,
$modal
,
$timeout
,
toatr
,
verto
,
storage
,
prompt
,
Fullscreen
)
{
vertoControllers
.
controller
(
'InCallController'
,
[
'$rootScope'
,
'$scope'
,
'$http'
,
'$location'
,
'$modal'
,
'$timeout'
,
'toastr'
,
'verto'
,
'storage'
,
'prompt'
,
'Fullscreen'
,
function
(
$rootScope
,
$scope
,
$http
,
$location
,
$modal
,
$timeout
,
toatr
,
verto
,
storage
,
prompt
,
Fullscreen
)
{
console
.
debug
(
'Executing InCallController.'
);
$scope
.
layout
=
null
;
$scope
.
checkBrowser
();
...
...
@@ -751,7 +797,7 @@ vertoControllers.controller('InCallController', ['$rootScope', '$scope', '$http'
$scope
.
incall
=
true
;
if
(
storage
.
data
.
videoCall
)
{
if
(
storage
.
data
.
videoCall
)
{
$scope
.
callTemplate
=
'partials/video_call.html'
;
}
...
...
@@ -765,7 +811,8 @@ vertoControllers.controller('InCallController', ['$rootScope', '$scope', '$http'
* toggle dialpad in incall page
*/
$scope
.
toggleDialpad
=
function
()
{
$scope
.
openModal
(
'partials/dialpad_widget.html'
,
'ModalDialpadController'
);
$scope
.
openModal
(
'partials/dialpad_widget.html'
,
'ModalDialpadController'
);
/*
if(!$scope.dialpadTemplate) {
...
...
@@ -809,9 +856,12 @@ vertoControllers.controller('InCallController', ['$rootScope', '$scope', '$http'
$scope
.
$broadcast
(
'timer-start'
);
},
1000
);
}]);
}
]);
vertoControllers
.
controller
(
'ModalDialpadController'
,
[
'$scope'
,
'$modalInstance'
,
function
(
$scope
,
$modalInstance
)
{
vertoControllers
.
controller
(
'ModalDialpadController'
,
[
'$scope'
,
'$modalInstance'
,
function
(
$scope
,
$modalInstance
)
{
$scope
.
ok
=
function
()
{
$modalInstance
.
close
(
'Ok.'
);
...
...
@@ -821,16 +871,21 @@ vertoControllers.controller('ModalDialpadController', ['$scope', '$modalInstance
$modalInstance
.
dismiss
(
'cancel'
);
};
}]);
}
]);
vertoControllers
.
controller
(
'BrowserUpgradeController'
,
[
'$scope'
,
'$http'
,
'$location'
,
'verto'
,
'storage'
,
'Fullscreen'
,
vertoControllers
.
controller
(
'BrowserUpgradeController'
,
[
'$scope'
,
'$http'
,
'$location'
,
'verto'
,
'storage'
,
'Fullscreen'
,
function
(
$scope
,
$http
,
$location
,
verto
,
storage
,
Fullscreen
)
{
console
.
debug
(
'Executing BrowserUpgradeController.'
);
}]);
}
]);
vertoControllers
.
controller
(
'ContributorsController'
,
[
'$scope'
,
'$http'
,
'toastr'
,
function
(
$scope
,
$http
,
toastr
)
{
$http
.
get
(
window
.
location
.
pathname
+
'/contributors.txt'
)
vertoControllers
.
controller
(
'ContributorsController'
,
[
'$scope'
,
'$http'
,
'toastr'
,
function
(
$scope
,
$http
,
toastr
)
{
$http
.
get
(
window
.
location
.
pathname
+
'/contributors.txt'
)
.
success
(
function
(
data
)
{
var
contributors
=
[];
...
...
@@ -851,4 +906,5 @@ vertoControllers.controller('ContributorsController', ['$scope', '$http', 'toast
.
error
(
function
()
{
toastr
.
error
(
'contributors not found.'
);
});
}]);
}
]);
html5/verto/verto_communicator/js/directives.js
浏览文件 @
880fb810
...
...
@@ -18,7 +18,7 @@ vertoDirectives.directive('videoTag',
// Moving the video tag to the new place inside the incall page.
console
.
log
(
'Moving the video to element.'
);
jQuery
(
'video'
).
removeClass
(
'hide'
).
appendTo
(
element
);
jQuery
(
'video'
).
css
(
'display'
,
'block'
);
jQuery
(
'video'
).
css
(
'display'
,
'block'
);
scope
.
callActive
();
element
.
on
(
'$destroy'
,
function
()
{
...
...
@@ -62,19 +62,19 @@ vertoDirectives.directive('showControls',
jQuery
(
'.video-footer'
).
fadeIn
(
'slow'
);
jQuery
(
'.video-hover-buttons'
).
fadeIn
(
'slow'
);
element
.
parent
().
bind
(
'mousemove'
,
function
()
{
if
(
Fullscreen
.
isEnabled
())
{
if
(
Fullscreen
.
isEnabled
())
{
clearTimeout
(
i
);
jQuery
(
'.video-footer'
).
fadeIn
(
'slow'
);
jQuery
(
'.video-hover-buttons'
).
fadeIn
(
500
);
i
=
setTimeout
(
function
()
{
if
(
Fullscreen
.
isEnabled
())
{
i
=
setTimeout
(
function
()
{
if
(
Fullscreen
.
isEnabled
())
{
jQuery
(
'.video-footer'
).
fadeOut
(
'slow'
);
jQuery
(
'.video-hover-buttons'
).
fadeOut
(
500
);
}
},
3000
);
}
});
element
.
parent
().
bind
(
'mouseleave'
,
function
()
{
element
.
parent
().
bind
(
'mouseleave'
,
function
()
{
jQuery
(
'.video-footer'
).
fadeIn
();
jQuery
(
'.video-hover-buttons'
).
fadeIn
();
});
...
...
@@ -84,4 +84,4 @@ vertoDirectives.directive('showControls',
return
{
link
:
link
};
});
});
html5/verto/verto_communicator/js/storage-service.js
浏览文件 @
880fb810
...
...
@@ -2,7 +2,8 @@
var
storageService
=
angular
.
module
(
'storageService'
,
[
'ngStorage'
]);
storageService
.
service
(
'storage'
,
[
'$rootScope'
,
'$localStorage'
,
'verto'
,
function
(
$rootScope
,
$localStorage
,
verto
)
{
storageService
.
service
(
'storage'
,
[
'$rootScope'
,
'$localStorage'
,
'verto'
,
function
(
$rootScope
,
$localStorage
,
verto
)
{
var
data
=
$localStorage
;
data
.
$default
({
...
...
@@ -20,7 +21,7 @@ storageService.service('storage', ['$rootScope', '$localStorage', 'verto', funct
userStatus
:
'disconnected'
,
mutedVideo
:
false
,
mutedMic
:
false
,
verto
:
verto
verto
:
angular
.
toJson
(
verto
)
});
return
{
...
...
@@ -32,4 +33,5 @@ storageService.service('storage', ['$rootScope', '$localStorage', 'verto', funct
data
.
userStatus
=
'disconnected'
;
},
};
}]);
}
]);
html5/verto/verto_communicator/js/verto-service.js
浏览文件 @
880fb810
...
...
@@ -2,38 +2,95 @@
/* Controllers */
var
videoQuality
=
[
{
id
:
'qvga'
,
label
:
'QVGA 320x240'
},
{
id
:
'vga'
,
label
:
'VGA 640x480'
},
{
id
:
'qvga_wide'
,
label
:
'QVGA WIDE 320x180'
},
{
id
:
'vga_wide'
,
label
:
'VGA WIDE 640x360'
},
{
id
:
'hd'
,
label
:
'HD 1280x720'
},
{
id
:
'hhd'
,
label
:
'HHD 1920x1080'
},
];
var
videoQuality
=
[{
id
:
'qvga'
,
label
:
'QVGA 320x240'
,
width
:
320
,
height
:
240
},
{
id
:
'vga'
,
label
:
'VGA 640x480'
,
width
:
640
,
height
:
480
},
{
id
:
'qvga_wide'
,
label
:
'QVGA WIDE 320x180'
,
width
:
320
,
height
:
180
},
{
id
:
'vga_wide'
,
label
:
'VGA WIDE 640x360'
,
width
:
640
,
height
:
360
},
{
id
:
'hd'
,
label
:
'HD 1280x720'
,
width
:
1280
,
height
:
720
},
{
id
:
'hhd'
,
label
:
'HHD 1920x1080'
,
width
:
1920
,
height
:
1080
},
];
var
videoResolution
=
{
qvga
:
{
width
:
320
,
height
:
240
},
vga
:
{
width
:
640
,
height
:
480
},
qvga_wide
:
{
width
:
320
,
height
:
180
},
vga_wide
:
{
width
:
640
,
height
:
360
},
hd
:
{
width
:
1280
,
height
:
720
},
hhd
:
{
width
:
1920
,
height
:
1080
},
qvga
:
{
width
:
320
,
height
:
240
},
vga
:
{
width
:
640
,
height
:
480
},
qvga_wide
:
{
width
:
320
,
height
:
180
},
vga_wide
:
{
width
:
640
,
height
:
360
},
hd
:
{
width
:
1280
,
height
:
720
},
hhd
:
{
width
:
1920
,
height
:
1080
},
};
var
bandwidth
=
[
{
id
:
'250'
,
label
:
'250kb'
},
{
id
:
'500'
,
label
:
'500kb'
},
{
id
:
'1024'
,
label
:
'1mb'
},
{
id
:
'1536'
,
label
:
'1.5mb'
},
{
id
:
'2048'
,
label
:
'2mb'
},
{
id
:
'5120'
,
label
:
'5mb'
},
{
id
:
'0'
,
label
:
'No Limit'
},
{
id
:
'default'
,
label
:
'Server Default'
},
];
var
bandwidth
=
[{
id
:
'250'
,
label
:
'250kb'
},
{
id
:
'500'
,
label
:
'500kb'
},
{
id
:
'1024'
,
label
:
'1mb'
},
{
id
:
'1536'
,
label
:
'1.5mb'
},
{
id
:
'2048'
,
label
:
'2mb'
},
{
id
:
'5120'
,
label
:
'5mb'
},
{
id
:
'0'
,
label
:
'No Limit'
},
{
id
:
'default'
,
label
:
'Server Default'
},
];
var
vertoService
=
angular
.
module
(
'vertoService'
,
[
'ngCookies'
]);
vertoService
.
service
(
'verto'
,
[
'$rootScope'
,
'$cookieStore'
,
'$location'
,
function
(
$rootScope
,
$cookieStore
,
$location
)
{
vertoService
.
service
(
'verto'
,
[
'$rootScope'
,
'$cookieStore'
,
'$location'
,
function
(
$rootScope
,
$cookieStore
,
$location
)
{
var
data
=
{
// Connection data.
instance
:
null
,
...
...
@@ -72,6 +129,8 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', functi
incomingBandwidth
:
$cookieStore
.
get
(
'verto_demo_incomingBandwidth'
)
||
'default'
,
vidQual
:
$cookieStore
.
get
(
'verto_demo_vqual'
)
||
'qvga'
,
localVideo
:
$cookieStore
.
get
(
'verto_demo_local_video_checked'
)
||
false
,
bestWidth
:
''
,
bestHeight
:
''
,
selectedVideo
:
null
,
selectedAudio
:
null
,
selectedShare
:
null
...
...
@@ -112,11 +171,24 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', functi
}
function
getVideoParams
()
{
var
maxWidth
,
maxHeight
;
maxWidth
=
data
.
bestWidth
;
maxHeight
=
data
.
bestHeight
;
if
(
!
data
.
bestWidth
)
{
maxWidth
=
videoResolution
[
data
.
vidQual
].
width
;
}
if
(
!
data
.
bestHeight
)
{
maxHeight
=
videoResolution
[
data
.
vidQual
].
height
;
}
return
{
minWidth
:
videoResolution
[
data
.
vidQual
].
width
,
minHeight
:
videoResolution
[
data
.
vidQual
].
height
,
maxWidth
:
videoResolution
[
data
.
vidQual
].
w
idth
,
maxHeight
:
videoResolution
[
data
.
vidQual
].
h
eight
maxWidth
:
maxW
idth
,
maxHeight
:
maxH
eight
};
}
...
...
@@ -161,8 +233,14 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', functi
console
.
debug
(
'Attempting to refresh the devices.'
);
data
.
videoDevices
=
[{
id
:
'none'
,
label
:
'No camera'
}];
data
.
shareDevices
=
[{
id
:
'screen'
,
label
:
'Screen'
}];
data
.
videoDevices
=
[{
id
:
'none'
,
label
:
'No camera'
}];
data
.
shareDevices
=
[{
id
:
'screen'
,
label
:
'Screen'
}];
data
.
audioDevices
=
[];
data
.
selectedVideo
=
'none'
;
...
...
@@ -171,10 +249,16 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', functi
for
(
var
i
in
jQuery
.
verto
.
videoDevices
)
{
var
device
=
jQuery
.
verto
.
videoDevices
[
i
];
if
(
!
device
.
label
)
{
data
.
videoDevices
.
push
({
id
:
'Camera '
+
i
,
label
:
'Camera '
+
i
});
if
(
!
device
.
label
)
{
data
.
videoDevices
.
push
({
id
:
'Camera '
+
i
,
label
:
'Camera '
+
i
});
}
else
{
data
.
videoDevices
.
push
({
id
:
device
.
id
,
label
:
device
.
label
||
device
.
id
});
data
.
videoDevices
.
push
({
id
:
device
.
id
,
label
:
device
.
label
||
device
.
id
});
}
// Selecting the first source.
...
...
@@ -182,12 +266,18 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', functi
data
.
selectedVideo
=
device
.
id
;
}
if
(
!
device
.
label
)
{
data
.
shareDevices
.
push
({
id
:
'Share Device '
+
i
,
label
:
'Share Device '
+
i
});
if
(
!
device
.
label
)
{
data
.
shareDevices
.
push
({
id
:
'Share Device '
+
i
,
label
:
'Share Device '
+
i
});
continue
;
}
data
.
shareDevices
.
push
({
id
:
device
.
id
,
label
:
device
.
label
||
device
.
id
});
data
.
shareDevices
.
push
({
id
:
device
.
id
,
label
:
device
.
label
||
device
.
id
});
}
data
.
audioDevices
=
[];
...
...
@@ -198,11 +288,17 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', functi
data
.
selectedAudio
=
device
.
id
;
}
if
(
!
device
.
label
)
{
data
.
audioDevices
.
push
({
id
:
'Microphone '
+
i
,
label
:
'Microphone '
+
i
});
if
(
!
device
.
label
)
{
data
.
audioDevices
.
push
({
id
:
'Microphone '
+
i
,
label
:
'Microphone '
+
i
});
continue
;
}
data
.
audioDevices
.
push
({
id
:
device
.
id
,
label
:
device
.
label
||
device
.
id
});
data
.
audioDevices
.
push
({
id
:
device
.
id
,
label
:
device
.
label
||
device
.
id
});
}
console
.
debug
(
'Devices were refreshed.'
);
...
...
@@ -230,6 +326,35 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', functi
}
},
updateResolutions
:
function
(
supportedResolutions
)
{
console
.
debug
(
'Attempting to sync supported and available resolutions'
);
var
removed
=
0
;
angular
.
forEach
(
videoQuality
,
function
(
resolution
,
id
)
{
var
supported
=
false
;
angular
.
forEach
(
supportedResolutions
,
function
(
res
)
{
var
width
=
res
[
0
];
var
height
=
res
[
1
];
if
(
resolution
.
width
==
width
&&
resolution
.
height
==
height
)
{
supported
=
true
;
}
});
if
(
!
supported
)
{
delete
videoQuality
[
id
];
++
removed
;
}
});
videoQuality
.
length
=
videoQuality
.
length
-
removed
;
this
.
videoQuality
=
videoQuality
;
this
.
data
.
vidQual
=
videoQuality
[
videoQuality
.
length
-
1
].
id
;
return
videoQuality
;
},
/**
* Connects to the verto server. Automatically calls `onWSLogin`
* callback set in the verto object.
...
...
@@ -268,8 +393,11 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', functi
data
.
liveArray
=
new
$
.
verto
.
liveArray
(
data
.
instance
,
pvtData
.
laChannel
,
pvtData
.
laName
,
{
subParams
:
{
callID
:
dialog
?
dialog
.
callID
:
null
}});
pvtData
.
laName
,
{
subParams
:
{
callID
:
dialog
?
dialog
.
callID
:
null
}
});
data
.
liveArray
.
onErr
=
function
(
obj
,
args
)
{
console
.
log
(
'liveArray.onErr'
,
obj
,
args
);
...
...
@@ -278,7 +406,7 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', functi
data
.
liveArray
.
onChange
=
function
(
obj
,
args
)
{
console
.
log
(
'liveArray.onChange'
,
obj
,
args
);
switch
(
args
.
action
)
{
switch
(
args
.
action
)
{
case
'bootObj'
:
$rootScope
.
$emit
(
'members.boot'
,
args
.
data
);
break
;
...
...
@@ -346,7 +474,10 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', functi
case
$
.
verto
.
enum
.
message
.
info
:
var
body
=
params
.
body
;
var
from
=
params
.
from_msg_name
||
params
.
from
;
$rootScope
.
$emit
(
'chat.newMessage'
,
{
from
:
from
,
body
:
body
});
$rootScope
.
$emit
(
'chat.newMessage'
,
{
from
:
from
,
body
:
body
});
break
;
default
:
break
;
...
...
@@ -354,9 +485,9 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', functi
},
onDialogState
:
function
(
d
)
{
if
(
!
data
.
call
)
{
if
(
!
data
.
call
)
{
data
.
call
=
d
;
if
(
d
.
state
.
name
!==
'ringing'
)
{
if
(
d
.
state
.
name
!==
'ringing'
)
{
inCall
();
}
}
...
...
@@ -386,7 +517,7 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', functi
break
;
case
"destroy"
:
console
.
debug
(
'Destroying: '
+
d
.
cause
);
if
(
d
.
params
.
screenShare
)
{
if
(
d
.
params
.
screenShare
)
{
cleanShareCall
(
that
);
}
else
{
cleanCall
();
...
...
@@ -404,7 +535,11 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', functi
}
};
var
init
=
function
()
{
var
init
=
function
(
resolutions
)
{
data
.
bestWidth
=
resolutions
[
'bestResSupported'
][
0
];
data
.
bestHeight
=
resolutions
[
'bestResSupported'
][
1
];
that
.
updateResolutions
(
resolutions
[
'validRes'
]);
that
.
refreshVideoResolution
();
...
...
@@ -535,7 +670,7 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', functi
},
screenshareHangup
:
function
()
{
if
(
!
data
.
shareCall
)
{
if
(
!
data
.
shareCall
)
{
console
.
debug
(
'There is no call to hangup.'
);
return
false
;
}
...
...
@@ -648,4 +783,5 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', functi
}
}
};
}]);
}
]);
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论