├── pjsip ├── build │ ├── os-auto.mak.in │ ├── os-rtems.mak │ └── CMakeLists.txt ├── include │ └── pjsua.h ├── src │ └── test │ │ ├── main_win32.c │ │ └── main_rtems.c └── docs │ ├── pjsua.jpg │ ├── siprtp.jpg │ ├── pjsip-arch.jpg │ ├── pjsip-perf.jpg │ ├── footer.html │ └── header.html ├── tests ├── cdash │ └── inc_test.py ├── pjsua │ ├── wavs │ │ ├── tock8.wav │ │ ├── input.11.wav │ │ ├── input.16.wav │ │ ├── input.2.8.wav │ │ ├── input.22.wav │ │ ├── input.32.wav │ │ ├── input.44.wav │ │ ├── input.48.wav │ │ ├── input.8.wav │ │ └── input.2.16.wav │ ├── tools │ │ ├── cmp_wav.exe │ │ └── Makefile │ ├── config_site.py │ ├── scripts-sipp │ │ ├── uac-ticket-1864-scenario1.py │ │ ├── uas-mwi-0.py │ │ ├── uas-mwi.py │ │ ├── uas-cancel-no-final.py │ │ ├── uas-reinv-glare.py │ │ ├── uac-ticket-1864-scenario2.py │ │ ├── uac-ticket-1148.py │ │ ├── uac-ticket-1866-reinv-after-failed-nego.py │ │ ├── uas-answer-200-reinvite-without-sdp.py │ │ ├── uas-answer-200-update-without-sdp.py │ │ ├── uas-auth.py │ │ ├── uac-inv-two-media-but-one-disabled-no-rtpmap.py │ │ ├── strict-route.py │ │ ├── uas-reinv-with-less-media.py │ │ ├── uac-inv-without-sdp.py │ │ ├── uas-subscribe-notify-terminate.py │ │ ├── uas-subscribe-refresh-481.py │ │ ├── uas-subscribe-multipart-notify.py │ │ ├── uas-subscribe-late-notify.py │ │ ├── uas-subscribe-terminated-retry.py │ │ ├── transfer-attended.xml │ │ ├── transfer-unattended.xml │ │ └── transfer-unattended.py │ ├── mod_run.py │ ├── scripts-call │ │ ├── 100_simplecall.py │ │ ├── 400_tel_uri.py │ │ ├── 350_prack_a.py │ │ ├── 350_prack_b.py │ │ ├── 300_ice_0_1.py │ │ ├── 300_ice_1_0.py │ │ ├── 150_srtp_0_1.py │ │ ├── 150_srtp_1_0.py │ │ ├── 200_tcp.py │ │ ├── 300_ice_1_1.py │ │ ├── 150_srtp_1_1.py │ │ ├── 150_srtp_1_2.py │ │ ├── 150_srtp_2_2.py │ │ ├── 305_ice_comp_1_2.py │ │ ├── 305_ice_comp_2_1.py │ │ ├── 150_srtp_0_3.py │ │ ├── 150_srtp_3_0.py │ │ ├── 150_srtp_2_1.py │ │ ├── 150_srtp_1_3.py │ │ ├── 150_srtp_2_3.py │ │ ├── 150_srtp_3_1.py │ │ ├── 150_srtp_3_2.py │ │ └── 150_srtp_3_3.py │ ├── scripts-pres │ │ └── 100_peertopeer.py │ ├── scripts-run │ │ ├── 100_simple.py │ │ └── 200_register.py │ ├── scripts-media-playrec │ │ ├── 100_resample_lf_11_16.py │ │ ├── 100_resample_lf_11_22.py │ │ ├── 100_resample_lf_11_32.py │ │ ├── 100_resample_lf_11_44.py │ │ ├── 100_resample_lf_11_48.py │ │ ├── 100_resample_lf_11_8.py │ │ ├── 100_resample_lf_8_11.py │ │ ├── 100_resample_lf_8_16.py │ │ ├── 100_resample_lf_8_22.py │ │ ├── 100_resample_lf_8_32.py │ │ ├── 100_resample_lf_8_44.py │ │ └── 100_resample_lf_8_48.py │ ├── scripts-sendto │ │ ├── 100_simplecall.py │ │ ├── 152_err_sdp_no_media.py │ │ ├── 155_err_sdp_bad_syntax.py │ │ ├── 151_err_sdp_video.py │ │ ├── 153_err_sdp_unsupported_codec.py │ │ ├── 161_err_replaces_dlg_not_found.py │ │ ├── 160_err_duplicate_replaces.py │ │ ├── 158_err_sdp_bad_transport_type.py │ │ ├── 200_ice_no_ice.py │ │ ├── 150_err_extension.py │ │ ├── 156_err_sdp_bad_net_type.py │ │ ├── 157_err_sdp_bad_addr_type.py │ │ ├── 320_srtp2_no_crypto.py │ │ ├── 172_timer_supported_but_not_used.py │ │ ├── 310_srtp1_no_crypto.py │ │ ├── 300_srtp_receive_no_key_1.py │ │ ├── 125_sdp_with_multi_audio_1.py │ │ ├── 125_sdp_with_multi_audio_2.py │ │ ├── 159_no_rport_nit.py │ │ ├── 300_srtp_receive_no_key_2.py │ │ ├── 300_srtp_receive_no_key_3.py │ │ ├── 323_srtp2_receive_too_long_key.py │ │ ├── 174_timer_se_too_small.py │ │ ├── 126_sdp_with_port_0_and_no_rtpmap_for_dynamic_pt.py │ │ ├── 122_sdp_with_unknown_dynamic_1.py │ │ ├── 122_sdp_with_unknown_dynamic_2.py │ │ ├── 201_ice_mismatch_1.py │ │ ├── 999_message_no_body.py │ │ ├── 123_sdp_with_unknown_static_1.py │ │ ├── 123_sdp_with_unknown_static_2.py │ │ ├── 173_timer_offer_no_refresher.py │ │ ├── 120_sdp_with_video_dynamic_1.py │ │ ├── 125_sdp_with_multi_audio_4.py │ │ ├── 173_timer_offer_refresher_uac.py │ │ ├── 173_timer_offer_refresher_uas.py │ │ ├── 300_srtp_receive_crypto_tag_zero.py │ │ ├── 124_sdp_with_unknown_static_unknown_transport.py │ │ ├── 170_timer_required.py │ │ ├── 323_srtp2_unsupported_crypto.py │ │ ├── 120_sdp_with_video_dynamic_2.py │ │ ├── 201_ice_mismatch_3.py │ │ ├── 140_sdp_with_direction_attr_in_session_1.py │ │ ├── 313_srtp1_unsupported_crypto.py │ │ ├── 001_torture_4475_3_1_1_4.py │ │ ├── 121_sdp_with_video_static_1.py │ │ ├── 125_sdp_with_multi_audio_3.py │ │ ├── 121_sdp_with_video_static_2.py │ │ ├── 361_non_sip_uri.py │ │ ├── 201_ice_mismatch_2.py │ │ ├── 320_srtp_with_unknown_transport_1.py │ │ ├── 320_srtp_with_unknown_transport_2.py │ │ ├── 360_non_sip_uri.py │ │ ├── 362_non_sip_uri.py │ │ └── 301_srtp0_recv_savp.py │ ├── scripts-pesq │ │ ├── 101_defaults.py │ │ ├── 201_codec_gsm.py │ │ ├── 100_defaults.py │ │ ├── 201_codec_g711a.py │ │ ├── 201_codec_g711u.py │ │ ├── 201_codec_ilbc.py │ │ ├── 201_codec_g722.py │ │ ├── 200_codec_gsm.py │ │ ├── 200_codec_g711a.py │ │ ├── 200_codec_g711u.py │ │ ├── 200_codec_g722.py │ │ ├── 200_codec_ilbc.py │ │ ├── 201_codec_l16_8000.py │ │ ├── 201_codec_speex_8000.py │ │ ├── 201_codec_l16_16000.py │ │ ├── 201_codec_speex_16000.py │ │ ├── 201_codec_l16_8000_stereo.py │ │ ├── 200_codec_l16_8000.py │ │ ├── 201_codec_l16_16000_stereo.py │ │ ├── 200_codec_l16_16000.py │ │ ├── 200_codec_speex_8000.py │ │ ├── 200_codec_speex_16000.py │ │ ├── 200_codec_l16_8000_stereo.py │ │ └── 200_codec_l16_16000_stereo.py │ └── scripts-recvfrom │ │ ├── 200_reg_good_enocredentiall.py │ │ ├── 235_reg_good_tel_uri_enocredential.py │ │ ├── 100_simple.py │ │ ├── 300_timer_good.py │ │ ├── 205_reg_good_no_realm.py │ │ └── 209b_reg_handle_423_bad_min_expires1.py └── automated │ ├── README.txt │ ├── run_scenario.py │ ├── iphone.xml.template │ ├── iphone64.xml.template │ ├── testvars.template │ └── android.xml.template ├── third_party ├── srtp │ ├── VERSION │ ├── crypto │ │ └── VERSION │ ├── undos.sh │ ├── update.sh │ ├── libsrtp.pc.in │ ├── install-win.bat │ └── doc │ │ └── references.txt ├── g7221 │ ├── common │ │ ├── defs.h │ │ ├── common.c │ │ ├── huff_def.h │ │ ├── huff_tab.c │ │ ├── huff_tab.h │ │ ├── tables.c │ │ └── tables.h │ ├── decode │ │ ├── coef2sam.c │ │ ├── dct4_s.c │ │ ├── dct4_s.h │ │ └── decoder.c │ └── encode │ │ ├── dct4_a.c │ │ ├── dct4_a.h │ │ ├── encoder.c │ │ └── sam2coef.c ├── yuv │ ├── AUTHORS │ ├── LICENSE_THIRD_PARTY │ ├── OWNERS │ ├── include │ │ └── libyuv │ │ │ └── version.h │ └── README.md ├── threademulation │ └── Microsoft Permissive License.txt ├── build │ ├── os-darwinos.mak │ ├── os-linux.mak │ ├── os-win32.mak │ ├── resample │ │ ├── config.h │ │ └── CMakeLists.txt │ ├── speex │ │ └── speex │ │ │ └── speex_config_types.h │ ├── g7221 │ │ └── CMakeLists.txt │ ├── openssl │ │ └── CMakeLists.txt │ ├── webrtc │ │ └── notes.txt │ ├── uuid │ │ └── CMakeLists.txt │ ├── Makefile │ └── gsm │ │ └── config.h ├── speex │ ├── include │ │ └── speex │ │ │ └── speex_config_types.h.in │ ├── win32 │ │ └── config.h │ └── AUTHORS ├── resample │ ├── src │ │ ├── libresample_dll.c │ │ └── stddefs.h │ └── include │ │ └── resamplesubs.h ├── webrtc │ ├── README.chromium │ ├── OWNERS │ └── src │ │ └── webrtc │ │ ├── system_wrappers │ │ └── source │ │ │ └── cpu_features_android.c │ │ └── common_audio │ │ └── fft4g.h ├── gsm │ ├── tls │ │ └── taste.h │ ├── MACHINES │ ├── inc │ │ └── unproto.h │ ├── src │ │ ├── gsm_destroy.c │ │ └── toast_lin.c │ ├── COPYRIGHT │ └── tst │ │ └── run ├── README.txt └── ilbc │ ├── hpInput.h │ ├── hpOutput.h │ ├── lsf.h │ ├── syntFilter.h │ ├── FrameClassify.h │ ├── anaFilter.h │ └── getCBvec.h ├── pjsip-apps ├── src │ ├── samples │ │ ├── android_sample │ │ │ └── jni │ │ │ │ ├── dummy.c │ │ │ │ ├── Application.mk │ │ │ │ └── Android.mk │ │ └── main_rtems.c │ ├── python │ │ ├── _pjsua.def │ │ ├── Makefile │ │ └── helper.mak │ ├── pjsua │ │ ├── android │ │ │ ├── settings.gradle │ │ │ ├── app │ │ │ │ ├── src │ │ │ │ │ └── main │ │ │ │ │ │ └── res │ │ │ │ │ │ ├── values │ │ │ │ │ │ ├── styles.xml │ │ │ │ │ │ └── strings.xml │ │ │ │ │ │ ├── values-v11 │ │ │ │ │ │ └── styles.xml │ │ │ │ │ │ ├── values-v14 │ │ │ │ │ │ └── styles.xml │ │ │ │ │ │ ├── drawable-hdpi │ │ │ │ │ │ └── main_image.png │ │ │ │ │ │ ├── drawable-ldpi │ │ │ │ │ │ └── main_image.png │ │ │ │ │ │ ├── drawable-mdpi │ │ │ │ │ │ └── main_image.png │ │ │ │ │ │ └── drawable-xhdpi │ │ │ │ │ │ └── main_image.png │ │ │ │ └── build.gradle │ │ │ ├── gradle │ │ │ │ └── wrapper │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── build.gradle │ │ │ └── jni │ │ │ │ └── pjsua.i │ │ ├── bb10 │ │ │ ├── translations │ │ │ │ ├── PjsuaBB.pro │ │ │ │ ├── Makefile │ │ │ │ └── PjsuaBB.ts │ │ │ ├── assets │ │ │ │ ├── .assets.index │ │ │ │ └── images │ │ │ │ │ └── teluu-logo.png │ │ │ ├── icon.png │ │ │ ├── precompiled.h │ │ │ ├── Makefile │ │ │ └── PjsuaBB.pro │ │ ├── ios │ │ │ ├── ipjsua │ │ │ │ ├── en.lproj │ │ │ │ │ └── InfoPlist.strings │ │ │ │ ├── pjsua.png │ │ │ │ ├── Default.png │ │ │ │ ├── Default@2x.png │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── ipjsua-Prefix.pch │ │ │ │ └── main.m │ │ │ └── ipjsua.xcworkspace │ │ │ │ └── contents.xcworkspacedata │ │ ├── pjsua_app.h │ │ ├── wm │ │ │ └── pjsua.bmp │ │ ├── symbian │ │ │ ├── gfx │ │ │ │ ├── pjsua.bmp │ │ │ │ ├── list_icon.bmp │ │ │ │ ├── mark_icon.bmp │ │ │ │ ├── list_icon_mask.bmp │ │ │ │ └── mark_icon_mask.bmp │ │ │ ├── sis │ │ │ │ └── backup_registration.xml │ │ │ ├── data │ │ │ │ ├── pjsua_reg.loc │ │ │ │ ├── pjsua.loc │ │ │ │ ├── pjsuaContainer.loc │ │ │ │ ├── pjsua_reg.rss │ │ │ │ ├── pjsua.l01 │ │ │ │ ├── pjsuaContainer.l01 │ │ │ │ └── pjsuaContainer.rssi │ │ │ ├── inc │ │ │ │ ├── pjsua.pan │ │ │ │ └── pjsua.hrh │ │ │ └── group │ │ │ │ ├── ABLD.BAT │ │ │ │ └── bld.inf │ │ ├── winrt │ │ │ ├── cli │ │ │ │ ├── uwp │ │ │ │ │ ├── Assets │ │ │ │ │ │ ├── StoreLogo.png │ │ │ │ │ │ ├── teluu-logo.png │ │ │ │ │ │ ├── LockScreenLogo.scale-200.png │ │ │ │ │ │ ├── SplashScreen.scale-200.png │ │ │ │ │ │ ├── Square44x44Logo.scale-200.png │ │ │ │ │ │ ├── Wide310x150Logo.scale-200.png │ │ │ │ │ │ ├── Square150x150Logo.scale-200.png │ │ │ │ │ │ └── Square44x44Logo.targetsize-24_altform-unplated.png │ │ │ │ │ ├── ApplicationInsights.config │ │ │ │ │ ├── App.xaml │ │ │ │ │ └── project.json │ │ │ │ ├── wp8 │ │ │ │ │ ├── Assets │ │ │ │ │ │ └── teluu-logo.png │ │ │ │ │ └── Properties │ │ │ │ │ │ └── AppManifest.xml │ │ │ │ └── comp │ │ │ │ │ ├── pjsua_cli_wp8_comp.vcxproj.filters │ │ │ │ │ └── pjsua_cli_uwp_comp.vcxproj.filters │ │ │ └── gui │ │ │ │ └── uwp │ │ │ │ ├── Voip │ │ │ │ ├── Assets │ │ │ │ │ ├── StoreLogo.png │ │ │ │ │ ├── LockScreenLogo.scale-200.png │ │ │ │ │ ├── SplashScreen.scale-200.png │ │ │ │ │ ├── Square44x44Logo.scale-200.png │ │ │ │ │ ├── Wide310x150Logo.scale-200.png │ │ │ │ │ ├── Square150x150Logo.scale-200.png │ │ │ │ │ └── Square44x44Logo.targetsize-24_altform-unplated.png │ │ │ │ ├── Voip_TemporaryKey.pfx │ │ │ │ ├── ApplicationInsights.config │ │ │ │ ├── App.xaml │ │ │ │ └── project.json │ │ │ │ ├── VoipTasks │ │ │ │ └── project.json │ │ │ │ ├── VoipBackEnd │ │ │ │ ├── pch.cpp │ │ │ │ ├── pch.h │ │ │ │ ├── ApiLock.cpp │ │ │ │ └── VoipBackEnd.vcxproj.filters │ │ │ │ └── VoipHost │ │ │ │ └── VoipHost.vcxproj.filters │ │ └── main_rtems.c │ ├── py_pjsua │ │ ├── py_pjsua.def │ │ ├── Makefile │ │ ├── DEPRECATED.txt │ │ └── helper.mak │ ├── swig │ │ ├── java │ │ │ ├── android │ │ │ │ ├── settings.gradle │ │ │ │ ├── gradle │ │ │ │ │ └── wrapper │ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ ├── app │ │ │ │ │ ├── src │ │ │ │ │ │ └── main │ │ │ │ │ │ │ └── res │ │ │ │ │ │ │ ├── drawable-hdpi │ │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ │ ├── drawable-mdpi │ │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ │ ├── drawable-xhdpi │ │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ │ ├── drawable-xxhdpi │ │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ │ ├── values │ │ │ │ │ │ │ ├── colors.xml │ │ │ │ │ │ │ ├── dimens.xml │ │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ │ └── styles.xml │ │ │ │ │ │ │ ├── values-sw600dp │ │ │ │ │ │ │ └── dimens.xml │ │ │ │ │ │ │ ├── drawable │ │ │ │ │ │ │ └── bkg.xml │ │ │ │ │ │ │ ├── menu │ │ │ │ │ │ │ ├── call.xml │ │ │ │ │ │ │ └── main.xml │ │ │ │ │ │ │ ├── values-sw720dp-land │ │ │ │ │ │ │ └── dimens.xml │ │ │ │ │ │ │ ├── values-v11 │ │ │ │ │ │ │ └── styles.xml │ │ │ │ │ │ │ └── values-v14 │ │ │ │ │ │ │ └── styles.xml │ │ │ │ │ └── build.gradle │ │ │ │ └── build.gradle │ │ │ └── test.java │ │ └── python │ │ │ └── helper.mak │ ├── vidgui │ │ ├── pj-pkgconfig.mak │ │ └── INSTALL.TXT │ ├── symsndtest │ │ └── symsndtest_reg.rss │ ├── pjsystest │ │ ├── pjsystest_wince.rc2 │ │ └── resource.h │ ├── ipjsystest │ │ └── ipjsystest_Prefix.pch │ └── 3rdparty_media_sample │ │ └── Makefile └── build │ ├── os-win32.mak │ ├── dummy.c │ └── Footprint.mak ├── svn_add ├── pjlib-util ├── build │ ├── os-rtems.mak │ └── os-auto.mak.in ├── src │ └── pjlib-util-test │ │ ├── main_win32.c │ │ └── main_rtems.c └── docs │ ├── footer.html │ └── header.html ├── pjnath ├── src │ └── pjnath-test │ │ └── main_win32.c ├── docs │ ├── doc_nat.h │ ├── ice-arch.jpg │ ├── ice_demo.jpg │ ├── stun-arch.jpg │ ├── pjturn_client.jpg │ ├── UML-class-diagram.dia │ ├── UML-class-diagram.png │ ├── footer.html │ └── header.html └── build │ └── CMakeLists.txt ├── svn_pset ├── pjmedia ├── docs │ ├── siprtp.jpg │ ├── sndtest.jpg │ ├── media-flow.jpg │ ├── media-flow.vsd │ ├── master-port.jpg │ ├── media-transport.PNG │ ├── media-srtp-transport.PNG │ ├── sample-manual-resampling.jpg │ ├── footer.html │ └── header.html ├── include │ └── pjmedia-codec │ │ └── g7221.h ├── src │ └── test │ │ └── vectors │ │ ├── g722_1_enc_in.wav │ │ ├── g722_1_dec_out_24000.pcm │ │ ├── g722_1_dec_out_32000.pcm │ │ ├── g722_1_dec_in_24000_fe.itu │ │ ├── g722_1_dec_in_32000_fe.itu │ │ ├── g722_1_dec_out_24000_fe.pcm │ │ ├── g722_1_dec_out_32000_fe.pcm │ │ ├── g722_1_enc_out_24000_be.pak │ │ └── g722_1_enc_out_32000_be.pak ├── build │ ├── m-i386.mak │ ├── m-x86_64.mak │ └── os-rtems.mak └── README.txt ├── pjlib ├── src │ ├── pj │ │ ├── os_info_symbian.cpp │ │ └── log_writer_logcat.c │ └── pjlib-test │ │ └── pjlib_test_reg.rss ├── include │ └── pj │ │ └── config_site.h └── docs │ ├── footer.html │ └── header.html ├── configure ├── svn_add.bat ├── user.mak.sample ├── svn_pset.bat ├── .gitmodules ├── libpjproject.pc.in ├── doc └── pjsip-book │ ├── optimization.rst │ ├── network_problems.rst │ └── index.rst ├── c++-build.mak ├── scripts └── android-init-arm-v7a.sh └── version.mak /pjsip/build/os-auto.mak.in: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/cdash/inc_test.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /third_party/srtp/VERSION: -------------------------------------------------------------------------------- 1 | 1.5.4 2 | -------------------------------------------------------------------------------- /third_party/srtp/crypto/VERSION: -------------------------------------------------------------------------------- 1 | 1.0.0 2 | -------------------------------------------------------------------------------- /pjsip-apps/src/samples/android_sample/jni/dummy.c: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pjsip/include/pjsua.h: -------------------------------------------------------------------------------- 1 | #include 2 | -------------------------------------------------------------------------------- /pjsip-apps/src/python/_pjsua.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | init_pjsua 3 | -------------------------------------------------------------------------------- /pjsip-apps/build/os-win32.mak: -------------------------------------------------------------------------------- 1 | 2 | export LDFLAGS += -lwinmm 3 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /pjsip-apps/src/py_pjsua/py_pjsua.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | initpy_pjsua 3 | -------------------------------------------------------------------------------- /pjsip-apps/src/swig/java/android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /pjsip/build/os-rtems.mak: -------------------------------------------------------------------------------- 1 | export TEST_OBJS = main_rtems.o 2 | 3 | -------------------------------------------------------------------------------- /pjsip-apps/src/samples/android_sample/jni/Application.mk: -------------------------------------------------------------------------------- 1 | APP_ABI := all -------------------------------------------------------------------------------- /svn_add: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | svn add $* 4 | 5 | ./svn_pset $* 6 | 7 | -------------------------------------------------------------------------------- /pjlib-util/build/os-rtems.mak: -------------------------------------------------------------------------------- 1 | export UTIL_TEST_OBJS = main_rtems.o 2 | 3 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/bb10/translations/PjsuaBB.pro: -------------------------------------------------------------------------------- 1 | include (../PjsuaBB.pro) 2 | -------------------------------------------------------------------------------- /pjsip/src/test/main_win32.c: -------------------------------------------------------------------------------- 1 | #include "../../pjlib/src/pjlib-test/main_win32.c" 2 | -------------------------------------------------------------------------------- /pjnath/src/pjnath-test/main_win32.c: -------------------------------------------------------------------------------- 1 | #include "../../pjlib/src/pjlib-test/main_win32.c" 2 | -------------------------------------------------------------------------------- /pjsip/docs/pjsua.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjsip/docs/pjsua.jpg -------------------------------------------------------------------------------- /pjlib-util/src/pjlib-util-test/main_win32.c: -------------------------------------------------------------------------------- 1 | #include "../../pjlib/src/pjlib-test/main_win32.c" 2 | -------------------------------------------------------------------------------- /pjnath/docs/doc_nat.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjnath/docs/doc_nat.h -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/bb10/assets/.assets.index: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | main.qml 4 | images/teluu-logo.png 5 | -------------------------------------------------------------------------------- /pjsip/docs/siprtp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjsip/docs/siprtp.jpg -------------------------------------------------------------------------------- /svn_pset: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | svn pset svn:keywords id $* 4 | svn pset svn:eol-style native $* 5 | -------------------------------------------------------------------------------- /pjlib-util/build/os-auto.mak.in: -------------------------------------------------------------------------------- 1 | # @configure_input@ 2 | export UTIL_TEST_OBJS = @ac_main_obj@ 3 | 4 | -------------------------------------------------------------------------------- /pjmedia/docs/siprtp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjmedia/docs/siprtp.jpg -------------------------------------------------------------------------------- /pjmedia/docs/sndtest.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjmedia/docs/sndtest.jpg -------------------------------------------------------------------------------- /pjnath/docs/ice-arch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjnath/docs/ice-arch.jpg -------------------------------------------------------------------------------- /pjnath/docs/ice_demo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjnath/docs/ice_demo.jpg -------------------------------------------------------------------------------- /pjnath/docs/stun-arch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjnath/docs/stun-arch.jpg -------------------------------------------------------------------------------- /pjsip/docs/pjsip-arch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjsip/docs/pjsip-arch.jpg -------------------------------------------------------------------------------- /pjsip/docs/pjsip-perf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjsip/docs/pjsip-perf.jpg -------------------------------------------------------------------------------- /pjmedia/docs/media-flow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjmedia/docs/media-flow.jpg -------------------------------------------------------------------------------- /pjmedia/docs/media-flow.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjmedia/docs/media-flow.vsd -------------------------------------------------------------------------------- /tests/pjsua/wavs/tock8.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/tests/pjsua/wavs/tock8.wav -------------------------------------------------------------------------------- /pjmedia/docs/master-port.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjmedia/docs/master-port.jpg -------------------------------------------------------------------------------- /pjnath/docs/pjturn_client.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjnath/docs/pjturn_client.jpg -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/ios/ipjsua/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /tests/pjsua/tools/cmp_wav.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/tests/pjsua/tools/cmp_wav.exe -------------------------------------------------------------------------------- /tests/pjsua/wavs/input.11.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/tests/pjsua/wavs/input.11.wav -------------------------------------------------------------------------------- /tests/pjsua/wavs/input.16.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/tests/pjsua/wavs/input.16.wav -------------------------------------------------------------------------------- /tests/pjsua/wavs/input.2.8.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/tests/pjsua/wavs/input.2.8.wav -------------------------------------------------------------------------------- /tests/pjsua/wavs/input.22.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/tests/pjsua/wavs/input.22.wav -------------------------------------------------------------------------------- /tests/pjsua/wavs/input.32.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/tests/pjsua/wavs/input.32.wav -------------------------------------------------------------------------------- /tests/pjsua/wavs/input.44.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/tests/pjsua/wavs/input.44.wav -------------------------------------------------------------------------------- /tests/pjsua/wavs/input.48.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/tests/pjsua/wavs/input.48.wav -------------------------------------------------------------------------------- /tests/pjsua/wavs/input.8.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/tests/pjsua/wavs/input.8.wav -------------------------------------------------------------------------------- /pjlib/src/pj/os_info_symbian.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjlib/src/pj/os_info_symbian.cpp -------------------------------------------------------------------------------- /pjmedia/docs/media-transport.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjmedia/docs/media-transport.PNG -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/pjsua_app.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjsip-apps/src/pjsua/pjsua_app.h -------------------------------------------------------------------------------- /tests/pjsua/wavs/input.2.16.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/tests/pjsua/wavs/input.2.16.wav -------------------------------------------------------------------------------- /third_party/g7221/common/defs.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/third_party/g7221/common/defs.h -------------------------------------------------------------------------------- /pjnath/docs/UML-class-diagram.dia: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjnath/docs/UML-class-diagram.dia -------------------------------------------------------------------------------- /pjnath/docs/UML-class-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjnath/docs/UML-class-diagram.png -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/bb10/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjsip-apps/src/pjsua/bb10/icon.png -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/wm/pjsua.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjsip-apps/src/pjsua/wm/pjsua.bmp -------------------------------------------------------------------------------- /third_party/g7221/common/common.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/third_party/g7221/common/common.c -------------------------------------------------------------------------------- /third_party/g7221/common/huff_def.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/third_party/g7221/common/huff_def.h -------------------------------------------------------------------------------- /third_party/g7221/common/huff_tab.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/third_party/g7221/common/huff_tab.c -------------------------------------------------------------------------------- /third_party/g7221/common/huff_tab.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/third_party/g7221/common/huff_tab.h -------------------------------------------------------------------------------- /third_party/g7221/common/tables.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/third_party/g7221/common/tables.c -------------------------------------------------------------------------------- /third_party/g7221/common/tables.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/third_party/g7221/common/tables.h -------------------------------------------------------------------------------- /third_party/g7221/decode/coef2sam.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/third_party/g7221/decode/coef2sam.c -------------------------------------------------------------------------------- /third_party/g7221/decode/dct4_s.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/third_party/g7221/decode/dct4_s.c -------------------------------------------------------------------------------- /third_party/g7221/decode/dct4_s.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/third_party/g7221/decode/dct4_s.h -------------------------------------------------------------------------------- /third_party/g7221/decode/decoder.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/third_party/g7221/decode/decoder.c -------------------------------------------------------------------------------- /third_party/g7221/encode/dct4_a.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/third_party/g7221/encode/dct4_a.c -------------------------------------------------------------------------------- /third_party/g7221/encode/dct4_a.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/third_party/g7221/encode/dct4_a.h -------------------------------------------------------------------------------- /third_party/g7221/encode/encoder.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/third_party/g7221/encode/encoder.c -------------------------------------------------------------------------------- /third_party/g7221/encode/sam2coef.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/third_party/g7221/encode/sam2coef.c -------------------------------------------------------------------------------- /pjmedia/docs/media-srtp-transport.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjmedia/docs/media-srtp-transport.PNG -------------------------------------------------------------------------------- /pjmedia/include/pjmedia-codec/g7221.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjmedia/include/pjmedia-codec/g7221.h -------------------------------------------------------------------------------- /pjsip-apps/src/py_pjsua/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | python setup.py install 3 | 4 | clean: 5 | python setup.py clean 6 | rm -rf ./build 7 | -------------------------------------------------------------------------------- /pjmedia/docs/sample-manual-resampling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjmedia/docs/sample-manual-resampling.jpg -------------------------------------------------------------------------------- /pjmedia/src/test/vectors/g722_1_enc_in.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjmedia/src/test/vectors/g722_1_enc_in.wav -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/ios/ipjsua/pjsua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjsip-apps/src/pjsua/ios/ipjsua/pjsua.png -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/symbian/gfx/pjsua.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjsip-apps/src/pjsua/symbian/gfx/pjsua.bmp -------------------------------------------------------------------------------- /third_party/yuv/AUTHORS: -------------------------------------------------------------------------------- 1 | # Names should be added to this file like so: 2 | # Name or Organization 3 | 4 | Google Inc. 5 | -------------------------------------------------------------------------------- /pjnath/build/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB PJNATH_SRC ../src/pjnath/*.c ../include/pjnath/*.h) 2 | 3 | add_library(pjnath OBJECT ${PJNATH_SRC}) 4 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/ios/ipjsua/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjsip-apps/src/pjsua/ios/ipjsua/Default.png -------------------------------------------------------------------------------- /pjlib/include/pj/config_site.h: -------------------------------------------------------------------------------- 1 | #if defined PJ_LINUX 2 | # define PJ_HAS_NETINET_TCP_H 1 3 | # define PJ_HAS_STDINT_H 1 4 | #endif 5 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/ios/ipjsua/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjsip-apps/src/pjsua/ios/ipjsua/Default@2x.png -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/symbian/gfx/list_icon.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjsip-apps/src/pjsua/symbian/gfx/list_icon.bmp -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/symbian/gfx/mark_icon.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjsip-apps/src/pjsua/symbian/gfx/mark_icon.bmp -------------------------------------------------------------------------------- /pjmedia/src/test/vectors/g722_1_dec_out_24000.pcm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjmedia/src/test/vectors/g722_1_dec_out_24000.pcm -------------------------------------------------------------------------------- /pjmedia/src/test/vectors/g722_1_dec_out_32000.pcm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjmedia/src/test/vectors/g722_1_dec_out_32000.pcm -------------------------------------------------------------------------------- /pjsip-apps/src/py_pjsua/DEPRECATED.txt: -------------------------------------------------------------------------------- 1 | This Python module is now deprecated. Please use the new implementation under 2 | pjsip-apps/python directory. 3 | -------------------------------------------------------------------------------- /tests/pjsua/config_site.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | 3 | # Specify if host has sound device, or test should be performed using sound device 4 | HAS_SND_DEV = 0 5 | -------------------------------------------------------------------------------- /pjmedia/src/test/vectors/g722_1_dec_in_24000_fe.itu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjmedia/src/test/vectors/g722_1_dec_in_24000_fe.itu -------------------------------------------------------------------------------- /pjmedia/src/test/vectors/g722_1_dec_in_32000_fe.itu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjmedia/src/test/vectors/g722_1_dec_in_32000_fe.itu -------------------------------------------------------------------------------- /pjmedia/src/test/vectors/g722_1_dec_out_24000_fe.pcm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjmedia/src/test/vectors/g722_1_dec_out_24000_fe.pcm -------------------------------------------------------------------------------- /pjmedia/src/test/vectors/g722_1_dec_out_32000_fe.pcm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjmedia/src/test/vectors/g722_1_dec_out_32000_fe.pcm -------------------------------------------------------------------------------- /pjmedia/src/test/vectors/g722_1_enc_out_24000_be.pak: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjmedia/src/test/vectors/g722_1_enc_out_24000_be.pak -------------------------------------------------------------------------------- /pjmedia/src/test/vectors/g722_1_enc_out_32000_be.pak: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjmedia/src/test/vectors/g722_1_enc_out_32000_be.pak -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/ios/ipjsua/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjsip-apps/src/pjsua/ios/ipjsua/Default-568h@2x.png -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/symbian/gfx/list_icon_mask.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjsip-apps/src/pjsua/symbian/gfx/list_icon_mask.bmp -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/symbian/gfx/mark_icon_mask.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjsip-apps/src/pjsua/symbian/gfx/mark_icon_mask.bmp -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/bb10/assets/images/teluu-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjsip-apps/src/pjsua/bb10/assets/images/teluu-logo.png -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/winrt/cli/uwp/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pol51/PJSIP-CMake/HEAD/pjsip-apps/src/pjsua/winrt/cli/uwp/Assets/StoreLogo.png -------------------------------------------------------------------------------- /configure: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ./aconfigure "$@" 3 | 4 | # Note: 5 | # if you're looking for the old configure script, it has been renamed 6 | # to configure-legacy 7 | 8 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /c++-build.mak: -------------------------------------------------------------------------------- 1 | include build.mak 2 | include build/host-$(HOST_NAME).mak 3 | 4 | DIRS = pjlib pjlib-util pjnath pjmedia pjsip 5 | 6 | ifdef MINSIZE 7 | MAKE_FLAGS := MINSIZE=1 8 | endif 9 | 10 | export CPP_MODE=1 11 | 12 | all clean dep depend distclean doc print realclean: 13 | for dir in $(DIRS); do \ 14 | if $(MAKE) $(MAKE_FLAGS) -C $$dir/build $@; then \ 15 | true; \ 16 | else \ 17 | exit 1; \ 18 | fi; \ 19 | done 20 | 21 | -------------------------------------------------------------------------------- /pjsip/docs/header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | $title ($projectnumber) 4 | 5 | 6 | 7 |

Home --> Documentations --> PJSIP Reference

8 | 9 | -------------------------------------------------------------------------------- /scripts/android-init-arm-v7a.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cmake \ 4 | -DTARGET_ANDROID=1\ 5 | -DCMAKE_TOOLCHAIN_FILE=../$1/pjproject/cmake/android.toolchain.cmake\ 6 | -DANDROID_LEVEL=android-14\ 7 | -DANDROID_NATIVE_API_LEVEL=14\ 8 | -DARM_TARGET=armeabi-v7a\ 9 | -DFORCE_ARM=true\ 10 | -DWITH_RESAMPLE_LIBRESAMPLE=1\ 11 | -DWITH_CODEC_G722=1\ 12 | -DWITH_CODEC_SPEEX=0\ 13 | -DWITH_AUDIODEV_OPENSL=1\ 14 | -DWITH_BUILTIN_OPENSSL=1\ 15 | $1 16 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/ios/ipjsua/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // ipjsua 4 | // 5 | // Created by Liong Sauw Ming on 13/3/13. 6 | // Copyright (c) 2013 Teluu. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "ipjsuaAppDelegate.h" 12 | 13 | int main(int argc, char *argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([ipjsuaAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/100_simplecall.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | """ 18 | 19 | sendto_cfg = sip.SendtoCfg( "simple call", "--null-audio --auto-answer 200", sdp, 200) 20 | 21 | -------------------------------------------------------------------------------- /pjlib/docs/header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | $title ($projectnumber) 4 | 5 | 6 | 7 |

Home --> Documentations --> PJLIB Reference

8 | 9 | 10 | -------------------------------------------------------------------------------- /third_party/gsm/tls/taste.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische 3 | * Universitaet Berlin. See the accompanying file "COPYRIGHT" for 4 | * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. 5 | */ 6 | 7 | /* 8 | * common code to sweet.c and bitter.c 9 | */ 10 | 11 | #ifndef TASTE_H 12 | #define TASTE_H 13 | 14 | struct spex { 15 | 16 | char * var; 17 | int varsize; 18 | } ; 19 | 20 | #endif /* TASTE_H */ 21 | -------------------------------------------------------------------------------- /pjmedia/README.txt: -------------------------------------------------------------------------------- 1 | [Last Update: 2006/03/04] 2 | 3 | This directory contains two static libraries: 4 | - pjmedia 5 | The multimedia framework. 6 | 7 | - pjmedia-codec 8 | Codec collections. 9 | 10 | pjmedia has G711 codecs (Alaw and ULaw). 11 | 12 | pjmedia-codec has: 13 | - GSM-FR implementation 14 | Copyright 1992 by Jutta Degener and Carsten Bormann, Technische 15 | Universitaet Berlin 16 | 17 | - Speex 1.1.12 18 | http://www.speex.org 19 | 20 | -------------------------------------------------------------------------------- /pjlib-util/docs/header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | $title ($projectnumber) 4 | 5 | 6 | 7 |

Home --> Documentations --> PJLIB-UTIL Reference

8 | 9 | 10 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/symbian/group/bld.inf: -------------------------------------------------------------------------------- 1 | 2 | PRJ_PLATFORMS 3 | WINSCW ARMV5 GCCE 4 | 5 | 6 | #ifdef SBSV2 7 | 8 | PRJ_EXTENSIONS 9 | 10 | START EXTENSION s60/mifconv 11 | OPTION TARGETFILE pjsua_0xE44C2D02.mif 12 | OPTION HEADERFILE pjsua_0xE44C2D02.mbg 13 | OPTION SOURCEDIR ../gfx 14 | OPTION SOURCES -c32 qgn_menu_pjsua 15 | END 16 | 17 | #else 18 | 19 | PRJ_MMPFILES 20 | 21 | gnumakefile pjsua_icons.mk 22 | 23 | #endif 24 | 25 | PRJ_MMPFILES 26 | pjsua.mmp 27 | -------------------------------------------------------------------------------- /third_party/README.txt: -------------------------------------------------------------------------------- 1 | Third Party Software 2 | 3 | This directory contains third party software that is 4 | used by PJ project. 5 | 6 | = Building the third party libraries = 7 | 8 | Go to build directory, rather than building the library 9 | using the project files/Makefiles provided by the software. 10 | 11 | 12 | = Versions = 13 | 14 | speex: SVN -r12832 15 | gsm: gsm-1.0.12 16 | ilbc: from RFC 17 | resample: lib-resample, I think version 1.7 18 | srtp libsrtp-1.5.4 19 | -------------------------------------------------------------------------------- /third_party/webrtc/OWNERS: -------------------------------------------------------------------------------- 1 | henrika@webrtc.org 2 | kwiberg@webrtc.org 3 | mflodman@webrtc.org 4 | niklas.enbom@webrtc.org 5 | stefan@webrtc.org 6 | tina.legrand@webrtc.org 7 | tommi@webrtc.org 8 | 9 | 10 | # These are for the common case of adding or renaming files. If you're doing 11 | # structural changes, please get a review from a reviewer in this file. 12 | per-file *.gn=* 13 | per-file *.gni=* 14 | 15 | per-file *video*.h=pbos@webrtc.org 16 | per-file DEPS=kjellander@webrtc.org 17 | -------------------------------------------------------------------------------- /pjsip-apps/src/swig/java/android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Pjsua2 5 | Settings 6 | Call 7 | Hello world! 8 | Show Preview 9 | Hide Preview 10 | 11 | -------------------------------------------------------------------------------- /pjlib/src/pj/log_writer_logcat.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | 6 | static void term_set_color(int level) 7 | { 8 | PJ_UNUSED_ARG(level); 9 | } 10 | 11 | static void term_restore_color(void) 12 | { 13 | } 14 | 15 | PJ_DEF(void) pj_log_write(int level, const char *buffer, int len) 16 | { 17 | PJ_CHECK_STACK(); 18 | PJ_UNUSED_ARG(len); 19 | 20 | __android_log_print(6 - level + ANDROID_LOG_DEFAULT, "PJSIP", "%s", buffer); 21 | } 22 | 23 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-run/200_register.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | # Basic registration 6 | test_param = TestParam( 7 | "Basic registration", 8 | [ 9 | InstanceParam( "client", 10 | "--null-audio"+ 11 | " --id=\"\""+ 12 | " --registrar=sip:sip.pjsip.org" + 13 | " --username=test1" + 14 | " --password=test1" + 15 | " --realm=*", 16 | uri="sip:test1@pjsip.org", 17 | have_reg=True), 18 | ] 19 | ) 20 | 21 | -------------------------------------------------------------------------------- /third_party/build/uuid/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB_RECURSE UUID_SRC ../../uuid/*.c ../../uuid/*.h) 2 | include_directories(../..) 3 | 4 | if(TARGET_ANDROID) 5 | add_definitions(-DHAVE_INTTYPES_H -DHAVE_UNISTD_H -DHAVE_NETINET_IN_H -DHAVE_SYS_IOCTL_H -DHAVE_STDLIB_H) 6 | endif() 7 | 8 | if(TARGET_IOS) 9 | add_definitions(-DHAVE_UNISTD_H -DHAVE_STDLIB_H) 10 | endif() 11 | 12 | if(TARGET_LINUX) 13 | add_definitions(-DHAVE_INTTYPES_H) 14 | endif() 15 | 16 | add_library(uuid OBJECT ${UUID_SRC}) 17 | -------------------------------------------------------------------------------- /pjsip-apps/src/swig/java/android/app/src/main/res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /third_party/gsm/MACHINES: -------------------------------------------------------------------------------- 1 | The gsm library has been tested successfully on the following platforms: 2 | 3 | - Various Sun4s running SunOS 4.1.2 4 | - SPARC1 (SunOS 4.1.1) 5 | - Integrated Solutions 68k Optimum running 4.3BSD UNIX with a Green Hills cc 6 | - NeXTstation running NeXT-OS/Mach 3.0 7 | - No-name AT/386 with Xenix 2.3.2 (using -DSTUPID_COMPILER) 8 | - RS/6000-350 running AIX 3.2.0 9 | - RS/6000-320 running AIX 3.1.5 10 | - Alliant FX80 (Concentrix 5.7) 11 | - SGI Indigo XS4000 (IRIX 4.0.5F) 12 | -------------------------------------------------------------------------------- /third_party/build/Makefile: -------------------------------------------------------------------------------- 1 | DIRS = 2 | 3 | include ../../build.mak 4 | include $(PJDIR)/build/common.mak 5 | 6 | all clean dep depend distclean realclean: 7 | for dir in $(DIRS); do \ 8 | if $(MAKE) $(MAKE_FLAGS) -C $$dir $@; then \ 9 | true; \ 10 | else \ 11 | exit 1; \ 12 | fi; \ 13 | done 14 | 15 | lib: 16 | for dir in $(DIRS); do \ 17 | if $(MAKE) $(MAKE_FLAGS) -C $$dir all; then \ 18 | true; \ 19 | else \ 20 | exit 1; \ 21 | fi; \ 22 | done 23 | 24 | doc: 25 | 26 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/152_err_sdp_no_media.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | """ 13 | 14 | pjsua_args = "--null-audio --auto-answer 200" 15 | extra_headers = "" 16 | include = [] 17 | exclude = [] 18 | 19 | sendto_cfg = sip.SendtoCfg("No media in SDP", pjsua_args, sdp, 400, 20 | extra_headers=extra_headers, 21 | resp_inc=include, resp_exc=exclude) 22 | 23 | -------------------------------------------------------------------------------- /version.mak: -------------------------------------------------------------------------------- 1 | # Don't change the "export PJ_VERSION_xxx" style, they are parsed by setup.py 2 | export PJ_VERSION_MAJOR := 2 3 | export PJ_VERSION_MINOR := 6 4 | export PJ_VERSION_REV := 5 | export PJ_VERSION_SUFFIX := -svn 6 | 7 | export PJ_VERSION := $(PJ_VERSION_MAJOR).$(PJ_VERSION_MINOR) 8 | 9 | ifneq ($(PJ_VERSION_REV),) 10 | export PJ_VERSION := $(PJ_VERSION).$(PJ_VERSION_REV) 11 | endif 12 | 13 | ifneq ($(PJ_VERSION_SUFFIX),) 14 | export PJ_VERSION := $(PJ_VERSION)$(PJ_VERSION_SUFFIX) 15 | endif 16 | 17 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/155_err_sdp_bad_syntax.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v= 8 | o= 9 | s= 10 | c= 11 | t= 12 | a= 13 | """ 14 | 15 | pjsua_args = "--null-audio --auto-answer 200" 16 | extra_headers = "" 17 | include = [ "Warning: " ] # better have Warning header 18 | exclude = [] 19 | 20 | sendto_cfg = sip.SendtoCfg("Bad SDP syntax", pjsua_args, sdp, 400, 21 | extra_headers=extra_headers, 22 | resp_inc=include, resp_exc=exclude) 23 | 24 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/101_defaults.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | # Call with default pjsua settings 6 | test_param = TestParam( 7 | "PESQ defaults pjsua settings (RX side uses snd dev)", 8 | [ 9 | InstanceParam("UA1", "--max-calls=1 --play-file wavs/input.16.wav --null-audio"), 10 | InstanceParam("UA2", "--max-calls=1 --rec-file wavs/tmp.16.wav --clock-rate 16000 --auto-answer 200") 11 | ] 12 | ) 13 | 14 | 15 | if (HAS_SND_DEV == 0): 16 | test_param.skip = True 17 | 18 | pesq_threshold = None 19 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-recvfrom/200_reg_good_enocredentiall.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | pjsua = "--null-audio --id=sip:CLIENT --registrar sip:127.0.0.1:$PORT" 6 | 7 | req1 = sip.RecvfromTransaction("", 401, 8 | include=["REGISTER sip"], 9 | exclude=["Authorization"], 10 | resp_hdr=["WWW-Authenticate: Digest realm=\"python\", nonce=\"1234\""], 11 | expect="PJSIP_ENOCREDENTIAL" 12 | ) 13 | 14 | recvfrom_cfg = sip.RecvfromCfg("Failed registration test", 15 | pjsua, [req1]) 16 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/151_err_sdp_video.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=video 4000 RTP/AVP 0 13 | """ 14 | 15 | pjsua_args = "--null-audio --auto-answer 200" 16 | extra_headers = "" 17 | include = [] 18 | exclude = [] 19 | 20 | sendto_cfg = sip.SendtoCfg("Video not acceptable", pjsua_args, sdp, 488, 21 | extra_headers=extra_headers, 22 | resp_inc=include, resp_exc=exclude) 23 | 24 | -------------------------------------------------------------------------------- /pjnath/docs/header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | $title ($projectnumber) 4 | 5 | 6 | 7 |
8 |

Home --> Documentations --> PJNATH Reference

9 | 10 | 11 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/symbian/data/pjsua_reg.rss: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include "pjsua_reg.loc" 7 | #include 8 | 9 | UID2 KUidAppRegistrationResourceFile 10 | UID3 0xE44C2D02 11 | 12 | RESOURCE APP_REGISTRATION_INFO 13 | { 14 | app_file="pjsua"; 15 | localisable_resource_file = qtn_loc_resource_file_1; 16 | localisable_resource_id = R_LOCALISABLE_APP_INFO; 17 | 18 | embeddability=KAppNotEmbeddable; 19 | newfile=KAppDoesNotSupportNewFile; 20 | } 21 | 22 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/201_codec_gsm.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | # Call with GSM codec 6 | test_param = TestParam( 7 | "PESQ codec GSM (RX side uses snd dev)", 8 | [ 9 | InstanceParam("UA1", "--max-calls=1 --add-codec gsm --clock-rate 8000 --play-file wavs/input.8.wav --null-audio"), 10 | InstanceParam("UA2", "--max-calls=1 --add-codec gsm --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200") 11 | ] 12 | ) 13 | 14 | if (HAS_SND_DEV == 0): 15 | test_param.skip = True 16 | 17 | pesq_threshold = 3.0 18 | -------------------------------------------------------------------------------- /tests/pjsua/tools/Makefile: -------------------------------------------------------------------------------- 1 | #Modify this to point to the PJSIP location. 2 | PJBASE=../../.. 3 | 4 | include $(PJBASE)/build.mak 5 | 6 | CC = $(APP_CC) 7 | LDFLAGS = $(APP_LDFLAGS) 8 | LDLIBS = $(APP_LDLIBS) 9 | CFLAGS = $(APP_CFLAGS) 10 | CPPFLAGS= ${CFLAGS} 11 | 12 | # If your application is in a file named myapp.cpp or myapp.c 13 | # # this is the line you will need to build the binary. 14 | # all: myapp 15 | # 16 | cmp_wav: cmp_wav.c 17 | $(CC) -o $@ $< $(CPPFLAGS) $(LDFLAGS) $(LDLIBS) 18 | 19 | clean: 20 | rm -f cmp_wav.o cmp_wav 21 | 22 | -------------------------------------------------------------------------------- /third_party/speex/win32/config.h: -------------------------------------------------------------------------------- 1 | // Microsoft version of 'inline' 2 | #define inline __inline 3 | 4 | // Visual Studio support alloca(), but it always align variables to 16-bit 5 | // boundary, while SSE need 128-bit alignment. So we disable alloca() when 6 | // SSE is enabled. 7 | #ifndef _USE_SSE 8 | # define USE_ALLOCA 9 | #endif 10 | 11 | /* Default to floating point */ 12 | #ifndef FIXED_POINT 13 | # define USE_SMALLFT 14 | #else 15 | # define USE_KISS_FFT 16 | #endif 17 | 18 | /* We don't support visibility on Win32 */ 19 | #define EXPORT 20 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/winrt/gui/uwp/VoipBackEnd/pch.cpp: -------------------------------------------------------------------------------- 1 | //********************************************************* 2 | // 3 | // Copyright (c) Microsoft. All rights reserved. 4 | // This code is licensed under the MIT License (MIT). 5 | // THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF 6 | // ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY 7 | // IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR 8 | // PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT. 9 | // 10 | //********************************************************* 11 | #include "pch.h" 12 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/100_defaults.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | ADD_PARAM = "" 6 | 7 | if (HAS_SND_DEV == 0): 8 | ADD_PARAM += "--null-audio" 9 | 10 | # Call with default pjsua settings 11 | test_param = TestParam( 12 | "PESQ defaults pjsua settings", 13 | [ 14 | InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --play-file wavs/input.16.wav --no-vad"), 15 | InstanceParam("UA2", "--null-audio --max-calls=1 --rec-file wavs/tmp.16.wav --clock-rate 16000 --auto-answer 200") 16 | ] 17 | ) 18 | 19 | pesq_threshold = 3.8 20 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/201_codec_g711a.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | # Call with PCMA codec 6 | test_param = TestParam( 7 | "PESQ codec PCMA (RX side uses snd dev)", 8 | [ 9 | InstanceParam("UA1", "--max-calls=1 --add-codec pcma --clock-rate 8000 --play-file wavs/input.8.wav --null-audio"), 10 | InstanceParam("UA2", "--max-calls=1 --add-codec pcma --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200") 11 | ] 12 | ) 13 | 14 | if (HAS_SND_DEV == 0): 15 | test_param.skip = True 16 | 17 | pesq_threshold = 3.5 18 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/201_codec_g711u.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | # Call with PCMU codec 6 | test_param = TestParam( 7 | "PESQ codec PCMU (RX side uses snd dev)", 8 | [ 9 | InstanceParam("UA1", "--max-calls=1 --add-codec pcmu --clock-rate 8000 --play-file wavs/input.8.wav --null-audio"), 10 | InstanceParam("UA2", "--max-calls=1 --add-codec pcmu --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200") 11 | ] 12 | ) 13 | 14 | if (HAS_SND_DEV == 0): 15 | test_param.skip = True 16 | 17 | pesq_threshold = 3.5 18 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/201_codec_ilbc.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | # Call with iLBC codec 6 | test_param = TestParam( 7 | "PESQ codec iLBC (RX side uses snd dev)", 8 | [ 9 | InstanceParam("UA1", "--max-calls=1 --add-codec ilbc --clock-rate 8000 --play-file wavs/input.8.wav --null-audio"), 10 | InstanceParam("UA2", "--max-calls=1 --add-codec ilbc --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200") 11 | ] 12 | ) 13 | 14 | if (HAS_SND_DEV == 0): 15 | test_param.skip = True 16 | 17 | pesq_threshold = 3.0 18 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/201_codec_g722.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | # Call with G722 codec 6 | test_param = TestParam( 7 | "PESQ codec G722 (RX side uses snd dev)", 8 | [ 9 | InstanceParam("UA1", "--max-calls=1 --add-codec g722 --clock-rate 16000 --play-file wavs/input.16.wav --null-audio"), 10 | InstanceParam("UA2", "--max-calls=1 --add-codec g722 --clock-rate 16000 --rec-file wavs/tmp.16.wav --auto-answer 200") 11 | ] 12 | ) 13 | 14 | if (HAS_SND_DEV == 0): 15 | test_param.skip = True 16 | 17 | pesq_threshold = 3.7 18 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-recvfrom/235_reg_good_tel_uri_enocredential.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | pjsua = "--null-audio --id=tel:+12345 --registrar sip:127.0.0.1:$PORT" 6 | 7 | req1 = sip.RecvfromTransaction("", 401, 8 | include=["REGISTER sip"], 9 | exclude=["Authorization"], 10 | resp_hdr=["WWW-Authenticate: Digest realm=\"python\", nonce=\"1234\""], 11 | expect="PJSIP_ENOCREDENTIAL" 12 | ) 13 | 14 | recvfrom_cfg = sip.RecvfromCfg("Failed registration with tel: URI test", 15 | pjsua, [req1]) 16 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/winrt/cli/uwp/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "Microsoft.ApplicationInsights": "1.0.0", 4 | "Microsoft.ApplicationInsights.PersistenceChannel": "1.0.0", 5 | "Microsoft.ApplicationInsights.WindowsApps": "1.0.0", 6 | "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0" 7 | }, 8 | "frameworks": { 9 | "uap10.0": {} 10 | }, 11 | "runtimes": { 12 | "win10-arm": {}, 13 | "win10-arm-aot": {}, 14 | "win10-x86": {}, 15 | "win10-x86-aot": {}, 16 | "win10-x64": {}, 17 | "win10-x64-aot": {} 18 | } 19 | } -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/200_codec_gsm.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | ADD_PARAM = "" 6 | 7 | if (HAS_SND_DEV == 0): 8 | ADD_PARAM += "--null-audio" 9 | 10 | # Call with GSM codec 11 | test_param = TestParam( 12 | "PESQ codec GSM", 13 | [ 14 | InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec gsm --clock-rate 8000 --play-file wavs/input.8.wav"), 15 | InstanceParam("UA2", "--null-audio --max-calls=1 --add-codec gsm --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200") 16 | ] 17 | ) 18 | 19 | pesq_threshold = 3.0 20 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/200_codec_g711a.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | ADD_PARAM = "" 6 | 7 | if (HAS_SND_DEV == 0): 8 | ADD_PARAM += "--null-audio" 9 | 10 | # Call with PCMA codec 11 | test_param = TestParam( 12 | "PESQ codec PCMA", 13 | [ 14 | InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec pcma --clock-rate 8000 --play-file wavs/input.8.wav"), 15 | InstanceParam("UA2", "--null-audio --max-calls=1 --add-codec pcma --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200") 16 | ] 17 | ) 18 | 19 | pesq_threshold = 3.5 20 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/200_codec_g711u.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | ADD_PARAM = "" 6 | 7 | if (HAS_SND_DEV == 0): 8 | ADD_PARAM += "--null-audio" 9 | 10 | # Call with PCMU codec 11 | test_param = TestParam( 12 | "PESQ codec PCMU", 13 | [ 14 | InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec pcmu --clock-rate 8000 --play-file wavs/input.8.wav"), 15 | InstanceParam("UA2", "--null-audio --max-calls=1 --add-codec pcmu --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200") 16 | ] 17 | ) 18 | 19 | pesq_threshold = 3.5 20 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/200_codec_g722.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | ADD_PARAM = "" 6 | 7 | if (HAS_SND_DEV == 0): 8 | ADD_PARAM += "--null-audio" 9 | 10 | # Call with G722 codec 11 | test_param = TestParam( 12 | "PESQ codec G722", 13 | [ 14 | InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec g722 --clock-rate 16000 --play-file wavs/input.16.wav"), 15 | InstanceParam("UA2", "--null-audio --max-calls=1 --add-codec g722 --clock-rate 16000 --rec-file wavs/tmp.16.wav --auto-answer 200") 16 | ] 17 | ) 18 | 19 | pesq_threshold = 3.7 20 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/200_codec_ilbc.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | ADD_PARAM = "" 6 | 7 | if (HAS_SND_DEV == 0): 8 | ADD_PARAM += "--null-audio" 9 | 10 | # Call with iLBC codec 11 | test_param = TestParam( 12 | "PESQ codec iLBC", 13 | [ 14 | InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec ilbc --clock-rate 8000 --play-file wavs/input.8.wav"), 15 | InstanceParam("UA2", "--null-audio --max-calls=1 --add-codec ilbc --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200") 16 | ] 17 | ) 18 | 19 | pesq_threshold = 3.0 20 | -------------------------------------------------------------------------------- /pjsip-apps/src/swig/java/android/app/src/main/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/201_codec_l16_8000.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | # Call with L16/8000/1 codec 6 | test_param = TestParam( 7 | "PESQ codec L16/8000/1 (RX side uses snd dev)", 8 | [ 9 | InstanceParam("UA1", "--max-calls=1 --add-codec L16/8000/1 --clock-rate 8000 --play-file wavs/input.8.wav --null-audio"), 10 | InstanceParam("UA2", "--max-calls=1 --add-codec L16/8000/1 --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200") 11 | ] 12 | ) 13 | 14 | if (HAS_SND_DEV == 0): 15 | test_param.skip = True 16 | 17 | pesq_threshold = 3.5 18 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/201_codec_speex_8000.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | # Call with Speex/8000 codec 6 | test_param = TestParam( 7 | "PESQ codec Speex NB (RX side uses snd dev)", 8 | [ 9 | InstanceParam("UA1", "--max-calls=1 --add-codec speex/8000 --clock-rate 8000 --play-file wavs/input.8.wav --null-audio"), 10 | InstanceParam("UA2", "--max-calls=1 --add-codec speex/8000 --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200") 11 | ] 12 | ) 13 | 14 | if (HAS_SND_DEV == 0): 15 | test_param.skip = True 16 | 17 | pesq_threshold = 3.0 18 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-recvfrom/100_simple.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | pjsua = "--null-audio --id=sip:CLIENT --registrar sip:127.0.0.1:$PORT " + \ 6 | "--auto-update-nat=0" 7 | 8 | req1 = sip.RecvfromTransaction("Registration", 200, 9 | include=["REGISTER sip"], 10 | exclude=["Authorization"], 11 | resp_hdr=["Server: Snake Registrar", "Expires: 221", "Contact: sip:localhost"], 12 | expect="registration success" 13 | ) 14 | 15 | recvfrom_cfg = sip.RecvfromCfg("Simple registration test", 16 | pjsua, [req1]) 17 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/201_codec_l16_16000.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | # Call with L16/16000/1 codec 6 | test_param = TestParam( 7 | "PESQ codec L16/16000/1 (RX side uses snd dev)", 8 | [ 9 | InstanceParam("UA1", "--max-calls=1 --add-codec L16/16000/1 --clock-rate 16000 --play-file wavs/input.16.wav --null-audio"), 10 | InstanceParam("UA2", "--max-calls=1 --add-codec L16/16000/1 --clock-rate 16000 --rec-file wavs/tmp.16.wav --auto-answer 200") 11 | ] 12 | ) 13 | 14 | if (HAS_SND_DEV == 0): 15 | test_param.skip = True 16 | 17 | pesq_threshold = 3.5 18 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/201_codec_speex_16000.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | # Call with Speex/16000 codec 6 | test_param = TestParam( 7 | "PESQ codec Speex WB (RX side uses snd dev)", 8 | [ 9 | InstanceParam("UA1", "--max-calls=1 --clock-rate 16000 --add-codec speex/16000 --play-file wavs/input.16.wav --null-audio"), 10 | InstanceParam("UA2", "--max-calls=1 --clock-rate 16000 --add-codec speex/16000 --rec-file wavs/tmp.16.wav --auto-answer 200") 11 | ] 12 | ) 13 | 14 | if (HAS_SND_DEV == 0): 15 | test_param.skip = True 16 | 17 | pesq_threshold = 3.7 18 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-recvfrom/300_timer_good.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # INVITE session using session timer 6 | 7 | pjsua = "--null-audio sip:127.0.0.1:$PORT --use-timer 2 --timer-min-se 100 --timer-se 2000" 8 | 9 | req = sip.RecvfromTransaction("INVITE with session timer", 200, 10 | include=["Session-Expires:\s*2000", "Min-SE:\s*100"], 11 | exclude=[], 12 | resp_hdr=["Session-Expires: 1000;refresher=uac"] 13 | ) 14 | 15 | recvfrom_cfg = sip.RecvfromCfg("INVITE session using session timer", 16 | pjsua, [req]) 17 | 18 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/153_err_sdp_unsupported_codec.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=video 4000 RTP/AVP 101 13 | a=rtpmap:101 my-proprietary-codec 14 | """ 15 | 16 | pjsua_args = "--null-audio --auto-answer 200" 17 | extra_headers = "" 18 | include = [] 19 | exclude = [] 20 | 21 | sendto_cfg = sip.SendtoCfg("Unsupported codec", pjsua_args, sdp, 488, 22 | extra_headers=extra_headers, 23 | resp_inc=include, resp_exc=exclude) 24 | 25 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/161_err_replaces_dlg_not_found.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 13 | """ 14 | 15 | pjsua_args = "--null-audio --auto-answer 200" 16 | extra_headers = "Replaces: abcd;from_tag=1\r\n" 17 | include = [] 18 | exclude = [] 19 | 20 | sendto_cfg = sip.SendtoCfg("Replaced dialog not found", pjsua_args, sdp, 481, 21 | extra_headers=extra_headers, 22 | resp_inc=include, resp_exc=exclude) 23 | 24 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/winrt/gui/uwp/Voip/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "Microsoft.ApplicationInsights": "1.0.0", 4 | "Microsoft.ApplicationInsights.PersistenceChannel": "1.0.0", 5 | "Microsoft.ApplicationInsights.WindowsApps": "1.0.0", 6 | "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0" 7 | }, 8 | "frameworks": { 9 | "uap10.0": {} 10 | }, 11 | "runtimes": { 12 | "win10-arm": {}, 13 | "win10-arm-aot": {}, 14 | "win10-x86": {}, 15 | "win10-x86-aot": {}, 16 | "win10-x64": {}, 17 | "win10-x64-aot": {} 18 | } 19 | } -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/201_codec_l16_8000_stereo.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | # Call with L16/8000/2 codec 6 | test_param = TestParam( 7 | "PESQ defaults pjsua settings", 8 | [ 9 | InstanceParam("UA1", "--stereo --max-calls=1 --clock-rate 8000 --add-codec L16/8000/2 --play-file wavs/input.2.8.wav --null-audio"), 10 | InstanceParam("UA2", "--stereo --max-calls=1 --clock-rate 8000 --add-codec L16/8000/2 --rec-file wavs/tmp.2.8.wav --auto-answer 200") 11 | ] 12 | ) 13 | 14 | if (HAS_SND_DEV == 0): 15 | test_param.skip = True 16 | 17 | pesq_threshold = None 18 | -------------------------------------------------------------------------------- /third_party/speex/AUTHORS: -------------------------------------------------------------------------------- 1 | Jean-Marc Valin 2 | All the code except the following 3 | 4 | David Rowe 5 | lsp.c lsp.h 6 | Also ideas and feedback 7 | 8 | John Francis Edwards 9 | wave_out.[ch], some #ifdefs for windows port and MSVC project files 10 | 11 | Segher Boessenkool 12 | Misc. optimizations (for QMF in particular) 13 | 14 | Atsuhiko Yamanaka : 15 | Patch to speexenc.c to add Vorbis comment format 16 | 17 | Radim Kolar : 18 | Patch to speexenc.c for supporting more input formats 19 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/200_codec_l16_8000.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | ADD_PARAM = "" 6 | 7 | if (HAS_SND_DEV == 0): 8 | ADD_PARAM += "--null-audio" 9 | 10 | # Call with L16/8000/1 codec 11 | test_param = TestParam( 12 | "PESQ codec L16/8000/1", 13 | [ 14 | InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec L16/8000/1 --clock-rate 8000 --play-file wavs/input.8.wav"), 15 | InstanceParam("UA2", "--null-audio --max-calls=1 --add-codec L16/8000/1 --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200") 16 | ] 17 | ) 18 | 19 | pesq_threshold = 3.5 20 | -------------------------------------------------------------------------------- /third_party/gsm/inc/unproto.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische 3 | * Universitaet Berlin. See the accompanying file "COPYRIGHT" for 4 | * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. 5 | */ 6 | 7 | /*$Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/unproto.h,v 1.1 1992/10/28 00:11:08 jutta Exp $*/ 8 | 9 | #ifdef PROTO_H /* sic */ 10 | #undef PROTO_H 11 | 12 | #undef P 13 | #undef P0 14 | #undef P1 15 | #undef P2 16 | #undef P3 17 | #undef P4 18 | #undef P5 19 | #undef P6 20 | #undef P7 21 | #undef P8 22 | 23 | #endif /* PROTO_H */ 24 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/symbian/data/pjsua.l01: -------------------------------------------------------------------------------- 1 | /* 2 | ======================================================================== 3 | Name : pjsua.l01 4 | Author : nanang 5 | Copyright : Copyright (C) 2013 Teluu Inc. (http://www.teluu.com) 6 | Description : 7 | ======================================================================== 8 | */ 9 | // localized strings for language: UK English (01) 10 | #define STR_pjsuaApplication_4 "pjsua" 11 | #define STR_pjsuaApplication_5 "pjsua" 12 | #define STR_pjsuaApplication_1 "" 13 | #define STR_pjsuaApplication_2 "" 14 | #define STR_pjsuaApplication_3 "" 15 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/201_codec_l16_16000_stereo.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | # Call with L16/16000/2 codec 6 | test_param = TestParam( 7 | "PESQ defaults pjsua settings", 8 | [ 9 | InstanceParam("UA1", "--stereo --max-calls=1 --clock-rate 16000 --add-codec L16/16000/2 --play-file wavs/input.2.16.wav --null-audio"), 10 | InstanceParam("UA2", "--stereo --max-calls=1 --clock-rate 16000 --add-codec L16/16000/2 --rec-file wavs/tmp.2.16.wav --auto-answer 200") 11 | ] 12 | ) 13 | 14 | if (HAS_SND_DEV == 0): 15 | test_param.skip = True 16 | 17 | pesq_threshold = None 18 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/winrt/gui/uwp/VoipBackEnd/pch.h: -------------------------------------------------------------------------------- 1 | //********************************************************* 2 | // 3 | // Copyright (c) Microsoft. All rights reserved. 4 | // This code is licensed under the MIT License (MIT). 5 | // THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF 6 | // ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY 7 | // IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR 8 | // PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT. 9 | // 10 | //********************************************************* 11 | #pragma once 12 | 13 | #include 14 | #include 15 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/200_codec_l16_16000.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | ADD_PARAM = "" 6 | 7 | if (HAS_SND_DEV == 0): 8 | ADD_PARAM += "--null-audio" 9 | 10 | # Call with L16/16000/1 codec 11 | test_param = TestParam( 12 | "PESQ codec L16/16000/1", 13 | [ 14 | InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec L16/16000/1 --clock-rate 16000 --play-file wavs/input.16.wav"), 15 | InstanceParam("UA2", "--null-audio --max-calls=1 --add-codec L16/16000/1 --clock-rate 16000 --rec-file wavs/tmp.16.wav --auto-answer 200") 16 | ] 17 | ) 18 | 19 | pesq_threshold = 3.5 20 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/200_codec_speex_8000.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | ADD_PARAM = "" 6 | 7 | if (HAS_SND_DEV == 0): 8 | ADD_PARAM += "--null-audio" 9 | 10 | # Call with Speex/8000 codec 11 | test_param = TestParam( 12 | "PESQ codec Speex NB", 13 | [ 14 | InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec speex/8000 --clock-rate 8000 --play-file wavs/input.8.wav --no-vad"), 15 | InstanceParam("UA2", "--null-audio --max-calls=1 --add-codec speex/8000 --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200") 16 | ] 17 | ) 18 | 19 | pesq_threshold = 3.65 20 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/160_err_duplicate_replaces.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 13 | """ 14 | 15 | pjsua_args = "--null-audio --auto-answer 200" 16 | extra_headers = "Replaces: abcd;from_tag=1\r\nReplaces: efgh;from_tag=2\r\n" 17 | include = [] 18 | exclude = [] 19 | 20 | sendto_cfg = sip.SendtoCfg("Duplicate replaces header", pjsua_args, sdp, 400, 21 | extra_headers=extra_headers, 22 | resp_inc=include, resp_exc=exclude) 23 | 24 | -------------------------------------------------------------------------------- /pjsip-apps/src/swig/python/helper.mak: -------------------------------------------------------------------------------- 1 | include ../../../../build.mak 2 | include $(PJDIR)/build/common.mak 3 | 4 | ldflags: 5 | @for token in `echo $(PJ_LDXXFLAGS) $(LDFLAGS)`; do \ 6 | echo $$token; \ 7 | done 8 | @for token in `echo $(PJ_LDXXLIBS) $(LIBS)`; do \ 9 | echo $$token | grep -v \\-l; true; \ 10 | done 11 | 12 | libs: 13 | @for token in `echo $(PJ_LDXXLIBS) $(LIBS)`; do \ 14 | echo $$token | grep \\-l | sed 's/-l//'; \ 15 | done 16 | 17 | cflags: 18 | @for token in `echo $(PJ_CXXFLAGS) $(CFLAGS)`; do \ 19 | echo $$token; \ 20 | done 21 | 22 | target_name: 23 | @echo $(TARGET_NAME) 24 | 25 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/200_codec_speex_16000.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | ADD_PARAM = "" 6 | 7 | if (HAS_SND_DEV == 0): 8 | ADD_PARAM += "--null-audio" 9 | 10 | # Call with Speex/16000 codec 11 | test_param = TestParam( 12 | "PESQ codec Speex WB", 13 | [ 14 | InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --clock-rate 16000 --add-codec speex/16000 --play-file wavs/input.16.wav --no-vad"), 15 | InstanceParam("UA2", "--null-audio --max-calls=1 --clock-rate 16000 --add-codec speex/16000 --rec-file wavs/tmp.16.wav --auto-answer 200") 16 | ] 17 | ) 18 | 19 | pesq_threshold = 3.8 20 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-recvfrom/205_reg_good_no_realm.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | pjsua = "--null-audio --id=sip:CLIENT --registrar sip:127.0.0.1:$PORT " + \ 6 | "--realm=provider --user=username --password=password" 7 | 8 | req1 = sip.RecvfromTransaction("", 401, 9 | include=["REGISTER sip"], 10 | exclude=["Authorization"], 11 | resp_hdr=["WWW-Authenticate: Digest realm=\"python\", nonce=\"1234\""], 12 | expect="PJSIP_ENOCREDENTIAL" 13 | ) 14 | 15 | recvfrom_cfg = sip.RecvfromCfg("Failed registration because of realm test", 16 | pjsua, [req1]) 17 | -------------------------------------------------------------------------------- /doc/pjsip-book/network_problems.rst: -------------------------------------------------------------------------------- 1 | 2 | Network Problems 3 | **************** 4 | 5 | IP Address Change 6 | ================= 7 | Please see the wiki `Handling IP Address Change`_. Note that the guide is written using PJSUA API as a reference. 8 | 9 | .. _`Handling IP Address Change`: https://trac.pjsip.org/repos/wiki/IPAddressChange 10 | 11 | Blocked/Filtered Network 12 | ======================== 13 | Please refer to the wiki `Getting Around Blocked or Filtered VoIP Network`_. 14 | 15 | .. _`Getting Around Blocked or Filtered VoIP Network`: https://trac.pjsip.org/repos/wiki/get-around-nat-blocked-traffic-filtering 16 | 17 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/android/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 15 5 | buildToolsVersion "23.0.3" 6 | 7 | defaultConfig { 8 | applicationId "org.pjsip.pjsua" 9 | minSdkVersion 15 10 | targetSdkVersion 15 11 | 12 | ndk { 13 | moduleName "libpjsua" 14 | } 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsystest/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by pjsystest_wince.rc 4 | // 5 | #define IDD_MAIN_DIALOG 101 6 | #define IDS_MAIN_TITLE 102 7 | #define IDC_EDIT1 1001 8 | 9 | // Next default values for new objects 10 | // 11 | #ifdef APSTUDIO_INVOKED 12 | #ifndef APSTUDIO_READONLY_SYMBOLS 13 | #define _APS_NEXT_RESOURCE_VALUE 103 14 | #define _APS_NEXT_COMMAND_VALUE 40001 15 | #define _APS_NEXT_CONTROL_VALUE 1002 16 | #define _APS_NEXT_SYMED_VALUE 101 17 | #endif 18 | #endif 19 | -------------------------------------------------------------------------------- /pjsip-apps/src/swig/java/android/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 15 5 | buildToolsVersion "23.0.3" 6 | 7 | defaultConfig { 8 | applicationId "org.pjsip.pjsua2.app" 9 | minSdkVersion 11 10 | targetSdkVersion 15 11 | 12 | ndk { 13 | moduleName "libpjsua2" 14 | } 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/200_codec_l16_8000_stereo.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | ADD_PARAM = "" 6 | 7 | if (HAS_SND_DEV == 0): 8 | ADD_PARAM += "--null-audio" 9 | 10 | # Call with L16/8000/2 codec 11 | test_param = TestParam( 12 | "PESQ defaults pjsua settings", 13 | [ 14 | InstanceParam("UA1", ADD_PARAM + " --stereo --max-calls=1 --clock-rate 8000 --add-codec L16/8000/2 --play-file wavs/input.2.8.wav"), 15 | InstanceParam("UA2", "--null-audio --stereo --max-calls=1 --clock-rate 8000 --add-codec L16/8000/2 --rec-file wavs/tmp.2.8.wav --auto-answer 200") 16 | ] 17 | ) 18 | 19 | pesq_threshold = None 20 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/symbian/data/pjsuaContainer.l01: -------------------------------------------------------------------------------- 1 | /* 2 | ======================================================================== 3 | Name : pjsuaContainer.l01 4 | Author : nanang 5 | Copyright : Copyright (C) 2013 Teluu Inc. (http://www.teluu.com) 6 | Description : 7 | ======================================================================== 8 | */ 9 | // localized strings for language: UK English (01) 10 | #define STR_pjsuaContainerView_2 "" 11 | #define STR_pjsuaContainerView_3 "" 12 | #define STR_pjsuaContainerView_4 "pjsuaContainer" 13 | #define STR_pjsuaContainerView_1 "" 14 | #define STR_pjsuaContainerView_5 "Please wait.." 15 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-pesq/200_codec_l16_16000_stereo.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | from inc_cfg import * 4 | 5 | ADD_PARAM = "" 6 | 7 | if (HAS_SND_DEV == 0): 8 | ADD_PARAM += "--null-audio" 9 | 10 | # Call with L16/16000/2 codec 11 | test_param = TestParam( 12 | "PESQ defaults pjsua settings", 13 | [ 14 | InstanceParam("UA1", ADD_PARAM + " --stereo --max-calls=1 --clock-rate 16000 --add-codec L16/16000/2 --play-file wavs/input.2.16.wav"), 15 | InstanceParam("UA2", "--null-audio --stereo --max-calls=1 --clock-rate 16000 --add-codec L16/16000/2 --rec-file wavs/tmp.2.16.wav --auto-answer 200") 16 | ] 17 | ) 18 | 19 | pesq_threshold = None 20 | -------------------------------------------------------------------------------- /third_party/webrtc/src/webrtc/system_wrappers/source/cpu_features_android.c: -------------------------------------------------------------------------------- 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 | #include 12 | 13 | uint64_t WebRtc_GetCPUFeaturesARM(void) { 14 | return android_getCpuFeatures(); 15 | } 16 | -------------------------------------------------------------------------------- /third_party/yuv/include/libyuv/version.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 The LibYuv 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 | #ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT 12 | #define INCLUDE_LIBYUV_VERSION_H_ 13 | 14 | #define LIBYUV_VERSION 1598 15 | 16 | #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT 17 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/158_err_sdp_bad_transport_type.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/XAVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | """ 18 | 19 | pjsua_args = "--null-audio --auto-answer 200" 20 | extra_headers = "" 21 | include = [] 22 | exclude = [] 23 | sendto_cfg = sip.SendtoCfg("Unsupported transport type", pjsua_args, sdp, 488, 24 | extra_headers=extra_headers, 25 | resp_inc=include, resp_exc=exclude) 26 | 27 | 28 | -------------------------------------------------------------------------------- /third_party/resample/src/stddefs.h: -------------------------------------------------------------------------------- 1 | #ifndef PI 2 | #define PI (3.14159265358979232846) 3 | #endif 4 | 5 | #ifndef PI2 6 | #define PI2 (6.28318530717958465692) 7 | #endif 8 | 9 | #define D2R (0.01745329348) /* (2*pi)/360 */ 10 | #define R2D (57.29577951) /* 360/(2*pi) */ 11 | 12 | #ifndef MAX 13 | #define MAX(x,y) ((x)>(y) ?(x):(y)) 14 | #endif 15 | #ifndef MIN 16 | #define MIN(x,y) ((x)<(y) ?(x):(y)) 17 | #endif 18 | 19 | #ifndef ABS 20 | #define ABS(x) ((x)<0 ?(-(x)):(x)) 21 | #endif 22 | 23 | #ifndef SGN 24 | #define SGN(x) ((x)<0 ?(-1):((x)==0?(0):(1))) 25 | #endif 26 | 27 | #define MAX_HWORD (32767) 28 | #define MIN_HWORD (-32768) 29 | 30 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/200_ice_no_ice.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | """ 18 | 19 | args = "--null-audio --use-ice --auto-answer 200 --max-calls 1" 20 | include = [] 21 | exclude = ["a=ice", "a=candidate"] 22 | 23 | sendto_cfg = sip.SendtoCfg( "caller has no ice, answer must not have ICE", 24 | pjsua_args=args, sdp=sdp, resp_code=200, 25 | resp_inc=include, resp_exc=exclude) 26 | 27 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/150_err_extension.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | """ 18 | 19 | pjsua_args = "--null-audio --auto-answer 200" 20 | extra_headers = "Require: xxx-my-extension\n" 21 | include = ["Unsupported: xxx-my-extension"] 22 | exclude = [] 23 | sendto_cfg = sip.SendtoCfg("Bad extension", pjsua_args, sdp, 420, 24 | extra_headers=extra_headers, 25 | resp_inc=include, resp_exc=exclude) 26 | 27 | 28 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/156_err_sdp_bad_net_type.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=AF IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | """ 18 | 19 | pjsua_args = "--null-audio --auto-answer 200" 20 | extra_headers = "" 21 | include = [ "Warning: " ] # better have Warning header 22 | exclude = [] 23 | sendto_cfg = sip.SendtoCfg("Bad SDP network type", pjsua_args, sdp, 400, 24 | extra_headers=extra_headers, 25 | resp_inc=include, resp_exc=exclude) 26 | 27 | 28 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/157_err_sdp_bad_addr_type.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP7 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | """ 18 | 19 | pjsua_args = "--null-audio --auto-answer 200" 20 | extra_headers = "" 21 | include = [ "Warning: " ] # better have Warning header 22 | exclude = [] 23 | sendto_cfg = sip.SendtoCfg("Bad SDP address type", pjsua_args, sdp, 400, 24 | extra_headers=extra_headers, 25 | resp_inc=include, resp_exc=exclude) 26 | 27 | 28 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/320_srtp2_no_crypto.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=tester 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/SAVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | """ 18 | 19 | args = "--null-audio --auto-answer 200 --max-calls 1 --use-srtp 2 --srtp-secure 0" 20 | include = [] 21 | exclude = [] 22 | 23 | sendto_cfg = sip.SendtoCfg( "caller has no crypto attr on RTP/SAVP, callee must not accept the call", 24 | pjsua_args=args, sdp=sdp, resp_code=406, 25 | resp_inc=include, resp_exc=exclude) 26 | 27 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/winrt/gui/uwp/VoipHost/VoipHost.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | bfd33be3-f275-42ab-98e7-d1430685d099 6 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tga;tiff;tif;png;wav;mfcribbon-ms 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/172_timer_supported_but_not_used.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | """ 18 | 19 | pjsua_args = "--null-audio --auto-answer 200" 20 | extra_headers = "Supported: timer\n" 21 | include = [] 22 | exclude = ["Session-Expires:"] 23 | sendto_cfg = sip.SendtoCfg("Session Timer supported but not used", pjsua_args, sdp, 200, 24 | extra_headers=extra_headers, 25 | resp_inc=include, resp_exc=exclude) 26 | 27 | -------------------------------------------------------------------------------- /third_party/gsm/src/gsm_destroy.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische 3 | * Universitaet Berlin. See the accompanying file "COPYRIGHT" for 4 | * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. 5 | */ 6 | 7 | /* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/gsm_destroy.c,v 1.3 1994/11/28 19:52:25 jutta Exp $ */ 8 | 9 | #include "gsm.h" 10 | #include "config.h" 11 | #include "proto.h" 12 | 13 | #ifdef HAS_STDLIB_H 14 | # include 15 | #else 16 | # ifdef HAS_MALLOC_H 17 | # include 18 | # else 19 | extern void free(); 20 | # endif 21 | #endif 22 | 23 | void gsm_destroy P1((S), gsm S) 24 | { 25 | if (S) free((char *)S); 26 | } 27 | -------------------------------------------------------------------------------- /third_party/ilbc/hpInput.h: -------------------------------------------------------------------------------- 1 | 2 | /****************************************************************** 3 | 4 | iLBC Speech Coder ANSI-C Source Code 5 | 6 | hpInput.h 7 | 8 | Copyright (C) The Internet Society (2004). 9 | All Rights Reserved. 10 | 11 | ******************************************************************/ 12 | 13 | #ifndef __iLBC_HPINPUT_H 14 | #define __iLBC_HPINPUT_H 15 | 16 | void hpInput( 17 | float *In, /* (i) vector to filter */ 18 | int len, /* (i) length of vector to filter */ 19 | float *Out, /* (o) the resulting filtered vector */ 20 | float *mem /* (i/o) the filter state */ 21 | ); 22 | 23 | #endif 24 | 25 | -------------------------------------------------------------------------------- /third_party/ilbc/hpOutput.h: -------------------------------------------------------------------------------- 1 | 2 | /****************************************************************** 3 | 4 | iLBC Speech Coder ANSI-C Source Code 5 | 6 | hpOutput.h 7 | 8 | Copyright (C) The Internet Society (2004). 9 | All Rights Reserved. 10 | 11 | ******************************************************************/ 12 | 13 | #ifndef __iLBC_HPOUTPUT_H 14 | #define __iLBC_HPOUTPUT_H 15 | 16 | void hpOutput( 17 | float *In, /* (i) vector to filter */ 18 | int len,/* (i) length of vector to filter */ 19 | float *Out, /* (o) the resulting filtered vector */ 20 | float *mem /* (i/o) the filter state */ 21 | ); 22 | 23 | #endif 24 | 25 | -------------------------------------------------------------------------------- /third_party/ilbc/lsf.h: -------------------------------------------------------------------------------- 1 | 2 | /****************************************************************** 3 | 4 | iLBC Speech Coder ANSI-C Source Code 5 | 6 | lsf.h 7 | 8 | Copyright (C) The Internet Society (2004). 9 | All Rights Reserved. 10 | 11 | ******************************************************************/ 12 | 13 | #ifndef __iLBC_LSF_H 14 | #define __iLBC_LSF_H 15 | 16 | void a2lsf( 17 | float *freq,/* (o) lsf coefficients */ 18 | float *a /* (i) lpc coefficients */ 19 | ); 20 | 21 | void lsf2a( 22 | float *a_coef, /* (o) lpc coefficients */ 23 | float *freq /* (i) lsf coefficients */ 24 | ); 25 | 26 | #endif 27 | 28 | -------------------------------------------------------------------------------- /third_party/ilbc/syntFilter.h: -------------------------------------------------------------------------------- 1 | 2 | /****************************************************************** 3 | 4 | iLBC Speech Coder ANSI-C Source Code 5 | 6 | syntFilter.h 7 | 8 | Copyright (C) The Internet Society (2004). 9 | All Rights Reserved. 10 | 11 | ******************************************************************/ 12 | 13 | #ifndef __iLBC_SYNTFILTER_H 14 | #define __iLBC_SYNTFILTER_H 15 | 16 | void syntFilter( 17 | float *Out, /* (i/o) Signal to be filtered */ 18 | float *a, /* (i) LP parameters */ 19 | int len, /* (i) Length of signal */ 20 | float *mem /* (i/o) Filter state */ 21 | ); 22 | 23 | #endif 24 | 25 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/310_srtp1_no_crypto.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=tester 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | """ 18 | 19 | args = "--null-audio --auto-answer 200 --max-calls 1 --use-srtp 1 --srtp-secure 0" 20 | include = ["m=audio \d+ RTP/AVP"] 21 | exclude = ["a=crypto"] 22 | 23 | sendto_cfg = sip.SendtoCfg( "caller has no crypto attr, answer must accept without crypto attr", 24 | pjsua_args=args, sdp=sdp, resp_code=200, 25 | resp_inc=include, resp_exc=exclude) 26 | 27 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/symbian/data/pjsuaContainer.rssi: -------------------------------------------------------------------------------- 1 | #include "pjsuaContainer.loc" 2 | 3 | RESOURCE AVKON_VIEW r_pjsua_container_pjsua_container_view 4 | { 5 | cba = R_AVKON_SOFTKEYS_EXIT; 6 | toolbar = 0; 7 | } 8 | RESOURCE STATUS_PANE_APP_MODEL r_pjsua_container_status_pane 9 | { 10 | panes = 11 | { 12 | SPANE_PANE 13 | { 14 | id = EEikStatusPaneUidTitle; 15 | type = EAknCtTitlePane; 16 | resource = r_pjsua_container_title_resource; 17 | } 18 | }; 19 | } 20 | RESOURCE TITLE_PANE r_pjsua_container_title_resource 21 | { 22 | txt = STR_pjsuaContainerView_4; 23 | } 24 | RESOURCE LABEL r_pjsua_container_label1 25 | { 26 | txt = STR_pjsuaContainerView_5; 27 | horiz_align = EEikLabelAlignHCenter; 28 | } 29 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-recvfrom/209b_reg_handle_423_bad_min_expires1.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | pjsua = "--null-audio --id=sip:CLIENT --registrar sip:127.0.0.1:$PORT " + \ 6 | "--realm=python --user=username --password=password " + \ 7 | "--auto-update-nat=0 --reg-timeout 300" 8 | 9 | # 423 Response with Min-Expires header that is lower than what the client 10 | # had requested 11 | req1 = sip.RecvfromTransaction("Initial request", 423, 12 | include=["REGISTER sip"], 13 | exclude=[], 14 | resp_hdr=["Min-Expires: 250"], 15 | expect="invalid Min-Expires" 16 | 17 | ) 18 | 19 | recvfrom_cfg = sip.RecvfromCfg("Invalid 423 response to REGISTER", 20 | pjsua, [req1]) 21 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/300_srtp_receive_no_key_1.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=tester 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | a=crypto:0 AES_CM_128_HMAC_SHA1_80 18 | """ 19 | 20 | args = "--null-audio --auto-answer 200 --max-calls 1 --use-srtp 1 --srtp-secure 0" 21 | include = [] 22 | exclude = [] 23 | 24 | sendto_cfg = sip.SendtoCfg( "caller send crypto attr without key, callee must not accept the call", 25 | pjsua_args=args, sdp=sdp, resp_code=406, 26 | resp_inc=include, resp_exc=exclude) 27 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/125_sdp_with_multi_audio_1.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # Multiple m=audio, one of them is bad 6 | sdp = \ 7 | """ 8 | v=0 9 | o=- 0 0 IN IP4 127.0.0.1 10 | s=- 11 | c=IN IP4 127.0.0.1 12 | t=0 0 13 | m=audio 5000 RTP/AVP 0 14 | m=audio 4000 UNKNOWN 0 15 | """ 16 | 17 | pjsua_args = "--null-audio --auto-answer 200" 18 | extra_headers = "" 19 | include = ["Content-Type: application/sdp", # response must include SDP 20 | "m=audio [1-9]+[0-9]* RTP/AVP[\\s\\S]+m=audio 0 UNKNOWN" 21 | ] 22 | exclude = [] 23 | 24 | sendto_cfg = sip.SendtoCfg("Audio and bad audio", pjsua_args, sdp, 200, 25 | extra_headers=extra_headers, 26 | resp_inc=include, resp_exc=exclude) 27 | 28 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/125_sdp_with_multi_audio_2.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # Multiple m=audio, one of them is bad 6 | sdp = \ 7 | """ 8 | v=0 9 | o=- 0 0 IN IP4 127.0.0.1 10 | s=- 11 | c=IN IP4 127.0.0.1 12 | t=0 0 13 | m=audio 4000 UNKNOWN 0 14 | m=audio 5000 RTP/AVP 0 15 | """ 16 | 17 | pjsua_args = "--null-audio --auto-answer 200" 18 | extra_headers = "" 19 | include = ["Content-Type: application/sdp", # response must include SDP 20 | "m=audio 0 UNKNOWN[\\s\\S]+m=audio [1-9]+[0-9]* RTP/AVP" 21 | ] 22 | exclude = [] 23 | 24 | sendto_cfg = sip.SendtoCfg("Audio and bad audio", pjsua_args, sdp, 200, 25 | extra_headers=extra_headers, 26 | resp_inc=include, resp_exc=exclude) 27 | 28 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/159_no_rport_nit.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # Ticket http://trac.pjsip.org/repos/ticket/718 6 | # RTC doesn't put rport in Via, and it is reported to have caused segfault. 7 | # 8 | complete_msg = \ 9 | """MESSAGE sip:localhost SIP/2.0 10 | Via: SIP/2.0/UDP localhost:$LOCAL_PORT;branch=z9hG4bK$BRANCH 11 | From: ;tag=as2858a32c 12 | To: 13 | Call-ID: 123@localhost 14 | CSeq: 1 MESSAGE 15 | Max-Forwards: 70 16 | Content-Length: 11 17 | Content-Type: text/plain 18 | 19 | Hello world 20 | """ 21 | 22 | 23 | sendto_cfg = sip.SendtoCfg( "RTC no rport", "--null-audio --auto-answer 200", 24 | "", 200, complete_msg=complete_msg) 25 | 26 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/300_srtp_receive_no_key_2.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=tester 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | a=crypto:0 AES_CM_128_HMAC_SHA1_80 inline 18 | """ 19 | 20 | args = "--null-audio --auto-answer 200 --max-calls 1 --use-srtp 1 --srtp-secure 0" 21 | include = [] 22 | exclude = [] 23 | 24 | sendto_cfg = sip.SendtoCfg( "caller send crypto attr without key, callee must not accept the call", 25 | pjsua_args=args, sdp=sdp, resp_code=406, 26 | resp_inc=include, resp_exc=exclude) 27 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/300_srtp_receive_no_key_3.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=tester 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | a=crypto:0 AES_CM_128_HMAC_SHA1_80 inline: 18 | """ 19 | 20 | args = "--null-audio --auto-answer 200 --max-calls 1 --use-srtp 1 --srtp-secure 0" 21 | include = [] 22 | exclude = [] 23 | 24 | sendto_cfg = sip.SendtoCfg( "caller send crypto attr without key, callee must not accept the call", 25 | pjsua_args=args, sdp=sdp, resp_code=406, 26 | resp_inc=include, resp_exc=exclude) 27 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/323_srtp2_receive_too_long_key.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # Too long key should be rejected 6 | sdp = \ 7 | """ 8 | v=0 9 | o=- 0 0 IN IP4 127.0.0.1 10 | s=- 11 | c=IN IP4 127.0.0.1 12 | t=0 0 13 | m=audio 5000 RTP/SAVP 0 14 | a=crypto:1 aes_cm_128_hmac_sha1_80 inline:WnD7c1ksDGs+dIefCEo8omPg4uO8DYIinNGL5yxQWnD7c1ksDGs+dIefCEo8omPg4uO8DYIinNGL5yxQ 15 | """ 16 | 17 | pjsua_args = "--null-audio --auto-answer 200 --use-srtp 2 --srtp-secure 0" 18 | extra_headers = "" 19 | include = [] 20 | exclude = [] 21 | 22 | sendto_cfg = sip.SendtoCfg("SRTP receive too long key", pjsua_args, sdp, 406, 23 | extra_headers=extra_headers, 24 | resp_inc=include, resp_exc=exclude) 25 | 26 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/174_timer_se_too_small.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | """ 18 | 19 | pjsua_args = "--null-audio --auto-answer 200 --timer-min-se 2000 --timer-se 2000" 20 | extra_headers = "Supported: timer\nSession-Expires: 1800\n" 21 | include = ["Min-SE:\s*2000"] 22 | exclude = [] 23 | sendto_cfg = sip.SendtoCfg("Session Timer SE too small", pjsua_args, sdp, 422, 24 | extra_headers=extra_headers, 25 | resp_inc=include, resp_exc=exclude) 26 | 27 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/126_sdp_with_port_0_and_no_rtpmap_for_dynamic_pt.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=- 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=video 0 RTP/AVP 100 13 | m=audio 5000 RTP/AVP 0 14 | """ 15 | 16 | pjsua_args = "--null-audio --auto-answer 200" 17 | extra_headers = "" 18 | include = ["Content-Type: application/sdp", # response must include SDP 19 | "m=video 0 RTP/AVP[\\s\\S]+m=audio [1-9]+[0-9]* RTP/AVP" 20 | ] 21 | exclude = [] 22 | 23 | sendto_cfg = sip.SendtoCfg("SDP media with port 0 and no rtpmap for dynamic PT", pjsua_args, sdp, 200, 24 | extra_headers=extra_headers, 25 | resp_inc=include, resp_exc=exclude) 26 | 27 | -------------------------------------------------------------------------------- /third_party/ilbc/FrameClassify.h: -------------------------------------------------------------------------------- 1 | 2 | /****************************************************************** 3 | 4 | iLBC Speech Coder ANSI-C Source Code 5 | 6 | FrameClassify.h 7 | 8 | Copyright (C) The Internet Society (2004). 9 | All Rights Reserved. 10 | 11 | ******************************************************************/ 12 | 13 | #ifndef __iLBC_FRAMECLASSIFY_H 14 | #define __iLBC_FRAMECLASSIFY_H 15 | 16 | int FrameClassify( /* index to the max-energy sub-frame */ 17 | iLBC_Enc_Inst_t *iLBCenc_inst, 18 | /* (i/o) the encoder state structure */ 19 | float *residual /* (i) lpc residual signal */ 20 | ); 21 | 22 | 23 | 24 | 25 | 26 | #endif 27 | 28 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/122_sdp_with_unknown_dynamic_1.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=- 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 5000 RTP/AVP 0 13 | m=xapplicationx 4000 RTP/AVP 100 14 | a=rtpmap:100 myapp/80000 15 | """ 16 | 17 | pjsua_args = "--null-audio --auto-answer 200" 18 | extra_headers = "" 19 | include = ["Content-Type: application/sdp", # response must include SDP 20 | "m=audio [1-9]+[0-9]* RTP/AVP[\\s\\S]+m=xapplicationx 0 RTP/AVP" 21 | ] 22 | exclude = [] 23 | 24 | sendto_cfg = sip.SendtoCfg("Mixed audio and unknown", pjsua_args, sdp, 200, 25 | extra_headers=extra_headers, 26 | resp_inc=include, resp_exc=exclude) 27 | 28 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/122_sdp_with_unknown_dynamic_2.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=- 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=xapplicationx 4000 RTP/AVP 100 13 | a=rtpmap:100 myapp/80000 14 | m=audio 5000 RTP/AVP 0 15 | """ 16 | 17 | pjsua_args = "--null-audio --auto-answer 200" 18 | extra_headers = "" 19 | include = ["Content-Type: application/sdp", # response must include SDP 20 | "m=xapplicationx 0 RTP/AVP[\\s\\S]+m=audio [1-9]+[0-9]* RTP/AVP" 21 | ] 22 | exclude = [] 23 | 24 | sendto_cfg = sip.SendtoCfg("Mixed audio and unknown", pjsua_args, sdp, 200, 25 | extra_headers=extra_headers, 26 | resp_inc=include, resp_exc=exclude) 27 | 28 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/201_ice_mismatch_1.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=ice-ufrag:1234 14 | a=ice-pwd:5678 15 | a=rtpmap:0 PCMU/8000 16 | a=sendrecv 17 | a=rtpmap:101 telephone-event/8000 18 | a=fmtp:101 0-15 19 | a=candidate:XX 1 UDP 1 1.1.1.1 2222 typ host 20 | """ 21 | 22 | args = "--null-audio --use-ice --auto-answer 200 --max-calls 1" 23 | include = ["a=ice-mismatch"] 24 | exclude = [] 25 | 26 | sendto_cfg = sip.SendtoCfg( "caller sends mismatched offer for comp 1", 27 | pjsua_args=args, sdp=sdp, resp_code=200, 28 | resp_inc=include, resp_exc=exclude) 29 | 30 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/bb10/translations/PjsuaBB.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | main 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | pjsua BB10 14 | 15 | 16 | 17 | 18 | Starting.. 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /tests/automated/iphone.xml.template: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 17 | ]]> 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/999_message_no_body.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # Incoming MESSAGE without body is now accepted 6 | # 7 | complete_msg = \ 8 | """MESSAGE sip:localhost SIP/2.0 9 | Via: SIP/2.0/UDP 192.168.0.14:5060;rport;branch=z9hG4bKPj9db9 10 | Max-Forwards: 70 11 | From: ;tag=08cd5bfc2d8a4fddb1f5e59c6961d298 12 | To: 13 | Call-ID: 3373d9eb32aa458db7e69c7ea51e0bd7 14 | CSeq: 23809 MESSAGE 15 | Contact: 16 | User-Agent: PJSUA v0.8.0-trunk/win32 17 | Content-Type: text/plain 18 | Content-Length: 50 19 | """ 20 | 21 | 22 | sendto_cfg = sip.SendtoCfg( "empty MESSAGE", "--null-audio --auto-answer 200", 23 | "", 200, complete_msg=complete_msg) 24 | 25 | -------------------------------------------------------------------------------- /third_party/gsm/COPYRIGHT: -------------------------------------------------------------------------------- 1 | Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann, 2 | Technische Universitaet Berlin 3 | 4 | Any use of this software is permitted provided that this notice is not 5 | removed and that neither the authors nor the Technische Universitaet Berlin 6 | are deemed to have made any representations as to the suitability of this 7 | software for any purpose nor are held responsible for any defects of 8 | this software. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. 9 | 10 | As a matter of courtesy, the authors request to be informed about uses 11 | this software has found, about bugs in this software, and about any 12 | improvements that may be of general interest. 13 | 14 | Berlin, 28.11.1994 15 | Jutta Degener 16 | Carsten Bormann 17 | -------------------------------------------------------------------------------- /third_party/ilbc/anaFilter.h: -------------------------------------------------------------------------------- 1 | 2 | /****************************************************************** 3 | 4 | iLBC Speech Coder ANSI-C Source Code 5 | 6 | anaFilter.h 7 | 8 | Copyright (C) The Internet Society (2004). 9 | All Rights Reserved. 10 | 11 | ******************************************************************/ 12 | 13 | #ifndef __iLBC_ANAFILTER_H 14 | #define __iLBC_ANAFILTER_H 15 | 16 | void anaFilter( 17 | 18 | 19 | 20 | 21 | 22 | float *In, /* (i) Signal to be filtered */ 23 | float *a, /* (i) LP parameters */ 24 | int len,/* (i) Length of signal */ 25 | float *Out, /* (o) Filtered signal */ 26 | float *mem /* (i/o) Filter state */ 27 | ); 28 | 29 | #endif 30 | 31 | -------------------------------------------------------------------------------- /doc/pjsip-book/index.rst: -------------------------------------------------------------------------------- 1 | .. PJSUA2 documentation master file, created by 2 | sphinx-quickstart on Sat Nov 30 06:36:26 2013. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | PJSUA2 Documentation 7 | ========================================== 8 | 9 | Contents: 10 | 11 | .. toctree:: 12 | :maxdepth: 2 13 | :numbered: 1 14 | 15 | intro 16 | consider 17 | intro_pjsua2 18 | endpoint 19 | account 20 | media 21 | call 22 | presence 23 | samples 24 | media_quality 25 | network_problems 26 | reference 27 | breathe 28 | 29 | 30 | Indices and tables 31 | ================== 32 | 33 | * :ref:`genindex` 34 | * :ref:`modindex` 35 | * :ref:`search` 36 | 37 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/123_sdp_with_unknown_static_1.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # The unknown media uses static payload type 6 | sdp = \ 7 | """ 8 | v=0 9 | o=- 0 0 IN IP4 127.0.0.1 10 | s=- 11 | c=IN IP4 127.0.0.1 12 | t=0 0 13 | m=audio 5000 RTP/AVP 0 14 | m=xapplicationx 4000 RTP/AVP 54 15 | """ 16 | 17 | pjsua_args = "--null-audio --auto-answer 200" 18 | extra_headers = "" 19 | include = ["Content-Type: application/sdp", # response must include SDP 20 | "m=audio [1-9]+[0-9]* RTP/AVP[\\s\\S]+m=xapplicationx 0 RTP/AVP" 21 | ] 22 | exclude = [] 23 | 24 | sendto_cfg = sip.SendtoCfg("Mixed audio and unknown", pjsua_args, sdp, 200, 25 | extra_headers=extra_headers, 26 | resp_inc=include, resp_exc=exclude) 27 | 28 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/123_sdp_with_unknown_static_2.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # The unknown media uses static payload type 6 | sdp = \ 7 | """ 8 | v=0 9 | o=- 0 0 IN IP4 127.0.0.1 10 | s=- 11 | c=IN IP4 127.0.0.1 12 | t=0 0 13 | m=xapplicationx 4000 RTP/AVP 54 14 | m=audio 5000 RTP/AVP 0 15 | """ 16 | 17 | pjsua_args = "--null-audio --auto-answer 200" 18 | extra_headers = "" 19 | include = ["Content-Type: application/sdp", # response must include SDP 20 | "m=xapplicationx 0 RTP/AVP[\\s\\S]+m=audio [1-9]+[0-9]* RTP/AVP" 21 | ] 22 | exclude = [] 23 | 24 | sendto_cfg = sip.SendtoCfg("Mixed audio and unknown", pjsua_args, sdp, 200, 25 | extra_headers=extra_headers, 26 | resp_inc=include, resp_exc=exclude) 27 | 28 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/173_timer_offer_no_refresher.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | """ 18 | 19 | pjsua_args = "--null-audio --auto-answer 200 --timer-min-se 90" 20 | extra_headers = "Supported: timer\nSession-Expires: 1800\n" 21 | include = ["Session-Expires:.*;refresher=ua[cs]"] 22 | exclude = [] 23 | sendto_cfg = sip.SendtoCfg("Session Timer without specifying refresher", pjsua_args, sdp, 200, 24 | extra_headers=extra_headers, 25 | resp_inc=include, resp_exc=exclude) 26 | 27 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/android/jni/pjsua.i: -------------------------------------------------------------------------------- 1 | %module (directors="1") pjsua 2 | 3 | %{ 4 | #include "../../jni/pjsua_app_callback.h" 5 | #include "../../../pjsua_app.h" 6 | 7 | #if defined(PJMEDIA_HAS_VIDEO) && PJMEDIA_HAS_VIDEO!=0 8 | # include 9 | #else 10 | # define ANativeWindow_fromSurface(a,b) NULL 11 | #endif 12 | %} 13 | 14 | /* Turn on director wrapping PjsuaAppCallback */ 15 | %feature("director") PjsuaAppCallback; 16 | 17 | /* Convert Surface object to ANativeWindow */ 18 | %typemap(in) jobject surface { 19 | $1 = $input? (jobject)ANativeWindow_fromSurface(jenv, $input) : NULL; 20 | } 21 | 22 | %extend WindowHandle { 23 | void setWindow(jobject surface) { $self->window = surface; } 24 | } 25 | 26 | %include "pjsua_app_callback.h" 27 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/120_sdp_with_video_dynamic_1.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # Video uses dynamic payload type 6 | sdp = \ 7 | """ 8 | v=0 9 | o=- 0 0 IN IP4 127.0.0.1 10 | s=- 11 | c=IN IP4 127.0.0.1 12 | t=0 0 13 | m=audio 5000 RTP/AVP 0 14 | m=video 4000 RTP/AVP 100 15 | a=rtpmap:100 myvideo/80000 16 | """ 17 | 18 | pjsua_args = "--null-audio --auto-answer 200" 19 | extra_headers = "" 20 | include = ["Content-Type: application/sdp", # response must include SDP 21 | "m=audio [1-9]+[0-9]* RTP/AVP[\\s\\S]+m=video 0 RTP/AVP" 22 | ] 23 | exclude = [] 24 | 25 | sendto_cfg = sip.SendtoCfg("Mixed audio and video", pjsua_args, sdp, 200, 26 | extra_headers=extra_headers, 27 | resp_inc=include, resp_exc=exclude) 28 | 29 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/125_sdp_with_multi_audio_4.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # Multiple m=audio, one of them has static PT codec that we don't support 6 | sdp = \ 7 | """ 8 | v=0 9 | o=- 0 0 IN IP4 127.0.0.1 10 | s=- 11 | c=IN IP4 127.0.0.1 12 | t=0 0 13 | m=audio 5000 RTP/AVP 80 14 | m=audio 4000 RTP/AVP 0 15 | """ 16 | 17 | pjsua_args = "--null-audio --auto-answer 200" 18 | extra_headers = "" 19 | include = ["Content-Type: application/sdp", # response must include SDP 20 | "m=audio 0 RTP/AVP[\s\S]+m=audio [1-9]+[0-9]* RTP/AVP" 21 | ] 22 | exclude = [] 23 | 24 | sendto_cfg = sip.SendtoCfg("Multiple audio lines", pjsua_args, sdp, 200, 25 | extra_headers=extra_headers, 26 | resp_inc=include, resp_exc=exclude) 27 | 28 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/173_timer_offer_refresher_uac.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | """ 18 | 19 | pjsua_args = "--null-audio --auto-answer 200 --timer-min-se 90" 20 | extra_headers = "Supported: timer\nSession-Expires: 1800;refresher=uac\n" 21 | include = ["Session-Expires:.*;refresher=ua[cs]"] 22 | exclude = [] 23 | sendto_cfg = sip.SendtoCfg("Session Timer offer refresher uac", pjsua_args, sdp, 200, 24 | extra_headers=extra_headers, 25 | resp_inc=include, resp_exc=exclude) 26 | 27 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/173_timer_offer_refresher_uas.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | """ 18 | 19 | pjsua_args = "--null-audio --auto-answer 200 --timer-min-se 90" 20 | extra_headers = "Supported: timer\nSession-Expires: 1800;refresher=uas\n" 21 | include = ["Session-Expires:.*;refresher=ua[cs]"] 22 | exclude = [] 23 | sendto_cfg = sip.SendtoCfg("Session Timer offer refresher uas", pjsua_args, sdp, 200, 24 | extra_headers=extra_headers, 25 | resp_inc=include, resp_exc=exclude) 26 | 27 | -------------------------------------------------------------------------------- /third_party/build/gsm/config.h: -------------------------------------------------------------------------------- 1 | #ifdef _MSC_VER 2 | # pragma warning(disable: 4100) // unreferenced formal parameter 3 | # pragma warning(disable: 4101) // unreferenced local variable 4 | # pragma warning(disable: 4244) // conversion from 'double ' to 'float ' 5 | # pragma warning(disable: 4305) // truncation from 'const double ' to 'float ' 6 | # pragma warning(disable: 4018) // signed/unsigned mismatch 7 | //# pragma warning(disable: 4701) // local variable used without initialized 8 | #endif 9 | 10 | #if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 402 11 | # pragma GCC diagnostic ignored "-Wpragmas" 12 | # pragma GCC diagnostic ignored "-Wunused-const-variable" 13 | #endif 14 | 15 | #include 16 | #include "../../gsm/inc/config.h" 17 | -------------------------------------------------------------------------------- /third_party/ilbc/getCBvec.h: -------------------------------------------------------------------------------- 1 | 2 | /****************************************************************** 3 | 4 | iLBC Speech Coder ANSI-C Source Code 5 | 6 | getCBvec.h 7 | 8 | Copyright (C) The Internet Society (2004). 9 | All Rights Reserved. 10 | 11 | ******************************************************************/ 12 | 13 | #ifndef __iLBC_GETCBVEC_H 14 | #define __iLBC_GETCBVEC_H 15 | 16 | void getCBvec( 17 | float *cbvec, /* (o) Constructed codebook vector */ 18 | float *mem, /* (i) Codebook buffer */ 19 | int index, /* (i) Codebook index */ 20 | int lMem, /* (i) Length of codebook buffer */ 21 | int cbveclen/* (i) Codebook vector length */ 22 | ); 23 | 24 | #endif 25 | 26 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/300_srtp_receive_crypto_tag_zero.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=tester 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | a=crypto:0 AES_CM_128_HMAC_SHA1_80 inline:WnD7c1ksDGs+dIefCEo8omPg4uO8DYIinNGL5yxQ 18 | """ 19 | 20 | args = "--null-audio --auto-answer 200 --max-calls 1 --use-srtp 1 --srtp-secure 0" 21 | include = [] 22 | exclude = [] 23 | 24 | sendto_cfg = sip.SendtoCfg( "caller has used crypto tag zero, callee must accept the call", 25 | pjsua_args=args, sdp=sdp, resp_code=200, 26 | resp_inc=include, resp_exc=exclude) 27 | -------------------------------------------------------------------------------- /third_party/gsm/src/toast_lin.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische 3 | * Universitaet Berlin. See the accompanying file "COPYRIGHT" for 4 | * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. 5 | */ 6 | 7 | /* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/toast_lin.c,v 1.1 1992/10/28 00:15:50 jutta Exp $ */ 8 | 9 | #include "toast.h" 10 | 11 | /* toast_linear.c -- read and write 16 bit linear sound in host byte order. 12 | */ 13 | 14 | extern FILE *in, *out; 15 | 16 | int linear_input (buf) gsm_signal * buf; 17 | { 18 | return fread( (char *)buf, sizeof(*buf), 160, in ); 19 | } 20 | 21 | int linear_output P1((buf), gsm_signal * buf) 22 | { 23 | return -( fwrite( (char *)buf, sizeof(*buf), 160, out ) != 160 ); 24 | } 25 | -------------------------------------------------------------------------------- /tests/automated/iphone64.xml.template: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 17 | ]]> 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /tests/automated/testvars.template: -------------------------------------------------------------------------------- 1 | Variables: 2 | ----------------------------- 3 | DISABLED = "$(DISABLED)" 4 | GCC = "$(GCC)" 5 | HOSTNAME = "$(HOSTNAME)" 6 | OS = "$(OS)" 7 | PJDIR = "$(PJDIR)" 8 | SUFFIX = "$(SUFFIX)" 9 | NOTEST = "$(NOTEST)" 10 | 11 | S60 only: 12 | ------------------------------ 13 | S60TARGET = "$(S60TARGET)" 14 | S60TARGETNAME = "$(S60TARGETNAME)" 15 | S60DEVICE = "$(S60DEVICE)" 16 | EPOCROOT = "$(EPOCROOT)" 17 | 18 | VS only: 19 | ------------------------------ 20 | VS = "$(VS)" 21 | VSTARGET = "$(VSTARGET)" 22 | 23 | PJSUA-TESTS: 24 | ------------------------------ 25 | $(PJSUA-TESTS) 26 | ------------------------------ 27 | 28 | OTHER: 29 | ------------------------------ 30 | IPPROOT 31 | IPPSAMPLES 32 | IPPARCH 33 | NOP (cmdline to do nothing) 34 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/124_sdp_with_unknown_static_unknown_transport.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=- 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 5000 RTP/AVP 0 13 | m=xapplicationx 4000 XRTPX/XAVPX 54 14 | """ 15 | 16 | pjsua_args = "--null-audio --auto-answer 200" 17 | extra_headers = "" 18 | include = ["Content-Type: application/sdp", # response must include SDP 19 | "m=audio [1-9]+[0-9]* RTP/AVP[\\s\\S]+m=xapplicationx 0 XRTPX/XAVPX " 20 | ] 21 | exclude = [] 22 | 23 | sendto_cfg = sip.SendtoCfg("Mixed audio and unknown and with unknown transport", 24 | pjsua_args, sdp, 200, 25 | extra_headers=extra_headers, 26 | resp_inc=include, resp_exc=exclude) 27 | 28 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/170_timer_required.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | """ 18 | 19 | pjsua_args = "--null-audio --auto-answer 200 --use-timer 2 --timer-min-se 90 --timer-se 1800" 20 | extra_headers = "Require: timer\nSupported: timer\nSession-Expires: 1800\n" 21 | include = ["Session-Expires: .*;refresher=.*"] 22 | exclude = [] 23 | sendto_cfg = sip.SendtoCfg("Session Timer required", pjsua_args, sdp, 200, 24 | extra_headers=extra_headers, 25 | resp_inc=include, resp_exc=exclude) 26 | 27 | 28 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/323_srtp2_unsupported_crypto.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=tester 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/SAVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | a=crypto:1 CRYPTO_X inline:WnD7c1ksDGs+dIefCEo8omPg4uO8DYIinNGL5yxQ 18 | """ 19 | 20 | args = "--null-audio --auto-answer 200 --max-calls 1 --use-srtp 2 --srtp-secure 0" 21 | include = [] 22 | exclude = [] 23 | 24 | sendto_cfg = sip.SendtoCfg( "caller has used unsupported crypto, callee (SRTP mandatory) must reject the call", 25 | pjsua_args=args, sdp=sdp, resp_code=406, 26 | resp_inc=include, resp_exc=exclude) 27 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sipp/transfer-attended.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | ;tag=[call_number] 12 | To: sut [peer_tag_param] 13 | Call-ID: [call_id] 14 | Max-Forwards: 70 15 | CSeq: 1 OPTIONS 16 | Content-Length: 0 17 | 18 | ]]> 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sipp/transfer-unattended.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | ;tag=[call_number] 12 | To: sut [peer_tag_param] 13 | Call-ID: [call_id] 14 | Max-Forwards: 70 15 | CSeq: 1 OPTIONS 16 | Content-Length: 0 17 | 18 | ]]> 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/winrt/gui/uwp/VoipBackEnd/ApiLock.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2012 Microsoft Corporation. All rights reserved. 3 | Use of this sample source code is subject to the terms of the Microsoft license 4 | agreement under which you licensed this sample source code and is provided AS-IS. 5 | If you did not accept the terms of the license agreement, you are not authorized 6 | to use this sample source code. For the terms of the license, please see the 7 | license agreement between you and Microsoft. 8 | 9 | */ 10 | #include "pch.h" 11 | #include "ApiLock.h" 12 | 13 | namespace VoipBackEnd 14 | { 15 | // A mutex used to protect objects accessible from the API surface exposed by this DLL 16 | std::recursive_mutex g_apiLock; 17 | } 18 | 19 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/120_sdp_with_video_dynamic_2.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # In this case the video codec uses dynamic payload type 6 | sdp = \ 7 | """ 8 | v=0 9 | o=- 0 0 IN IP4 127.0.0.1 10 | s=- 11 | c=IN IP4 127.0.0.1 12 | t=0 0 13 | m=video 4000 RTP/AVP 100 14 | a=rtpmap:100 myvideo/96000 15 | m=audio 5000 RTP/AVP 0 16 | """ 17 | 18 | pjsua_args = "--null-audio --auto-answer 200" 19 | extra_headers = "" 20 | include = ["Content-Type: application/sdp", # response must include SDP 21 | "m=video 0 RTP[\\s\\S]+m=audio [1-9]+[0-9]* RTP/AVP" 22 | ] 23 | exclude = [] 24 | 25 | sendto_cfg = sip.SendtoCfg("Mixed audio and video", pjsua_args, sdp, 200, 26 | extra_headers=extra_headers, 27 | resp_inc=include, resp_exc=exclude) 28 | 29 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/201_ice_mismatch_3.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtcp:4382 IN IP4 192.168.0.4 14 | a=ice-ufrag:1234 15 | a=ice-pwd:5678 16 | a=rtpmap:0 PCMU/8000 17 | a=sendrecv 18 | a=rtpmap:101 telephone-event/8000 19 | a=fmtp:101 0-15 20 | a=candidate:XX 1 UDP 1234 127.0.0.1 4000 typ host 21 | """ 22 | 23 | args = "--null-audio --use-ice --auto-answer 200 --max-calls 1" 24 | include = ["a=ice-mismatch"] 25 | exclude = [] 26 | 27 | sendto_cfg = sip.SendtoCfg( "caller sends mismatched offer for comp 2", 28 | pjsua_args=args, sdp=sdp, resp_code=200, 29 | resp_inc=include, resp_exc=exclude) 30 | 31 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/140_sdp_with_direction_attr_in_session_1.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # Offer contains "sendonly" attribute in the session. Answer should 6 | # respond with appropriate direction in session or media 7 | sdp = \ 8 | """ 9 | v=0 10 | o=- 0 0 IN IP4 127.0.0.1 11 | s=- 12 | c=IN IP4 127.0.0.1 13 | t=0 0 14 | a=sendonly 15 | m=audio 5000 RTP/AVP 0 16 | """ 17 | 18 | pjsua_args = "--null-audio --auto-answer 200" 19 | extra_headers = "" 20 | include = ["Content-Type: application/sdp", # response must include SDP 21 | "a=recvonly" 22 | ] 23 | exclude = [] 24 | 25 | sendto_cfg = sip.SendtoCfg("SDP direction in session", pjsua_args, sdp, 200, 26 | extra_headers=extra_headers, 27 | resp_inc=include, resp_exc=exclude) 28 | 29 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/313_srtp1_unsupported_crypto.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=tester 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | a=crypto:1 CRYPTO_X inline:WnD7c1ksDGs+dIefCEo8omPg4uO8DYIinNGL5yxQ 18 | """ 19 | 20 | args = "--null-audio --auto-answer 200 --max-calls 1 --use-srtp 1 --srtp-secure 0" 21 | include = [] 22 | exclude = ["a=crypto"] 23 | 24 | sendto_cfg = sip.SendtoCfg( "caller has used unsupported crypto, callee (SRTP optional) accept the call without crypto", 25 | pjsua_args=args, sdp=sdp, resp_code=200, 26 | resp_inc=include, resp_exc=exclude) 27 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/001_torture_4475_3_1_1_4.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # Torture message from RFC 4475 6 | # 3.1.1. Valid Messages 7 | # 3.1.1.4. Escaped Nulls in URIs 8 | complete_msg = \ 9 | """REGISTER sip:example.com SIP/2.0 10 | To: sip:null-%00-null@example.com 11 | From: sip:null-%00-null@example.com;tag=839923423 12 | Max-Forwards: 70 13 | Call-ID: escnull.39203ndfvkjdasfkq3w4otrq0adsfdfnavd 14 | CSeq: 14398234 REGISTER 15 | Via: SIP/2.0/UDP host5.example.com;rport;branch=z9hG4bKkdjuw 16 | Contact: 17 | Contact: 18 | L:0 19 | """ 20 | 21 | 22 | sendto_cfg = sip.SendtoCfg( "RFC 4475 3.1.1.4", 23 | "--null-audio --auto-answer 200", 24 | "", 200, complete_msg=complete_msg) 25 | 26 | -------------------------------------------------------------------------------- /third_party/gsm/tst/run: -------------------------------------------------------------------------------- 1 | : 2 | # 3 | # Copyright 1992 by Jutta Degener and Carsten Bormann, Technische 4 | # Universitaet Berlin. See the accompanying file "COPYRIGHT" for 5 | # details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. 6 | # 7 | if [ ! -f 1.inp ] ; then 8 | echo Sorry, but we cannot provide the test data with this release. 9 | exit 10 | fi 11 | 12 | echo -n 'Linear to code: ' 13 | for i in 1 2 3 4 14 | do 15 | echo -n $i.. 16 | ./lin2cod < $i.inp | cmp - $i.cod 17 | done 18 | echo "" 19 | 20 | echo -n 'Code to linear: ' 21 | for i in 1 2 3 4 22 | do 23 | echo -n $i.. 24 | ./cod2lin < $i.cod | cmp - $i.out 25 | done 26 | echo "" 27 | 28 | echo -n 'Toast: ' 29 | for i in 1 2 3 4 30 | do 31 | echo -n $i.. 32 | ../bin/toast -l < $i.inp | ../bin/toast -dl | cmp - $i.out 33 | done 34 | echo "" 35 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/121_sdp_with_video_static_1.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # Video uses static payload type which will cause failure 6 | # when session.c looks-up the codec in codec manager 7 | sdp = \ 8 | """ 9 | v=0 10 | o=- 0 0 IN IP4 127.0.0.1 11 | s=- 12 | c=IN IP4 127.0.0.1 13 | t=0 0 14 | m=audio 5000 RTP/AVP 0 15 | m=video 4000 RTP/AVP 54 16 | """ 17 | 18 | pjsua_args = "--null-audio --auto-answer 200" 19 | extra_headers = "" 20 | include = ["Content-Type: application/sdp", # response must include SDP 21 | "m=audio [1-9]+[0-9]* RTP/AVP[\\s\\S]+m=video 0 RTP" 22 | ] 23 | exclude = [] 24 | 25 | sendto_cfg = sip.SendtoCfg("Mixed audio and video", pjsua_args, sdp, 200, 26 | extra_headers=extra_headers, 27 | resp_inc=include, resp_exc=exclude) 28 | 29 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/125_sdp_with_multi_audio_3.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # Multiple m=audio, one of them has dynamic PT codec that we don't support 6 | sdp = \ 7 | """ 8 | v=0 9 | o=- 0 0 IN IP4 127.0.0.1 10 | s=- 11 | c=IN IP4 127.0.0.1 12 | t=0 0 13 | m=audio 5000 RTP/AVP 100 14 | a=rtpmap:100 someunknowncodec/8000 15 | m=audio 4000 RTP/AVP 0 16 | """ 17 | 18 | pjsua_args = "--null-audio --auto-answer 200" 19 | extra_headers = "" 20 | include = ["Content-Type: application/sdp", # response must include SDP 21 | "m=audio 0 RTP/AVP[\s\S]+m=audio [1-9]+[0-9]* RTP/AVP" 22 | ] 23 | exclude = [] 24 | 25 | sendto_cfg = sip.SendtoCfg("Multiple audio lines", pjsua_args, sdp, 200, 26 | extra_headers=extra_headers, 27 | resp_inc=include, resp_exc=exclude) 28 | 29 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/121_sdp_with_video_static_2.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # Video uses static payload type which will cause failure 6 | # when session.c looks-up the codec in codec manager 7 | sdp = \ 8 | """ 9 | v=0 10 | o=- 0 0 IN IP4 127.0.0.1 11 | s=- 12 | c=IN IP4 127.0.0.1 13 | t=0 0 14 | m=video 4000 RTP/AVP 54 15 | m=audio 5000 RTP/AVP 0 16 | """ 17 | 18 | pjsua_args = "--null-audio --auto-answer 200" 19 | extra_headers = "" 20 | include = ["Content-Type: application/sdp", # response must include SDP 21 | "m=video 0 RTP/AVP[\\s\\S]+m=audio [1-9]+[0-9]* RTP/AVP" 22 | ] 23 | exclude = [] 24 | 25 | sendto_cfg = sip.SendtoCfg("Mixed audio and video", pjsua_args, sdp, 200, 26 | extra_headers=extra_headers, 27 | resp_inc=include, resp_exc=exclude) 28 | 29 | -------------------------------------------------------------------------------- /pjsip-apps/src/3rdparty_media_sample/Makefile: -------------------------------------------------------------------------------- 1 | 2 | include ../../../build.mak 3 | 4 | 5 | ############################################################################### 6 | # Gather all flags. 7 | # 8 | export _CFLAGS := $(PJ_CFLAGS) $(CFLAGS) 9 | export _CXXFLAGS:= $(PJ_CXXFLAGS) 10 | export _LDFLAGS := $(PJ_LDFLAGS) $(PJ_LDLIBS) $(LDFLAGS) 11 | 12 | OBJS = alt_pjsua_aud.o alt_pjsua_vid.o pjsua_app.o main.o 13 | 14 | all: alt_pjsua 15 | 16 | alt_pjsua: $(OBJS) 17 | $(PJ_CC) -o $@ $(OBJS) $(_CFLAGS) $(_LDFLAGS) 18 | 19 | pjsua_app.o: ../pjsua/pjsua_app.c 20 | $(PJ_CC) $(_CFLAGS) -c -o $@ $< 21 | 22 | main.o: ../pjsua/main.c 23 | $(PJ_CC) $(_CFLAGS) -c -o $@ $< 24 | 25 | %.o: %.c 26 | $(PJ_CC) $(_CFLAGS) -c -o $@ $< 27 | 28 | depend: 29 | 30 | clean: 31 | rm -f *.o alt_pjsua 32 | 33 | distclean realclean: clean 34 | 35 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/bb10/PjsuaBB.pro: -------------------------------------------------------------------------------- 1 | APP_NAME = PjsuaBB 2 | 3 | CONFIG += qt warn_on cascades10 4 | 5 | include(config.pri) 6 | 7 | SOURCES += ../../pjsua_app.c \ 8 | ../../pjsua_app_cli.c \ 9 | ../../pjsua_app_common.c \ 10 | ../../pjsua_app_config.c \ 11 | ../../pjsua_app_legacy.c 12 | 13 | device { 14 | CONFIG(debug, debug|release) { 15 | # Device-Debug custom configuration 16 | include(../../../../pjsip.pri) 17 | LIBS += -lbb 18 | } 19 | 20 | CONFIG(release, debug|release) { 21 | # Device-Release custom configuration 22 | include(../../../../pjsip.pri) 23 | LIBS += -lbb 24 | } 25 | } 26 | 27 | simulator { 28 | CONFIG(debug, debug|release) { 29 | # Simulator-Debug custom configuration 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/361_non_sip_uri.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # No SIP URI in Contact header 6 | # 7 | complete_msg = \ 8 | """INVITE sip:localhost SIP/2.0 9 | Via: SIP/2.0/UDP 192.168.0.14:5060;rport;branch=z9hG4bKPj9db9 10 | Max-Forwards: 70 11 | From: ;tag=08cd5bfc2d8a4fddb1f5e59c6961d298 12 | To: 13 | Call-ID: 3373d9eb32aa458db7e69c7ea51e0bd7 14 | CSeq: 0 INVITE 15 | Contact: mailto:dontspam@pjsip.org 16 | Contact: 17 | Contact: http://www.pjsip.org/the%20path.cgi?pname=pvalue 18 | User-Agent: PJSUA v0.9.0-trunk/win32 19 | Content-Length: 0 20 | """ 21 | 22 | 23 | sendto_cfg = sip.SendtoCfg( "No SIP URI in Contact", 24 | "--null-audio --auto-answer 200", 25 | "", 500, complete_msg=complete_msg) 26 | 27 | -------------------------------------------------------------------------------- /pjsip-apps/src/swig/java/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 14 | 15 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /pjsip-apps/src/vidgui/INSTALL.TXT: -------------------------------------------------------------------------------- 1 | 2 | vidgui 3 | 4 | This directory contains a Qt based video GUI sample. 5 | 6 | Requirements: 7 | ======================== 8 | - pjsip built with video support 9 | - Qt SDK version 4.5 or above (version <4.5 doesn't have Cocoa support) 10 | 11 | Build instructions: 12 | =================== 13 | - Build pjsip first 14 | - Follow the instructions for the appropriate platform below: 15 | 16 | Visual Studio 17 | ------------- 18 | - Run this to generate Visual Studio project file: 19 | c:> qmake -tp vc 20 | - Open vidgui.vcproj and build the app 21 | 22 | 23 | Mac OS X 24 | -------- 25 | $ qmake -spec macx-g++ 26 | $ make 27 | 28 | Linux 29 | ----- 30 | $ qmake 31 | $ make 32 | 33 | -------------------------------------------------------------------------------- /tests/automated/android.xml.template: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 17 | ]]> 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /third_party/srtp/install-win.bat: -------------------------------------------------------------------------------- 1 | :: Installs from srtp windows build directory to directory specified on 2 | :: command line 3 | 4 | 5 | @if "%1"=="" ( 6 | echo "Usage: %~nx0 destdir" 7 | exit /b 1 8 | ) else ( 9 | set destdir=%1 10 | ) 11 | 12 | @if not exist %destdir% ( 13 | echo %destdir% not found 14 | exit /b 1 15 | ) 16 | 17 | @for %%d in (include\srtp.h crypto\include\crypto.h Debug\srtp.lib Release\srtp.lib) do ( 18 | if not exist "%%d" ( 19 | echo "%%d not found: are you in the right directory?" 20 | exit /b 1 21 | ) 22 | ) 23 | 24 | mkdir %destdir%\include 25 | mkdir %destdir%\include\srtp 26 | mkdir %destdir%\lib 27 | 28 | copy include\*.h %destdir%\include\srtp 29 | copy crypto\include\*.h %destdir%\include\srtp 30 | copy Release\srtp.lib %destdir%\lib\srtp.lib 31 | copy Debug\srtp.lib %destdir%\lib\srtpd.lib 32 | -------------------------------------------------------------------------------- /pjsip-apps/src/pjsua/winrt/gui/uwp/VoipBackEnd/VoipBackEnd.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | d25e3c8e-e29b-40f8-88c6-2cb35dbe70d2 6 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tga;tiff;tif;png;wav;mfcribbon-ms 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/201_ice_mismatch_2.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=pjmedia 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/AVP 0 101 13 | a=rtcp:4382 IN IP4 192.168.0.4 14 | a=ice-ufrag:1234 15 | a=ice-pwd:5678 16 | a=rtpmap:0 PCMU/8000 17 | a=sendrecv 18 | a=rtpmap:101 telephone-event/8000 19 | a=fmtp:101 0-15 20 | a=candidate:XX 1 UDP 1234 127.0.0.1 4000 typ host 21 | a=candidate:XX 2 UDP 1234 127.0.0.1 4000 typ host 22 | """ 23 | 24 | args = "--null-audio --use-ice --auto-answer 200 --max-calls 1" 25 | include = ["a=ice-mismatch"] 26 | exclude = [] 27 | 28 | sendto_cfg = sip.SendtoCfg( "caller sends mismatched offer for comp 2", 29 | pjsua_args=args, sdp=sdp, resp_code=200, 30 | resp_inc=include, resp_exc=exclude) 31 | 32 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/320_srtp_with_unknown_transport_1.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=- 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 5000 RTP/AVP 0 13 | a=crypto:1 aes_cm_128_hmac_sha1_80 inline:WnD7c1ksDGs+dIefCEo8omPg4uO8DYIinNGL5yxQ 14 | m=audio 4000 UNKNOWN 0 15 | """ 16 | 17 | pjsua_args = "--null-audio --auto-answer 200 --use-srtp 1 --srtp-secure 0" 18 | extra_headers = "" 19 | include = ["Content-Type: application/sdp", # response must include SDP 20 | "m=audio [1-9]+[0-9]* RTP/AVP[\\s\\S]+a=crypto[\\s\\S]+m=audio 0 UNKNOWN" 21 | ] 22 | exclude = [] 23 | 24 | sendto_cfg = sip.SendtoCfg("SRTP audio and unknown media", pjsua_args, sdp, 200, 25 | extra_headers=extra_headers, 26 | resp_inc=include, resp_exc=exclude) 27 | 28 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/320_srtp_with_unknown_transport_2.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=- 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 UNKNOWN 0 13 | m=audio 5000 RTP/AVP 0 14 | a=crypto:1 aes_cm_128_hmac_sha1_80 inline:WnD7c1ksDGs+dIefCEo8omPg4uO8DYIinNGL5yxQ 15 | """ 16 | 17 | pjsua_args = "--null-audio --auto-answer 200 --use-srtp 1 --srtp-secure 0" 18 | extra_headers = "" 19 | include = ["Content-Type: application/sdp", # response must include SDP 20 | "m=audio 0 UNKNOWN[\\s\\S]+m=audio [1-9]+[0-9]* RTP/AVP[\\s\\S]+a=crypto" 21 | ] 22 | exclude = [] 23 | 24 | sendto_cfg = sip.SendtoCfg("SRTP audio and unknown media", pjsua_args, sdp, 200, 25 | extra_headers=extra_headers, 26 | resp_inc=include, resp_exc=exclude) 27 | 28 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sipp/transfer-unattended.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | # 3 | import inc_const as const 4 | 5 | PJSUA = ["--null-audio", # UA0 6 | "--null-audio", # UA1 7 | "--null-audio" # UA2 8 | ] 9 | 10 | PJSUA_EXPECTS = [ 11 | # A calls B 12 | [0, "", "m"], 13 | [0, "", "$PJSUA_URI[1]"], 14 | [0, const.STATE_CALLING, ""], 15 | [1, const.EVENT_INCOMING_CALL, "a"], 16 | [1, "", "200"], 17 | [0, const.STATE_CONFIRMED, ""], 18 | [1, const.STATE_CONFIRMED, ""], 19 | 20 | # B transfer A to C 21 | [1, "", "x"], 22 | [1, "", "$PJSUA_URI[2]"], 23 | [0, const.STATE_CALLING, ""], 24 | [2, const.EVENT_INCOMING_CALL, "a"], 25 | [2, "", "200"], 26 | [0, const.MEDIA_ACTIVE, ""], 27 | [2, const.MEDIA_ACTIVE, ""], 28 | [1, "call transferred successfully", ""], 29 | [1, const.STATE_DISCONNECTED, ""] 30 | ] 31 | -------------------------------------------------------------------------------- /pjsip-apps/build/Footprint.mak: -------------------------------------------------------------------------------- 1 | # 2 | # This file is used by get-footprint.py script to build samples/footprint.c 3 | # to get the footprint report for PJSIP/PJMEDIA. 4 | # 5 | include ../../build.mak 6 | include ../../build/common.mak 7 | 8 | 9 | ############################################################################### 10 | # Gather all flags. 11 | # 12 | export _CFLAGS := $(APP_CFLAGS) $(CFLAGS) 13 | export _CXXFLAGS:= $(_CFLAGS) 14 | 15 | export _LDFLAGS := $(APP_LDFLAGS) $(APP_LDLIBS) $(LDFLAGS) 16 | 17 | EXE := footprint.exe 18 | 19 | all: 20 | $(APP_CC) -o $(EXE) ../src/samples/footprint.c $(FCFLAGS) $(_CFLAGS) $(_LDFLAGS) 21 | $(CROSS_COMPILE)strip --strip-all $(EXE) 22 | 23 | clean: 24 | rm -f $(EXE) 25 | 26 | print_name: 27 | @echo $(MACHINE_NAME) $(OS_NAME) $(CROSS_COMPILE)$(CC_NAME) `$(CROSS_COMPILE)$(CC_NAME) -dumpversion` 28 | 29 | -------------------------------------------------------------------------------- /third_party/srtp/doc/references.txt: -------------------------------------------------------------------------------- 1 | SRTP and ICM References 2 | September, 2005 3 | 4 | This document provides references for the various cryptographic 5 | functions used in libSRTP and libaesicm. 6 | 7 | Secure RTP is defined in RFC 3711, which is included in this 8 | distribution for convenience. The counter mode definition is in 9 | Section 4.1.1 of the SRTP draft. 10 | 11 | SHA-1 is defined in FIPS-180-1, available online at the NIST website. 12 | 13 | HMAC is defined in RFC2104, and HMAC-SHA1 test vectors are available 14 | in RFC2202, which are available online at http://www.ietf.org/rfc/ 15 | 16 | ICM is defined by draft-irtf-cfrg-icm-00.txt, and its application in 17 | ISMAcryp (the Internet Streaming Media Alliance 1.0 Encryption and 18 | Authentication) is defined in that specification. It is available 19 | from http://www.isma.tv/. 20 | 21 | 22 | -------------------------------------------------------------------------------- /third_party/yuv/README.md: -------------------------------------------------------------------------------- 1 | **libyuv** is an open source project that includes YUV scaling and conversion functionality. 2 | 3 | * Scale YUV to prepare content for compression, with point, bilinear or box filter. 4 | * Convert to YUV from webcam formats. 5 | * Convert from YUV to formats for rendering/effects. 6 | * Rotate by 90/180/270 degrees to adjust for mobile devices in portrait mode. 7 | * Optimized for SSE2/SSSE3/AVX2 on x86/x64. 8 | * Optimized for Neon on Arm. 9 | * Optimized for DSP R2 on Mips. 10 | 11 | ### Development 12 | 13 | See [Getting started] [1] for instructions on how to get started developing. 14 | 15 | You can also browse the [docs directory] [2] for more documentation. 16 | 17 | [1]: https://chromium.googlesource.com/libyuv/libyuv/+/master/docs/getting_started.md 18 | [2]: https://chromium.googlesource.com/libyuv/libyuv/+/master/docs/ 19 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/360_non_sip_uri.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # Some non-SIP URI's in Contact header 6 | # 7 | complete_msg = \ 8 | """INVITE sip:localhost SIP/2.0 9 | Via: SIP/2.0/UDP 192.168.0.14:5060;rport;branch=z9hG4bKPj9db9 10 | Max-Forwards: 70 11 | From: ;tag=08cd5bfc2d8a4fddb1f5e59c6961d298 12 | To: 13 | Call-ID: 3373d9eb32aa458db7e69c7ea51e0bd7 14 | CSeq: 0 INVITE 15 | Contact: mailto:dontspam@pjsip.org 16 | Contact: 17 | Contact: http://www.pjsip.org/the%20path.cgi?pname=pvalue 18 | Contact: 19 | User-Agent: PJSUA v0.9.0-trunk/win32 20 | Content-Length: 0 21 | """ 22 | 23 | 24 | sendto_cfg = sip.SendtoCfg( "Non SIP URI in Contact", 25 | "--null-audio --auto-answer 200", 26 | "", 200, complete_msg=complete_msg) 27 | 28 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/362_non_sip_uri.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | # Some non-SIP URI's in Contact header 6 | # 7 | complete_msg = \ 8 | """INVITE sip:localhost SIP/2.0 9 | Via: SIP/2.0/UDP 192.168.0.14:5060;rport;branch=z9hG4bKPj9db9 10 | Max-Forwards: 70 11 | From: ;tag=08cd5bfc2d8a4fddb1f5e59c6961d298 12 | To: 13 | Call-ID: 3373d9eb32aa458db7e69c7ea51e0bd7 14 | CSeq: 0 INVITE 15 | Contact: 16 | Contact: mailto:dontspam@pjsip.org 17 | Contact: 18 | Contact: http://www.pjsip.org/the%20path.cgi?pname=pvalue 19 | User-Agent: PJSUA v0.9.0-trunk/win32 20 | Content-Length: 0 21 | """ 22 | 23 | 24 | sendto_cfg = sip.SendtoCfg( "Non SIP URI in Contact", 25 | "--null-audio --auto-answer 200", 26 | "", 200, complete_msg=complete_msg) 27 | 28 | -------------------------------------------------------------------------------- /third_party/resample/include/resamplesubs.h: -------------------------------------------------------------------------------- 1 | #ifndef __RESAMPLESUBS_H__ 2 | #define __RESAMPLESUBS_H__ 3 | 4 | typedef char RES_BOOL; 5 | typedef short RES_HWORD; 6 | typedef int RES_WORD; 7 | typedef unsigned short RES_UHWORD; 8 | typedef unsigned int RES_UWORD; 9 | 10 | #ifdef _USRDLL 11 | # define DECL(T) __declspec(dllexport) T 12 | #else 13 | # define DECL(T) T 14 | #endif 15 | 16 | #ifdef __cplusplus 17 | extern "C" 18 | { 19 | #endif 20 | 21 | DECL(int) res_SrcLinear(const RES_HWORD X[], RES_HWORD Y[], 22 | double pFactor, RES_UHWORD nx); 23 | DECL(int) res_Resample(const RES_HWORD X[], RES_HWORD Y[], double pFactor, 24 | RES_UHWORD nx, RES_BOOL LargeF, RES_BOOL Interp); 25 | DECL(int) res_GetXOFF(double pFactor, RES_BOOL LargeF); 26 | 27 | #ifdef __cplusplus 28 | } 29 | #endif 30 | 31 | #endif 32 | 33 | -------------------------------------------------------------------------------- /third_party/webrtc/src/webrtc/common_audio/fft4g.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 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 | #ifndef WEBRTC_COMMON_AUDIO_FFT4G_H_ 12 | #define WEBRTC_COMMON_AUDIO_FFT4G_H_ 13 | 14 | #if defined(__cplusplus) 15 | extern "C" { 16 | #endif 17 | 18 | // Refer to fft4g.c for documentation. 19 | void WebRtc_rdft(size_t n, int isgn, float *a, size_t *ip, float *w); 20 | 21 | #if defined(__cplusplus) 22 | } 23 | #endif 24 | 25 | #endif // WEBRTC_COMMON_AUDIO_FFT4G_H_ 26 | -------------------------------------------------------------------------------- /tests/pjsua/scripts-sendto/301_srtp0_recv_savp.py: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | import inc_sip as sip 3 | import inc_sdp as sdp 4 | 5 | sdp = \ 6 | """ 7 | v=0 8 | o=- 0 0 IN IP4 127.0.0.1 9 | s=tester 10 | c=IN IP4 127.0.0.1 11 | t=0 0 12 | m=audio 4000 RTP/SAVP 0 101 13 | a=rtpmap:0 PCMU/8000 14 | a=sendrecv 15 | a=rtpmap:101 telephone-event/8000 16 | a=fmtp:101 0-15 17 | a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:WnD7c1ksDGs+dIefCEo8omPg4uO8DYIinNGL5yxQ 18 | a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:t0r0/apkukU7JjjfR0mY8GEimBq4OiPEm9eKSFOx 19 | """ 20 | 21 | args = "--null-audio --auto-answer 200 --max-calls 1 --use-srtp 0 --srtp-secure 0" 22 | include = [] 23 | exclude = [] 24 | 25 | sendto_cfg = sip.SendtoCfg( "Callee has SRTP disabled but receive RTP/SAVP, should reject the call", 26 | pjsua_args=args, sdp=sdp, resp_code=488, 27 | resp_inc=include, resp_exc=exclude) 28 | 29 | --------------------------------------------------------------------------------