Browse Source

运行到机器 oK

allen 4 năm trước cách đây
mục cha
commit
cc1805bf68
25 tập tin đã thay đổi với 144 bổ sung3524 xóa
  1. 4 4
      app/build.gradle
  2. 128 253
      build.gradle
  3. 1 1
      gradle.properties
  4. 2 2
      home/build.gradle
  5. 0 7
      home/src/main/AndroidManifest.xml
  6. 0 16
      home/src/main/code/com/wdkl/ncs/android/component/home/SipUtil/SipCallBack.java
  7. 0 626
      home/src/main/code/com/wdkl/ncs/android/component/home/SipUtil/SipHelper.java
  8. 0 683
      home/src/main/code/com/wdkl/ncs/android/component/home/SipUtil/SipHelperUtil.java
  9. 0 701
      home/src/main/code/com/wdkl/ncs/android/component/home/SipUtil/SipHelperUtil2.java
  10. 0 446
      home/src/main/code/com/wdkl/ncs/android/component/home/activity/RTCVoipAudioActivity.java
  11. 0 283
      home/src/main/code/com/wdkl/ncs/android/component/home/activity/RTCVoipAudioRingingActivity.java
  12. 0 229
      home/src/main/code/com/wdkl/ncs/android/component/home/activity/SipVoipAudioActivity.kt
  13. 0 182
      home/src/main/code/com/wdkl/ncs/android/component/home/activity/SipVoipAudioRingingActivity.kt
  14. 4 4
      home/src/main/code/com/wdkl/ncs/android/component/home/activity/WatchEventDetailActivity.kt
  15. 3 71
      home/src/main/code/com/wdkl/ncs/android/component/home/activity/WatchHomeActivity.kt
  16. 0 9
      home/src/main/code/com/wdkl/ncs/android/component/home/activity/WatchRegisterActivity.kt
  17. 0 4
      home/src/main/code/com/wdkl/ncs/android/component/home/activity/WebRTCVoipAudioActivity.kt
  18. 1 1
      home/src/main/code/com/wdkl/ncs/android/component/home/service/APPService.kt
  19. 0 1
      home/src/main/code/com/wdkl/ncs/android/component/home/service/TcpHandleService.kt
  20. BIN
      home/src/main/res/drawable/btn_back.png
  21. BIN
      home/src/main/res/drawable/icon_hd_live.png
  22. BIN
      home/src/main/res/drawable/icon_hd_live_item.png
  23. BIN
      home/src/main/res/drawable/icon_switch_off.png
  24. BIN
      home/src/main/res/drawable/icon_switch_on.png
  25. 1 1
      settings.gradle

+ 4 - 4
app/build.gradle

@@ -15,7 +15,7 @@ android {
     aaptOptions.cruncherEnabled = false
     aaptOptions.useNewCruncher = false
     defaultConfig {
-        applicationId "com.wdkl.app.ncs.watch"
+        applicationId "com.wdkl.app.ncs"
         minSdkVersion min_sdk_version
         targetSdkVersion target_sdk_version
         versionCode app_version_code
@@ -100,10 +100,10 @@ dependencies {
     if (!componentTag) {
         compile project(':welcome') // ===> 开始模块  建议在模块内添加广告 欢迎页 等页面
         compile project(':home')   // ===> 主页模块  里面一般是App的首页 分类楼层页面
-        compile project(':shop')      // ===> 店铺模块 店铺列表 详细 等
+//        compile project(':shop')      // ===> 店铺模块 店铺列表 详细 等
         compile project(':setting')   // ===> 设置模块 设置 缓存 App分享等
         compile project(':extra')    // ===> 额外的一些页面 比如二维码扫描等一些附加功能
-        compile project(':hello')
+//        compile project(':hello')
     }
     /**
      * JavaShopAndroid 中间件依赖库
@@ -114,7 +114,7 @@ dependencies {
      */
     compile 'com.android.support.constraint:constraint-layout:1.1.0-beta5'
     implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
-    compile project(':starRTC')
+//    compile project(':starRTC')
 }
 repositories {
     mavenCentral()

+ 128 - 253
build.gradle

@@ -1,8 +1,128 @@
+buildscript {
+    /**
+     * Kotlin统一版本
+     */
+    ext.kotlin_version = '1.3.21'
+
+    /**
+     * Aop编制版本
+     */
+    ext.aspectj_version = '1.8.9'
+
+    /**
+     * 是否开启单独Module编译
+     */
+    ext.componentTag = false
+
+    /**
+     * 路由注解处理器版本
+     */
+    ext.router_version = '1.0.2'
+
+    /**
+     * kawo组件化框架版本
+     */
+    ext.kawo_version = '1.0.9'
+
+    /**
+     * SDK最小支持版本
+     */
+    ext.min_sdk_version = 19
+
+    /**
+     * SDK目标支持版本
+     */
+    ext.target_sdk_version = 28
+
+    /**
+     * SDK编译版本
+     */
+    ext.build_tools_version = "26.0.2"
+
+    /**
+     * 支持库版本
+     */
+    ext.support_library_version = "26.0.1"
+
+    /**
+     * APP版本码
+     */
+    ext.app_version_code = 1
+
+    /**
+     * APP版本号
+     */
+    ext.app_version = "1.0"
+
+    /**
+     * 项目依赖库
+     */
+    dependencies {
+        repositories {
+            /**
+             * 依赖仓储
+             */
+            maven { url 'https://maven.aliyun.com/repository/public' }
+            maven { url 'https://maven.aliyun.com/repository/google'}
+            maven { url 'https://jitpack.io' }
+        }
+        /**
+         * Gradle插件
+         */
+        classpath 'com.android.tools.build:gradle:3.0.1'
+
+        /**
+         * Kawo组件化插件
+         */
+        classpath "com.enation.geamtear.gradle:kawo:$kawo_version"
+
+        /**
+         * KotlinGradle插件
+         */
+        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
+
+        /**
+         * Kotlin辅助工具
+         */
+        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
+
+        /**
+         * Aop埋点相关
+         */
+        classpath "org.aspectj:aspectjtools:$aspectj_version"
+    }
+    repositories {
+        mavenCentral()
+    }
+}
+/**
+ * 统一依赖仓储
+ */
+allprojects {
+    repositories {
+        maven { url 'https://maven.aliyun.com/repository/public' }
+        maven { url 'https://maven.aliyun.com/repository/google'}
+        maven { url 'https://jitpack.io' }
+    }
+    tasks.withType(Javadoc) { // 新增
+        options.addStringOption('Xdoclint:none', '-quiet')
+        options.addStringOption('encoding', 'UTF-8')
+    }
+}
+
+/**
+ *  清除Build配置时 删除根目录Build文件夹
+ */
+task clean(type: Delete) {
+    delete rootProject.buildDir
+}
+
+
 //buildscript {
 //    /**
 //     * Kotlin统一版本
 //     */
-//    ext.kotlin_version = '1.3.21'
+//    ext.kotlin_version = '1.2.40'
 //
 //    /**
 //     * Aop编制版本
@@ -27,7 +147,7 @@
 //    /**
 //     * SDK最小支持版本
 //     */
-//    ext.min_sdk_version = 26
+//    ext.min_sdk_version = 19
 //
 //    /**
 //     * SDK目标支持版本
@@ -62,132 +182,9 @@
 //            /**
 //             * 依赖仓储
 //             */
-//            maven { url 'https://maven.aliyun.com/repository/public' }
-//            maven { url 'https://maven.aliyun.com/repository/google'}
-//            maven { url 'https://jitpack.io' }
-//        }
-//        /**
-//         * Gradle插件
-//         */
-//        classpath 'com.android.tools.build:gradle:3.0.1'
-//
-//        /**
-//         * Kawo组件化插件
-//         */
-//        classpath "com.enation.geamtear.gradle:kawo:$kawo_version"
-//
-//        /**
-//         * KotlinGradle插件
-//         */
-//        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
-//
-//        /**
-//         * Kotlin辅助工具
-//         */
-//        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
-//
-//        /**
-//         * Aop埋点相关
-//         */
-//        classpath "org.aspectj:aspectjtools:$aspectj_version"
-//    }
-//    repositories {
-//        mavenCentral()
-//    }
-//}
-///**
-// * 统一依赖仓储
-// */
-//allprojects {
-//    repositories {
-//        maven { url 'https://maven.aliyun.com/repository/public' }
-//        maven { url 'https://maven.aliyun.com/repository/google'}
-//        maven { url 'https://jitpack.io' }
-//    }
-//    tasks.withType(Javadoc) { // 新增
-//        options.addStringOption('Xdoclint:none', '-quiet')
-//        options.addStringOption('encoding', 'UTF-8')
-//    }
-//}
-//
-///**
-// *  清除Build配置时 删除根目录Build文件夹
-// */
-//task clean(type: Delete) {
-//    delete rootProject.buildDir
-//}
-
-//buildscript {
-//    /**
-//     * Kotlin统一版本
-//     */
-//    ext.kotlin_version = '1.3.21'
-//
-//    /**
-//     * Aop编制版本
-//     */
-//    ext.aspectj_version = '1.8.9'
-//
-//    /**
-//     * 是否开启单独Module编译
-//     */
-//    ext.componentTag = false
-//
-//    /**
-//     * 路由注解处理器版本
-//     */
-//    ext.router_version = '1.0.2'
-//
-//    /**
-//     * kawo组件化框架版本
-//     */
-//    ext.kawo_version = '1.0.9'
-//
-//    /**
-//     * SDK最小支持版本
-//     */
-//    ext.min_sdk_version = 17
-//
-//    /**
-//     * SDK目标支持版本
-//     */
-//    ext.target_sdk_version = 28
-//
-//    /**
-//     * SDK编译版本
-//     */
-//    ext.build_tools_version = "26.0.2"
-//
-//    /**
-//     * 支持库版本
-//     */
-//    ext.support_library_version = "26.0.1"
-//
-//    /**
-//     * APP版本码
-//     */
-//    ext.app_version_code = 1
-//
-//    /**
-//     * APP版本号
-//     */
-//    ext.app_version = "1.0"
-//
-//    /**
-//     * 项目依赖库
-//     */
-//    dependencies {
-//        repositories {
 //            jcenter()
 //            mavenCentral()
 //            google()
-//            /**
-//             * 依赖仓储
-//             */
-//            maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
-//            maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
-//            maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
-//            maven { url 'https://jitpack.io' }
 //        }
 //        /**
 //         * Gradle插件
@@ -214,6 +211,9 @@
 //         */
 //        classpath "org.aspectj:aspectjtools:$aspectj_version"
 //    }
+//    repositories {
+//        google()
+//    }
 //}
 ///**
 // * 统一依赖仓储
@@ -224,10 +224,9 @@
 //        mavenCentral()
 //        google()
 //
-//        maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
-//        maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
-//        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
-//        maven { url 'https://jitpack.io' }
+//        maven { url 'https://dl.bintray.com/geamtear/maven' }
+//        maven { url "https://jitpack.io" }
+//
 //    }
 //    tasks.withType(Javadoc) { // 新增
 //        options.addStringOption('Xdoclint:none', '-quiet')
@@ -241,127 +240,3 @@
 //task clean(type: Delete) {
 //    delete rootProject.buildDir
 //}
-
-
-buildscript {
-    /**
-     * Kotlin统一版本
-     */
-    ext.kotlin_version = '1.2.40'
-
-    /**
-     * Aop编制版本
-     */
-    ext.aspectj_version = '1.8.9'
-
-    /**
-     * 是否开启单独Module编译
-     */
-    ext.componentTag = false
-
-    /**
-     * 路由注解处理器版本
-     */
-    ext.router_version = '1.0.2'
-
-    /**
-     * kawo组件化框架版本
-     */
-    ext.kawo_version = '1.0.9'
-
-    /**
-     * SDK最小支持版本
-     */
-    ext.min_sdk_version = 19
-
-    /**
-     * SDK目标支持版本
-     */
-    ext.target_sdk_version = 28
-
-    /**
-     * SDK编译版本
-     */
-    ext.build_tools_version = "26.0.2"
-
-    /**
-     * 支持库版本
-     */
-    ext.support_library_version = "26.0.1"
-
-    /**
-     * APP版本码
-     */
-    ext.app_version_code = 1
-
-    /**
-     * APP版本号
-     */
-    ext.app_version = "1.0"
-
-    /**
-     * 项目依赖库
-     */
-    dependencies {
-        repositories {
-            /**
-             * 依赖仓储
-             */
-            jcenter()
-            mavenCentral()
-            google()
-        }
-        /**
-         * Gradle插件
-         */
-        classpath 'com.android.tools.build:gradle:3.0.1'
-
-        /**
-         * Kawo组件化插件
-         */
-        classpath "com.enation.geamtear.gradle:kawo:$kawo_version"
-
-        /**
-         * KotlinGradle插件
-         */
-        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
-
-        /**
-         * Kotlin辅助工具
-         */
-        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
-
-        /**
-         * Aop埋点相关
-         */
-        classpath "org.aspectj:aspectjtools:$aspectj_version"
-    }
-    repositories {
-        google()
-    }
-}
-/**
- * 统一依赖仓储
- */
-allprojects {
-    repositories {
-        jcenter()
-        mavenCentral()
-        google()
-
-        maven { url 'https://dl.bintray.com/geamtear/maven' }
-        maven { url "https://jitpack.io" }
-
-    }
-    tasks.withType(Javadoc) { // 新增
-        options.addStringOption('Xdoclint:none', '-quiet')
-        options.addStringOption('encoding', 'UTF-8')
-    }
-}
-
-/**
- *  清除Build配置时 删除根目录Build文件夹
- */
-task clean(type: Delete) {
-    delete rootProject.buildDir
-}

+ 1 - 1
gradle.properties

@@ -21,4 +21,4 @@ org.gradle.parallel=true
 org.gradle.configureondemand=true
 android.useAndroidX=true
 android.enableJetifier=true
-android.enableAapt2=false
+android.enableAapt2=true

+ 2 - 2
home/build.gradle

@@ -117,8 +117,8 @@ dependencies {
     implementation 'com.android.support.constraint:constraint-layout:1.1.0-beta5'
     implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
 
-    compile project(':starRTC')
-    compile project(':AmDemo_R')
+//    compile project(':starRTC')
+//    compile project(':AmDemo_R')
 
     //web rtc
     compile project(':webrtc')

+ 0 - 7
home/src/main/AndroidManifest.xml

@@ -16,8 +16,6 @@
         <activity android:name=".activity.WatchHomeActivity" />
         <activity android:name=".activity.WatchContactsActivity" />
         <activity android:name=".activity.WatchCallRecordsActivity" />
-        <activity android:name=".activity.RTCVoipAudioRingingActivity" />
-        <activity android:name=".activity.RTCVoipAudioActivity" />
         <activity android:name=".activity.EventActivity" />
         <activity android:name=".activity.WatchEventDetailActivity" />
         <activity android:name=".activity.WatchUserSettingActivity" />
@@ -28,11 +26,6 @@
         <activity android:name=".activity.WebRTCVoipAudioRingingActivity" />
         <activity android:name=".activity.AppUpdateActivity" />
 
-        <service android:name="com.starrtc.demo.demo.service.KeepLiveService">
-            <intent-filter>
-                <action android:name="com.starrtc.demo.service.KeepLiveService" />
-            </intent-filter>
-        </service>
         <service android:name=".service.TcpHandleService">
             <intent-filter>
                 <action android:name="com.wdkl.ncs.android.component.home.service.TcpHandleService" />

+ 0 - 16
home/src/main/code/com/wdkl/ncs/android/component/home/SipUtil/SipCallBack.java

@@ -1,16 +0,0 @@
-package com.wdkl.ncs.android.component.home.SipUtil;
-
-/**
- * ======================Sip回调接口=====================
- * Created by dengzhe on 2018/2/7.
- */
-
-public interface SipCallBack {
-    void startCall(String sipAddress);//开始拨打
-
-    void autoTalking();//自动接听
-
-    void endCall();//结束通话
-
-
-}

+ 0 - 626
home/src/main/code/com/wdkl/ncs/android/component/home/SipUtil/SipHelper.java

@@ -1,626 +0,0 @@
-package com.wdkl.ncs.android.component.home.SipUtil;
-
-import android.annotation.SuppressLint;
-import android.app.Activity;
-import android.app.ActivityManager;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.ServiceConnection;
-import android.os.CountDownTimer;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Message;
-import android.util.Log;
-
-import com.vvsip.ansip.IVvsipService;
-import com.vvsip.ansip.IVvsipServiceListener;
-import com.vvsip.ansip.VvsipCall;
-import com.vvsip.ansip.VvsipService;
-import com.vvsip.ansip.VvsipServiceBinder;
-import com.vvsip.ansip.VvsipTask;
-import com.wdkl.ncs.android.middleware.utils.MessageEvent;
-
-import org.greenrobot.eventbus.EventBus;
-
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.List;
-
-import static com.vvsip.ansip.VvsipTask.EXOSIP_CALL_CLOSED;
-
-
-public class SipHelper {
-   private String TAG = SipHelper.class.getSimpleName();
-
-    private final static String SIP_IP_END = ":5060";
-
-    private static String sipIP = "";
-    private static String sipID = "";
-    private static String sipPWD = "";
-
-
-    /**
-     * 注册中
-     */
-    public static final String REGISTERING = "register_ing";
-    /**
-     * 注册失败
-     */
-    public static final String REGISTERFAIL = "register_fail";
-    /**
-     * 注册完成
-     */
-    public static final String REGISTERCOM = "register_com";
-
-    /**
-     * Sip注册状态
-     */
-    public static final int EVENT_SIP_REGISTER_STATUS = 0x01;
-
-
-    /**
-     * Sip启动注册.
-     */
-    protected int mSipRegisterTime = 5000;
-    private Handler sipRegisterHandler = null;
-    private Runnable sipRegisterRunnable = null;
-
-    /**
-     * SIP信息
-     */
-    public static final String SipInfoTag = "SipInfo";
-    /**
-     * 电话呼叫对象
-     */
-    private List<VvsipCall> mVvsipCalls = null;
-
-
-    private static SipHelper sipHelper;
-
-    public Handler getSipRegisterHandler() {
-        return sipRegisterHandler;
-    }
-
-    public Runnable getSipRegisterRunnable() {
-        return sipRegisterRunnable;
-    }
-
-    public List<VvsipCall> getmVvsipCalls() {
-        return mVvsipCalls;
-    }
-
-    private IVvsipServiceListener sipListner;
-
-
-    private Context mContext;
-
-    public static SipHelper getInstance() {
-        if (sipHelper == null) {
-            synchronized (SipHelper.class) {
-                if (sipHelper == null) {
-                    sipHelper = new SipHelper();
-                }
-            }
-        }
-        return sipHelper;
-    }
-
-    /**
-     * Instantiates a new Sip register util.
-     */
-    private SipHelper() {
-    }
-
-    public void initSip(Context context, String ip, String id, String pwd) {
-        mContext = context;
-        sipIP = ip;
-        sipID = id;
-        sipPWD = pwd;
-
-        if (mVvsipCalls == null) {
-            mVvsipCalls = new ArrayList<VvsipCall>();
-        }
-
-        // Runnable exiting the splash screen and launching the menu
-        sipRegisterRunnable = new Runnable() {
-            public void run() {
-                isSuccessRegisterSip();
-            }
-        };
-
-        // Run the exitRunnable in in mSipRegisterTime ms
-        sipRegisterHandler = new Handler();
-
-        IVvsipService sipservice = VvsipService.getService();
-        if (sipservice != null) {
-            sipRegisterHandler.postDelayed(sipRegisterRunnable, 3000);
-            return;
-        }
-        sipRegisterHandler.postDelayed(sipRegisterRunnable, mSipRegisterTime);
-    }
-
-    public void setSipListner(IVvsipServiceListener listner) {
-        sipListner = listner;
-        IVvsipService sipService = VvsipService.getService();
-        if (sipService != null && sipListner != null) {
-            sipService.clearListener();
-            sipService.addListener(sipListner);
-        }
-    }
-
-    /*public void addSipListner(IVvsipServiceListener listner) {
-        IVvsipService sipService = VvsipService.getService();
-        if (sipService != null && listner != null) {
-            sipService.addListener(listner);
-            Log.d("sip", "add sip listner");
-        }
-    }
-
-    public void removeSipListner(IVvsipServiceListener listner) {
-        IVvsipService sipService = VvsipService.getService();
-        if (sipService != null && listner != null) {
-            sipService.removeListener(listner);
-            Log.d("sip", "remove sip listner");
-        }
-    }*/
-
-    /**
-     * 检测Sip服务是否注册成功
-     */
-    public void isSuccessRegisterSip() {
-        VvsipTask vvsipTask = VvsipTask.getVvsipTask();
-        if (vvsipTask != null && VvsipTask.global_failure != 0) {
-            /**
-             * ==================================sip服务启动失败 ================================
-             */
-        }
-    }
-
-    /**
-     * 注销Sip服务
-     */
-    public void unRegisterSip() {
-        //LogUtil.i(SipInfoTag, "lifecycle // onDestroy");
-
-        IVvsipService sipservice = VvsipService.getService();
-        /*if (sipservice != null && sipListner != null) {
-            sipservice.removeListener(sipListner);
-        }*/
-        if (sipservice != null) {
-            sipservice.clearListener();
-        }
-
-        getSipServiceStartHandler().removeCallbacks(getSipServiceStartRunnable());
-        sipRegisterHandler.removeCallbacks(sipRegisterRunnable);
-        if (getSipServiceConnection() != null && isRegister) {
-            try {
-                mContext.unbindService(getSipServiceConnection());
-                setSipServiceConnection(null);
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-        if (mVvsipCalls != null) {
-            mVvsipCalls.clear();
-            mVvsipCalls = null;
-        }
-
-        //Log.i(SipInfoTag, "lifecycle // onDestroy");
-    }
-
-    public static String sipStatus = "";
-
-    /**
-     * Sip信息获取
-     */
-    public void obtainSipInfo() {
-        if (sipStatus.equals(REGISTERCOM) /*&& NetHelper.NetConn*/) {//sip注册成功并且以太网连上
-            return;
-        }
-        IVvsipService sipService = VvsipService.getService();
-        if (sipService != null) {
-            sipService.setMessageHandler(messageHandler);
-            if (sipListner != null) {
-                sipService.clearListener();
-                sipService.addListener(sipListner);
-            }
-        }
-
-        sipRegister();
-        //failUiRefreshSip();
-    }
-
-//    private void failUiRefreshSip() {
-//        if (!NetHelper.NetConn) {
-//            sipStatus = REGISTERFAIL;
-//            EventBus.getDefault().post(new MessageEvent(REGISTERFAIL, EVENT_SIP_REGISTER_STATUS));
-//            if (mSipThread != null) {
-//                mSipThread.interrupt();
-//                mSipThread = null;
-//            }
-//            //LogUtil.e(SipInfoTag, "以太网断开,SIP UI状态刷新为失败");
-//        }
-//    }
-
-
-    /**
-     * Sip信息
-     */
-    private String sipinfo = "";
-    private static int handleCount = 0;
-    //Sip註冊次數
-    private CountDownTimer mCountDownAutoTimer;
-    @SuppressLint("HandlerLeak")
-    private Handler messageHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            //LogUtil.i("QASE", "handleMessage==" + " msg.obj==" + msg.obj.toString() + " msg.what==" + msg.what);
-            //LogUtil.i(SipInfoTag, "#" + msg.obj);
-            sipinfo = "" + msg.obj + sipinfo;
-            //LogUtil.i(SipInfoTag, "Sip信息" + sipinfo);
-
-            if (msg.what == 22) {//释放资源
-                //EventBus.getDefault().post(new MessageEvent(msg.what, EVENT_SIP_REGISTER_STATUS));
-            }
-
-            if (sipinfo.contains("200 OK")) { //注册成功
-                sipStatus = REGISTERCOM;
-//                Log.e(TAG, "SIP注册成功");
-                EventBus.getDefault().post(new MessageEvent(REGISTERCOM, EVENT_SIP_REGISTER_STATUS));
-                if (mSipThread != null) {
-                    mSipThread.interrupt();
-                    mSipThread = null;
-                }
-                if (msg.obj.toString().contains("408")) { //超时
-                    Log.e(TAG, "SIP注册超时");
-                    sipStatus = REGISTERFAIL;
-                    EventBus.getDefault().post(new MessageEvent(REGISTERFAIL, EVENT_SIP_REGISTER_STATUS));
-                    sipRegister();
-                }
-            } else {//注册失败
-                Log.e(TAG, "SIP注册失败");
-                sipStatus = REGISTERFAIL;
-                EventBus.getDefault().post(new MessageEvent(REGISTERFAIL, EVENT_SIP_REGISTER_STATUS));
-                if (mSipThread != null) {
-                    mSipThread.interrupt();
-                    mSipThread = null;
-                }
-                sipRegister();
-            }
-            //failUiRefreshSip();
-
-            if (msg.obj.toString().contains("autocall")) {
-                VvsipCall pCall = null;
-                //LogUtil.e(SipInfoTag, "onClick1");
-                for (VvsipCall _pCall : mVvsipCalls) {
-                    if (_pCall.cid > 0)
-                        //LogUtil.e(SipInfoTag, "state#" + _pCall.mState);
-                        if (_pCall.cid > 0 && _pCall.mState <= 2) {
-                            pCall = _pCall;
-                            break;
-                        }
-                }
-                //LogUtil.e(SipInfoTag, "onClick2");
-                if (pCall == null)
-                    return;
-                //LogUtil.e(SipInfoTag, "onClick3#" + pCall.mState);
-                IVvsipService _service = VvsipService.getService();
-                if (_service == null)
-                    return;
-                VvsipTask _vvsipTask = _service.getVvsipTask();
-                if (_vvsipTask == null)
-                    return;
-                pCall.stop();
-                _service.setSpeakerModeOff();
-            }
-        }
-    };
-
-    /**
-     * ====================Sip注册======================
-     */
-    private Thread mSipThread;
-
-    private static class SipThread extends Thread {
-        WeakReference<Activity> mThreadCallingBedActivity;
-
-        private SipThread(Activity activity) {
-            mThreadCallingBedActivity = new WeakReference<Activity>(activity);
-        }
-
-        @Override
-        public void run() {
-            super.run();
-            if (mThreadCallingBedActivity == null)
-                return;
-            if (mThreadCallingBedActivity.get() != null) {
-                IVvsipService sipService = VvsipService.getService();
-                try {
-                    if (sipService != null && !SipHelper.getInstance().sipinfo.contains("200 OK") /*&& NetHelper.NetConn*/) {
-                        sipStatus = REGISTERING;
-                        EventBus.getDefault().post(new MessageEvent(REGISTERING, EVENT_SIP_REGISTER_STATUS));
-                        sipService.register(sipIP + SIP_IP_END, sipID, sipPWD);
-                        handleCount++;
-                        Log.e(SipInfoTag, "以太网连接,SIP UI状态刷新为注册中");
-                    } else if (sipService != null && SipHelper.getInstance().sipinfo.contains("200 OK")) {
-                        sipStatus = REGISTERCOM;
-                        EventBus.getDefault().post(new MessageEvent(REGISTERCOM, EVENT_SIP_REGISTER_STATUS));
-                    }
-                } catch (NullPointerException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-    }
-
-    private void sipRegister() {
-        synchronized (this) {
-            mSipThread = new SipThread((Activity) mContext);
-            if (handleCount < 3) {
-                if (mCountDownAutoTimer == null) {
-                    mCountDownAutoTimer = new CountDownTimer(10000, 1000) {
-                        @Override
-                        public void onTick(long l) {
-                        }
-
-                        @Override
-                        public void onFinish() {
-                            handleCount = 0;
-                            if (mSipThread != null) {
-                                mSipThread.start();
-                            }
-                            if (mCountDownAutoTimer != null) {
-                                mCountDownAutoTimer.cancel();
-                                mCountDownAutoTimer = null;
-                            }
-                        }
-                    };
-                    mCountDownAutoTimer.start();
-                }
-                return;
-            } else {
-                if (mCountDownAutoTimer != null) {
-                    mCountDownAutoTimer.cancel();
-                    mCountDownAutoTimer = null;
-                }
-            }
-            if (handleCount == 0) {
-                mSipThread.start();
-            }
-        }
-    }
-
-
-    public void setmSipThread(Thread mSipThread) {
-        this.mSipThread = mSipThread;
-    }
-
-    public Thread getmSipThread() {
-        return mSipThread;
-    }
-
-    /**
-     * 开始通话
-     */
-    public void startCall(String sipUserName) {
-        IVvsipService sipService = VvsipService.getService();
-        if (sipService == null) return;
-        //----------------------------------------------携带呼叫列表转接床头机的Mac地址--------------------------------------------------//
-        sipService.initiateOutgoingCall(sipUserName, "");
-    }
-
-    /**
-     * 结束通话
-     */
-    public void endCall() {
-        VvsipCall call = null;
-        for (VvsipCall pCall : mVvsipCalls) {
-            if (pCall.cid > 0 && pCall.mState <= 2) {
-                call = pCall;
-                break;
-            }
-        }
-        Log.e("xxx","call"+call);
-        if (call == null) return;
-        IVvsipService sipService = VvsipService.getService();
-        Log.e("xxx","sipService"+sipService);
-        if (sipService == null) return;
-        VvsipTask sipTask = sipService.getVvsipTask();
-        Log.e("xxx","sipTask"+sipTask);
-        if (sipTask == null) return;
-        VvsipService.getService().mainEndCall(EXOSIP_CALL_CLOSED);
-        call.stop();
-        sipService.setSpeakerModeOff();
-        sipService.stopPlayer();
-        sipService.setAudioNormalMode();
-    }
-
-    /**
-     * 添加一个电话呼叫对象
-     *
-     * @param call
-     */
-    public void addCallObject(final VvsipCall call) {
-        try {
-            if (call == null) {
-                return;
-            }
-
-            if (mVvsipCalls == null)
-                return;
-            mVvsipCalls.add(call);
-        } catch (Exception e) {
-            //LogUtil.e(SipInfoTag, "onNewVvsipCallEvent: " + e);
-        }
-    }
-
-    /**
-     * 移除一个电话呼叫对象
-     *
-     * @param call
-     */
-    public void removeCallObject(final VvsipCall call) {
-        try {
-            if (call == null) {
-                return;
-            }
-
-            // 4 crash detected here for 4.0.9 with mVvsipCalls=NULL
-            if (mVvsipCalls == null)
-                return;
-            mVvsipCalls.remove(call);
-        } catch (Exception e) {
-            //Log.e(SipInfoTag, "onRemoveVvsipCallEvent: " + e);
-        }
-    }
-
-    /**
-     * 自动接电话
-     */
-    public void autoTalking() {
-        if (mVvsipCalls == null) {
-            mVvsipCalls = new ArrayList<VvsipCall>();
-        }
-        for (VvsipCall _pCall : mVvsipCalls) {
-            if (_pCall.cid > 0 && _pCall.mState < 2 && _pCall.mIncomingCall) {
-                // ANSWER EXISTING CALL
-                int i = _pCall.answer(200, 1);
-              //LogUtil.d(SipInfoTag, "ANSWER EXISTING CALL");
-                IVvsipService _service = VvsipService.getService();
-                if (_service != null) {
-                    if (i >= 0) {
-                        _service.stopPlayer();
-                        _service.setSpeakerModeOff();
-                        _service.setAudioInCallMode();
-                    }
-                }
-                break;
-            }
-        }
-    }
-
-    public static boolean isServiceRunning(Context context, String className) {
-        boolean isRunning = false;
-        ActivityManager activityManager = (ActivityManager) context
-                .getSystemService(Context.ACTIVITY_SERVICE);
-        List<ActivityManager.RunningServiceInfo> serviceList = activityManager
-                .getRunningServices(30);
-
-        if (!(serviceList.size() > 0)) {
-            return false;
-        }
-
-        for (int i = 0; i < serviceList.size(); i++) {
-            if (serviceList.get(i).service.getClassName().equals(className) == true) {
-                isRunning = true;
-                break;
-            }
-        }
-        return isRunning;
-    }
-
-    /**
-     * #############################
-     * <p>
-     * Sip启动服务.
-     * <p>
-     * #############################
-     */
-    private static Handler sipServiceStartHandler = null;
-    private static Runnable sipServiceStartRunnable = null;
-    private static ServiceConnection sipServiceConnection;
-
-    public static Runnable getSipServiceStartRunnable() {
-        return sipServiceStartRunnable;
-    }
-
-    public static Handler getSipServiceStartHandler() {
-        return sipServiceStartHandler;
-    }
-
-    public static ServiceConnection getSipServiceConnection() {
-        return sipServiceConnection;
-    }
-
-    public static void setSipServiceConnection(ServiceConnection sipServiceConnections) {
-        sipServiceConnection = sipServiceConnections;
-    }
-
-    /**
-     * 启动服务
-     */
-    public static Boolean isRegister = false;//是否注册
-
-    public void sipStartService() {
-        sipServiceStartHandler = new Handler();
-
-        sipServiceStartRunnable = new Runnable() {
-            public void run() {
-                if (mContext == null) {
-                    sipServiceStartHandler.postDelayed(sipServiceStartRunnable, 1000);
-                    return;
-                }
-                Intent intent = new Intent(mContext.getApplicationContext(), VvsipService.class);
-                mContext.startService(intent);
-
-                sipServiceConnection = new ServiceConnection() {
-                    public void onServiceConnected(ComponentName name, IBinder service) {
-                        IVvsipService sipservice = ((VvsipServiceBinder) service).getService();
-                        if (sipservice != null) {
-                            //LogUtil.i(SipInfoTag, "Connected!");
-                            if (sipListner != null) {
-                                sipservice.clearListener();
-                                sipservice.addListener(sipListner);
-                            }
-
-                            obtainSipInfo();
-                        }
-                    }
-
-                    public void onServiceDisconnected(ComponentName name) {
-                        //LogUtil.i(SipInfoTag, "Disconnected!");
-                    }
-                };
-
-                isRegister = mContext.bindService(intent, sipServiceConnection, Context.BIND_AUTO_CREATE);
-            }
-        };
-
-        sipServiceStartHandler.postDelayed(sipServiceStartRunnable, 0);
-    }
-
-    //======================Sip回调接口=====================
-    private SipCallBack mSipCallBackI;
-
-    public void setSipCallBack(SipCallBack mSipCallBackI) {
-        this.mSipCallBackI = mSipCallBackI;
-    }
-
-    public SipCallBack getmSipCallBack() {
-        return mSipCallBackI;
-    }
-
-    /**
-     * 用来解析错误代码
-     */
-    public static String analyseErrorCode(String errorCode) {
-        switch (errorCode) {
-            case "200":
-                return "成功";
-            case "408":
-                return "请求超时";
-            case "400":
-                return "服务器不支持请求的语法";
-            case "401":
-                return "未授权";
-            case "403":
-                return "服务器禁止请求";
-            case "404":
-                return "服务器找不到";
-            default:
-                return "未知错误";
-        }
-    }
-
-}

+ 0 - 683
home/src/main/code/com/wdkl/ncs/android/component/home/SipUtil/SipHelperUtil.java

@@ -1,683 +0,0 @@
-package com.wdkl.ncs.android.component.home.SipUtil;
-
-import android.annotation.SuppressLint;
-import android.app.Activity;
-import android.app.ActivityManager;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.ServiceConnection;
-import android.os.Build;
-import android.os.CountDownTimer;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Message;
-import android.util.Log;
-import android.view.WindowManager;
-
-import com.vvsip.ansip.IVvsipService;
-import com.vvsip.ansip.IVvsipServiceListener;
-import com.vvsip.ansip.VvsipCall;
-import com.vvsip.ansip.VvsipService;
-import com.vvsip.ansip.VvsipServiceBinder;
-import com.vvsip.ansip.VvsipTask;
-import com.wdkl.ncs.android.component.home.activity.WatchHomeActivity;
-import com.wdkl.ncs.android.component.home.util.EthernetWifiCallBack;
-import com.wdkl.ncs.android.middleware.utils.MessageEvent;
-
-import org.greenrobot.eventbus.EventBus;
-
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Created by dengzhe on 2017/12/18.
- */
-public class SipHelperUtil implements EthernetWifiCallBack {
-
-    private String TAG = SipHelperUtil.class.getSimpleName();
-
-    //挂断状态  21
-    public static int CALLING_ENDING = 21;
-
-    /**
-     * 注册中
-     */
-    public static final String REGISTERING = "register_ing";
-    /**
-     * 注册失败.
-     */
-    public static final String REGISTERFAIL = "register_fail";
-    /**
-     * 注册完成
-     */
-    public static final String REGISTERCOM = "register_com";
-
-    /**
-     * Sip注册状态
-     */
-    public static final int EVENT_SIP_REGISTER_STATUS = 0x08;
-
-
-    private static String SIP_IP = "192.168.101.1";
-    private static String SIP_IP_PORT = ":5060";
-    private static String SIP_PASS_WORD = "";
-    private static String SIP_ID = "";
-
-    /**
-     * Sip启动注册.
-     */
-    protected int mSipRegisterTime = 3000;
-    private Handler sipRegisterHandler = null;
-    private Runnable sipRegisterRunnable = null;
-
-    /**
-     * SIP信息
-     */
-    public static final String SipInfoTag = "SipInfo";
-    /**
-     * 电话呼叫对象
-     */
-    private List<VvsipCall> mVvsipCalls = null;
-
-
-    private static SipHelperUtil mSipRegisterUtil;
-
-    public Handler getSipRegisterHandler() {
-        return sipRegisterHandler;
-    }
-
-    public Runnable getSipRegisterRunnable() {
-        return sipRegisterRunnable;
-    }
-
-    public List<VvsipCall> getmVvsipCalls() {
-        return mVvsipCalls;
-    }
-
-    private static Context contexts;
-
-    public static SipHelperUtil getInstance(Context context) {
-
-        if (mSipRegisterUtil == null) {
-            synchronized (SipHelperUtil.class) {
-                if (mSipRegisterUtil == null) {
-                    mSipRegisterUtil = new SipHelperUtil();
-                    contexts = context;
-                }
-            }
-        }
-        return mSipRegisterUtil;
-    }
-
-    /**
-     * Instantiates a new Sip register util.
-     */
-    private SipHelperUtil() {
-        setEthernetWifiCallBack(this);
-        if (mVvsipCalls == null) {
-            mVvsipCalls = new ArrayList<VvsipCall>();
-        }
-
-        // Runnable exiting the splash screen and launching the menu
-        sipRegisterRunnable = new Runnable() {
-            public void run() {
-                isSuccessRegisterSip();
-            }
-        };
-
-        // Run the exitRunnable in in mSipRegisterTime ms
-        sipRegisterHandler = new Handler();
-
-        IVvsipService sipservice = VvsipService.getService();
-        if (sipservice != null) {
-            sipRegisterHandler.postDelayed(sipRegisterRunnable, 0);
-            return;
-        }
-        sipRegisterHandler.postDelayed(sipRegisterRunnable, mSipRegisterTime);
-
-
-    }
-
-    /**
-     * 检测Sip服务是否注册成功
-     */
-    public void isSuccessRegisterSip() {
-        VvsipTask vvsipTask = VvsipTask.getVvsipTask();
-        if (vvsipTask != null && VvsipTask.global_failure != 0) {
-            /**
-             * ==================================sip服务启动失败 ================================
-             */
-            Intent intent = new Intent(Intent.ACTION_MAIN);
-            intent.setClass(contexts.getApplicationContext(), VvsipService.class);
-            contexts.stopService(intent);
-//            LogUtil.i(SipInfoTag, "注册失败:lifecycle // isSuccessStartSipService");
-        } else {
-//            finish();
-            /**
-             * ==================================sip服务启动成功 ================================
-             */
-//            LogUtil.i(SipInfoTag, "sip服务启动:lifecycle // isSuccessStartSipService");
-
-        }
-    }
-
-    /**
-     * 注销Sip服务
-     */
-    public void unRegisterSip() {
-
-        IVvsipService sipservice = VvsipService.getService();
-        if (contexts instanceof IVvsipServiceListener && sipservice != null) {
-            sipservice.removeListener((IVvsipServiceListener) contexts);
-        }
-        getSipServiceStartHandler().removeCallbacks(getSipServiceStartRunnable());
-        sipRegisterHandler.removeCallbacks(sipRegisterRunnable);
-        if (getSipServiceConnection() != null && isRegister) {
-            try {
-                contexts.unbindService(getSipServiceConnection());
-                setSipServiceConnection(null);
-            } catch (IllegalArgumentException e) {
-                e.printStackTrace();
-            }
-        }
-        if (mVvsipCalls != null) {
-            mVvsipCalls.clear();
-            mVvsipCalls = null;
-        }
-
-    }
-
-    private boolean isFirstRegister = true;
-    public static String sipMessageCounts = "";
-
-
-
-//    public void setSipListner(IVvsipServiceListener listner) {
-//        sipListner = listner;
-//        IVvsipService sipService = VvsipService.getService();
-//        if (sipService != null && sipListner != null) {
-//            sipService.clearListener();
-//            sipService.addListener(sipListner);
-//        }
-//    }
-
-
-
-
-    /**
-     * Sip信息获取
-     */
-    public void obtainSipInfo() {
-        if (sipMessageCounts.equals(REGISTERCOM) /*&& ethernetS*/) {//sip注册成功并且以太网连上
-            return;
-        }
-        IVvsipService sipService = VvsipService.getService();
-        if (sipService != null) {
-            sipService.addListener((IVvsipServiceListener) contexts);
-            sipService.setMessageHandler(messageHandler);
-        } else {
-//            LogUtil.i(SipInfoTag, "lifecycle // _service==null");
-        }
-        sipRegister();
-//        failUiRefreshSip();
-    }
-
-    /**
-     * Sip信息
-     */
-    private String sipinfo = "";
-    private static int handleCount = 0;
-    //Sip註冊次數
-    private CountDownTimer mCountDownAutoTimer;
-    @SuppressLint("HandlerLeak")
-    private Handler messageHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-//            LogUtil.i(SipInfoTag, "VvsipEvent received (?" + msg.what + " " + msg.arg1
-//                    + " " + msg.arg2 + ")\n");
-//            LogUtil.i(SipInfoTag, "#" + msg.obj);
-            sipinfo = "" + msg.obj + sipinfo;
-//            LogUtil.i(SipInfoTag, "Sip信息" + sipinfo);
-
-            if (msg.what == 22) {//释放资源
-//                EventBus.getDefault().post(new MessageEvent(msg.what, EVENT_SIP_REGISTER_STATUS));
-            }
-
-            if (sipinfo.contains("200 OK")) {//注册成功
-                Log.e(TAG, "SIP注册成功");
-                sipMessageCounts = REGISTERCOM;
-                EventBus.getDefault().post(new MessageEvent(REGISTERCOM, EVENT_SIP_REGISTER_STATUS));
-                if (mSipThread != null) {
-                    mSipThread.interrupt();
-                    mSipThread = null;
-                }
-                if (msg.obj.toString().contains("408")) {//超时
-                    Log.e(TAG, "SIP注册超时");
-                    sipMessageCounts = REGISTERFAIL;
-                    EventBus.getDefault().post(new MessageEvent(REGISTERFAIL, EVENT_SIP_REGISTER_STATUS));
-                    sipRegister();
-                }
-            } else { //注册失败
-
-                Log.e(TAG, "SIP注册失败");
-                sipMessageCounts = REGISTERFAIL;
-                EventBus.getDefault().post(new MessageEvent(REGISTERFAIL, EVENT_SIP_REGISTER_STATUS));
-                if (mSipThread != null) {
-                    mSipThread.interrupt();
-                    mSipThread = null;
-                }
-                sipRegister();
-            }
-//            failUiRefreshSip();
-
-            if (msg.obj.toString().contains("autocall")) {
-                VvsipCall pCall = null;
-//                LogUtil.e(SipInfoTag, "onClick1");
-                for (VvsipCall _pCall : mVvsipCalls) {
-                    if (_pCall.cid > 0)
-//                        LogUtil.e(SipInfoTag, "state#" + _pCall.mState);
-                        if (_pCall.cid > 0 && _pCall.mState <= 2) {
-                            pCall = _pCall;
-                            break;
-                        }
-                }
-//                LogUtil.e(SipInfoTag, "onClick2");
-                if (pCall == null)
-                    return;
-//                LogUtil.e(SipInfoTag, "onClick3#" + pCall.mState);
-                IVvsipService _service = VvsipService.getService();
-                if (_service == null)
-                    return;
-                VvsipTask _vvsipTask = _service.getVvsipTask();
-                if (_vvsipTask == null)
-                    return;
-                pCall.stop();
-                _service.setSpeakerModeOff();
-            }
-        }
-    };
-
-    /**
-     * UI刷新:SIP失败
-     */
-    private void failUiRefreshSip() {
-//        if (!ethernetS) {
-            sipMessageCounts = REGISTERFAIL;
-            EventBus.getDefault().post(new MessageEvent(REGISTERFAIL, EVENT_SIP_REGISTER_STATUS));
-            if (mSipThread != null) {
-                mSipThread.interrupt();
-                mSipThread = null;
-            }
-//            LogUtil.e(SipInfoTag, "以太网断开,SIP UI状态刷新为失败");
-//        }
-    }
-
-    /**
-     * ====================Sip注册======================
-     */
-    private Thread mSipThread;
-
-    private static class SipThread extends Thread {
-        WeakReference<WatchHomeActivity> mThreadCallingDoorActivity;
-
-        public SipThread(WatchHomeActivity activity) {
-            mThreadCallingDoorActivity = new WeakReference<WatchHomeActivity>(
-                    activity);
-        }
-
-        @Override
-        public void run() {
-            super.run();
-            if (mThreadCallingDoorActivity == null)
-                return;
-            if (mThreadCallingDoorActivity.get() != null) {
-                VvsipService sipService = VvsipService.getService();
-                try {
-                    if (sipService != null && !SipHelperUtil.getInstance(contexts).sipinfo.contains("200 OK") /*&& ethernetS*/) {//注册正在进行中
-                        sipMessageCounts = REGISTERING;
-                        EventBus.getDefault().post(new MessageEvent(REGISTERING, EVENT_SIP_REGISTER_STATUS));
-                        sipService.register(SIP_IP + SIP_IP_PORT,
-                                SIP_ID, SIP_PASS_WORD);
-                        //                        LogUtil.i(SipInfoTag, "Sip地址" + Constants.SIP_IP + SIP_IP_END + "\nSip账号" + Constants.SIP_ID + "\nSip密码" + Constants.SIP_PASS_WORD);
-                        handleCount++;
-                        //                        LogUtil.d(SipInfoTag, "Sip第-----" + (handleCount + 1) + "-------次註冊");
-                        Log.e(SipInfoTag, "以太网连接,SIP UI状态刷新为注册中");
-                    } else if (sipService != null && SipHelperUtil.getInstance(contexts).sipinfo.contains("200 OK")) {
-                        sipMessageCounts = REGISTERCOM;
-                        EventBus.getDefault().post(new MessageEvent(REGISTERCOM, EVENT_SIP_REGISTER_STATUS));
-                        Log.e(SipInfoTag, "以太网连接,SIP UI状态刷新为注册完成");
-                    }
-                } catch (NullPointerException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-    }
-
-
-    private void sipRegister() {
-        synchronized (this) {
-            mSipThread = new SipThread((WatchHomeActivity) contexts);
-            if (handleCount < 3) {
-                if (mCountDownAutoTimer == null) {
-                    mCountDownAutoTimer = new CountDownTimer(10000, 1000) {
-                        @Override
-                        public void onTick(long l) {
-//                            LogUtil.d(SipInfoTag, "已經註冊第" + (handleCount + 1) + "次:" + l / 1000 + "秒后重啟註冊");
-                        }
-
-                        @Override
-                        public void onFinish() {
-                            handleCount = 0;
-                            if (mSipThread != null) {
-                                mSipThread.start();
-                            }
-                            if (mCountDownAutoTimer != null) {
-                                mCountDownAutoTimer.cancel();
-                                mCountDownAutoTimer = null;
-                            }
-                        }
-
-                    };
-                    mCountDownAutoTimer.start();
-                }
-                return;
-            } else {
-                if (mCountDownAutoTimer != null) {
-                    mCountDownAutoTimer.cancel();
-                    mCountDownAutoTimer = null;
-                }
-            }
-            if (handleCount == 0) {
-                mSipThread.start();
-            }
-        }
-    }
-
-    public void setmSipThread(Thread mSipThread) {
-        this.mSipThread = mSipThread;
-    }
-
-    public Thread getmSipThread() {
-        return mSipThread;
-    }
-
-    /**
-     * 开始通话
-     */
-    public void startCall(String sipUseName) {
-        IVvsipService sipService = VvsipService.getService();
-        if (sipService == null) return;
-        //----------------------------------------------携带Mac地址(暂时无用)--------------------------------------------------//
-        sipService.initiateOutgoingCall(sipUseName, "");
-    }
-
-    /**
-     * 结束通话
-     */
-    public void endCall() {
-        VvsipCall call = null;
-        for (VvsipCall pCall : mVvsipCalls) {
-            if (pCall.cid > 0 && pCall.mState <= 2) {
-                call = pCall;
-                break;
-            }
-        }
-        Log.e("xxx","call"+call);
-        if (call == null) return;
-        IVvsipService sipService = VvsipService.getService();
-        Log.e("xxx","sipService"+sipService);
-        if (sipService == null) return;
-        VvsipTask sipTask = sipService.getVvsipTask();
-        Log.e("xxx","sipTask"+sipTask);
-        if (sipTask == null) return;
-        VvsipService.getService().mainEndCall(CALLING_ENDING);
-        call.stop();
-        sipService.setSpeakerModeOff();
-        sipService.stopPlayer();
-        sipService.setAudioNormalMode();
-
-    }
-
-    /**
-     * 添加一个电话呼叫对象
-     *
-     * @param call
-     */
-    public void addCallObject(final VvsipCall call) {
-        ((Activity) contexts).runOnUiThread(new Runnable() {
-            public void run() {
-                try {
-                    if (call == null) {
-                        return;
-                    }
-
-                    if (mVvsipCalls == null)
-                        return;
-                    mVvsipCalls.add(call);
-
-                    if (Build.VERSION.SDK_INT >= 5) {
-                        ((Activity) contexts).getWindow().addFlags( // WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
-                                // |
-                                WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
-                                        | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
-                                        | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-                    }
-
-                } catch (Exception e) {
-//                    LogUtil.e(SipInfoTag, "onNewVvsipCallEvent: " + e);
-                }
-            }
-        });
-    }
-
-    /**
-     * 移除一个电话呼叫对象
-     *
-     * @param call
-     */
-    public void removeCallObject(final VvsipCall call) {
-        ((Activity) contexts).runOnUiThread(new Runnable() {
-            public void run() {
-                try {
-                    if (call == null) {
-                        return;
-                    }
-
-                    // 4 crash detected here for 4.0.9 with mVvsipCalls=NULL
-                    if (mVvsipCalls == null)
-                        return;
-                    mVvsipCalls.remove(call);
-
-                    if (mVvsipCalls.size() == 0) {
-                        if (Build.VERSION.SDK_INT >= 5) {
-                            ((Activity) contexts).getWindow()
-                                    .clearFlags( // WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
-                                            // |
-                                            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
-                                                    | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
-                                                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-                        }
-                    }
-                } catch (Exception e) {
-//                    Log.e(SipInfoTag, "onRemoveVvsipCallEvent: " + e);
-                }
-            }
-        });
-    }
-
-    /**
-     * 自动接电话
-     */
-    public void autoTalking() {
-        if (mVvsipCalls == null) {
-            mVvsipCalls = new ArrayList<VvsipCall>();
-        }
-        for (VvsipCall _pCall : mVvsipCalls) {
-            if (_pCall.cid > 0 && _pCall.mState < 2 && _pCall.mIncomingCall) {
-                // ANSWER EXISTING CALL
-                int i = _pCall.answer(200, 1);
-//                LogUtil.d(SipInfoTag, "ANSWER EXISTING CALL");
-                IVvsipService _service = VvsipService.getService();
-                if (_service != null) {
-                    if (i >= 0) {
-                        _service.stopPlayer();
-                        _service.setSpeakerModeOff();
-                        _service.setAudioInCallMode();
-                    }
-                }
-                break;
-            }
-        }
-    }
-
-    public static boolean isServiceRunning(Context mContext, String className) {
-
-        boolean isRunning = false;
-        ActivityManager activityManager = (ActivityManager) mContext
-                .getSystemService(Context.ACTIVITY_SERVICE);
-        List<ActivityManager.RunningServiceInfo> serviceList = activityManager
-                .getRunningServices(30);
-
-        if (!(serviceList.size() > 0)) {
-            return false;
-        }
-
-        for (int i = 0; i < serviceList.size(); i++) {
-            if (serviceList.get(i).service.getClassName().equals(className) == true) {
-                isRunning = true;
-                break;
-            }
-        }
-        return isRunning;
-    }
-
-    /**
-     * #############################
-     * <p>
-     * Sip启动服务.
-     * <p>
-     * #############################
-     */
-    private static Handler sipServiceStartHandler = null;
-    private static Runnable sipServiceStartRunnable = null;
-    private static ServiceConnection sipServiceConnection;
-
-    public static Runnable getSipServiceStartRunnable() {
-        return sipServiceStartRunnable;
-    }
-
-    public static Handler getSipServiceStartHandler() {
-        return sipServiceStartHandler;
-    }
-
-    public static ServiceConnection getSipServiceConnection() {
-        return sipServiceConnection;
-    }
-
-    public static void setSipServiceConnection(ServiceConnection sipServiceConnections) {
-        sipServiceConnection = sipServiceConnections;
-    }
-
-    /**
-     * 启动服务
-     */
-    public static Boolean isRegister = false;//是否注册
-
-    public void sipStartService(String sip_ip, String sip_id, String sip_password) {
-        SIP_IP = sip_ip;
-        SIP_ID = sip_id;
-        SIP_PASS_WORD = sip_password;
-
-        sipServiceStartHandler = new Handler();
-
-        sipServiceStartRunnable = new Runnable() {
-            public void run() {
-
-                Intent intent = new Intent(contexts.getApplicationContext(), VvsipService.class);
-                contexts.startService(intent);
-
-                sipServiceConnection = new ServiceConnection() {
-                    public void onServiceConnected(ComponentName name, IBinder service) {
-                        IVvsipService sipservice = ((VvsipServiceBinder) service).getService();
-                        if (contexts instanceof IVvsipServiceListener) {
-                            sipservice.addListener((IVvsipServiceListener) contexts);
-                            Log.e(TAG, "Sip信息获取");
-                            SipHelperUtil.getInstance(contexts).obtainSipInfo();//Sip信息获取
-                        }
-                    }
-
-                    public void onServiceDisconnected(ComponentName name) {
-//                        LogUtil.i(SipInfoTag, "Disconnected!");
-                    }
-                };
-                if (!SipHelperUtil.isServiceRunning(contexts, "com.vvsip.ansip.VvsipService")) {
-                    isRegister = contexts.bindService(intent, sipServiceConnection, Context.BIND_AUTO_CREATE);
-                }
-            }
-        };
-
-        sipServiceStartHandler.postDelayed(sipServiceStartRunnable, 0);
-    }
-
-    /**
-     * 用来解析错误代码
-     */
-    public static String analyseErrorCode(String errorCode) {
-        switch (errorCode) {
-            case "200":
-                return "成功";
-            case "408":
-                return "请求超时";
-            case "400":
-                return "服务器不支持请求的语法";
-            case "401":
-                return "未授权";
-            case "403":
-                return "服务器禁止请求";
-            case "404":
-                return "服务器找不到";
-            default:
-                return "未知错误";
-        }
-    }
-
-    //======================Sip回调接口=====================
-    private SipCallBack mSipCallBack;
-
-    public void setSipCallBack(SipCallBack mSipCallBack) {
-        this.mSipCallBack = mSipCallBack;
-    }
-
-    public SipCallBack getmSipCallBack() {
-        return mSipCallBack;
-    }
-
-    //======================以太网和wifi状态接口=====================
-    private EthernetWifiCallBack mEthernetWifiCallBack;
-
-    public void setEthernetWifiCallBack(EthernetWifiCallBack mEthernetWifiCallBack) {
-        this.mEthernetWifiCallBack = mEthernetWifiCallBack;
-    }
-
-    public EthernetWifiCallBack getmEthernetWifiCallBack() {
-        return mEthernetWifiCallBack;
-    }
-
-    private static boolean ethernetS = true;//获取以太网状态
-    private static boolean wifiS = false;//获取wifi状态
-
-    @Override
-    public boolean ethernetStatus(boolean status) {
-        ethernetS = status;
-        return status;
-    }
-
-    @Override
-    public boolean wifiStatus(boolean status) {
-        wifiS = status;
-        return status;
-    }
-}

+ 0 - 701
home/src/main/code/com/wdkl/ncs/android/component/home/SipUtil/SipHelperUtil2.java

@@ -1,701 +0,0 @@
-package com.wdkl.ncs.android.component.home.SipUtil;
-
-import android.annotation.SuppressLint;
-import android.app.Activity;
-import android.app.ActivityManager;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.ServiceConnection;
-import android.os.Build;
-import android.os.CountDownTimer;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Message;
-import android.util.Log;
-import android.view.WindowManager;
-
-import com.vvsip.ansip.IVvsipService;
-import com.vvsip.ansip.IVvsipServiceListener;
-import com.vvsip.ansip.VvsipCall;
-import com.vvsip.ansip.VvsipService;
-import com.vvsip.ansip.VvsipServiceBinder;
-import com.vvsip.ansip.VvsipTask;
-import com.wdkl.ncs.android.component.home.activity.WatchHomeActivity;
-import com.wdkl.ncs.android.component.home.util.EthernetWifiCallBack;
-import com.wdkl.ncs.android.middleware.utils.MessageEvent;
-
-
-import org.greenrobot.eventbus.EventBus;
-
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.List;
-
-
-
-/**
- * Created by dengzhe on 2017/12/18.
- */
-public class SipHelperUtil2 implements EthernetWifiCallBack{
-    private String TAG = SipHelperUtil2.class.getSimpleName();
-    /**
-     * Sip启动注册.
-     */
-    protected int mSipRegisterTime = 3000;
-    private Handler sipRegisterHandler = null;
-    private Runnable sipRegisterRunnable = null;
-
-    /**
-     * SIP信息
-     */
-    public static final String SipInfoTag = "SipInfo";
-    /**
-     * 电话呼叫对象
-     */
-    private List<VvsipCall> mVvsipCalls = null;
-
-    /**
-     * 注册中
-     */
-    public static final String REGISTERING = "register_ing";
-    /**
-     * 注册失败.
-     */
-    public static final String REGISTERFAIL = "register_fail";
-    /**
-     * 注册完成
-     */
-    public static final String REGISTERCOM = "register_com";
-
-    /**
-     * Sip注册状态
-     */
-    public static final int EVENT_SIP_INTERNETPING = 0x01;
-
-    //挂断状态  21
-    public static int CALLING_ENDING = 21;
-
-
-    private static String SIP_IP = "192.168.101.1";
-    private static String SIP_IP_PORT = ":5060";
-    private static String SIP_PASS_WORD = "";
-    private static String SIP_ID = "";
-
-    
-    private static SipHelperUtil2 mSipRegisterUtil;
-    public static String sipMessageCounts = "";
-
-    public Handler getSipRegisterHandler() {
-        return sipRegisterHandler;
-    }
-
-    public Runnable getSipRegisterRunnable() {
-        return sipRegisterRunnable;
-    }
-
-    public List<VvsipCall> getmVvsipCalls() {
-        return mVvsipCalls;
-    }
-
-    /**
-     * Gets instance.
-     *
-     * @param context the context
-     * @return the instance
-     */
-    private static Context contexts;
-
-    public static SipHelperUtil2 getInstance(Context context) {
-
-        if (mSipRegisterUtil == null) {
-            synchronized (SipHelperUtil2.class) {
-                if (mSipRegisterUtil == null) {
-                    mSipRegisterUtil = new SipHelperUtil2();
-                    contexts = context;
-                }
-            }
-        }
-        return mSipRegisterUtil;
-    }
-
-    /**
-     * Instantiates a new Sip register util.
-     */
-    private SipHelperUtil2() {
-        setEthernetWifiCallBack(this);
-        if (mVvsipCalls == null) {
-            mVvsipCalls = new ArrayList<VvsipCall>();
-        }
-
-        // Runnable exiting the splash screen and launching the menu
-        sipRegisterRunnable = new Runnable() {
-            public void run() {
-                isSuccessRegisterSip();
-            }
-        };
-
-        // Run the exitRunnable in in mSipRegisterTime ms
-        sipRegisterHandler = new Handler();
-
-        IVvsipService sipservice = VvsipService.getService();
-        if (sipservice != null) {
-            sipRegisterHandler.postDelayed(sipRegisterRunnable, 0);
-            return;
-        }
-        sipRegisterHandler.postDelayed(sipRegisterRunnable, mSipRegisterTime);
-
-
-    }
-
-    /**
-     * 检测Sip服务是否注册成功
-     */
-    public void isSuccessRegisterSip() {
-        VvsipTask vvsipTask = VvsipTask.getVvsipTask();
-        if (vvsipTask != null && VvsipTask.global_failure != 0) {
-            /**
-             * ==================================sip服务启动失败 ================================
-             */
-            Intent intent = new Intent(Intent.ACTION_MAIN);
-            intent.setClass(contexts.getApplicationContext(), VvsipService.class);
-            contexts.stopService(intent);
-//            LogUtil.i(SipInfoTag, "注册失败:lifecycle // isSuccessStartSipService");
-        } else {
-//            finish();
-            /**
-             * ==================================sip服务启动成功 ================================
-             */
-//            Intent intent = new Intent();
-//            intent.setClass(this, SipSuccessActivity.class);
-//            startActivity(intent);
-//            LogUtil.i(SipInfoTag, "sip服务启动:lifecycle // isSuccessStartSipService");
-
-        }
-    }
-
-    /**
-     * 注销Sip服务
-     */
-    public void unRegisterSip() {
-//        LogUtil.i(SipInfoTag, "lifecycle // onDestroy");
-
-        IVvsipService sipservice = VvsipService.getService();
-        if (contexts instanceof IVvsipServiceListener && sipservice != null) {
-            sipservice.removeListener((IVvsipServiceListener) contexts);
-        }
-        getSipServiceStartHandler().removeCallbacks(getSipServiceStartRunnable());
-        sipRegisterHandler.removeCallbacks(sipRegisterRunnable);
-        if (getSipServiceConnection() != null && isRegister) {
-            try {
-                contexts.unbindService(getSipServiceConnection());
-                setSipServiceConnection(null);
-            } catch (IllegalArgumentException e) {
-                e.printStackTrace();
-            }
-        }
-        if (mVvsipCalls != null) {
-            mVvsipCalls.clear();
-            mVvsipCalls = null;
-        }
-
-//        Log.i(SipInfoTag, "lifecycle // onDestroy");
-    }
-
-    private boolean isFirstRegister = true;
-
-    /**
-     * Sip信息获取
-     */
-    public void obtainSipInfo() {
-        if (sipMessageCounts.equals(REGISTERCOM) /*&& ethernetS*/) {//sip注册成功并且以太网连上
-            return;
-        }
-        IVvsipService sipService = VvsipService.getService();
-        if (sipService != null) {
-            sipService.addListener((IVvsipServiceListener) contexts);
-            sipService.setMessageHandler(messageHandler);
-        } else {
-//            LogUtil.i(SipInfoTag, "lifecycle // _service==null");
-        }
-        sipRegister();
-        failUiRefreshSip();
-    }
-
-    /**
-     * Sip信息
-     */
-    private String sipinfo = "";
-    private static int handleCount = 0;
-    //Sip註冊次數
-    private CountDownTimer mCountDownAutoTimer;
-    @SuppressLint("HandlerLeak")
-    private Handler messageHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-//            LogUtil.i(SipInfoTag, "VvsipEvent received (?" + msg.what + " " + msg.arg1
-//                    + " " + msg.arg2 + ")\n");
-//            LogUtil.i(SipInfoTag, "#" + msg.obj);
-            sipinfo = "" + msg.obj + sipinfo;
-//            LogUtil.i(SipInfoTag, "Sip信息" + sipinfo);
-
-            if (msg.what == 22) {//释放资源
-//                EventBus.getDefault().post(new MessageEvent(msg.what, EVENT_SIP_INTERNETPING));
-            }
-
-            if (sipinfo.contains("200 OK")) {//注册成功
-                Log.e(TAG, "SIP注册成功");
-                sipMessageCounts = REGISTERCOM;
-                EventBus.getDefault().post(new MessageEvent(REGISTERCOM, EVENT_SIP_INTERNETPING));
-                if (mSipThread != null) {
-                    mSipThread.interrupt();
-                    mSipThread = null;
-                }
-                if (msg.obj.toString().contains("408")) {//超时
-                    Log.e(TAG, "SIP注册超时");
-                    sipMessageCounts = REGISTERFAIL;
-                    EventBus.getDefault().post(new MessageEvent(REGISTERFAIL, EVENT_SIP_INTERNETPING));
-                    sipRegister();
-                }
-            } else {//注册失败
-                Log.e(TAG, "SIP注册失败");
-                sipMessageCounts = REGISTERFAIL;
-                EventBus.getDefault().post(new MessageEvent(REGISTERFAIL, EVENT_SIP_INTERNETPING));
-                if (mSipThread != null) {
-                    mSipThread.interrupt();
-                    mSipThread = null;
-                }
-                sipRegister();
-            }
-            failUiRefreshSip();
-
-            if (msg.obj.toString().contains("autocall")) {
-                VvsipCall pCall = null;
-//                LogUtil.e(SipInfoTag, "onClick1");
-                for (VvsipCall _pCall : mVvsipCalls) {
-                    if (_pCall.cid > 0)
-//                        LogUtil.e(SipInfoTag, "state#" + _pCall.mState);
-                        if (_pCall.cid > 0 && _pCall.mState <= 2) {
-                            pCall = _pCall;
-                            break;
-                        }
-                }
-//                LogUtil.e(SipInfoTag, "onClick2");
-                if (pCall == null)
-                    return;
-//                LogUtil.e(SipInfoTag, "onClick3#" + pCall.mState);
-                IVvsipService _service = VvsipService.getService();
-                if (_service == null)
-                    return;
-                VvsipTask _vvsipTask = _service.getVvsipTask();
-                if (_vvsipTask == null)
-                    return;
-                pCall.stop();
-                _service.setSpeakerModeOff();
-            }
-        }
-    };
-
-    /**
-     * ====================Sip注册======================
-     */
-    private Thread mSipThread;
-
-    private static class SipThread extends Thread {
-        WeakReference<WatchHomeActivity> mThreadCallingDoorActivity;
-
-        public SipThread(WatchHomeActivity activity) {
-            mThreadCallingDoorActivity = new WeakReference<WatchHomeActivity>(
-                    activity);
-        }
-
-
-        @Override
-        public void run() {
-            super.run();
-            if (mThreadCallingDoorActivity == null)
-                return;
-            if (mThreadCallingDoorActivity.get() != null) {
-                VvsipService sipService = VvsipService.getService();
-                try {
-                    if (sipService != null && !SipHelperUtil2.getInstance(contexts).sipinfo.contains("200 OK") /*&& ethernetS*/) {//注册正在进行中
-                        sipMessageCounts = REGISTERING;
-                        EventBus.getDefault().post(new MessageEvent(REGISTERING, EVENT_SIP_INTERNETPING));
-                        sipService.register(SIP_IP + SIP_IP_PORT,
-                               SIP_ID, SIP_PASS_WORD);
-//                    LogUtil.i(SipInfoTag, "Sip地址" + Constants.SIP_IP + SIP_IP_END + "\nSip账号" + Constants.SIP_ID + "\nSip密码" + Constants.SIP_PASS_WORD);
-                        handleCount++;
-//                        LogUtil.d(SipInfoTag, "Sip第-----" + (handleCount + 1) + "-------次註冊");
-                        Log.e(SipInfoTag, "以太网连接,SIP UI状态刷新为注册中");
-                    } else if (sipService != null && SipHelperUtil2.getInstance(contexts).sipinfo.contains("200 OK")) {
-                        Log.e(SipInfoTag, "以太网连接,SIP UI状态刷新为注册完成");
-                        sipMessageCounts = REGISTERCOM;
-                        EventBus.getDefault().post(new MessageEvent(REGISTERCOM, EVENT_SIP_INTERNETPING));
-                    }
-                } catch (NullPointerException e) {
-                    e.printStackTrace();
-
-
-                }
-
-            }
-        }
-    }
-
-    private void sipRegister() {
-        synchronized (this) {
-            mSipThread = new SipThread((WatchHomeActivity) contexts);
-            if (handleCount < 3) {
-                if (mCountDownAutoTimer == null) {
-                    mCountDownAutoTimer = new CountDownTimer(10000, 1000) {
-                        @Override
-                        public void onTick(long l) {
-//                            LogUtil.d(SipInfoTag, "已經註冊第" + (handleCount + 1) + "次:" + l / 1000 + "秒后重啟註冊");
-                        }
-
-                        @Override
-                        public void onFinish() {
-                            handleCount = 0;
-                            if (mSipThread != null) {
-                                mSipThread.start();
-                            }
-                            if (mCountDownAutoTimer != null) {
-                                mCountDownAutoTimer.cancel();
-                                mCountDownAutoTimer = null;
-                            }
-                        }
-
-                    };
-                    mCountDownAutoTimer.start();
-                }
-                return;
-            } else {
-                if (mCountDownAutoTimer != null) {
-                    mCountDownAutoTimer.cancel();
-                    mCountDownAutoTimer = null;
-                }
-            }
-            if (handleCount == 0) {
-                mSipThread.start();
-//                LogUtil.d(SipInfoTag, "Sip第一次註冊");
-            }
-        }
-    }
-
-    /**
-     * UI刷新:SIP失败
-     */
-    public void failUiRefreshSip() {
-//        if (!ethernetS) {
-//            sipMessageCounts = REGISTERFAIL;
-//            EventBus.getDefault().post(new MessageEvent(REGISTERFAIL, EVENT_SIP_INTERNETPING));
-//            if (mSipThread != null) {
-//                mSipThread.interrupt();
-//                mSipThread = null;
-//            }
-////            LogUtil.e(SipInfoTag, "以太网断开,SIP UI状态刷新为失败");
-//        }
-    }
-
-    public void setmSipThread(Thread mSipThread) {
-        this.mSipThread = mSipThread;
-    }
-
-    public Thread getmSipThread() {
-        return mSipThread;
-    }
-
-    /**
-     * 开始通话
-     */
-    public void startCall(String sipUseName, String mac) {
-        IVvsipService sipService = VvsipService.getService();
-        if (sipService == null) return;
-        //----------------------------------------------携带拨打对应床头机Mac地址--------------------------------------------------//
-        sipService.initiateOutgoingCall(sipUseName, mac);
-    }
-
-    /**
-     * 结束通话
-     */
-    public void endCall() {
-        VvsipCall call = null;
-        for (VvsipCall pCall : mVvsipCalls) {
-            if (pCall.cid > 0 && pCall.mState <= 2) {
-                call = pCall;
-                break;
-            }
-        }
-        Log.e("xxx","call"+call);
-        if (call == null) return;
-        IVvsipService sipService = VvsipService.getService();
-        Log.e("xxx","sipService"+sipService);
-        if (sipService == null) return;
-        VvsipTask sipTask = sipService.getVvsipTask();
-        Log.e("xxx","sipTask"+sipTask);
-        if (sipTask == null) return;
-        VvsipService.getService().mainEndCall(CALLING_ENDING);
-        call.stop();
-        sipService.setSpeakerModeOff();
-        sipService.stopPlayer();
-        sipService.setAudioNormalMode();
-
-    }
-
-    /**
-     * 添加一个电话呼叫对象
-     *
-     * @param call
-     */
-    public void addCallObject(final VvsipCall call) {
-        ((Activity) contexts).runOnUiThread(new Runnable() {
-            public void run() {
-                try {
-                    if (call == null) {
-                        return;
-                    }
-
-                    if (mVvsipCalls == null)
-                        return;
-                    mVvsipCalls.add(call);
-
-                    if (Build.VERSION.SDK_INT >= 5) {
-                        ((Activity) contexts).getWindow().addFlags( // WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
-                                // |
-                                WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
-                                        | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
-                                        | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-                    }
-
-                } catch (Exception e) {
-//                    LogUtil.e(SipInfoTag, "onNewVvsipCallEvent: " + e);
-                }
-            }
-        });
-    }
-
-    /**
-     * 移除一个电话呼叫对象
-     *
-     * @param call
-     */
-    public void removeCallObject(final VvsipCall call) {
-        ((Activity) contexts).runOnUiThread(new Runnable() {
-            public void run() {
-                try {
-                    if (call == null) {
-                        return;
-                    }
-
-                    // 4 crash detected here for 4.0.9 with mVvsipCalls=NULL
-                    if (mVvsipCalls == null)
-                        return;
-                    mVvsipCalls.remove(call);
-
-                    if (mVvsipCalls.size() == 0) {
-                        if (Build.VERSION.SDK_INT >= 5) {
-                            ((Activity) contexts).getWindow()
-                                    .clearFlags( // WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
-                                            // |
-                                            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
-                                                    | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
-                                                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-                        }
-                    }
-                } catch (Exception e) {
-//                    Log.e(SipInfoTag, "onRemoveVvsipCallEvent: " + e);
-                }
-            }
-        });
-    }
-
-    /**
-     * 自动接电话
-     */
-    public void autoTalking() {
-        if (mVvsipCalls == null) {
-            mVvsipCalls = new ArrayList<VvsipCall>();
-        }
-        for (VvsipCall _pCall : mVvsipCalls) {
-            if (_pCall.cid > 0 && _pCall.mState < 2 && _pCall.mIncomingCall) {
-                // ANSWER EXISTING CALL
-                int i = _pCall.answer(200, 1);
-//                LogUtil.d(SipInfoTag, "ANSWER EXISTING CALL");
-                IVvsipService _service = VvsipService.getService();
-                if (_service != null) {
-                    if (i >= 0) {
-                        _service.stopPlayer();
-                        _service.setSpeakerModeOff();
-                        _service.setAudioInCallMode();
-                    }
-                }
-                break;
-            }
-        }
-    }
-
-
-    /**
-     * 【返回值说明】0:成功,其他:失败
-     *
-     * 取值范围 0.0--1.0
-     */
-//    public int setSipVolume(float capturegain, float playbackgain) {
-//        VvsipService service = VvsipService.getService();
-//        if (null != service) {
-//            return service.setSipVolume(capturegain, playbackgain);
-//        }
-//
-//        return -1;
-//    }
-
-
-    public static boolean isServiceRunning(Context mContext, String className) {
-
-        boolean isRunning = false;
-        ActivityManager activityManager = (ActivityManager) mContext
-                .getSystemService(Context.ACTIVITY_SERVICE);
-        List<ActivityManager.RunningServiceInfo> serviceList = activityManager
-                .getRunningServices(30);
-
-        if (!(serviceList.size() > 0)) {
-            return false;
-        }
-
-        for (int i = 0; i < serviceList.size(); i++) {
-            if (serviceList.get(i).service.getClassName().equals(className) == true) {
-                isRunning = true;
-                break;
-            }
-        }
-        return isRunning;
-    }
-
-    /**
-     * #############################
-     * <p>
-     * Sip启动服务.
-     * <p>
-     * #############################
-     */
-    private static Handler sipServiceStartHandler = null;
-    private static Runnable sipServiceStartRunnable = null;
-    private static ServiceConnection sipServiceConnection;
-
-    public static Runnable getSipServiceStartRunnable() {
-        return sipServiceStartRunnable;
-    }
-
-    public static Handler getSipServiceStartHandler() {
-        return sipServiceStartHandler;
-    }
-
-    public static ServiceConnection getSipServiceConnection() {
-        return sipServiceConnection;
-    }
-
-    public static void setSipServiceConnection(ServiceConnection sipServiceConnections) {
-        sipServiceConnection = sipServiceConnections;
-    }
-
-    /**
-     * 启动服务
-     */
-    public static Boolean isRegister = false;//是否注册
-
-    public void sipStartService(String sip_ip, String sip_id, String sip_password) {
-        SIP_IP = sip_ip;
-        SIP_ID = sip_id;
-        SIP_PASS_WORD = sip_password;
-
-
-        sipServiceStartHandler = new Handler();
-
-        sipServiceStartRunnable = new Runnable() {
-            public void run() {
-
-                Intent intent = new Intent(contexts.getApplicationContext(), VvsipService.class);
-                contexts.startService(intent);
-
-                sipServiceConnection = new ServiceConnection() {
-                    public void onServiceConnected(ComponentName name, IBinder service) {
-                        IVvsipService sipservice = ((VvsipServiceBinder) service).getService();
-                        if (contexts instanceof IVvsipServiceListener) {
-                            sipservice.addListener((IVvsipServiceListener) contexts);
-//                            LogUtil.i(SipInfoTag, "Connected!");
-                            SipHelperUtil2.getInstance(contexts).obtainSipInfo();//Sip信息获取
-                        }
-                    }
-
-                    public void onServiceDisconnected(ComponentName name) {
-//                        LogUtil.i(SipInfoTag, "Disconnected!");
-                    }
-                };
-                if (!SipHelperUtil2.isServiceRunning(contexts, "com.vvsip.ansip.VvsipService")) {
-                    isRegister = contexts.bindService(intent, sipServiceConnection, Context.BIND_AUTO_CREATE);
-                }
-            }
-        };
-
-        sipServiceStartHandler.postDelayed(sipServiceStartRunnable, 0);
-    }
-
-    /**
-     * 用来解析错误代码
-     */
-    public static String analyseErrorCode(String errorCode) {
-        switch (errorCode) {
-            case "200":
-                return "成功";
-            case "408":
-                return "请求超时";
-            case "400":
-                return "服务器不支持请求的语法";
-            case "401":
-                return "未授权";
-            case "403":
-                return "服务器禁止请求";
-            case "404":
-                return "服务器找不到";
-            default:
-                return "未知错误";
-        }
-    }
-
-    //======================Sip回调接口=====================
-    private SipCallBack mSipCallBackI;
-
-    public void setSipCallBack(SipCallBack mSipCallBackI) {
-        this.mSipCallBackI = mSipCallBackI;
-    }
-
-    public SipCallBack getmSipCallBack() {
-        return mSipCallBackI;
-    }
-
-    //======================以太网和wifi状态接口=====================
-    private EthernetWifiCallBack mEthernetWifiCallBackI;
-
-    public void setEthernetWifiCallBack(EthernetWifiCallBack mEthernetWifiCallBackI) {
-        this.mEthernetWifiCallBackI = mEthernetWifiCallBackI;
-    }
-
-    public EthernetWifiCallBack getmEthernetWifiCallBackI() {
-        return mEthernetWifiCallBackI;
-    }
-
-    private static boolean ethernetS = false;//获取以太网状态
-    private static boolean wifiS = false;//获取wifi状态
-
-    @Override
-    public boolean ethernetStatus(boolean status) {
-        ethernetS = status;
-        return status;
-    }
-
-    @Override
-    public boolean wifiStatus(boolean status) {
-        wifiS = status;
-        return status;
-    }
-}

+ 0 - 446
home/src/main/code/com/wdkl/ncs/android/component/home/activity/RTCVoipAudioActivity.java

@@ -1,446 +0,0 @@
-package com.wdkl.ncs.android.component.home.activity;
-
-import android.app.Activity;
-import android.content.DialogInterface;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.SystemClock;
-import android.support.v7.app.AlertDialog;
-import android.util.Log;
-import android.view.View;
-import android.view.WindowManager;
-import android.widget.Chronometer;
-import android.widget.TextView;
-
-import com.google.gson.FieldNamingPolicy;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.starrtc.demo.database.CoreDB;
-import com.starrtc.demo.database.HistoryBean;
-import com.starrtc.demo.demo.BaseActivity;
-import com.starrtc.demo.demo.MLOC;
-import com.starrtc.demo.utils.AEvent;
-import com.starrtc.demo.utils.IEventListener;
-import com.starrtc.starrtcsdk.api.XHClient;
-import com.starrtc.starrtcsdk.api.XHConstants;
-import com.starrtc.starrtcsdk.api.XHVoipManager;
-import com.starrtc.starrtcsdk.apiInterface.IXHResultCallback;
-import com.starrtc.starrtcsdk.core.audio.StarRTCAudioManager;
-import com.starrtc.starrtcsdk.core.pusher.XHCameraRecorder;
-import com.wdkl.ncs.android.component.home.R;
-import com.wdkl.ncs.android.component.home.util.MediaPlayHelper;
-import com.wdkl.ncs.android.component.nursehome.common.Constants;
-import com.wdkl.ncs.android.lib.utils.ExtendMethodsKt;
-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.VoiceUtil;
-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 org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-import org.greenrobot.eventbus.ThreadMode;
-
-import java.text.SimpleDateFormat;
-import java.util.Set;
-
-public class RTCVoipAudioActivity extends Activity implements View.OnClickListener, IEventListener {
-    private String TAG = RTCVoipAudioActivity.class.getSimpleName();
-
-    private XHVoipManager voipManager;
-    private Chronometer timer;
-
-    private TextView room_number_tv,bao_mother_name_tv;
-    private TextView voiceStatus;
-
-    public static String ACTION = "ACTION";
-    public static String RING = "RING";
-    public static String CALLING = "CALLING";
-    public static String CALL = "CALL";
-    private String action;
-    private String targetId;
-    private TextView voice_time_tv;
-
-    private StarRTCAudioManager starRTCAudioManager;
-
-    public InteractionVO interactionVO = new InteractionVO();
-    public TcpModel tcpModel = new TcpModel();
-
-    public static RTCVoipAudioActivity rtcVoipAudioActivity;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
-                WindowManager.LayoutParams.FLAG_FULLSCREEN);
-        setContentView(R.layout.watch_activity_dialing_voice);
-        setFinishOnTouchOutside(false);
-        rtcVoipAudioActivity = this;
-        //todo 设置为通话状态 有其他用户输入时 DeviceChannel设置返回通话中
-        DeviceChannel.calling = true;
-
-        EventBus.getDefault().register(this);
-
-        starRTCAudioManager = StarRTCAudioManager.create(this.getApplicationContext());
-        starRTCAudioManager.start(new StarRTCAudioManager.AudioManagerEvents() {
-            @Override
-            public void onAudioDeviceChanged(StarRTCAudioManager.AudioDevice selectedAudioDevice, Set availableAudioDevices) {
-                MLOC.d("onAudioDeviceChanged ", selectedAudioDevice.name());
-            }
-        });
-
-        voipManager = XHClient.getInstance().getVoipManager();
-        voipManager.setRtcMediaType(XHConstants.XHRtcMediaTypeEnum.STAR_RTC_MEDIA_TYPE_AUDIO_ONLY);
-        voipManager.setRecorder(new XHCameraRecorder());
-        addListener();
-
-        targetId = getIntent().getStringExtra("targetId");
-        Log.e("RTCVoipAudioActivity", "SIP账号" + targetId);
-        tcpModel = (TcpModel) getIntent().getSerializableExtra("TcpModel");
-//        interactionVO = (InteractionVO) getIntent().getSerializableExtra("interactionVO");
-        action = getIntent().getStringExtra(ACTION);
-        timer = (Chronometer) findViewById(R.id.call_duration_tv);
-
-        room_number_tv = (TextView) findViewById(R.id.room_number_tv);
-        bao_mother_name_tv = (TextView) findViewById(R.id.bao_mother_name_tv);
-        voiceStatus = (TextView)findViewById(R.id.voice_status);
-
-//        ((TextView)findViewById(com.starrtc.demo.R.id.targetid_text)).setText(targetId);
-//        ((ImageView)findViewById(com.starrtc.demo.R.id.head_img)).setImageResource(MLOC.getHeadImage(RTCVoipAudioActivity.this,targetId));
-//        findViewById(com.starrtc.demo.R.id.head_bg).setBackgroundColor(ColorUtils.getColor(RTCVoipAudioActivity.this,targetId));
-//        ((CircularCoverView)findViewById(com.starrtc.demo.R.id.head_cover)).setCoverColor(Color.parseColor("#000000"));
-//        int cint = DensityUtils.dip2px(RTCVoipAudioActivity.this,45);
-//        ((CircularCoverView)findViewById(com.starrtc.demo.R.id.head_cover)).setRadians(cint, cint, cint, cint,0);
-
-        findViewById(R.id.hang_up_imagev).setOnClickListener(this);
-//        voice_time_tv =  findViewById(R.id.voice_time_tv);
-//        voice_time_tv.setVisibility(View.GONE);
-
-        if (tcpModel.getType() == TcpType.VOICE) {
-            if (tcpModel.getAction() == TcpAction.VoiceAction.CALL) {
-                InteractionVO interactionVO = new Gson().fromJson(tcpModel.getData().toString(), InteractionVO.class);
-                room_number_tv.setText(interactionVO.getFromFrameFullName());
-                bao_mother_name_tv.setText(interactionVO.getFromMemberName());
-            } else if (tcpModel.getAction() == TcpAction.VoiceAction.SUCCESS) {
-                InteractionVO interactionVO = new Gson().fromJson(tcpModel.getData().toString(), InteractionVO.class);
-                room_number_tv.setText(interactionVO.getToFrameFullName());
-                bao_mother_name_tv.setText(interactionVO.getToMemberName());
-            }
-        }
-
-
-        new Handler().postDelayed(new Runnable() {
-            @Override
-            public void run() {
-
-            }
-        },4000);
-
-
-
-
-        if (action.equals(CALLING)) {
-            showCallingView();
-            MLOC.d("newVoip", "call");
-            voipManager.audioCall(this, targetId, new IXHResultCallback() {
-                @Override
-                public void success(Object data) {
-                    MLOC.d("newVoip", "call success");
-                }
-
-                @Override
-                public void failed(String errMsg) {
-                    MLOC.d("newVoip", "call failed");
-                    stopAndFinish();
-                }
-            });
-        } else if (action.equals(RING)) {
-            MLOC.d("newVoip", "onPickup");
-            onPickup();
-        } else if (action.equals(CALL)) {
-            Log.i(TAG,"等待接听");
-            MediaPlayHelper.getInstance().playResMusic(R.raw.outgoing_call, 0.6f, true);
-        }
-    }
-
-    /**
-     * 直接呼叫对方
-     */
-    public void audioCall() {
-        showCallingView();
-        MLOC.d("newVoip", "call");
-        voipManager.audioCall(this, targetId, new IXHResultCallback() {
-            @Override
-            public void success(Object data) {
-                MLOC.d("newVoip", "call success");
-            }
-
-            @Override
-            public void failed(String errMsg) {
-                MLOC.d("newVoip", "call failed");
-                stopAndFinish();
-            }
-        });
-
-
-    }
-
-
-    private void setupView() {
-        voipManager.setupView(null, null, new IXHResultCallback() {
-            @Override
-            public void success(Object data) {
-                MLOC.d("newVoip", "setupView success");
-
-            }
-
-            @Override
-            public void failed(String errMsg) {
-                MLOC.d("newVoip", "setupView failed");
-                stopAndFinish();
-            }
-        });
-    }
-
-    public void addListener() {
-        AEvent.addListener(AEvent.AEVENT_VOIP_INIT_COMPLETE, this);
-        AEvent.addListener(AEvent.AEVENT_VOIP_REV_BUSY, this);
-        AEvent.addListener(AEvent.AEVENT_VOIP_REV_REFUSED, this);
-        AEvent.addListener(AEvent.AEVENT_VOIP_REV_HANGUP, this);
-        AEvent.addListener(AEvent.AEVENT_VOIP_REV_CONNECT, this);
-        AEvent.addListener(AEvent.AEVENT_VOIP_REV_ERROR, this);
-    }
-
-    public void removeListener() {
-        MLOC.canPickupVoip = true;
-        AEvent.removeListener(AEvent.AEVENT_VOIP_INIT_COMPLETE, this);
-        AEvent.removeListener(AEvent.AEVENT_VOIP_REV_BUSY, this);
-        AEvent.removeListener(AEvent.AEVENT_VOIP_REV_REFUSED, this);
-        AEvent.removeListener(AEvent.AEVENT_VOIP_REV_HANGUP, this);
-        AEvent.removeListener(AEvent.AEVENT_VOIP_REV_CONNECT, this);
-        AEvent.removeListener(AEvent.AEVENT_VOIP_REV_ERROR, this);
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        MLOC.canPickupVoip = false;
-        HistoryBean historyBean = new HistoryBean();
-        historyBean.setType(CoreDB.HISTORY_TYPE_VOIP);
-        historyBean.setLastTime(new SimpleDateFormat("MM-dd HH:mm").format(new java.util.Date()));
-        historyBean.setConversationId(targetId);
-        historyBean.setNewMsgCount(1);
-        MLOC.addHistory(historyBean, true);
-    }
-
-    @Override
-    public void onPause() {
-        super.onPause();
-    }
-
-    @Override
-    public void onRestart() {
-        super.onRestart();
-        addListener();
-    }
-
-    @Override
-    public void onDestroy() {
-        MediaPlayHelper.getInstance().stopMusic();
-        removeListener();
-        //todo 状态设置为未在通话中
-        DeviceChannel.calling = false;
-        EventBus.getDefault().unregister(this);
-        super.onDestroy();
-    }
-
-    @Override
-    public void onBackPressed() {
-        new AlertDialog.Builder(RTCVoipAudioActivity.this).setCancelable(true)
-                .setTitle("是否挂断?")
-                .setNegativeButton("取消", new DialogInterface.OnClickListener() {
-                    @Override
-                    public void onClick(DialogInterface arg0, int arg1) {
-
-                    }
-                }).setPositiveButton("确定", new DialogInterface.OnClickListener() {
-                    @Override
-                    public void onClick(DialogInterface arg0, int arg1) {
-                        timer.stop();
-                        voipManager.hangup(new IXHResultCallback() {
-                            @Override
-                            public void success(Object data) {
-                                stopAndFinish();
-                            }
-
-                            @Override
-                            public void failed(final String errMsg) {
-                                MLOC.d("", "AEVENT_VOIP_ON_STOP errMsg:" + errMsg);
-                                MLOC.showMsg(RTCVoipAudioActivity.this, errMsg);
-                            }
-                        });
-                    }
-                }
-        ).show();
-    }
-
-    @Override
-    public void dispatchEvent(String aEventID, boolean success, final Object eventObj) {
-        //super.dispatchEvent(aEventID, success, eventObj);
-        switch (aEventID) {
-            case AEvent.AEVENT_VOIP_REV_BUSY:
-                MLOC.d("", "对方线路忙");
-                MLOC.showMsg(RTCVoipAudioActivity.this, "对方线路忙");
-                stopAndFinish();
-                break;
-            case AEvent.AEVENT_VOIP_REV_REFUSED:
-                MLOC.d("", "对方拒绝通话");
-                MLOC.showMsg(RTCVoipAudioActivity.this, "对方拒绝通话");
-                stopAndFinish();
-                break;
-            case AEvent.AEVENT_VOIP_REV_HANGUP:
-                MLOC.d("", "对方已挂断");
-                MLOC.showMsg(RTCVoipAudioActivity.this, "对方已挂断");
-                timer.stop();
-                stopAndFinish();
-                break;
-            case AEvent.AEVENT_VOIP_REV_CONNECT:
-                MLOC.d("", "对方允许通话");
-                showTalkingView();
-                break;
-            case AEvent.AEVENT_VOIP_REV_ERROR:
-                MLOC.d("", (String) eventObj);
-                stopAndFinish();
-                break;
-        }
-    }
-
-    private void showCallingView() {
-        MLOC.d("", "showCallingView");
-//        findViewById(com.starrtc.demo.R.id.calling_txt).setVisibility(View.VISIBLE);
-//        findViewById(R.id.voice_time_tv).setVisibility(View.INVISIBLE);
-        timer.setVisibility(View.VISIBLE);
-    }
-
-    private void showTalkingView() {
-        MediaPlayHelper.getInstance().stopMusic();
-        MLOC.d("", "showTalkingView");
-//        findViewById(com.starrtc.demo.R.id.calling_txt).setVisibility(View.INVISIBLE);
-        findViewById(R.id.call_duration_tv).setVisibility(View.VISIBLE);
-        timer.setBase(SystemClock.elapsedRealtime());
-        timer.start();
-        setupView();
-    }
-
-    private void onPickup() {
-        voipManager.accept(this, targetId, new IXHResultCallback() {
-            @Override
-            public void success(Object data) {
-                MLOC.d("newVoip", "onPickup OK ");
-            }
-
-            @Override
-            public void failed(String errMsg) {
-                MLOC.d("newVoip", "onPickup failed ");
-                stopAndFinish();
-            }
-        });
-        showTalkingView();
-    }
-
-    @Override
-    public void onClick(View v) {
-        if (v.getId() == R.id.hang_up_imagev) {
-            InteractionVO interactionVO = null;
-            if(tcpModel.getData().getClass().getName().equals(String.class.getName())) {
-                 interactionVO = new Gson().fromJson(tcpModel.getData().toString(), InteractionVO.class);
-            }else{
-                interactionVO = (InteractionVO) tcpModel.getData();
-            }
-
-            Log.e(TAG, "tcpModel" + interactionVO.getId());
-            Log.e(TAG, "tcpModel" + tcpModel.toJson());
-//            InteractionVO interactionVO =null;
-//            if(tcpModel.getData() != null){
-//                interactionVO =  new Gson().fromJson(tcpModel.getData().toString(), InteractionVO.class);
-//            }
-            //todo 给服务器发送挂断 tcp
-            if (interactionVO != null) {
-                if (tcpModel.getType() == TcpType.VOICE) {
-                    if (tcpModel.getAction() == TcpAction.VoiceAction.SUCCESS) {
-                        TcpModel voiceUtilTcpModel = VoiceUtil.voiceHandoff(Integer.parseInt(Constants.Companion.getIds()), tcpModel.getToId()
-                                , interactionVO.getId());
-                        TcpClient.getInstance().sendMsg(voiceUtilTcpModel.toJson());
-                    } else if(tcpModel.getAction() == TcpAction.VoiceAction.CALL){
-                        TcpModel voiceUtilTcpModel = VoiceUtil.voiceHandoff(Integer.parseInt(Constants.Companion.getIds()), tcpModel.getFromId()
-                                , interactionVO.getId());
-                        TcpClient.getInstance().sendMsg(voiceUtilTcpModel.toJson());
-                    }
-                }
-            }
-            voipManager.hangup(new IXHResultCallback() {
-                @Override
-                public void success(Object data) {
-                    stopAndFinish();
-                }
-
-                @Override
-                public void failed(String errMsg) {
-                    stopAndFinish();
-                }
-            });
-        }
-    }
-
-    private void stopAndFinish() {
-        MediaPlayHelper.getInstance().stopMusic();
-        if (starRTCAudioManager != null) {
-            starRTCAudioManager.stop();
-        }
-        RTCVoipAudioActivity.this.finish();
-    }
-    public void Finish() {
-        if (starRTCAudioManager != null) {
-            starRTCAudioManager.stop();
-        }
-        RTCVoipAudioActivity.this.finish();
-    }
-
-    @Subscribe(threadMode = ThreadMode.MAIN)
-    public void onMoonEvent(MessageEvent messageEvent) {
-        if (messageEvent.getTag() == 2){
-            TcpModel tcpModel = (TcpModel) messageEvent.getMessage();
-
-            if (tcpModel.getAction() == TcpAction.VoiceAction.ACCEPT){
-                MediaPlayHelper.getInstance().stopMusic();
-                Log.i(TAG,"对方接听电话啦");
-                //data 是 InteractionVO
-//                Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create();
-//                InteractionVO interactionVO = gson.fromJson(tcpModel.getData().toString(), InteractionVO.class);
-
-                audioCall();
-
-            } else if (tcpModel.getAction() == TcpAction.VoiceAction.REJECT){
-                //voiceStatus.setText("对方拒绝接听");
-                ExtendMethodsKt.showMessage("对方拒绝接听");
-                stopAndFinish();
-            } else if (tcpModel.getAction() == TcpAction.VoiceAction.CALLING){
-                //voiceStatus.setText("对方正在通话");
-                ExtendMethodsKt.showMessage("对方正在通话");
-                stopAndFinish();
-            } else if (tcpModel.getAction() == TcpAction.VoiceAction.FAILED){
-                //voiceStatus.setText("对方拒绝");
-                ExtendMethodsKt.showMessage("呼叫失败,对方可能不在线");
-                stopAndFinish();
-            } else if (tcpModel.getAction() == TcpAction.VoiceAction.CANCEL){
-                //voiceStatus.setText("对方拒绝");
-                ExtendMethodsKt.showMessage("对方取消呼叫");
-                stopAndFinish();
-            }
-        }
-    }
-}

+ 0 - 283
home/src/main/code/com/wdkl/ncs/android/component/home/activity/RTCVoipAudioRingingActivity.java

@@ -1,283 +0,0 @@
-package com.wdkl.ncs.android.component.home.activity;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.CountDownTimer;
-import android.util.Log;
-import android.view.View;
-import android.view.WindowManager;
-import android.widget.TextView;
-
-import com.google.common.base.Strings;
-import com.google.gson.Gson;
-import com.starrtc.demo.database.CoreDB;
-import com.starrtc.demo.database.HistoryBean;
-import com.starrtc.demo.demo.BaseActivity;
-import com.starrtc.demo.demo.MLOC;
-import com.starrtc.demo.utils.AEvent;
-import com.starrtc.demo.utils.IEventListener;
-import com.starrtc.starrtcsdk.api.XHClient;
-import com.starrtc.starrtcsdk.apiInterface.IXHResultCallback;
-import com.wdkl.ncs.android.component.home.R;
-import com.wdkl.ncs.android.component.home.settingconfig.SettingConfig;
-import com.wdkl.ncs.android.component.home.util.MediaPlayHelper;
-import com.wdkl.ncs.android.component.nursehome.common.Constants;
-import com.wdkl.ncs.android.lib.utils.ExtendMethodsKt;
-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.VoiceUtil;
-import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel;
-import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction;
-import com.wdkl.ncs.android.middleware.utils.MessageEvent;
-
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-import org.greenrobot.eventbus.ThreadMode;
-
-import java.text.SimpleDateFormat;
-
-public class RTCVoipAudioRingingActivity extends Activity implements View.OnClickListener, IEventListener {
-    private String TAG = RTCVoipAudioRingingActivity.class.getSimpleName();
-
-
-    private String targetId;
-    private InteractionVO interactionVO = new InteractionVO();
-    private TcpModel tcpModel = new TcpModel();
-    private TextView room_number_tv,bao_mother_name_tv;
-
-    private CountDownTimer countDownTimer;//倒计时控制器
-    private int countdownTime = 15;//默认转接时间
-    private boolean isAnswerOrHangUp = false;//加一个变量防止在最后一秒点击了接听或者挂断 还是会转发出去
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
-                WindowManager.LayoutParams.FLAG_FULLSCREEN);
-        setContentView(R.layout.watch_activity_voice_calls);
-
-        //todo 设置为通话状态 有其他用户输入时 DeviceChannel设置返回通话中
-        DeviceChannel.calling = true;
-
-        addListener();
-        targetId = getIntent().getStringExtra("targetId");
-        tcpModel = (TcpModel) getIntent().getSerializableExtra("TcpModel");
-        room_number_tv = findViewById(R.id.room_number_tv);
-        bao_mother_name_tv = findViewById(R.id.bao_mother_name_tv);
-        interactionVO = new Gson().fromJson(tcpModel.getData().toString(), InteractionVO.class);
-
-        TextView eventText = (TextView) findViewById(R.id.event_text);
-        eventText.setText(interactionVO.getFromFrameFullName());
-        if (Strings.isNullOrEmpty(targetId)) {
-            findViewById(R.id.hang_up_imagev).setVisibility(View.GONE);
-            findViewById(R.id.call_the_voice_imagev).setVisibility(View.GONE);
-        } else {
-            room_number_tv.setText(interactionVO.getFromFrameFullName());
-            bao_mother_name_tv.setText(interactionVO.getFromMemberName());
-            findViewById(R.id.hang_up_imagev).setOnClickListener(this);
-            findViewById(R.id.call_the_voice_imagev).setOnClickListener(this);
-            findViewById(R.id.change_over_image).setOnClickListener(this);
-        }
-//        ((TextView)findViewById(R.id.targetid_text)).setText(targetId);
-//        ((ImageView)findViewById(R.id.head_img)).setImageResource(MLOC.getHeadImage(RTCVoipAudioRingingActivity.this,targetId));
-//        findViewById(R.id.head_bg).setBackgroundColor(ColorUtils.getColor(RTCVoipAudioRingingActivity.this,targetId));
-//        ((CircularCoverView)findViewById(R.id.head_cover)).setCoverColor(Color.parseColor("#000000"));
-//        int cint = DensityUtils.dip2px(RTCVoipAudioRingingActivity.this,45);
-//        ((CircularCoverView)findViewById(R.id.head_cover)).setRadians(cint, cint, cint, cint,0);
-
-        HistoryBean historyBean = new HistoryBean();
-        historyBean.setType(CoreDB.HISTORY_TYPE_VOIP);
-        historyBean.setLastTime(new SimpleDateFormat("MM-dd HH:mm").format(new java.util.Date()));
-        historyBean.setConversationId(targetId);
-        historyBean.setNewMsgCount(1);
-        MLOC.addHistory(historyBean, true);
-
-        initCountDownTimer();
-        //没有护士说明是其他角色 不要转接功能
-        if(!Constants.Companion.getUser_role_name().contains("护士")){
-            findViewById(R.id.change_over_relayout).setVisibility(View.GONE);
-        }else {
-            // 是护士才开启自动转接
-            countDownTimer.start();
-        }
-        MediaPlayHelper.getInstance().playResMusic(R.raw.incoming_call, 1.0f, true);
-        EventBus.getDefault().register(this);
-
-
-    }
-
-    public void addListener() {
-        AEvent.addListener(AEvent.AEVENT_VOIP_REV_HANGUP, this);
-        AEvent.addListener(AEvent.AEVENT_VOIP_REV_ERROR, this);
-    }
-
-    public void removeListener() {
-        AEvent.removeListener(AEvent.AEVENT_VOIP_REV_HANGUP, this);
-        AEvent.removeListener(AEvent.AEVENT_VOIP_REV_ERROR, this);
-    }
-
-    @Override
-    public void dispatchEvent(final String aEventID, boolean success, final Object eventObj) {
-        //super.dispatchEvent(aEventID,success,eventObj);
-        switch (aEventID) {
-            case AEvent.AEVENT_VOIP_REV_HANGUP:
-                MLOC.d("", "对方已挂断");
-                MLOC.showMsg(RTCVoipAudioRingingActivity.this, "对方已挂断");
-                finish();
-                break;
-            case AEvent.AEVENT_VOIP_REV_ERROR:
-                MLOC.showMsg(RTCVoipAudioRingingActivity.this, (String) eventObj);
-                finish();
-                break;
-        }
-    }
-
-    @Override
-    public void onRestart() {
-        super.onRestart();
-        addListener();
-    }
-
-    @Override
-    public void onStop() {
-        super.onStop();
-        //todo 状态设置为未在通话中
-        DeviceChannel.calling = false;
-        removeListener();
-    }
-
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        Log.e(TAG,"onDestroy()");
-        isAnswerOrHangUp = false;
-        if (countDownTimer != null){
-            countDownTimer.cancel();
-        }
-        MediaPlayHelper.getInstance().stopMusic();
-        EventBus.getDefault().unregister(this);
-    }
-
-    @Override
-    public void onClick(View v) {
-        int id = v.getId();
-        if (id == R.id.hang_up_imagev) {
-            isAnswerOrHangUp = true;
-            MediaPlayHelper.getInstance().stopMusic();
-            countDownTimer.cancel();
-            //todo 给服务器发送拒接 tcp
-//            InteractionVO interactionVO = (InteractionVO) tcpModel.getData();
-            InteractionVO interactionVO = new Gson().fromJson(tcpModel.getData().toString(), InteractionVO.class);
-            TcpModel voiceUtilTcpModel = VoiceUtil.voiceReject(Integer.parseInt(Constants.Companion.getIds()), tcpModel.getFromId()
-                    , interactionVO.getId());
-            TcpClient.getInstance().sendMsg(voiceUtilTcpModel.toJson());
-
-            XHClient.getInstance().getVoipManager().refuse(new IXHResultCallback() {
-                @Override
-                public void success(Object data) {
-                    finish();
-                }
-
-                @Override
-                public void failed(String errMsg) {
-                    finish();
-                }
-            });
-        } else if (id == R.id.change_over_image) { //转接给护士主机
-            MediaPlayHelper.getInstance().stopMusic();
-            countDownTimer.cancel();
-            //todo 给服务器发送转接 tcp
-
-            InteractionVO interactionVO = new Gson().fromJson(tcpModel.getData().toString(), InteractionVO.class);
-            TcpModel voiceTransferTcpModel = VoiceUtil.voiceTransfer(Integer.parseInt(Constants.Companion.getIds()), tcpModel.getFromId()
-                    , interactionVO);
-            TcpClient.getInstance().sendMsg(voiceTransferTcpModel.toJson());
-
-            XHClient.getInstance().getVoipManager().refuse(new IXHResultCallback() {
-                @Override
-                public void success(Object data) {
-                    finish();
-                }
-
-                @Override
-                public void failed(String errMsg) {
-                    finish();
-                }
-            });
-
-        } else if (id == R.id.call_the_voice_imagev) {
-            Log.e(TAG,"点击了接听");
-            isAnswerOrHangUp = true;
-            MediaPlayHelper.getInstance().stopMusic();
-            countDownTimer.cancel();
-            //todo 给服务器发送接听 tcp
-//            InteractionVO interactionVO = (InteractionVO) tcpModel.getData();
-            InteractionVO interactionVO = new Gson().fromJson(tcpModel.getData().toString(), InteractionVO.class);
-            TcpModel voiceUtilTcpModel = VoiceUtil.voiceAccept(Integer.parseInt(Constants.Companion.getIds()), tcpModel.getFromId()
-                    , interactionVO.getId());
-            TcpClient.getInstance().sendMsg(voiceUtilTcpModel.toJson());
-
-            Intent intent = new Intent(RTCVoipAudioRingingActivity.this, RTCVoipAudioActivity.class);
-            intent.putExtra("targetId", targetId);
-//            intent.putExtra("interactionVO", interactionVO);
-            intent.putExtra("TcpModel", tcpModel);
-            intent.putExtra(RTCVoipAudioActivity.ACTION, RTCVoipAudioActivity.CALLING);
-            startActivity(intent);
-            finish();
-        }
-    }
-
-    private void initCountDownTimer() {
-
-        countdownTime = SettingConfig.getCountdownTime(this);
-        countDownTimer = new CountDownTimer(countdownTime*1000, 1000) {
-            @Override
-            public void onTick(long l) {
-
-            }
-
-            @Override
-            public void onFinish() {
-                if(isAnswerOrHangUp)return;
-                Log.e(TAG,"时间到 转发了");
-                MediaPlayHelper.getInstance().stopMusic();
-                //todo 给服务器发送转接 tcp
-                InteractionVO interactionVO = new Gson().fromJson(tcpModel.getData().toString(), InteractionVO.class);
-                TcpModel voiceTransferTcpModel = VoiceUtil.voiceTransfer(Integer.parseInt(Constants.Companion.getIds()), tcpModel.getFromId()
-                        , interactionVO);
-                TcpClient.getInstance().sendMsg(voiceTransferTcpModel.toJson());
-
-                XHClient.getInstance().getVoipManager().refuse(new IXHResultCallback() {
-                    @Override
-                    public void success(Object data) {
-                        finish();
-                    }
-
-                    @Override
-                    public void failed(String errMsg) {
-                        finish();
-                    }
-                });
-
-            }
-        };
-
-    }
-
-
-    @Subscribe(threadMode = ThreadMode.MAIN)
-    public void onMoonEvent(MessageEvent messageEvent) {
-        if (messageEvent.getTag() == 2) {
-            TcpModel tcpModel = (TcpModel) messageEvent.getMessage();
-
-            if (tcpModel.getAction() == TcpAction.VoiceAction.CANCEL || tcpModel.getAction() == TcpAction.VoiceAction.HANDOFF) {
-                //voiceStatus.setText("对方拒绝");
-                ExtendMethodsKt.showMessage("通话取消");
-                MediaPlayHelper.getInstance().stopMusic();
-                RTCVoipAudioRingingActivity.this.finish();
-            }
-        }
-    }
-}

+ 0 - 229
home/src/main/code/com/wdkl/ncs/android/component/home/activity/SipVoipAudioActivity.kt

@@ -1,229 +0,0 @@
-package com.wdkl.ncs.android.component.home.activity
-
-import android.app.Activity
-import android.os.Bundle
-import android.os.SystemClock
-import android.support.v7.app.AlertDialog
-import android.util.Log
-import android.view.View
-import android.view.WindowManager
-import com.google.gson.Gson
-import com.vvsip.ansip.IVvsipServiceListener
-import com.wdkl.ncs.android.component.home.R
-import com.wdkl.ncs.android.component.home.SipUtil.SipHelper
-import com.wdkl.ncs.android.component.home.SipUtil.SipHelperUtil
-import com.wdkl.ncs.android.component.home.SipUtil.SipHelperUtil2
-import com.wdkl.ncs.android.component.home.util.MediaPlayHelper
-import com.wdkl.ncs.android.component.nursehome.common.Constants
-import com.wdkl.ncs.android.lib.utils.showMessage
-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.VoiceUtil
-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 kotlinx.android.synthetic.main.activity_sip_voip_audio.*
-import kotlinx.android.synthetic.main.activity_sip_voip_audio.bao_mother_name_tv
-import kotlinx.android.synthetic.main.activity_sip_voip_audio.call_duration_tv
-import kotlinx.android.synthetic.main.activity_sip_voip_audio.hang_up_imagev
-import kotlinx.android.synthetic.main.activity_sip_voip_audio.room_number_tv
-import kotlinx.android.synthetic.main.activity_sip_voip_audio_ringing.*
-import org.greenrobot.eventbus.EventBus
-import org.greenrobot.eventbus.Subscribe
-import org.greenrobot.eventbus.ThreadMode
-
-class SipVoipAudioActivity: Activity(), View.OnClickListener {
-    var TAG = SipVoipAudioActivity::class.java.simpleName
-
-
-    var ACTION = "ACTION"
-    var RING = "RING"
-    var CALLING = "CALLING"
-    var CALL = "CALL"
-    private var action: String? = null
-    private var targetId: String? = null
-    var tcpModel = TcpModel()
-
-
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-//        window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
-//                WindowManager.LayoutParams.FLAG_FULLSCREEN)
-        setContentView(R.layout.activity_sip_voip_audio)
-
-        //todo 设置为通话状态 有其他用户输入时 DeviceChannel设置返回通话中
-        DeviceChannel.calling = true
-        init()
-
-
-        targetId = intent.getStringExtra("targetId")
-        Log.e(TAG, "SIP账号$targetId")
-        tcpModel = intent.getSerializableExtra("TcpModel") as TcpModel
-//        interactionVO = (InteractionVO) getIntent().getSerializableExtra("interactionVO");
-        action = intent.getStringExtra(ACTION)
-           //测试
-//        SipHelperUtil.getInstance(this).getmSipCallBack().startCall(targetId)
-//        SipHelperUtil.getInstance(this).getmSipCallBack().startCall("3288")
-
-
-        MediaPlayHelper.getInstance().playResMusic(R.raw.outgoing_call, 0.6f, true)
-        if (tcpModel.type == TcpType.VOICE) {
-            if (tcpModel.action === TcpAction.VoiceAction.CALL) {
-                val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
-                room_number_tv.text =  interactionVO.fromFrameFullName
-                bao_mother_name_tv.setText(interactionVO.fromMemberName)
-            } else if (tcpModel.action === TcpAction.VoiceAction.SUCCESS) {
-                val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
-                room_number_tv.text =  interactionVO.toFrameFullName
-                bao_mother_name_tv.setText(interactionVO.toMemberName)
-            }
-        }
-
-        if (action == CALLING) {
-            Log.e(TAG,"自己同意 拨打过去。。。")
-            //主动拨打电话
-            SipHelperUtil.getInstance(this).getmSipCallBack().startCall(targetId)
-            call_duration_tv.visibility = View.VISIBLE
-            call_duration_tv.base = SystemClock.elapsedRealtime()
-            call_duration_tv.start()
-        } else if (action == RING) {
-            Log.e(TAG,"接电话。。。")
-            //接听电话
-            SipHelperUtil.getInstance(this).getmSipCallBack().autoTalking()
-        }
-
-
-    }
-
-    override fun onStart() {
-        super.onStart()
-        if(!EventBus.getDefault().isRegistered(this)) {
-            EventBus.getDefault().register(this)
-        }
-    }
-
-
-
-    fun init(){
-        hang_up_imagev.setOnClickListener(this)
-
-
-
-    }
-    override fun onClick(p0: View?) {
-        when(p0?.id){
-          R.id.hang_up_imagev ->{
-              var interactionVO: InteractionVO? = null
-              if (tcpModel.data.javaClass.name == String::class.java.name) {
-                  interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
-              } else {
-                  interactionVO = tcpModel.data as InteractionVO
-              }
-              Log.e(TAG, "tcpModel" + interactionVO!!.id!!)
-              Log.e(TAG, "tcpModel" + tcpModel.toJson())
-              //todo 给服务器发送挂断 tcp
-              if (interactionVO != null) {
-                  if (tcpModel.type == TcpType.VOICE) {
-                      if (tcpModel.action === TcpAction.VoiceAction.SUCCESS) {
-                          val voiceUtilTcpModel = VoiceUtil.voiceHandoff(Integer.parseInt(Constants.ids), tcpModel.toId, interactionVO.id)
-                          TcpClient.getInstance().sendMsg(voiceUtilTcpModel.toJson())
-                      } else if (tcpModel.action === TcpAction.VoiceAction.CALL) {
-                          val voiceUtilTcpModel = VoiceUtil.voiceHandoff(Integer.parseInt(Constants.ids), tcpModel.fromId, interactionVO.id)
-                          TcpClient.getInstance().sendMsg(voiceUtilTcpModel.toJson())
-                      }
-                      SipHelperUtil.getInstance(this).getmSipCallBack().endCall()
-                      finish()
-
-                  }
-
-              }
-
-          }
-
-
-        }
-
-    }
-
-
-
-
-
-
-
-
-    @Subscribe(threadMode = ThreadMode.MAIN)
-   fun onMoonEvent(messageEvent: MessageEvent) {
-        if (messageEvent.tag == 2) {
-            val tcpModel = messageEvent.getMessage() as TcpModel
-
-            if (tcpModel.action === TcpAction.VoiceAction.ACCEPT) {
-                MediaPlayHelper.getInstance().stopMusic()
-                Log.i(TAG, "对方接听电话啦")
-                //data 是 InteractionVO
-                //   Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create();
-                //  InteractionVO interactionVO = gson.fromJson(tcpModel.getData().toString(), InteractionVO.class);
-                MediaPlayHelper.getInstance().stopMusic()
-                call_duration_tv.visibility = View.VISIBLE
-                call_duration_tv.base = SystemClock.elapsedRealtime()
-                call_duration_tv.start()
-                SipHelperUtil.getInstance(this).getmSipCallBack().startCall(targetId)
-            }else if (tcpModel.action  == TcpAction.VoiceAction.HANDOFF) {//对方挂断
-                call_duration_tv.stop()
-                finish()
-            }else if (tcpModel.action === TcpAction.VoiceAction.REJECT) {
-                //voiceStatus.setText("对方拒绝接听");
-                showMessage("对方拒绝接听")
-                MediaPlayHelper.getInstance().stopMusic()
-                finish()
-            } else if (tcpModel.action === TcpAction.VoiceAction.CALLING) {
-                //voiceStatus.setText("对方正在通话");
-                showMessage("对方正在通话")
-                MediaPlayHelper.getInstance().stopMusic()
-                finish()
-            } else if (tcpModel.action === TcpAction.VoiceAction.FAILED) {
-                //voiceStatus.setText("对方拒绝");
-                showMessage("呼叫失败,对方可能不在线")
-                MediaPlayHelper.getInstance().stopMusic()
-                finish()
-            }
-        }
-    }
-
-
-
-
-
-
-
-
-    override fun onBackPressed(){
-        AlertDialog.Builder(this).setCancelable(true)
-                .setTitle("是否挂断?")
-                .setNegativeButton("取消") { arg0, arg1 -> }.setPositiveButton("确定"
-                ) { arg0, arg1 ->
-                    //                    timer.stop()
-//                    voipManager.hangup(object : IXHResultCallback {
-//                        override fun success(data: Any) {
-////                            stopAndFinish()
-//                        }
-//
-//                        override fun failed(errMsg: String) {
-////                            MLOC.d("", "AEVENT_VOIP_ON_STOP errMsg:$errMsg")
-////                            MLOC.showMsg(this@SipVoipAudioActivity, errMsg)
-//                        }
-//                    })
-                }.show()
-    }
-
-    override fun onDestroy() {
-        super.onDestroy()
-        //todo 状态设置为未在通话中
-        DeviceChannel.calling = false
-        MediaPlayHelper.getInstance().stopMusic()
-        EventBus.getDefault().unregister(this)
-    }
-
-}

+ 0 - 182
home/src/main/code/com/wdkl/ncs/android/component/home/activity/SipVoipAudioRingingActivity.kt

@@ -1,182 +0,0 @@
-package com.wdkl.ncs.android.component.home.activity
-
-import android.app.Activity
-import android.content.Intent
-import android.graphics.Color
-import android.os.Bundle
-import android.os.CountDownTimer
-import android.util.Log
-import android.view.View
-import android.view.WindowManager
-import com.google.gson.Gson
-import com.wdkl.ncs.android.component.home.R
-import com.wdkl.ncs.android.component.home.settingconfig.SettingConfig
-import com.wdkl.ncs.android.component.home.util.MediaPlayHelper
-import com.wdkl.ncs.android.component.nursehome.common.Constants
-import com.wdkl.ncs.android.lib.utils.AppTool
-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.VoiceUtil
-import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
-import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
-import com.wdkl.ncs.android.middleware.utils.MessageEvent
-import kotlinx.android.synthetic.main.activity_sip_voip_audio_ringing.*
-import org.greenrobot.eventbus.EventBus
-import org.greenrobot.eventbus.Subscribe
-import org.greenrobot.eventbus.ThreadMode
-
-class SipVoipAudioRingingActivity : Activity(), View.OnClickListener {
-    var TAG = SipVoipAudioRingingActivity::class.java.simpleName
-
-    private var targetId: String? = null
-    private var interactionVO = InteractionVO()
-    private var tcpModel = TcpModel()
-
-    private var countDownTimer: CountDownTimer? = null//倒计时控制器
-    private var countdownTime = 15//默认转接时间
-    private var isAnswerOrHangUp = false//加一个变量防止在最后一秒点击了接听或者挂断 还是会转发出去
-
-
-
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-//        window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
-//                WindowManager.LayoutParams.FLAG_FULLSCREEN)
-        setContentView(R.layout.activity_sip_voip_audio_ringing)
-        //todo 设置为通话状态 有其他用户输入时 DeviceChannel设置返回通话中
-        DeviceChannel.calling = true
-
-        targetId = intent.getStringExtra("targetId")
-        tcpModel = intent.getSerializableExtra("TcpModel") as TcpModel
-        interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
-        init()
-
-        initCountDownTimer()
-        //没有护士说明是其他角色 不要转接功能
-        if (!Constants.user_role_name!!.contains("护士")) {
-            change_over_relayout.setVisibility(View.GONE)
-        } else {
-            // 是护士才开启自动转接
-            countDownTimer?.start()
-        }
-        MediaPlayHelper.getInstance().playResMusic(R.raw.incoming_call, 1.0f, true)
-    }
-
-    fun init(){
-        room_number_tv.text =  interactionVO.fromFrameFullName
-        bao_mother_name_tv.text = interactionVO.getFromMemberName()
-
-        change_over_relayout.setOnClickListener(this)
-        hang_up_imagev.setOnClickListener(this)
-        call_the_voice_imagev.setOnClickListener(this)
-    }
-
-    override fun onStart() {
-        super.onStart()
-        if(!EventBus.getDefault().isRegistered(this)) {
-            EventBus.getDefault().register(this)
-        }
-    }
-
-
-    override fun onClick(p0: View?) {
-        when(p0?.id){
-            R.id.change_over_relayout ->{
-                MediaPlayHelper.getInstance().stopMusic()
-                countDownTimer?.cancel()
-                //todo 给服务器发送转接 tcp
-                val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
-                val voiceTransferTcpModel = VoiceUtil.voiceTransfer(Integer.parseInt(Constants.ids), tcpModel.fromId, interactionVO)
-                TcpClient.getInstance().sendMsg(voiceTransferTcpModel.toJson())
-                finish()
-            }
-            R.id.hang_up_imagev ->{
-                isAnswerOrHangUp = true
-                MediaPlayHelper.getInstance().stopMusic()
-                countDownTimer?.cancel()
-                //todo 给服务器发送拒接 tcp
-//            InteractionVO interactionVO = (InteractionVO) tcpModel.getData();
-                val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
-                val voiceUtilTcpModel = VoiceUtil.voiceReject(Integer.parseInt(Constants.ids), tcpModel.fromId, interactionVO.id)
-                TcpClient.getInstance().sendMsg(voiceUtilTcpModel.toJson())
-                 finish()
-            }
-            R.id.call_the_voice_imagev ->{
-                isAnswerOrHangUp = true
-                MediaPlayHelper.getInstance().stopMusic()
-                countDownTimer?.cancel()
-                //todo 给服务器发送接听 tcp
-//            InteractionVO interactionVO = (InteractionVO) tcpModel.getData();
-                val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
-                val voiceUtilTcpModel = VoiceUtil.voiceAccept(Integer.parseInt(Constants.ids), tcpModel.fromId, interactionVO.id)
-                TcpClient.getInstance().sendMsg(voiceUtilTcpModel.toJson())
-
-                val intent = Intent(this, SipVoipAudioActivity::class.java)
-                intent.putExtra("targetId", targetId)
-//            intent.putExtra("interactionVO", interactionVO);
-                intent.putExtra("TcpModel", tcpModel)
-                intent.putExtra(SipVoipAudioActivity().ACTION, SipVoipAudioActivity().CALLING)
-                startActivity(intent)
-                finish()
-
-            }
-
-        }
-
-    }
-
-    private fun initCountDownTimer() {
-
-        countdownTime = SettingConfig.getCountdownTime(this)
-        countDownTimer = object : CountDownTimer((countdownTime * 1000).toLong(), 1000) {
-            override fun onTick(l: Long) {
-
-            }
-
-            override fun onFinish() {
-                if (isAnswerOrHangUp) return
-                Log.e(TAG, "时间到 转发了")
-                MediaPlayHelper.getInstance().stopMusic()
-                //todo 给服务器发送转接 tcp
-                val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
-                val voiceTransferTcpModel = VoiceUtil.voiceTransfer(Integer.parseInt(Constants.ids), tcpModel.fromId, interactionVO)
-                TcpClient.getInstance().sendMsg(voiceTransferTcpModel.toJson())
-                 finish()
-            }
-        }
-
-    }
-
-    override fun onStop() {
-        super.onStop()
-
-    }
-
-
-    @Subscribe(threadMode = ThreadMode.MAIN)
-    fun onMoonEvent(messageEvent: MessageEvent) {
-        if (messageEvent.tag == 2) {
-            val tcpModel = messageEvent.getMessage() as TcpModel?
-            if (tcpModel!!.action === TcpAction.VoiceAction.CANCEL || tcpModel!!.action === TcpAction.VoiceAction.HANDOFF) {
-                //对方取消;
-                countDownTimer?.cancel()
-                MediaPlayHelper.getInstance().stopMusic()
-                finish()
-            }
-        }
-    }
-
-
-
-
-    override fun onDestroy() {
-        super.onDestroy()
-        isAnswerOrHangUp = false
-        if (countDownTimer != null) {
-            countDownTimer?.cancel()
-        }
-        MediaPlayHelper.getInstance().stopMusic()
-        EventBus.getDefault().unregister(this)
-    }
-}

+ 4 - 4
home/src/main/code/com/wdkl/ncs/android/component/home/activity/WatchEventDetailActivity.kt

@@ -153,7 +153,7 @@ class WatchEventDetailActivity: BaseActivity<WatchHomeActivityPresenter, WatchAc
 
             if (tcpModel?.type == TcpType.IM){
                 event_text.setText("语音留言")
-                event_status_img.setImageResource(com.starrtc.demo.R.drawable.icon_hd_live)
+                event_status_img.setImageResource(R.drawable.icon_hd_live)
                 if (interactionVO?.actionEnd != null) {
                     event_end_text.setText(TimeTransition().stampToDate(interactionVO!!.actionEnd*1000))
                     //event_status_img.isEnabled = false
@@ -167,7 +167,7 @@ class WatchEventDetailActivity: BaseActivity<WatchHomeActivityPresenter, WatchAc
                 if (interactionVO?.actionEnd != null) {
                     event_end_text.setText(TimeTransition().stampToDate(interactionVO!!.actionEnd*1000))
                     event_status_img.isEnabled = false
-                    event_status_img.setImageResource(com.starrtc.demo.R.drawable.icon_switch_on)
+                    event_status_img.setImageResource(R.drawable.icon_switch_on)
                 }
             }else {
                 call_out_linlyout.visibility = View.GONE
@@ -217,10 +217,10 @@ class WatchEventDetailActivity: BaseActivity<WatchHomeActivityPresenter, WatchAc
                     val responseInteractionVO = Gson().fromJson<InteractionVO>(resTcpModel.getData().toString(), InteractionVO::class.java)
 
                     if (tcpModel?.type == TcpType.IM){
-                        event_status_img.setImageResource(com.starrtc.demo.R.drawable.icon_hd_live_item)
+                        event_status_img.setImageResource(R.drawable.icon_hd_live_item)
                         Toast.makeText(this, "已播放", Toast.LENGTH_SHORT)
                     } else if (tcpModel?.type == TcpType.EVENT){
-                        event_status_img.setImageResource(com.starrtc.demo.R.drawable.icon_switch_on)
+                        event_status_img.setImageResource(R.drawable.icon_switch_on)
                         Toast.makeText(this, "已响应", Toast.LENGTH_SHORT)
                     }
 

+ 3 - 71
home/src/main/code/com/wdkl/ncs/android/component/home/activity/WatchHomeActivity.kt

@@ -14,8 +14,6 @@ import android.view.View
 import com.enation.javashop.android.jrouter.external.annotation.Router
 import com.enation.javashop.net.engine.model.NetState
 import com.google.gson.Gson
-import com.vvsip.ansip.IVvsipServiceListener
-import com.vvsip.ansip.VvsipCall
 import com.wdkl.core.consts.Urls
 import com.wdkl.core.socket.IUserState
 import com.wdkl.core.socket.SocketManager
@@ -23,10 +21,6 @@ import com.wdkl.core.voip.VoipEvent
 import com.wdkl.ncs.android.component.home.BuildConfig
 import com.wdkl.ncs.android.component.home.R
 import com.wdkl.ncs.android.component.home.SOSEmergencyCallActivity
-import com.wdkl.ncs.android.component.home.SipUtil.SipCallBack
-import com.wdkl.ncs.android.component.home.SipUtil.SipHelper
-import com.wdkl.ncs.android.component.home.SipUtil.SipHelperUtil
-import com.wdkl.ncs.android.component.home.SipUtil.SipHelperUtil2
 import com.wdkl.ncs.android.component.home.broadcast.BatteryBroadcastReceiver
 import com.wdkl.ncs.android.component.home.databinding.WatchActivityHomeBinding
 import com.wdkl.ncs.android.component.home.launch.HomeLaunch
@@ -61,8 +55,7 @@ import kotlin.collections.ArrayList
 import kotlin.math.log
 
 @Router(path = "/watch/home")
-class WatchHomeActivity : BaseActivity<WatchHomeActivityPresenter, WatchActivityHomeBinding>(), WatchHomeActivityContract.View, View.OnClickListener, View.OnLongClickListener,
-        SipCallBack , IVvsipServiceListener, IUserState {
+class WatchHomeActivity : BaseActivity<WatchHomeActivityPresenter, WatchActivityHomeBinding>(), WatchHomeActivityContract.View, View.OnClickListener, View.OnLongClickListener,IUserState {
 
 
     var TAG = WatchHomeActivity::class.java.getSimpleName()
@@ -241,59 +234,6 @@ class WatchHomeActivity : BaseActivity<WatchHomeActivityPresenter, WatchActivity
 
     override fun networkMonitor(state: NetState) {
     }
-
-    private fun initSip() {
-
-
-        //=============================================Sip启动服务===================================//
-        SipHelperUtil.getInstance(this).sipStartService(Constants.sip_ip,Constants.sip_id,Constants.sip_password)
-        //=============================================SIP状态回调===================================//
-        SipHelperUtil.getInstance(this).setSipCallBack(this)
-        //=============================================SIP服务监听===================================//
-        SipHelperUtil.getInstance(this).obtainSipInfo()
-
-//        SipHelper.getInstance().sipStartService()
-//        SipHelper.getInstance().initSip(this, Constants.sip_ip,Constants.sip_id,Constants.sip_password)
-//        SipHelper.getInstance().setSipCallBack(this)
-//        SipHelper.getInstance().setSipListner(this)
-    }
-
-
-    /**
-     * sip开始通话    ------------------sip回调操作----------------------
-     */
-    override fun startCall(sipAddress: String?) {
-        SipHelperUtil.getInstance(this).startCall(sipAddress)
-    }
-
-    /**
-     * sip自动接听
-     */
-    override fun autoTalking() {
-        SipHelperUtil.getInstance(this).autoTalking()
-    }
-
-    /**
-     * sip结束通话
-     */
-    override fun endCall() {
-        SipHelperUtil.getInstance(this).endCall()
-    }
-
-    override fun onNewVvsipCallEvent(call: VvsipCall?) {
-        SipHelperUtil.getInstance(this).addCallObject(call)
-    }
-
-    override fun onRemoveVvsipCallEvent(call: VvsipCall?) {
-        SipHelperUtil.getInstance(this).removeCallObject(call)
-    }
-
-    override fun onStatusVvsipCallEvent(call: VvsipCall?) {
-    }
-
-    override fun onRegistrationEvent(rid: Int, remote_uri: String?, code: Int, reason: String?) {
-    }
-
     /**
      * 监听
      */
@@ -357,17 +297,9 @@ class WatchHomeActivity : BaseActivity<WatchHomeActivityPresenter, WatchActivity
         }else if(messageEvent.tag == Constants.EVENT_SIP_REGISTER_STATUS){
             var message = messageEvent.getMessage() as String
             Log.e(TAG,"收到sip註冊消息 "+ message)
-            runOnUiThread {
-                if(message.equals(SipHelperUtil.REGISTERING)){
-                    sip_state_tv.setBackgroundColor(Color.parseColor("#FFFF00"))
-                }else if(message.equals(SipHelperUtil.REGISTERFAIL)){
-                    sip_state_tv.setBackgroundColor(Color.parseColor("#FF0000"))
-                }else if(message.equals(SipHelperUtil.REGISTERCOM)){
-                    sip_state_tv.setBackgroundColor(Color.parseColor("#00FFFF"))
-                }
-            }
+
         }else if(messageEvent.tag == Constants.EVENT_INTERNETPING){
-            SipHelperUtil.getInstance(this).obtainSipInfo()
+
 
         }else  if(messageEvent.tag == Constants.EVENT_UNTREATED_QUANTITY){
             var message = messageEvent.getMessage() as ArrayList<InteractionVO>

+ 0 - 9
home/src/main/code/com/wdkl/ncs/android/component/home/activity/WatchRegisterActivity.kt

@@ -12,8 +12,6 @@ import android.util.Log
 import com.enation.javashop.android.jrouter.external.annotation.Router
 import com.enation.javashop.net.engine.model.NetState
 import com.enation.javashop.net.engine.plugin.permission.RxPermissions
-import com.starrtc.demo.demo.service.KeepLiveService
-import com.starrtc.demo.utils.AEvent
 import com.wdkl.ncs.android.component.home.R
 import com.wdkl.ncs.android.component.home.databinding.WatchActivityRegisterBinding
 import com.wdkl.ncs.android.component.home.databinding.WatchContactsLayBinding
@@ -122,10 +120,6 @@ class WatchRegisterActivity : BaseActivity<WatchDevicePresenter, WatchActivityRe
             return
         }
 
-        //这里的是视频通话有关的
-        AEvent.setHandler(Handler())
-        //这里的是视频通话有关的
-
 //        initSDK("000100")
         initSDK(data.sipId)
 
@@ -134,9 +128,6 @@ class WatchRegisterActivity : BaseActivity<WatchDevicePresenter, WatchActivityRe
     }
 
     private fun initSDK(DeviceSipId: String) {
-        val intent = Intent(this, KeepLiveService::class.java)
-        intent.putExtra("DeviceSipId", DeviceSipId)
-        startService(intent)
 
         val intent2 = Intent(this, TcpHandleService::class.java)
         startService(intent2)

+ 0 - 4
home/src/main/code/com/wdkl/ncs/android/component/home/activity/WebRTCVoipAudioActivity.kt

@@ -9,12 +9,8 @@ import android.util.Log
 import android.view.View
 import android.view.WindowManager
 import com.google.gson.Gson
-import com.vvsip.ansip.IVvsipServiceListener
 import com.wdkl.core.voip.VoipEvent
 import com.wdkl.ncs.android.component.home.R
-import com.wdkl.ncs.android.component.home.SipUtil.SipHelper
-import com.wdkl.ncs.android.component.home.SipUtil.SipHelperUtil
-import com.wdkl.ncs.android.component.home.SipUtil.SipHelperUtil2
 import com.wdkl.ncs.android.component.home.util.MediaPlayHelper
 import com.wdkl.ncs.android.component.nursehome.common.Constants
 import com.wdkl.ncs.android.lib.utils.showMessage

+ 1 - 1
home/src/main/code/com/wdkl/ncs/android/component/home/service/APPService.kt

@@ -28,7 +28,7 @@ class APPService : Service() {
     }
 
     override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
-        startForeground(110, Notification())//开前台服务
+//        startForeground(110, Notification())//开前台服务
         return START_STICKY//当服务被异常终止时,重启服务
     }
 

+ 0 - 1
home/src/main/code/com/wdkl/ncs/android/component/home/service/TcpHandleService.kt

@@ -7,7 +7,6 @@ import android.util.Log
 import com.google.gson.FieldNamingPolicy
 import com.google.gson.Gson
 import com.google.gson.GsonBuilder
-import com.wdkl.ncs.android.component.home.activity.RTCVoipAudioRingingActivity
 import com.wdkl.ncs.android.component.home.activity.WatchEventDetailActivity
 import com.wdkl.ncs.android.component.home.util.AppUtils
 import com.wdkl.ncs.android.component.home.util.SpeechUtil

BIN
home/src/main/res/drawable/btn_back.png


BIN
home/src/main/res/drawable/icon_hd_live.png


BIN
home/src/main/res/drawable/icon_hd_live_item.png


BIN
home/src/main/res/drawable/icon_switch_off.png


BIN
home/src/main/res/drawable/icon_switch_on.png


+ 1 - 1
settings.gradle

@@ -1 +1 @@
-include ':app', ':common', ':welcome', ':home', ':resource', ':middleware', ':shop', ':setting', ':extra', ':hello', ':starRTC', ':AmDemo_R', 'webrtc', 'rtc-chat', 'libwebrtc'
+include ':app', ':common', ':welcome', ':home', ':resource', ':middleware', ':setting', ':extra', ':hello', 'webrtc', 'rtc-chat', 'libwebrtc'