|
@@ -6,6 +6,7 @@ import android.content.Intent
|
|
import android.content.pm.PackageInfo
|
|
import android.content.pm.PackageInfo
|
|
import android.content.pm.PackageManager
|
|
import android.content.pm.PackageManager
|
|
import android.media.AudioAttributes
|
|
import android.media.AudioAttributes
|
|
|
|
+import android.media.AudioManager
|
|
import android.media.SoundPool
|
|
import android.media.SoundPool
|
|
import android.os.Build
|
|
import android.os.Build
|
|
import android.os.CountDownTimer
|
|
import android.os.CountDownTimer
|
|
@@ -180,6 +181,7 @@ class MainActivity : BaseActivity<MainActivityPresenter, ActivityMainBinding>(),
|
|
if (state == Call.State.IncomingReceived || state == Call.State.IncomingEarlyMedia) {
|
|
if (state == Call.State.IncomingReceived || state == Call.State.IncomingEarlyMedia) {
|
|
//无需处理来电
|
|
//无需处理来电
|
|
} else if (state == Call.State.Connected) {
|
|
} else if (state == Call.State.Connected) {
|
|
|
|
+ mCore?.isMicEnabled = false
|
|
runOnUiThread {
|
|
runOnUiThread {
|
|
showMessage(message)
|
|
showMessage(message)
|
|
}
|
|
}
|
|
@@ -299,8 +301,7 @@ class MainActivity : BaseActivity<MainActivityPresenter, ActivityMainBinding>(),
|
|
// 确保新创建的是最新
|
|
// 确保新创建的是最新
|
|
mCore?.defaultProxyConfig = cfg
|
|
mCore?.defaultProxyConfig = cfg
|
|
|
|
|
|
- //初始化时静音,等主机端允许通话后才打开mic
|
|
|
|
- mCore?.isMicEnabled = false
|
|
|
|
|
|
+ mCore?.isMicEnabled = true
|
|
} else {
|
|
} else {
|
|
showMessage("SIP empty")
|
|
showMessage("SIP empty")
|
|
}
|
|
}
|
|
@@ -351,20 +352,6 @@ class MainActivity : BaseActivity<MainActivityPresenter, ActivityMainBinding>(),
|
|
val tcpModel = messageEvent.getMessage() as TcpModel
|
|
val tcpModel = messageEvent.getMessage() as TcpModel
|
|
if (tcpModel.type.equals(TcpType.ENTRACEGUARD)) {
|
|
if (tcpModel.type.equals(TcpType.ENTRACEGUARD)) {
|
|
when (tcpModel.action) {
|
|
when (tcpModel.action) {
|
|
- TcpAction.EntraceGuardAction.SUCCESS -> {
|
|
|
|
- //呼叫请求成功
|
|
|
|
- interactionVO = JSON.parseObject(tcpModel.data.toString(), InteractionVO::class.java)
|
|
|
|
- if (mCore != null) {
|
|
|
|
- val addressToCall = mCore!!.interpretUrl(interactionVO!!.toSipId)
|
|
|
|
- val params = mCore!!.createCallParams(null)
|
|
|
|
- params?.isVideoEnabled = true
|
|
|
|
-
|
|
|
|
- if (addressToCall != null) {
|
|
|
|
- mCore!!.inviteAddressWithParams(addressToCall, params!!)
|
|
|
|
- Log.d(TAG, ">>>>>>>>>>> invite address: " + addressToCall.asString())
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
|
|
TcpAction.EntraceGuardAction.ACCEPT -> { //接通视频
|
|
TcpAction.EntraceGuardAction.ACCEPT -> { //接通视频
|
|
//取消响应计时
|
|
//取消响应计时
|
|
@@ -373,6 +360,20 @@ class MainActivity : BaseActivity<MainActivityPresenter, ActivityMainBinding>(),
|
|
interactionVO = JSON.parseObject(tcpModel.data.toString(), InteractionVO::class.java)
|
|
interactionVO = JSON.parseObject(tcpModel.data.toString(), InteractionVO::class.java)
|
|
|
|
|
|
RingPlayHelper.playRingTone(this, R.raw.alice, true)
|
|
RingPlayHelper.playRingTone(this, R.raw.alice, true)
|
|
|
|
+
|
|
|
|
+ if (SettingConfig.getSipEnabled(activity)) {
|
|
|
|
+ //发起sip视频请求
|
|
|
|
+ if (mCore != null) {
|
|
|
|
+ val addressToCall = mCore!!.interpretUrl(interactionVO!!.toSipId)
|
|
|
|
+ val params = mCore!!.createCallParams(null)
|
|
|
|
+ params?.isVideoEnabled = true
|
|
|
|
+
|
|
|
|
+ if (addressToCall != null) {
|
|
|
|
+ mCore!!.inviteAddressWithParams(addressToCall, params!!)
|
|
|
|
+ Log.d(TAG, ">>>>>>>>>>> invite address: " + addressToCall.asString())
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
TcpAction.EntraceGuardAction.FAILED ->{ //护士主机不在线
|
|
TcpAction.EntraceGuardAction.FAILED ->{ //护士主机不在线
|
|
@@ -782,9 +783,26 @@ class MainActivity : BaseActivity<MainActivityPresenter, ActivityMainBinding>(),
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ val audioManager = getSystemService(AUDIO_SERVICE) as AudioManager
|
|
|
|
+ audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION)
|
|
|
|
+
|
|
if (enable) {
|
|
if (enable) {
|
|
|
|
+ audioManager.setStreamVolume(
|
|
|
|
+ AudioManager.MODE_IN_COMMUNICATION,
|
|
|
|
+ audioManager.getStreamMaxVolume(AudioManager.MODE_IN_COMMUNICATION),
|
|
|
|
+ AudioManager.FX_KEY_CLICK
|
|
|
|
+ )
|
|
|
|
+ audioManager.setSpeakerphoneOn(true)
|
|
|
|
+
|
|
AudioRouteUtils.routeAudioToSpeaker(mCore!!)
|
|
AudioRouteUtils.routeAudioToSpeaker(mCore!!)
|
|
} else {
|
|
} else {
|
|
|
|
+ audioManager.setStreamVolume(
|
|
|
|
+ AudioManager.STREAM_MUSIC,
|
|
|
|
+ audioManager.getStreamVolume(AudioManager.STREAM_MUSIC),
|
|
|
|
+ AudioManager.FX_KEY_CLICK
|
|
|
|
+ )
|
|
|
|
+ audioManager.setSpeakerphoneOn(false)
|
|
|
|
+
|
|
AudioRouteUtils.routeAudioToEarpiece(mCore!!)
|
|
AudioRouteUtils.routeAudioToEarpiece(mCore!!)
|
|
}
|
|
}
|
|
}
|
|
}
|