Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
YDL-Component-Medical
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨凯
YDL-Component-Medical
Commits
3d6e551e
Commit
3d6e551e
authored
4 years ago
by
刘鹏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 声网日志埋点完成
parent
3507c44d
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
276 additions
and
50 deletions
+276
-50
AudioHomeActivity.kt
m-audioim/src/main/java/com/ydl/audioim/AudioHomeActivity.kt
+54
-1
YDLavManager.kt
m-audioim/src/main/java/com/ydl/audioim/YDLavManager.kt
+192
-45
ConsultantAudioHomeActivity.kt
m-audioim/src/main/java/com/ydl/consultantim/ConsultantAudioHomeActivity.kt
+30
-4
No files found.
m-audioim/src/main/java/com/ydl/audioim/AudioHomeActivity.kt
View file @
3d6e551e
...
...
@@ -50,6 +50,8 @@ import com.ydl.ydlcommon.utils.LogUtil
import
com.ydl.ydlcommon.utils.StatusBarUtils
import
com.ydl.ydlcommon.utils.Utils
import
com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import
com.ydl.ydlcommon.utils.log.AliYunLogConfig
import
com.ydl.ydlcommon.utils.log.AliYunLogHelper
import
com.ydl.ydlcommon.utils.log.LogHelper
import
com.ydl.ydlcommon.utils.remind.ToastHelper
import
com.yidianling.common.tools.ToastUtil
...
...
@@ -212,6 +214,8 @@ class AudioHomeActivity :
uploadException
(
"mRtcEventHandler-onWarning:warnCode--%${warn}"
,
callback
=
null
)
LogUtil
.
e
(
"[agora]发生警告回调$warn"
)
writeAgoraLog
(
"声网警告回调($warn)"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"声网警告回调($warn)"
)
//103:没有可用的频道资源。可能是因为服务端没法分配频道资源
//104:查找频道超时。在加入频道时 SDK 先要查找指定的频道,出现该警告一般是因为网络太差,连接不到服务器
//105:查找频道请求被服务器拒绝。服务器可能没有办法处理这个请求或请求是非法的
...
...
@@ -240,6 +244,8 @@ class AudioHomeActivity :
super
.
onError
(
err
)
uploadException
(
"mRtcEventHandler-onError:errorCode--%${err}"
,
callback
=
null
)
writeAgoraLog
(
"声网错误回调errorCode--%${err}"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"声网错误回调errorCode--%${err}"
)
//3:SDK 初始化失败。Agora 建议尝试以下处理方法
//7:SDK 尚未初始化,就调用其 API。请确认在调用 API 之前已创建 RtcEngine 对象并完成初始化
//10:API 调用超时。有些 API 调用需要 SDK 返回结果,如果 SDK 处理时间过长,超过 10 秒没有返回,会出现此错误
...
...
@@ -283,11 +289,15 @@ class AudioHomeActivity :
override
fun
onApiCallExecuted
(
error
:
Int
,
api
:
String
?,
result
:
String
?)
{
super
.
onApiCallExecuted
(
error
,
api
,
result
)
// LogUtil.e("[agora]$api 已执行回调 $result")
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"$api 已执行回调 $result"
)
}
override
fun
onJoinChannelSuccess
(
channel
:
String
?,
uid
:
Int
,
elapsed
:
Int
)
{
super
.
onJoinChannelSuccess
(
channel
,
uid
,
elapsed
)
LogUtil
.
e
(
"[agora]$uid 用户声网加入频道成功:channel=$channel"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"$uid 用户声网加入频道成功:channel=$channel"
)
//更新ui
// onJoinChannelSuccess()
...
...
@@ -303,6 +313,8 @@ class AudioHomeActivity :
override
fun
onRejoinChannelSuccess
(
channel
:
String
?,
uid
:
Int
,
elapsed
:
Int
)
{
super
.
onRejoinChannelSuccess
(
channel
,
uid
,
elapsed
)
LogUtil
.
e
(
"[agora]$uid 用户声网重新加入频道成功:channel=$channel"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"$uid 用户声网重新加入频道成功:channel=$channel"
)
runOnUiThread
{
//自己加入频道成功
if
(!
isConnectSuccess
)
{
...
...
@@ -316,6 +328,8 @@ class AudioHomeActivity :
override
fun
onRtcStats
(
stats
:
IRtcEngineEventHandler
.
RtcStats
?)
{
super
.
onRtcStats
(
stats
)
writeAgoraLog
(
"声网onRtcStats:users:${stats?.users}"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"声网onRtcStats:users:${stats?.users}"
)
// 不需要移动端做离开房间逻辑,服务端会判断进行踢人逻辑
//因为用户端直接加入了频道,防止该回调执行时,专家还未加入频道,因此在连接成功之后,才进行频道人数判断
// if (isConnectSuccess && null != stats?.users && stats.users == 1) {
...
...
@@ -332,6 +346,8 @@ class AudioHomeActivity :
// 3 网络连接被服务器中止 该情况现在是因为后端踢人逻辑
if
(
reason
==
3
)
{
writeAgoraLog
(
"通话结束:网络连接被服务器中止 该情况现在是因为后端踢人逻辑,原因(${reason})"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"通话结束:网络连接被服务器中止 该情况现在是因为后端踢人逻辑,原因(${reason})"
)
// com.yidianling.common.tools.ToastUtil.toastShort("专家已挂断")
//通话结束或挂断时,上传日志文件
uploadLog
()
...
...
@@ -343,6 +359,8 @@ class AudioHomeActivity :
override
fun
onLeaveChannel
(
stats
:
IRtcEngineEventHandler
.
RtcStats
?)
{
super
.
onLeaveChannel
(
stats
)
LogUtil
.
e
(
"[agora]离开频道回调"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"离开频道回调"
)
//通话结束或挂断时,上传日志文件
uploadLog
()
}
...
...
@@ -351,12 +369,16 @@ class AudioHomeActivity :
override
fun
onUserJoined
(
uid
:
Int
,
elapsed
:
Int
)
{
super
.
onUserJoined
(
uid
,
elapsed
)
LogUtil
.
e
(
"[agora]远端用户/主播加入频道回调"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"远端用户/主播加入频道回调"
)
}
override
fun
onUserOffline
(
uid
:
Int
,
elapsed
:
Int
)
{
super
.
onUserOffline
(
uid
,
elapsed
)
LogUtil
.
e
(
"[agora]远端用户$uid 离开频道回调"
)
writeAgoraLog
(
"接通后通话结束:对方已挂断"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"接通后通话结束:对方已挂断"
)
//通话结束或挂断时,上传日志文件
uploadLog
()
showToast
(
"专家已挂断"
)
...
...
@@ -430,6 +452,8 @@ class AudioHomeActivity :
//页面传递数据初始化
initIntentData
()
writeAgoraLog
(
"通话页面打开的时候,RTM登录状态码:${YDLavManager.sdkStatus}"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"通话页面打开的时候,RTM登录状态码:${YDLavManager.sdkStatus}"
)
if
(
YDLavManager
.
sdkStatus
!=
Constants
.
CONNECTION_STATE_CONNECTED
)
{
//再次登录声网,确保声网登录状态
reLoginRTM
()
...
...
@@ -486,6 +510,8 @@ class AudioHomeActivity :
commentUrl
=
intent
.
getStringExtra
(
IntentConstants
.
INTENT_COMMENT_URL
)
dialStatus
=
intent
.
getStringExtra
(
IntentConstants
.
INTENT_DIALSTATUS
)
writeAgoraLog
(
"专家的通话状态dialStatus:$dialStatus"
,
false
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"专家的通话状态dialStatus:$dialStatus"
)
isShowAXB
=
intent
.
getBooleanExtra
(
IntentConstants
.
INTENT_ISSHOWAXB
,
true
)
val
logBean
=
AgoraLogInfoBean
(
...
...
@@ -500,7 +526,8 @@ class AudioHomeActivity :
)
val
content
=
Gson
().
toJson
(
logBean
)
writeAgoraLog
(
"主叫方发送的邀请通话消息内容:$content"
,
true
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"主叫方发送的邀请通话消息内容:$content"
)
localRemainTime
=
remainTime
?.
toInt
()
handler
=
Handler
()
vibrator
=
getSystemService
(
Service
.
VIBRATOR_SERVICE
)
as
Vibrator
?
...
...
@@ -508,6 +535,8 @@ class AudioHomeActivity :
private
fun
reLoginRTM
()
{
writeAgoraLog
(
"RMT状态:${YDLavManager.sdkStatus},重新登录RMT"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"RMT状态:${YDLavManager.sdkStatus},重新登录RMTt"
)
val
uid
=
YdlCommonRouterManager
.
getYdlCommonRoute
().
getUid
().
toString
()
YDLavManager
.
instances
.
login
(
uid
)
{
_isSuccess
,
_msg
->
// writeAgoraLog("拨打电话界面打开RTM重新登录,uid=${uid}")
...
...
@@ -518,6 +547,8 @@ class AudioHomeActivity :
private
fun
initView
()
{
writeAgoraLog
(
"用户拨打电话界面开启"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"用户拨打电话界面开启"
)
tv_change_route
.
isEnabled
=
false
//水波纹view初始化
wave_view
.
setDuration
(
6000
)
...
...
@@ -563,6 +594,8 @@ class AudioHomeActivity :
}
if
(
isConnectSuccess
)
{
writeAgoraLog
(
"已接通:主叫主动挂断"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"已接通:主叫主动挂断"
)
updateExpertStatus
(
false
,
1
)
leaveChannel
()
uploadLog
()
...
...
@@ -611,6 +644,8 @@ class AudioHomeActivity :
when
{
permission
.
granted
->
{
writeAgoraLog
(
"请求音频权限通过"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"请求音频权限通过"
)
init
()
}
permission
.
shouldShowRequestPermissionRationale
->
{
...
...
@@ -620,6 +655,8 @@ class AudioHomeActivity :
// 拒绝权限操作发送给服务端
uploadException
(
"AudioNotAuth"
,
"zhu"
,
YDLavManager
.
AUDIO_NO_AUTH_ERROR_CODE
,
null
)
writeAgoraLog
(
"拒绝请求音频权限"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"拒绝请求音频权限"
)
uploadLog
()
ToastHelper
.
show
(
getString
(
R
.
string
.
audioim_need_storage_permission_hint
))
...
...
@@ -682,6 +719,8 @@ class AudioHomeActivity :
//关闭音乐
stopPlaying
()
writeAgoraLog
(
"未接通挂断:50s等待倒计时结束挂断"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"未接通挂断:50s等待倒计时结束挂断"
)
//提示切换传统线路
//发送消息通知专家用户已挂断
YDLavManager
.
instances
.
cancelCall
(
...
...
@@ -690,6 +729,8 @@ class AudioHomeActivity :
sendDoctocrMsg
!!
)
{
msg
,
code
->
writeAgoraLog
(
"未接听时:主叫(用户)主动挂断失败,msg=$msg($code),再次挂断"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"未接听时:主叫(用户)主动挂断失败,msg=$msg($code),再次挂断"
)
}
//通话结束或挂断时,上传日志文件
uploadLog
()
...
...
@@ -725,6 +766,8 @@ class AudioHomeActivity :
*/
fun
joinChannel
()
{
writeAgoraLog
(
"对方(专家)接受了通话邀请,主叫(用户)开始加入频道:$channelId"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"对方(专家)接受了通话邀请,主叫(用户)开始加入频道:$channelId"
)
voiceManage
!!
.
getVoiceApi
().
joinChannel
(
token
!!
,
channelId
!!
,
...
...
@@ -740,6 +783,8 @@ class AudioHomeActivity :
*/
private
fun
userCloseCalling
()
{
writeAgoraLog
(
"未接听时:主叫(用户)主动挂断,取消呼叫"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"未接听时:主叫(用户)主动挂断,取消呼叫"
)
LogUtil
.
e
(
"未接听挂断"
)
//发送消息通知专家用户已挂断
YDLavManager
.
instances
.
cancelCall
(
...
...
@@ -748,6 +793,8 @@ class AudioHomeActivity :
sendDoctocrMsg
!!
)
{
msg
,
code
->
writeAgoraLog
(
"未接听时:主叫(用户)主动挂断失败,msg=$msg($code),再次挂断"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"未接听时:主叫(用户)主动挂断失败,msg=$msg($code),再次挂断"
)
}
//通话结束或挂断时,上传日志文件
uploadLog
()
...
...
@@ -793,6 +840,8 @@ class AudioHomeActivity :
val
dialog
=
AxbConfirmDialog
(
mContext
,
type
,
object
:
AxbConfirmDialog
.
OnClickEnsureListener
{
override
fun
onClickEnsure
()
{
writeAgoraLog
(
"主叫点击切换AXB按钮"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"主叫点击切换AXB按钮"
)
switchAXB
()
}
...
...
@@ -815,6 +864,8 @@ class AudioHomeActivity :
uploadException
(
""
,
"zhu"
,
"108"
,
object
:
YDLavManager
.
UploadExceptionCallback
{
override
fun
onSuccess
()
{
writeAgoraLog
(
"离开房间成功,主叫切换AXB之后"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"离开房间成功,主叫切换AXB之后"
)
mPresenter
.
getAXBPhone
(
ConnectCommand
(
listenId
!!
,
"1"
))
}
...
...
@@ -848,6 +899,8 @@ class AudioHomeActivity :
sendDoctocrMsg
!!
)
{
msg
,
code
->
writeAgoraLog
(
"未接听时:主叫主动挂断失败,msg=$msg($code),再次挂断"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"未接听时:主叫主动挂断失败,msg=$msg($code),再次挂断"
)
}
leaveChannel
()
}
...
...
This diff is collapsed.
Click to expand it.
m-audioim/src/main/java/com/ydl/audioim/YDLavManager.kt
View file @
3d6e551e
...
...
@@ -22,13 +22,12 @@ import com.ydl.ydl_av.messge_service.callback.LoginCallback
import
com.ydl.ydl_av.messge_service.request.LoginParam
import
com.ydl.ydl_av.messge_service.response.CallLocalResponse
import
com.ydl.ydl_av.messge_service.response.CallRemoteResponse
import
com.ydl.ydlcommon.base.BaseApp
import
com.ydl.ydlcommon.modular.ModularServiceManager
import
com.ydl.ydlcommon.utils.ActivityManager
import
com.ydl.ydlcommon.utils.LogUtil
import
com.ydl.ydlcommon.utils.SharedPreferencesEditor
import
com.ydl.ydlcommon.utils.log.AliYunLogConfig
import
com.ydl.ydlcommon.utils.log.AliYunLogHelper
import
com.ydl.ydlcommon.utils.log.LogHelper
import
com.yidianling.common.tools.RxSPTool
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.im.api.bean.IMRegisterObserverCustomNotificationCallBack
import
com.yidianling.im.api.bean.IMSendCustomNotificationResultCallBack
...
...
@@ -93,6 +92,10 @@ class YDLavManager {
override
fun
onCallRecivedByPeer
(
response
:
CallLocalResponse
?)
{
//返回给主叫:被叫已收到呼叫邀请
LogUtil
.
e
(
"[agora]${response?.calleeId}已收到呼叫邀请,频道号${response?.ChannelId}"
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"${response?.calleeId}已收到呼叫邀请,频道号${response?.ChannelId}"
)
val
act
=
ActivityManager
.
getInstance
().
getTopTaskActivity
()
if
(
act
is
AudioHomeActivity
)
{
...
...
@@ -106,7 +109,10 @@ class YDLavManager {
override
fun
onCallAccepted
(
response
:
CallLocalResponse
?,
msg
:
String
?)
{
//返回给主叫
LogUtil
.
e
(
"[agora]${response?.calleeId}已接收呼叫邀请"
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"${response?.calleeId}已接收呼叫邀请"
)
//加入声网频道时机修改:主叫收到被叫接受邀请的回调后再加入声网频道
val
act
=
ActivityManager
.
getInstance
().
getTopTaskActivity
()
if
(
act
is
AudioHomeActivity
)
{
...
...
@@ -119,7 +125,10 @@ class YDLavManager {
override
fun
onCallRefused
(
response
:
CallLocalResponse
?,
msg
:
String
?)
{
//返回给主叫
LogUtil
.
e
(
"[agora]${response?.calleeId}已拒绝呼叫邀请"
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"${response?.calleeId}已拒绝呼叫邀请"
)
val
act
=
ActivityManager
.
getInstance
().
getTopTaskActivity
()
if
(
act
is
AudioHomeActivity
)
{
act
.
runOnUiThread
{
...
...
@@ -137,6 +146,10 @@ class YDLavManager {
override
fun
onCallCanceled
(
response
:
CallLocalResponse
?)
{
//返回给主叫
LogUtil
.
e
(
"[agora]主叫已取消呼叫邀请"
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"主叫已取消呼叫邀请"
)
val
act
=
ActivityManager
.
getInstance
().
getTopTaskActivity
()
if
(
act
is
AudioHomeActivity
)
{
act
.
runOnUiThread
{
...
...
@@ -149,6 +162,10 @@ class YDLavManager {
override
fun
onCallFailure
(
response
:
CallLocalResponse
?,
errorCode
:
Int
)
{
//返回给主叫
LogUtil
.
e
(
"[agora]呼叫${response?.calleeId}用户失败:${response?.response}"
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"呼叫${response?.calleeId}用户失败:${response?.response}"
)
val
act
=
ActivityManager
.
getInstance
().
getTopTaskActivity
()
//专家离线或者30 秒后仍未收到专家响应,重新再邀请一次
when
(
errorCode
)
{
...
...
@@ -160,26 +177,13 @@ class YDLavManager {
}
}
}
RtmStatusCode
.
LocalInvitationError
.
LOCAL_INVITATION_ERR_INVITATION_EXPIRE
->
{
//呼叫邀请过期。被叫 ACK 响应呼叫邀请后 60 秒呼叫邀请未被取消、接受、拒绝,则呼叫邀请过期。
/*
* 和IOS保持一致,当呼叫邀请为3的时候不处理
* */
/* if (act is AudioHomeActivity) {
act.runOnUiThread {
sendCustomNotification(response?.calleeId!!, response?.ChannelId!!, "5")
callEndStatusUpdate(response.ChannelId!!, 2, "被叫超时未接听")
act.uploadExceptionStatus("对方未接听", 3)
// //通话结束或挂断时,上传日志文件
// act.uploadLog()
// act.leaveChannel()
}
}*/
RtmStatusCode
.
LocalInvitationError
.
LOCAL_INVITATION_ERR_INVITATION_EXPIRE
->
{
//呼叫邀请过期。被叫 ACK 响应呼叫邀请后 60 秒呼叫邀请未被取消、接受、拒绝,则呼叫邀请过期。
}
}
//呼叫失败日志输出
if
(
act
is
AudioHomeActivity
){
act
.
runOnUiThread
{
if
(
act
is
AudioHomeActivity
)
{
act
.
runOnUiThread
{
act
.
writeAgoraLog
(
"发送通话邀请失败:${errorCode}"
)
LogHelper
.
getInstance
().
uploadLog
(
false
)
}
...
...
@@ -189,17 +193,29 @@ class YDLavManager {
override
fun
onRemoteInvitationReceived
(
response
:
CallRemoteResponse
?)
{
//返回给被叫
LogUtil
.
e
(
"[agora]收到来自${response?.callerId}的呼叫邀请"
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"收到来自${response?.callerId}的呼叫邀请"
)
receivedCall
(
response
?.
content
,
"来自RTM"
)
}
override
fun
onRemoteInvitationAccepted
(
response
:
CallRemoteResponse
?)
{
//返回给被叫
LogUtil
.
e
(
"[agora]接受来自${response?.callerId}的呼叫成功"
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"接受来自${response?.callerId}的呼叫成功"
)
}
override
fun
onRemoteInvitationRefused
(
response
:
CallRemoteResponse
?)
{
//返回给被叫
LogUtil
.
e
(
"[agora]已拒绝来自${response?.callerId}的呼叫"
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"已拒绝来自${response?.callerId}的呼叫"
)
val
act
=
ActivityManager
.
getInstance
().
getTopTaskActivity
()
if
(
act
is
ConsultantAudioHomeActivity
)
{
act
.
uploadExceptionStatus
(
"已拒绝"
,
2
)
...
...
@@ -210,7 +226,14 @@ class YDLavManager {
callEndStatusUpdate
(
response
?.
ChannelId
!!
,
1
,
"主叫取消呼叫"
)
//返回给被叫
LogUtil
.
e
(
"[agora]主叫${response?.callerId}已取消呼叫邀请"
)
writeAgoraLog
(
"呼叫邀请被取消:主叫(专家)主动取消-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}"
,
FILE_NAME
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"主叫${response?.callerId}已取消呼叫邀请"
)
writeAgoraLog
(
"呼叫邀请被取消:主叫(专家)主动取消-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}"
,
FILE_NAME
)
val
act
=
ActivityManager
.
getInstance
().
getTopTaskActivity
()
if
(
act
is
ConsultantAudioHomeActivity
)
{
...
...
@@ -224,13 +247,26 @@ class YDLavManager {
//返回给被叫
LogUtil
.
e
(
"[agora]来自主叫${response?.callerId}的呼叫邀请进程失败:${response?.response}"
)
if
(
errorCode
==
RtmStatusCode
.
RemoteInvitationError
.
REMOTE_INVITATION_ERR_INVITATION_EXPIRE
)
{
//呼叫邀请过期
writeAgoraLog
(
"呼叫邀请被取消:用户未接听-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}"
,
FILE_NAME
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"呼叫邀请被取消:用户未接听"
)
writeAgoraLog
(
"呼叫邀请被取消:用户未接听-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}"
,
FILE_NAME
)
val
act
=
ActivityManager
.
getInstance
().
getTopTaskActivity
()
if
(
act
is
ConsultantAudioHomeActivity
)
{
act
.
uploadExceptionStatus
(
"未接听"
,
3
)
}
}
else
{
writeAgoraLog
(
"呼叫邀请被取消:错误原因(${errorCode})-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}"
,
FILE_NAME
)
writeAgoraLog
(
"呼叫邀请被取消:错误原因(${errorCode})"
,
FILE_NAME
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"呼叫邀请被取消:错误原因(${errorCode})"
)
}
callEndStatusUpdate
(
response
?.
ChannelId
!!
,
2
,
"超时未接听导致的取消呼叫"
)
//关闭页面
...
...
@@ -239,11 +275,29 @@ class YDLavManager {
override
fun
onOtherMsg
(
error
:
String
?)
{
LogUtil
.
e
(
"[agora]其它消息:${error}"
)
if
(
error
.
equals
(
"呼叫发送成功"
)){
writeAgoraLog
(
"声网发送通话邀请成功-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}"
,
"confide.log"
,
true
)
}
else
{
writeAgoraLog
(
"声网发送通话邀请失败${error}-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}"
,
"confide.log"
,
true
)
if
(
error
.
equals
(
"呼叫发送成功"
))
{
writeAgoraLog
(
"声网发送通话邀请成功-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}"
,
"confide.log"
,
true
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"声网发送通话邀请成功"
)
}
else
{
writeAgoraLog
(
"声网发送通话邀请失败${error}-------Time:${
AudioLogUtils
.
format
.
format
(
Calendar
.
getInstance
().
time
)
}
", "
confide
.
log
", true
)
LogHelper
.
getInstance
().
uploadLog
(
false
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"声网发送通话邀请失败${error}"
)
}
}
})
...
...
@@ -354,15 +408,31 @@ class YDLavManager {
override
fun
onException
(
throwable
:
Throwable
)
{
// writeAgoraLog("云信发送通话邀请异常${throwable.message}-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}", "confide.log", true)
// LogHelper.getInstance().uploadLog(false)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"云信发送通话邀请异常${throwable.message}"
)
}
override
fun
onFailed
(
code
:
Int
)
{
// writeAgoraLog("云信发送通话邀请失败${code}-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}", "confide.log", true)
// LogHelper.getInstance().uploadLog(false)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"云信发送通话邀请失败${code}"
)
}
override
fun
onSuccess
()
{
writeAgoraLog
(
"云信发送通话邀请成功-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}"
,
"confide.log"
,
true
)
writeAgoraLog
(
"云信发送通话邀请成功-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}"
,
"confide.log"
,
true
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"云信发送通话邀请成功"
)
}
})
},
300
)
...
...
@@ -394,22 +464,50 @@ class YDLavManager {
override
fun
onSuccess
()
{
//登陆成功,发起呼叫
LogUtil
.
e
(
"[agora]实时消息登录成功"
)
writeAgoraLog
(
"声网rtm登录成功,uid:$userId-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}"
,
"confide.log"
,
true
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"声网rtm登录成功,uid:$userId"
)
writeAgoraLog
(
"声网rtm登录成功,uid:$userId-------Time:${
AudioLogUtils
.
format
.
format
(
Calendar
.
getInstance
().
time
)
}
", "
confide
.
log
", true
)
event
(
true
,
""
)
}
override
fun
onFailure
(
msg
:
String
?)
{
LogUtil
.
e
(
"[agora]实时消息登录失败:$msg"
)
writeAgoraLog
(
"声网rtm登录失败:$msg-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}"
,
"confide.log"
,
true
)
writeAgoraLog
(
"声网rtm登录失败:$msg-------Time:${
AudioLogUtils
.
format
.
format
(
Calendar
.
getInstance
().
time
)
}
", "
confide
.
log
", true
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"声网rtm登录失败:$msg"
)
event
(
false
,
msg
)
}
})
}
else
{
LogUtil
.
e
(
"声网token获取失败uid:"
+
userId
+
" error:"
+
it
.
msg
)
LogHelper
.
getInstance
().
writeLogSync
(
"声网token获取失败uid:"
+
userId
+
" error:"
+
it
.
msg
)
LogHelper
.
getInstance
()
.
writeLogSync
(
"声网token获取失败uid:"
+
userId
+
" error:"
+
it
.
msg
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"声网token获取失败uid"
+
userId
+
" error:"
+
it
.
msg
)
}
},
{
LogUtil
.
e
(
"声网token获取异常uid:"
+
userId
+
" error:"
+
it
.
message
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"声网token获取异常uid:"
+
userId
+
" error:"
+
it
.
message
)
})
}
...
...
@@ -428,7 +526,16 @@ class YDLavManager {
Observable
.
timer
(
1000
,
TimeUnit
.
MILLISECONDS
).
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
()).
subscribe
{
LogUtil
.
e
(
"[agora]启动通话界面"
)
writeAgoraLog
(
"收到主叫方通话邀请($from)-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}"
,
FILE_NAME
,
false
)
writeAgoraLog
(
"收到主叫方通话邀请($from)-------Time:${
AudioLogUtils
.
format
.
format
(
Calendar
.
getInstance
().
time
)
}
", FILE_NAME, false
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"收到主叫方通话邀请($from)"
)
LogHelper
.
getInstance
().
uploadLog
(
false
)
//邀请加入频道消息,跳转通话界面
ARouter
.
getInstance
().
build
(
"/av/ConsultantAudioHomeActivity"
)
...
...
@@ -436,12 +543,29 @@ class YDLavManager {
}
}
else
{
LogUtil
.
d
(
"[agora]收到声网邀请,但界面实例已存在"
)
writeAgoraLog
(
"收到主叫方通话邀请,但界面实例已存在($from)-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}"
,
FILE_NAME
,
false
)
writeAgoraLog
(
"收到主叫方通话邀请,但界面实例已存在($from)-------Time:${
AudioLogUtils
.
format
.
format
(
Calendar
.
getInstance
().
time
)
}
", FILE_NAME, false
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"收到主叫方通话邀请,但界面实例已存在($from)"
)
LogHelper
.
getInstance
().
uploadLog
(
false
)
}
}
else
{
LogUtil
.
d
(
"[agora]收到声网邀请,但response==null"
)
writeAgoraLog
(
"收到主叫方通话邀请,但response==null($from)-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}"
,
FILE_NAME
,
false
)
writeAgoraLog
(
"收到主叫方通话邀请,但response==null($from)-------Time:${
AudioLogUtils
.
format
.
format
(
Calendar
.
getInstance
().
time
)
}
", FILE_NAME, false
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"收到主叫方通话邀请,但response==null($from)"
)
LogHelper
.
getInstance
().
uploadLog
(
false
)
}
}
...
...
@@ -472,19 +596,25 @@ class YDLavManager {
* 退出登录
* @param
*/
private
fun
logout
(
isReLogin
:
Boolean
)
{
private
fun
logout
(
isReLogin
:
Boolean
)
{
EventBus
.
getDefault
().
unregister
(
this
)
YDLRTMClient
.
instances
.
logout
(
object
:
LoginCallback
{
override
fun
onSuccess
()
{
//退出登陆成功
LogUtil
.
d
(
"[agora]实时消息退出成功"
)
if
(
isReLogin
){
login
(
ModularServiceManager
.
provide
(
IUserService
::
class
.
java
).
getUserInfo
()
?.
uid
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"实时消息退出成功"
)
if
(
isReLogin
)
{
login
(
ModularServiceManager
.
provide
(
IUserService
::
class
.
java
).
getUserInfo
()
?.
uid
)
}
}
override
fun
onFailure
(
msg
:
String
?)
{
LogUtil
.
d
(
"[agora]实时消息退出失败:$msg"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"实时消息退出失败:$msg"
)
}
})
}
...
...
@@ -492,7 +622,7 @@ class YDLavManager {
/**
* 退出登录默认不重新登录
*/
fun
logout
(){
fun
logout
()
{
logout
(
false
)
}
...
...
@@ -510,6 +640,8 @@ class YDLavManager {
callback
?.
onSuccess
()
},
{
LogUtil
.
e
(
"agora"
,
"声网上传异常与错误日志接口调用失败:"
+
it
.
message
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"声网上传异常与错误日志接口调用失败: + ${it.message}"
)
})
}
...
...
@@ -529,6 +661,9 @@ class YDLavManager {
.
subscribe
({
},
{
LogUtil
.
d
(
"callEndStatusUpdate error: ${it.message}"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"callEndStatusUpdate error: ${it.message}"
)
})
}
...
...
@@ -538,6 +673,8 @@ class YDLavManager {
private
val
listener
=
object
:
InitListener
{
override
fun
onTokenExpired
()
{
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"onTokenExpired"
)
LogUtil
.
e
(
"[agora]onTokenExpired"
)
instances
.
login
(
ModularServiceManager
.
provide
(
IUserService
::
class
.
java
).
getUserInfo
()
?.
uid
...
...
@@ -546,22 +683,32 @@ class YDLavManager {
override
fun
onMessageReceived
(
message
:
RTMMesssage
,
userId
:
Int
)
{
LogUtil
.
i
(
"[agora]onMessageReceived:${message.text} -->uid:$userId"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"onMessageReceived:${message.text} -->uid:$userId"
)
}
override
fun
onConnectionStateChanged
(
state
:
Int
,
reason
:
Int
)
{
sdkStatus
=
state
writeAgoraLog
(
"声网rtm登录状态:${state}-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}"
,
"confide.log"
,
true
)
writeAgoraLog
(
"声网rtm登录状态:${state}-------Time:${AudioLogUtils.format.format(Calendar.getInstance().time)}"
,
"confide.log"
,
true
)
LogUtil
.
i
(
"[agora]onConnectionStateChanged:state:${state} -->reason:$reason"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"声网rtm登录状态:${state}"
)
/*
* 当reason=CONNECTION_CHANGE_REASON_REMOTE_LOGIN的时候,是远端用户以相同UID登录RTM
* 如果正在通话中,则不进行退出操作
* */
if
(
reason
==
CONNECTION_CHANGE_REASON_REMOTE_LOGIN
){
if
(!
activityIsExists
(
ConsultantAudioHomeActivity
::
class
.
java
)&&!
activityIsExists
(
AudioHomeActivity
::
class
.
java
)){
if
(
reason
==
CONNECTION_CHANGE_REASON_REMOTE_LOGIN
)
{
if
(!
activityIsExists
(
ConsultantAudioHomeActivity
::
class
.
java
)
&&
!
activityIsExists
(
AudioHomeActivity
::
class
.
java
)
)
{
isOnlineRtm
=
false
logout
()
}
else
{
}
else
{
logout
(
true
)
}
}
...
...
This diff is collapsed.
Click to expand it.
m-audioim/src/main/java/com/ydl/consultantim/ConsultantAudioHomeActivity.kt
View file @
3d6e551e
...
...
@@ -47,6 +47,8 @@ import com.ydl.ydlcommon.utils.LogUtil
import
com.ydl.ydlcommon.utils.StatusBarUtils
import
com.ydl.ydlcommon.utils.Utils
import
com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import
com.ydl.ydlcommon.utils.log.AliYunLogConfig
import
com.ydl.ydlcommon.utils.log.AliYunLogHelper
import
com.ydl.ydlcommon.utils.log.LogHelper
import
com.ydl.ydlcommon.utils.remind.ToastHelper
import
com.yidianling.user.api.service.IUserService
...
...
@@ -137,7 +139,7 @@ class ConsultantAudioHomeActivity :
super
.
onJoinChannelSuccess
(
channel
,
uid
,
elapsed
)
LogUtil
.
e
(
"[agora]$uid 加入频道回调"
)
writeAgoraLog
(
"被叫(用户)加入声网($channel)频道成功"
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"被叫(用户)加入声网($channel)频道成功"
)
runOnUiThread
{
// 加入频道后再通知用户已接受
// YDLRTMClient.instances.acceptCall(mAudioMessageBean?.channelId)
...
...
@@ -165,6 +167,9 @@ class ConsultantAudioHomeActivity :
super
.
onRejoinChannelSuccess
(
channel
,
uid
,
elapsed
)
LogUtil
.
e
(
"[agora]$uid 重新加入频道回调"
)
writeAgoraLog
(
"被叫(用户)重新加入声网频道($channel)成功"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"被叫(用户)重新加入声网频道($channel)成功"
)
runOnUiThread
{
if
(!
isConnectSuccess
)
{
tv_toast
.
visibility
=
View
.
VISIBLE
...
...
@@ -182,6 +187,8 @@ class ConsultantAudioHomeActivity :
super
.
onUserJoined
(
uid
,
elapsed
)
LogUtil
.
e
(
"[agora]远端用户加入频道回调"
)
writeAgoraLog
(
"主叫(专家)加入声网频道成功"
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"主叫(专家)加入声网频道成功"
)
//另一方加入频道成功
runOnUiThread
{
isConnectSuccess
=
true
...
...
@@ -223,6 +230,8 @@ class ConsultantAudioHomeActivity :
override
fun
onLeaveChannel
(
stats
:
IRtcEngineEventHandler
.
RtcStats
?)
{
super
.
onLeaveChannel
(
stats
)
LogUtil
.
e
(
"[agora]自己离开频道回调"
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"自己离开频道回调"
)
//通知php 通话已结束
close
(
RESULT_ANSWERED_CODE
,
""
)
}
...
...
@@ -241,6 +250,8 @@ class ConsultantAudioHomeActivity :
override
fun
onUserOffline
(
uid
:
Int
,
elapsed
:
Int
)
{
super
.
onUserOffline
(
uid
,
elapsed
)
LogUtil
.
e
(
"[agora]$uid 主播离开频道回调"
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"$uid 主播离开频道回调"
)
runOnUiThread
{
YDLavManager
.
instances
.
callEndStatusUpdate
(
mAudioMessageBean
?.
channelId
!!
,
...
...
@@ -249,6 +260,8 @@ class ConsultantAudioHomeActivity :
)
showToast
(
"对方已挂断"
)
writeAgoraLog
(
"通话接通后挂断:主叫(专家)离开频道"
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"通话接通后挂断:主叫(专家)离开频道"
)
if
(
null
!=
totalDisposable
)
{
totalDisposable
!!
.
dispose
()
}
...
...
@@ -265,6 +278,8 @@ class ConsultantAudioHomeActivity :
}
LogUtil
.
e
(
"[agora]发生警告回调=$warn"
)
writeAgoraLog
(
"声网警告回调码:($warn)"
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"声网警告回调码:($warn)"
)
//103:没有可用的频道资源。可能是因为服务端没法分配频道资源
//104:查找频道超时。在加入频道时 SDK 先要查找指定的频道,出现该警告一般是因为网络太差,连接不到服务器
//105:查找频道请求被服务器拒绝。服务器可能没有办法处理这个请求或请求是非法的
...
...
@@ -290,6 +305,7 @@ class ConsultantAudioHomeActivity :
uploadException
(
"mRtcEventHandler-onError:errorCode--%${err}"
)
LogUtil
.
e
(
"[agora] 发生错误回调 =$err"
)
writeAgoraLog
(
"声网错误回调errorCode--%${err}"
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"声网错误回调errorCode--%${err}"
)
//3:SDK 初始化失败。Agora 建议尝试以下处理方法
//7:SDK 尚未初始化,就调用其 API。请确认在调用 API 之前已创建 RtcEngine 对象并完成初始化
...
...
@@ -510,6 +526,8 @@ class ConsultantAudioHomeActivity :
override
fun
channelTokenResponse
(
token
:
String
?,
needJoinChannel
:
Boolean
)
{
if
(
TextUtils
.
isEmpty
(
token
))
{
LogUtil
.
e
(
"[agora]token not null"
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"token isEmpty "
)
showToast
(
"通话频道不存在"
)
finish
()
return
...
...
@@ -583,6 +601,8 @@ class ConsultantAudioHomeActivity :
val
account
=
YdlCommonRouterManager
.
getYdlCommonRoute
().
getUid
()
if
(!
TextUtils
.
isEmpty
(
mAudioMessageBean
?.
channelId
))
{
LogUtil
.
e
(
"[agora] joinChannel:$account"
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"joinChannel:$account"
)
voiceManage
?.
getVoiceApi
()
?.
joinChannel
(
channelToken
?:
""
,
mAudioMessageBean
!!
.
channelId
!!
,
"Extra Optional Data"
,
account
...
...
@@ -807,6 +827,9 @@ class ConsultantAudioHomeActivity :
fun
close
(
code
:
Int
,
msg
:
String
)
{
runOnUiThread
{
LogUtil
.
e
(
"[agora]close(code:$code,msg:$msg)"
)
AliYunLogHelper
.
getInstance
()
.
sendLog
(
AliYunLogConfig
.
AGORA
,
"close(code:$code,msg:$msg)"
)
//上传日志文件
uploadLog
()
stopMusic
()
...
...
@@ -837,6 +860,7 @@ class ConsultantAudioHomeActivity :
}
ActivityManager
.
getInstance
().
removeStack
(
activity
=
this
)
LogUtil
.
e
(
"[agora]页面移除"
)
AliYunLogHelper
.
getInstance
().
sendLog
(
AliYunLogConfig
.
AGORA
,
"页面移除"
)
finish
()
}
}
...
...
@@ -945,9 +969,11 @@ class ConsultantAudioHomeActivity :
Observable
.
create
<
Any
>
{
try
{
AudioLogUtils
.
writeAgoraLog
(
"$content-------Time:${AudioLogUtils.format.format(
Calendar
.
getInstance
().
time
)}
", "
consult
.
log
"
"$content-------Time:${
AudioLogUtils
.
format
.
format
(
Calendar
.
getInstance
().
time
)
}
", "
consult
.
log
"
)
}
catch
(
e
:
Exception
)
{
}
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment