JLChen
2021-11-25 5dc625a64cf58d798929f22c3073cd06b837f87a
2021-11-25 1.更新
1个文件已添加
8个文件已修改
544 ■■■■■ 已修改文件
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/build.gradle 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/AndroidManifest.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/HDLLinphoneKit.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneReverseCallActivity.java 459 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/res/values-zh/strings.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/res/values/strings.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLLinphoneSDKDemoNew/app/libs/HDLLinphoneSDK-V1.0.1.aar 补丁 | 查看 | 原始文档 | blame | 历史
HDLLinphoneSDKDemoNew/app/src/main/java/com/example/hdllinphonesdkdemo/MainActivity.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/build.gradle
@@ -49,6 +49,7 @@
        url "https://linphone.org/maven_repository"
    }
}
dependencies {
//    implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/AndroidManifest.xml
@@ -4,16 +4,13 @@
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.CAMERA" /> <!-- 语音通话权限 -->
    <uses-permission android:name="android.permission.RECORD_AUDIO" /> <!-- 免提权限 -->
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <!--保存截图到相册-->
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <!-- 保存截图到相册 -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-feature
@@ -24,7 +21,8 @@
        android:allowBackup="true"
        android:label="@string/app_name"
        android:supportsRtl="true">
        <activity android:name=".activity.HDLLinphoneMonitorActivity"></activity>
        <activity android:name=".activity.HDLLinphoneReverseCallActivity"></activity>
        <activity android:name=".activity.HDLLinphoneMonitorActivity" />
        <activity android:name=".activity.HDLLinphoneIntercomActivity" />
        <service android:name=".core.service.HDLLinphoneService" />
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/HDLLinphoneKit.java
@@ -32,6 +32,7 @@
 */
public class HDLLinphoneKit {
    public static final String KEY_TITLE_NAME = "lpTitleName";
    public static final String KEY_SIP_ACCOUNT = "lpSipAccount";
    public static final String HDLLinphoneKitNAME = "HDLLinphoneKit";
    private volatile static HDLLinphoneKit instance;
    private Context viewContext;
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/activity/HDLLinphoneReverseCallActivity.java
New file
@@ -0,0 +1,459 @@
package com.hdl.hdllinphonesdk.activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.media.AudioAttributes;
import android.os.Build;
import android.os.CountDownTimer;
import android.os.SystemClock;
import android.os.Vibrator;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.view.TextureView;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.Chronometer;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.hdl.hdllinphonesdk.HDLLinphoneKit;
import com.hdl.hdllinphonesdk.R;
import com.hdl.hdllinphonesdk.callback.OnLPOpenDoorCallBack;
import com.hdl.hdllinphonesdk.utils.HDLImageUtils;
import com.hdl.hdllinphonesdk.utils.HDLLog;
import org.linphone.core.Call;
import org.linphone.core.Core;
import org.linphone.core.CoreListenerStub;
/**
 * 反呼页面
 */
public class HDLLinphoneReverseCallActivity extends LPCheckPermissionsActivity implements View.OnClickListener {
    private static final String TAG = "HDLLinphoneReverseCallActivity";
    //控件
    private TextView tv_lp_title;
    private ImageView iv_lp_screenshot;
    private ImageView iv_lp_unlock;
    private ImageView iv_lp_hangUp;
    private TextView tv_lp_hangUp;
    private ImageView iv_lp_answer;
    private TextView tv_lp_answer;
    private RelativeLayout rl_lp_answerView;
    private LinearLayout ll_video_lp_rendering;
    private TextureView video_lp_rendering;
    private TextureView video_lp_rendering2;
    //    private TextView tv_lp_calltime;
    private Chronometer timer_lp_calltime;
    private TextView tv_lp_calltime;
    //参数
    private boolean isAnswer;//是否已经接听了
    private int callTime;//通话时间
    //倒计时
    private CountDownTimer mCountDownTimer;
    /**
     * 手机振动器
     */
    private Vibrator mVibrator;
    //Linphone
    private CoreListenerStub mCoreListener;
    private String deviceSipAccount;//设备SIP账号
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
//        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
//                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_hdllinphone_intercom);
        initView();
        initData();
        initOnClick();
        initCallBack();
        initCountDownTimer();
        initLinphone();
        initVibrator();
    }
    /**
     * onDestroy
     */
    @Override
    protected void onDestroy() {
        super.onDestroy();
        //1.挂断
        HDLLinphoneKit.getInstance().hangUp();
        //2.暂停计时
        if (null != timer_lp_calltime) {
            timer_lp_calltime.stop();
        }
        //3.注销callBack
        HDLLinphoneKit.getInstance().setOpenOpenDoorCallBack(null);
        //4.取消震动器
        cancelVibrator();
        //5.
        if (mCountDownTimer != null) {
            mCountDownTimer.cancel();
            mCountDownTimer = null;
        }
        //5.
        onDestroyLinphone();
        HDLLog.i(TAG, "onDestroy");
    }
    /**
     * initView
     */
    private void initView() {
        tv_lp_title = findViewById(R.id.tv_lp_title);
        iv_lp_screenshot = findViewById(R.id.iv_lp_screenshot);
        iv_lp_unlock = findViewById(R.id.iv_lp_unlock);
        iv_lp_hangUp = findViewById(R.id.iv_lp_hangUp);
        tv_lp_hangUp = findViewById(R.id.tv_lp_hangUp);
        iv_lp_answer = findViewById(R.id.iv_lp_answer);
        tv_lp_answer = findViewById(R.id.tv_lp_answer);
        rl_lp_answerView = findViewById(R.id.rl_lp_answerView);
        ll_video_lp_rendering = findViewById(R.id.ll_video_lp_rendering);
        video_lp_rendering = findViewById(R.id.video_lp_rendering);
        video_lp_rendering2 = findViewById(R.id.video_lp_rendering2);
//        tv_lp_calltime = findViewById(R.id.tv_lp_calltime);
        timer_lp_calltime = (Chronometer) findViewById(R.id.timer_lp_calltime);
        tv_lp_calltime = findViewById(R.id.tv_lp_calltime);
        setWidthHeightWithRatio(ll_video_lp_rendering, 16, 9);
    }
    /**
     * initData
     */
    private void initData() {
        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            String titleName = extras.getString(HDLLinphoneKit.KEY_TITLE_NAME);
            if (!TextUtils.isEmpty(titleName)) {
                tv_lp_title.setText(titleName);
            }
            deviceSipAccount = extras.getString(HDLLinphoneKit.KEY_SIP_ACCOUNT);
        }
    }
    /**
     * 指定屏幕宽度 根据宽高比设置控件宽高
     */
    public void setWidthHeightWithRatio(View view, int widthRatio, int heightRatio) {
        DisplayMetrics outMetrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
        int width = outMetrics.widthPixels;
        if (width <= 0) width = view.getWidth();
        int height = width * heightRatio / widthRatio;
        ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
        if (layoutParams != null) {
            layoutParams.height = height;
            layoutParams.width = width;
            view.setLayoutParams(layoutParams);
        }
    }
    /**
     * init OnClickListener
     */
    private void initOnClick() {
        iv_lp_screenshot.setOnClickListener(this);
        iv_lp_unlock.setOnClickListener(this);
        iv_lp_hangUp.setOnClickListener(this);
        tv_lp_hangUp.setOnClickListener(this);
        iv_lp_answer.setOnClickListener(this);
        tv_lp_answer.setOnClickListener(this);
    }
    /**
     * 初始化开门回调事件
     */
    void initCallBack() {
        HDLLinphoneKit.getInstance().setOpenOpenDoorCallBack(new OnLPOpenDoorCallBack() {
            @Override
            public void onOpenSuccess() {
                setOpenDoorSuccess();
            }
            @Override
            public void onOpenError(String errorMes) {
                showToast(getString(R.string.lp_unlockfailureStr) + errorMes);
            }
        });
    }
    /**
     * 初始化开锁屏蔽倒计时
     */
    void initCountDownTimer() {
        mCountDownTimer = new CountDownTimer(10 * 1000, 1000) {
            @Override
            public void onTick(long millisUntilFinished) {
                if (!HDLLinphoneReverseCallActivity.this.isFinishing()) {
                }
            }
            /**
             *倒计时结束后调用的
             */
            @Override
            public void onFinish() {
//                showToast("开锁onFinish");
                iv_lp_unlock.setEnabled(true);
            }
        };
//
    }
    @Override
    public void onClick(View view) {
        int id = view.getId();
        if (id == R.id.iv_lp_screenshot) {
            //截图
            onClickScreenshot();
        } else if (id == R.id.iv_lp_unlock) {
            //开锁
            onClickUnlock();
        } else if (id == R.id.iv_lp_hangUp || id == R.id.tv_lp_hangUp) {
            //挂断
            onClickHangUp();
        } else if (id == R.id.iv_lp_answer || id == R.id.tv_lp_answer) {
            //接听
            onClickAnswer();
        }
    }
    /**
     * 截图点击事件
     */
    private void onClickScreenshot() {
//        Bitmap img = HDLImageUtils.createViewBitmap(video_lp_rendering);
        Bitmap img = video_lp_rendering.getBitmap();
        boolean isSuccess = HDLImageUtils.saveImageToGallery(this, img);
        if (isSuccess) {
            showToast(getString(R.string.lp_saveToTheAlbumsStr));
        } else {
            showToast(getString(R.string.lp_operationFailedStr));
        }
    }
    /**
     * 开锁点击事件
     */
    private void onClickUnlock() {
        if (HDLLinphoneKit.getInstance().getOnHDLLinphoneCallListener() != null) {
            HDLLinphoneKit.getInstance().getOnHDLLinphoneCallListener().onUnlockAction();
        }
    }
    /**
     * 挂断点击事件
     */
    private void onClickHangUp() {
        //2.回调事件
        if (HDLLinphoneKit.getInstance().getOnHDLLinphoneCallListener() != null) {
            if (isAnswer) {
                //如果之前已经接听了,回调是挂断
                callTime = getTimerCallTime();
                HDLLog.i("callTime", "callTime" + callTime);
                HDLLinphoneKit.getInstance().getOnHDLLinphoneCallListener().onHangUpAction(callTime);
            } else {
                //如果之前没接听了,回调是拒接
                HDLLinphoneKit.getInstance().getOnHDLLinphoneCallListener().onRejectCallAction();
            }
        }
        //2.页面关闭
        finish();
    }
    /**
     * 接听按钮点击事件
     */
    private void onClickAnswer() {
        //1.接听 反呼
        if (TextUtils.isEmpty(deviceSipAccount)) {
            getString(R.string.lp_sipAccount_null);
            return;
        }
        HDLLinphoneKit.getInstance().callTo(deviceSipAccount, true);
        //2.取消震动
        cancelVibrator();
        //3.修改UI
        isAnswer = true;
        tv_lp_hangUp.setText(getString(R.string.lp_hangupStr));
        setViewGone(rl_lp_answerView);
        setViewGone(tv_lp_calltime);
        setViewVisible(timer_lp_calltime);
        startCallTimeCountdown();
        //接听通知
        if (HDLLinphoneKit.getInstance().getOnHDLLinphoneCallListener() != null) {
            HDLLinphoneKit.getInstance().getOnHDLLinphoneCallListener().onAnswerAction();
        }
    }
    /****************开锁成功********/
    /**
     * 开锁成功后,10s内不能重复开锁
     * 开锁按钮禁用,倒计时结束后重新允许点击
     */
    void setOpenDoorSuccess() {
        showToast(getString(R.string.lp_unlockSuccessfullyStr));
        iv_lp_unlock.setEnabled(false);
        startOpenDoorCountdown();
    }
    /**
     * 开启倒计时
     */
    void startOpenDoorCountdown() {
        mCountDownTimer.start();
    }
    /**
     * 通话记录开启倒计时
     */
    void startCallTimeCountdown() {
        timer_lp_calltime.setBase(SystemClock.elapsedRealtime());//计时器清零
        timer_lp_calltime.start();
    }
    int getTimerCallTime() {
        int temp0 = Integer.parseInt(timer_lp_calltime.getText().toString().split(":")[0]);
        int temp1 = Integer.parseInt(timer_lp_calltime.getText().toString().split(":")[1]);
        return temp0 * 60 + temp1;
    }
    /****************封装常用方法********/
    /**
     * showToast
     */
    private void showToast(String text) {
        Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
    }
    /**
     * setViewVisible
     */
    private static void setViewVisible(View view) {
        if (view.getVisibility() != View.VISIBLE) {
            view.setVisibility(View.VISIBLE);
        }
    }
    /**
     * setViewGone
     */
    private static void setViewGone(View view) {
        if (view.getVisibility() != View.GONE) {
            view.setVisibility(View.GONE);
        }
    }
    /**********LinPhone**********/
    /**
     * initLinphone
     */
    void initLinphone() {
        mCoreListener = new CoreListenerStub() {
            @Override
            public void onCallStateChanged(Core core, Call call, Call.State state, String message) {
                if (state == Call.State.End || state == Call.State.Released) {
                    // Once call is finished (end state), terminate the activity
                    // We also check for released state (called a few seconds later) just in case
                    // we missed the first one
                    showToast(getString(R.string.lp_endOfCallStr));
                    finish();
                }
            }
        };
        Core core = HDLLinphoneKit.getInstance().getCore();
        // We need to tell the core in which to display what
        if (core != null) {
            core.setNativeVideoWindowId(video_lp_rendering);
            core.setNativePreviewWindowId(video_lp_rendering2);
            // Listen for call state changes
            core.addListener(mCoreListener);
            core.enableMic(true);//开启麦克风
        }
    }
    /**
     * onDestroyLinphone
     */
    void onDestroyLinphone() {
        Core core = HDLLinphoneKit.getInstance().getCore();
        if (core != null) {
            core.removeListener(mCoreListener);
            core.setNativeVideoWindowId(null);
            core.setNativePreviewWindowId(null);
        }
        video_lp_rendering = null;
        video_lp_rendering2 = null;
    }
    /**
     * 初始化震动器
     */
    void initVibrator() {
        mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
        if (mVibrator.hasVibrator()) {
            long[] patern = {0, 1000, 1000};
            AudioAttributes audioAttributes = null;
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                audioAttributes = new AudioAttributes.Builder()
                        .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
                        .setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE) //key
                        .build();
                mVibrator.vibrate(patern, 1, audioAttributes);
            } else {
                mVibrator.vibrate(patern, 1);
            }
        } else {
            HDLLog.E("当前手机没有震动器");
        }
    }
    /**
     * 关闭震动器
     */
    void cancelVibrator(){
        if(mVibrator != null){
            mVibrator.cancel();
            mVibrator = null;
        }
    }
}
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java
@@ -175,12 +175,18 @@
    public void onDestroy() {
        removeAllCallback();
        logout();
        mCore.removeListener(mCoreListener);
        mTimer.cancel();
        mCore.stop();
        // A stopped Core can be started again
        // To ensure resources are freed, we must ensure it will be garbage collected
        mCore = null;
        if(mTimer != null) {
            mTimer.cancel();
        }
        if(mCore != null){
            mCore.removeListener(mCoreListener);
            mCore.stop();
            // A stopped Core can be started again
            // To ensure resources are freed, we must ensure it will be garbage collected
            mCore = null;
        }
        // Don't forget to free the singleton as well
        sInstance = null;
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/res/values-zh/strings.xml
@@ -16,4 +16,5 @@
    <string name="lp_screenshotStr">截图</string>
    <string name="lp_unlockStr">开锁</string>
    <string name="lp_outdoorUnitStr">室外机</string>
    <string name="lp_sipAccount_null">接听失败,设备不存在</string>
</resources>
HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/res/values/strings.xml
@@ -15,4 +15,5 @@
    <string name="lp_screenshotStr">Screenshot</string>
    <string name="lp_unlockStr">Unlock</string>
    <string name="lp_outdoorUnitStr">Outdoor unit</string>
    <string name="lp_sipAccount_null">Failed to answer the call. The device does not exist.</string>
</resources>
HDLLinphoneSDKDemoNew/app/libs/HDLLinphoneSDK-V1.0.1.aar
Binary files differ
HDLLinphoneSDKDemoNew/app/src/main/java/com/example/hdllinphonesdkdemo/MainActivity.java
@@ -11,6 +11,7 @@
import com.hdl.hdllinphonesdk.HDLLinphoneKit;
import com.hdl.hdllinphonesdk.activity.HDLLinphoneIntercomActivity;
import com.hdl.hdllinphonesdk.activity.HDLLinphoneMonitorActivity;
import com.hdl.hdllinphonesdk.activity.HDLLinphoneReverseCallActivity;
import com.hdl.hdllinphonesdk.callback.OnHDLLinphoneCallListener;
import com.hdl.hdllinphonesdk.core.service.HDLLinphoneService;
import com.hdl.hdllinphonesdk.utils.HDLLog;
@@ -48,7 +49,7 @@
//                HDLLinphoneKit.getInstance().setAccountAndLogin("5555", "85521566", "test-gz.hdlcontrol.com:5060");
//                HDLLinphoneKit.getInstance().setAccountAndLogin("6666", "85521566", "test-gz.hdlcontrol.com:5060");
                HDLLinphoneKit.getInstance().setAccountAndLogin("7777", "85521566", "test-gz.hdlcontrol.com:35060");
                HDLLinphoneKit.getInstance().setAccountAndLogin("8888", "85521566", "47.96.88.250:35060");
@@ -66,7 +67,7 @@
            @Override
            public void onClick(View v) {
                clearProxyConfig();
                HDLLinphoneKit.getInstance().setAccountAndLogin("5555", "85521566", "test-gz.hdlcontrol.com:35060");
                HDLLinphoneKit.getInstance().setAccountAndLogin("8888", "85521566", "47.96.88.250:35060");
            }
        });
@@ -79,8 +80,7 @@
//                HDLLinphoneKit.getInstance().callTo("61723164995779",true);
//                HDLcallTo("61723164995779",true);
//                HDLLinphoneKit.getInstance().callTo("1427186301744910338",true);
                HDLLinphoneKit.getInstance().callTo("5555",true);
                HDLLinphoneKit.getInstance().callTo("1456490719927488513",true);
                startActivity(HDLLinphoneMonitorActivity.class);
@@ -91,7 +91,7 @@
            @Override
            public void onClick(View v) {
                HDLLinphoneKit.getInstance().getCore().setNetworkReachable(true);
//                HDLLinphoneKit.getInstance().getCore().setNetworkReachable(true);
//                isOpen = !isOpen;
//                showToast("当前设置状态:"+isOpen);
//                HDLLinphoneKit.getInstance().getCore().enableVideoCapture(isOpen);//禁用手机摄像头视频采集
@@ -111,9 +111,18 @@
            }
        });
        //1.初始化SDK,并注册HDLLinphoneService
        HDLLinphoneKit.getInstance().initLinphone(this);
        //2.设置是否自动跳转呼叫,如果对接极光推送再弹出页面,这里要设置false
        HDLLinphoneKit.getInstance().setAutoJumpCallView(true);
        //3.监听呼叫和监控页面,用户操作的相关事件、接听、拒接、开锁等....
        setOnHDLLinphoneCallListener();
    }
    void all(){
        Intent intent = new Intent(this, HDLLinphoneReverseCallActivity.class);
        intent.
        startActivity(intent);
    }
    boolean isOpen;
@@ -154,22 +163,22 @@
    }
    public void logoutLog() {
        try {
            Core core = HDLLinphoneService.getCore();
            ProxyConfig[] configs = core.getProxyConfigList();
            if(configs != null) {
                HDLLog.E("registrationState账户length" + configs.length);
            }
            for (ProxyConfig config : configs) {
                HDLLog.E("registrationState账户"+config.getIdentityAddress().getUsername());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
//    public void logoutLog() {
//        try {
//            Core core = HDLLinphoneService.getCore();
//            ProxyConfig[] configs = core.getProxyConfigList();
//            if(configs != null) {
//                HDLLog.E("registrationState账户length" + configs.length);
//            }
//
//            for (ProxyConfig config : configs) {
//                HDLLog.E("registrationState账户"+config.getIdentityAddress().getUsername());
//            }
//
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
    boolean openSuccess;
    void setOnHDLLinphoneCallListener(){
@@ -189,7 +198,7 @@
            @Override
            public void onUnlockAction() {
//
                HDLLinphoneKit.getInstance().getCore().clearAllAuthInfo();
//                HDLLinphoneKit.getInstance().getCore().clearAllAuthInfo();
//                showToast("开锁");
//                EasyLinphone.callTo("61723164995779",true);