瀏覽代碼

修改门禁机通话使用webrtc协议

weizhengliang 5 月之前
父節點
當前提交
9a8fbacc48

+ 1 - 6
android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/activity/NurseHomeActivity.kt

@@ -2319,7 +2319,6 @@ class NurseHomeActivity: BaseActivity<NurseHomeActivityPresenter, ActivityNurseH
                                     "${Constants.sip_ip}:5060",
                                     TransportType.Udp
                                 )
-                                sipReg = true
                             }
                         }
                     }
@@ -2680,11 +2679,7 @@ class NurseHomeActivity: BaseActivity<NurseHomeActivityPresenter, ActivityNurseH
 
                             Constants.CALL_STATE = Constants.CALL_CALLING
                             DeviceChannel.calling = true
-                            if (SettingConfig.getSipEnabled(activity)) {
-                                entraceGuardVideoFragment = SipEntraceGuardVideoFragment()
-                            } else {
-                                entraceGuardVideoFragment = EntraceGuardVideoFragment()
-                            }
+                            entraceGuardVideoFragment = EntraceGuardVideoFragment()
                             //把InteractionVO 传入到fragment
                             entraceGuardVideoFragment!!.interactionVO = JSON.parseObject(tcpModel.data.toString(), InteractionVO::class.java)
                             entraceGuardVideoFragment!!.tcpModel = tcpModel

+ 0 - 1
android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/fragment/EntraceGuardVideoFragment.kt

@@ -96,7 +96,6 @@ class EntraceGuardVideoFragment : BaseEntranceGuardFragment(), CallSessionCallba
 
         sky_voice_call_hangup.setOnClickListener {
             //发送挂断消息
-            //TcpClient.getInstance().sendMsg(EntraceGuardUtil.hangup(interactionVO).toJson())
             EntraceGuardUtil.hangup(tcpModel)
             //结束sip通话
             if (janusClient!!.webSocketChannel != null) {

+ 13 - 6
android_host/src/main/h10_z3128_1h/java/com/wdkl/ncs/android/component/nursehome/activity/NurseHomeActivity.kt

@@ -1641,7 +1641,6 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
                             Constants.CALL_STATE = Constants.CALL_STANDBY
                             DeviceChannel.calling = false
 
-                            //VoiceUtil.cancelAudioCall(Constants.ids, tcpModel.fromId)
                             val callTcp = VoiceUtil.voiceCancel(tcpModel.tid, Constants.ids, tcpModel.fromId, interactionVO.id)
                             TcpClient.getInstance().sendMsg(callTcp.toJson())
                         }
@@ -1657,6 +1656,18 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
                         AppTool.Time.delay(1200) {
                             EventBus.getDefault().post(MessageEvent("cancel", Constants.EVENT_END_CALL))
                         }
+                    } else if (tcpModel.action == TcpAction.VoiceAction.SIP_RECONNECT) {
+                        //重连sip
+                        if (SettingConfig.getSipEnabled(activity)) {
+                            if (!TextUtils.isEmpty(Constants.sip_id) && !TextUtils.isEmpty(Constants.sip_ip)) {
+                                linphoneManager?.createProxyConfig(
+                                    Constants.sip_id!!,
+                                    Constants.sip_id!!,
+                                    "${Constants.sip_ip}:5060",
+                                    TransportType.Udp
+                                )
+                            }
+                        }
                     }
                 } else if (tcpModel.type == TcpType.SOS) {
                     if (tcpModel.action == TcpAction.SOSAction.CALL || tcpModel.action == TcpAction.SOSAction.ROOM_CALL) {
@@ -2063,11 +2074,7 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
 
                             Constants.CALL_STATE = Constants.CALL_CALLING
                             DeviceChannel.calling = true
-                            if (SettingConfig.getSipEnabled(activity)) {
-                                entraceGuardVideoFragment = SipEntraceGuardVideoFragment()
-                            } else {
-                                entraceGuardVideoFragment = EntraceGuardVideoFragment()
-                            }
+                            entraceGuardVideoFragment = EntraceGuardVideoFragment()
                             //把InteractionVO 传入到fragment
                             entraceGuardVideoFragment!!.interactionVO = JSON.parseObject(tcpModel.data.toString(), InteractionVO::class.java)
                             entraceGuardVideoFragment!!.tcpModel = tcpModel

+ 0 - 1
android_host/src/main/h10_z3128_1h/java/com/wdkl/ncs/android/component/nursehome/fragment/EntraceGuardVideoFragment.kt

@@ -96,7 +96,6 @@ class EntraceGuardVideoFragment : BaseEntranceGuardFragment(), CallSessionCallba
 
         sky_voice_call_hangup.setOnClickListener {
             //发送挂断消息
-            //TcpClient.getInstance().sendMsg(EntraceGuardUtil.hangup(interactionVO).toJson())
             EntraceGuardUtil.hangup(tcpModel)
             //结束sip通话
             if (janusClient!!.webSocketChannel != null) {

+ 0 - 273
android_host/src/main/h10_z3128_1h_chile/java/com/wdkl/ncs/android/component/nursehome/fragment/EntraceGuardVideoFragment.kt.bak

@@ -1,273 +0,0 @@
-package com.wdkl.ncs.android.component.nursehome.fragment
-
-import android.os.Bundle
-import android.os.Handler
-import android.os.Looper
-import android.support.v4.app.Fragment
-import android.util.Log
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import com.enation.javashop.utils.base.tool.BaseToolActivity
-import com.wdkl.core.voip.VoipEvent
-import com.wdkl.ncs.android.component.nursehome.R
-import com.wdkl.ncs.android.middleware.common.Constants
-import com.wdkl.ncs.android.component.nursehome.util.RingPlayHelper
-import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
-import com.wdkl.ncs.android.middleware.tcp.TcpClient
-import com.wdkl.ncs.android.middleware.tcp.channel.DeviceChannel
-import com.wdkl.ncs.android.middleware.tcp.channel.EntraceGuardUtil
-import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
-import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
-import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
-import com.wdkl.ncs.android.middleware.utils.MessageEvent
-import com.wdkl.skywebrtc.CallSession
-import com.wdkl.skywebrtc.EnumType
-import com.wdkl.skywebrtc.SkyEngineKit
-import com.wdkl.skywebrtc.except.NotInitializedException
-import kotlinx.android.synthetic.main.fragment_entraceguard_video.*
-import org.greenrobot.eventbus.EventBus
-import org.greenrobot.eventbus.Subscribe
-import org.greenrobot.eventbus.ThreadMode
-import org.webrtc.SurfaceViewRenderer
-
-/**
- * 门禁机请求开门视频界面fragment
- */
-class EntraceGuardVideoFragment : Fragment(), CallSession.CallSessionCallback {
-
-    private var layout: View? = null
-    protected lateinit var baseActivity: BaseToolActivity
-
-    protected var gEngineKit: SkyEngineKit? = null
-
-    private var isMute: Boolean = true
-    private var remoteSurfaceView: SurfaceViewRenderer? = null
-
-    private val handler = Handler(Looper.getMainLooper())
-
-    var interactionVO: InteractionVO? = null
-    var tcpModel: TcpModel? = null
-
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-        EventBus.getDefault().register(this)
-    }
-
-    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
-        if (layout == null) {
-            layout = inflater.inflate(R.layout.fragment_entraceguard_video, null)
-        }
-
-        /**初始化宿主Activity*/
-        baseActivity = getActivity() as BaseToolActivity
-
-        return layout
-    }
-
-    override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
-        super.onViewCreated(view, savedInstanceState)
-        EntraceGuardUtil.acceptStranger(tcpModel)
-
-        try {
-            SkyEngineKit.init(VoipEvent())
-            gEngineKit = SkyEngineKit.Instance()
-        } catch (e: NotInitializedException) {
-            SkyEngineKit.init(VoipEvent())
-            try {
-                gEngineKit = SkyEngineKit.Instance()
-            } catch (ex: NotInitializedException) {
-                ex.printStackTrace()
-                baseActivity.finish()
-            }
-        }
-
-        init()
-        bindEvent()
-    }
-
-
-    override fun onDestroy() {
-        super.onDestroy()
-        RingPlayHelper.stopRingTone()
-        EventBus.getDefault().unregister(this)
-    }
-
-
-    private fun init() {
-        val session = gEngineKit?.getCurrentSession()
-        if (session != null) {
-            session.setSessionCallback(this)
-        }
-        title.setText(interactionVO!!.fromDeviceName + ",请求开门")
-        RingPlayHelper.playRingTone(activity, R.raw.door_bell, true)
-        speaker_on.isSelected = isMute
-
-    }
-
-    private fun bindEvent() {
-
-        unlock_door.setOnClickListener {
-            var tcpModel = EntraceGuardUtil.unlockDoor(interactionVO)
-            TcpClient.getInstance().sendMsg(tcpModel.toJson())
-            SkyEngineKit.Instance().endCall()
-            Constants.CALL_STATE = Constants.CALL_STANDBY
-            DeviceChannel.calling = false
-            backToMain()
-        }
-
-        sky_voice_call_hangup.setOnClickListener {
-
-            //发送挂断消息
-            TcpClient.getInstance().sendMsg(EntraceGuardUtil.hangup(interactionVO).toJson())
-            //结束sip通话
-            SkyEngineKit.Instance().endCall()
-            Constants.CALL_STATE = Constants.CALL_STANDBY
-            DeviceChannel.calling = false
-            backToMain()
-        }
-
-        speaker_on.setOnClickListener {
-            var session = gEngineKit?.currentSession
-            if (session != null) {
-                isMute = !isMute
-                session.toggleMuteAudio(isMute)
-                session.toggleSpeaker(!isMute)
-                speaker_on.isSelected = isMute
-                TcpClient.getInstance().sendMsg(EntraceGuardUtil.toggleAudio(interactionVO, isMute).toJson())
-            }
-            RingPlayHelper.stopRingTone()
-        }
-
-    }
-
-    private fun backToMain() {
-
-        RingPlayHelper.stopRingTone()
-        EventBus.getDefault().post(MessageEvent("BackCall", Constants.EVENT_REMOVE_CALL_FRAGMENT))
-    }
-
-
-    @Subscribe(threadMode = ThreadMode.MAIN)
-    fun onMoonEvent(messageEvent: MessageEvent) {
-        when (messageEvent.getType()) {
-            Constants.EVENT_JOIN_HOME_READY -> {
-                Log.i("wdkl", "准备加入房间")
-                val session = SkyEngineKit.Instance().getCurrentSession()
-                if (session != null) {
-                    session.toggleSpeaker(false)
-                    session.toggleMuteAudio(true)
-                    Log.d("WDKL", "session = " + session + "; session.getState() = " + session.state + ",roomId=" + session.roomId)
-                    session.setSessionCallback(this)
-                    session.joinHome(session.roomId)
-                }else{ //会话未成功建立
-                    EntraceGuardUtil.rejectStranger(interactionVO)
-                    backToMain()
-                }
-            }
-            Constants.EVENT_TCP_MSG -> {
-                var tcpModel = messageEvent.getMessage() as TcpModel
-                if (tcpModel.getType() == TcpType.ENTRACEGUARD) { //超时未响应,结束通话退出界面
-                    if(tcpModel.action == TcpAction.EntraceGuardAction.TIMEOUT){
-                        SkyEngineKit.Instance().endCall()
-                        backToMain()
-                    }
-
-                }
-            }
-        }
-    }
-
-
-    //视频来电接通
-    private fun joinVideoCall() {
-        val session = gEngineKit?.getCurrentSession()
-        if (session != null) {
-            Log.e("dds", "video call session state: " + session.state)
-
-//            if (session.state == EnumType.CallState.Incoming) {
-//                val surfaceView = gEngineKit!!.currentSession.setupLocalVideo(false)
-//                if (surfaceView != null) {
-//                    localSurfaceView = surfaceView as SurfaceViewRenderer
-//                    localSurfaceView!!.setZOrderMediaOverlay(false)
-//                    fullscreen_video_frame.addView(localSurfaceView)
-//                }
-//
-//                session.joinHome(session.roomId)
-//                session.toggleSpeaker(true)
-//            } else if (session.state == EnumType.CallState.Idle) {
-//                callEnd()
-//                return
-//            }
-
-//            Handler().postDelayed({
-//                if (session.state == EnumType.CallState.Connected){
-//                    //showCalling(onlyAudio)
-//                } else {
-//                    gEngineKit?.endCall()
-//                    callEnd()
-//                }
-//            }, 2000)
-        }
-    }
-
-    override fun didChangeState(var1: EnumType.CallState?) {
-
-    }
-
-    override fun didDisconnected(userId: String?) {
-
-    }
-
-    override fun didCreateLocalVideoTrack() {
-
-    }
-
-    override fun didError(error: String?) {
-
-    }
-
-    //处理远端视频画面
-    override fun didReceiveRemoteVideoTrack(userId: String?) {
-        Log.e("dds", "didReceiveRemoteVideoTrack  userId: " + userId)
-        handler.post {
-            val session = gEngineKit!!.currentSession
-            if (session != null) {
-//                //本地画面
-//                if (localSurfaceView != null) {
-//                    localSurfaceView!!.setZOrderMediaOverlay(true)
-//                    if (outGoing) {
-//                        if (localSurfaceView!!.parent != null) {
-//                            (localSurfaceView!!.parent as ViewGroup).removeView(localSurfaceView)
-//                        }
-//                        pip_video_frame!!.addView(localSurfaceView)
-//                    }
-//                }
-
-                //远端画面
-                val surfaceView = gEngineKit!!.currentSession.setupRemoteVideo(userId, false)
-                Log.e("dds", "didReceiveRemoteVideoTrack,surfaceView = $surfaceView")
-                if (surfaceView != null) {
-                    remoteSurfaceView = surfaceView as SurfaceViewRenderer
-                    remote_video_surface.removeAllViews()
-//                        if (remoteSurfaceView!!.parent != null) {
-//                            (remoteSurfaceView!!.parent as ViewGroup).removeView(remoteSurfaceView)
-//                        }
-                    remote_video_surface.addView(remoteSurfaceView)
-                }
-            }
-        }
-    }
-
-    override fun didCallEndWithReason(var1: EnumType.CallEndReason?) {
-
-    }
-
-    override fun didChangeMode(isAudioOnly: Boolean) {
-
-    }
-
-    override fun didUserLeave(userId: String?) {
-
-    }
-}