PJSIP2.6

作者: 北冥有鱼1129 | 来源:发表于2017-11-02 15:58 被阅读0次

    版本号:library_pjsua-20171027

    是基于pjsip的基础上再次封装的sip通话功能模块,实现了快速,简易的开发,集成使用不要求知道sip的详细知识。简单的几行代码就可以实现语音的通话。
    集成方式:
    1.下载aar文件放到自己项目的libs目录下

    2.修改build.gradle 配置文件
    1:添加
    repositories {
        flatDir {
            dirs 'libs'
        }
    }
    2.ndk {
        // 设置支持的SO库架构
        abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
    }

    注意:targetSdkVersion 大于22 配置电话权限

    3.AndroidManifest 权限配置
    <!--权限-->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER" />
    <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
    <uses-permission android:name="android.permission.USE_SIP" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.USE_SIP" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-feature
        android:name="android.hardware.sip.voip"
        android:required="true" />
    <uses-feature
        android:name="android.hardware.wifi"
        android:required="true" />
    <uses-feature
        android:name="android.hardware.microphone"
        android:required="true" />

    4.调用方法使用:
    PjsipUtils pjsipUtils = new PjsipUtils(mContext);//初始化
    1) pjsipUtils.isReg();//检测sip是否注册方法

    2) pjsipUtils.hangupCall();//挂断方法

    3) pjsipUtils.makeCall("13951637983", new CallOutBack() {//呼叫
        @Override
        public void onAnswer(Context context) {//接通
            textView.setText("接通");
        }

        @Override
        public void onHangup(Context context) {// 挂断
            textView.setText(" 挂断");
        }

        @Override
        public void onCallRing(Context context) {//呼叫中
            textView.setText(" 呼叫中");
        }

        @Override
        public void onCallFailure(Context context, int i, Exception e) {//异常
            textView.setText("异常");
        }
    });

    4) pjsipUtils.outSip(new SipStateBack() {//注销方法
        @Override
        public void onSuccess(Context context, String s) {
            textView.setText("注销成功");
        }

        @Override
        public void onError(Throwable throwable, String s) {
            textView.setText("注销失败");
        }
    });
    注意建议:程序推出前,或者不使用的时候请关闭,注销sip
    5.// 服务器端获取 这些参数请求后台获取,接口方法群里联系获取,不获取无法使用
     // 服务器端获取
        String mDomainname = "";
        String mFsextip = "";
        String mProxy = "";
        String mSeatid = "";
        String mPassword = "";
        mFsextip="yy.91callcenter.cn";//目前这个参数写死,后台接口没有反回
        mProxy = "15060";//目前这个参数写死 ,后台接口没有反回
        pjsipUtils.regSip(mDomainname, mFsextip, mProxy, mSeatid, mPassword, new SipStateBack() {
            @Override
            public void onSuccess(Context context, String s) {//成功
                textView.setText("注册成功");
            }

            @Override
            public void onError(Throwable throwable, String s) {//失败
                textView.setText("注册失败");
            }
        });
    }

    相关文章

      网友评论

          本文标题:PJSIP2.6

          本文链接:https://www.haomeiwen.com/subject/titapxtx.html