Skip to content

Commit 6842eab

Browse files
Merge commit '1f4232a69665eeb27f77587d8b12d7265eb60d97' into experiment/im-2.15.1
* commit '1f4232a69665eeb27f77587d8b12d7265eb60d97': (381 commits) Added missing file for Python 3 compatibility pull request 4577 (pjsip#4578) Fixed Contact rewrite if Via received contains port (pjsip#4581) Made legacy Python 2 bindings compile with Python 3 (pjsip#4577) Reduce string comparison overhead in `pj_strstr`/`pj_stristr` (pjsip#4575) Avoid calling `pj_log_get_level` when `level` is greater than `PJ_LOG_MAX_LEVEL` (pjsip#4576) Use C11 atomics when available (pjsip#4570) Fix to syntax errors in conf_switch pjmedia_conf_create2 and made param const. (pjsip#4568) Add direction and signature fields to conference port info (pjsip#4556) Add PJSIP_MSG_INFO_HAS_EXTRA_DETAILS macro for enhanced SIP transport logging (pjsip#4560) pj_stun_sock_create: Use pj_sockaddr_has_addr instead of checking socket family directly to account for network stacks that do not support IPv6. (pjsip#4552) fix invalid use of pj_sock_getsockname() (pjsip#4551) Add conference test with call simulation to MIPS test (pjsip#4549) prevent infinite loop on reading of invalide wav/avi file (pjsip#4545) post pjsip#4497 fix: Gracefull conf port destroying when get_free_op_entry() called from pjmedia_conf_add_port() returns NULL (pjsip#4544) fix: the issue of out-of-order data sent by TLS connection (pjsip#4533) (pjsip#4543) Add lock to WAV player for convenient set_pos() & get_pos() (pjsip#4540) Prevent race condition in Unix thread creation (pjsip#4537) Use group lock for keep alive timer in SIP transport TCP and TLS (pjsip#4536) Fix build error on mingw with clang (pjsip#4511) Fix potential overflow in `platform_strerror` (pjsip#4532) ... # Conflicts: # .github/workflows/ci-android.yml # .github/workflows/update-master.yml # pjlib/include/pj/config.h # pjmedia/src/pjmedia/stream.c # pjmedia/src/pjmedia/transport_srtp.c # pjmedia/src/pjmedia/vid_stream.c # pjmedia/src/test/test.c # pjmedia/src/test/test.h # pjsip-apps/build/swig_java_pjsua2.vcxproj # pjsip-apps/src/pjsua/pjsua_app.c # pjsip/src/pjsua-lib/pjsua_acc.c # pjsip/src/pjsua-lib/pjsua_aud.c # pjsip/src/pjsua-lib/pjsua_core.c # pjsip/src/pjsua-lib/pjsua_media.c # pjsip/src/pjsua2/endpoint.cpp # pjsip/src/test/tsx_uas_test.c # version.mak
2 parents fce635e + c302c77 commit 6842eab

File tree

284 files changed

+23547
-7077
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

284 files changed

+23547
-7077
lines changed

.editorconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
root = true
22

33
# properties
4-
[*.{h,c,hpp,cpp,m,java}]
4+
[*.{h,c,hpp,cpp,m,java,ac}]
55
insert_final_newline = true
66
indent_style = space
77
indent_size = 4

.git-blame-ignore-revs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
# expand tab to spaces and remove $Id$ (#3292)
2-
5ac9104514499d648f68991ef796368c51b4dfec
2+
5ac9104514499d648f68991ef796368c51b4dfec
3+
4+
# expand tab to spaces and cleanup formatting in aconfigure.ac (#4154)
5+
22464d7a052ab5b7775496bb52211ea66dc2d62d

.github/ISSUE_TEMPLATE/feature_request.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ body:
1919
id: alt-solution
2020
attributes:
2121
label: Describe alternatives you've considered
22-
description: A clear and concise description of any alternative solutions or features you've
23-
considered.
22+
description: A clear and concise description of any alternative solutions or features you've considered.
2423
- type: textarea
2524
id: context
2625
attributes:

.github/workflows/ci-mac.yml

Lines changed: 44 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,21 @@ jobs:
2323
steps:
2424
- uses: actions/checkout@v2
2525
- name: install dependencies
26-
run: brew install openssl@1.1 opencore-amr swig sipp
26+
run: brew install openssl opencore-amr swig sipp
2727
- name: config site
2828
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
2929
- name: configure
30-
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl@1.1/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/lib" CXXFLAGS="-g -fPIC" ./configure
30+
run: CFLAGS="-g $(pkg-config --cflags openssl) $(pkg-config --cflags opencore-amrnb) -fPIC" LDFLAGS="$(pkg-config --libs-only-L openssl) $(pkg-config --libs-only-L openssl)/lib $(pkg-config --libs-only-L opencore-amrnb)" CXXFLAGS="-g -fPIC" ./configure
3131
- name: make
3232
run: make
33+
- name: set up Python
34+
uses: actions/setup-python@v4
35+
with:
36+
python-version: '3.10'
3337
- name: swig bindings
3438
run: cd pjsip-apps/src/swig && make
3539
- name: disable firewall
3640
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
37-
- name: set up Python 3.10 for pjsua test
38-
uses: actions/setup-python@v4
39-
with:
40-
python-version: '3.10'
4141
- name: unit tests
4242
run: make pjlib-test-ci pjmedia-test pjlib-util-test pjsua-test
4343

@@ -47,11 +47,11 @@ jobs:
4747
steps:
4848
- uses: actions/checkout@v2
4949
- name: install dependencies
50-
run: brew install openssl@1.1 opencore-amr
50+
run: brew install openssl opencore-amr
5151
- name: config site
5252
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
5353
- name: configure
54-
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl@1.1/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/lib" ./configure
54+
run: CFLAGS="-g $(pkg-config --cflags openssl) $(pkg-config --cflags opencore-amrnb)" LDFLAGS="$(pkg-config --libs-only-L openssl) $(pkg-config --libs-only-L openssl)/lib $(pkg-config --libs-only-L opencore-amrnb)" ./configure
5555
- name: make
5656
run: make
5757
- name: disable firewall
@@ -65,11 +65,11 @@ jobs:
6565
steps:
6666
- uses: actions/checkout@v2
6767
- name: install dependencies
68-
run: brew install openssl@1.1 opencore-amr
68+
run: brew install openssl opencore-amr
6969
- name: config site
7070
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
7171
- name: configure
72-
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl@1.1/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/lib" ./configure
72+
run: CFLAGS="-g $(pkg-config --cflags openssl) $(pkg-config --cflags opencore-amrnb)" LDFLAGS="$(pkg-config --libs-only-L openssl) $(pkg-config --libs-only-L openssl)/lib $(pkg-config --libs-only-L opencore-amrnb)" ./configure
7373
- name: make
7474
run: make
7575
- name: disable firewall
@@ -86,11 +86,15 @@ jobs:
8686
steps:
8787
- uses: actions/checkout@v2
8888
- name: install dependencies
89-
run: brew install openssl@1.1 swig
89+
run: brew install openssl swig
9090
- name: configure
91-
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl@1.1/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/lib" CXXFLAGS="-fPIC" ./configure
91+
run: CFLAGS="$(pkg-config --cflags openssl) -fPIC" LDFLAGS="$(pkg-config --libs-only-L openssl) $(pkg-config --libs-only-L openssl)/lib" CXXFLAGS="-fPIC" ./configure
9292
- name: make
9393
run: make
94+
- name: set up Python
95+
uses: actions/setup-python@v4
96+
with:
97+
python-version: '3.10'
9498
- name: swig bindings
9599
run: cd pjsip-apps/src/swig && make
96100

@@ -105,6 +109,10 @@ jobs:
105109
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure --with-gnutls=/usr/local/
106110
- name: make
107111
run: make
112+
- name: set up Python
113+
uses: actions/setup-python@v4
114+
with:
115+
python-version: '3.10'
108116
- name: swig bindings
109117
run: cd pjsip-apps/src/swig && make
110118

@@ -115,21 +123,21 @@ jobs:
115123
steps:
116124
- uses: actions/checkout@v2
117125
- name: install dependencies
118-
run: brew install openssl@1.1 openh264 libvpx opencore-amr swig sipp
126+
run: brew install openssl openh264 libvpx opencore-amr swig sipp
119127
- name: config site
120128
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
121129
- name: configure
122-
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl@1.1/include -DHAS_VID_CODEC_TEST=0 -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/lib" CXXFLAGS="-g -fPIC" ./configure
130+
run: CFLAGS="-g $(pkg-config --cflags openssl) $(pkg-config --cflags opencore-amrnb) -DHAS_VID_CODEC_TEST=0 -fPIC" LDFLAGS="$(pkg-config --libs-only-L openssl) $(pkg-config --libs-only-L openssl)/lib $(pkg-config --libs-only-L opencore-amrnb)" CXXFLAGS="-g -fPIC" ./configure
123131
- name: make
124132
run: make
133+
- name: set up Python
134+
uses: actions/setup-python@v4
135+
with:
136+
python-version: '3.10'
125137
- name: swig bindings
126138
run: cd pjsip-apps/src/swig && make
127139
- name: disable firewall
128140
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
129-
- name: set up Python 3.10 for pjsua test
130-
uses: actions/setup-python@v2
131-
with:
132-
python-version: '3.10'
133141
- name: unit tests
134142
run: make pjlib-test-ci pjmedia-test pjlib-util-test pjsua-test
135143

@@ -139,11 +147,11 @@ jobs:
139147
steps:
140148
- uses: actions/checkout@v2
141149
- name: install dependencies
142-
run: brew install openssl@1.1 openh264 libvpx opencore-amr
150+
run: brew install openssl openh264 libvpx opencore-amr
143151
- name: config site
144152
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
145153
- name: configure
146-
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl@1.1/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/lib" ./configure
154+
run: CFLAGS="-g $(pkg-config --cflags openssl) $(pkg-config --cflags opencore-amrnb)" LDFLAGS="$(pkg-config --libs-only-L openssl) $(pkg-config --libs-only-L openssl)/lib $(pkg-config --libs-only-L opencore-amrnb)" ./configure
147155
- name: make
148156
run: make
149157
- name: disable firewall
@@ -157,11 +165,11 @@ jobs:
157165
steps:
158166
- uses: actions/checkout@v2
159167
- name: install dependencies
160-
run: brew install openssl@1.1 openh264 libvpx opencore-amr
168+
run: brew install openssl openh264 libvpx opencore-amr
161169
- name: config site
162170
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
163171
- name: configure
164-
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl@1.1/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/lib" ./configure
172+
run: CFLAGS="-g $(pkg-config --cflags openssl) $(pkg-config --cflags opencore-amrnb)" LDFLAGS="$(pkg-config --libs-only-L openssl) $(pkg-config --libs-only-L openssl)/lib $(pkg-config --libs-only-L opencore-amrnb)" ./configure
165173
- name: make
166174
run: make
167175
- name: disable firewall
@@ -175,19 +183,23 @@ jobs:
175183
steps:
176184
- uses: actions/checkout@v2
177185
- name: install dependencies
178-
run: brew install openssl@1.1 x264 libvpx nasm swig
186+
run: brew install openssl x264 libvpx nasm swig
179187
- name: get ffmpeg
180-
run: git clone --single-branch --branch release/4.2 https://github.com/FFmpeg/FFmpeg.git
188+
run: git clone --single-branch --branch release/7.0 https://github.com/FFmpeg/FFmpeg.git
181189
- name: configure ffmpeg
182-
run: cd FFmpeg && ./configure --enable-shared --disable-static --enable-gpl --enable-libx264
190+
run: cd FFmpeg && LDFLAGS="-Wl,-ld_classic" ./configure --enable-shared --disable-static --enable-gpl --enable-libx264
183191
- name: build ffmpeg
184192
run: cd FFmpeg && make -j10 && sudo make install
185193
- name: config site
186194
run: echo -e "#define PJMEDIA_HAS_VIDEO 1\n" > pjlib/include/pj/config_site.h
187195
- name: configure
188-
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl@1.1/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/lib" CXXFLAGS="-fPIC" ./configure
196+
run: CFLAGS="$(pkg-config --cflags openssl) -fPIC" LDFLAGS="$(pkg-config --libs-only-L openssl) $(pkg-config --libs-only-L openssl)/lib" CXXFLAGS="-fPIC" ./configure
189197
- name: make
190198
run: make
199+
- name: set up Python
200+
uses: actions/setup-python@v4
201+
with:
202+
python-version: '3.10'
191203
- name: swig bindings
192204
run: cd pjsip-apps/src/swig && make
193205

@@ -197,12 +209,16 @@ jobs:
197209
steps:
198210
- uses: actions/checkout@v2
199211
- name: install dependencies
200-
run: brew install openssl@1.1 libvpx swig
212+
run: brew install openssl libvpx swig
201213
- name: config site
202214
run: echo -e "#define PJMEDIA_HAS_VIDEO 1\n#define PJMEDIA_HAS_VID_TOOLBOX_CODEC 1\n" > pjlib/include/pj/config_site.h
203215
- name: configure
204-
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl@1.1/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl@1.1/lib" CXXFLAGS="-fPIC" ./configure
216+
run: CFLAGS="$(pkg-config --cflags openssl) -fPIC" LDFLAGS="$(pkg-config --libs-only-L openssl) $(pkg-config --libs-only-L openssl)/lib" CXXFLAGS="-fPIC" ./configure
205217
- name: make
206218
run: make
219+
- name: set up Python
220+
uses: actions/setup-python@v4
221+
with:
222+
python-version: '3.10'
207223
- name: swig bindings
208224
run: cd pjsip-apps/src/swig && make

.github/workflows/ci-win.yml

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -178,25 +178,10 @@ jobs:
178178
msbuild pjproject-vs14.sln /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
179179
shell: cmd
180180

181-
windows-with-video-libvpx-unit-test-1:
181+
windows-with-video-libvpx-schannel-unit-test-1:
182182
runs-on: windows-latest
183183
steps:
184184
- uses: actions/checkout@master
185-
- name: get openssl
186-
run: Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/openssl-1.1.1s-win.zip" -OutFile ".\openssl.zip"
187-
shell: powershell
188-
- name: expand openssl
189-
run: |
190-
Expand-Archive -LiteralPath .\openssl.zip -DestinationPath .; pwd
191-
cd openssl_build
192-
Add-Content ..\openssl_dir.txt $pwd.Path
193-
shell: powershell
194-
- name: check openssl folder
195-
run: |
196-
set /P OPENSSL_DIR=<openssl_dir.txt
197-
dir "%OPENSSL_DIR%\include"
198-
dir "%OPENSSL_DIR%\lib"
199-
shell: cmd
200185
- name: get vpx
201186
run: Invoke-WebRequest -Uri "https://github.com/pjsip/third_party_libs/raw/main/vpx-1.12-win.zip" -Outfile "vpx.zip"
202187
shell: powershell
@@ -231,6 +216,8 @@ jobs:
231216
run: |
232217
cd pjlib/include/pj; cp config_site_test.h config_site.h
233218
Add-Content config_site.h "#define PJ_HAS_SSL_SOCK 1"
219+
Add-Content config_site.h "#define PJ_SSL_SOCK_IMP PJ_SSL_SOCK_IMP_SCHANNEL"
220+
Add-Content config_site.h "#undef PJMEDIA_SRTP_HAS_DTLS"
234221
Add-Content config_site.h "#define PJMEDIA_HAS_VIDEO 1"
235222
Add-Content config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_DSHOW 1"
236223
Add-Content config_site.h "#define PJMEDIA_HAS_LIBYUV 1"
@@ -258,7 +245,7 @@ jobs:
258245
set /P SDL_DIR=<sdl_dir.txt
259246
cd tests/pjsua/tools
260247
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include;%VPX_DIR%\include;%SDL_DIR%\include
261-
set LIB=%LIB%;%OPENSSL_DIR%\lib;%VPX_DIR%\lib;%SDL_DIR%\lib\x86
248+
set LIB=%LIB%;%VPX_DIR%\lib;%SDL_DIR%\lib\x86
262249
call "%PROGRAMFILES%\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
263250
msbuild cmp_wav.vcxproj /p:PlatformToolset=v143 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
264251
shell: cmd
@@ -268,9 +255,8 @@ jobs:
268255
python-version: '3.10'
269256
- name: unit tests
270257
run: |
271-
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
272258
$env:SDL_DIR = Get-Content .\sdl_dir.txt
273-
$env:PATH+=";$env:OPENSSL_DIR\bin;$env:SDL_DIR\lib\x86;"
259+
$env:PATH+=";$env:SDL_DIR\lib\x86;"
274260
cd tests/pjsua; python runall.py
275261
cd ../../pjlib/bin; ./pjlib-test-i386-Win32-vc14-Release.exe --ci-mode
276262
cd ../../pjlib-util/bin; ./pjlib-util-test-i386-Win32-vc14-Release.exe

.github/workflows/cifuzz.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
fuzz-seconds: 300
2626
sanitizer: ${{ matrix.sanitizer }}
2727
- name: Upload Crash
28-
uses: actions/upload-artifact@v1
28+
uses: actions/upload-artifact@v4
2929
if: failure() && steps.build.outcome == 'success'
3030
with:
3131
name: ${{ matrix.sanitizer }}-artifacts

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ pjsip-apps/src/swig/python/pjsua2.py
6262
pjsip-apps/src/swig/python/pjsua2_wrap.*
6363

6464
# unit tests files
65+
tests/pjsua/**/__pycache__/
6566
tests/pjsua/*.pyc
6667
tests/pjsua/scripts-*/*.pyc
6768
tests/pjsua/*.log

SECURITY.md

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -17,50 +17,50 @@ Encrypt sensitive information using our PGP public key below.
1717
```
1818
-----BEGIN PGP PUBLIC KEY BLOCK-----
1919
Comment: User-ID: Teluu <[email protected]>
20-
Comment: Created: 7/29/2021 8:24 AM
21-
Comment: Expires: 7/29/2023 12:00 PM
20+
Comment: Created: 1/24/2024 10:05 AM
21+
Comment: Expires: 12/31/2029 12:00 PM
2222
Comment: Type: 3,072-bit RSA (secret key available)
2323
Comment: Usage: Signing, Encryption, Certifying User-IDs
24-
Comment: Fingerprint: C2A9D29D94D131466D8832AE15BA5B3B5DAE8B36
24+
Comment: Fingerprint: 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
63-
SjwjgsVZsFg9w1+m0F72hyAQ
64-
=rD28
27+
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
63+
oUbFbwQAAHfNE3xFJespnLA/KbbO
64+
=Oiwu
6565
-----END PGP PUBLIC KEY BLOCK-----
6666
```

0 commit comments

Comments
 (0)