|
@@ -17,9 +17,11 @@ import com.wdkl.ncs.android.lib.utils.showMessage
|
|
|
import com.wdkl.ncs.android.middleware.common.Constant
|
|
|
import com.wdkl.ncs.android.middleware.common.MessageEvent
|
|
|
import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
|
|
|
+import com.wdkl.ncs.android.middleware.tcp.channel.DeviceChannel
|
|
|
import com.wdkl.ncs.android.middleware.tcp.channel.VideoUtil
|
|
|
import com.wdkl.ncs.android.middleware.tcp.channel.VoiceUtil
|
|
|
import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
|
|
|
+import com.wdkl.ncs.android.middleware.tcp.enums.DeviceTypeEnum
|
|
|
import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
|
|
|
import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
|
|
|
import com.wdkl.ncs.janus.client.CallSessionCallback
|
|
@@ -56,6 +58,8 @@ class SkyCallFragment: BaseCallFragment(), CallSessionCallback {
|
|
|
|
|
|
private var callEnded: Boolean = false
|
|
|
|
|
|
+ private var outGoing: Boolean = false
|
|
|
+
|
|
|
override fun getLayId(): Int {
|
|
|
if ("rk3288".equals(Build.MODEL)) {
|
|
|
return R.layout.sky_voice_call_layout_rk3288
|
|
@@ -80,6 +84,8 @@ class SkyCallFragment: BaseCallFragment(), CallSessionCallback {
|
|
|
|
|
|
when (callState) {
|
|
|
0 -> {
|
|
|
+ //发起通话
|
|
|
+ outGoing = true
|
|
|
janusClient!!.callState = EnumType.CallState.Outgoing
|
|
|
room = Room(Constant.SIP_ID.toBigInteger())
|
|
|
//呼叫主机
|
|
@@ -94,16 +100,26 @@ class SkyCallFragment: BaseCallFragment(), CallSessionCallback {
|
|
|
1 -> {
|
|
|
//来电
|
|
|
showIncomingCall()
|
|
|
- RingPlayHelper.playRingTone(baseActivity, R.raw.incoming_call, true)
|
|
|
+ RingPlayHelper.playRingTone(baseActivity, R.raw.ring_tone, true)
|
|
|
|
|
|
- janusClient!!.callState = EnumType.CallState.Incoming
|
|
|
- room = Room(Constant.TARGET_SIP.toBigInteger())
|
|
|
+ //如果是模拟分机呼叫则需要主机来创建房间发起通过
|
|
|
+ if (Constant.fromDeviceType == DeviceTypeEnum.SIMULATE_BED_DEVICE.value()) {
|
|
|
+ outGoing = true
|
|
|
+ janusClient!!.callState = EnumType.CallState.Outgoing
|
|
|
+ room = Room(Constant.SIP_ID.toBigInteger())
|
|
|
+ } else {
|
|
|
+ outGoing = false
|
|
|
+ janusClient!!.callState = EnumType.CallState.Incoming
|
|
|
+ room = Room(Constant.TARGET_SIP.toBigInteger())
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
2 -> {
|
|
|
+ //呼叫分机
|
|
|
+ outGoing = true
|
|
|
janusClient!!.callState = EnumType.CallState.Outgoing
|
|
|
room = Room(Constant.SIP_ID.toBigInteger())
|
|
|
- //呼叫分机
|
|
|
+
|
|
|
RingPlayHelper.playRingTone(baseActivity, R.raw.ring_back2, true)
|
|
|
if (!startOutgoing()) {
|
|
|
AppTool.Time.delay(2000) {
|
|
@@ -154,7 +170,7 @@ class SkyCallFragment: BaseCallFragment(), CallSessionCallback {
|
|
|
sky_voice_call_ring_pickup_audio.setOnClickListener {
|
|
|
acceptCall()
|
|
|
RingPlayHelper.stopRingTone()
|
|
|
- Constant.CALL_STATE = Constant.CALL_INCOMING
|
|
|
+ Constant.CALL_STATE = Constant.CALL_CALLING
|
|
|
VoiceUtil.acceptAudioCall(Constant.DEVICE_ID, fromId, interactionVO?.id)
|
|
|
janusClient!!.connect()
|
|
|
}
|
|
@@ -285,12 +301,16 @@ class SkyCallFragment: BaseCallFragment(), CallSessionCallback {
|
|
|
|
|
|
if (janusClient!!.webSocketChannel != null) {
|
|
|
janusClient!!.callState = EnumType.CallState.Idle
|
|
|
- if (callState == 0) {
|
|
|
- janusClient!!.destroyRoom(janusClient!!.currentHandleId, null)
|
|
|
+
|
|
|
+ if (outGoing){
|
|
|
+ if (janusClient!!.currentHandleId !=null) {
|
|
|
+ janusClient!!.destroyRoom(janusClient!!.currentHandleId, null)
|
|
|
+ }
|
|
|
} else {
|
|
|
janusClient!!.leaveRoom()
|
|
|
}
|
|
|
|
|
|
+ janusClient!!.setJanusCallback(null)
|
|
|
janusClient!!.disConnect()
|
|
|
}
|
|
|
|