├── .gradle ├── 5.6.4 │ ├── executionHistory │ │ ├── executionHistory.bin │ │ └── executionHistory.lock │ ├── fileChanges │ │ └── last-build.bin │ ├── fileContent │ │ └── fileContent.lock │ ├── fileHashes │ │ ├── fileHashes.bin │ │ └── fileHashes.lock │ └── gc.properties ├── buildOutputCleanup │ ├── buildOutputCleanup.lock │ ├── cache.properties │ └── outputFiles.bin └── vcs-1 │ └── gc.properties ├── .idea ├── .gitignore ├── caches │ └── build_file_checksums.ser ├── codeStyles │ └── Project.xml ├── gradle.xml ├── libraries │ ├── Gradle__androidx_activity_activity_1_0_0_aar.xml │ ├── Gradle__androidx_annotation_annotation_1_1_0_jar.xml │ ├── Gradle__androidx_appcompat_appcompat_1_2_0_aar.xml │ ├── Gradle__androidx_appcompat_appcompat_resources_1_2_0_aar.xml │ ├── Gradle__androidx_arch_core_core_common_2_1_0_jar.xml │ ├── Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml │ ├── Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_rc01_aar.xml │ ├── Gradle__androidx_cardview_cardview_1_0_0_rc01_aar.xml │ ├── Gradle__androidx_collection_collection_1_1_0_jar.xml │ ├── Gradle__androidx_constraintlayout_constraintlayout_2_0_2_aar.xml │ ├── Gradle__androidx_constraintlayout_constraintlayout_solver_2_0_2_jar.xml │ ├── Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_rc01_aar.xml │ ├── Gradle__androidx_core_core_1_3_1_aar.xml │ ├── Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml │ ├── Gradle__androidx_customview_customview_1_0_0_aar.xml │ ├── Gradle__androidx_documentfile_documentfile_1_0_0_rc01_aar.xml │ ├── Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml │ ├── Gradle__androidx_fragment_fragment_1_1_0_aar.xml │ ├── Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml │ ├── Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_rc01_aar.xml │ ├── Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_rc01_aar.xml │ ├── Gradle__androidx_lifecycle_lifecycle_common_2_1_0_jar.xml │ ├── Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml │ ├── Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml │ ├── Gradle__androidx_lifecycle_lifecycle_runtime_2_1_0_aar.xml │ ├── Gradle__androidx_lifecycle_lifecycle_viewmodel_2_1_0_aar.xml │ ├── Gradle__androidx_loader_loader_1_0_0_aar.xml │ ├── Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_rc01_aar.xml │ ├── Gradle__androidx_print_print_1_0_0_rc01_aar.xml │ ├── Gradle__androidx_recyclerview_recyclerview_1_0_0_rc01_aar.xml │ ├── Gradle__androidx_savedstate_savedstate_1_0_0_aar.xml │ ├── Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_rc01_aar.xml │ ├── Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_rc01_aar.xml │ ├── Gradle__androidx_transition_transition_1_0_0_rc01_aar.xml │ ├── Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml │ ├── Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml │ ├── Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml │ ├── Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml │ ├── Gradle__com_google_android_material_material_1_0_0_rc01_aar.xml │ ├── Gradle__com_jeremyliao_live_event_bus_1_7_2_aar.xml │ └── Gradle__com_tencent_mmkv_1_0_19_aar.xml ├── misc.xml ├── modules.xml ├── runConfigurations.xml └── vcs.xml ├── README.md ├── SipSdk.iml ├── app ├── .gitignore ├── app.iml ├── build.gradle ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── aidl │ └── com │ │ ├── android │ │ └── internal │ │ │ └── telephony │ │ │ └── ITelephony.aidl │ │ └── cloudrtc │ │ ├── ISipCallback.aidl │ │ ├── SipAidlServer.aidl │ │ └── binder │ │ ├── CallRecordBean.aidl │ │ ├── SipCallRequest.aidl │ │ └── XierHeader.aidl │ ├── java │ ├── com │ │ └── cloudrtc │ │ │ ├── AppSipHelper.java │ │ │ ├── binder │ │ │ ├── CallRecordBean.java │ │ │ ├── SipCallRequest.java │ │ │ └── XierHeader.java │ │ │ ├── mediaengine │ │ │ ├── CloudRtcAudioManager.java │ │ │ ├── CloudRtcProximitySensor.java │ │ │ ├── CloudRtcUtils.java │ │ │ ├── CodecInst.java │ │ │ ├── Engine.java │ │ │ ├── EngineListener.java │ │ │ ├── MediaCodecVideoDecoder.java │ │ │ ├── MediaEngine.java │ │ │ ├── MediaStreamType.java │ │ │ ├── VideoCaptureObserver.java │ │ │ ├── VideoCodecInst.java │ │ │ ├── VideoDecodeEncodeObserver.java │ │ │ ├── VideoEngine.java │ │ │ ├── VideoFrameInfo.java │ │ │ ├── VideoStreamObserver.java │ │ │ ├── VoiceEngine.java │ │ │ └── VoiceStreamObserver.java │ │ │ ├── sipsdk │ │ │ ├── api │ │ │ │ ├── SipAccountHelper.java │ │ │ │ ├── SipCallHelper.java │ │ │ │ ├── SipCallRecordHelper.java │ │ │ │ ├── callback │ │ │ │ │ ├── SipAccountCallBack.java │ │ │ │ │ ├── SipCallCallBack.java │ │ │ │ │ ├── SipCallStatusListener.java │ │ │ │ │ ├── SipCommandCallBack.java │ │ │ │ │ └── SipLogListener.java │ │ │ │ ├── entity │ │ │ │ │ ├── CallStatus.java │ │ │ │ │ ├── Direction.java │ │ │ │ │ ├── RegisterEntity.java │ │ │ │ │ ├── RegisterStatus.java │ │ │ │ │ ├── SipCallInfoEntity.java │ │ │ │ │ └── SipCallRxStatus.java │ │ │ │ ├── manager │ │ │ │ │ ├── SipManager.java │ │ │ │ │ ├── SipMediaManager.java │ │ │ │ │ └── media │ │ │ │ │ │ ├── AudioMediaManager.java │ │ │ │ │ │ └── VideoMediaManager.java │ │ │ │ ├── sip │ │ │ │ │ ├── SipAbstractConfig.java │ │ │ │ │ ├── SipAbstractManager.java │ │ │ │ │ ├── SipAccount.java │ │ │ │ │ ├── SipAccountConfig.java │ │ │ │ │ ├── SipCall.java │ │ │ │ │ ├── SipLogWriter.java │ │ │ │ │ └── SipVideoConfig.java │ │ │ │ └── util │ │ │ │ │ ├── MMKVUtil.java │ │ │ │ │ ├── SipCommandUtil.java │ │ │ │ │ ├── SipMessageUtil.java │ │ │ │ │ └── SipUtil.java │ │ │ ├── db │ │ │ │ └── ISipCallEventProxy.java │ │ │ ├── event │ │ │ │ ├── IBaseEvent.java │ │ │ │ ├── LiveDataBusHelper.java │ │ │ │ └── SipEvent.java │ │ │ └── service │ │ │ │ ├── SipBinder.java │ │ │ │ └── SipService.java │ │ │ └── ui │ │ │ ├── SipCallCountTimer.java │ │ │ ├── VideoSurfaceView.java │ │ │ ├── activity │ │ │ ├── AppSipCallActivity.java │ │ │ ├── AppSipCallConnectFragment.java │ │ │ └── AppSipCallWaitFragment.java │ │ │ ├── base │ │ │ ├── BaseCompatActivity.java │ │ │ └── BaseCompatFragment.java │ │ │ ├── event │ │ │ └── SipRegisterStatusEvent.java │ │ │ ├── media │ │ │ ├── IPlayCompleteListener.java │ │ │ ├── MediaPlayerHelper.java │ │ │ └── MediaPlayerRequest.java │ │ │ ├── server │ │ │ └── XSipService.java │ │ │ └── util │ │ │ ├── DensityUtil.java │ │ │ ├── StatusBarUtils.java │ │ │ └── TelePhonyUtil.java │ └── org │ │ ├── pjsip │ │ └── pjsua2 │ │ │ ├── Account.java │ │ │ ├── AccountCallConfig.java │ │ │ ├── AccountConfig.java │ │ │ ├── AccountInfo.java │ │ │ ├── AccountMediaConfig.java │ │ │ ├── AccountMwiConfig.java │ │ │ ├── AccountNatConfig.java │ │ │ ├── AccountPresConfig.java │ │ │ ├── AccountRegConfig.java │ │ │ ├── AccountSipConfig.java │ │ │ ├── AccountVideoConfig.java │ │ │ ├── AudDevManager.java │ │ │ ├── AudioDevInfo.java │ │ │ ├── AudioDevInfoVector.java │ │ │ ├── AudioMedia.java │ │ │ ├── AudioMediaPlayer.java │ │ │ ├── AudioMediaPlayerInfo.java │ │ │ ├── AudioMediaRecorder.java │ │ │ ├── AudioMediaVector.java │ │ │ ├── AuthCredInfo.java │ │ │ ├── AuthCredInfoVector.java │ │ │ ├── Buddy.java │ │ │ ├── BuddyConfig.java │ │ │ ├── BuddyInfo.java │ │ │ ├── BuddyVector.java │ │ │ ├── Call.java │ │ │ ├── CallInfo.java │ │ │ ├── CallMediaInfo.java │ │ │ ├── CallMediaInfoVector.java │ │ │ ├── CallOpParam.java │ │ │ ├── CallSendRequestParam.java │ │ │ ├── CallSetting.java │ │ │ ├── CallVidSetStreamParam.java │ │ │ ├── CodecInfo.java │ │ │ ├── CodecInfoVector.java │ │ │ ├── ConfPortInfo.java │ │ │ ├── ContainerNode.java │ │ │ ├── Endpoint.java │ │ │ ├── EpConfig.java │ │ │ ├── Error.java │ │ │ ├── FindBuddyMatch.java │ │ │ ├── IntVector.java │ │ │ ├── JbufState.java │ │ │ ├── JsonDocument.java │ │ │ ├── LogConfig.java │ │ │ ├── LogEntry.java │ │ │ ├── LogWriter.java │ │ │ ├── LossType.java │ │ │ ├── MathStat.java │ │ │ ├── Media.java │ │ │ ├── MediaConfig.java │ │ │ ├── MediaCoordinate.java │ │ │ ├── MediaEvent.java │ │ │ ├── MediaEventData.java │ │ │ ├── MediaFmtChangedEvent.java │ │ │ ├── MediaFormat.java │ │ │ ├── MediaFormatAudio.java │ │ │ ├── MediaFormatVector.java │ │ │ ├── MediaFormatVideo.java │ │ │ ├── MediaSize.java │ │ │ ├── MediaTransportInfo.java │ │ │ ├── OnCallMediaEventParam.java │ │ │ ├── OnCallMediaStateParam.java │ │ │ ├── OnCallMediaTransportStateParam.java │ │ │ ├── OnCallRedirectedParam.java │ │ │ ├── OnCallReplaceRequestParam.java │ │ │ ├── OnCallReplacedParam.java │ │ │ ├── OnCallRxOfferParam.java │ │ │ ├── OnCallSdpCreatedParam.java │ │ │ ├── OnCallStateParam.java │ │ │ ├── OnCallTransferRequestParam.java │ │ │ ├── OnCallTransferStatusParam.java │ │ │ ├── OnCallTsxStateParam.java │ │ │ ├── OnCreateMediaTransportParam.java │ │ │ ├── OnDtmfDigitParam.java │ │ │ ├── OnIncomingCallParam.java │ │ │ ├── OnIncomingSubscribeParam.java │ │ │ ├── OnInstantMessageParam.java │ │ │ ├── OnInstantMessageStatusParam.java │ │ │ ├── OnMwiInfoParam.java │ │ │ ├── OnNatCheckStunServersCompleteParam.java │ │ │ ├── OnNatDetectionCompleteParam.java │ │ │ ├── OnRegStartedParam.java │ │ │ ├── OnRegStateParam.java │ │ │ ├── OnSelectAccountParam.java │ │ │ ├── OnStreamCreatedParam.java │ │ │ ├── OnStreamDestroyedParam.java │ │ │ ├── OnTimerParam.java │ │ │ ├── OnTransportStateParam.java │ │ │ ├── OnTypingIndicationParam.java │ │ │ ├── PendingJob.java │ │ │ ├── PersistentDocument.java │ │ │ ├── PersistentObject.java │ │ │ ├── PresNotifyParam.java │ │ │ ├── PresenceStatus.java │ │ │ ├── RtcpSdes.java │ │ │ ├── RtcpStat.java │ │ │ ├── RtcpStreamStat.java │ │ │ ├── RxMsgEvent.java │ │ │ ├── SWIGTYPE_p_p_void.java │ │ │ ├── SWIGTYPE_p_pj_bool_t.java │ │ │ ├── SWIGTYPE_p_pj_ssize_t.java │ │ │ ├── SWIGTYPE_p_pjmedia_vid_dev_hwnd_type.java │ │ │ ├── SWIGTYPE_p_void.java │ │ │ ├── SdpSession.java │ │ │ ├── SendInstantMessageParam.java │ │ │ ├── SendTypingIndicationParam.java │ │ │ ├── SipEvent.java │ │ │ ├── SipEventBody.java │ │ │ ├── SipHeader.java │ │ │ ├── SipHeaderVector.java │ │ │ ├── SipMediaType.java │ │ │ ├── SipMultipartPart.java │ │ │ ├── SipMultipartPartVector.java │ │ │ ├── SipRxData.java │ │ │ ├── SipTransaction.java │ │ │ ├── SipTxData.java │ │ │ ├── SipTxOption.java │ │ │ ├── StreamInfo.java │ │ │ ├── StreamStat.java │ │ │ ├── StringVector.java │ │ │ ├── TimeVal.java │ │ │ ├── TimerEvent.java │ │ │ ├── TlsConfig.java │ │ │ ├── ToneDesc.java │ │ │ ├── ToneDescVector.java │ │ │ ├── ToneDigit.java │ │ │ ├── ToneDigitMapDigit.java │ │ │ ├── ToneDigitMapVector.java │ │ │ ├── ToneDigitVector.java │ │ │ ├── ToneGenerator.java │ │ │ ├── TransportConfig.java │ │ │ ├── TransportInfo.java │ │ │ ├── TsxStateEvent.java │ │ │ ├── TsxStateEventSrc.java │ │ │ ├── TxErrorEvent.java │ │ │ ├── TxMsgEvent.java │ │ │ ├── UaConfig.java │ │ │ ├── UserEvent.java │ │ │ ├── Version.java │ │ │ ├── VideoWindow.java │ │ │ ├── VideoWindowHandle.java │ │ │ ├── VideoWindowInfo.java │ │ │ ├── WindowHandle.java │ │ │ ├── pj_constants_.java │ │ │ ├── pj_file_access.java │ │ │ ├── pj_log_decoration.java │ │ │ ├── pj_qos_flag.java │ │ │ ├── pj_qos_params.java │ │ │ ├── pj_qos_type.java │ │ │ ├── pj_qos_wmm_prio.java │ │ │ ├── pj_ssl_cipher.java │ │ │ ├── pj_ssl_sock_proto.java │ │ │ ├── pj_stun_nat_type.java │ │ │ ├── pj_turn_tp_type.java │ │ │ ├── pjmedia_aud_dev_cap.java │ │ │ ├── pjmedia_aud_dev_route.java │ │ │ ├── pjmedia_dir.java │ │ │ ├── pjmedia_event_type.java │ │ │ ├── pjmedia_file_player_option.java │ │ │ ├── pjmedia_file_writer_option.java │ │ │ ├── pjmedia_format_id.java │ │ │ ├── pjmedia_srtp_use.java │ │ │ ├── pjmedia_tone_desc.java │ │ │ ├── pjmedia_tone_digit.java │ │ │ ├── pjmedia_tone_digit_map.java │ │ │ ├── pjmedia_tp_proto.java │ │ │ ├── pjmedia_type.java │ │ │ ├── pjmedia_vid_dev_std_index.java │ │ │ ├── pjmedia_vid_stream_rc_method.java │ │ │ ├── pjrpid_activity.java │ │ │ ├── pjsip_cred_data_type.java │ │ │ ├── pjsip_dialog_cap_status.java │ │ │ ├── pjsip_event_id_e.java │ │ │ ├── pjsip_evsub_state.java │ │ │ ├── pjsip_hdr_e.java │ │ │ ├── pjsip_inv_state.java │ │ │ ├── pjsip_redirect_op.java │ │ │ ├── pjsip_role_e.java │ │ │ ├── pjsip_ssl_method.java │ │ │ ├── pjsip_status_code.java │ │ │ ├── pjsip_transport_flags_e.java │ │ │ ├── pjsip_transport_state.java │ │ │ ├── pjsip_transport_type_e.java │ │ │ ├── pjsip_tsx_state_e.java │ │ │ ├── pjsua2.java │ │ │ ├── pjsua2Constants.java │ │ │ ├── pjsua2JNI.java │ │ │ ├── pjsua_100rel_use.java │ │ │ ├── pjsua_buddy_status.java │ │ │ ├── pjsua_call_flag.java │ │ │ ├── pjsua_call_hold_type.java │ │ │ ├── pjsua_call_media_status.java │ │ │ ├── pjsua_call_vid_strm_op.java │ │ │ ├── pjsua_create_media_transport_flag.java │ │ │ ├── pjsua_destroy_flag.java │ │ │ ├── pjsua_invalid_id_const_.java │ │ │ ├── pjsua_ipv6_use.java │ │ │ ├── pjsua_med_tp_st.java │ │ │ ├── pjsua_sip_timer_use.java │ │ │ ├── pjsua_state.java │ │ │ ├── pjsua_stun_use.java │ │ │ └── pjsua_vid_req_keyframe_method.java │ │ └── webrtc │ │ ├── MediaCodecVideoEncoder.java │ │ ├── videoengine │ │ ├── ViEAndroidGLES20.java │ │ ├── ViERenderer.java │ │ ├── ViESurfaceRenderer.java │ │ ├── VideoCaptureAndroid.java │ │ └── VideoCaptureDeviceInfoAndroid.java │ │ └── voiceengine │ │ ├── AudioManagerAndroid.java │ │ ├── WebRtcAudioManager.java │ │ ├── WebRtcAudioRecord.java │ │ ├── WebRtcAudioTrack.java │ │ └── WebRtcAudioUtils.java │ ├── jniLibs │ ├── armeabi-v7a │ │ ├── libpjmediaengine.so │ │ └── libpjsua2.so │ └── armeabi │ │ ├── libpjmediaengine.so │ │ └── libpjsua2.so │ └── res │ ├── drawable-hdpi │ ├── app_accept_call_icon.png │ ├── app_call_error_icon.png │ ├── app_call_user_bg.png │ ├── app_call_user_icon.png │ ├── app_call_wait_head_bg.png │ ├── app_hangup_call_icon.png │ ├── app_open_door_icon.png │ ├── app_sip_audio_call_icon.png │ ├── btn_call_background.png │ ├── ic_addcontact.png │ ├── ic_call.png │ ├── ic_deletenumber.png │ ├── ic_head.png │ ├── ic_launcher.png │ ├── ic_move.9.png │ ├── ic_unonline.png │ ├── perm_group_calendar_normal.png │ ├── perm_group_calendar_selected.png │ ├── perm_group_camera_normal.png │ ├── perm_group_camera_selected.png │ ├── status_green.png │ ├── status_offline.png │ ├── status_orange.png │ ├── status_red.png │ ├── v1_wg_bg.png │ ├── v1_wg_close.png │ ├── v1_wg_open.png │ └── v1_wg_tx.png │ ├── drawable-mdpi │ ├── app_accept_call_icon.png │ ├── app_call_error_icon.png │ ├── app_call_user_bg.png │ ├── app_call_user_icon.png │ ├── app_call_wait_head_bg.png │ ├── app_hangup_call_icon.png │ ├── app_open_door_icon.png │ ├── app_sip_audio_call_icon.png │ └── ic_launcher.png │ ├── drawable-v24 │ └── ic_launcher_foreground.xml │ ├── drawable-xhdpi │ ├── app_accept_call_icon.png │ ├── app_call_error_icon.png │ ├── app_call_user_bg.png │ ├── app_call_user_icon.png │ ├── app_call_wait_head_bg.png │ ├── app_hangup_call_icon.png │ ├── app_open_door_icon.png │ ├── app_sip_audio_call_icon.png │ ├── btn_camera.png │ ├── btn_camera_press.png │ ├── btn_phone.png │ ├── btn_phone_press.png │ ├── btn_video.png │ ├── btn_video_press.png │ ├── btn_voice.png │ ├── btn_voice_press.png │ └── ic_launcher.png │ ├── drawable-xxhdpi │ ├── app_accept_call_icon.png │ ├── app_call_error_icon.png │ ├── app_call_user_bg.png │ ├── app_call_user_icon.png │ ├── app_call_wait_head_bg.png │ ├── app_hangup_call_icon.png │ ├── app_open_door_icon.png │ ├── app_sip_audio_call_icon.png │ └── ic_launcher.png │ ├── drawable │ ├── app_accept_call_icon.png │ ├── app_hangup_call_icon.png │ ├── app_open_door_icon.png │ ├── app_video_shape_bg.xml │ ├── bkg.xml │ ├── btn_answer_video_phone.xml │ ├── btn_camera_selector.xml │ ├── btn_hang_up.xml │ ├── btn_opendoor_selector.xml │ ├── btn_voice_selector.xml │ ├── ic_launcher_background.xml │ ├── perm_group_calendar.xml │ ├── perm_group_camera.xml │ └── video_call_shape_bg.xml │ ├── layout │ ├── activity_main.xml │ ├── activity_sip_call.xml │ ├── fragment_sip_call_connect.xml │ └── fragment_sip_call_wait.xml │ ├── mipmap-anydpi-v26 │ ├── ic_launcher.xml │ └── ic_launcher_round.xml │ ├── mipmap-hdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-mdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── raw │ ├── empty_number.wav │ ├── no_people.wav │ ├── outbound_ringback_tone.wav │ ├── refuse_call.wav │ ├── ringtone_long.wav │ ├── user_busy.mp3 │ └── wait_call.wav │ ├── values-sw300dp │ └── dimens.xml │ ├── values-sw310dp │ └── dimens.xml │ ├── values-sw320dp │ └── dimens.xml │ ├── values-sw330dp │ └── dimens.xml │ ├── values-sw340dp │ └── dimens.xml │ ├── values-sw350dp │ └── dimens.xml │ ├── values-sw360dp │ └── dimens.xml │ ├── values-sw370dp │ └── dimens.xml │ ├── values-sw380dp │ └── dimens.xml │ ├── values-sw390dp │ └── dimens.xml │ ├── values-sw391dp │ └── dimens.xml │ ├── values-sw392dp │ └── dimens.xml │ ├── values-sw393dp │ └── dimens.xml │ ├── values-sw400dp │ └── dimens.xml │ ├── values-sw410dp │ └── dimens.xml │ ├── values-sw420dp │ └── dimens.xml │ ├── values-sw430dp │ └── dimens.xml │ ├── values-sw440dp │ └── dimens.xml │ ├── values-sw450dp │ └── dimens.xml │ ├── values-sw460dp │ └── dimens.xml │ ├── values-sw470dp │ └── dimens.xml │ ├── values-sw480dp │ └── dimens.xml │ ├── values-sw490dp │ └── dimens.xml │ ├── values-v11 │ └── styles.xml │ ├── values-v14 │ └── styles.xml │ ├── values-w820dp │ └── dimens.xml │ ├── values │ ├── arrays.xml │ ├── attrs.xml │ ├── colors.xml │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml │ └── xml │ └── preferences.xml ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── local.properties └── settings.gradle /.gradle/5.6.4/executionHistory/executionHistory.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/.gradle/5.6.4/executionHistory/executionHistory.bin -------------------------------------------------------------------------------- /.gradle/5.6.4/executionHistory/executionHistory.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/.gradle/5.6.4/executionHistory/executionHistory.lock -------------------------------------------------------------------------------- /.gradle/5.6.4/fileChanges/last-build.bin: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gradle/5.6.4/fileContent/fileContent.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/.gradle/5.6.4/fileContent/fileContent.lock -------------------------------------------------------------------------------- /.gradle/5.6.4/fileHashes/fileHashes.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/.gradle/5.6.4/fileHashes/fileHashes.bin -------------------------------------------------------------------------------- /.gradle/5.6.4/fileHashes/fileHashes.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/.gradle/5.6.4/fileHashes/fileHashes.lock -------------------------------------------------------------------------------- /.gradle/5.6.4/gc.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/.gradle/5.6.4/gc.properties -------------------------------------------------------------------------------- /.gradle/buildOutputCleanup/buildOutputCleanup.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/.gradle/buildOutputCleanup/buildOutputCleanup.lock -------------------------------------------------------------------------------- /.gradle/buildOutputCleanup/cache.properties: -------------------------------------------------------------------------------- 1 | #Fri Nov 06 16:48:47 GMT+08:00 2020 2 | gradle.version=5.6.4 3 | -------------------------------------------------------------------------------- /.gradle/buildOutputCleanup/outputFiles.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/.gradle/buildOutputCleanup/outputFiles.bin -------------------------------------------------------------------------------- /.gradle/vcs-1/gc.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/.gradle/vcs-1/gc.properties -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /workspace.xml -------------------------------------------------------------------------------- /.idea/caches/build_file_checksums.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/.idea/caches/build_file_checksums.ser -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 19 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_activity_activity_1_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_annotation_annotation_1_1_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_appcompat_appcompat_1_2_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_2_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_rc01_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_cardview_cardview_1_0_0_rc01_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_collection_collection_1_1_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_2_0_2_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_solver_2_0_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_rc01_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_core_core_1_3_1_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_rc01_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_fragment_fragment_1_1_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_rc01_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_rc01_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_1_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_1_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_1_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_rc01_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_print_print_1_0_0_rc01_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_recyclerview_recyclerview_1_0_0_rc01_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_savedstate_savedstate_1_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_rc01_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_rc01_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_transition_transition_1_0_0_rc01_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_google_android_material_material_1_0_0_rc01_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_jeremyliao_live_event_bus_1_7_2_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.idea/libraries/Gradle__com_tencent_mmkv_1_0_19_aar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 18 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PJSipSDK 2 | 基于pjsip的音视频通话SDK封装 3 | 4 | ``` 5 | 1、org目录 6 | 7 | pjsip native层对接代码。不要动!!! 8 | 9 | 2、mediaengine目录 10 | 11 | 媒体库native层对接代码,不要动!!! 12 | 13 | 3、sipsdk目录 14 | 15 | 基于sip通话流程进行的封装,不要动!!! 16 | 17 | 4、binder目录 18 | 19 | 由于sip通话过程中会存在大量的内存消耗等问题,所以建议将SipServer运行在单独的进程中所以需要IPC通信 20 | 21 | 5、APPSipHelper 22 | 23 | SipServer的相关的帮助类 24 | 25 | (1)、启动SipServer :initSipService 26 | (2)、绑定SipServer,并注册sip账户:bindSipService 27 | (3)、发起sip通话:makeCall 28 | (4)、通过ISipCallEventProxy,获取通话记录 29 | 6、SipService 30 | 31 | SipServer抽象类,可参考XSipService 32 | 33 | 7、SipAccountHelper 34 | Sip账号工具类 35 | (1)、注册 36 | (2)、解注册 37 | (3)、监听注册状态 38 | 39 | 8、SipCallHelper 40 | Sip通话工具类 41 | (1)、发起通话 42 | (2)、挂断通话 43 | (3)、接听来电 44 | (4)、发送IM消息 45 | 46 | 9、SipCallRecordHelper 47 | Sip通话记录工具类 48 | (1)、记录当前通话信息 49 | (2)、通过IPC上报通话记录 50 | ``` -------------------------------------------------------------------------------- /SipSdk.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 29 5 | buildToolsVersion "29.0.3" 6 | 7 | defaultConfig { 8 | applicationId "com.coder.sipsdk" 9 | minSdkVersion 16 10 | targetSdkVersion 29 11 | versionCode 1 12 | versionName "1.0" 13 | ndk { 14 | abiFilters "armeabi" 15 | } 16 | } 17 | 18 | buildTypes { 19 | release { 20 | minifyEnabled false 21 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 22 | } 23 | } 24 | compileOptions { 25 | sourceCompatibility JavaVersion.VERSION_1_8 26 | targetCompatibility JavaVersion.VERSION_1_8 27 | } 28 | } 29 | 30 | dependencies { 31 | implementation fileTree(dir: 'libs', include: ['*.jar']) 32 | 33 | implementation 'androidx.appcompat:appcompat:1.2.0' 34 | implementation 'androidx.constraintlayout:constraintlayout:2.0.2' 35 | implementation 'com.tencent:mmkv:1.0.19' 36 | implementation 'com.jeremyliao:live-event-bus:1.7.2' 37 | implementation 'com.google.android.material:material:1.0.0-rc01' 38 | } 39 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/aidl/com/android/internal/telephony/ITelephony.aidl: -------------------------------------------------------------------------------- 1 | package com.android.internal.telephony; 2 | interface ITelephony{ 3 | boolean endCall(); 4 | void answerRingingCall(); 5 | } -------------------------------------------------------------------------------- /app/src/main/aidl/com/cloudrtc/ISipCallback.aidl: -------------------------------------------------------------------------------- 1 | // ISipCallback.aidl 2 | package com.cloudrtc; 3 | import com.cloudrtc.binder.CallRecordBean; 4 | // Declare any non-default types here with import statements 5 | 6 | interface ISipCallback { 7 | 8 | void onResult(int responseCode, String actionName, String response); 9 | 10 | void onOpenDoor( String orgId,String uniqNum,String name,String subOrgId); 11 | 12 | void onCallRecord(inout CallRecordBean callRecord); 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/aidl/com/cloudrtc/SipAidlServer.aidl: -------------------------------------------------------------------------------- 1 | // SipAidlServer.aidl 2 | package com.cloudrtc; 3 | import com.cloudrtc.ISipCallback; 4 | import com.cloudrtc.binder.SipCallRequest; 5 | import com.cloudrtc.binder.XierHeader; 6 | // Declare any non-default types here with import statements 7 | 8 | interface SipAidlServer { 9 | /** 10 | * Demonstrates some basic types that you can use as parameters 11 | * and return values in AIDL. 12 | */ 13 | 14 | void makeCall(in SipCallRequest sipCallRequest,in XierHeader header); 15 | 16 | void unRegister(); 17 | 18 | void register(String sipHost,String phoneNumber,String password,in ISipCallback callback); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/aidl/com/cloudrtc/binder/CallRecordBean.aidl: -------------------------------------------------------------------------------- 1 | // CallRecordBean.aidl 2 | package com.cloudrtc.binder; 3 | parcelable CallRecordBean; -------------------------------------------------------------------------------- /app/src/main/aidl/com/cloudrtc/binder/SipCallRequest.aidl: -------------------------------------------------------------------------------- 1 | // SipCallRequest.aidl 2 | package com.cloudrtc.binder; 3 | parcelable SipCallRequest; -------------------------------------------------------------------------------- /app/src/main/aidl/com/cloudrtc/binder/XierHeader.aidl: -------------------------------------------------------------------------------- 1 | // SipCallRequest.aidl 2 | package com.cloudrtc.binder; 3 | parcelable XierHeader; -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/binder/XierHeader.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.binder; 2 | 3 | import android.os.Parcel; 4 | import android.os.Parcelable; 5 | 6 | import java.util.HashMap; 7 | import java.util.Map; 8 | 9 | /** 10 | * 创建时间:2020/11/2 11 | * 创建人:singleCode 12 | * 功能描述: 13 | **/ 14 | public class XierHeader implements Parcelable { 15 | private Map headMap = new HashMap<>(); 16 | 17 | public XierHeader() { 18 | } 19 | 20 | protected XierHeader(Parcel in) { 21 | headMap = in.readHashMap(HashMap.class.getClassLoader()); 22 | } 23 | 24 | @Override 25 | public void writeToParcel(Parcel dest, int flags) { 26 | dest.writeMap(headMap); 27 | } 28 | 29 | @Override 30 | public int describeContents() { 31 | return 0; 32 | } 33 | 34 | public static final Creator CREATOR = new Creator() { 35 | @Override 36 | public XierHeader createFromParcel(Parcel in) { 37 | return new XierHeader(in); 38 | } 39 | 40 | @Override 41 | public XierHeader[] newArray(int size) { 42 | return new XierHeader[size]; 43 | } 44 | }; 45 | 46 | public void setHeader(String name, String value) { 47 | this.headMap.put(name,value); 48 | } 49 | 50 | public Map getHeadMap() { 51 | return headMap; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/mediaengine/CodecInst.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.mediaengine; 2 | 3 | public class CodecInst { 4 | private final long nativeCodecInst; 5 | 6 | // CodecInst can only be created from the native layer. 7 | private CodecInst(long nativeCodecInst) { 8 | this.nativeCodecInst = nativeCodecInst; 9 | } 10 | 11 | public String toString() { 12 | return name() + " " + 13 | "PlType: " + plType() + " " + 14 | "PlFreq: " + plFrequency() + " " + 15 | "Size: " + pacSize() + " " + 16 | "Channels: " + channels() + " " + 17 | "Rate: " + rate(); 18 | } 19 | 20 | // Dispose must be called before all references to CodecInst are lost as it 21 | // will free memory allocated in the native layer. 22 | public native void dispose(); 23 | public native int plType(); 24 | public native String name(); 25 | public native int plFrequency(); 26 | public native int pacSize(); 27 | public native int channels(); 28 | public native int rate(); 29 | } -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/mediaengine/Engine.java: -------------------------------------------------------------------------------- 1 | 2 | package com.cloudrtc.mediaengine; 3 | 4 | 5 | import android.content.Context; 6 | import android.util.Log; 7 | 8 | public class Engine { 9 | static { 10 | System.loadLibrary("pjmediaengine"); 11 | } 12 | 13 | public class TraceListener implements EngineListener { 14 | public void webrtc_trace(String msg, int length, int level){ 15 | Log.i("WEBRTC_TRACE", msg+"=========length:"+length+",level:"+level); 16 | } 17 | } 18 | public void registertrace(Context context){ 19 | RegisterTraceInfo(new TraceListener(),null,0x00ff); 20 | } 21 | public native void register(Context context); 22 | public native void unRegister(); 23 | public native void RegisterTraceInfo(EngineListener listener,String filename,int level); 24 | public native void UnRegisterTraceInfo(); 25 | ;} 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/mediaengine/EngineListener.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.mediaengine; 2 | 3 | public interface EngineListener { 4 | void webrtc_trace(String msg, int length, int level); 5 | }; -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/mediaengine/MediaStreamType.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.mediaengine; 2 | 3 | import java.util.Vector; 4 | 5 | public class MediaStreamType { 6 | static private Vector values = new Vector(); 7 | public static MediaStreamType AudioStream = new MediaStreamType("AudioStream", 1); 8 | public static MediaStreamType VideoStream = new MediaStreamType("VideoStream", 2); 9 | private String mStringValue; 10 | private int mIntgerValue; 11 | private MediaStreamType(String aStringValue,int aIntgerValue) { 12 | mStringValue = aStringValue; 13 | mIntgerValue = aIntgerValue; 14 | values.addElement(this); 15 | } 16 | public String toString() { 17 | return mStringValue; 18 | } 19 | public int IntgerValue() 20 | { 21 | return mIntgerValue; 22 | } 23 | 24 | public static MediaStreamType fromInt(int value) { 25 | for (int i = 0; i < values.size(); i++) { 26 | MediaStreamType mtype = (MediaStreamType) values.elementAt(i); 27 | if (mtype.mIntgerValue == value) return mtype; 28 | } 29 | throw new RuntimeException("CallState not found [" + value + "]"); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/mediaengine/VideoCaptureObserver.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.mediaengine; 2 | 3 | public interface VideoCaptureObserver{ 4 | public void OnCaptureFrame(byte[] data, int rotation, long captureMs); 5 | } -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/mediaengine/VideoCodecInst.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.mediaengine; 2 | 3 | public class VideoCodecInst { 4 | private final long nativeCodecInst; 5 | 6 | // VideoCodecInst can only be created from the native layer. 7 | private VideoCodecInst(long nativeCodecInst) { 8 | this.nativeCodecInst = nativeCodecInst; 9 | } 10 | 11 | public String toString() { 12 | return name() + " " + 13 | "PlType: " + plType() + " " + 14 | "Width: " + width() + " " + 15 | "Height: " + height() + " " + 16 | "StartBitRate: " + startBitRate() + " " + 17 | "MaxFrameRate: " + maxFrameRate(); 18 | } 19 | 20 | // Dispose must be called before all references to VideoCodecInst are lost as 21 | // it will free memory allocated in the native layer. 22 | public native void dispose(); 23 | public native int plType(); 24 | public native String name(); 25 | public native int width(); 26 | public native void setWidth(int width); 27 | public native int height(); 28 | public native void setHeight(int height); 29 | public native int startBitRate(); 30 | public native void setStartBitRate(int bitrate); 31 | public native int maxBitRate(); 32 | public native void setMaxBitRate(int bitrate); 33 | public native int maxFrameRate(); 34 | public native void setMaxFrameRate(int framerate); 35 | } -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/mediaengine/VideoDecodeEncodeObserver.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.mediaengine; 2 | 3 | public interface VideoDecodeEncodeObserver { 4 | void incomingRate(int videoChannel, int framerate, int bitrate); 5 | 6 | // VideoCodecInst.dispose must be called for |videoCodec| before all 7 | // references to it are lost as it will free memory allocated in the native 8 | // layer. 9 | void incomingCodecChanged(int videoChannel, VideoCodecInst videoCodec); 10 | 11 | void requestNewKeyFrame(int videoChannel); 12 | 13 | void outgoingRate(int videoChannel, int framerate, int bitrate); 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/mediaengine/VideoEngine.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.mediaengine; 2 | 3 | import android.view.SurfaceView; 4 | 5 | public class VideoEngine { 6 | 7 | public VideoEngine() { 8 | } 9 | 10 | public native int StartSending(int camera_index, int rotation, SurfaceView local_renderer); 11 | public native int StopSending(); 12 | public native int StartReceiving(SurfaceView remote_renderer); 13 | public native int StopReceiving(); 14 | public native int getVideoChannel(); 15 | public native int connectAudioChannel(int videoChannel, int voiceChannel); 16 | public native int numberOfCodecs(); 17 | 18 | public native int RegisterVideoStreamObserver(VideoStreamObserver cb); 19 | public native int DeRegisterVideoStreamObserver(); 20 | 21 | public native int setReceiveCodec(); 22 | public native int setSendCodec(int StartBitRate, int Width, int Height, int MaxFrameRate); 23 | 24 | //public native int getOrientation(CameraDesc camera); 25 | public native int setVideoRotations(int cameraId, int degrees); 26 | public native int setNackStatus(int channel, boolean enable); 27 | 28 | public native int SetupVideoChannel(int width, int height, int fps, int bitrate); 29 | 30 | public native void ChangeCamera(int camera_index, int rotation_new, SurfaceView local_renderer); 31 | public native int GetCameraOrientation(int cam_index); 32 | public native void ChangeCaptureRotation(int rotation); 33 | 34 | public native int RegisterVideoCaptureObserver(VideoCaptureObserver cb); 35 | public native int DeRegisterVideoCaptureObserver(); 36 | // public native void SetVideoCodec(String video_codecs); 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/mediaengine/VideoFrameInfo.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.mediaengine; 2 | 3 | public class VideoFrameInfo { 4 | public int rx_bitrate = 0; 5 | public int tx_bitrate = 0; 6 | public int rx_framerate = 0; 7 | public int tx_framerate = 0; 8 | public int rx_video_width = 0; 9 | public int rx_video_height = 0; 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/mediaengine/VideoStreamObserver.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.mediaengine; 2 | 3 | public interface VideoStreamObserver { 4 | 5 | public void OnIncomingRate(int video_channel, int framerate, int bitrate); 6 | 7 | public void OnOutgoingRate(int video_channel, int framerate, int bitrate); 8 | 9 | public void OnVideoFrameSizeChanged(int video_channel, int width, int height); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/mediaengine/VoiceStreamObserver.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.mediaengine; 2 | 3 | public interface VoiceStreamObserver { 4 | public void OnAudioIncomingSize(int size); 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/sipsdk/api/callback/SipAccountCallBack.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.sipsdk.api.callback; 2 | 3 | import com.cloudrtc.sipsdk.api.entity.RegisterStatus; 4 | import com.cloudrtc.sipsdk.api.entity.SipCallInfoEntity; 5 | import com.cloudrtc.sipsdk.api.sip.SipAccount; 6 | 7 | import org.pjsip.pjsua2.OnInstantMessageParam; 8 | 9 | /** 10 | * 创建时间:2020/4/26 11 | * 创建人:singleCode 12 | * 功能描述:账户监听 13 | **/ 14 | public interface SipAccountCallBack extends SipCommandCallBack{ 15 | void onRegisterStatus(RegisterStatus status); 16 | void onInstantMessage(OnInstantMessageParam prm); 17 | void onIncomingCall(SipAccount account, int callId, SipCallInfoEntity recordBean); 18 | boolean isCallActive(); 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/sipsdk/api/callback/SipCallCallBack.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.sipsdk.api.callback; 2 | 3 | 4 | /** 5 | * 创建时间:2020/4/23 6 | * 创建人:singleCode 7 | * 功能描述: 8 | **/ 9 | public interface SipCallCallBack extends SipCommandCallBack { 10 | void onCallConnected(String uri); 11 | void onCallEnd(); 12 | void onCallFailed(int code); 13 | void onCallDtmf(); 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/sipsdk/api/callback/SipCallStatusListener.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.sipsdk.api.callback; 2 | 3 | import com.cloudrtc.sipsdk.api.entity.CallStatus; 4 | import com.cloudrtc.sipsdk.api.entity.RegisterStatus; 5 | import com.cloudrtc.sipsdk.api.entity.SipCallRxStatus; 6 | import com.cloudrtc.sipsdk.api.sip.SipAccount; 7 | import com.cloudrtc.sipsdk.api.sip.SipCall; 8 | 9 | /** 10 | * 创建时间:2020/5/8 11 | * 创建人:singleCode 12 | * 功能描述:通话监听 13 | **/ 14 | public interface SipCallStatusListener { 15 | /** 16 | * 注册状态 17 | * @param account 18 | * @param status 19 | */ 20 | void onRegisterStatus(SipAccount account, RegisterStatus status); 21 | 22 | /** 23 | * 会话状态 24 | * @param account 25 | * @param call 26 | * @param status 27 | */ 28 | void onCallStatus(SipAccount account, SipCall call, CallStatus status); 29 | 30 | /** 31 | * 远端服务器通过Account instantMessage返回的通话状态 如:refuse_call wait_call user_busy等 32 | * @param account 33 | * @param call 34 | * @param status 35 | */ 36 | void onCallRxStatus(SipAccount account, SipCall call, SipCallRxStatus status); 37 | 38 | /** 39 | * 视频流状态 40 | * @param account 41 | * @param call 42 | * @param open 视频是否开启 43 | */ 44 | void onVideoStatusChange(SipAccount account, SipCall call, boolean open); 45 | 46 | /** 47 | * 视频分辨率 48 | * @param video_channel 49 | * @param width 50 | * @param height 51 | */ 52 | void OnVideoFrameSizeChanged(int video_channel, int width, int height); 53 | 54 | /** 55 | * 音频size、以及dtmf 56 | * @param size 57 | */ 58 | void OnAudioIncomingSize(int size); 59 | 60 | } 61 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/sipsdk/api/callback/SipCommandCallBack.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.sipsdk.api.callback; 2 | 3 | /** 4 | * 创建时间:2020/5/8 5 | * 创建人:singleCode 6 | * 功能描述: 7 | **/ 8 | public interface SipCommandCallBack { 9 | void onRemoteCommand(String sdpDescription); 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/sipsdk/api/callback/SipLogListener.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.sipsdk.api.callback; 2 | 3 | /** 4 | * 创建时间:2020/11/3 5 | * 创建人:singleCode 6 | * 功能描述:日志监听 7 | **/ 8 | public interface SipLogListener { 9 | void onSipLog(String message); 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/sipsdk/api/entity/CallStatus.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.sipsdk.api.entity; 2 | 3 | /** 4 | * 创建时间:2020/5/8 5 | * 创建人:singleCode 6 | * 功能描述:sip通话状态 7 | **/ 8 | public enum CallStatus { 9 | CALL_CONNECTED,//通话建立成功 10 | CALL_FAILED,//通话失败 11 | CALL_END,//通话结束 12 | CALL_INCOMING,//来电中 13 | CALL_OUTGOING;//去电中 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/sipsdk/api/entity/Direction.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.sipsdk.api.entity; 2 | 3 | import java.util.Vector; 4 | 5 | public class Direction { 6 | private static Vector values = new Vector(); 7 | public static Direction Incoming = new Direction("Callincoming",0); 8 | public static Direction Outgoing = new Direction("CallOutgoing",1); 9 | private String mStringValue; 10 | private int mIntgerValue; 11 | 12 | private Direction(String aStringValue, int aIntgerValue) { 13 | mStringValue = aStringValue; 14 | mIntgerValue = aIntgerValue; 15 | values.addElement(this); 16 | } 17 | 18 | public String toString() { 19 | return mStringValue; 20 | } 21 | 22 | public int IntgerValue() 23 | { 24 | return mIntgerValue; 25 | } 26 | 27 | public static Direction fromInt(int value) { 28 | for (int i = 0; i < values.size(); i++) { 29 | Direction mtype = (Direction) values.elementAt(i); 30 | if (mtype.mIntgerValue == value) return mtype; 31 | } 32 | throw new RuntimeException("Direction not found [" + value + "]"); 33 | } 34 | } -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/sipsdk/api/entity/RegisterEntity.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.sipsdk.api.entity; 2 | 3 | /** 4 | * 创建时间:2020/11/3 5 | * 创建人:singleCode 6 | * 功能描述: 7 | **/ 8 | public class RegisterEntity { 9 | private String server; 10 | private String userId; 11 | private String sipPwd; 12 | private boolean restart; 13 | 14 | public RegisterEntity(String server, String userId, String sipPwd, boolean restart) { 15 | this.server = server; 16 | this.userId = userId; 17 | this.sipPwd = sipPwd; 18 | this.restart = restart; 19 | } 20 | 21 | public String getServer() { 22 | return server; 23 | } 24 | 25 | public void setServer(String server) { 26 | this.server = server; 27 | } 28 | 29 | public String getUserId() { 30 | return userId; 31 | } 32 | 33 | public void setUserId(String userId) { 34 | this.userId = userId; 35 | } 36 | 37 | public String getSipPwd() { 38 | return sipPwd; 39 | } 40 | 41 | public void setSipPwd(String sipPwd) { 42 | this.sipPwd = sipPwd; 43 | } 44 | 45 | public boolean isRestart() { 46 | return restart; 47 | } 48 | 49 | public void setRestart(boolean restart) { 50 | this.restart = restart; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/sipsdk/api/entity/RegisterStatus.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.sipsdk.api.entity; 2 | 3 | /** 4 | * 创建时间:2020/4/26 5 | * 创建人:singleCode 6 | * 功能描述: 7 | **/ 8 | public class RegisterStatus { 9 | private int code; 10 | private String reason; 11 | 12 | public RegisterStatus(int code, String reason) { 13 | this.code = code; 14 | this.reason = reason; 15 | } 16 | 17 | public int getCode() { 18 | return code; 19 | } 20 | 21 | public void setCode(int code) { 22 | this.code = code; 23 | } 24 | 25 | public String getReason() { 26 | return reason; 27 | } 28 | 29 | public void setReason(String reason) { 30 | this.reason = reason; 31 | } 32 | 33 | @Override 34 | public String toString() { 35 | return "RegisterStatus{" + 36 | "code=" + code + 37 | ", reason='" + reason + '\'' + 38 | '}'; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/sipsdk/api/entity/SipCallRxStatus.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.sipsdk.api.entity; 2 | 3 | /** 4 | * 创建时间:2020/11/2 5 | * 创建人:singleCode 6 | * 功能描述: 7 | **/ 8 | public enum SipCallRxStatus { 9 | refuse_call,//拒绝通话 10 | no_people,//无人接听 11 | wait_call,//等待 12 | empty_number,//空号 13 | user_busy,//用户忙 14 | open_door,//开门 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/sipsdk/api/manager/media/AudioMediaManager.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.sipsdk.api.manager.media; 2 | 3 | import android.content.Context; 4 | import android.util.Log; 5 | 6 | import com.cloudrtc.mediaengine.CloudRtcAudioManager; 7 | 8 | /** 9 | * 创建时间:2020/5/8 10 | * 创建人:singleCode 11 | * 功能描述:audio 管理类 12 | **/ 13 | public class AudioMediaManager { 14 | private CloudRtcAudioManager rtcAudioManager; 15 | 16 | private static AudioMediaManager manager; 17 | public AudioMediaManager(){ 18 | 19 | } 20 | // public static AudioMediaManager getManager(){ 21 | // if(manager == null){ 22 | // synchronized (AudioMediaManager.class){ 23 | // if(manager == null){ 24 | // manager = new AudioMediaManager(); 25 | // } 26 | // } 27 | // } 28 | // return manager; 29 | // } 30 | 31 | public CloudRtcAudioManager getRtcAudio(Context context){ 32 | if(rtcAudioManager == null){ 33 | rtcAudioManager = CloudRtcAudioManager.create(context, new Runnable() { 34 | @Override 35 | public void run() { 36 | 37 | } 38 | }); 39 | Log.d("AudioMediaManager", "Initializing the audio manager..."); 40 | rtcAudioManager.init(); 41 | } 42 | return rtcAudioManager; 43 | } 44 | 45 | 46 | public boolean setLoudspeakerStatus(boolean yesno) { 47 | boolean speaker_on = yesno; 48 | if(rtcAudioManager != null) 49 | rtcAudioManager.SetLoudspeakerStatus(speaker_on); 50 | return true; 51 | } 52 | public void muteMic(boolean yesno) { 53 | // TODO Auto-generated method stub 54 | boolean mute_on = yesno; 55 | if(rtcAudioManager != null) 56 | rtcAudioManager.setMicrophoneMute(mute_on); 57 | } 58 | public void closeRtcAudio() { 59 | if (rtcAudioManager != null) { 60 | rtcAudioManager.close(); 61 | rtcAudioManager = null; 62 | } 63 | } 64 | 65 | } 66 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/sipsdk/api/sip/SipAbstractConfig.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.sipsdk.api.sip; 2 | 3 | import android.content.Context; 4 | 5 | import org.pjsip.pjsua2.AccountConfig; 6 | import org.pjsip.pjsua2.AuthCredInfo; 7 | import org.pjsip.pjsua2.pj_turn_tp_type; 8 | 9 | /** 10 | * 创建时间:2020/4/26 11 | * 创建人:singleCode 12 | * 功能描述: 13 | **/ 14 | public abstract class SipAbstractConfig { 15 | 16 | public abstract String getTransportType(); 17 | 18 | public abstract String getTransportData(); 19 | 20 | public abstract String getIdUri(); 21 | 22 | public abstract String getRegisterUri(); 23 | 24 | public abstract long getTimeoutSec(); 25 | 26 | public abstract long getDelayBeforeRefreshSec(); 27 | 28 | public abstract AuthCredInfo getAuthCredInfo(); 29 | 30 | public abstract String getTurnUserName(); 31 | 32 | public abstract String getTurnPassword(); 33 | 34 | public abstract String getTurnServer(); 35 | 36 | public abstract pj_turn_tp_type getTurnConnectType(); 37 | 38 | public abstract int getTurnPasswordType(); 39 | 40 | public abstract boolean IceEnable(); 41 | 42 | public abstract boolean TurnEnable(); 43 | 44 | public abstract AccountConfig getAccountConfig(); 45 | 46 | public abstract String getAudio_codecs(Context context); 47 | 48 | public abstract String getVideo_codecs(Context context); 49 | 50 | 51 | 52 | 53 | } 54 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/sipsdk/api/sip/SipLogWriter.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.sipsdk.api.sip; 2 | 3 | import android.util.Log; 4 | 5 | import com.cloudrtc.sipsdk.api.callback.SipLogListener; 6 | 7 | import org.pjsip.pjsua2.LogEntry; 8 | import org.pjsip.pjsua2.LogWriter; 9 | 10 | /** 11 | * 创建时间:2020/4/26 12 | * 创建人:singleCode 13 | * 功能描述: 14 | **/ 15 | public class SipLogWriter extends LogWriter { 16 | private int logLevel; 17 | private SipLogListener listener; 18 | public SipLogWriter(int logLevel, SipLogListener logListener){ 19 | this.logLevel = logLevel; 20 | this.listener = logListener; 21 | } 22 | public int getLogLevel() { 23 | return logLevel; 24 | } 25 | 26 | @Override 27 | public void write(LogEntry entry) 28 | { 29 | Log.d("SipLogWriter", "sip_msg: "+entry.getMsg()); 30 | if(listener != null){ 31 | listener.onSipLog(entry.getMsg()); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/sipsdk/api/sip/SipVideoConfig.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.sipsdk.api.sip; 2 | 3 | /** 4 | * 创建时间:2020/11/4 5 | * 创建人:singleCode 6 | * 功能描述: 7 | **/ 8 | public class SipVideoConfig { 9 | private int width; 10 | private int height; 11 | private int fps; 12 | private int bitrate; 13 | 14 | public SipVideoConfig(int width, int height, int fps, int bitrate) { 15 | this.width = width; 16 | this.height = height; 17 | this.fps = fps; 18 | this.bitrate = bitrate; 19 | } 20 | 21 | public int getWidth() { 22 | return width; 23 | } 24 | 25 | public int getHeight() { 26 | return height; 27 | } 28 | 29 | public int getFps() { 30 | return fps; 31 | } 32 | 33 | public int getBitrate() { 34 | return bitrate; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/sipsdk/api/util/SipCommandUtil.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.sipsdk.api.util; 2 | 3 | /** 4 | * 创建时间:2020/4/26 5 | * 创建人:singleCode 6 | * 功能描述: 7 | **/ 8 | public class SipCommandUtil { 9 | public static String audioCall = "0x0001"; //本地语音呼叫 10 | public static String videoCall = "0x0010";//本地视频呼叫 11 | public static String fullCall = "0x0011";//本地语音视频呼叫 12 | 13 | public static String raudioCall = "0x0100";//远程语音呼叫 14 | public static String rvideoCall = "0x1000";//远程视频呼叫 15 | public static String rfullCall = "0x1100";//远程语音视频呼叫 16 | 17 | public static String SurveillanceCommand = "0x1111"; 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/sipsdk/db/ISipCallEventProxy.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.sipsdk.db; 2 | 3 | import com.cloudrtc.binder.CallRecordBean; 4 | 5 | /** 6 | * 创建时间:2020/11/5 7 | * 创建人:singleCode 8 | * 功能描述:通话记录数据库代理 9 | **/ 10 | public interface ISipCallEventProxy { 11 | /** 12 | * 通话通话记录 13 | * @param callRecord 14 | */ 15 | void onSaveCallRecord(CallRecordBean callRecord); 16 | 17 | /** 18 | * 19 | * @param responseCode 100:通话建立 101:通话结束 20 | * @param actionName 21 | * @param response 22 | */ 23 | void onCallResult(int responseCode, String actionName, String response); 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/sipsdk/event/IBaseEvent.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.sipsdk.event; 2 | 3 | import com.jeremyliao.liveeventbus.core.LiveEvent; 4 | 5 | /** 6 | * 创建时间:2020/10/27 7 | * 创建人:singleCode 8 | * 功能描述:事件必须继承该接口 9 | **/ 10 | public interface IBaseEvent extends LiveEvent { 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/sipsdk/event/SipEvent.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.sipsdk.event; 2 | 3 | 4 | /** 5 | * 创建时间:2020/8/21 6 | * 创建人:singleCode 7 | * 功能描述: 8 | **/ 9 | public class SipEvent implements IBaseEvent { 10 | public static final int MAKE_CALL = 0;//打电话 11 | public static final int HANG_UP_CALL = 1;//挂断、拒绝 12 | public static final int ANSWER_CALL = 2;//接听 13 | public static final int SEND_IM = 3;//发送消息 14 | public static final int SWITCH_TO_AUDIO = 4;//切换到只音频通话 15 | public static final int REGISTER = 5;//注册 16 | public static final int UNREGISTER = 6;//注销 17 | private int eventCode; 18 | private Object eventData; 19 | public SipEvent(int eventCode) { 20 | this.eventCode = eventCode; 21 | } 22 | 23 | public SipEvent(int eventCode, Object eventData) { 24 | this.eventCode = eventCode; 25 | this.eventData = eventData; 26 | } 27 | 28 | public Object getEventData() { 29 | return eventData; 30 | } 31 | 32 | public int getEventCode() { 33 | return eventCode; 34 | } 35 | 36 | @Override 37 | public String toString() { 38 | return "UiCallEvent{" + 39 | "eventCode=" + eventCode + 40 | ", eventData=" + eventData + 41 | '}'; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/ui/SipCallCountTimer.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.ui; 2 | 3 | import android.os.CountDownTimer; 4 | import android.util.Log; 5 | 6 | import com.cloudrtc.sipsdk.api.SipCallHelper; 7 | import com.cloudrtc.ui.activity.AppSipCallActivity; 8 | 9 | import java.lang.ref.WeakReference; 10 | 11 | /** 12 | * 创建时间:2020/11/3 13 | * 创建人:singleCode 14 | * 功能描述: 15 | **/ 16 | public class SipCallCountTimer extends CountDownTimer { 17 | private String TAG = SipCallCountTimer.class.getSimpleName(); 18 | private WeakReference weakReference; 19 | /** 20 | * @param millisInFuture The number of millis in the future from the call 21 | * to {@link #start()} until the countdown is done and {@link #onFinish()} 22 | * is called. 23 | * @param countDownInterval The interval along the way to receive 24 | * {@link #onTick(long)} callbacks. 25 | */ 26 | public SipCallCountTimer(AppSipCallActivity activity,long millisInFuture, long countDownInterval) { 27 | super(millisInFuture, countDownInterval); 28 | weakReference = new WeakReference<>(activity); 29 | } 30 | 31 | @Override 32 | public void onTick(long millisUntilFinished) { 33 | 34 | } 35 | 36 | @Override 37 | public void onFinish() { 38 | Log.d(TAG, "CountTimer onFinish "); 39 | AppSipCallActivity appSipCallActivity = weakReference.get(); 40 | if(appSipCallActivity != null){ 41 | SipCallHelper.hangUp(); 42 | appSipCallActivity.finishActivity(); 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/ui/event/SipRegisterStatusEvent.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.ui.event; 2 | 3 | 4 | import com.cloudrtc.sipsdk.event.IBaseEvent; 5 | 6 | /** 7 | * 创建时间:2020/8/31 8 | * 创建人:singleCode 9 | * 功能描述: 10 | **/ 11 | public class SipRegisterStatusEvent implements IBaseEvent { 12 | private boolean isRegister; 13 | 14 | public SipRegisterStatusEvent(boolean isRegister) { 15 | this.isRegister = isRegister; 16 | } 17 | 18 | public boolean isRegister() { 19 | return isRegister; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/ui/media/IPlayCompleteListener.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.ui.media; 2 | 3 | /** 4 | * 创建时间:2020/11/5 5 | * 创建人:singleCode 6 | * 功能描述: 7 | **/ 8 | public interface IPlayCompleteListener { 9 | void playMusicComplete(MediaPlayerRequest request); 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/cloudrtc/ui/util/DensityUtil.java: -------------------------------------------------------------------------------- 1 | package com.cloudrtc.ui.util; 2 | 3 | import android.content.Context; 4 | 5 | /** 6 | * 创建时间:2020/5/17 7 | * 创建人:singleCode 8 | * 功能描述:dp、sp转换工具 9 | **/ 10 | public class DensityUtil { 11 | /** 12 | * 根据手机的分辨率从 dp 的单位 转成为 px(像素) 13 | */ 14 | public static int dip2px(Context context, float dpValue) { 15 | final float scale = context.getResources().getDisplayMetrics().density; // 获取手机的屏幕的密度 16 | return (int) (dpValue * scale + 0.5f); 17 | } 18 | 19 | /** 20 | * 根据手机的分辨率从 px(像素) 的单位 转成为 dp 21 | */ 22 | public static int px2dip(Context context, float pxValue) { 23 | final float scale = context.getResources().getDisplayMetrics().density; 24 | return (int) (pxValue / scale + 0.5f); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/CallSendRequestParam.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class CallSendRequestParam { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected CallSendRequestParam(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(CallSendRequestParam obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_CallSendRequestParam(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setMethod(String value) { 39 | pjsua2JNI.CallSendRequestParam_method_set(swigCPtr, this, value); 40 | } 41 | 42 | public String getMethod() { 43 | return pjsua2JNI.CallSendRequestParam_method_get(swigCPtr, this); 44 | } 45 | 46 | public void setTxOption(SipTxOption value) { 47 | pjsua2JNI.CallSendRequestParam_txOption_set(swigCPtr, this, SipTxOption.getCPtr(value), value); 48 | } 49 | 50 | public SipTxOption getTxOption() { 51 | long cPtr = pjsua2JNI.CallSendRequestParam_txOption_get(swigCPtr, this); 52 | return (cPtr == 0) ? null : new SipTxOption(cPtr, false); 53 | } 54 | 55 | public CallSendRequestParam() { 56 | this(pjsua2JNI.new_CallSendRequestParam(), true); 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/CodecInfo.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class CodecInfo { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected CodecInfo(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(CodecInfo obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_CodecInfo(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setCodecId(String value) { 39 | pjsua2JNI.CodecInfo_codecId_set(swigCPtr, this, value); 40 | } 41 | 42 | public String getCodecId() { 43 | return pjsua2JNI.CodecInfo_codecId_get(swigCPtr, this); 44 | } 45 | 46 | public void setPriority(short value) { 47 | pjsua2JNI.CodecInfo_priority_set(swigCPtr, this, value); 48 | } 49 | 50 | public short getPriority() { 51 | return pjsua2JNI.CodecInfo_priority_get(swigCPtr, this); 52 | } 53 | 54 | public void setDesc(String value) { 55 | pjsua2JNI.CodecInfo_desc_set(swigCPtr, this, value); 56 | } 57 | 58 | public String getDesc() { 59 | return pjsua2JNI.CodecInfo_desc_get(swigCPtr, this); 60 | } 61 | 62 | public CodecInfo() { 63 | this(pjsua2JNI.new_CodecInfo(), true); 64 | } 65 | 66 | } 67 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/FindBuddyMatch.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class FindBuddyMatch { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected FindBuddyMatch(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(FindBuddyMatch obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_FindBuddyMatch(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | protected void swigDirectorDisconnect() { 39 | swigCMemOwn = false; 40 | delete(); 41 | } 42 | 43 | public void swigReleaseOwnership() { 44 | swigCMemOwn = false; 45 | pjsua2JNI.FindBuddyMatch_change_ownership(this, swigCPtr, false); 46 | } 47 | 48 | public void swigTakeOwnership() { 49 | swigCMemOwn = true; 50 | pjsua2JNI.FindBuddyMatch_change_ownership(this, swigCPtr, true); 51 | } 52 | 53 | public boolean match(String token, Buddy buddy) { 54 | return (getClass() == FindBuddyMatch.class) ? pjsua2JNI.FindBuddyMatch_match(swigCPtr, this, token, Buddy.getCPtr(buddy), buddy) : pjsua2JNI.FindBuddyMatch_matchSwigExplicitFindBuddyMatch(swigCPtr, this, token, Buddy.getCPtr(buddy), buddy); 55 | } 56 | 57 | public FindBuddyMatch() { 58 | this(pjsua2JNI.new_FindBuddyMatch(), true); 59 | pjsua2JNI.FindBuddyMatch_director_connect(this, swigCPtr, swigCMemOwn, true); 60 | } 61 | 62 | } 63 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/JsonDocument.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class JsonDocument extends PersistentDocument { 12 | private long swigCPtr; 13 | 14 | protected JsonDocument(long cPtr, boolean cMemoryOwn) { 15 | super(pjsua2JNI.JsonDocument_SWIGUpcast(cPtr), cMemoryOwn); 16 | swigCPtr = cPtr; 17 | } 18 | 19 | protected static long getCPtr(JsonDocument obj) { 20 | return (obj == null) ? 0 : obj.swigCPtr; 21 | } 22 | 23 | protected void finalize() { 24 | delete(); 25 | } 26 | 27 | public synchronized void delete() { 28 | if (swigCPtr != 0) { 29 | if (swigCMemOwn) { 30 | swigCMemOwn = false; 31 | pjsua2JNI.delete_JsonDocument(swigCPtr); 32 | } 33 | swigCPtr = 0; 34 | } 35 | super.delete(); 36 | } 37 | 38 | public JsonDocument() { 39 | this(pjsua2JNI.new_JsonDocument(), true); 40 | } 41 | 42 | public void loadFile(String filename) throws Exception { 43 | pjsua2JNI.JsonDocument_loadFile(swigCPtr, this, filename); 44 | } 45 | 46 | public void loadString(String input) throws Exception { 47 | pjsua2JNI.JsonDocument_loadString(swigCPtr, this, input); 48 | } 49 | 50 | public void saveFile(String filename) throws Exception { 51 | pjsua2JNI.JsonDocument_saveFile(swigCPtr, this, filename); 52 | } 53 | 54 | public String saveString() throws Exception { 55 | return pjsua2JNI.JsonDocument_saveString(swigCPtr, this); 56 | } 57 | 58 | public ContainerNode getRootContainer() { 59 | return new ContainerNode(pjsua2JNI.JsonDocument_getRootContainer(swigCPtr, this), false); 60 | } 61 | 62 | } 63 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/LogWriter.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class LogWriter { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected LogWriter(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(LogWriter obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_LogWriter(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | protected void swigDirectorDisconnect() { 39 | swigCMemOwn = false; 40 | delete(); 41 | } 42 | 43 | public void swigReleaseOwnership() { 44 | swigCMemOwn = false; 45 | pjsua2JNI.LogWriter_change_ownership(this, swigCPtr, false); 46 | } 47 | 48 | public void swigTakeOwnership() { 49 | swigCMemOwn = true; 50 | pjsua2JNI.LogWriter_change_ownership(this, swigCPtr, true); 51 | } 52 | 53 | public void write(LogEntry entry) { 54 | pjsua2JNI.LogWriter_write(swigCPtr, this, LogEntry.getCPtr(entry), entry); 55 | } 56 | 57 | public LogWriter() { 58 | this(pjsua2JNI.new_LogWriter(), true); 59 | pjsua2JNI.LogWriter_director_connect(this, swigCPtr, swigCMemOwn, true); 60 | } 61 | 62 | } 63 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/LossType.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class LossType { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected LossType(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(LossType obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_LossType(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setBurst(long value) { 39 | pjsua2JNI.LossType_burst_set(swigCPtr, this, value); 40 | } 41 | 42 | public long getBurst() { 43 | return pjsua2JNI.LossType_burst_get(swigCPtr, this); 44 | } 45 | 46 | public void setRandom(long value) { 47 | pjsua2JNI.LossType_random_set(swigCPtr, this, value); 48 | } 49 | 50 | public long getRandom() { 51 | return pjsua2JNI.LossType_random_get(swigCPtr, this); 52 | } 53 | 54 | public LossType() { 55 | this(pjsua2JNI.new_LossType(), true); 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/Media.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class Media { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected Media(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(Media obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_Media(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public pjmedia_type getType() { 39 | return pjmedia_type.swigToEnum(pjsua2JNI.Media_getType(swigCPtr, this)); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/MediaCoordinate.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class MediaCoordinate { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected MediaCoordinate(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(MediaCoordinate obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_MediaCoordinate(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setX(int value) { 39 | pjsua2JNI.MediaCoordinate_x_set(swigCPtr, this, value); 40 | } 41 | 42 | public int getX() { 43 | return pjsua2JNI.MediaCoordinate_x_get(swigCPtr, this); 44 | } 45 | 46 | public void setY(int value) { 47 | pjsua2JNI.MediaCoordinate_y_set(swigCPtr, this, value); 48 | } 49 | 50 | public int getY() { 51 | return pjsua2JNI.MediaCoordinate_y_get(swigCPtr, this); 52 | } 53 | 54 | public MediaCoordinate() { 55 | this(pjsua2JNI.new_MediaCoordinate(), true); 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/MediaEventData.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class MediaEventData { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected MediaEventData(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(MediaEventData obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_MediaEventData(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setFmtChanged(MediaFmtChangedEvent value) { 39 | pjsua2JNI.MediaEventData_fmtChanged_set(swigCPtr, this, MediaFmtChangedEvent.getCPtr(value), value); 40 | } 41 | 42 | public MediaFmtChangedEvent getFmtChanged() { 43 | long cPtr = pjsua2JNI.MediaEventData_fmtChanged_get(swigCPtr, this); 44 | return (cPtr == 0) ? null : new MediaFmtChangedEvent(cPtr, false); 45 | } 46 | 47 | public void setPtr(SWIGTYPE_p_void value) { 48 | pjsua2JNI.MediaEventData_ptr_set(swigCPtr, this, SWIGTYPE_p_void.getCPtr(value)); 49 | } 50 | 51 | public SWIGTYPE_p_void getPtr() { 52 | long cPtr = pjsua2JNI.MediaEventData_ptr_get(swigCPtr, this); 53 | return (cPtr == 0) ? null : new SWIGTYPE_p_void(cPtr, false); 54 | } 55 | 56 | public MediaEventData() { 57 | this(pjsua2JNI.new_MediaEventData(), true); 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/MediaFmtChangedEvent.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class MediaFmtChangedEvent { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected MediaFmtChangedEvent(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(MediaFmtChangedEvent obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_MediaFmtChangedEvent(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setNewWidth(long value) { 39 | pjsua2JNI.MediaFmtChangedEvent_newWidth_set(swigCPtr, this, value); 40 | } 41 | 42 | public long getNewWidth() { 43 | return pjsua2JNI.MediaFmtChangedEvent_newWidth_get(swigCPtr, this); 44 | } 45 | 46 | public void setNewHeight(long value) { 47 | pjsua2JNI.MediaFmtChangedEvent_newHeight_set(swigCPtr, this, value); 48 | } 49 | 50 | public long getNewHeight() { 51 | return pjsua2JNI.MediaFmtChangedEvent_newHeight_get(swigCPtr, this); 52 | } 53 | 54 | public MediaFmtChangedEvent() { 55 | this(pjsua2JNI.new_MediaFmtChangedEvent(), true); 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/MediaFormat.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class MediaFormat { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected MediaFormat(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(MediaFormat obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_MediaFormat(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setId(long value) { 39 | pjsua2JNI.MediaFormat_id_set(swigCPtr, this, value); 40 | } 41 | 42 | public long getId() { 43 | return pjsua2JNI.MediaFormat_id_get(swigCPtr, this); 44 | } 45 | 46 | public void setType(pjmedia_type value) { 47 | pjsua2JNI.MediaFormat_type_set(swigCPtr, this, value.swigValue()); 48 | } 49 | 50 | public pjmedia_type getType() { 51 | return pjmedia_type.swigToEnum(pjsua2JNI.MediaFormat_type_get(swigCPtr, this)); 52 | } 53 | 54 | public MediaFormat() { 55 | this(pjsua2JNI.new_MediaFormat(), true); 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/MediaSize.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class MediaSize { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected MediaSize(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(MediaSize obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_MediaSize(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setW(long value) { 39 | pjsua2JNI.MediaSize_w_set(swigCPtr, this, value); 40 | } 41 | 42 | public long getW() { 43 | return pjsua2JNI.MediaSize_w_get(swigCPtr, this); 44 | } 45 | 46 | public void setH(long value) { 47 | pjsua2JNI.MediaSize_h_set(swigCPtr, this, value); 48 | } 49 | 50 | public long getH() { 51 | return pjsua2JNI.MediaSize_h_get(swigCPtr, this); 52 | } 53 | 54 | public MediaSize() { 55 | this(pjsua2JNI.new_MediaSize(), true); 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/MediaTransportInfo.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class MediaTransportInfo { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected MediaTransportInfo(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(MediaTransportInfo obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_MediaTransportInfo(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setSrcRtpName(String value) { 39 | pjsua2JNI.MediaTransportInfo_srcRtpName_set(swigCPtr, this, value); 40 | } 41 | 42 | public String getSrcRtpName() { 43 | return pjsua2JNI.MediaTransportInfo_srcRtpName_get(swigCPtr, this); 44 | } 45 | 46 | public void setSrcRtcpName(String value) { 47 | pjsua2JNI.MediaTransportInfo_srcRtcpName_set(swigCPtr, this, value); 48 | } 49 | 50 | public String getSrcRtcpName() { 51 | return pjsua2JNI.MediaTransportInfo_srcRtcpName_get(swigCPtr, this); 52 | } 53 | 54 | public MediaTransportInfo() { 55 | this(pjsua2JNI.new_MediaTransportInfo(), true); 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/OnCallMediaEventParam.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class OnCallMediaEventParam { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected OnCallMediaEventParam(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(OnCallMediaEventParam obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_OnCallMediaEventParam(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setMedIdx(long value) { 39 | pjsua2JNI.OnCallMediaEventParam_medIdx_set(swigCPtr, this, value); 40 | } 41 | 42 | public long getMedIdx() { 43 | return pjsua2JNI.OnCallMediaEventParam_medIdx_get(swigCPtr, this); 44 | } 45 | 46 | public void setEv(MediaEvent value) { 47 | pjsua2JNI.OnCallMediaEventParam_ev_set(swigCPtr, this, MediaEvent.getCPtr(value), value); 48 | } 49 | 50 | public MediaEvent getEv() { 51 | long cPtr = pjsua2JNI.OnCallMediaEventParam_ev_get(swigCPtr, this); 52 | return (cPtr == 0) ? null : new MediaEvent(cPtr, false); 53 | } 54 | 55 | public OnCallMediaEventParam() { 56 | this(pjsua2JNI.new_OnCallMediaEventParam(), true); 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/OnCallMediaStateParam.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class OnCallMediaStateParam { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected OnCallMediaStateParam(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(OnCallMediaStateParam obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_OnCallMediaStateParam(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public OnCallMediaStateParam() { 39 | this(pjsua2JNI.new_OnCallMediaStateParam(), true); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/OnCallRedirectedParam.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class OnCallRedirectedParam { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected OnCallRedirectedParam(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(OnCallRedirectedParam obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_OnCallRedirectedParam(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setTargetUri(String value) { 39 | pjsua2JNI.OnCallRedirectedParam_targetUri_set(swigCPtr, this, value); 40 | } 41 | 42 | public String getTargetUri() { 43 | return pjsua2JNI.OnCallRedirectedParam_targetUri_get(swigCPtr, this); 44 | } 45 | 46 | public void setE(SipEvent value) { 47 | pjsua2JNI.OnCallRedirectedParam_e_set(swigCPtr, this, SipEvent.getCPtr(value), value); 48 | } 49 | 50 | public SipEvent getE() { 51 | long cPtr = pjsua2JNI.OnCallRedirectedParam_e_get(swigCPtr, this); 52 | return (cPtr == 0) ? null : new SipEvent(cPtr, false); 53 | } 54 | 55 | public OnCallRedirectedParam() { 56 | this(pjsua2JNI.new_OnCallRedirectedParam(), true); 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/OnCallReplacedParam.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class OnCallReplacedParam { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected OnCallReplacedParam(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(OnCallReplacedParam obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_OnCallReplacedParam(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setNewCallId(int value) { 39 | pjsua2JNI.OnCallReplacedParam_newCallId_set(swigCPtr, this, value); 40 | } 41 | 42 | public int getNewCallId() { 43 | return pjsua2JNI.OnCallReplacedParam_newCallId_get(swigCPtr, this); 44 | } 45 | 46 | public OnCallReplacedParam() { 47 | this(pjsua2JNI.new_OnCallReplacedParam(), true); 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/OnCallSdpCreatedParam.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class OnCallSdpCreatedParam { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected OnCallSdpCreatedParam(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(OnCallSdpCreatedParam obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_OnCallSdpCreatedParam(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setSdp(SdpSession value) { 39 | pjsua2JNI.OnCallSdpCreatedParam_sdp_set(swigCPtr, this, SdpSession.getCPtr(value), value); 40 | } 41 | 42 | public SdpSession getSdp() { 43 | long cPtr = pjsua2JNI.OnCallSdpCreatedParam_sdp_get(swigCPtr, this); 44 | return (cPtr == 0) ? null : new SdpSession(cPtr, false); 45 | } 46 | 47 | public void setRemSdp(SdpSession value) { 48 | pjsua2JNI.OnCallSdpCreatedParam_remSdp_set(swigCPtr, this, SdpSession.getCPtr(value), value); 49 | } 50 | 51 | public SdpSession getRemSdp() { 52 | long cPtr = pjsua2JNI.OnCallSdpCreatedParam_remSdp_get(swigCPtr, this); 53 | return (cPtr == 0) ? null : new SdpSession(cPtr, false); 54 | } 55 | 56 | public OnCallSdpCreatedParam() { 57 | this(pjsua2JNI.new_OnCallSdpCreatedParam(), true); 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/OnCallStateParam.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class OnCallStateParam { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected OnCallStateParam(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(OnCallStateParam obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_OnCallStateParam(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setE(SipEvent value) { 39 | pjsua2JNI.OnCallStateParam_e_set(swigCPtr, this, SipEvent.getCPtr(value), value); 40 | } 41 | 42 | public SipEvent getE() { 43 | long cPtr = pjsua2JNI.OnCallStateParam_e_get(swigCPtr, this); 44 | return (cPtr == 0) ? null : new SipEvent(cPtr, false); 45 | } 46 | 47 | public OnCallStateParam() { 48 | this(pjsua2JNI.new_OnCallStateParam(), true); 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/OnCallTsxStateParam.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class OnCallTsxStateParam { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected OnCallTsxStateParam(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(OnCallTsxStateParam obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_OnCallTsxStateParam(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setE(SipEvent value) { 39 | pjsua2JNI.OnCallTsxStateParam_e_set(swigCPtr, this, SipEvent.getCPtr(value), value); 40 | } 41 | 42 | public SipEvent getE() { 43 | long cPtr = pjsua2JNI.OnCallTsxStateParam_e_get(swigCPtr, this); 44 | return (cPtr == 0) ? null : new SipEvent(cPtr, false); 45 | } 46 | 47 | public OnCallTsxStateParam() { 48 | this(pjsua2JNI.new_OnCallTsxStateParam(), true); 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/OnDtmfDigitParam.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class OnDtmfDigitParam { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected OnDtmfDigitParam(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(OnDtmfDigitParam obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_OnDtmfDigitParam(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setDigit(String value) { 39 | pjsua2JNI.OnDtmfDigitParam_digit_set(swigCPtr, this, value); 40 | } 41 | 42 | public String getDigit() { 43 | return pjsua2JNI.OnDtmfDigitParam_digit_get(swigCPtr, this); 44 | } 45 | 46 | public OnDtmfDigitParam() { 47 | this(pjsua2JNI.new_OnDtmfDigitParam(), true); 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/OnIncomingCallParam.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class OnIncomingCallParam { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected OnIncomingCallParam(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(OnIncomingCallParam obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_OnIncomingCallParam(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setCallId(int value) { 39 | pjsua2JNI.OnIncomingCallParam_callId_set(swigCPtr, this, value); 40 | } 41 | 42 | public int getCallId() { 43 | return pjsua2JNI.OnIncomingCallParam_callId_get(swigCPtr, this); 44 | } 45 | 46 | public void setRdata(SipRxData value) { 47 | pjsua2JNI.OnIncomingCallParam_rdata_set(swigCPtr, this, SipRxData.getCPtr(value), value); 48 | } 49 | 50 | public SipRxData getRdata() { 51 | long cPtr = pjsua2JNI.OnIncomingCallParam_rdata_get(swigCPtr, this); 52 | return (cPtr == 0) ? null : new SipRxData(cPtr, false); 53 | } 54 | 55 | public OnIncomingCallParam() { 56 | this(pjsua2JNI.new_OnIncomingCallParam(), true); 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/OnMwiInfoParam.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class OnMwiInfoParam { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected OnMwiInfoParam(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(OnMwiInfoParam obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_OnMwiInfoParam(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setState(pjsip_evsub_state value) { 39 | pjsua2JNI.OnMwiInfoParam_state_set(swigCPtr, this, value.swigValue()); 40 | } 41 | 42 | public pjsip_evsub_state getState() { 43 | return pjsip_evsub_state.swigToEnum(pjsua2JNI.OnMwiInfoParam_state_get(swigCPtr, this)); 44 | } 45 | 46 | public void setRdata(SipRxData value) { 47 | pjsua2JNI.OnMwiInfoParam_rdata_set(swigCPtr, this, SipRxData.getCPtr(value), value); 48 | } 49 | 50 | public SipRxData getRdata() { 51 | long cPtr = pjsua2JNI.OnMwiInfoParam_rdata_get(swigCPtr, this); 52 | return (cPtr == 0) ? null : new SipRxData(cPtr, false); 53 | } 54 | 55 | public OnMwiInfoParam() { 56 | this(pjsua2JNI.new_OnMwiInfoParam(), true); 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/OnRegStartedParam.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class OnRegStartedParam { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected OnRegStartedParam(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(OnRegStartedParam obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_OnRegStartedParam(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setRenew(boolean value) { 39 | pjsua2JNI.OnRegStartedParam_renew_set(swigCPtr, this, value); 40 | } 41 | 42 | public boolean getRenew() { 43 | return pjsua2JNI.OnRegStartedParam_renew_get(swigCPtr, this); 44 | } 45 | 46 | public OnRegStartedParam() { 47 | this(pjsua2JNI.new_OnRegStartedParam(), true); 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/OnSelectAccountParam.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class OnSelectAccountParam { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected OnSelectAccountParam(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(OnSelectAccountParam obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_OnSelectAccountParam(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setRdata(SipRxData value) { 39 | pjsua2JNI.OnSelectAccountParam_rdata_set(swigCPtr, this, SipRxData.getCPtr(value), value); 40 | } 41 | 42 | public SipRxData getRdata() { 43 | long cPtr = pjsua2JNI.OnSelectAccountParam_rdata_get(swigCPtr, this); 44 | return (cPtr == 0) ? null : new SipRxData(cPtr, false); 45 | } 46 | 47 | public void setAccountIndex(int value) { 48 | pjsua2JNI.OnSelectAccountParam_accountIndex_set(swigCPtr, this, value); 49 | } 50 | 51 | public int getAccountIndex() { 52 | return pjsua2JNI.OnSelectAccountParam_accountIndex_get(swigCPtr, this); 53 | } 54 | 55 | public OnSelectAccountParam() { 56 | this(pjsua2JNI.new_OnSelectAccountParam(), true); 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/OnStreamDestroyedParam.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class OnStreamDestroyedParam { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected OnStreamDestroyedParam(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(OnStreamDestroyedParam obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_OnStreamDestroyedParam(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setStream(SWIGTYPE_p_void value) { 39 | pjsua2JNI.OnStreamDestroyedParam_stream_set(swigCPtr, this, SWIGTYPE_p_void.getCPtr(value)); 40 | } 41 | 42 | public SWIGTYPE_p_void getStream() { 43 | long cPtr = pjsua2JNI.OnStreamDestroyedParam_stream_get(swigCPtr, this); 44 | return (cPtr == 0) ? null : new SWIGTYPE_p_void(cPtr, false); 45 | } 46 | 47 | public void setStreamIdx(long value) { 48 | pjsua2JNI.OnStreamDestroyedParam_streamIdx_set(swigCPtr, this, value); 49 | } 50 | 51 | public long getStreamIdx() { 52 | return pjsua2JNI.OnStreamDestroyedParam_streamIdx_get(swigCPtr, this); 53 | } 54 | 55 | public OnStreamDestroyedParam() { 56 | this(pjsua2JNI.new_OnStreamDestroyedParam(), true); 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/OnTimerParam.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class OnTimerParam { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected OnTimerParam(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(OnTimerParam obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_OnTimerParam(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setUserData(SWIGTYPE_p_void value) { 39 | pjsua2JNI.OnTimerParam_userData_set(swigCPtr, this, SWIGTYPE_p_void.getCPtr(value)); 40 | } 41 | 42 | public SWIGTYPE_p_void getUserData() { 43 | long cPtr = pjsua2JNI.OnTimerParam_userData_get(swigCPtr, this); 44 | return (cPtr == 0) ? null : new SWIGTYPE_p_void(cPtr, false); 45 | } 46 | 47 | public void setMsecDelay(long value) { 48 | pjsua2JNI.OnTimerParam_msecDelay_set(swigCPtr, this, value); 49 | } 50 | 51 | public long getMsecDelay() { 52 | return pjsua2JNI.OnTimerParam_msecDelay_get(swigCPtr, this); 53 | } 54 | 55 | public OnTimerParam() { 56 | this(pjsua2JNI.new_OnTimerParam(), true); 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/PendingJob.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class PendingJob { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected PendingJob(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(PendingJob obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_PendingJob(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void execute(boolean is_pending) { 39 | pjsua2JNI.PendingJob_execute(swigCPtr, this, is_pending); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/PersistentObject.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class PersistentObject { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected PersistentObject(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(PersistentObject obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_PersistentObject(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void readObject(ContainerNode node) throws Exception { 39 | pjsua2JNI.PersistentObject_readObject(swigCPtr, this, ContainerNode.getCPtr(node), node); 40 | } 41 | 42 | public void writeObject(ContainerNode node) throws Exception { 43 | pjsua2JNI.PersistentObject_writeObject(swigCPtr, this, ContainerNode.getCPtr(node), node); 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/RxMsgEvent.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class RxMsgEvent { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected RxMsgEvent(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(RxMsgEvent obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_RxMsgEvent(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setRdata(SipRxData value) { 39 | pjsua2JNI.RxMsgEvent_rdata_set(swigCPtr, this, SipRxData.getCPtr(value), value); 40 | } 41 | 42 | public SipRxData getRdata() { 43 | long cPtr = pjsua2JNI.RxMsgEvent_rdata_get(swigCPtr, this); 44 | return (cPtr == 0) ? null : new SipRxData(cPtr, false); 45 | } 46 | 47 | public RxMsgEvent() { 48 | this(pjsua2JNI.new_RxMsgEvent(), true); 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/SWIGTYPE_p_p_void.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class SWIGTYPE_p_p_void { 12 | private long swigCPtr; 13 | 14 | protected SWIGTYPE_p_p_void(long cPtr, boolean futureUse) { 15 | swigCPtr = cPtr; 16 | } 17 | 18 | protected SWIGTYPE_p_p_void() { 19 | swigCPtr = 0; 20 | } 21 | 22 | protected static long getCPtr(SWIGTYPE_p_p_void obj) { 23 | return (obj == null) ? 0 : obj.swigCPtr; 24 | } 25 | } 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/SWIGTYPE_p_pj_bool_t.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class SWIGTYPE_p_pj_bool_t { 12 | private long swigCPtr; 13 | 14 | protected SWIGTYPE_p_pj_bool_t(long cPtr, boolean futureUse) { 15 | swigCPtr = cPtr; 16 | } 17 | 18 | protected SWIGTYPE_p_pj_bool_t() { 19 | swigCPtr = 0; 20 | } 21 | 22 | protected static long getCPtr(SWIGTYPE_p_pj_bool_t obj) { 23 | return (obj == null) ? 0 : obj.swigCPtr; 24 | } 25 | } 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/SWIGTYPE_p_pj_ssize_t.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class SWIGTYPE_p_pj_ssize_t { 12 | private long swigCPtr; 13 | 14 | protected SWIGTYPE_p_pj_ssize_t(long cPtr, boolean futureUse) { 15 | swigCPtr = cPtr; 16 | } 17 | 18 | protected SWIGTYPE_p_pj_ssize_t() { 19 | swigCPtr = 0; 20 | } 21 | 22 | protected static long getCPtr(SWIGTYPE_p_pj_ssize_t obj) { 23 | return (obj == null) ? 0 : obj.swigCPtr; 24 | } 25 | } 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/SWIGTYPE_p_pjmedia_vid_dev_hwnd_type.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class SWIGTYPE_p_pjmedia_vid_dev_hwnd_type { 12 | private long swigCPtr; 13 | 14 | protected SWIGTYPE_p_pjmedia_vid_dev_hwnd_type(long cPtr, boolean futureUse) { 15 | swigCPtr = cPtr; 16 | } 17 | 18 | protected SWIGTYPE_p_pjmedia_vid_dev_hwnd_type() { 19 | swigCPtr = 0; 20 | } 21 | 22 | protected static long getCPtr(SWIGTYPE_p_pjmedia_vid_dev_hwnd_type obj) { 23 | return (obj == null) ? 0 : obj.swigCPtr; 24 | } 25 | } 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/SWIGTYPE_p_void.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class SWIGTYPE_p_void { 12 | private long swigCPtr; 13 | 14 | protected SWIGTYPE_p_void(long cPtr, boolean futureUse) { 15 | swigCPtr = cPtr; 16 | } 17 | 18 | protected SWIGTYPE_p_void() { 19 | swigCPtr = 0; 20 | } 21 | 22 | protected static long getCPtr(SWIGTYPE_p_void obj) { 23 | return (obj == null) ? 0 : obj.swigCPtr; 24 | } 25 | } 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/SdpSession.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class SdpSession { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected SdpSession(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(SdpSession obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_SdpSession(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setWholeSdp(String value) { 39 | pjsua2JNI.SdpSession_wholeSdp_set(swigCPtr, this, value); 40 | } 41 | 42 | public String getWholeSdp() { 43 | return pjsua2JNI.SdpSession_wholeSdp_get(swigCPtr, this); 44 | } 45 | 46 | public void setPjSdpSession(SWIGTYPE_p_void value) { 47 | pjsua2JNI.SdpSession_pjSdpSession_set(swigCPtr, this, SWIGTYPE_p_void.getCPtr(value)); 48 | } 49 | 50 | public SWIGTYPE_p_void getPjSdpSession() { 51 | long cPtr = pjsua2JNI.SdpSession_pjSdpSession_get(swigCPtr, this); 52 | return (cPtr == 0) ? null : new SWIGTYPE_p_void(cPtr, false); 53 | } 54 | 55 | public SdpSession() { 56 | this(pjsua2JNI.new_SdpSession(), true); 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/SendTypingIndicationParam.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class SendTypingIndicationParam { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected SendTypingIndicationParam(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(SendTypingIndicationParam obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_SendTypingIndicationParam(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setIsTyping(boolean value) { 39 | pjsua2JNI.SendTypingIndicationParam_isTyping_set(swigCPtr, this, value); 40 | } 41 | 42 | public boolean getIsTyping() { 43 | return pjsua2JNI.SendTypingIndicationParam_isTyping_get(swigCPtr, this); 44 | } 45 | 46 | public void setTxOption(SipTxOption value) { 47 | pjsua2JNI.SendTypingIndicationParam_txOption_set(swigCPtr, this, SipTxOption.getCPtr(value), value); 48 | } 49 | 50 | public SipTxOption getTxOption() { 51 | long cPtr = pjsua2JNI.SendTypingIndicationParam_txOption_get(swigCPtr, this); 52 | return (cPtr == 0) ? null : new SipTxOption(cPtr, false); 53 | } 54 | 55 | public SendTypingIndicationParam() { 56 | this(pjsua2JNI.new_SendTypingIndicationParam(), true); 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/SipHeader.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class SipHeader { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected SipHeader(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(SipHeader obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_SipHeader(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setHName(String value) { 39 | pjsua2JNI.SipHeader_hName_set(swigCPtr, this, value); 40 | } 41 | 42 | public String getHName() { 43 | return pjsua2JNI.SipHeader_hName_get(swigCPtr, this); 44 | } 45 | 46 | public void setHValue(String value) { 47 | pjsua2JNI.SipHeader_hValue_set(swigCPtr, this, value); 48 | } 49 | 50 | public String getHValue() { 51 | return pjsua2JNI.SipHeader_hValue_get(swigCPtr, this); 52 | } 53 | 54 | public SipHeader() { 55 | this(pjsua2JNI.new_SipHeader(), true); 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/SipMediaType.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class SipMediaType { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected SipMediaType(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(SipMediaType obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_SipMediaType(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setType(String value) { 39 | pjsua2JNI.SipMediaType_type_set(swigCPtr, this, value); 40 | } 41 | 42 | public String getType() { 43 | return pjsua2JNI.SipMediaType_type_get(swigCPtr, this); 44 | } 45 | 46 | public void setSubType(String value) { 47 | pjsua2JNI.SipMediaType_subType_set(swigCPtr, this, value); 48 | } 49 | 50 | public String getSubType() { 51 | return pjsua2JNI.SipMediaType_subType_get(swigCPtr, this); 52 | } 53 | 54 | public SipMediaType() { 55 | this(pjsua2JNI.new_SipMediaType(), true); 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/StreamStat.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class StreamStat { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected StreamStat(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(StreamStat obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_StreamStat(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setRtcp(RtcpStat value) { 39 | pjsua2JNI.StreamStat_rtcp_set(swigCPtr, this, RtcpStat.getCPtr(value), value); 40 | } 41 | 42 | public RtcpStat getRtcp() { 43 | long cPtr = pjsua2JNI.StreamStat_rtcp_get(swigCPtr, this); 44 | return (cPtr == 0) ? null : new RtcpStat(cPtr, false); 45 | } 46 | 47 | public void setJbuf(JbufState value) { 48 | pjsua2JNI.StreamStat_jbuf_set(swigCPtr, this, JbufState.getCPtr(value), value); 49 | } 50 | 51 | public JbufState getJbuf() { 52 | long cPtr = pjsua2JNI.StreamStat_jbuf_get(swigCPtr, this); 53 | return (cPtr == 0) ? null : new JbufState(cPtr, false); 54 | } 55 | 56 | public StreamStat() { 57 | this(pjsua2JNI.new_StreamStat(), true); 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/TimeVal.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class TimeVal { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected TimeVal(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(TimeVal obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_TimeVal(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setSec(int value) { 39 | pjsua2JNI.TimeVal_sec_set(swigCPtr, this, value); 40 | } 41 | 42 | public int getSec() { 43 | return pjsua2JNI.TimeVal_sec_get(swigCPtr, this); 44 | } 45 | 46 | public void setMsec(int value) { 47 | pjsua2JNI.TimeVal_msec_set(swigCPtr, this, value); 48 | } 49 | 50 | public int getMsec() { 51 | return pjsua2JNI.TimeVal_msec_get(swigCPtr, this); 52 | } 53 | 54 | public TimeVal() { 55 | this(pjsua2JNI.new_TimeVal(), true); 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/TimerEvent.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class TimerEvent { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected TimerEvent(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(TimerEvent obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_TimerEvent(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setEntry(SWIGTYPE_p_void value) { 39 | pjsua2JNI.TimerEvent_entry_set(swigCPtr, this, SWIGTYPE_p_void.getCPtr(value)); 40 | } 41 | 42 | public SWIGTYPE_p_void getEntry() { 43 | long cPtr = pjsua2JNI.TimerEvent_entry_get(swigCPtr, this); 44 | return (cPtr == 0) ? null : new SWIGTYPE_p_void(cPtr, false); 45 | } 46 | 47 | public TimerEvent() { 48 | this(pjsua2JNI.new_TimerEvent(), true); 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/ToneDesc.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class ToneDesc extends pjmedia_tone_desc { 12 | private long swigCPtr; 13 | 14 | protected ToneDesc(long cPtr, boolean cMemoryOwn) { 15 | super(pjsua2JNI.ToneDesc_SWIGUpcast(cPtr), cMemoryOwn); 16 | swigCPtr = cPtr; 17 | } 18 | 19 | protected static long getCPtr(ToneDesc obj) { 20 | return (obj == null) ? 0 : obj.swigCPtr; 21 | } 22 | 23 | protected void finalize() { 24 | delete(); 25 | } 26 | 27 | public synchronized void delete() { 28 | if (swigCPtr != 0) { 29 | if (swigCMemOwn) { 30 | swigCMemOwn = false; 31 | pjsua2JNI.delete_ToneDesc(swigCPtr); 32 | } 33 | swigCPtr = 0; 34 | } 35 | super.delete(); 36 | } 37 | 38 | public ToneDesc() { 39 | this(pjsua2JNI.new_ToneDesc(), true); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/ToneDigit.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class ToneDigit extends pjmedia_tone_digit { 12 | private long swigCPtr; 13 | 14 | protected ToneDigit(long cPtr, boolean cMemoryOwn) { 15 | super(pjsua2JNI.ToneDigit_SWIGUpcast(cPtr), cMemoryOwn); 16 | swigCPtr = cPtr; 17 | } 18 | 19 | protected static long getCPtr(ToneDigit obj) { 20 | return (obj == null) ? 0 : obj.swigCPtr; 21 | } 22 | 23 | protected void finalize() { 24 | delete(); 25 | } 26 | 27 | public synchronized void delete() { 28 | if (swigCPtr != 0) { 29 | if (swigCMemOwn) { 30 | swigCMemOwn = false; 31 | pjsua2JNI.delete_ToneDigit(swigCPtr); 32 | } 33 | swigCPtr = 0; 34 | } 35 | super.delete(); 36 | } 37 | 38 | public ToneDigit() { 39 | this(pjsua2JNI.new_ToneDigit(), true); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/ToneDigitMapDigit.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class ToneDigitMapDigit { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected ToneDigitMapDigit(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(ToneDigitMapDigit obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_ToneDigitMapDigit(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setDigit(String value) { 39 | pjsua2JNI.ToneDigitMapDigit_digit_set(swigCPtr, this, value); 40 | } 41 | 42 | public String getDigit() { 43 | return pjsua2JNI.ToneDigitMapDigit_digit_get(swigCPtr, this); 44 | } 45 | 46 | public void setFreq1(int value) { 47 | pjsua2JNI.ToneDigitMapDigit_freq1_set(swigCPtr, this, value); 48 | } 49 | 50 | public int getFreq1() { 51 | return pjsua2JNI.ToneDigitMapDigit_freq1_get(swigCPtr, this); 52 | } 53 | 54 | public void setFreq2(int value) { 55 | pjsua2JNI.ToneDigitMapDigit_freq2_set(swigCPtr, this, value); 56 | } 57 | 58 | public int getFreq2() { 59 | return pjsua2JNI.ToneDigitMapDigit_freq2_get(swigCPtr, this); 60 | } 61 | 62 | public ToneDigitMapDigit() { 63 | this(pjsua2JNI.new_ToneDigitMapDigit(), true); 64 | } 65 | 66 | } 67 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/TxErrorEvent.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class TxErrorEvent { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected TxErrorEvent(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(TxErrorEvent obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_TxErrorEvent(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setTdata(SipTxData value) { 39 | pjsua2JNI.TxErrorEvent_tdata_set(swigCPtr, this, SipTxData.getCPtr(value), value); 40 | } 41 | 42 | public SipTxData getTdata() { 43 | long cPtr = pjsua2JNI.TxErrorEvent_tdata_get(swigCPtr, this); 44 | return (cPtr == 0) ? null : new SipTxData(cPtr, false); 45 | } 46 | 47 | public void setTsx(SipTransaction value) { 48 | pjsua2JNI.TxErrorEvent_tsx_set(swigCPtr, this, SipTransaction.getCPtr(value), value); 49 | } 50 | 51 | public SipTransaction getTsx() { 52 | long cPtr = pjsua2JNI.TxErrorEvent_tsx_get(swigCPtr, this); 53 | return (cPtr == 0) ? null : new SipTransaction(cPtr, false); 54 | } 55 | 56 | public TxErrorEvent() { 57 | this(pjsua2JNI.new_TxErrorEvent(), true); 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/TxMsgEvent.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class TxMsgEvent { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected TxMsgEvent(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(TxMsgEvent obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_TxMsgEvent(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setTdata(SipTxData value) { 39 | pjsua2JNI.TxMsgEvent_tdata_set(swigCPtr, this, SipTxData.getCPtr(value), value); 40 | } 41 | 42 | public SipTxData getTdata() { 43 | long cPtr = pjsua2JNI.TxMsgEvent_tdata_get(swigCPtr, this); 44 | return (cPtr == 0) ? null : new SipTxData(cPtr, false); 45 | } 46 | 47 | public TxMsgEvent() { 48 | this(pjsua2JNI.new_TxMsgEvent(), true); 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/VideoWindowHandle.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class VideoWindowHandle { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected VideoWindowHandle(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(VideoWindowHandle obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_VideoWindowHandle(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setType(SWIGTYPE_p_pjmedia_vid_dev_hwnd_type value) { 39 | pjsua2JNI.VideoWindowHandle_type_set(swigCPtr, this, SWIGTYPE_p_pjmedia_vid_dev_hwnd_type.getCPtr(value)); 40 | } 41 | 42 | public SWIGTYPE_p_pjmedia_vid_dev_hwnd_type getType() { 43 | return new SWIGTYPE_p_pjmedia_vid_dev_hwnd_type(pjsua2JNI.VideoWindowHandle_type_get(swigCPtr, this), true); 44 | } 45 | 46 | public void setHandle(WindowHandle value) { 47 | pjsua2JNI.VideoWindowHandle_handle_set(swigCPtr, this, WindowHandle.getCPtr(value), value); 48 | } 49 | 50 | public WindowHandle getHandle() { 51 | long cPtr = pjsua2JNI.VideoWindowHandle_handle_get(swigCPtr, this); 52 | return (cPtr == 0) ? null : new WindowHandle(cPtr, false); 53 | } 54 | 55 | public VideoWindowHandle() { 56 | this(pjsua2JNI.new_VideoWindowHandle(), true); 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/WindowHandle.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class WindowHandle { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected WindowHandle(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(WindowHandle obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_WindowHandle(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setWindow(Object surface) { 39 | pjsua2JNI.WindowHandle_setWindow(swigCPtr, this, surface); 40 | } 41 | 42 | public WindowHandle() { 43 | this(pjsua2JNI.new_WindowHandle(), true); 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/pjmedia_tone_digit_map.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class pjmedia_tone_digit_map { 12 | private long swigCPtr; 13 | protected boolean swigCMemOwn; 14 | 15 | protected pjmedia_tone_digit_map(long cPtr, boolean cMemoryOwn) { 16 | swigCMemOwn = cMemoryOwn; 17 | swigCPtr = cPtr; 18 | } 19 | 20 | protected static long getCPtr(pjmedia_tone_digit_map obj) { 21 | return (obj == null) ? 0 : obj.swigCPtr; 22 | } 23 | 24 | protected void finalize() { 25 | delete(); 26 | } 27 | 28 | public synchronized void delete() { 29 | if (swigCPtr != 0) { 30 | if (swigCMemOwn) { 31 | swigCMemOwn = false; 32 | pjsua2JNI.delete_pjmedia_tone_digit_map(swigCPtr); 33 | } 34 | swigCPtr = 0; 35 | } 36 | } 37 | 38 | public void setCount(long value) { 39 | pjsua2JNI.pjmedia_tone_digit_map_count_set(swigCPtr, this, value); 40 | } 41 | 42 | public long getCount() { 43 | return pjsua2JNI.pjmedia_tone_digit_map_count_get(swigCPtr, this); 44 | } 45 | 46 | public pjmedia_tone_digit_map() { 47 | this(pjsua2JNI.new_pjmedia_tone_digit_map(), true); 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/pjsua2.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public class pjsua2 implements pjsua2Constants { 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/pjsua2Constants.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public interface pjsua2Constants { 12 | public final static int INVALID_ID = pjsua2JNI.INVALID_ID_get(); 13 | public final static int SUCCESS = pjsua2JNI.SUCCESS_get(); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/pjsua_invalid_id_const_.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public final class pjsua_invalid_id_const_ { 12 | public final static pjsua_invalid_id_const_ PJSUA_INVALID_ID = new pjsua_invalid_id_const_("PJSUA_INVALID_ID", pjsua2JNI.PJSUA_INVALID_ID_get()); 13 | 14 | public final int swigValue() { 15 | return swigValue; 16 | } 17 | 18 | public String toString() { 19 | return swigName; 20 | } 21 | 22 | public static pjsua_invalid_id_const_ swigToEnum(int swigValue) { 23 | if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) 24 | return swigValues[swigValue]; 25 | for (int i = 0; i < swigValues.length; i++) 26 | if (swigValues[i].swigValue == swigValue) 27 | return swigValues[i]; 28 | throw new IllegalArgumentException("No enum " + pjsua_invalid_id_const_.class + " with value " + swigValue); 29 | } 30 | 31 | private pjsua_invalid_id_const_(String swigName) { 32 | this.swigName = swigName; 33 | this.swigValue = swigNext++; 34 | } 35 | 36 | private pjsua_invalid_id_const_(String swigName, int swigValue) { 37 | this.swigName = swigName; 38 | this.swigValue = swigValue; 39 | swigNext = swigValue+1; 40 | } 41 | 42 | private pjsua_invalid_id_const_(String swigName, pjsua_invalid_id_const_ swigEnum) { 43 | this.swigName = swigName; 44 | this.swigValue = swigEnum.swigValue; 45 | swigNext = this.swigValue+1; 46 | } 47 | 48 | private static pjsua_invalid_id_const_[] swigValues = { PJSUA_INVALID_ID }; 49 | private static int swigNext = 0; 50 | private final int swigValue; 51 | private final String swigName; 52 | } 53 | 54 | -------------------------------------------------------------------------------- /app/src/main/java/org/pjsip/pjsua2/pjsua_ipv6_use.java: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | * This file was automatically generated by SWIG (http://www.swig.org). 3 | * Version 2.0.12 4 | * 5 | * Do not make changes to this file unless you know what you are doing--modify 6 | * the SWIG interface file instead. 7 | * ----------------------------------------------------------------------------- */ 8 | 9 | package org.pjsip.pjsua2; 10 | 11 | public final class pjsua_ipv6_use { 12 | public final static pjsua_ipv6_use PJSUA_IPV6_DISABLED = new pjsua_ipv6_use("PJSUA_IPV6_DISABLED"); 13 | public final static pjsua_ipv6_use PJSUA_IPV6_ENABLED = new pjsua_ipv6_use("PJSUA_IPV6_ENABLED"); 14 | 15 | public final int swigValue() { 16 | return swigValue; 17 | } 18 | 19 | public String toString() { 20 | return swigName; 21 | } 22 | 23 | public static pjsua_ipv6_use swigToEnum(int swigValue) { 24 | if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) 25 | return swigValues[swigValue]; 26 | for (int i = 0; i < swigValues.length; i++) 27 | if (swigValues[i].swigValue == swigValue) 28 | return swigValues[i]; 29 | throw new IllegalArgumentException("No enum " + pjsua_ipv6_use.class + " with value " + swigValue); 30 | } 31 | 32 | private pjsua_ipv6_use(String swigName) { 33 | this.swigName = swigName; 34 | this.swigValue = swigNext++; 35 | } 36 | 37 | private pjsua_ipv6_use(String swigName, int swigValue) { 38 | this.swigName = swigName; 39 | this.swigValue = swigValue; 40 | swigNext = swigValue+1; 41 | } 42 | 43 | private pjsua_ipv6_use(String swigName, pjsua_ipv6_use swigEnum) { 44 | this.swigName = swigName; 45 | this.swigValue = swigEnum.swigValue; 46 | swigNext = this.swigValue+1; 47 | } 48 | 49 | private static pjsua_ipv6_use[] swigValues = { PJSUA_IPV6_DISABLED, PJSUA_IPV6_ENABLED }; 50 | private static int swigNext = 0; 51 | private final int swigValue; 52 | private final String swigName; 53 | } 54 | 55 | -------------------------------------------------------------------------------- /app/src/main/java/org/webrtc/videoengine/ViERenderer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | package org.webrtc.videoengine; 12 | 13 | import android.content.Context; 14 | import android.view.SurfaceView; 15 | 16 | public class ViERenderer { 17 | public static SurfaceView CreateRenderer(Context context) { 18 | return CreateRenderer(context, false); 19 | } 20 | 21 | public static SurfaceView CreateRenderer(Context context, 22 | boolean useOpenGLES2) { 23 | if(useOpenGLES2 == true && ViEAndroidGLES20.IsSupported(context)) 24 | return new ViEAndroidGLES20(context); 25 | else 26 | return new SurfaceView(context); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/org/webrtc/voiceengine/WebRtcAudioUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | package org.webrtc.voiceengine; 12 | 13 | import android.os.Build; 14 | import android.util.Log; 15 | 16 | public final class WebRtcAudioUtils { 17 | // Use 44.1kHz as the default sampling rate. 18 | private static final int SAMPLE_RATE_HZ = 44100; 19 | 20 | public static boolean runningOnJellyBeanOrHigher() { 21 | return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN; 22 | } 23 | 24 | public static boolean runningOnJellyBeanMR1OrHigher() { 25 | return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1; 26 | } 27 | 28 | public static boolean runningOnLollipopOrHigher() { 29 | return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP; 30 | } 31 | 32 | /** Helper method for building a string of thread information.*/ 33 | public static String getThreadInfo() { 34 | return "@[name=" + Thread.currentThread().getName() 35 | + ", id=" + Thread.currentThread().getId() + "]"; 36 | } 37 | 38 | /** Information about the current build, taken from system properties. */ 39 | public static void logDeviceInfo(String tag) { 40 | Log.d(tag, "Android SDK: " + Build.VERSION.SDK_INT + ", " 41 | + "Release: " + Build.VERSION.RELEASE + ", " 42 | + "Brand: " + Build.BRAND + ", " 43 | + "Device: " + Build.DEVICE + ", " 44 | + "Id: " + Build.ID + ", " 45 | + "Hardware: " + Build.HARDWARE + ", " 46 | + "Manufacturer: " + Build.MANUFACTURER + ", " 47 | + "Model: " + Build.MODEL + ", " 48 | + "Product: " + Build.PRODUCT); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi-v7a/libpjmediaengine.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/jniLibs/armeabi-v7a/libpjmediaengine.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi-v7a/libpjsua2.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/jniLibs/armeabi-v7a/libpjsua2.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi/libpjmediaengine.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/jniLibs/armeabi/libpjmediaengine.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi/libpjsua2.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/jniLibs/armeabi/libpjsua2.so -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/app_accept_call_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/app_accept_call_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/app_call_error_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/app_call_error_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/app_call_user_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/app_call_user_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/app_call_user_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/app_call_user_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/app_call_wait_head_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/app_call_wait_head_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/app_hangup_call_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/app_hangup_call_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/app_open_door_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/app_open_door_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/app_sip_audio_call_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/app_sip_audio_call_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/btn_call_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/btn_call_background.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_addcontact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/ic_addcontact.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_call.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/ic_call.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_deletenumber.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/ic_deletenumber.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/ic_head.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_move.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/ic_move.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_unonline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/ic_unonline.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/perm_group_calendar_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/perm_group_calendar_normal.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/perm_group_calendar_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/perm_group_calendar_selected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/perm_group_camera_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/perm_group_camera_normal.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/perm_group_camera_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/perm_group_camera_selected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/status_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/status_green.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/status_offline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/status_offline.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/status_orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/status_orange.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/status_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/status_red.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/v1_wg_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/v1_wg_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/v1_wg_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/v1_wg_close.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/v1_wg_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/v1_wg_open.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/v1_wg_tx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-hdpi/v1_wg_tx.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/app_accept_call_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-mdpi/app_accept_call_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/app_call_error_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-mdpi/app_call_error_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/app_call_user_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-mdpi/app_call_user_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/app_call_user_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-mdpi/app_call_user_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/app_call_wait_head_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-mdpi/app_call_wait_head_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/app_hangup_call_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-mdpi/app_hangup_call_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/app_open_door_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-mdpi/app_open_door_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/app_sip_audio_call_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-mdpi/app_sip_audio_call_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 15 | 18 | 21 | 22 | 23 | 24 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/app_accept_call_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xhdpi/app_accept_call_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/app_call_error_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xhdpi/app_call_error_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/app_call_user_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xhdpi/app_call_user_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/app_call_user_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xhdpi/app_call_user_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/app_call_wait_head_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xhdpi/app_call_wait_head_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/app_hangup_call_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xhdpi/app_hangup_call_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/app_open_door_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xhdpi/app_open_door_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/app_sip_audio_call_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xhdpi/app_sip_audio_call_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/btn_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xhdpi/btn_camera.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/btn_camera_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xhdpi/btn_camera_press.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/btn_phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xhdpi/btn_phone.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/btn_phone_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xhdpi/btn_phone_press.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/btn_video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xhdpi/btn_video.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/btn_video_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xhdpi/btn_video_press.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/btn_voice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xhdpi/btn_voice.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/btn_voice_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xhdpi/btn_voice_press.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/app_accept_call_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xxhdpi/app_accept_call_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/app_call_error_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xxhdpi/app_call_error_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/app_call_user_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xxhdpi/app_call_user_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/app_call_user_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xxhdpi/app_call_user_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/app_call_wait_head_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xxhdpi/app_call_wait_head_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/app_hangup_call_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xxhdpi/app_hangup_call_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/app_open_door_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xxhdpi/app_open_door_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/app_sip_audio_call_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xxhdpi/app_sip_audio_call_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/app_accept_call_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable/app_accept_call_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/app_hangup_call_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable/app_hangup_call_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/app_open_door_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/drawable/app_open_door_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/app_video_shape_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bkg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_answer_video_phone.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_camera_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_hang_up.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_opendoor_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_voice_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/perm_group_calendar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/perm_group_camera.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/video_call_shape_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_sip_call.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/raw/empty_number.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/raw/empty_number.wav -------------------------------------------------------------------------------- /app/src/main/res/raw/no_people.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/raw/no_people.wav -------------------------------------------------------------------------------- /app/src/main/res/raw/outbound_ringback_tone.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/raw/outbound_ringback_tone.wav -------------------------------------------------------------------------------- /app/src/main/res/raw/refuse_call.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/raw/refuse_call.wav -------------------------------------------------------------------------------- /app/src/main/res/raw/ringtone_long.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/raw/ringtone_long.wav -------------------------------------------------------------------------------- /app/src/main/res/raw/user_busy.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/raw/user_busy.mp3 -------------------------------------------------------------------------------- /app/src/main/res/raw/wait_call.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/app/src/main/res/raw/wait_call.wav -------------------------------------------------------------------------------- /app/src/main/res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 16dp 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/values/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | UDP 5 | TCP 6 | TLS 7 | 8 | 9 | udp 10 | tcp 11 | tls 12 | 13 | 14 | 15 | CFI(352x288) 16 | VGA(640x480) 17 | HD(1280x720) 18 | 19 | 20 | cif 21 | vga 22 | hd 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #B8F2F5 4 | #E8FEFF 5 | 6 | #ffffff 7 | #949494 8 | #5b5b5b 9 | #7c7c7c 10 | #a0a0a0 11 | #6c6c6c 12 | 13 | #0089d7 14 | #aac1d9 15 | #ee3030 16 | #000000 17 | #00000000 18 | 19 | #0089d7 20 | #000000 21 | 22 | #2d2d2d 23 | #373737 24 | #404040 25 | #00000000 26 | 27 | #ecfbed 28 | 29 | #526EFF 30 | #526EFF 31 | #66FFFFFF 32 | #D14836 33 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 14 | 15 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | 5 | repositories { 6 | google() 7 | jcenter() 8 | 9 | } 10 | dependencies { 11 | classpath 'com.android.tools.build:gradle:3.6.3' 12 | 13 | 14 | // NOTE: Do not place your application dependencies here; they belong 15 | // in the individual module build.gradle files 16 | } 17 | } 18 | 19 | allprojects { 20 | repositories { 21 | google() 22 | jcenter() 23 | 24 | } 25 | } 26 | 27 | task clean(type: Delete) { 28 | delete rootProject.buildDir 29 | } 30 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | # AndroidX package structure to make it clearer which packages are bundled with the 15 | # Android operating system, and which are packaged with your app's APK 16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 17 | android.useAndroidX=true 18 | # Automatically convert third-party libraries to use AndroidX 19 | android.enableJetifier=true 20 | 21 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/279154451/PJSipSDK/6374359e19dd2939ea7d4899c924c27d48195539/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Nov 06 16:48:45 GMT+08:00 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip 7 | -------------------------------------------------------------------------------- /local.properties: -------------------------------------------------------------------------------- 1 | ## This file is automatically generated by Android Studio. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file should *NOT* be checked into Version Control Systems, 5 | # as it contains information specific to your local configuration. 6 | # 7 | # Location of the SDK. This is only used by Gradle. 8 | # For customization when using a Version Control System, please read the 9 | # header note. 10 | sdk.dir=E\:\\WorkSoft\\Android\\SDK -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name='SipSdk' 2 | include ':app' 3 | --------------------------------------------------------------------------------