版本号: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("注册失败");
}
});
}
网友评论