mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-01 22:52:07 +00:00
Compare commits
589 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
7f9dd270b4 | ||
|
ac9b8c621b | ||
|
559f502411 | ||
|
2bbb7356dd | ||
|
b8fb017b41 | ||
|
fcab28abf6 | ||
|
6a6ade581f | ||
|
1ed09805a6 | ||
|
dc3325f298 | ||
|
7871070638 | ||
|
6323344ed4 | ||
|
364092154d | ||
|
909247067b | ||
|
42bfd488f8 | ||
|
814a708953 | ||
|
65bc7c14bf | ||
|
b2f5b66444 | ||
|
2e825dd3ec | ||
|
5d5104f9fa | ||
|
d0993872c7 | ||
|
fed90ac814 | ||
|
61599d5afd | ||
|
a019373fd4 | ||
|
051dea738d | ||
|
e48b99c884 | ||
|
239c28db8f | ||
|
ff18e4db5f | ||
|
2c5171191a | ||
|
7a650efc3c | ||
|
6dddd13101 | ||
|
ffec6d9781 | ||
|
8b57e98f1b | ||
|
a9c96d9040 | ||
|
af2dc182c2 | ||
|
98ce256d9f | ||
|
066b92c589 | ||
|
32f6423faa | ||
|
1fd9ac9dd1 | ||
|
52a6f6f7c4 | ||
|
58776f3eed | ||
|
0a594435b8 | ||
|
9dccd0b6e6 | ||
|
f76b504d6d | ||
|
68e587d7cf | ||
|
4d9c004eca | ||
|
907612ee1c | ||
|
8d52772732 | ||
|
ccc10280ec | ||
|
b8a16cbc7f | ||
|
9d69bd607b | ||
|
7f3c7bd55a | ||
|
72827d0944 | ||
|
bd0d0db878 | ||
|
92ca4293db | ||
|
b97bc60c20 | ||
|
26a0d6e738 | ||
|
4dc4ffc1fd | ||
|
a526713333 | ||
|
6a25584da2 | ||
|
6a13dee6f8 | ||
|
7300514960 | ||
|
1d29b134be | ||
|
04dc456545 | ||
|
a189aaa80c | ||
|
3a53566eab | ||
|
a57c895115 | ||
|
e622a02b33 | ||
|
675bd8f27d | ||
|
869a1443fa | ||
|
f11e95e3fb | ||
|
09026b496f | ||
|
cde827dbf2 | ||
|
d269193c35 | ||
|
76458fafc5 | ||
|
6a9f151d8d | ||
|
eba48efef5 | ||
|
da7300bee0 | ||
|
c3dff0ff95 | ||
|
17cd751827 | ||
|
98a3749c10 | ||
|
8cfde8ad3c | ||
|
f5509a59e8 | ||
|
e48b83fbbf | ||
|
62ef2d4822 | ||
|
47d87e37b6 | ||
|
5854585d2d | ||
|
86c0996fa8 | ||
|
8831d8bf4e | ||
|
94ef54bf41 | ||
|
5e82e4f305 | ||
|
d895fdff60 | ||
|
ca0f58f565 | ||
|
ebc430928b | ||
|
73eb85674f | ||
|
09debb3f26 | ||
|
75566bc270 | ||
|
dd52b54dd6 | ||
|
3f1e4bf90a | ||
|
433bb901d9 | ||
|
22954336ed | ||
|
edc534f1b7 | ||
|
102e4c07ea | ||
|
ad2f7424fa | ||
|
3b58ebc5f3 | ||
|
5cb74797fe | ||
|
96de8fd377 | ||
|
55d8f3ff97 | ||
|
6bad50d875 | ||
|
2970101bd8 | ||
|
b3cdc8a783 | ||
|
f1524d397c | ||
|
74c6433955 | ||
|
4f17bc760c | ||
|
e600ab66a7 | ||
|
ca5b32701c | ||
|
083e6ae80f | ||
|
53abb53f2b | ||
|
7d2befa5fa | ||
|
d6a7bb9ee5 | ||
|
4e2e8151b0 | ||
|
ad5fe8bcff | ||
|
e359409cae | ||
|
e9be0fab8a | ||
|
54fb449963 | ||
|
7ed261b27b | ||
|
b8a9c8be9b | ||
|
ca9430eaeb | ||
|
d4fd3cc054 | ||
|
0bcc789a47 | ||
|
2b52002e75 | ||
|
17e36a9beb | ||
|
443a1ca790 | ||
|
c9a7269366 | ||
|
285df0b026 | ||
|
e343b47c49 | ||
|
94df749a61 | ||
|
7d4609aabf | ||
|
e9023d124c | ||
|
559a97ecf5 | ||
|
4d7a7f9af6 | ||
|
b752476797 | ||
|
4c447a98ed | ||
|
33f7be8986 | ||
|
f2481690d5 | ||
|
6a5ac7e0a9 | ||
|
d912e9fb01 | ||
|
1d8ff1421e | ||
|
b033d27a38 | ||
|
cdd676356e | ||
|
866c235aa3 | ||
|
0acb3f2ccb | ||
|
c1f4586e2d | ||
|
122c589815 | ||
|
6286c51ff6 | ||
|
c1eb76c828 | ||
|
4235d86aee | ||
|
4f1d9cd7db | ||
|
49e63f6fff | ||
|
69fb55c6b3 | ||
|
7d88add653 | ||
|
8a9977fa05 | ||
|
e5ae035d85 | ||
|
eaf02c9036 | ||
|
b7ac2be11b | ||
|
87bfafbb76 | ||
|
4475a54127 | ||
|
2e0631208e | ||
|
1944260c7b | ||
|
4470f8d801 | ||
|
9ab4d17cce | ||
|
81796c02df | ||
|
8c5efce33e | ||
|
c409fe6b45 | ||
|
0e412ac0ee | ||
|
3687972db7 | ||
|
10d31ee12a | ||
|
efb6afda07 | ||
|
4b4dee8fd2 | ||
|
0422b86f89 | ||
|
2a2554db99 | ||
|
a6b114a630 | ||
|
a71a352872 | ||
|
ec25d5df77 | ||
|
cb8e6de117 | ||
|
89b9e4f4ff | ||
|
21af2d966a | ||
|
05310dae07 | ||
|
26acc9601c | ||
|
ce1826e538 | ||
|
12b47fe7f9 | ||
|
e490fe6d7d | ||
|
1f4d1e323e | ||
|
c429987181 | ||
|
da081d4b9f | ||
|
12997dde6a | ||
|
23ab8bc0f4 | ||
|
845d3164f5 | ||
|
556702ce9f | ||
|
545806c146 | ||
|
8e694fe10b | ||
|
4658192547 | ||
|
ee7c7dea60 | ||
|
1a7090fc66 | ||
|
97cb6722ae | ||
|
b662cc73fb | ||
|
9599739b7e | ||
|
07283ac104 | ||
|
b4ebd0936c | ||
|
a891067b89 | ||
|
ef3bd2d8c3 | ||
|
c402ce1dee | ||
|
628938fcc8 | ||
|
94b8ebaea7 | ||
|
0e02cd465f | ||
|
ed4a242931 | ||
|
1b58716c95 | ||
|
6e8f30ea8b | ||
|
344150dd3d | ||
|
b39f14679f | ||
|
50720f6d62 | ||
|
251da2f905 | ||
|
8e3d398ed7 | ||
|
681dfee13d | ||
|
c736458a21 | ||
|
9d379b7071 | ||
|
060621e09d | ||
|
844cce8595 | ||
|
c1354fd73b | ||
|
c303c98539 | ||
|
0974bd112c | ||
|
3c47eadd28 | ||
|
85397f1ba5 | ||
|
d569ca0273 | ||
|
6fbb49d66c | ||
|
9f7c64b6fa | ||
|
05e58fa909 | ||
|
863d44fc8b | ||
|
11e3cff7cb | ||
|
1ff5a6593c | ||
|
43f8ffb4f3 | ||
|
b43ae84564 | ||
|
4eefe8279b | ||
|
be3c0b3ef6 | ||
|
a99ed5c46f | ||
|
b38d879413 | ||
|
56981d1e3a | ||
|
93072c9503 | ||
|
8f9939bffe | ||
|
56fdaaf33a | ||
|
19270516bf | ||
|
5f4036eaac | ||
|
98f164d2bf | ||
|
460d1c19cf | ||
|
31ec477d84 | ||
|
318953d078 | ||
|
86ea24ec7a | ||
|
4a15dc1a62 | ||
|
f850f835b7 | ||
|
c8b8f0d961 | ||
|
987b3404e9 | ||
|
89a2db91c8 | ||
|
6bf2237153 | ||
|
1c7163e2ce | ||
|
70c5520466 | ||
|
453b18d893 | ||
|
40a33e7bb7 | ||
|
a0e7fb8e71 | ||
|
e584243a19 | ||
|
72d17ccf5c | ||
|
ca861064cc | ||
|
8224bb8e65 | ||
|
3e5c58c11c | ||
|
74f386bf94 | ||
|
c80ab8b034 | ||
|
9f362ea315 | ||
|
99625acfa9 | ||
|
0c8b5987f0 | ||
|
173b97b6fd | ||
|
3b65e27116 | ||
|
d55ba83ef7 | ||
|
c7e793c345 | ||
|
b84b7cbf71 | ||
|
a92c1e4c47 | ||
|
218a00e2e9 | ||
|
72eef5681f | ||
|
c2b7f0b5f7 | ||
|
41bc763d80 | ||
|
ee62332ced | ||
|
85400015b7 | ||
|
f87a5eeb95 | ||
|
681c61ad32 | ||
|
503c19e12b | ||
|
5b1c2688da | ||
|
da93927c01 | ||
|
91cc40d170 | ||
|
31cf32d91f | ||
|
f3ace249f5 | ||
|
6896088fa8 | ||
|
84ab90895a | ||
|
597ee613de | ||
|
ef32d90e91 | ||
|
d5ad504723 | ||
|
739e770c34 | ||
|
d7d38c7d03 | ||
|
5ce9057a12 | ||
|
49029c8575 | ||
|
70d76bcc0e | ||
|
eb5476ff66 | ||
|
647035c323 | ||
|
9df3076f29 | ||
|
8e36c59033 | ||
|
8b7a8c4aea | ||
|
1c05719100 | ||
|
d148a3e412 | ||
|
d3c60820d7 | ||
|
a6e219062d | ||
|
0cea9811cd | ||
|
987e87bc0b | ||
|
6ae8ce604a | ||
|
86cbda90b8 | ||
|
6ea8c96c3d | ||
|
623f6176a3 | ||
|
e9e8e7fe1a | ||
|
e010821bc5 | ||
|
2e7424169e | ||
|
c26b5cdfa3 | ||
|
c155ea7008 | ||
|
48608177d7 | ||
|
01068048f8 | ||
|
f7e19e5134 | ||
|
11048483d3 | ||
|
f05b7507aa | ||
|
57fe9aa6b6 | ||
|
104c0b3fec | ||
|
f1fb05214e | ||
|
2ab7a3d323 | ||
|
f5a41d3092 | ||
|
d08424384b | ||
|
79ce088101 | ||
|
c4115537e0 | ||
|
fb4b367ff1 | ||
|
6f9e72c585 | ||
|
792eee44d0 | ||
|
ff71b9089c | ||
|
c6ff92923d | ||
|
dc3c0f00f3 | ||
|
bb9afcb388 | ||
|
4c51ba9064 | ||
|
ebcb099a01 | ||
|
b6ccc27e6f | ||
|
07f192ca03 | ||
|
0df47beebe | ||
|
7d52ceb69d | ||
|
b74245d48a | ||
|
5c289cc063 | ||
|
9347c96712 | ||
|
eb918fe180 | ||
|
665745cfeb | ||
|
6355f9190a | ||
|
113889b14d | ||
|
c5be6262b4 | ||
|
558d3a6b11 | ||
|
ffadaffdd8 | ||
|
9cad385930 | ||
|
41507363f3 | ||
|
cfb39e88dc | ||
|
6b67970bbb | ||
|
d91947f587 | ||
|
1f364254a6 | ||
|
820e42aa89 | ||
|
47e18be18d | ||
|
4f9918f663 | ||
|
c37ed7c816 | ||
|
f7e5ae793e | ||
|
f3f257dcda | ||
|
64f8ff03be | ||
|
2ef59577a9 | ||
|
5966077030 | ||
|
0cdf1a5757 | ||
|
62c1036b51 | ||
|
00818e7b25 | ||
|
cced3e7f1b | ||
|
1b58c8bdd0 | ||
|
0f445e1ddd | ||
|
55f2dc4759 | ||
|
e764f292b5 | ||
|
e8c80bf7fb | ||
|
9f8de014a1 | ||
|
667783831b | ||
|
2f81317ac1 | ||
|
d73fb3ec7a | ||
|
fdce50e420 | ||
|
5e439b7384 | ||
|
7c1faeff48 | ||
|
51dbe89df6 | ||
|
34f1d974f5 | ||
|
95457f7922 | ||
|
224eb221e0 | ||
|
2cf57c41b6 | ||
|
930341ba86 | ||
|
48e1812e29 | ||
|
c9fb586c34 | ||
|
545538fb7a | ||
|
921eebdbea | ||
|
ab211c542a | ||
|
bd5bea5b2c | ||
|
eec311d8d7 | ||
|
845b4fdd5e | ||
|
2afad15f48 | ||
|
5656972bfe | ||
|
a160eced99 | ||
|
b355bf21e6 | ||
|
244ccaa8a8 | ||
|
25afda9be0 | ||
|
67840823c1 | ||
|
f64314ff48 | ||
|
9c63f03b45 | ||
|
7f62d6168d | ||
|
7bc999309c | ||
|
5e914efc8c | ||
|
f90aeade4f | ||
|
5065c0b118 | ||
|
a458d704ab | ||
|
24452ff104 | ||
|
9b20b324f5 | ||
|
645b610e79 | ||
|
b4e43214f7 | ||
|
86875d2381 | ||
|
9eda0c41eb | ||
|
7a47ed19c7 | ||
|
13ae4e3853 | ||
|
b0a52eb1fe | ||
|
d7a4ab7dce | ||
|
ef275aec8a | ||
|
0c89eeadc0 | ||
|
35823b650a | ||
|
a4af2ea7de | ||
|
8aa6a8a904 | ||
|
a3a4244f21 | ||
|
9b15516f23 | ||
|
21613b6f68 | ||
|
f377a0ff57 | ||
|
0398238489 | ||
|
b5cb26dc47 | ||
|
dbd37bdc51 | ||
|
dd81253ab1 | ||
|
5597fe3098 | ||
|
e1d966ed0a | ||
|
77a5fa3b0d | ||
|
6eefc674fe | ||
|
cb3373872a | ||
|
991c7be001 | ||
|
2debb076ed | ||
|
e2544341bd | ||
|
075724845e | ||
|
106e8b38f0 | ||
|
aab9839678 | ||
|
01e960cd90 | ||
|
98c0482844 | ||
|
0c2edc4f56 | ||
|
bc00add254 | ||
|
371d3c6164 | ||
|
12af59e67e | ||
|
0b05623cef | ||
|
85a109617f | ||
|
70c144309c | ||
|
b1bf3b0574 | ||
|
7f3a833466 | ||
|
eec1fd737c | ||
|
4d3b0a5778 | ||
|
be3a73af62 | ||
|
9994c51499 | ||
|
919647a035 | ||
|
daeaceb27c | ||
|
ce5194a523 | ||
|
d4faa1ddd2 | ||
|
87dea6c503 | ||
|
0091a90ea8 | ||
|
f5bd2c653d | ||
|
814348c739 | ||
|
1acab416ad | ||
|
11b9c1d104 | ||
|
a8f6625d12 | ||
|
5388319dd3 | ||
|
875a1b04ff | ||
|
99e26d3448 | ||
|
a9e81ae0b8 | ||
|
0e9954467f | ||
|
b02fbc702d | ||
|
80d5790274 | ||
|
73ea37c5ab | ||
|
49c1c35982 | ||
|
04dd67da00 | ||
|
55313696db | ||
|
d1639199c3 | ||
|
9940623bce | ||
|
9494148b10 | ||
|
c540af16ad | ||
|
65b24c65db | ||
|
f5f7f76cd4 | ||
|
3d547647b2 | ||
|
16884775b9 | ||
|
48b8b0c4d7 | ||
|
8e5dc5a087 | ||
|
3c1824a685 | ||
|
3c4695ea31 | ||
|
e479f1b648 | ||
|
afc8d78a18 | ||
|
6c97e3b0f4 | ||
|
02c25a24a4 | ||
|
ef9268ec0c | ||
|
bb2fa44071 | ||
|
6d65f8e08c | ||
|
965e88a6b0 | ||
|
f680a29405 | ||
|
8e604e8a94 | ||
|
2c36dcdd50 | ||
|
49eb8a77ee | ||
|
99ca7436d8 | ||
|
be1b1c8085 | ||
|
01d3b3c0e3 | ||
|
8cf90dae41 | ||
|
6eb685d353 | ||
|
245171d812 | ||
|
23e6569fb0 | ||
|
81046e943a | ||
|
3307083f8b | ||
|
c39034b729 | ||
|
83e4ccf802 | ||
|
5007659488 | ||
|
d4291b8113 | ||
|
39958a31c3 | ||
|
4f76580785 | ||
|
1a2033b915 | ||
|
0f15bde800 | ||
|
3cb697c495 | ||
|
06f45d2872 | ||
|
e037cd09c6 | ||
|
b241a82d83 | ||
|
3326f4ec57 | ||
|
f9a9c48d81 | ||
|
889afccad0 | ||
|
c013a7dc64 | ||
|
89fda08f64 | ||
|
9fd214fcbb | ||
|
a6096ce318 | ||
|
27c0287bd6 | ||
|
b2e78c90e7 | ||
|
4b350962d3 | ||
|
e4d63e698a | ||
|
5cc2a4fc2e | ||
|
fe68e3aff4 | ||
|
c69c399dd2 | ||
|
84cb1bdf84 | ||
|
408cbb2050 | ||
|
908481bd10 | ||
|
e05a703ab0 | ||
|
a739e197a5 | ||
|
f71a56022a | ||
|
ec32dc300f | ||
|
eb22faad12 | ||
|
32525e5901 | ||
|
52e97e8d0a | ||
|
4454ea58fd | ||
|
62d3e52cf9 | ||
|
d2f84c8342 | ||
|
13646cc888 | ||
|
ded2a4c1be | ||
|
edd36639c7 | ||
|
7afeceb47e | ||
|
bb682fc5b4 | ||
|
17453e0079 | ||
|
9675ef689f | ||
|
ffa2207926 | ||
|
eb6c2333dd | ||
|
00f4bc5ab0 | ||
|
1213217ccc | ||
|
6184eb5ffd | ||
|
f7c94bc01d | ||
|
8e59603d98 | ||
|
2ab600c71a | ||
|
92caab3647 | ||
|
fee17e1480 | ||
|
d07b8af199 | ||
|
442ebe344b | ||
|
5bfb9a935f | ||
|
347b7f530d | ||
|
f538fd3d7b | ||
|
caffa27a55 |
183
.drone.yml
183
.drone.yml
@ -1,183 +0,0 @@
|
||||
---
|
||||
kind: pipeline
|
||||
name: unit-tests
|
||||
|
||||
steps:
|
||||
- name: bootstrap
|
||||
image: signalwire/freeswitch-public-base:bullseye
|
||||
pull: always
|
||||
commands:
|
||||
- cat /proc/sys/kernel/core_pattern
|
||||
- ./bootstrap.sh -j
|
||||
|
||||
- name: configure
|
||||
image: signalwire/freeswitch-public-base:bullseye
|
||||
pull: always
|
||||
environment:
|
||||
REPOTOKEN:
|
||||
from_secret: repotoken
|
||||
commands:
|
||||
- echo "machine freeswitch.signalwire.com password $REPOTOKEN" > /etc/apt/auth.conf
|
||||
- apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -yq remove libsofia-sip-ua0 libspandsp-dev
|
||||
- DEBIAN_FRONTEND=noninteractive apt-get -yq install libspandsp3-dev
|
||||
- export REPOTOKEN=''
|
||||
- rm -rf /etc/apt/auth.conf
|
||||
- git clone https://github.com/freeswitch/sofia-sip.git
|
||||
- cd sofia-sip && ./autogen.sh && ./configure.gnu && make -j`nproc` && make install && cd ..
|
||||
- echo 'codecs/mod_openh264' >> modules.conf
|
||||
- sed -i '/applications\\/mod_http_cache/s/^#//g' modules.conf
|
||||
- sed -i '/event_handlers\\/mod_rayo/s/^#//g' modules.conf
|
||||
- sed -i '/formats\\/mod_opusfile/s/^#//g' modules.conf
|
||||
- sed -i '/languages\\/mod_lua/s/^#//g' modules.conf
|
||||
- export ASAN_OPTIONS=log_path=stdout:disable_coredump=0:unmap_shadow_on_exit=1:fast_unwind_on_malloc=0
|
||||
- ./configure --enable-address-sanitizer --enable-fake-dlclose
|
||||
|
||||
- name: build
|
||||
image: signalwire/freeswitch-public-base:bullseye
|
||||
pull: always
|
||||
environment:
|
||||
REPOTOKEN:
|
||||
from_secret: repotoken
|
||||
commands:
|
||||
- echo "machine freeswitch.signalwire.com password $REPOTOKEN" > /etc/apt/auth.conf
|
||||
- apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -yq remove libsofia-sip-ua0 libspandsp-dev
|
||||
- DEBIAN_FRONTEND=noninteractive apt-get -yq install libspandsp3-dev
|
||||
- export REPOTOKEN=''
|
||||
- rm -rf /etc/apt/auth.conf
|
||||
- cd sofia-sip && make install && cd ..
|
||||
- echo '#!/bin/bash\nmake -j`nproc --all` |& tee ./unit-tests-build-result.txt\nexitstatus=$${PIPESTATUS[0]}\necho $$exitstatus > ./build-status.txt\n' > build.sh
|
||||
- chmod +x build.sh
|
||||
- ./build.sh
|
||||
|
||||
- name: run-tests
|
||||
image: signalwire/freeswitch-public-base:bullseye
|
||||
pull: always
|
||||
environment:
|
||||
REPOTOKEN:
|
||||
from_secret: repotoken
|
||||
commands:
|
||||
- echo "machine freeswitch.signalwire.com password $REPOTOKEN" > /etc/apt/auth.conf
|
||||
- apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -yq remove libsofia-sip-ua0 libspandsp-dev
|
||||
- DEBIAN_FRONTEND=noninteractive apt-get -yq install libspandsp3-dev
|
||||
- export REPOTOKEN=''
|
||||
- rm -rf /etc/apt/auth.conf
|
||||
- cd sofia-sip && make install && cd ..
|
||||
- make install || true
|
||||
- cd tests/unit
|
||||
- export ASAN_OPTIONS=log_path=stdout:disable_coredump=0:unmap_shadow_on_exit=1:fast_unwind_on_malloc=0
|
||||
- ./run-tests.sh
|
||||
- ls -la /cores
|
||||
- mkdir logs && (mv log_run-tests_*.html logs || true) && (mv backtrace_*.txt logs || true)
|
||||
- echo 0 > run-tests-status.txt
|
||||
- ./collect-test-logs.sh && exit 0 || echo 'Some tests failed'
|
||||
- echo 1 > run-tests-status.txt
|
||||
- cd logs && ls -la
|
||||
|
||||
- name: notify
|
||||
image: signalwire/drone-notify
|
||||
pull: always
|
||||
environment:
|
||||
SLACK_WEBHOOK_URL:
|
||||
from_secret: slack_webhook_url
|
||||
ENV_FILE:
|
||||
from_secret: notify_env
|
||||
commands:
|
||||
- /root/unit-tests-notify.sh
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
event:
|
||||
- pull_request
|
||||
- push
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: scan-build
|
||||
|
||||
steps:
|
||||
- name: bootstrap
|
||||
image: signalwire/freeswitch-public-base:bullseye
|
||||
pull: always
|
||||
commands:
|
||||
- ./bootstrap.sh -j
|
||||
|
||||
- name: configure
|
||||
image: signalwire/freeswitch-public-base:bullseye
|
||||
pull: always
|
||||
environment:
|
||||
REPOTOKEN:
|
||||
from_secret: repotoken
|
||||
commands:
|
||||
- echo "machine freeswitch.signalwire.com password $REPOTOKEN" > /etc/apt/auth.conf
|
||||
- apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -yq remove libspandsp-dev
|
||||
- DEBIAN_FRONTEND=noninteractive apt-get -yq install libsofia-sip-ua-dev libspandsp3-dev
|
||||
- export REPOTOKEN=''
|
||||
- rm -rf /etc/apt/auth.conf
|
||||
- cp build/modules.conf.most modules.conf
|
||||
#Enable/Uncomment mods
|
||||
- echo 'codecs/mod_openh264' >> modules.conf
|
||||
- sed -i "/mod_mariadb/s/^#//g" modules.conf
|
||||
- sed -i "/mod_v8/s/^#//g" modules.conf
|
||||
#Disable/Comment out mods
|
||||
- sed -i '/mod_ilbc/s/^/#/g' modules.conf
|
||||
- sed -i '/mod_isac/s/^/#/g' modules.conf
|
||||
- sed -i '/mod_mp4/s/^/#/g' modules.conf
|
||||
- sed -i '/mod_mongo/s/^/#/g' modules.conf
|
||||
- sed -i '/mod_pocketsphinx/s/^/#/g' modules.conf
|
||||
- sed -i '/mod_sangoma_codec/s/^/#/g' modules.conf
|
||||
- sed -i '/mod_siren/s/^/#/g' modules.conf
|
||||
#Comment out mods for a while
|
||||
- sed -i '/mod_avmd/s/^/#/g' modules.conf
|
||||
- sed -i '/mod_basic/s/^/#/g' modules.conf
|
||||
- sed -i '/mod_cdr_mongodb/s/^/#/g' modules.conf
|
||||
- sed -i '/mod_cv/s/^/#/g' modules.conf
|
||||
- sed -i '/mod_erlang_event/s/^/#/g' modules.conf
|
||||
- sed -i '/mod_perl/s/^/#/g' modules.conf
|
||||
- sed -i '/mod_rtmp/s/^/#/g' modules.conf
|
||||
- sed -i '/mod_unimrcp/s/^/#/g' modules.conf
|
||||
- sed -i '/mod_xml_rpc/s/^/#/g' modules.conf
|
||||
- ./configure
|
||||
|
||||
- name: scan-build
|
||||
image: signalwire/freeswitch-public-base:bullseye
|
||||
pull: always
|
||||
environment:
|
||||
REPOTOKEN:
|
||||
from_secret: repotoken
|
||||
commands:
|
||||
- echo "machine freeswitch.signalwire.com password $REPOTOKEN" > /etc/apt/auth.conf
|
||||
- apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -yq remove libspandsp-dev
|
||||
- DEBIAN_FRONTEND=noninteractive apt-get -yq install libsofia-sip-ua-dev libspandsp3-dev
|
||||
- export REPOTOKEN=''
|
||||
- rm -rf /etc/apt/auth.conf
|
||||
- mkdir -p scan-build
|
||||
- echo '#!/bin/bash\nscan-build-11 -o ./scan-build/ make -j`nproc --all` |& tee ./scan-build-result.txt\nexitstatus=$${PIPESTATUS[0]}\necho $$exitstatus > ./scan-build-status.txt\n' > scan.sh
|
||||
- chmod +x scan.sh
|
||||
- ./scan.sh
|
||||
- exitstatus=`cat ./scan-build-status.txt`
|
||||
- echo "*** Exit status is $exitstatus"
|
||||
|
||||
- name: notify
|
||||
image: signalwire/drone-notify
|
||||
pull: always
|
||||
environment:
|
||||
SLACK_WEBHOOK_URL:
|
||||
from_secret: slack_webhook_url
|
||||
ENV_FILE:
|
||||
from_secret: notify_env
|
||||
commands:
|
||||
- /root/scan-build-notify.sh
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
event:
|
||||
- pull_request
|
||||
- push
|
||||
|
||||
---
|
||||
kind: signature
|
||||
hmac: 780e4aaee61e3683ea4a8d6fe5131f7c9e62ebad727546013f18df0fca80d705
|
||||
|
||||
...
|
24
.github/docker/debian/bookworm/amd64/CI/Dockerfile
vendored
Normal file
24
.github/docker/debian/bookworm/amd64/CI/Dockerfile
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
ARG BUILDER_IMAGE=signalwire/freeswitch-public-ci-base:bookworm-amd64
|
||||
|
||||
FROM ${BUILDER_IMAGE}
|
||||
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
COPY --from=sofia-sip / /usr/src/sofia-sip
|
||||
COPY --from=freeswitch / /usr/src/freeswitch
|
||||
|
||||
RUN cd /usr/src/freeswitch && \
|
||||
./ci.sh -t unit-test -a configure -c sofia-sip -p "/usr/src/sofia-sip" && \
|
||||
./ci.sh -t unit-test -a build -c sofia-sip -p "/usr/src/sofia-sip" && \
|
||||
./ci.sh -t unit-test -a install -c sofia-sip -p "/usr/src/sofia-sip" && \
|
||||
./ci.sh -t unit-test -a configure -c freeswitch -p "/usr/src/freeswitch" && \
|
||||
./ci.sh -t unit-test -a build -c freeswitch -p "/usr/src/freeswitch" && \
|
||||
./ci.sh -t unit-test -a install -c freeswitch -p "/usr/src/freeswitch"
|
||||
|
||||
WORKDIR /usr/src/freeswitch/tests/unit
|
||||
|
||||
ENTRYPOINT ["/usr/src/freeswitch/tests/unit/run-tests.sh"]
|
103
.github/docker/debian/bookworm/amd64/public.release.Dockerfile
vendored
Normal file
103
.github/docker/debian/bookworm/amd64/public.release.Dockerfile
vendored
Normal file
@ -0,0 +1,103 @@
|
||||
ARG BUILDER_IMAGE=debian:bookworm-20240513
|
||||
|
||||
FROM ${BUILDER_IMAGE} AS builder
|
||||
|
||||
ARG MAINTAINER_NAME="Andrey Volk"
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
# Credentials
|
||||
ARG REPO_DOMAIN=freeswitch.signalwire.com
|
||||
ARG REPO_USERNAME=user
|
||||
|
||||
ARG BUILD_NUMBER=42
|
||||
ARG GIT_SHA=0000000000
|
||||
|
||||
ARG DATA_DIR=/data
|
||||
ARG CODENAME=bookworm
|
||||
ARG GPG_KEY="/usr/share/keyrings/signalwire-freeswitch-repo.gpg"
|
||||
|
||||
MAINTAINER "${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get -q update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
|
||||
apt-transport-https \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
debhelper \
|
||||
devscripts \
|
||||
dh-autoreconf \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
graphviz \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
pkg-config \
|
||||
wget
|
||||
|
||||
RUN update-ca-certificates --fresh
|
||||
|
||||
RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
|
||||
chmod +x ~/.env
|
||||
|
||||
RUN . ~/.env && cat <<EOF > /etc/apt/sources.list.d/freeswitch.list
|
||||
deb [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-release ${CODENAME} main
|
||||
deb-src [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-release ${CODENAME} main
|
||||
EOF
|
||||
|
||||
RUN git config --global --add safe.directory '*' \
|
||||
&& git config --global user.name "${MAINTAINER_NAME}" \
|
||||
&& git config --global user.email "${MAINTAINER_EMAIL}"
|
||||
|
||||
# Bootstrap and Build
|
||||
COPY . ${DATA_DIR}
|
||||
WORKDIR ${DATA_DIR}
|
||||
RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-dsc ${CODENAME}
|
||||
|
||||
RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
|
||||
printf "machine ${REPO_DOMAIN} " > /etc/apt/auth.conf && \
|
||||
printf "login ${REPO_USERNAME} " >> /etc/apt/auth.conf && \
|
||||
printf "password " >> /etc/apt/auth.conf && \
|
||||
cat /run/secrets/REPO_PASSWORD >> /etc/apt/auth.conf && \
|
||||
sha512sum /run/secrets/REPO_PASSWORD && \
|
||||
curl \
|
||||
--fail \
|
||||
--netrc-file /etc/apt/auth.conf \
|
||||
--output ${GPG_KEY} \
|
||||
https://${REPO_DOMAIN}/repo/deb/debian-release/signalwire-freeswitch-repo.gpg && \
|
||||
file ${GPG_KEY} && \
|
||||
apt-get --quiet update && \
|
||||
mk-build-deps \
|
||||
--install \
|
||||
--remove debian/control \
|
||||
--tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
|
||||
apt-get --yes --fix-broken install && \
|
||||
rm -f /etc/apt/auth.conf
|
||||
|
||||
ENV DEB_BUILD_OPTIONS="parallel=1"
|
||||
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
|
||||
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
|
||||
RUN dpkg-source \
|
||||
--diff-ignore=.* \
|
||||
--compression=xz \
|
||||
--compression-level=9 \
|
||||
--build \
|
||||
. \
|
||||
&& debuild -b -us -uc \
|
||||
&& mkdir OUT \
|
||||
&& mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
|
||||
|
||||
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
|
||||
FROM scratch
|
||||
COPY --from=builder /data/OUT/ /
|
103
.github/docker/debian/bookworm/amd64/public.unstable.Dockerfile
vendored
Normal file
103
.github/docker/debian/bookworm/amd64/public.unstable.Dockerfile
vendored
Normal file
@ -0,0 +1,103 @@
|
||||
ARG BUILDER_IMAGE=debian:bookworm-20240513
|
||||
|
||||
FROM ${BUILDER_IMAGE} AS builder
|
||||
|
||||
ARG MAINTAINER_NAME="Andrey Volk"
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
# Credentials
|
||||
ARG REPO_DOMAIN=freeswitch.signalwire.com
|
||||
ARG REPO_USERNAME=user
|
||||
|
||||
ARG BUILD_NUMBER=42
|
||||
ARG GIT_SHA=0000000000
|
||||
|
||||
ARG DATA_DIR=/data
|
||||
ARG CODENAME=bookworm
|
||||
ARG GPG_KEY="/usr/share/keyrings/signalwire-freeswitch-repo.gpg"
|
||||
|
||||
MAINTAINER "${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get -q update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
|
||||
apt-transport-https \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
debhelper \
|
||||
devscripts \
|
||||
dh-autoreconf \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
graphviz \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
pkg-config \
|
||||
wget
|
||||
|
||||
RUN update-ca-certificates --fresh
|
||||
|
||||
RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
|
||||
chmod +x ~/.env
|
||||
|
||||
RUN . ~/.env && cat <<EOF > /etc/apt/sources.list.d/freeswitch.list
|
||||
deb [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-unstable ${CODENAME} main
|
||||
deb-src [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-unstable ${CODENAME} main
|
||||
EOF
|
||||
|
||||
RUN git config --global --add safe.directory '*' \
|
||||
&& git config --global user.name "${MAINTAINER_NAME}" \
|
||||
&& git config --global user.email "${MAINTAINER_EMAIL}"
|
||||
|
||||
# Bootstrap and Build
|
||||
COPY . ${DATA_DIR}
|
||||
WORKDIR ${DATA_DIR}
|
||||
RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-dsc ${CODENAME}
|
||||
|
||||
RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
|
||||
printf "machine ${REPO_DOMAIN} " > /etc/apt/auth.conf && \
|
||||
printf "login ${REPO_USERNAME} " >> /etc/apt/auth.conf && \
|
||||
printf "password " >> /etc/apt/auth.conf && \
|
||||
cat /run/secrets/REPO_PASSWORD >> /etc/apt/auth.conf && \
|
||||
sha512sum /run/secrets/REPO_PASSWORD && \
|
||||
curl \
|
||||
--fail \
|
||||
--netrc-file /etc/apt/auth.conf \
|
||||
--output ${GPG_KEY} \
|
||||
https://${REPO_DOMAIN}/repo/deb/debian-unstable/signalwire-freeswitch-repo.gpg && \
|
||||
file ${GPG_KEY} && \
|
||||
apt-get --quiet update && \
|
||||
mk-build-deps \
|
||||
--install \
|
||||
--remove debian/control \
|
||||
--tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
|
||||
apt-get --yes --fix-broken install && \
|
||||
rm -f /etc/apt/auth.conf
|
||||
|
||||
ENV DEB_BUILD_OPTIONS="parallel=1"
|
||||
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
|
||||
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
|
||||
RUN dpkg-source \
|
||||
--diff-ignore=.* \
|
||||
--compression=xz \
|
||||
--compression-level=9 \
|
||||
--build \
|
||||
. \
|
||||
&& debuild -b -us -uc \
|
||||
&& mkdir OUT \
|
||||
&& mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
|
||||
|
||||
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
|
||||
FROM scratch
|
||||
COPY --from=builder /data/OUT/ /
|
102
.github/docker/debian/bookworm/arm32v7/public.release.Dockerfile
vendored
Normal file
102
.github/docker/debian/bookworm/arm32v7/public.release.Dockerfile
vendored
Normal file
@ -0,0 +1,102 @@
|
||||
ARG BUILDER_IMAGE=arm32v7/debian:bookworm-20240513
|
||||
|
||||
FROM --platform=linux/arm32 ${BUILDER_IMAGE} AS builder
|
||||
|
||||
ARG MAINTAINER_NAME="Andrey Volk"
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
# Credentials
|
||||
ARG REPO_DOMAIN=freeswitch.signalwire.com
|
||||
ARG REPO_USERNAME=user
|
||||
|
||||
ARG BUILD_NUMBER=42
|
||||
ARG GIT_SHA=0000000000
|
||||
|
||||
ARG DATA_DIR=/data
|
||||
ARG CODENAME=bookworm
|
||||
ARG GPG_KEY="/usr/share/keyrings/signalwire-freeswitch-repo.gpg"
|
||||
|
||||
MAINTAINER "${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get -q update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
|
||||
apt-transport-https \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
debhelper \
|
||||
devscripts \
|
||||
dh-autoreconf \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
graphviz \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
pkg-config \
|
||||
wget
|
||||
|
||||
RUN update-ca-certificates --fresh
|
||||
|
||||
RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
|
||||
chmod +x ~/.env
|
||||
|
||||
RUN . ~/.env && cat <<EOF > /etc/apt/sources.list.d/freeswitch.list
|
||||
deb [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/rpi/debian-release ${CODENAME} main
|
||||
deb-src [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/rpi/debian-release ${CODENAME} main
|
||||
EOF
|
||||
|
||||
RUN git config --global --add safe.directory '*' \
|
||||
&& git config --global user.name "${MAINTAINER_NAME}" \
|
||||
&& git config --global user.email "${MAINTAINER_EMAIL}"
|
||||
|
||||
# Bootstrap and Build
|
||||
COPY . ${DATA_DIR}
|
||||
WORKDIR ${DATA_DIR}
|
||||
RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-dsc -a armhf ${CODENAME}
|
||||
|
||||
RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
|
||||
printf "machine ${REPO_DOMAIN} " > /etc/apt/auth.conf && \
|
||||
printf "login ${REPO_USERNAME} " >> /etc/apt/auth.conf && \
|
||||
printf "password " >> /etc/apt/auth.conf && \
|
||||
cat /run/secrets/REPO_PASSWORD >> /etc/apt/auth.conf && \
|
||||
sha512sum /run/secrets/REPO_PASSWORD && \
|
||||
curl \
|
||||
--fail \
|
||||
--netrc-file /etc/apt/auth.conf \
|
||||
--output ${GPG_KEY} \
|
||||
https://${REPO_DOMAIN}/repo/deb/rpi/debian-release/signalwire-freeswitch-repo.gpg && \
|
||||
file ${GPG_KEY} && \
|
||||
apt-get --quiet update && \
|
||||
mk-build-deps \
|
||||
--install \
|
||||
--remove debian/control \
|
||||
--tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
|
||||
apt-get --yes --fix-broken install && \
|
||||
rm -f /etc/apt/auth.conf
|
||||
|
||||
ENV DEB_BUILD_OPTIONS="parallel=1"
|
||||
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
|
||||
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
|
||||
RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
|
||||
RUN dpkg-source \
|
||||
--diff-ignore=.* \
|
||||
--compression=xz \
|
||||
--compression-level=9 \
|
||||
--build \
|
||||
. \
|
||||
&& debuild -b -us -uc \
|
||||
&& mkdir OUT \
|
||||
&& mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
|
||||
|
||||
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
|
||||
FROM scratch
|
||||
COPY --from=builder /data/OUT/ /
|
102
.github/docker/debian/bookworm/arm32v7/public.unstable.Dockerfile
vendored
Normal file
102
.github/docker/debian/bookworm/arm32v7/public.unstable.Dockerfile
vendored
Normal file
@ -0,0 +1,102 @@
|
||||
ARG BUILDER_IMAGE=arm32v7/debian:bookworm-20240513
|
||||
|
||||
FROM --platform=linux/arm32 ${BUILDER_IMAGE} AS builder
|
||||
|
||||
ARG MAINTAINER_NAME="Andrey Volk"
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
# Credentials
|
||||
ARG REPO_DOMAIN=freeswitch.signalwire.com
|
||||
ARG REPO_USERNAME=user
|
||||
|
||||
ARG BUILD_NUMBER=42
|
||||
ARG GIT_SHA=0000000000
|
||||
|
||||
ARG DATA_DIR=/data
|
||||
ARG CODENAME=bookworm
|
||||
ARG GPG_KEY="/usr/share/keyrings/signalwire-freeswitch-repo.gpg"
|
||||
|
||||
MAINTAINER "${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get -q update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
|
||||
apt-transport-https \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
debhelper \
|
||||
devscripts \
|
||||
dh-autoreconf \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
graphviz \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
pkg-config \
|
||||
wget
|
||||
|
||||
RUN update-ca-certificates --fresh
|
||||
|
||||
RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
|
||||
chmod +x ~/.env
|
||||
|
||||
RUN . ~/.env && cat <<EOF > /etc/apt/sources.list.d/freeswitch.list
|
||||
deb [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/rpi/debian-dev ${CODENAME} main
|
||||
deb-src [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/rpi/debian-dev ${CODENAME} main
|
||||
EOF
|
||||
|
||||
RUN git config --global --add safe.directory '*' \
|
||||
&& git config --global user.name "${MAINTAINER_NAME}" \
|
||||
&& git config --global user.email "${MAINTAINER_EMAIL}"
|
||||
|
||||
# Bootstrap and Build
|
||||
COPY . ${DATA_DIR}
|
||||
WORKDIR ${DATA_DIR}
|
||||
RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-dsc -a armhf ${CODENAME}
|
||||
|
||||
RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
|
||||
printf "machine ${REPO_DOMAIN} " > /etc/apt/auth.conf && \
|
||||
printf "login ${REPO_USERNAME} " >> /etc/apt/auth.conf && \
|
||||
printf "password " >> /etc/apt/auth.conf && \
|
||||
cat /run/secrets/REPO_PASSWORD >> /etc/apt/auth.conf && \
|
||||
sha512sum /run/secrets/REPO_PASSWORD && \
|
||||
curl \
|
||||
--fail \
|
||||
--netrc-file /etc/apt/auth.conf \
|
||||
--output ${GPG_KEY} \
|
||||
https://${REPO_DOMAIN}/repo/deb/rpi/debian-dev/signalwire-freeswitch-repo.gpg && \
|
||||
file ${GPG_KEY} && \
|
||||
apt-get --quiet update && \
|
||||
mk-build-deps \
|
||||
--install \
|
||||
--remove debian/control \
|
||||
--tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
|
||||
apt-get --yes --fix-broken install && \
|
||||
rm -f /etc/apt/auth.conf
|
||||
|
||||
ENV DEB_BUILD_OPTIONS="parallel=1"
|
||||
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
|
||||
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
|
||||
RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
|
||||
RUN dpkg-source \
|
||||
--diff-ignore=.* \
|
||||
--compression=xz \
|
||||
--compression-level=9 \
|
||||
--build \
|
||||
. \
|
||||
&& debuild -b -us -uc \
|
||||
&& mkdir OUT \
|
||||
&& mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
|
||||
|
||||
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
|
||||
FROM scratch
|
||||
COPY --from=builder /data/OUT/ /
|
102
.github/docker/debian/bookworm/arm64v8/public.release.Dockerfile
vendored
Normal file
102
.github/docker/debian/bookworm/arm64v8/public.release.Dockerfile
vendored
Normal file
@ -0,0 +1,102 @@
|
||||
ARG BUILDER_IMAGE=arm64v8/debian:bookworm-20240513
|
||||
|
||||
FROM --platform=linux/arm64 ${BUILDER_IMAGE} AS builder
|
||||
|
||||
ARG MAINTAINER_NAME="Andrey Volk"
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
# Credentials
|
||||
ARG REPO_DOMAIN=freeswitch.signalwire.com
|
||||
ARG REPO_USERNAME=user
|
||||
|
||||
ARG BUILD_NUMBER=42
|
||||
ARG GIT_SHA=0000000000
|
||||
|
||||
ARG DATA_DIR=/data
|
||||
ARG CODENAME=bookworm
|
||||
ARG GPG_KEY="/usr/share/keyrings/signalwire-freeswitch-repo.gpg"
|
||||
|
||||
MAINTAINER "${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get -q update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
|
||||
apt-transport-https \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
debhelper \
|
||||
devscripts \
|
||||
dh-autoreconf \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
graphviz \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
pkg-config \
|
||||
wget
|
||||
|
||||
RUN update-ca-certificates --fresh
|
||||
|
||||
RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
|
||||
chmod +x ~/.env
|
||||
|
||||
RUN . ~/.env && cat <<EOF > /etc/apt/sources.list.d/freeswitch.list
|
||||
deb [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-release ${CODENAME} main
|
||||
deb-src [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-release ${CODENAME} main
|
||||
EOF
|
||||
|
||||
RUN git config --global --add safe.directory '*' \
|
||||
&& git config --global user.name "${MAINTAINER_NAME}" \
|
||||
&& git config --global user.email "${MAINTAINER_EMAIL}"
|
||||
|
||||
# Bootstrap and Build
|
||||
COPY . ${DATA_DIR}
|
||||
WORKDIR ${DATA_DIR}
|
||||
RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-dsc -a arm64 ${CODENAME}
|
||||
|
||||
RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
|
||||
printf "machine ${REPO_DOMAIN} " > /etc/apt/auth.conf && \
|
||||
printf "login ${REPO_USERNAME} " >> /etc/apt/auth.conf && \
|
||||
printf "password " >> /etc/apt/auth.conf && \
|
||||
cat /run/secrets/REPO_PASSWORD >> /etc/apt/auth.conf && \
|
||||
sha512sum /run/secrets/REPO_PASSWORD && \
|
||||
curl \
|
||||
--fail \
|
||||
--netrc-file /etc/apt/auth.conf \
|
||||
--output ${GPG_KEY} \
|
||||
https://${REPO_DOMAIN}/repo/deb/debian-release/signalwire-freeswitch-repo.gpg && \
|
||||
file ${GPG_KEY} && \
|
||||
apt-get --quiet update && \
|
||||
mk-build-deps \
|
||||
--install \
|
||||
--remove debian/control \
|
||||
--tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
|
||||
apt-get --yes --fix-broken install && \
|
||||
rm -f /etc/apt/auth.conf
|
||||
|
||||
ENV DEB_BUILD_OPTIONS="parallel=1"
|
||||
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
|
||||
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
|
||||
RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
|
||||
RUN dpkg-source \
|
||||
--diff-ignore=.* \
|
||||
--compression=xz \
|
||||
--compression-level=9 \
|
||||
--build \
|
||||
. \
|
||||
&& debuild -b -us -uc \
|
||||
&& mkdir OUT \
|
||||
&& mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
|
||||
|
||||
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
|
||||
FROM scratch
|
||||
COPY --from=builder /data/OUT/ /
|
102
.github/docker/debian/bookworm/arm64v8/public.unstable.Dockerfile
vendored
Normal file
102
.github/docker/debian/bookworm/arm64v8/public.unstable.Dockerfile
vendored
Normal file
@ -0,0 +1,102 @@
|
||||
ARG BUILDER_IMAGE=arm64v8/debian:bookworm-20240513
|
||||
|
||||
FROM --platform=linux/arm64 ${BUILDER_IMAGE} AS builder
|
||||
|
||||
ARG MAINTAINER_NAME="Andrey Volk"
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
# Credentials
|
||||
ARG REPO_DOMAIN=freeswitch.signalwire.com
|
||||
ARG REPO_USERNAME=user
|
||||
|
||||
ARG BUILD_NUMBER=42
|
||||
ARG GIT_SHA=0000000000
|
||||
|
||||
ARG DATA_DIR=/data
|
||||
ARG CODENAME=bookworm
|
||||
ARG GPG_KEY="/usr/share/keyrings/signalwire-freeswitch-repo.gpg"
|
||||
|
||||
MAINTAINER "${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get -q update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
|
||||
apt-transport-https \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
debhelper \
|
||||
devscripts \
|
||||
dh-autoreconf \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
graphviz \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
pkg-config \
|
||||
wget
|
||||
|
||||
RUN update-ca-certificates --fresh
|
||||
|
||||
RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
|
||||
chmod +x ~/.env
|
||||
|
||||
RUN . ~/.env && cat <<EOF > /etc/apt/sources.list.d/freeswitch.list
|
||||
deb [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-unstable ${CODENAME} main
|
||||
deb-src [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-unstable ${CODENAME} main
|
||||
EOF
|
||||
|
||||
RUN git config --global --add safe.directory '*' \
|
||||
&& git config --global user.name "${MAINTAINER_NAME}" \
|
||||
&& git config --global user.email "${MAINTAINER_EMAIL}"
|
||||
|
||||
# Bootstrap and Build
|
||||
COPY . ${DATA_DIR}
|
||||
WORKDIR ${DATA_DIR}
|
||||
RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-dsc -a arm64 ${CODENAME}
|
||||
|
||||
RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
|
||||
printf "machine ${REPO_DOMAIN} " > /etc/apt/auth.conf && \
|
||||
printf "login ${REPO_USERNAME} " >> /etc/apt/auth.conf && \
|
||||
printf "password " >> /etc/apt/auth.conf && \
|
||||
cat /run/secrets/REPO_PASSWORD >> /etc/apt/auth.conf && \
|
||||
sha512sum /run/secrets/REPO_PASSWORD && \
|
||||
curl \
|
||||
--fail \
|
||||
--netrc-file /etc/apt/auth.conf \
|
||||
--output ${GPG_KEY} \
|
||||
https://${REPO_DOMAIN}/repo/deb/debian-unstable/signalwire-freeswitch-repo.gpg && \
|
||||
file ${GPG_KEY} && \
|
||||
apt-get --quiet update && \
|
||||
mk-build-deps \
|
||||
--install \
|
||||
--remove debian/control \
|
||||
--tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
|
||||
apt-get --yes --fix-broken install && \
|
||||
rm -f /etc/apt/auth.conf
|
||||
|
||||
ENV DEB_BUILD_OPTIONS="parallel=1"
|
||||
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
|
||||
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
|
||||
RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
|
||||
RUN dpkg-source \
|
||||
--diff-ignore=.* \
|
||||
--compression=xz \
|
||||
--compression-level=9 \
|
||||
--build \
|
||||
. \
|
||||
&& debuild -b -us -uc \
|
||||
&& mkdir OUT \
|
||||
&& mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
|
||||
|
||||
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
|
||||
FROM scratch
|
||||
COPY --from=builder /data/OUT/ /
|
102
.github/docker/debian/bullseye/amd64/public.release.Dockerfile
vendored
Normal file
102
.github/docker/debian/bullseye/amd64/public.release.Dockerfile
vendored
Normal file
@ -0,0 +1,102 @@
|
||||
ARG BUILDER_IMAGE=debian:bullseye-20240513
|
||||
|
||||
FROM ${BUILDER_IMAGE} AS builder
|
||||
|
||||
ARG MAINTAINER_NAME="Andrey Volk"
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
# Credentials
|
||||
ARG REPO_DOMAIN=freeswitch.signalwire.com
|
||||
ARG REPO_USERNAME=user
|
||||
|
||||
ARG BUILD_NUMBER=42
|
||||
ARG GIT_SHA=0000000000
|
||||
|
||||
ARG DATA_DIR=/data
|
||||
ARG CODENAME=bullseye
|
||||
ARG GPG_KEY="/usr/share/keyrings/signalwire-freeswitch-repo.gpg"
|
||||
|
||||
MAINTAINER "${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get -q update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
|
||||
apt-transport-https \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
debhelper \
|
||||
devscripts \
|
||||
dh-autoreconf \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
graphviz \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
pkg-config \
|
||||
wget
|
||||
|
||||
RUN update-ca-certificates --fresh
|
||||
|
||||
RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
|
||||
chmod +x ~/.env
|
||||
|
||||
RUN . ~/.env && cat <<EOF > /etc/apt/sources.list.d/freeswitch.list
|
||||
deb [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-release ${CODENAME} main
|
||||
deb-src [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-release ${CODENAME} main
|
||||
EOF
|
||||
|
||||
RUN git config --global --add safe.directory '*' \
|
||||
&& git config --global user.name "${MAINTAINER_NAME}" \
|
||||
&& git config --global user.email "${MAINTAINER_EMAIL}"
|
||||
|
||||
# Bootstrap and Build
|
||||
COPY . ${DATA_DIR}
|
||||
WORKDIR ${DATA_DIR}
|
||||
RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-dsc ${CODENAME}
|
||||
|
||||
RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
|
||||
printf "machine ${REPO_DOMAIN} " > /etc/apt/auth.conf && \
|
||||
printf "login ${REPO_USERNAME} " >> /etc/apt/auth.conf && \
|
||||
printf "password " >> /etc/apt/auth.conf && \
|
||||
cat /run/secrets/REPO_PASSWORD >> /etc/apt/auth.conf && \
|
||||
sha512sum /run/secrets/REPO_PASSWORD && \
|
||||
curl \
|
||||
--fail \
|
||||
--netrc-file /etc/apt/auth.conf \
|
||||
--output ${GPG_KEY} \
|
||||
https://${REPO_DOMAIN}/repo/deb/debian-release/signalwire-freeswitch-repo.gpg && \
|
||||
file ${GPG_KEY} && \
|
||||
apt-get --quiet update && \
|
||||
mk-build-deps \
|
||||
--install \
|
||||
--remove debian/control \
|
||||
--tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
|
||||
apt-get --yes --fix-broken install && \
|
||||
rm -f /etc/apt/auth.conf
|
||||
|
||||
ENV DEB_BUILD_OPTIONS="parallel=1"
|
||||
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
|
||||
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
|
||||
RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
|
||||
RUN dpkg-source \
|
||||
--diff-ignore=.* \
|
||||
--compression=xz \
|
||||
--compression-level=9 \
|
||||
--build \
|
||||
. \
|
||||
&& debuild -b -us -uc \
|
||||
&& mkdir OUT \
|
||||
&& mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
|
||||
|
||||
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
|
||||
FROM scratch
|
||||
COPY --from=builder /data/OUT/ /
|
102
.github/docker/debian/bullseye/amd64/public.unstable.Dockerfile
vendored
Normal file
102
.github/docker/debian/bullseye/amd64/public.unstable.Dockerfile
vendored
Normal file
@ -0,0 +1,102 @@
|
||||
ARG BUILDER_IMAGE=debian:bullseye-20240513
|
||||
|
||||
FROM ${BUILDER_IMAGE} AS builder
|
||||
|
||||
ARG MAINTAINER_NAME="Andrey Volk"
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
# Credentials
|
||||
ARG REPO_DOMAIN=freeswitch.signalwire.com
|
||||
ARG REPO_USERNAME=user
|
||||
|
||||
ARG BUILD_NUMBER=42
|
||||
ARG GIT_SHA=0000000000
|
||||
|
||||
ARG DATA_DIR=/data
|
||||
ARG CODENAME=bullseye
|
||||
ARG GPG_KEY="/usr/share/keyrings/signalwire-freeswitch-repo.gpg"
|
||||
|
||||
MAINTAINER "${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get -q update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
|
||||
apt-transport-https \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
debhelper \
|
||||
devscripts \
|
||||
dh-autoreconf \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
graphviz \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
pkg-config \
|
||||
wget
|
||||
|
||||
RUN update-ca-certificates --fresh
|
||||
|
||||
RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
|
||||
chmod +x ~/.env
|
||||
|
||||
RUN . ~/.env && cat <<EOF > /etc/apt/sources.list.d/freeswitch.list
|
||||
deb [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-unstable ${CODENAME} main
|
||||
deb-src [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-unstable ${CODENAME} main
|
||||
EOF
|
||||
|
||||
RUN git config --global --add safe.directory '*' \
|
||||
&& git config --global user.name "${MAINTAINER_NAME}" \
|
||||
&& git config --global user.email "${MAINTAINER_EMAIL}"
|
||||
|
||||
# Bootstrap and Build
|
||||
COPY . ${DATA_DIR}
|
||||
WORKDIR ${DATA_DIR}
|
||||
RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-dsc ${CODENAME}
|
||||
|
||||
RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
|
||||
printf "machine ${REPO_DOMAIN} " > /etc/apt/auth.conf && \
|
||||
printf "login ${REPO_USERNAME} " >> /etc/apt/auth.conf && \
|
||||
printf "password " >> /etc/apt/auth.conf && \
|
||||
cat /run/secrets/REPO_PASSWORD >> /etc/apt/auth.conf && \
|
||||
sha512sum /run/secrets/REPO_PASSWORD && \
|
||||
curl \
|
||||
--fail \
|
||||
--netrc-file /etc/apt/auth.conf \
|
||||
--output ${GPG_KEY} \
|
||||
https://${REPO_DOMAIN}/repo/deb/debian-unstable/signalwire-freeswitch-repo.gpg && \
|
||||
file ${GPG_KEY} && \
|
||||
apt-get --quiet update && \
|
||||
mk-build-deps \
|
||||
--install \
|
||||
--remove debian/control \
|
||||
--tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
|
||||
apt-get --yes --fix-broken install && \
|
||||
rm -f /etc/apt/auth.conf
|
||||
|
||||
ENV DEB_BUILD_OPTIONS="parallel=1"
|
||||
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
|
||||
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
|
||||
RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
|
||||
RUN dpkg-source \
|
||||
--diff-ignore=.* \
|
||||
--compression=xz \
|
||||
--compression-level=9 \
|
||||
--build \
|
||||
. \
|
||||
&& debuild -b -us -uc \
|
||||
&& mkdir OUT \
|
||||
&& mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
|
||||
|
||||
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
|
||||
FROM scratch
|
||||
COPY --from=builder /data/OUT/ /
|
102
.github/docker/debian/bullseye/arm32v7/public.release.Dockerfile
vendored
Normal file
102
.github/docker/debian/bullseye/arm32v7/public.release.Dockerfile
vendored
Normal file
@ -0,0 +1,102 @@
|
||||
ARG BUILDER_IMAGE=arm32v7/debian:bullseye-20240513
|
||||
|
||||
FROM --platform=linux/arm32 ${BUILDER_IMAGE} AS builder
|
||||
|
||||
ARG MAINTAINER_NAME="Andrey Volk"
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
# Credentials
|
||||
ARG REPO_DOMAIN=freeswitch.signalwire.com
|
||||
ARG REPO_USERNAME=user
|
||||
|
||||
ARG BUILD_NUMBER=42
|
||||
ARG GIT_SHA=0000000000
|
||||
|
||||
ARG DATA_DIR=/data
|
||||
ARG CODENAME=bullseye
|
||||
ARG GPG_KEY="/usr/share/keyrings/signalwire-freeswitch-repo.gpg"
|
||||
|
||||
MAINTAINER "${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get -q update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
|
||||
apt-transport-https \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
debhelper \
|
||||
devscripts \
|
||||
dh-autoreconf \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
graphviz \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
pkg-config \
|
||||
wget
|
||||
|
||||
RUN update-ca-certificates --fresh
|
||||
|
||||
RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
|
||||
chmod +x ~/.env
|
||||
|
||||
RUN . ~/.env && cat <<EOF > /etc/apt/sources.list.d/freeswitch.list
|
||||
deb [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/rpi/debian-release ${CODENAME} main
|
||||
deb-src [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/rpi/debian-release ${CODENAME} main
|
||||
EOF
|
||||
|
||||
RUN git config --global --add safe.directory '*' \
|
||||
&& git config --global user.name "${MAINTAINER_NAME}" \
|
||||
&& git config --global user.email "${MAINTAINER_EMAIL}"
|
||||
|
||||
# Bootstrap and Build
|
||||
COPY . ${DATA_DIR}
|
||||
WORKDIR ${DATA_DIR}
|
||||
RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-dsc -a armhf ${CODENAME}
|
||||
|
||||
RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
|
||||
printf "machine ${REPO_DOMAIN} " > /etc/apt/auth.conf && \
|
||||
printf "login ${REPO_USERNAME} " >> /etc/apt/auth.conf && \
|
||||
printf "password " >> /etc/apt/auth.conf && \
|
||||
cat /run/secrets/REPO_PASSWORD >> /etc/apt/auth.conf && \
|
||||
sha512sum /run/secrets/REPO_PASSWORD && \
|
||||
curl \
|
||||
--fail \
|
||||
--netrc-file /etc/apt/auth.conf \
|
||||
--output ${GPG_KEY} \
|
||||
https://${REPO_DOMAIN}/repo/deb/rpi/debian-release/signalwire-freeswitch-repo.gpg && \
|
||||
file ${GPG_KEY} && \
|
||||
apt-get --quiet update && \
|
||||
mk-build-deps \
|
||||
--install \
|
||||
--remove debian/control \
|
||||
--tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
|
||||
apt-get --yes --fix-broken install && \
|
||||
rm -f /etc/apt/auth.conf
|
||||
|
||||
ENV DEB_BUILD_OPTIONS="parallel=1"
|
||||
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
|
||||
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
|
||||
RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
|
||||
RUN dpkg-source \
|
||||
--diff-ignore=.* \
|
||||
--compression=xz \
|
||||
--compression-level=9 \
|
||||
--build \
|
||||
. \
|
||||
&& debuild -b -us -uc \
|
||||
&& mkdir OUT \
|
||||
&& mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
|
||||
|
||||
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
|
||||
FROM scratch
|
||||
COPY --from=builder /data/OUT/ /
|
102
.github/docker/debian/bullseye/arm32v7/public.unstable.Dockerfile
vendored
Normal file
102
.github/docker/debian/bullseye/arm32v7/public.unstable.Dockerfile
vendored
Normal file
@ -0,0 +1,102 @@
|
||||
ARG BUILDER_IMAGE=arm32v7/debian:bullseye-20240513
|
||||
|
||||
FROM --platform=linux/arm32 ${BUILDER_IMAGE} AS builder
|
||||
|
||||
ARG MAINTAINER_NAME="Andrey Volk"
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
# Credentials
|
||||
ARG REPO_DOMAIN=freeswitch.signalwire.com
|
||||
ARG REPO_USERNAME=user
|
||||
|
||||
ARG BUILD_NUMBER=42
|
||||
ARG GIT_SHA=0000000000
|
||||
|
||||
ARG DATA_DIR=/data
|
||||
ARG CODENAME=bullseye
|
||||
ARG GPG_KEY="/usr/share/keyrings/signalwire-freeswitch-repo.gpg"
|
||||
|
||||
MAINTAINER "${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get -q update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
|
||||
apt-transport-https \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
debhelper \
|
||||
devscripts \
|
||||
dh-autoreconf \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
graphviz \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
pkg-config \
|
||||
wget
|
||||
|
||||
RUN update-ca-certificates --fresh
|
||||
|
||||
RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
|
||||
chmod +x ~/.env
|
||||
|
||||
RUN . ~/.env && cat <<EOF > /etc/apt/sources.list.d/freeswitch.list
|
||||
deb [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/rpi/debian-dev ${CODENAME} main
|
||||
deb-src [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/rpi/debian-dev ${CODENAME} main
|
||||
EOF
|
||||
|
||||
RUN git config --global --add safe.directory '*' \
|
||||
&& git config --global user.name "${MAINTAINER_NAME}" \
|
||||
&& git config --global user.email "${MAINTAINER_EMAIL}"
|
||||
|
||||
# Bootstrap and Build
|
||||
COPY . ${DATA_DIR}
|
||||
WORKDIR ${DATA_DIR}
|
||||
RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-dsc -a armhf ${CODENAME}
|
||||
|
||||
RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
|
||||
printf "machine ${REPO_DOMAIN} " > /etc/apt/auth.conf && \
|
||||
printf "login ${REPO_USERNAME} " >> /etc/apt/auth.conf && \
|
||||
printf "password " >> /etc/apt/auth.conf && \
|
||||
cat /run/secrets/REPO_PASSWORD >> /etc/apt/auth.conf && \
|
||||
sha512sum /run/secrets/REPO_PASSWORD && \
|
||||
curl \
|
||||
--fail \
|
||||
--netrc-file /etc/apt/auth.conf \
|
||||
--output ${GPG_KEY} \
|
||||
https://${REPO_DOMAIN}/repo/deb/rpi/debian-dev/signalwire-freeswitch-repo.gpg && \
|
||||
file ${GPG_KEY} && \
|
||||
apt-get --quiet update && \
|
||||
mk-build-deps \
|
||||
--install \
|
||||
--remove debian/control \
|
||||
--tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
|
||||
apt-get --yes --fix-broken install && \
|
||||
rm -f /etc/apt/auth.conf
|
||||
|
||||
ENV DEB_BUILD_OPTIONS="parallel=1"
|
||||
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
|
||||
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
|
||||
RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
|
||||
RUN dpkg-source \
|
||||
--diff-ignore=.* \
|
||||
--compression=xz \
|
||||
--compression-level=9 \
|
||||
--build \
|
||||
. \
|
||||
&& debuild -b -us -uc \
|
||||
&& mkdir OUT \
|
||||
&& mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
|
||||
|
||||
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
|
||||
FROM scratch
|
||||
COPY --from=builder /data/OUT/ /
|
102
.github/docker/debian/bullseye/arm64v8/public.release.Dockerfile
vendored
Normal file
102
.github/docker/debian/bullseye/arm64v8/public.release.Dockerfile
vendored
Normal file
@ -0,0 +1,102 @@
|
||||
ARG BUILDER_IMAGE=arm64v8/debian:bullseye-20240513
|
||||
|
||||
FROM --platform=linux/arm64 ${BUILDER_IMAGE} AS builder
|
||||
|
||||
ARG MAINTAINER_NAME="Andrey Volk"
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
# Credentials
|
||||
ARG REPO_DOMAIN=freeswitch.signalwire.com
|
||||
ARG REPO_USERNAME=user
|
||||
|
||||
ARG BUILD_NUMBER=42
|
||||
ARG GIT_SHA=0000000000
|
||||
|
||||
ARG DATA_DIR=/data
|
||||
ARG CODENAME=bullseye
|
||||
ARG GPG_KEY="/usr/share/keyrings/signalwire-freeswitch-repo.gpg"
|
||||
|
||||
MAINTAINER "${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get -q update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
|
||||
apt-transport-https \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
debhelper \
|
||||
devscripts \
|
||||
dh-autoreconf \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
graphviz \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
pkg-config \
|
||||
wget
|
||||
|
||||
RUN update-ca-certificates --fresh
|
||||
|
||||
RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
|
||||
chmod +x ~/.env
|
||||
|
||||
RUN . ~/.env && cat <<EOF > /etc/apt/sources.list.d/freeswitch.list
|
||||
deb [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-release ${CODENAME} main
|
||||
deb-src [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-release ${CODENAME} main
|
||||
EOF
|
||||
|
||||
RUN git config --global --add safe.directory '*' \
|
||||
&& git config --global user.name "${MAINTAINER_NAME}" \
|
||||
&& git config --global user.email "${MAINTAINER_EMAIL}"
|
||||
|
||||
# Bootstrap and Build
|
||||
COPY . ${DATA_DIR}
|
||||
WORKDIR ${DATA_DIR}
|
||||
RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-dsc -a arm64 ${CODENAME}
|
||||
|
||||
RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
|
||||
printf "machine ${REPO_DOMAIN} " > /etc/apt/auth.conf && \
|
||||
printf "login ${REPO_USERNAME} " >> /etc/apt/auth.conf && \
|
||||
printf "password " >> /etc/apt/auth.conf && \
|
||||
cat /run/secrets/REPO_PASSWORD >> /etc/apt/auth.conf && \
|
||||
sha512sum /run/secrets/REPO_PASSWORD && \
|
||||
curl \
|
||||
--fail \
|
||||
--netrc-file /etc/apt/auth.conf \
|
||||
--output ${GPG_KEY} \
|
||||
https://${REPO_DOMAIN}/repo/deb/debian-release/signalwire-freeswitch-repo.gpg && \
|
||||
file ${GPG_KEY} && \
|
||||
apt-get --quiet update && \
|
||||
mk-build-deps \
|
||||
--install \
|
||||
--remove debian/control \
|
||||
--tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
|
||||
apt-get --yes --fix-broken install && \
|
||||
rm -f /etc/apt/auth.conf
|
||||
|
||||
ENV DEB_BUILD_OPTIONS="parallel=1"
|
||||
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
|
||||
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
|
||||
RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
|
||||
RUN dpkg-source \
|
||||
--diff-ignore=.* \
|
||||
--compression=xz \
|
||||
--compression-level=9 \
|
||||
--build \
|
||||
. \
|
||||
&& debuild -b -us -uc \
|
||||
&& mkdir OUT \
|
||||
&& mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
|
||||
|
||||
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
|
||||
FROM scratch
|
||||
COPY --from=builder /data/OUT/ /
|
102
.github/docker/debian/bullseye/arm64v8/public.unstable.Dockerfile
vendored
Normal file
102
.github/docker/debian/bullseye/arm64v8/public.unstable.Dockerfile
vendored
Normal file
@ -0,0 +1,102 @@
|
||||
ARG BUILDER_IMAGE=arm64v8/debian:bullseye-20240513
|
||||
|
||||
FROM --platform=linux/arm64 ${BUILDER_IMAGE} AS builder
|
||||
|
||||
ARG MAINTAINER_NAME="Andrey Volk"
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
# Credentials
|
||||
ARG REPO_DOMAIN=freeswitch.signalwire.com
|
||||
ARG REPO_USERNAME=user
|
||||
|
||||
ARG BUILD_NUMBER=42
|
||||
ARG GIT_SHA=0000000000
|
||||
|
||||
ARG DATA_DIR=/data
|
||||
ARG CODENAME=bullseye
|
||||
ARG GPG_KEY="/usr/share/keyrings/signalwire-freeswitch-repo.gpg"
|
||||
|
||||
MAINTAINER "${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get -q update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
|
||||
apt-transport-https \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
debhelper \
|
||||
devscripts \
|
||||
dh-autoreconf \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
graphviz \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
pkg-config \
|
||||
wget
|
||||
|
||||
RUN update-ca-certificates --fresh
|
||||
|
||||
RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
|
||||
chmod +x ~/.env
|
||||
|
||||
RUN . ~/.env && cat <<EOF > /etc/apt/sources.list.d/freeswitch.list
|
||||
deb [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-unstable ${CODENAME} main
|
||||
deb-src [signed-by=${GPG_KEY}] https://${REPO_DOMAIN}/repo/deb/debian-unstable ${CODENAME} main
|
||||
EOF
|
||||
|
||||
RUN git config --global --add safe.directory '*' \
|
||||
&& git config --global user.name "${MAINTAINER_NAME}" \
|
||||
&& git config --global user.email "${MAINTAINER_EMAIL}"
|
||||
|
||||
# Bootstrap and Build
|
||||
COPY . ${DATA_DIR}
|
||||
WORKDIR ${DATA_DIR}
|
||||
RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-dsc -a arm64 ${CODENAME}
|
||||
|
||||
RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
|
||||
printf "machine ${REPO_DOMAIN} " > /etc/apt/auth.conf && \
|
||||
printf "login ${REPO_USERNAME} " >> /etc/apt/auth.conf && \
|
||||
printf "password " >> /etc/apt/auth.conf && \
|
||||
cat /run/secrets/REPO_PASSWORD >> /etc/apt/auth.conf && \
|
||||
sha512sum /run/secrets/REPO_PASSWORD && \
|
||||
curl \
|
||||
--fail \
|
||||
--netrc-file /etc/apt/auth.conf \
|
||||
--output ${GPG_KEY} \
|
||||
https://${REPO_DOMAIN}/repo/deb/debian-unstable/signalwire-freeswitch-repo.gpg && \
|
||||
file ${GPG_KEY} && \
|
||||
apt-get --quiet update && \
|
||||
mk-build-deps \
|
||||
--install \
|
||||
--remove debian/control \
|
||||
--tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
|
||||
apt-get --yes --fix-broken install && \
|
||||
rm -f /etc/apt/auth.conf
|
||||
|
||||
ENV DEB_BUILD_OPTIONS="parallel=1"
|
||||
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
|
||||
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
|
||||
RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
|
||||
RUN dpkg-source \
|
||||
--diff-ignore=.* \
|
||||
--compression=xz \
|
||||
--compression-level=9 \
|
||||
--build \
|
||||
. \
|
||||
&& debuild -b -us -uc \
|
||||
&& mkdir OUT \
|
||||
&& mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
|
||||
|
||||
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
|
||||
FROM scratch
|
||||
COPY --from=builder /data/OUT/ /
|
BIN
.github/docker/debian/trixie/amd64/.DS_Store
vendored
Normal file
BIN
.github/docker/debian/trixie/amd64/.DS_Store
vendored
Normal file
Binary file not shown.
85
.github/docker/debian/trixie/amd64/public.release.Dockerfile
vendored
Normal file
85
.github/docker/debian/trixie/amd64/public.release.Dockerfile
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
ARG BUILDER_IMAGE=debian:trixie-20250520
|
||||
|
||||
FROM ${BUILDER_IMAGE} AS builder
|
||||
|
||||
ARG MAINTAINER_NAME="Andrey Volk"
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
ARG BUILD_NUMBER=42
|
||||
ARG GIT_SHA=0000000000
|
||||
|
||||
ARG DATA_DIR=/data
|
||||
ARG CODENAME=trixie
|
||||
|
||||
LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get -q update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
|
||||
apt-transport-https \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
debhelper \
|
||||
devscripts \
|
||||
dh-autoreconf \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
graphviz \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
pkg-config \
|
||||
wget
|
||||
|
||||
RUN update-ca-certificates --fresh
|
||||
|
||||
RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
|
||||
chmod +x ~/.env
|
||||
|
||||
RUN git config --global --add safe.directory '*' \
|
||||
&& git config --global user.name "${MAINTAINER_NAME}" \
|
||||
&& git config --global user.email "${MAINTAINER_EMAIL}"
|
||||
|
||||
# Bootstrap and Build
|
||||
COPY . ${DATA_DIR}
|
||||
WORKDIR ${DATA_DIR}
|
||||
RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-dsc ${CODENAME}
|
||||
|
||||
RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
|
||||
sha512sum /run/secrets/REPO_PASSWORD && \
|
||||
curl -sSL https://freeswitch.org/fsget | \
|
||||
bash -s $(cat /run/secrets/REPO_PASSWORD) prerelease && \
|
||||
apt-get --quiet update && \
|
||||
mk-build-deps \
|
||||
--install \
|
||||
--remove debian/control \
|
||||
--tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
|
||||
apt-get --yes --fix-broken install && \
|
||||
rm -f /etc/apt/auth.conf
|
||||
|
||||
ENV DEB_BUILD_OPTIONS="parallel=1"
|
||||
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
|
||||
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
|
||||
RUN dpkg-source \
|
||||
--diff-ignore=.* \
|
||||
--compression=xz \
|
||||
--compression-level=9 \
|
||||
--build \
|
||||
. \
|
||||
&& debuild -b -us -uc \
|
||||
&& mkdir OUT \
|
||||
&& mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
|
||||
|
||||
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
|
||||
FROM scratch
|
||||
COPY --from=builder /data/OUT/ /
|
85
.github/docker/debian/trixie/amd64/public.unstable.Dockerfile
vendored
Normal file
85
.github/docker/debian/trixie/amd64/public.unstable.Dockerfile
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
ARG BUILDER_IMAGE=debian:trixie-20250520
|
||||
|
||||
FROM ${BUILDER_IMAGE} AS builder
|
||||
|
||||
ARG MAINTAINER_NAME="Andrey Volk"
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
ARG BUILD_NUMBER=42
|
||||
ARG GIT_SHA=0000000000
|
||||
|
||||
ARG DATA_DIR=/data
|
||||
ARG CODENAME=trixie
|
||||
|
||||
LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get -q update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
|
||||
apt-transport-https \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
debhelper \
|
||||
devscripts \
|
||||
dh-autoreconf \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
graphviz \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
pkg-config \
|
||||
wget
|
||||
|
||||
RUN update-ca-certificates --fresh
|
||||
|
||||
RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
|
||||
chmod +x ~/.env
|
||||
|
||||
RUN git config --global --add safe.directory '*' \
|
||||
&& git config --global user.name "${MAINTAINER_NAME}" \
|
||||
&& git config --global user.email "${MAINTAINER_EMAIL}"
|
||||
|
||||
# Bootstrap and Build
|
||||
COPY . ${DATA_DIR}
|
||||
WORKDIR ${DATA_DIR}
|
||||
RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-dsc ${CODENAME}
|
||||
|
||||
RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
|
||||
sha512sum /run/secrets/REPO_PASSWORD && \
|
||||
curl -sSL https://freeswitch.org/fsget | \
|
||||
bash -s $(cat /run/secrets/REPO_PASSWORD) prerelease && \
|
||||
apt-get --quiet update && \
|
||||
mk-build-deps \
|
||||
--install \
|
||||
--remove debian/control \
|
||||
--tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
|
||||
apt-get --yes --fix-broken install && \
|
||||
rm -f /etc/apt/auth.conf
|
||||
|
||||
ENV DEB_BUILD_OPTIONS="parallel=1"
|
||||
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
|
||||
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
|
||||
RUN dpkg-source \
|
||||
--diff-ignore=.* \
|
||||
--compression=xz \
|
||||
--compression-level=9 \
|
||||
--build \
|
||||
. \
|
||||
&& debuild -b -us -uc \
|
||||
&& mkdir OUT \
|
||||
&& mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
|
||||
|
||||
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
|
||||
FROM scratch
|
||||
COPY --from=builder /data/OUT/ /
|
85
.github/docker/debian/trixie/arm32v7/public.release.Dockerfile
vendored
Normal file
85
.github/docker/debian/trixie/arm32v7/public.release.Dockerfile
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
ARG BUILDER_IMAGE=arm32v7/debian:trixie-20250520
|
||||
|
||||
FROM --platform=linux/arm/v7 ${BUILDER_IMAGE} AS builder
|
||||
|
||||
ARG MAINTAINER_NAME="Andrey Volk"
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
ARG BUILD_NUMBER=42
|
||||
ARG GIT_SHA=0000000000
|
||||
|
||||
ARG DATA_DIR=/data
|
||||
ARG CODENAME=trixie
|
||||
|
||||
LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get -q update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
|
||||
apt-transport-https \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
debhelper \
|
||||
devscripts \
|
||||
dh-autoreconf \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
graphviz \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
pkg-config \
|
||||
wget
|
||||
|
||||
RUN update-ca-certificates --fresh
|
||||
|
||||
RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
|
||||
chmod +x ~/.env
|
||||
|
||||
RUN git config --global --add safe.directory '*' \
|
||||
&& git config --global user.name "${MAINTAINER_NAME}" \
|
||||
&& git config --global user.email "${MAINTAINER_EMAIL}"
|
||||
|
||||
# Bootstrap and Build
|
||||
COPY . ${DATA_DIR}
|
||||
WORKDIR ${DATA_DIR}
|
||||
RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-dsc -a armhf ${CODENAME}
|
||||
|
||||
RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
|
||||
sha512sum /run/secrets/REPO_PASSWORD && \
|
||||
curl -sSL https://freeswitch.org/fsget | \
|
||||
bash -s $(cat /run/secrets/REPO_PASSWORD) prerelease && \
|
||||
apt-get --quiet update && \
|
||||
mk-build-deps \
|
||||
--install \
|
||||
--remove debian/control \
|
||||
--tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
|
||||
apt-get --yes --fix-broken install && \
|
||||
rm -f /etc/apt/auth.conf
|
||||
|
||||
ENV DEB_BUILD_OPTIONS="parallel=1"
|
||||
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
|
||||
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
|
||||
RUN dpkg-source \
|
||||
--diff-ignore=.* \
|
||||
--compression=xz \
|
||||
--compression-level=9 \
|
||||
--build \
|
||||
. \
|
||||
&& debuild -b -us -uc \
|
||||
&& mkdir OUT \
|
||||
&& mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
|
||||
|
||||
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
|
||||
FROM scratch
|
||||
COPY --from=builder /data/OUT/ /
|
85
.github/docker/debian/trixie/arm32v7/public.unstable.Dockerfile
vendored
Normal file
85
.github/docker/debian/trixie/arm32v7/public.unstable.Dockerfile
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
ARG BUILDER_IMAGE=arm32v7/debian:trixie-20250520
|
||||
|
||||
FROM --platform=linux/arm/v7 ${BUILDER_IMAGE} AS builder
|
||||
|
||||
ARG MAINTAINER_NAME="Andrey Volk"
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
ARG BUILD_NUMBER=42
|
||||
ARG GIT_SHA=0000000000
|
||||
|
||||
ARG DATA_DIR=/data
|
||||
ARG CODENAME=trixie
|
||||
|
||||
LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get -q update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
|
||||
apt-transport-https \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
debhelper \
|
||||
devscripts \
|
||||
dh-autoreconf \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
graphviz \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
pkg-config \
|
||||
wget
|
||||
|
||||
RUN update-ca-certificates --fresh
|
||||
|
||||
RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
|
||||
chmod +x ~/.env
|
||||
|
||||
RUN git config --global --add safe.directory '*' \
|
||||
&& git config --global user.name "${MAINTAINER_NAME}" \
|
||||
&& git config --global user.email "${MAINTAINER_EMAIL}"
|
||||
|
||||
# Bootstrap and Build
|
||||
COPY . ${DATA_DIR}
|
||||
WORKDIR ${DATA_DIR}
|
||||
RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-dsc -a armhf ${CODENAME}
|
||||
|
||||
RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
|
||||
sha512sum /run/secrets/REPO_PASSWORD && \
|
||||
curl -sSL https://freeswitch.org/fsget | \
|
||||
bash -s $(cat /run/secrets/REPO_PASSWORD) prerelease && \
|
||||
apt-get --quiet update && \
|
||||
mk-build-deps \
|
||||
--install \
|
||||
--remove debian/control \
|
||||
--tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
|
||||
apt-get --yes --fix-broken install && \
|
||||
rm -f /etc/apt/auth.conf
|
||||
|
||||
ENV DEB_BUILD_OPTIONS="parallel=1"
|
||||
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
|
||||
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
|
||||
RUN dpkg-source \
|
||||
--diff-ignore=.* \
|
||||
--compression=xz \
|
||||
--compression-level=9 \
|
||||
--build \
|
||||
. \
|
||||
&& debuild -b -us -uc \
|
||||
&& mkdir OUT \
|
||||
&& mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
|
||||
|
||||
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
|
||||
FROM scratch
|
||||
COPY --from=builder /data/OUT/ /
|
85
.github/docker/debian/trixie/arm64v8/public.release.Dockerfile
vendored
Normal file
85
.github/docker/debian/trixie/arm64v8/public.release.Dockerfile
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
ARG BUILDER_IMAGE=arm64v8/debian:trixie-20250520
|
||||
|
||||
FROM --platform=linux/arm64 ${BUILDER_IMAGE} AS builder
|
||||
|
||||
ARG MAINTAINER_NAME="Andrey Volk"
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
ARG BUILD_NUMBER=42
|
||||
ARG GIT_SHA=0000000000
|
||||
|
||||
ARG DATA_DIR=/data
|
||||
ARG CODENAME=trixie
|
||||
|
||||
LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get -q update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
|
||||
apt-transport-https \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
debhelper \
|
||||
devscripts \
|
||||
dh-autoreconf \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
graphviz \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
pkg-config \
|
||||
wget
|
||||
|
||||
RUN update-ca-certificates --fresh
|
||||
|
||||
RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
|
||||
chmod +x ~/.env
|
||||
|
||||
RUN git config --global --add safe.directory '*' \
|
||||
&& git config --global user.name "${MAINTAINER_NAME}" \
|
||||
&& git config --global user.email "${MAINTAINER_EMAIL}"
|
||||
|
||||
# Bootstrap and Build
|
||||
COPY . ${DATA_DIR}
|
||||
WORKDIR ${DATA_DIR}
|
||||
RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-dsc -a arm64 ${CODENAME}
|
||||
|
||||
RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
|
||||
sha512sum /run/secrets/REPO_PASSWORD && \
|
||||
curl -sSL https://freeswitch.org/fsget | \
|
||||
bash -s $(cat /run/secrets/REPO_PASSWORD) prerelease && \
|
||||
apt-get --quiet update && \
|
||||
mk-build-deps \
|
||||
--install \
|
||||
--remove debian/control \
|
||||
--tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
|
||||
apt-get --yes --fix-broken install && \
|
||||
rm -f /etc/apt/auth.conf
|
||||
|
||||
ENV DEB_BUILD_OPTIONS="parallel=1"
|
||||
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
|
||||
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
|
||||
RUN dpkg-source \
|
||||
--diff-ignore=.* \
|
||||
--compression=xz \
|
||||
--compression-level=9 \
|
||||
--build \
|
||||
. \
|
||||
&& debuild -b -us -uc \
|
||||
&& mkdir OUT \
|
||||
&& mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
|
||||
|
||||
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
|
||||
FROM scratch
|
||||
COPY --from=builder /data/OUT/ /
|
85
.github/docker/debian/trixie/arm64v8/public.unstable.Dockerfile
vendored
Normal file
85
.github/docker/debian/trixie/arm64v8/public.unstable.Dockerfile
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
ARG BUILDER_IMAGE=arm64v8/debian:trixie-20250520
|
||||
|
||||
FROM --platform=linux/arm64 ${BUILDER_IMAGE} AS builder
|
||||
|
||||
ARG MAINTAINER_NAME="Andrey Volk"
|
||||
ARG MAINTAINER_EMAIL="andrey@signalwire.com"
|
||||
|
||||
ARG BUILD_NUMBER=42
|
||||
ARG GIT_SHA=0000000000
|
||||
|
||||
ARG DATA_DIR=/data
|
||||
ARG CODENAME=trixie
|
||||
|
||||
LABEL org.opencontainers.image.authors="${MAINTAINER_EMAIL}"
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
RUN apt-get -q update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
|
||||
apt-transport-https \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
debhelper \
|
||||
devscripts \
|
||||
dh-autoreconf \
|
||||
dos2unix \
|
||||
doxygen \
|
||||
git \
|
||||
graphviz \
|
||||
libglib2.0-dev \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
pkg-config \
|
||||
wget
|
||||
|
||||
RUN update-ca-certificates --fresh
|
||||
|
||||
RUN echo "export CODENAME=${CODENAME}" | tee ~/.env && \
|
||||
chmod +x ~/.env
|
||||
|
||||
RUN git config --global --add safe.directory '*' \
|
||||
&& git config --global user.name "${MAINTAINER_NAME}" \
|
||||
&& git config --global user.email "${MAINTAINER_EMAIL}"
|
||||
|
||||
# Bootstrap and Build
|
||||
COPY . ${DATA_DIR}
|
||||
WORKDIR ${DATA_DIR}
|
||||
RUN echo "export VERSION=$(cat ./build/next-release.txt | tr -d '\n')" | tee -a ~/.env
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
RUN . ~/.env && ./debian/util.sh prep-create-dsc -a arm64 ${CODENAME}
|
||||
|
||||
RUN --mount=type=secret,id=REPO_PASSWORD,required=true \
|
||||
sha512sum /run/secrets/REPO_PASSWORD && \
|
||||
curl -sSL https://freeswitch.org/fsget | \
|
||||
bash -s $(cat /run/secrets/REPO_PASSWORD) prerelease && \
|
||||
apt-get --quiet update && \
|
||||
mk-build-deps \
|
||||
--install \
|
||||
--remove debian/control \
|
||||
--tool "apt-get -o Debug::pkgProblemResolver=yes --yes --no-install-recommends" && \
|
||||
apt-get --yes --fix-broken install && \
|
||||
rm -f /etc/apt/auth.conf
|
||||
|
||||
ENV DEB_BUILD_OPTIONS="parallel=1"
|
||||
RUN . ~/.env && dch -b -M -v "${VERSION}-${BUILD_NUMBER}-${GIT_SHA}~${CODENAME}" \
|
||||
--force-distribution -D "${CODENAME}" "Nightly build, ${GIT_SHA}"
|
||||
|
||||
RUN . ~/.env && ./debian/util.sh create-orig -n -V${VERSION}-${BUILD_NUMBER}-${GIT_SHA} -x
|
||||
|
||||
RUN dpkg-source \
|
||||
--diff-ignore=.* \
|
||||
--compression=xz \
|
||||
--compression-level=9 \
|
||||
--build \
|
||||
. \
|
||||
&& debuild -b -us -uc \
|
||||
&& mkdir OUT \
|
||||
&& mv -v ../*.{deb,dsc,changes,tar.*} OUT/.
|
||||
|
||||
# Artifacts image (mandatory part, the resulting image must have a single filesystem layer)
|
||||
FROM scratch
|
||||
COPY --from=builder /data/OUT/ /
|
208
.github/workflows/build.yml
vendored
Normal file
208
.github/workflows/build.yml
vendored
Normal file
@ -0,0 +1,208 @@
|
||||
name: Build and Distribute
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- v1.10
|
||||
paths:
|
||||
- "**"
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
freeswitch_ref:
|
||||
description: "FreeSWITCH repository ref"
|
||||
required: true
|
||||
default: master
|
||||
type: string
|
||||
release:
|
||||
description: "FreeSWITCH release type"
|
||||
type: choice
|
||||
required: true
|
||||
default: unstable
|
||||
options:
|
||||
- release
|
||||
- unstable
|
||||
publish:
|
||||
description: "Publish build data"
|
||||
required: true
|
||||
default: false
|
||||
type: boolean
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.head_ref || github.ref }}
|
||||
|
||||
jobs:
|
||||
preconfig:
|
||||
name: "Preconfig"
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
deb: ${{ steps.deb.outputs.excludes }}
|
||||
release: ${{ steps.release.outputs.release }}
|
||||
steps:
|
||||
- name: Generate Matrix excludes for DEB
|
||||
id: deb
|
||||
run: |
|
||||
JSON="[]"
|
||||
|
||||
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
|
||||
JSON=$(jq -n '[
|
||||
{
|
||||
"version": "bookworm",
|
||||
"platform": {
|
||||
"name": "arm64v8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"version": "bullseye",
|
||||
"platform": {
|
||||
"name": "arm32v7"
|
||||
}
|
||||
}
|
||||
]')
|
||||
fi
|
||||
|
||||
echo "excludes=$(echo $JSON | jq -c .)" | tee -a $GITHUB_OUTPUT
|
||||
|
||||
- name: Get release type based on branch
|
||||
id: release
|
||||
run: |
|
||||
if [[ '${{ github.event_name }}' == 'pull_request' ]]; then
|
||||
if [[ '${{ github.base_ref }}' == 'v1.10' ]]; then
|
||||
echo 'release=release' | tee -a $GITHUB_OUTPUT
|
||||
else
|
||||
echo 'release=unstable' | tee -a $GITHUB_OUTPUT
|
||||
fi
|
||||
elif [[ '${{ github.event_name }}' == 'workflow_dispatch' ]]; then
|
||||
echo 'release=${{ inputs.release }}' | tee -a $GITHUB_OUTPUT
|
||||
elif [[ '${{ github.ref }}' == 'refs/heads/v1.10' ]]; then
|
||||
echo 'release=release' | tee -a $GITHUB_OUTPUT
|
||||
else
|
||||
echo 'release=unstable' | tee -a $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
get-nonce:
|
||||
name: "Get Nonce for token"
|
||||
runs-on: freeswitch-repo-auth-client
|
||||
outputs:
|
||||
nonce: ${{ steps.get-nonce.outputs.nonce }}
|
||||
steps:
|
||||
- name: Get Nonce
|
||||
id: get-nonce
|
||||
uses: signalwire/actions-template/.github/actions/repo-auth-client@main
|
||||
with:
|
||||
mode: nonce
|
||||
|
||||
issue-token:
|
||||
name: "Issue temporary token"
|
||||
runs-on: ubuntu-latest
|
||||
needs: get-nonce
|
||||
env:
|
||||
NONCE: ${{ needs.get-nonce.outputs.nonce }}
|
||||
outputs:
|
||||
token: ${{ steps.issue-token.outputs.token }}
|
||||
steps:
|
||||
- name: Mask Token
|
||||
run: echo "::add-mask::$NONCE"
|
||||
|
||||
- name: Issue Token
|
||||
id: issue-token
|
||||
uses: signalwire/actions-template/.github/actions/repo-auth-client@main
|
||||
env:
|
||||
NONCE: ${{ needs.get-nonce.outputs.nonce }}
|
||||
with:
|
||||
mode: issue
|
||||
|
||||
deb-public:
|
||||
name: "DEB-PUBLIC"
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: read
|
||||
needs:
|
||||
- preconfig
|
||||
- issue-token
|
||||
uses: signalwire/actions-template/.github/workflows/cicd-docker-build-and-distribute.yml@main
|
||||
strategy:
|
||||
# max-parallel: 1
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
- debian
|
||||
version:
|
||||
- trixie
|
||||
- bookworm
|
||||
- bullseye
|
||||
platform:
|
||||
- name: amd64
|
||||
runner: ubuntu-latest
|
||||
- name: arm32v7
|
||||
runner: ubuntu-24.04-arm
|
||||
- name: arm64v8
|
||||
runner: ubuntu-24.04-arm
|
||||
release:
|
||||
- ${{ needs.preconfig.outputs.release }}
|
||||
exclude: ${{ fromJson(needs.preconfig.outputs.deb) }}
|
||||
with:
|
||||
RUNNER: ${{ matrix.platform.runner }}
|
||||
REF: ${{ inputs.freeswitch_ref }}
|
||||
ARTIFACTS_PATTERN: '.*\.(deb|dsc|changes|tar.bz2|tar.gz|tar.lzma|tar.xz)$'
|
||||
DOCKERFILE: .github/docker/${{ matrix.os }}/${{ matrix.version }}/${{ matrix.platform.name }}/public.${{ matrix.release }}.Dockerfile
|
||||
MAINTAINER: "Andrey Volk <andrey@signalwire.com>"
|
||||
META_FILE_PATH_PREFIX: /var/www/freeswitch/public/${{ matrix.release }}/${{ github.ref_name }}/${{ github.run_id }}-${{ github.run_number }}
|
||||
PLATFORM: ${{ matrix.platform.name }}
|
||||
REPO_DOMAIN: "freeswitch.signalwire.com"
|
||||
TARGET_ARTIFACT_NAME: ${{ matrix.os }}-${{ matrix.version }}-${{ matrix.platform.name }}-public-${{ matrix.release }}-artifact
|
||||
UPLOAD_BUILD_ARTIFACTS: >-
|
||||
${{
|
||||
(
|
||||
github.event_name == 'push' &&
|
||||
github.repository == 'signalwire/freeswitch' &&
|
||||
contains(fromJSON('["master", "v1.10"]'), github.ref_name)
|
||||
) ||
|
||||
(github.event_name == 'workflow_dispatch' && inputs.publish)
|
||||
}}
|
||||
secrets:
|
||||
GH_BOT_DEPLOY_TOKEN: ${{ secrets.PAT }}
|
||||
HOSTNAME: ${{ secrets.HOSTNAME }}
|
||||
PROXY_URL: ${{ secrets.PROXY_URL }}
|
||||
USERNAME: ${{ secrets.USERNAME }}
|
||||
TELEPORT_TOKEN: ${{ secrets.TELEPORT_TOKEN }}
|
||||
REPO_USERNAME: "SWUSERNAME"
|
||||
REPO_PASSWORD: ${{ needs.issue-token.outputs.token }}
|
||||
|
||||
revoke-token:
|
||||
name: "Revoke temporary token"
|
||||
runs-on: ubuntu-latest
|
||||
# if: always()
|
||||
needs:
|
||||
- issue-token
|
||||
- deb-public
|
||||
steps:
|
||||
- name: Revoke Token
|
||||
id: revoke-token
|
||||
uses: signalwire/actions-template/.github/actions/repo-auth-client@main
|
||||
env:
|
||||
TOKEN: ${{ needs.issue-token.outputs.token }}
|
||||
with:
|
||||
mode: revoke
|
||||
|
||||
meta:
|
||||
name: "Publish build data to meta-repo"
|
||||
if: >-
|
||||
${{
|
||||
github.event_name == 'push' &&
|
||||
github.repository == 'signalwire/freeswitch' &&
|
||||
contains(fromJSON('["master", "v1.10"]'), github.ref_name)
|
||||
}}
|
||||
needs:
|
||||
- deb-public
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: read
|
||||
uses: signalwire/actions-template/.github/workflows/meta-repo-content.yml@main
|
||||
with:
|
||||
META_CONTENT: "/var/www/freeswitch/public/{release,unstable}/${{ github.ref_name }}/${{ github.run_id }}-${{ github.run_number }}"
|
||||
META_REPO: signalwire/bamboo_gha_trigger
|
||||
META_REPO_BRANCH: trigger/freeswitch/${{ github.ref_name }}
|
||||
secrets:
|
||||
GH_BOT_DEPLOY_TOKEN: ${{ secrets.PAT }}
|
103
.github/workflows/ci.yml
vendored
Normal file
103
.github/workflows/ci.yml
vendored
Normal file
@ -0,0 +1,103 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- v1.10
|
||||
pull_request:
|
||||
types:
|
||||
- opened
|
||||
- synchronize
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
freeswitch_ref:
|
||||
description: 'FreeSWITCH repository ref'
|
||||
required: false
|
||||
type: string
|
||||
sofia-sip_ref:
|
||||
description: 'Sofia-Sip repository ref'
|
||||
required: false
|
||||
type: string
|
||||
dind:
|
||||
description: 'Run tests using Docker-in-Docker'
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
env:
|
||||
CI_BASE_STATIC_IMAGE: signalwire/freeswitch-public-ci-base:bookworm-amd64
|
||||
DOCKER_BUILD_SUMMARY: false
|
||||
DOCKER_BUILD_CHECKS_ANNOTATIONS: false
|
||||
DOCKER_BUILD_RECORD_UPLOAD: false
|
||||
|
||||
jobs:
|
||||
unit-tests-pre-config:
|
||||
if: ${{ !inputs.dind }}
|
||||
name: "Unit-tests pre-config"
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
TOTAL_GROUPS: 2
|
||||
outputs:
|
||||
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
||||
container-image: ${{ steps.set-vars.outputs.container-image }}
|
||||
working-directory: ${{ steps.set-vars.outputs.working-directory }}
|
||||
tests-only: ${{ steps.set-vars.outputs.tests-only }}
|
||||
steps:
|
||||
- id: set-matrix
|
||||
shell: bash
|
||||
run: |
|
||||
MATRIX=$(jq -c -n --argjson groups "${{ env.TOTAL_GROUPS }}" \
|
||||
'{
|
||||
include: [range(1; $groups + 1) | {group: ., total: $groups}]
|
||||
}')
|
||||
echo "matrix=$MATRIX" | tee -a $GITHUB_OUTPUT
|
||||
- id: set-vars
|
||||
shell: bash
|
||||
run: |
|
||||
echo "tests-only=false" >> $GITHUB_OUTPUT
|
||||
echo "working-directory=freeswitch/tests/unit" >> $GITHUB_OUTPUT
|
||||
echo "container-image=$CI_BASE_STATIC_IMAGE" >> $GITHUB_OUTPUT
|
||||
|
||||
unit-tests:
|
||||
if: ${{ !inputs.dind }}
|
||||
name: "Unit-tests (group ${{ matrix.group }})"
|
||||
needs:
|
||||
- unit-tests-pre-config
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix: ${{ fromJson(needs.unit-tests-pre-config.outputs.matrix) }}
|
||||
uses: ./.github/workflows/unit-test.yml
|
||||
with:
|
||||
total-groups: ${{ matrix.total }}
|
||||
current-group: ${{ matrix.group }}
|
||||
container-image: ${{ needs.unit-tests-pre-config.outputs.container-image }}
|
||||
working-directory: ${{ needs.unit-tests-pre-config.outputs.working-directory }}
|
||||
tests-only: ${{ fromJson(needs.unit-tests-pre-config.outputs.tests-only) }}
|
||||
secrets: inherit
|
||||
|
||||
validate-unit-tests:
|
||||
if: ${{ always() && !inputs.dind }}
|
||||
name: "Validate Unit-tests"
|
||||
needs: unit-tests
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check unit tests status
|
||||
run: |
|
||||
if [ "${{ needs.unit-tests.result }}" != "success" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
unit-tests-dind:
|
||||
if: ${{ inputs.dind }}
|
||||
name: "Unit-tests D-in-D"
|
||||
uses: ./.github/workflows/unit-test-dind.yml
|
||||
with:
|
||||
freeswitch_ref: ${{ inputs.freeswitch_ref }}
|
||||
sofia-sip_ref: ${{ inputs.sofia-sip_ref }}
|
||||
secrets: inherit
|
||||
|
||||
scan-build:
|
||||
name: "Scan Build"
|
||||
uses: ./.github/workflows/scan-build.yml
|
||||
secrets: inherit
|
96
.github/workflows/macos.yml
vendored
Normal file
96
.github/workflows/macos.yml
vendored
Normal file
@ -0,0 +1,96 @@
|
||||
name: MacOS Build
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- v1.10
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- v1.10
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build MacOS
|
||||
runs-on: macos-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
brew update
|
||||
# brew install libtiff openssl@3
|
||||
brew install \
|
||||
autoconf \
|
||||
automake \
|
||||
curl \
|
||||
ffmpeg@5 \
|
||||
gnu-sed \
|
||||
jpeg \
|
||||
ldns \
|
||||
libpq@16 \
|
||||
libsndfile \
|
||||
libtool \
|
||||
lua \
|
||||
opus \
|
||||
ossp-uuid \
|
||||
pcre2 \
|
||||
pkgconf \
|
||||
sofia-sip \
|
||||
speex \
|
||||
speexdsp \
|
||||
sqlite \
|
||||
yasm \
|
||||
&& \
|
||||
brew install \
|
||||
signalwire/homebrew-signalwire/libks2 \
|
||||
signalwire/homebrew-signalwire/signalwire-c2 \
|
||||
signalwire/homebrew-signalwire/spandsp \
|
||||
&& \
|
||||
brew link --force --overwrite \
|
||||
ffmpeg@5 \
|
||||
libpq@16
|
||||
|
||||
- name: Bootstrap FreeSWITCH
|
||||
run: ./bootstrap.sh -j
|
||||
|
||||
# - name: Disable modules
|
||||
# run: |
|
||||
# gsed -i \
|
||||
# -e '/mod_pgsql/s/^/#/g' \
|
||||
# modules.conf
|
||||
|
||||
- name: Configure build
|
||||
run: |
|
||||
mkdir -p OUT && \
|
||||
./configure \
|
||||
--enable-shared \
|
||||
--enable-static \
|
||||
--exec_prefix=${{ github.workspace }}/OUT \
|
||||
--prefix=${{ github.workspace }}/OUT
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
make
|
||||
|
||||
- name: Install to local folder
|
||||
run: |
|
||||
make install
|
||||
|
||||
# - name: Debug - List all files
|
||||
# run: |
|
||||
# find . -type f | sort
|
||||
|
||||
- name: Upload build artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
if: always()
|
||||
with:
|
||||
name: freeswitch-macos-build
|
||||
path: |
|
||||
OUT/
|
100
.github/workflows/scan-build.yml
vendored
Normal file
100
.github/workflows/scan-build.yml
vendored
Normal file
@ -0,0 +1,100 @@
|
||||
name: Scan build (Static Analysis)
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
freeswitch_ref:
|
||||
description: 'FreeSWITCH repository ref'
|
||||
required: false
|
||||
type: string
|
||||
sofia-sip_ref:
|
||||
description: 'Sofia-Sip repository ref'
|
||||
required: false
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
scan-build:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: signalwire/freeswitch-public-ci-base:bookworm-amd64
|
||||
options: --privileged
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
|
||||
steps:
|
||||
- name: Checkout Sofia-Sip
|
||||
if: inputs.sofia-sip_ref == ''
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: freeswitch/sofia-sip
|
||||
path: sofia-sip
|
||||
|
||||
- name: Checkout Sofia-Sip (via ref)
|
||||
if: inputs.sofia-sip_ref != ''
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: freeswitch/sofia-sip
|
||||
ref: ${{ inputs.sofia-sip_ref }}
|
||||
path: sofia-sip
|
||||
|
||||
- name: Checkout FreeSWITCH (via ref)
|
||||
if: inputs.freeswitch_ref != ''
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ inputs.freeswitch_ref }}
|
||||
path: freeswitch
|
||||
|
||||
- name: Checkout FreeSWITCH
|
||||
if: inputs.freeswitch_ref == ''
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: freeswitch
|
||||
|
||||
- name: Configure, Build and Install Sofia-Sip
|
||||
shell: bash
|
||||
working-directory: freeswitch
|
||||
run: |
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y libpcre2-dev libsphinxbase-dev libpocketsphinx-dev
|
||||
./ci.sh -t scan-build -a configure -c sofia-sip -p "$GITHUB_WORKSPACE/sofia-sip"
|
||||
./ci.sh -t scan-build -a build -c sofia-sip -p "$GITHUB_WORKSPACE/sofia-sip"
|
||||
./ci.sh -t scan-build -a install -c sofia-sip -p "$GITHUB_WORKSPACE/sofia-sip"
|
||||
|
||||
- name: Configure FreeSWITCH
|
||||
shell: bash
|
||||
working-directory: freeswitch
|
||||
run: |
|
||||
./ci.sh -t scan-build -a configure -c freeswitch -p "$GITHUB_WORKSPACE/freeswitch"
|
||||
|
||||
- name: Run scan-build analysis
|
||||
shell: bash
|
||||
working-directory: freeswitch
|
||||
run: |
|
||||
./ci.sh -t scan-build -a build -c freeswitch -p "$GITHUB_WORKSPACE/freeswitch"
|
||||
|
||||
- name: Check analysis results
|
||||
if: always()
|
||||
shell: bash
|
||||
working-directory: freeswitch
|
||||
run: |
|
||||
./ci.sh -t scan-build -a validate -c freeswitch -p "$GITHUB_WORKSPACE/freeswitch"
|
||||
|
||||
- name: Upload Scan-Build logs
|
||||
if: failure()
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: scan-build-logs
|
||||
path: freeswitch/scan-build
|
||||
if-no-files-found: ignore
|
||||
compression-level: 9
|
||||
|
||||
- name: Notify run tests result to slack
|
||||
if: |
|
||||
failure() &&
|
||||
github.event_name == 'push' &&
|
||||
(github.ref == 'refs/heads/master' || github.ref == 'refs/heads/v1.10')
|
||||
uses: signalwire/actions-template/.github/actions/slack@main
|
||||
with:
|
||||
CHANNEL: ${{ secrets.SLACK_DEVOPS_CI_CHANNEL }}
|
||||
MESSAGE: Scan-Build ${{ github.repository }} > <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|${{ github.run_id }}>. Static analysis failed.
|
||||
env:
|
||||
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
|
100
.github/workflows/unit-test-dind.yml
vendored
Normal file
100
.github/workflows/unit-test-dind.yml
vendored
Normal file
@ -0,0 +1,100 @@
|
||||
name: Unit-tests D-in-D
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
freeswitch_ref:
|
||||
description: 'FreeSWITCH repository ref'
|
||||
required: false
|
||||
type: string
|
||||
sofia-sip_ref:
|
||||
description: 'Sofia-Sip repository ref'
|
||||
required: false
|
||||
type: string
|
||||
|
||||
env:
|
||||
MAX_CONTAINERS: 8
|
||||
NUM_CPU_PER_CONTAINER: 1
|
||||
DOCKER_BUILD_SUMMARY: false
|
||||
DOCKER_BUILD_CHECKS_ANNOTATIONS: false
|
||||
DOCKER_BUILD_RECORD_UPLOAD: false
|
||||
|
||||
jobs:
|
||||
unit-tests:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: signalwire/freeswitch-public-ci-base:bookworm-amd64
|
||||
options: --privileged
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
ASAN_OPTIONS: log_path=stdout:disable_coredump=0:unmap_shadow_on_exit=1:fast_unwind_on_malloc=0
|
||||
|
||||
steps:
|
||||
- name: Checkout Sofia-Sip (via ref)
|
||||
if: inputs.sofia-sip_ref != ''
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: freeswitch/sofia-sip
|
||||
ref: ${{ inputs.sofia-sip_ref }}
|
||||
path: sofia-sip
|
||||
|
||||
- name: Checkout Sofia-Sip
|
||||
if: inputs.sofia-sip_ref == ''
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: freeswitch/sofia-sip
|
||||
path: sofia-sip
|
||||
|
||||
- name: Checkout FreeSWITCH (via ref)
|
||||
if: inputs.freeswitch_ref != ''
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ inputs.freeswitch_ref }}
|
||||
path: freeswitch
|
||||
|
||||
- name: Checkout FreeSWITCH
|
||||
if: inputs.freeswitch_ref == ''
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: freeswitch
|
||||
|
||||
- name: Run Unit-Test containers and collect artifacts
|
||||
id: unit_tests
|
||||
shell: bash
|
||||
run: |
|
||||
echo "logs_path=${GITHUB_WORKSPACE}/freeswitch/tests/unit/logs" >> $GITHUB_OUTPUT
|
||||
|
||||
"${GITHUB_WORKSPACE}/freeswitch/tests/unit/run-tests-docker.sh" \
|
||||
--base-image signalwire/freeswitch-public-ci-base:bookworm-amd64 \
|
||||
--cpus ${{ env.NUM_CPU_PER_CONTAINER }} \
|
||||
--image-tag ci.local \
|
||||
--max-containers ${{ env.MAX_CONTAINERS }} \
|
||||
--output-dir "${GITHUB_WORKSPACE}/freeswitch/tests/unit/logs" \
|
||||
--sofia-sip-path "${GITHUB_WORKSPACE}/sofia-sip" \
|
||||
--freeswitch-path "${GITHUB_WORKSPACE}/freeswitch"
|
||||
|
||||
test -d "/cores" && ls -lah /cores
|
||||
|
||||
cd "${GITHUB_WORKSPACE}/freeswitch/tests/unit/" && \
|
||||
./collect-test-logs.sh --dir logs --print
|
||||
|
||||
- name: Upload Unit-Test logs
|
||||
if: failure()
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: test-results-${{ github.sha }}-${{ github.run_number }}
|
||||
path: ${{ steps.unit_tests.outputs.logs_path }}
|
||||
if-no-files-found: ignore
|
||||
compression-level: 9
|
||||
|
||||
- name: Notify run tests result to slack
|
||||
if: |
|
||||
failure() &&
|
||||
github.event_name == 'push' &&
|
||||
(github.ref == 'refs/heads/master' || github.ref == 'refs/heads/v1.10')
|
||||
uses: signalwire/actions-template/.github/actions/slack@main
|
||||
with:
|
||||
CHANNEL: ${{ secrets.SLACK_DEVOPS_CI_CHANNEL }}
|
||||
MESSAGE: Unit-Tests ${{ github.repository }} > <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|${{ github.run_id }}>. Some tests are failing.
|
||||
env:
|
||||
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
|
137
.github/workflows/unit-test.yml
vendored
Normal file
137
.github/workflows/unit-test.yml
vendored
Normal file
@ -0,0 +1,137 @@
|
||||
name: Unit tests
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
total-groups:
|
||||
description: 'Total number of test groups'
|
||||
required: true
|
||||
type: number
|
||||
default: 1
|
||||
current-group:
|
||||
description: 'Current test group number'
|
||||
required: true
|
||||
type: number
|
||||
default: 1
|
||||
freeswitch_ref:
|
||||
description: 'FreeSWITCH repository ref'
|
||||
required: false
|
||||
type: string
|
||||
sofia-sip_ref:
|
||||
description: 'Sofia-Sip repository ref'
|
||||
required: false
|
||||
type: string
|
||||
container-image:
|
||||
description: 'Container image to use for running tests'
|
||||
required: false
|
||||
type: string
|
||||
default: 'signalwire/freeswitch-public-ci-base:bookworm-amd64'
|
||||
working-directory:
|
||||
description: 'Working directory for running tests'
|
||||
required: false
|
||||
type: string
|
||||
default: 'freeswitch/tests/unit'
|
||||
tests-only:
|
||||
description: 'Run only tests, skip other tasks'
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
jobs:
|
||||
unit-test:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ${{ inputs.container-image }}
|
||||
options: --privileged
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
ASAN_OPTIONS: log_path=stdout:disable_coredump=0:unmap_shadow_on_exit=1:fast_unwind_on_malloc=0
|
||||
|
||||
steps:
|
||||
- name: Override core_pattern
|
||||
shell: bash
|
||||
run: |
|
||||
echo '/cores/core.%s.%E.%e.%p.%t' > /proc/sys/kernel/core_pattern
|
||||
cat /proc/sys/kernel/core_pattern
|
||||
|
||||
- name: Checkout Sofia-Sip (via ref)
|
||||
if: ${{ !inputs.tests-only && inputs.sofia-sip_ref != '' }}
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: freeswitch/sofia-sip
|
||||
ref: ${{ inputs.sofia-sip_ref }}
|
||||
path: sofia-sip
|
||||
|
||||
- name: Checkout Sofia-Sip
|
||||
if: ${{ !inputs.tests-only && inputs.sofia-sip_ref == '' }}
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: freeswitch/sofia-sip
|
||||
path: sofia-sip
|
||||
|
||||
- name: Checkout FreeSWITCH (via ref)
|
||||
if: ${{ !inputs.tests-only && inputs.freeswitch_ref != '' }}
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ inputs.freeswitch_ref }}
|
||||
path: freeswitch
|
||||
|
||||
- name: Checkout FreeSWITCH
|
||||
if: ${{ !inputs.tests-only && inputs.freeswitch_ref == '' }}
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: freeswitch
|
||||
|
||||
- name: Configure, Build and Install Sofia-Sip
|
||||
if: ${{ !inputs.tests-only }}
|
||||
shell: bash
|
||||
working-directory: freeswitch
|
||||
run: |
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y libpcre2-dev libsphinxbase-dev libpocketsphinx-dev
|
||||
./ci.sh -t unit-test -a configure -c sofia-sip -p "$GITHUB_WORKSPACE/sofia-sip"
|
||||
./ci.sh -t unit-test -a build -c sofia-sip -p "$GITHUB_WORKSPACE/sofia-sip"
|
||||
./ci.sh -t unit-test -a install -c sofia-sip -p "$GITHUB_WORKSPACE/sofia-sip"
|
||||
|
||||
- name: Configure, Build and Install FreeSWITCH
|
||||
if: ${{ !inputs.tests-only }}
|
||||
shell: bash
|
||||
working-directory: freeswitch
|
||||
run: |
|
||||
./ci.sh -t unit-test -a configure -c freeswitch -p "$GITHUB_WORKSPACE/freeswitch"
|
||||
./ci.sh -t unit-test -a build -c freeswitch -p "$GITHUB_WORKSPACE/freeswitch"
|
||||
./ci.sh -t unit-test -a install -c freeswitch -p "$GITHUB_WORKSPACE/freeswitch"
|
||||
|
||||
- name: Run unit tests
|
||||
shell: bash
|
||||
working-directory: ${{ inputs.working-directory }}
|
||||
run: |
|
||||
./run-tests.sh ${{ inputs.total-groups }} ${{ inputs.current-group }} --output-dir logs || exit 1
|
||||
|
||||
- name: Collect unit test logs
|
||||
if: always()
|
||||
shell: bash
|
||||
working-directory: ${{ inputs.working-directory }}
|
||||
run: |
|
||||
test -d "/cores" && ls -lah /cores
|
||||
./collect-test-logs.sh --dir logs --print
|
||||
|
||||
- name: Upload Unit-Test logs
|
||||
if: failure()
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: test-results-${{ github.sha }}-${{ github.run_number }}-${{ inputs.current-group }}-of-${{ inputs.total-groups }}
|
||||
path: ${{ inputs.working-directory }}/logs
|
||||
if-no-files-found: ignore
|
||||
compression-level: 9
|
||||
|
||||
- name: Notify run tests result to slack
|
||||
if: |
|
||||
failure() &&
|
||||
github.event_name == 'push' &&
|
||||
(github.ref == 'refs/heads/master' || github.ref == 'refs/heads/v1.10')
|
||||
uses: signalwire/actions-template/.github/actions/slack@main
|
||||
with:
|
||||
CHANNEL: ${{ secrets.SLACK_DEVOPS_CI_CHANNEL }}
|
||||
MESSAGE: Unit-Tests ${{ github.repository }} > <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|${{ github.run_id }}>. Some tests are failing.
|
||||
env:
|
||||
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
|
43
.github/workflows/windows.yml
vendored
Normal file
43
.github/workflows/windows.yml
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
name: Windows
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, synchronize]
|
||||
push:
|
||||
branches: [master, release]
|
||||
jobs:
|
||||
x64:
|
||||
runs-on: windows-2022
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Download yasm.exe
|
||||
run: |
|
||||
curl -o libs\win32\ffmpeg\yasm.exe https://files.freeswitch.org/downloads/win64/yasm-1.3.0.87.g121a.exe
|
||||
copy libs\win32\ffmpeg\yasm.exe libs\win32\libvpx\yasm.exe
|
||||
|
||||
- name: Verify and Run yasm.exe
|
||||
run: |
|
||||
if exist libs\win32\ffmpeg\yasm.exe (
|
||||
libs\win32\ffmpeg\yasm.exe --version
|
||||
) else (
|
||||
echo ERROR: yasm.exe not found!
|
||||
exit 1
|
||||
)
|
||||
shell: cmd
|
||||
|
||||
- name: Add msbuild to PATH
|
||||
uses: microsoft/setup-msbuild@v2
|
||||
|
||||
- name: Build
|
||||
run: msbuild Freeswitch.2017.sln -t:build -verbosity:minimal -property:Configuration=Release -property:Platform=x64
|
||||
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: MSI Package
|
||||
path: D:\a\freeswitch\freeswitch\x64\*.msi
|
||||
if: contains(github.event.pull_request.title, ':upload-artifacts') || github.ref == 'refs/heads/master' || github.ref == 'refs/heads/v1.10'
|
12
.gitignore
vendored
12
.gitignore
vendored
@ -145,18 +145,15 @@ Release/
|
||||
/src/mod/applications/mod_nibblebill/Makefile
|
||||
/src/mod/applications/mod_osp/Makefile
|
||||
/src/mod/applications/mod_osp/Makefile.in
|
||||
/src/mod/applications/mod_rss/Makefile
|
||||
/src/mod/applications/mod_snipe_hunt/Makefile
|
||||
/src/mod/applications/mod_test/test/Makefile
|
||||
/src/mod/applications/mod_test/test/Makefile.in
|
||||
/src/mod/codecs/mod_com_g729/Makefile
|
||||
/src/mod/codecs/mod_com_g729/Makefile.in
|
||||
/src/mod/codecs/mod_dahdi_codec/Makefile
|
||||
/src/mod/dialplans/mod_dialplan_directory/Makefile
|
||||
/src/mod/formats/mod_shell_stream/Makefile
|
||||
/src/mod/languages/mod_lua/mod_lua_wrap.cpp.orig
|
||||
/src/mod/languages/mod_perl/mod_perl_wrap.cpp.orig
|
||||
/src/mod/languages/mod_python/mod_python_wrap.cpp.orig
|
||||
/src/mod/languages/mod_python3/mod_python_wrap.cpp.orig
|
||||
/src/mod/say/mod_say_de/Makefile
|
||||
/src/mod/say/mod_say_es/Makefile
|
||||
@ -175,7 +172,6 @@ BuildLog.htm
|
||||
|
||||
!/libs/win32/
|
||||
!/libs/speex/win32/
|
||||
!/src/mod/endpoints/mod_gsmopen/gsmlib/gsmlib-1.10-patched-13ubuntu/win32/
|
||||
*.suo
|
||||
*.sdf
|
||||
x64/
|
||||
@ -187,7 +183,7 @@ ipch/
|
||||
/w32/Setup/obj
|
||||
*dSYM*
|
||||
|
||||
/UpgradeLog.*
|
||||
/UpgradeLog*.*
|
||||
/_UpgradeReport_Files/
|
||||
*.aps
|
||||
/w32/Library/switch_version.inc
|
||||
@ -255,9 +251,6 @@ libs/sofia-sip*
|
||||
|
||||
src/mod/applications/mod_test/test/test_asr
|
||||
src/mod/applications/mod_test/test/test_tts
|
||||
src/mod/event_handlers/mod_rayo/test/test_iks
|
||||
src/mod/event_handlers/mod_rayo/test/test_nlsml
|
||||
src/mod/event_handlers/mod_rayo/test/test_srgs
|
||||
src/mod/applications/mod_http_cache/test/Makefile
|
||||
src/mod/applications/mod_http_cache/test/Makefile.in
|
||||
src/mod/applications/mod_http_cache/test/test-suite.log
|
||||
@ -266,7 +259,6 @@ src/mod/applications/mod_http_cache/test/test_aws.log
|
||||
src/mod/applications/mod_http_cache/test/test_aws.trs
|
||||
src/mod/formats/mod_sndfile/test/test_sndfile
|
||||
src/mod/formats/mod_sndfile/test/test_sndfile_conf
|
||||
src/mod/formats/mod_ssml/test/test_tts_format
|
||||
src/mod/*/*/test/*.log
|
||||
src/mod/*/*/test/*.trs
|
||||
src/mod/*/*/test/[0-9]*/*
|
||||
@ -281,3 +273,5 @@ images/test_text.png
|
||||
|
||||
src/mod/codecs/mod_amrwb/test/test_amrwb
|
||||
src/mod/endpoints/mod_sofia/test/sipp-based-tests
|
||||
|
||||
.DS_Store
|
||||
|
@ -79,8 +79,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "autoload_configs", "autoloa
|
||||
conf\vanilla\autoload_configs\logfile.conf.xml = conf\vanilla\autoload_configs\logfile.conf.xml
|
||||
conf\vanilla\autoload_configs\modules.conf.xml = conf\vanilla\autoload_configs\modules.conf.xml
|
||||
conf\vanilla\autoload_configs\openmrcp.conf.xml = conf\vanilla\autoload_configs\openmrcp.conf.xml
|
||||
conf\vanilla\autoload_configs\portaudio.conf.xml = conf\vanilla\autoload_configs\portaudio.conf.xml
|
||||
conf\vanilla\autoload_configs\rss.conf.xml = conf\vanilla\autoload_configs\rss.conf.xml
|
||||
conf\vanilla\autoload_configs\sofia.conf.xml = conf\vanilla\autoload_configs\sofia.conf.xml
|
||||
conf\vanilla\autoload_configs\switch.conf.xml = conf\vanilla\autoload_configs\switch.conf.xml
|
||||
conf\vanilla\autoload_configs\syslog.conf.xml = conf\vanilla\autoload_configs\syslog.conf.xml
|
||||
@ -173,8 +171,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g729", "src\mod\codecs\
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sndfile", "src\mod\formats\mod_sndfile\mod_sndfile.2017.vcxproj", "{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_PortAudio", "src\mod\endpoints\mod_portaudio\mod_PortAudio.2017.vcxproj", "{5FD31A25-5D83-4794-8BEE-904DAD84CE71}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "docs", "docs\docs.2017.vcxproj", "{1A1FF289-4FD6-4285-A422-D31DD67A4723}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_xml", "src\mod\dialplans\mod_dialplan_xml\mod_dialplan_xml.2017.vcxproj", "{07113B25-D3AF-4E04-BA77-4CD1171F022C}"
|
||||
@ -191,8 +187,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_v8", "src\mod\languages
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_v8_skel", "src\mod\languages\mod_v8\mod_v8_skel.2017.vcxproj", "{8B754330-A434-4791-97E5-1EE67060BAC0}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cepstral", "src\mod\asr_tts\mod_cepstral\mod_cepstral.2017.vcxproj", "{692F6330-4D87-4C82-81DF-40DB5892636E}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ilbc", "src\mod\codecs\mod_ilbc\mod_ilbc.2017.vcxproj", "{D3EC0AFF-76FC-4210-A825-9A17410660A3}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_commands", "src\mod\applications\mod_commands\mod_commands.2017.vcxproj", "{30A5B29C-983E-4580-9FD0-D647CCDCC7EB}"
|
||||
@ -204,8 +198,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_rpc", "src\mod\xml_
|
||||
{BED7539C-0099-4A14-AD5D-30828F15A171} = {BED7539C-0099-4A14-AD5D-30828F15A171}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_rss", "src\mod\applications\mod_rss\mod_rss.2017.vcxproj", "{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_conference", "src\mod\applications\mod_conference\mod_conference.2017.vcxproj", "{C24FB505-05D7-4319-8485-7540B44C8603}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dptools", "src\mod\applications\mod_dptools\mod_dptools.2017.vcxproj", "{B5881A85-FE70-4F64-8607-2CAAE52669C6}"
|
||||
@ -218,16 +210,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsqlite", "libs\win32\sql
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libapr", "libs\win32\apr\libapr.2017.vcxproj", "{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iksemel", "libs\win32\iksemel\iksemel.2017.vcxproj", "{E727E8F6-935D-46FE-8B0E-37834748A0E3}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sofia", "src\mod\endpoints\mod_sofia\mod_sofia.2017.vcxproj", "{0DF3ABD0-DDC0-4265-B778-07C66780979B}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pthread", "libs\win32\pthread\pthread.2017.vcxproj", "{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g723_1", "src\mod\codecs\mod_g723_1\mod_g723_1.2017.vcxproj", "{FEA1EEF7-876F-48DE-88BF-C0E3E606D758}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_iSAC", "src\mod\codecs\mod_isac\mod_iSAC.2017.vcxproj", "{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_native_file", "src\mod\formats\mod_native_file\mod_native_file.2017.vcxproj", "{9254C4B0-6F60-42B6-BB3A-36D63FC001C7}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libudns", "libs\win32\udns\libudns.2017.vcxproj", "{4043FC6A-9A30-4577-8AD5-9B233C9575D8}"
|
||||
@ -238,14 +226,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_curl", "src\mod\xml
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_en", "src\mod\say\mod_say_en\mod_say_en.2017.vcxproj", "{988CACF7-3FCB-4992-BE69-77872AE67DC8}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portaudio", "libs\win32\portaudio\portaudio.2017.vcxproj", "{0A18A071-125E-442F-AFF7-A3F68ABECF99}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_cdr", "src\mod\xml_int\mod_xml_cdr\mod_xml_cdr.2017.vcxproj", "{08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_amr", "src\mod\codecs\mod_amr\mod_amr.2017.vcxproj", "{8DEB383C-4091-4F42-A56F-C9E46D552D79}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_h26x", "src\mod\codecs\mod_h26x\mod_h26x.2017.vcxproj", "{2C3C2423-234B-4772-8899-D3B137E5CA35}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_esf", "src\mod\applications\mod_esf\mod_esf.2017.vcxproj", "{3850D93A-5F24-4922-BC1C-74D08C37C256}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_local_stream", "src\mod\formats\mod_local_stream\mod_local_stream.2017.vcxproj", "{2CA40887-1622-46A1-A7F9-17FD7E7E545B}"
|
||||
@ -302,8 +286,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_shout", "src\mod\format
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libogg", "libs\win32\libogg\libogg.2017.vcxproj", "{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_snom", "src\mod\applications\mod_snom\mod_snom.2017.vcxproj", "{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_zh", "src\mod\say\mod_say_zh\mod_say_zh.2017.vcxproj", "{B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_managed", "src\mod\languages\mod_managed\mod_managed.2017.vcxproj", "{7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}"
|
||||
@ -407,18 +389,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spy", "src\mod\applicat
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_httapi", "src\mod\applications\mod_httapi\mod_httapi.2017.vcxproj", "{4748FF56-CA85-4809-97D6-A94C0FAC1D77}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_abstraction", "src\mod\applications\mod_abstraction\mod_abstraction.2017.vcxproj", "{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sms", "src\mod\applications\mod_sms\mod_sms.2017.vcxproj", "{2469B306-B027-4FF2-8815-C9C1EA2CAE79}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "xmlrpc-c", "xmlrpc-c", "{9DE35039-A8F6-4FBF-B1B6-EB527F802411}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gsmlib", "src\mod\endpoints\mod_gsmopen\gsmlib\gsmlib-1.10-patched-13ubuntu\win32\gsmlib.2017.vcxproj", "{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_gsmopen", "src\mod\endpoints\mod_gsmopen\mod_gsmopen.2017.vcxproj", "{74B120FF-6935-4DFE-A142-CDB6BEA99C90}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libzrtp", "libs\libzrtp\projects\win\libzrtp.2017.vcxproj", "{C13CC324-0032-4492-9A30-310A6BD64FF5}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_redis", "src\mod\applications\mod_redis\mod_redis.2017.vcxproj", "{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjpeg", "libs\win32\libjpeg\libjpeg.2017.vcxproj", "{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}"
|
||||
@ -452,8 +426,6 @@ Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Setup.2017", "w32\Setup\Set
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_math_fixed_tables", "libs\win32\spandsp\make_math_fixed_tables.2017.vcxproj", "{2386B892-35F5-46CF-A0F0-10394D2FBF9B}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcbt", "libs\win32\libcbt\libcbt.2017.vcxproj", "{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "make_cielab_luts", "libs\win32\spandsp\make_cielab_luts.2017.vcxproj", "{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "opus", "opus", "{ED2CA8B5-8E91-4296-A120-02BB0B674652}"
|
||||
@ -556,6 +528,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_switch_core_db", "test
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_switch_ivr_originate", "tests\unit\test_switch_ivr_originate.2017.vcxproj", "{69A7464A-9B0D-4804-A108-835229DACF58}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_switch_core_codec", "tests\unit\test_switch_core_codec.2017.vcxproj", "{589A07E7-5DE5-49FD-A62C-27795B806AFB}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_tts_format", "tests\unit\test_tts_format.2017.vcxproj", "{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_test", "src\mod\applications\mod_test\mod_test.2017.vcxproj", "{E9FF8127-D5F0-2398-59EB-702CE55F7800}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
All|Win32 = All|Win32
|
||||
@ -610,17 +588,6 @@ Global
|
||||
{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|Win32.Build.0 = Release|Win32
|
||||
{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x64.ActiveCfg = Release|x64
|
||||
{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x64.Build.0 = Release|x64
|
||||
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|Win32.ActiveCfg = Release|x64
|
||||
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64.ActiveCfg = Release|x64
|
||||
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64.Build.0 = Release|x64
|
||||
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64.Build.0 = Debug|x64
|
||||
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|Win32.Build.0 = Release|Win32
|
||||
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.ActiveCfg = Release|x64
|
||||
{5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.Build.0 = Release|x64
|
||||
{1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|Win32.ActiveCfg = Release|Win32
|
||||
{1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|x64.ActiveCfg = Release|Win32
|
||||
{1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
@ -700,13 +667,6 @@ Global
|
||||
{8B754330-A434-4791-97E5-1EE67060BAC0}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{8B754330-A434-4791-97E5-1EE67060BAC0}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{8B754330-A434-4791-97E5-1EE67060BAC0}.Release|x64.ActiveCfg = Release|x64
|
||||
{692F6330-4D87-4C82-81DF-40DB5892636E}.All|Win32.ActiveCfg = Release|x64
|
||||
{692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.ActiveCfg = Release|x64
|
||||
{692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.Build.0 = Release|x64
|
||||
{692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{692F6330-4D87-4C82-81DF-40DB5892636E}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{692F6330-4D87-4C82-81DF-40DB5892636E}.Release|x64.ActiveCfg = Release|x64
|
||||
{D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|Win32.ActiveCfg = Release|x64
|
||||
{D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64.ActiveCfg = Release|x64
|
||||
{D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64.Build.0 = Release|x64
|
||||
@ -751,17 +711,6 @@ Global
|
||||
{CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|Win32.Build.0 = Release|Win32
|
||||
{CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|x64.ActiveCfg = Release|x64
|
||||
{CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release|x64.Build.0 = Release|x64
|
||||
{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|Win32.ActiveCfg = Release|x64
|
||||
{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64.ActiveCfg = Release|x64
|
||||
{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64.Build.0 = Release|x64
|
||||
{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x64.Build.0 = Debug|x64
|
||||
{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|Win32.Build.0 = Release|Win32
|
||||
{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|x64.ActiveCfg = Release|x64
|
||||
{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release|x64.Build.0 = Release|x64
|
||||
{C24FB505-05D7-4319-8485-7540B44C8603}.All|Win32.ActiveCfg = Release|x64
|
||||
{C24FB505-05D7-4319-8485-7540B44C8603}.All|x64.ActiveCfg = Release|x64
|
||||
{C24FB505-05D7-4319-8485-7540B44C8603}.All|x64.Build.0 = Release|x64
|
||||
@ -828,17 +777,6 @@ Global
|
||||
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|Win32.Build.0 = Release|Win32
|
||||
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x64.ActiveCfg = Release|x64
|
||||
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release|x64.Build.0 = Release|x64
|
||||
{E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|Win32.ActiveCfg = Release|x64
|
||||
{E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64.ActiveCfg = Release|x64
|
||||
{E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64.Build.0 = Release|x64
|
||||
{E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x64.Build.0 = Debug|x64
|
||||
{E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|Win32.Build.0 = Release|Win32
|
||||
{E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|x64.ActiveCfg = Release|x64
|
||||
{E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release|x64.Build.0 = Release|x64
|
||||
{0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|Win32.ActiveCfg = Release|x64
|
||||
{0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64.ActiveCfg = Release|x64
|
||||
{0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64.Build.0 = Release|x64
|
||||
@ -872,17 +810,6 @@ Global
|
||||
{FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|Win32.Build.0 = Release Passthrough|Win32
|
||||
{FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|x64.ActiveCfg = Release Passthrough|x64
|
||||
{FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release|x64.Build.0 = Release Passthrough|x64
|
||||
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|Win32.ActiveCfg = Release|x64
|
||||
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|x64.ActiveCfg = Release|x64
|
||||
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.All|x64.Build.0 = Release|x64
|
||||
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Debug|x64.Build.0 = Debug|x64
|
||||
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|Win32.Build.0 = Release|Win32
|
||||
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|x64.ActiveCfg = Release|x64
|
||||
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD}.Release|x64.Build.0 = Release|x64
|
||||
{9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|Win32.ActiveCfg = Release|x64
|
||||
{9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64.ActiveCfg = Release|x64
|
||||
{9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64.Build.0 = Release|x64
|
||||
@ -934,17 +861,6 @@ Global
|
||||
{988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|Win32.Build.0 = Release|Win32
|
||||
{988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x64.ActiveCfg = Release|x64
|
||||
{988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x64.Build.0 = Release|x64
|
||||
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|Win32.ActiveCfg = Release DirectSound|x64
|
||||
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64.ActiveCfg = Release DirectSound|x64
|
||||
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64.Build.0 = Release DirectSound|x64
|
||||
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.ActiveCfg = Debug DirectSound|Win32
|
||||
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.Build.0 = Debug DirectSound|Win32
|
||||
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.ActiveCfg = Debug DirectSound|x64
|
||||
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.Build.0 = Debug DirectSound|x64
|
||||
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.ActiveCfg = Release DirectSound|Win32
|
||||
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.Build.0 = Release DirectSound|Win32
|
||||
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.ActiveCfg = Release DirectSound|x64
|
||||
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.Build.0 = Release DirectSound|x64
|
||||
{08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|Win32.ActiveCfg = Release|x64
|
||||
{08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64.ActiveCfg = Release|x64
|
||||
{08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64.Build.0 = Release|x64
|
||||
@ -967,17 +883,6 @@ Global
|
||||
{8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|Win32.Build.0 = Release Passthrough|Win32
|
||||
{8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|x64.ActiveCfg = Release Passthrough|x64
|
||||
{8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release|x64.Build.0 = Release Passthrough|x64
|
||||
{2C3C2423-234B-4772-8899-D3B137E5CA35}.All|Win32.ActiveCfg = Release|x64
|
||||
{2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64.ActiveCfg = Release|x64
|
||||
{2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64.Build.0 = Release|x64
|
||||
{2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x64.Build.0 = Debug|x64
|
||||
{2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|Win32.Build.0 = Release|Win32
|
||||
{2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|x64.ActiveCfg = Release|x64
|
||||
{2C3C2423-234B-4772-8899-D3B137E5CA35}.Release|x64.Build.0 = Release|x64
|
||||
{3850D93A-5F24-4922-BC1C-74D08C37C256}.All|Win32.ActiveCfg = Release|x64
|
||||
{3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64.ActiveCfg = Release|x64
|
||||
{3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64.Build.0 = Release|x64
|
||||
@ -1282,17 +1187,6 @@ Global
|
||||
{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|Win32.Build.0 = Release|Win32
|
||||
{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x64.ActiveCfg = Release|x64
|
||||
{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release|x64.Build.0 = Release|x64
|
||||
{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|Win32.ActiveCfg = Release|x64
|
||||
{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64.ActiveCfg = Release|x64
|
||||
{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64.Build.0 = Release|x64
|
||||
{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64.Build.0 = Debug|x64
|
||||
{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|Win32.Build.0 = Release|Win32
|
||||
{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x64.ActiveCfg = Release|x64
|
||||
{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release|x64.Build.0 = Release|x64
|
||||
{B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|Win32.ActiveCfg = Release|x64
|
||||
{B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64.ActiveCfg = Release|x64
|
||||
{B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64.Build.0 = Release|x64
|
||||
@ -1821,17 +1715,6 @@ Global
|
||||
{4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|Win32.Build.0 = Release|Win32
|
||||
{4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|x64.ActiveCfg = Release|x64
|
||||
{4748FF56-CA85-4809-97D6-A94C0FAC1D77}.Release|x64.Build.0 = Release|x64
|
||||
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|Win32.ActiveCfg = Release|x64
|
||||
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|x64.ActiveCfg = Release|x64
|
||||
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.All|x64.Build.0 = Release|x64
|
||||
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Debug|x64.Build.0 = Debug|x64
|
||||
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|Win32.Build.0 = Release|Win32
|
||||
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|x64.ActiveCfg = Release|x64
|
||||
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F}.Release|x64.Build.0 = Release|x64
|
||||
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|Win32.ActiveCfg = Release|x64
|
||||
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|x64.ActiveCfg = Release|x64
|
||||
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.All|x64.Build.0 = Release|x64
|
||||
@ -1843,39 +1726,6 @@ Global
|
||||
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|Win32.Build.0 = Release|Win32
|
||||
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|x64.ActiveCfg = Release|x64
|
||||
{2469B306-B027-4FF2-8815-C9C1EA2CAE79}.Release|x64.Build.0 = Release|x64
|
||||
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|Win32.ActiveCfg = Release|x64
|
||||
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x64.ActiveCfg = Release|x64
|
||||
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.All|x64.Build.0 = Release|x64
|
||||
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Debug|x64.Build.0 = Debug|x64
|
||||
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|Win32.Build.0 = Release|Win32
|
||||
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|x64.ActiveCfg = Release|x64
|
||||
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53}.Release|x64.Build.0 = Release|x64
|
||||
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|Win32.ActiveCfg = Release|x64
|
||||
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x64.ActiveCfg = Release|x64
|
||||
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.All|x64.Build.0 = Release|x64
|
||||
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Debug|x64.Build.0 = Debug|x64
|
||||
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|Win32.Build.0 = Release|Win32
|
||||
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|x64.ActiveCfg = Release|x64
|
||||
{74B120FF-6935-4DFE-A142-CDB6BEA99C90}.Release|x64.Build.0 = Release|x64
|
||||
{C13CC324-0032-4492-9A30-310A6BD64FF5}.All|Win32.ActiveCfg = Release|Win32
|
||||
{C13CC324-0032-4492-9A30-310A6BD64FF5}.All|Win32.Build.0 = Release|Win32
|
||||
{C13CC324-0032-4492-9A30-310A6BD64FF5}.All|x64.ActiveCfg = Release|Win32
|
||||
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|x64.Build.0 = Debug|x64
|
||||
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|Win32.Build.0 = Release|Win32
|
||||
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|x64.ActiveCfg = Release|x64
|
||||
{C13CC324-0032-4492-9A30-310A6BD64FF5}.Release|x64.Build.0 = Release|x64
|
||||
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|Win32.ActiveCfg = Release|x64
|
||||
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|x64.ActiveCfg = Release|x64
|
||||
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6}.All|x64.Build.0 = Release|x64
|
||||
@ -1976,17 +1826,6 @@ Global
|
||||
{2386B892-35F5-46CF-A0F0-10394D2FBF9B}.Release|Win32.Build.0 = All|Win32
|
||||
{2386B892-35F5-46CF-A0F0-10394D2FBF9B}.Release|x64.ActiveCfg = All|Win32
|
||||
{2386B892-35F5-46CF-A0F0-10394D2FBF9B}.Release|x64.Build.0 = All|Win32
|
||||
{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.All|Win32.ActiveCfg = Release|Win32
|
||||
{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.All|Win32.Build.0 = Release|Win32
|
||||
{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.All|x64.ActiveCfg = Release|Win32
|
||||
{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Debug|x64.Build.0 = Debug|x64
|
||||
{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Release|Win32.Build.0 = Release|Win32
|
||||
{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Release|x64.ActiveCfg = Release|x64
|
||||
{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9}.Release|x64.Build.0 = Release|x64
|
||||
{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|Win32.ActiveCfg = All|Win32
|
||||
{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|Win32.Build.0 = All|Win32
|
||||
{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|x64.ActiveCfg = All|Win32
|
||||
@ -2529,6 +2368,42 @@ Global
|
||||
{69A7464A-9B0D-4804-A108-835229DACF58}.Release|Win32.Build.0 = Release|Win32
|
||||
{69A7464A-9B0D-4804-A108-835229DACF58}.Release|x64.ActiveCfg = Release|x64
|
||||
{69A7464A-9B0D-4804-A108-835229DACF58}.Release|x64.Build.0 = Release|x64
|
||||
{589A07E7-5DE5-49FD-A62C-27795B806AFB}.All|Win32.ActiveCfg = Debug|Win32
|
||||
{589A07E7-5DE5-49FD-A62C-27795B806AFB}.All|Win32.Build.0 = Debug|Win32
|
||||
{589A07E7-5DE5-49FD-A62C-27795B806AFB}.All|x64.ActiveCfg = Debug|x64
|
||||
{589A07E7-5DE5-49FD-A62C-27795B806AFB}.All|x64.Build.0 = Debug|x64
|
||||
{589A07E7-5DE5-49FD-A62C-27795B806AFB}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{589A07E7-5DE5-49FD-A62C-27795B806AFB}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{589A07E7-5DE5-49FD-A62C-27795B806AFB}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{589A07E7-5DE5-49FD-A62C-27795B806AFB}.Debug|x64.Build.0 = Debug|x64
|
||||
{589A07E7-5DE5-49FD-A62C-27795B806AFB}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{589A07E7-5DE5-49FD-A62C-27795B806AFB}.Release|Win32.Build.0 = Release|Win32
|
||||
{589A07E7-5DE5-49FD-A62C-27795B806AFB}.Release|x64.ActiveCfg = Release|x64
|
||||
{589A07E7-5DE5-49FD-A62C-27795B806AFB}.Release|x64.Build.0 = Release|x64
|
||||
{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.All|Win32.ActiveCfg = Debug|Win32
|
||||
{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.All|Win32.Build.0 = Debug|Win32
|
||||
{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.All|x64.ActiveCfg = Debug|x64
|
||||
{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.All|x64.Build.0 = Debug|x64
|
||||
{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.Debug|x64.Build.0 = Debug|x64
|
||||
{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.Release|Win32.Build.0 = Release|Win32
|
||||
{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.Release|x64.ActiveCfg = Release|x64
|
||||
{3745B86B-6BE8-3E67-FCB9-BE62A6131D67}.Release|x64.Build.0 = Release|x64
|
||||
{E9FF8127-D5F0-2398-59EB-702CE55F7800}.All|Win32.ActiveCfg = Debug|Win32
|
||||
{E9FF8127-D5F0-2398-59EB-702CE55F7800}.All|Win32.Build.0 = Debug|Win32
|
||||
{E9FF8127-D5F0-2398-59EB-702CE55F7800}.All|x64.ActiveCfg = Debug|x64
|
||||
{E9FF8127-D5F0-2398-59EB-702CE55F7800}.All|x64.Build.0 = Debug|x64
|
||||
{E9FF8127-D5F0-2398-59EB-702CE55F7800}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{E9FF8127-D5F0-2398-59EB-702CE55F7800}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{E9FF8127-D5F0-2398-59EB-702CE55F7800}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{E9FF8127-D5F0-2398-59EB-702CE55F7800}.Debug|x64.Build.0 = Debug|x64
|
||||
{E9FF8127-D5F0-2398-59EB-702CE55F7800}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{E9FF8127-D5F0-2398-59EB-702CE55F7800}.Release|Win32.Build.0 = Release|Win32
|
||||
{E9FF8127-D5F0-2398-59EB-702CE55F7800}.Release|x64.ActiveCfg = Release|x64
|
||||
{E9FF8127-D5F0-2398-59EB-702CE55F7800}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
@ -2553,7 +2428,6 @@ Global
|
||||
{3DAF028C-AB5B-4183-A01B-DCC43F5A87F0} = {D4A12E4C-DBDA-4614-BA26-3425AE9F60F5}
|
||||
{1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
|
||||
{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
|
||||
{5FD31A25-5D83-4794-8BEE-904DAD84CE71} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
|
||||
{1A1FF289-4FD6-4285-A422-D31DD67A4723} = {CBD81696-EFB4-4D2F-8451-1B8DAA86155A}
|
||||
{07113B25-D3AF-4E04-BA77-4CD1171F022C} = {C5F182F9-754A-4EC5-B50F-76ED02BE13F4}
|
||||
{EC3E5C7F-EE09-47E2-80FE-546363D14A98} = {B8F5B47B-8568-46EB-B320-64C17D2A98BC}
|
||||
@ -2562,32 +2436,26 @@ Global
|
||||
{89385C74-5860-4174-9CAF-A39E7C48909C} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
|
||||
{9B9D2551-D6BD-4F20-8BE5-DE30E154A064} = {0C808854-54D1-4230-BFF5-77B5FD905000}
|
||||
{8B754330-A434-4791-97E5-1EE67060BAC0} = {0C808854-54D1-4230-BFF5-77B5FD905000}
|
||||
{692F6330-4D87-4C82-81DF-40DB5892636E} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}
|
||||
{D3EC0AFF-76FC-4210-A825-9A17410660A3} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
|
||||
{30A5B29C-983E-4580-9FD0-D647CCDCC7EB} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
|
||||
{1C453396-D912-4213-89FD-9B489162B7B5} = {A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}
|
||||
{CBEC7225-0C21-4DA8-978E-1F158F8AD950} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}
|
||||
{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
|
||||
{C24FB505-05D7-4319-8485-7540B44C8603} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
|
||||
{B5881A85-FE70-4F64-8607-2CAAE52669C6} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
|
||||
{05515420-16DE-4E63-BE73-85BE85BA5142} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
|
||||
{EEF031CB-FED8-451E-A471-91EC8D4F6750} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
|
||||
{6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
|
||||
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
|
||||
{E727E8F6-935D-46FE-8B0E-37834748A0E3} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
|
||||
{0DF3ABD0-DDC0-4265-B778-07C66780979B} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
|
||||
{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
|
||||
{FEA1EEF7-876F-48DE-88BF-C0E3E606D758} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
|
||||
{7F1610F1-DD5A-4CF7-8610-30AB12C60ADD} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
|
||||
{9254C4B0-6F60-42B6-BB3A-36D63FC001C7} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
|
||||
{4043FC6A-9A30-4577-8AD5-9B233C9575D8} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
|
||||
{71A967D5-0E99-4CEF-A587-98836EE6F2EF} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
|
||||
{AB91A099-7690-4ECF-8994-E458F4EA1ED4} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}
|
||||
{988CACF7-3FCB-4992-BE69-77872AE67DC8} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
|
||||
{0A18A071-125E-442F-AFF7-A3F68ABECF99} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
|
||||
{08DAD348-9E0A-4A2E-97F1-F1E7E24A7836} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}
|
||||
{8DEB383C-4091-4F42-A56F-C9E46D552D79} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
|
||||
{2C3C2423-234B-4772-8899-D3B137E5CA35} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
|
||||
{3850D93A-5F24-4922-BC1C-74D08C37C256} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
|
||||
{2CA40887-1622-46A1-A7F9-17FD7E7E545B} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
|
||||
{D7F1E3F2-A3F4-474C-8555-15122571AF52} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
|
||||
@ -2616,7 +2484,6 @@ Global
|
||||
{D3D8B329-20BE-475E-9E83-653CEA0E0EF5} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
|
||||
{38FE0559-9910-43A8-9E45-3E5004C27692} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
|
||||
{0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
|
||||
{2A3D00C6-588D-4E86-81AC-9EF5EDE86E03} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
|
||||
{B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
|
||||
{7B42BDA1-72C0-4378-A9B6-5C530F8CD61E} = {0C808854-54D1-4230-BFF5-77B5FD905000}
|
||||
{834E2B2F-5483-4B80-8FE3-FE48FF76E5C0} = {0C808854-54D1-4230-BFF5-77B5FD905000}
|
||||
@ -2665,12 +2532,8 @@ Global
|
||||
{50AAC2CE-BFC9-4912-87CC-C6381850D735} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
|
||||
{A61D7CB4-75A5-4A55-8CA1-BE5AF615D921} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
|
||||
{4748FF56-CA85-4809-97D6-A94C0FAC1D77} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
|
||||
{60C542EE-6882-4EA2-8C21-5AB6DB1BA73F} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
|
||||
{2469B306-B027-4FF2-8815-C9C1EA2CAE79} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
|
||||
{9DE35039-A8F6-4FBF-B1B6-EB527F802411} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
|
||||
{26C82FCE-E0CF-4D10-A00C-D8E582FFEB53} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
|
||||
{74B120FF-6935-4DFE-A142-CDB6BEA99C90} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
|
||||
{C13CC324-0032-4492-9A30-310A6BD64FF5} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
|
||||
{886B5E9D-F2C2-4AF2-98C8-EF98C4C770E6} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
|
||||
{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
|
||||
{D2396DD7-7D38-473A-ABB7-6F96D65AE1B9} = {9DE35039-A8F6-4FBF-B1B6-EB527F802411}
|
||||
@ -2679,7 +2542,6 @@ Global
|
||||
{CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA} = {9DE35039-A8F6-4FBF-B1B6-EB527F802411}
|
||||
{B535402E-38D2-4D54-8360-423ACBD17192} = {9DE35039-A8F6-4FBF-B1B6-EB527F802411}
|
||||
{2386B892-35F5-46CF-A0F0-10394D2FBF9B} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
|
||||
{77BC1DD2-C9A1-44D7-BFFA-1320370CACB9} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
|
||||
{85F0CF8C-C7AB-48F6-BA19-CC94CF87F981} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
|
||||
{ED2CA8B5-8E91-4296-A120-02BB0B674652} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
|
||||
{FD60942F-72D6-4CA1-8B57-EA1D1B95A89E} = {ED2CA8B5-8E91-4296-A120-02BB0B674652}
|
||||
@ -2728,6 +2590,9 @@ Global
|
||||
{0B612F84-7533-4DEC-AEDD-5C9CBCF15EAC} = {31C2761D-20E0-4BF8-98B9-E32F0D8DD6E1}
|
||||
{580675D7-C1C9-4197-AAC5-00F64FAFDE78} = {9388C266-C3FC-468A-92EF-0CBC35941412}
|
||||
{69A7464A-9B0D-4804-A108-835229DACF58} = {9388C266-C3FC-468A-92EF-0CBC35941412}
|
||||
{589A07E7-5DE5-49FD-A62C-27795B806AFB} = {9388C266-C3FC-468A-92EF-0CBC35941412}
|
||||
{3745B86B-6BE8-3E67-FCB9-BE62A6131D67} = {9388C266-C3FC-468A-92EF-0CBC35941412}
|
||||
{E9FF8127-D5F0-2398-59EB-702CE55F7800} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {09840DE7-9208-45AA-9667-1A71EE93BD1E}
|
||||
|
86
LICENSE
86
LICENSE
@ -1202,10 +1202,6 @@ Files: src/include/switch_cpp.h
|
||||
Copyright: 2007 Yossi Neiman <freeswitch@cartissolutions.com>
|
||||
License: MPL-1.1 (well, maybe -- it refers to a COPYING file, so probably docs/COPYING, in which case MPL-1.1)
|
||||
|
||||
Files: libs/iksemel/*
|
||||
Copyright: 2000-2007 Gurer Ozen <madcat@e-kolay.net>
|
||||
License: LGPL-2.1
|
||||
|
||||
Files: libs/apr*/*
|
||||
Copyright: 2000-2005 The Apache Software Foundation or its licensors
|
||||
1991-1992, RSA Data Security, Inc.
|
||||
@ -1313,11 +1309,6 @@ Copyright: 2009-2012 10gen Inc.
|
||||
2001 Unicode, Inc.
|
||||
License: Apache-2.0
|
||||
|
||||
Files: src/mod/applications/mod_stress/FFTReal.h
|
||||
src/mod/applications/mod_stress/FFTReal.cpp
|
||||
Copyright: 1999 Laurent de Soras
|
||||
License: unclear
|
||||
|
||||
Files: src/mod/loggers/mod_syslog/mod_syslog.c
|
||||
Copyright: 2005-2010, James Martelletti <james@nerdc0re.com>
|
||||
License: MPL-1.1
|
||||
@ -1330,10 +1321,6 @@ Files: src/mod/event_handlers/mod_cdr_mongodb/driver/src/md5.[ch]
|
||||
Copyright: 1999, 2000, 2002 Aladdin Enterprises.
|
||||
License: zlib/libpng
|
||||
|
||||
Files: src/mod/event_handlers/mod_radius_cdr/mod_radius_cdr.h
|
||||
Copyright: 2006, Author: Yossi Neiman of Cartis Solutions, Inc. <freeswitch AT cartissolutions.com>
|
||||
License: MPL-1.1
|
||||
|
||||
Files: src/mod/say/mod_say_??/mod_say_??.c
|
||||
scripts/c/socket2me/socket2me.c
|
||||
src/mod/xml_int/mod_xml_scgi/xml_scgi_server.pl
|
||||
@ -1497,18 +1484,6 @@ Copyright: 2010 Ilnitskiy Mixim (max.h323@gmail.com)
|
||||
2010 Georgiewskiy Yuriy (bottleman@icf.org.ru)
|
||||
License: MPL-1.1
|
||||
|
||||
Files: src/mod/endpoints/mod_khomp/*
|
||||
Copyright: 2007-2010 Khomp Ind. & Com.
|
||||
License: MPL-1.1 or LGPL-2.1+
|
||||
|
||||
Files: src/mod/endpoints/mod_khomp/mod_khomp.cpp
|
||||
Copyright: 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
|
||||
License: MPL-1.1
|
||||
|
||||
Files: src/mod/endpoints/mod_khomp/commons/base/atomic.hpp
|
||||
Copyright: 1998 Doug Rabson
|
||||
License: BSD-2-clause
|
||||
|
||||
Files: src/mod/languages/mod_java/modjava.c
|
||||
Copyright: 2007, Damjan Jovanovic <d a m j a n d o t j o v a t g m a i l d o t c o m>
|
||||
License: MPL-1.1
|
||||
@ -1517,22 +1492,6 @@ Files: src/mod/languages/mod_managed/*
|
||||
Copyright: 2008, Michael Giagnocavo <mgg@giagnocavo.net>
|
||||
License: MPL-1.1
|
||||
|
||||
Files: src/mod/endpoints/mod_gsmopen/gsmlib/gsmlib-1.10-patched-13ubuntu/*
|
||||
src/mod/languages/mod_lua/lua-mode.el
|
||||
libs/iksemel/ltmain.sh
|
||||
Copyright: 1995-2007 Free Software Foundation, Inc.
|
||||
License: GPL-2+
|
||||
|
||||
Files: src/mod/endpoints/mod_gsmopen/libctb-0.16/*
|
||||
Copyright: 2001-2010 Joachim Buermann
|
||||
License: wxWindows
|
||||
|
||||
Files: src/mod/endpoints/mod_gsmopen/libctb-0.16/src/win32/getopt.cpp
|
||||
Copyright: 2001 ?
|
||||
License: clueless and unacceptable
|
||||
FIXME -- this cannot go in Debian -- the license is stated as:
|
||||
(I think Open Source)
|
||||
|
||||
Files: src/mod/endpoints/mod_rtmp/libamf/src/types.[ch]
|
||||
Copyright: 2007, 2008 Marc Noirot <marc.noirot AT gmail.com>
|
||||
License: GPL-2+
|
||||
@ -1544,10 +1503,6 @@ Files: src/mod/endpoints/mod_rtmp/rtmp.c
|
||||
Copyright: 2011-2012, Barracuda Networks Inc.
|
||||
License: MPL-1.1
|
||||
|
||||
Files: src/mod/endpoints/mod_gsmopen/asterisk/celliax_spandsp.[ch]
|
||||
Copyright: 2001-2006 Steve Underwood
|
||||
License: GPL-2
|
||||
|
||||
Files: src/mod/endpoints/mod_skinny/*
|
||||
src/mod/asr_tts/mod_tts_commandline/mod_tts_commandline.c
|
||||
Copyright: 2009-2010, Mathieu Parent <math.parent@gmail.com>
|
||||
@ -1557,15 +1512,6 @@ Files: src/mod/endpoints/mod_skinny/*.p[lm]
|
||||
Copyright: 2010, Mathieu Parent <math.parent@gmail.com>
|
||||
License: Perl
|
||||
|
||||
Files: src/mod/endpoints/mod_portaudio/*
|
||||
Copyright: 1999-2000 Ross Bencina and Phil Burk
|
||||
2005-2014, Anthony Minessale II <anthm@freeswitch.org>
|
||||
License: MIT/X11 (BSD like)
|
||||
|
||||
Files: src/mod/endpoints/mod_portaudio/mod_portaudio.c
|
||||
Copyright: 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
|
||||
License: MPL-1.1
|
||||
|
||||
Files: src/mod/endpoints/mod_sofia/sip-dig.c
|
||||
Copyright: 2006 Nokia Corporation
|
||||
License: LGPL-2.1+
|
||||
@ -1606,20 +1552,11 @@ Files: libs/libcodec2/src/pack.c
|
||||
Copyright: 2010 Perens LLC <bruce@perens.com>
|
||||
License: GPL-3+
|
||||
|
||||
Files: src/mod/codecs/mod_sangoma_codec/mod_sangoma_codec.c
|
||||
src/include/switch_profile.h
|
||||
Files: src/include/switch_profile.h
|
||||
src/switch_profile.c
|
||||
Copyright: 2009,2010, Sangoma Technologies
|
||||
License: BSD-3-clause
|
||||
|
||||
Files: src/mod/codecs/mod_isac/*
|
||||
Copyright: 2011-2012 The WebRTC project authors
|
||||
License: BSD-3-clause
|
||||
|
||||
Files: src/mod/codecs/mod_isac/mod_isac.c
|
||||
Copyright: 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
|
||||
License: MPL-1.1
|
||||
|
||||
Files: libs/srtp/*
|
||||
Copyright: 2001-2006, Cisco Systems, Inc.
|
||||
2005 Ingate Systems AB
|
||||
@ -1709,27 +1646,6 @@ License: LGPL-2.1
|
||||
Files: libs/broadvoice/autogen.sh
|
||||
License: GPL-2
|
||||
|
||||
Files: libs/libzrtp/*
|
||||
Copyright: 2006-2012 Philip R. Zimmermann.
|
||||
1993-2005 Colin Plumb
|
||||
1998-2006, Dr Brian Gladman, Worcester, UK.
|
||||
2002, Bryce "Zooko" Wilcox-O'Hearn
|
||||
2010 Soft Industry
|
||||
License: AGPL-3 or MPL-1.1
|
||||
|
||||
Files: libs/libzrtp/test/cmockery/cmockery.c
|
||||
Copyright: 2008 Google Inc
|
||||
License: Apache-2.0
|
||||
|
||||
Files: libs/libzrtp/third_party/bnlib/legal.c
|
||||
libs/libzrtp/third_party/bnlib/*
|
||||
Copyright: 1993-2005 Colin Plumb
|
||||
License: GPL-2 or GPL-3 or MPL-1.1
|
||||
|
||||
Files: libs/libzrtp/third_party/bnlib/test/md5.c
|
||||
Copyright: 1995 Abandoned Colin Plumb
|
||||
License: public-domain
|
||||
|
||||
Files: libs/win32/sqlite/sqlite3.[ch]
|
||||
libs/win32/sqlite/parse.c
|
||||
Copyright: 2006 Abandoned D. Richard Hipp <drh@hwaci.com>
|
||||
|
43
Makefile.am
43
Makefile.am
@ -231,9 +231,9 @@ CORE_LIBS+=libfreeswitch_libyuv.la
|
||||
endif
|
||||
|
||||
lib_LTLIBRARIES = libfreeswitch.la
|
||||
libfreeswitch_la_CFLAGS = $(CORE_CFLAGS) $(SQLITE_CFLAGS) $(GUMBO_CFLAGS) $(FVAD_CFLAGS) $(FREETYPE_CFLAGS) $(CURL_CFLAGS) $(PCRE_CFLAGS) $(SPEEX_CFLAGS) $(LIBEDIT_CFLAGS) $(openssl_CFLAGS) $(SOFIA_SIP_CFLAGS) $(AM_CFLAGS) $(TPL_CFLAGS)
|
||||
libfreeswitch_la_CFLAGS = $(CORE_CFLAGS) $(SQLITE_CFLAGS) $(GUMBO_CFLAGS) $(FVAD_CFLAGS) $(FREETYPE_CFLAGS) $(CURL_CFLAGS) $(PCRE2_CFLAGS) $(SPEEX_CFLAGS) $(LIBEDIT_CFLAGS) $(openssl_CFLAGS) $(SOFIA_SIP_CFLAGS) $(AM_CFLAGS) $(TPL_CFLAGS)
|
||||
libfreeswitch_la_LDFLAGS = -version-info 1:0:0 $(AM_LDFLAGS) $(PLATFORM_CORE_LDFLAGS) -no-undefined
|
||||
libfreeswitch_la_LIBADD = $(CORE_LIBS) $(APR_LIBS) $(SQLITE_LIBS) $(GUMBO_LIBS) $(FVAD_LIBS) $(FREETYPE_LIBS) $(CURL_LIBS) $(PCRE_LIBS) $(SPEEX_LIBS) $(LIBEDIT_LIBS) $(SYSTEMD_LIBS) $(openssl_LIBS) $(PLATFORM_CORE_LIBS) $(TPL_LIBS) $(SPANDSP_LIBS) $(SOFIA_SIP_LIBS)
|
||||
libfreeswitch_la_LIBADD = $(CORE_LIBS) $(APR_LIBS) $(SQLITE_LIBS) $(GUMBO_LIBS) $(FVAD_LIBS) $(FREETYPE_LIBS) $(CURL_LIBS) $(PCRE2_LIBS) $(SPEEX_LIBS) $(LIBEDIT_LIBS) $(SYSTEMD_LIBS) $(openssl_LIBS) $(PLATFORM_CORE_LIBS) $(TPL_LIBS) $(SPANDSP_LIBS) $(SOFIA_SIP_LIBS)
|
||||
libfreeswitch_la_DEPENDENCIES = $(BUILT_SOURCES)
|
||||
|
||||
if HAVE_PNG
|
||||
@ -244,19 +244,6 @@ if HAVE_ODBC
|
||||
libfreeswitch_la_LDFLAGS += $(ODBC_LIB_FLAGS)
|
||||
endif
|
||||
|
||||
if ENABLE_ZRTP
|
||||
CORE_CFLAGS += -I$(switch_srcdir)/libs/libzrtp/third_party/bgaes
|
||||
CORE_CFLAGS += -I$(switch_srcdir)/libs/libzrtp/third_party/bnlib
|
||||
CORE_CFLAGS += -isystem $(switch_srcdir)/libs/libzrtp/include
|
||||
ZRTP_LDFLAGS = -L$(switch_srcdir)/libs/libzrtp/third_party/bnlib
|
||||
ZRTP_LDFLAGS += -L$(switch_srcdir)/libs/libzrtp
|
||||
ZRTP_LIBS = -lbn -lzrtp
|
||||
libfreeswitch_la_LDFLAGS += $(ZRTP_LDFLAGS)
|
||||
libfreeswitch_la_LIBADD += $(ZRTP_LIBS)
|
||||
CORE_LIBS += libs/libzrtp/libzrtp.a
|
||||
LIBS += libs/libzrtp/third_party/bnlib/libbn.a
|
||||
endif
|
||||
|
||||
library_includetestdir = $(includedir)/test
|
||||
library_includetest_HEADERS = \
|
||||
src/include/test/switch_fct.h \
|
||||
@ -407,7 +394,8 @@ libfreeswitch_la_SOURCES = \
|
||||
libs/miniupnpc/minissdpc.c \
|
||||
libs/miniupnpc/upnperrors.c \
|
||||
libs/libnatpmp/natpmp.c \
|
||||
libs/libnatpmp/getgateway.c
|
||||
libs/libnatpmp/getgateway.c \
|
||||
src/switch_uuidv7.c
|
||||
|
||||
if ENABLE_CPP
|
||||
libfreeswitch_la_SOURCES += src/switch_cpp.cpp
|
||||
@ -570,9 +558,6 @@ src/include/switch_version.h: src/include/switch_version.h.in Makefile $(switch_
|
||||
libs/libedit/src/.libs/libedit.a:
|
||||
cd libs/libedit && $(MAKE)
|
||||
|
||||
libs/libzrtp/libzrtp.a:
|
||||
cd libs/libzrtp && $(MAKE)
|
||||
|
||||
libs/libvpx/Makefile: libs/libvpx/.update
|
||||
cd libs/libvpx && CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS) $(VISIBILITY_FLAG)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" ./configure --enable-pic --disable-docs --disable-examples --disable-install-bins --disable-install-srcs --disable-unit-tests --size-limit=16384x16384
|
||||
|
||||
@ -604,10 +589,6 @@ libs/srtp/libsrtp.la: libs/srtp libs/srtp/.update $(SRTP_SRC)
|
||||
##
|
||||
## helper targets
|
||||
##
|
||||
yaml-files:
|
||||
@echo `mkdir $(DESTDIR)$(confdir)/yaml 2>/dev/null`
|
||||
$(INSTALL) -m 644 $(switch_srcdir)/conf/default/yaml/*.yaml $(DESTDIR)$(confdir)/yaml
|
||||
|
||||
vm-sync:
|
||||
test -d $(DESTDIR)$(confdir) || $(mkinstalldirs) $(DESTDIR)$(confdir)
|
||||
test -d $(DESTDIR)$(confdir)/lang || $(mkinstalldirs) $(DESTDIR)$(confdir)/lang
|
||||
@ -684,9 +665,6 @@ nodepends: .nodepends
|
||||
yesdepends:
|
||||
rm .nodepends
|
||||
|
||||
iksemel-dep:
|
||||
make -C src/mod/formats/mod_ssml deps
|
||||
|
||||
core: $(switch_builddir)/modules.conf src/include/switch_version.h $(CORE_LIBS)
|
||||
$(MAKE) $(AM_MAKEFLAGS) libfreeswitch.la
|
||||
|
||||
@ -729,7 +707,7 @@ pristine:
|
||||
git clean -fdx
|
||||
git reset --hard
|
||||
|
||||
update-clean: clean python-reconf python3-reconf
|
||||
update-clean: clean python3-reconf
|
||||
cd libs/esl && $(MAKE) clean
|
||||
cd libs/srtp && $(MAKE) clean
|
||||
|
||||
@ -742,10 +720,6 @@ sndfile-reconf:
|
||||
cd libs/libsndfile && ./config.status --recheck
|
||||
cd libs/libsndfile && ./config.status
|
||||
|
||||
python-reconf:
|
||||
rm -f src/mod/languages/mod_python/Makefile
|
||||
./config.status
|
||||
|
||||
python3-reconf:
|
||||
rm -f src/mod/languages/mod_python3/Makefile
|
||||
./config.status
|
||||
@ -760,13 +734,6 @@ srtp-reconf:
|
||||
cd libs/srtp && sh ./config.status --recheck
|
||||
cd libs/srtp && sh ./config.status
|
||||
|
||||
|
||||
iks-reconf:
|
||||
cd libs/iksemel && $(MAKE) clean
|
||||
cd libs/iksemel && autoreconf -fi
|
||||
cd libs/iksemel && sh ./configure.gnu $(MY_DEFAULT_ARGS)
|
||||
$(MAKE) mod_ssml-clean
|
||||
|
||||
cluecon:
|
||||
@clear
|
||||
@echo Thank you for updating. This is going to take a while so relax.
|
||||
|
15
README.md
15
README.md
@ -8,7 +8,7 @@ Visit [https://signalwire.com](https://signalwire.com/) or https://github.com/
|
||||
|
||||
FreeSWITCH is available on [Github](https://github.com/signalwire/freeswitch) in source code format. You can checkout the development branch and build for many popular platforms including Linux, Windows, MacOSX and BSD. There is an issue tracker and pull request system available as part of the repo online.
|
||||
|
||||
See [https://freeswitch.com/#getting-started](https://freeswitch.com/#getting-started) for more detailed instructions.
|
||||
See https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/ for more detailed instructions.
|
||||
|
||||
## Additional Help
|
||||
|
||||
@ -33,20 +33,25 @@ The main index for documentation is available at:
|
||||
|
||||
Step by step tutorials to install FreeSWITCH from packages:
|
||||
|
||||
* [Debian](https://freeswitch.org/confluence/display/FREESWITCH/Debian) [<b>Recommended</b>]
|
||||
* [Using FSGET](/scripts/packaging) [<b>Recommended</b>]
|
||||
* [Debian](https://freeswitch.org/confluence/display/FREESWITCH/Debian)
|
||||
* [Raspberry Pi](https://freeswitch.org/confluence/display/FREESWITCH/Raspberry+Pi)
|
||||
* [CentOS 7](https://freeswitch.org/confluence/display/FREESWITCH/CentOS+7+and+RHEL+7)
|
||||
|
||||
### Build from source
|
||||
|
||||
Example Dockerfiles to build FreeSWITCH and dependencies from source:
|
||||
* https://github.com/signalwire/freeswitch/tree/dockerfile/docker/examples
|
||||
* https://github.com/signalwire/freeswitch/tree/master/docker/examples
|
||||
|
||||
Step by step tutorials to build FreeSWITCH with provided dependency packages:
|
||||
* [Debian](https://freeswitch.org/confluence/display/FREESWITCH/Debian#Debian-buildfromsource) [<b>Recommended</b>]
|
||||
* [Raspberry Pi](https://freeswitch.org/confluence/display/FREESWITCH/Raspberry+Pi)
|
||||
* [CentOS 7](https://freeswitch.org/confluence/display/FREESWITCH/CentOS+7+and+RHEL+7)
|
||||
|
||||
### How to build Debian packages
|
||||
|
||||
* [Using FSDEB](/scripts/packaging/build)
|
||||
|
||||
## Downloads
|
||||
|
||||
* [Tarballs](https://files.freeswitch.org/releases/freeswitch/)
|
||||
@ -67,8 +72,8 @@ This is the place to get answers faster and chat with other users in real time.
|
||||
Slack Community:
|
||||
* https://signalwire.community/
|
||||
|
||||
Mailing list:
|
||||
Mailing list (ARCHIVED):
|
||||
|
||||
* http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
|
||||
* http://lists.freeswitch.org/pipermail/freeswitch-users/
|
||||
|
||||
**Thank you for using FreeSWITCH!**
|
||||
|
5
SECURITY.md
Normal file
5
SECURITY.md
Normal file
@ -0,0 +1,5 @@
|
||||
# Security Policy
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Send an e-mail to security@signalwire.com to report a vulnerability. If accepted, we'll create a security advisory and add you and your team as collaborators. Please allow our team sufficient time to resolve the vulnerability before disclosing it; we'll remain in contact about the fix and may ask for your assistance to verify it is resolved.
|
@ -13,4 +13,3 @@ m4_include([build/config/sac-pkg-config.m4])
|
||||
m4_include([build/config/sac-openssl.m4])
|
||||
m4_include([build/config/sched_setaffinity.m4])
|
||||
m4_include([libs/apr/build/apr_common.m4])
|
||||
m4_include([libs/iksemel/build/libgnutls.m4])
|
||||
|
@ -10,7 +10,7 @@ BGJOB=false
|
||||
VERBOSE=false
|
||||
BASEDIR=`pwd`;
|
||||
LIBDIR=${BASEDIR}/libs;
|
||||
SUBDIRS="apr libzrtp iksemel srtp fs";
|
||||
SUBDIRS="apr srtp fs";
|
||||
|
||||
while getopts 'jhd:v' o; do
|
||||
case "$o" in
|
||||
@ -172,10 +172,6 @@ bootstrap_apr() {
|
||||
|
||||
}
|
||||
|
||||
bootstrap_libzrtp() {
|
||||
(cd ${LIBDIR}/libzrtp && ./bootstrap.sh)
|
||||
}
|
||||
|
||||
# Libs automake automation function
|
||||
libbootstrap() {
|
||||
i=$1
|
||||
@ -260,7 +256,7 @@ bootstrap_libs_post() {
|
||||
bootstrap_libs() {
|
||||
for i in ${SUBDIRS}; do
|
||||
case "$i" in
|
||||
apr|fs|libzrtp)
|
||||
apr|fs)
|
||||
${BGJOB} && wait
|
||||
bootstrap_$i
|
||||
continue
|
||||
|
@ -13,7 +13,7 @@ DOWNLOAD=http://files.freeswitch.org/downloads/libs
|
||||
JPEG=v8d
|
||||
OPENSSL=1.0.1l
|
||||
SQLITE=autoconf-3080403
|
||||
PCRE=8.35
|
||||
PCRE2=10.42
|
||||
CURL=7.40.0
|
||||
SPEEX=1.2rc1
|
||||
LIBEDIT=20140618-3.1
|
||||
@ -45,7 +45,7 @@ has-git:
|
||||
@git --version || (echo "please install git by running 'make install-git'" && false)
|
||||
|
||||
clean:
|
||||
@rm -rf openssl* ldns* jpeg* pcre* perl* pkg-config* speex* sqlite* libedit* curl* *~
|
||||
@rm -rf openssl* ldns* jpeg* pcre2* perl* pkg-config* speex* sqlite* libedit* curl* *~
|
||||
(cd freeswitch.git && git clean -fdx && git reset --hard HEAD && git pull)
|
||||
|
||||
libjpeg: jpeg-8d/.done
|
||||
@ -66,9 +66,9 @@ sqlite-$(SQLITE):
|
||||
(test -d $@) || (wget -4 -O $@.tar.gz $(DOWNLOAD)/$@.tar.gz && tar zxfv $@.tar.gz)
|
||||
(cd $@ && ./configure --prefix=$(PREFIX) && make && sudo make install && touch .done_sqlite && touch .done)
|
||||
|
||||
pcre: pcre-$(PCRE)/.done
|
||||
pcre-$(PCRE)/.done: pcre-$(PCRE)
|
||||
pcre-$(PCRE):
|
||||
pcre2: pcre2-$(PCRE2)/.done
|
||||
pcre2-$(PCRE2)/.done: pcre2-$(PCRE2)
|
||||
pcre2-$(PCRE2):
|
||||
(test -d $@) || (wget -4 -O $@.tar.gz $(DOWNLOAD)/$@.tar.gz && tar zxfv $@.tar.gz)
|
||||
(cd $@ && ./configure --prefix=$(PREFIX) && make && sudo make install && touch .done)
|
||||
|
||||
@ -96,4 +96,4 @@ ldns-$(LDNS):
|
||||
(test -d $@) || (wget -4 -O $@.tar.gz $(DOWNLOAD)/$@.tar.gz && tar zxfv $@.tar.gz)
|
||||
(cd $@ && ./configure --with-ssl=$(PREFIX) --prefix=$(PREFIX) && make && sudo make install && touch .done)
|
||||
|
||||
deps: libjpeg openssl sqlite pcre curl speex libedit ldns
|
||||
deps: libjpeg openssl sqlite pcre2 curl speex libedit ldns
|
||||
|
@ -6,8 +6,8 @@
|
||||
# in that same directory.
|
||||
#
|
||||
#
|
||||
RPMS=git gcc-c++ autoconf automake libtool wget python ncurses-devel zlib-devel libjpeg-devel openssl-devel e2fsprogs-devel sqlite-devel libcurl-devel pcre-devel speex-devel ldns-devel libedit-devel
|
||||
DEBS=git build-essential automake autoconf 'libtool-bin|libtool' wget python uuid-dev zlib1g-dev 'libjpeg8-dev|libjpeg62-turbo-dev' libncurses5-dev libssl-dev libpcre3-dev libcurl4-openssl-dev libldns-dev libedit-dev libspeexdsp-dev libspeexdsp-dev libsqlite3-dev perl libgdbm-dev libdb-dev bison libvlc-dev pkg-config
|
||||
RPMS=git gcc-c++ autoconf automake libtool wget ncurses-devel zlib-devel libjpeg-devel openssl-devel e2fsprogs-devel sqlite-devel libcurl-devel pcre2-devel speex-devel ldns-devel libedit-devel
|
||||
DEBS=git build-essential automake autoconf 'libtool-bin|libtool' wget uuid-dev zlib1g-dev 'libjpeg8-dev|libjpeg62-turbo-dev' libncurses5-dev libssl-dev libpcre2-dev libcurl4-openssl-dev libldns-dev libedit-dev libspeexdsp-dev libspeexdsp-dev libsqlite3-dev perl libgdbm-dev libdb-dev bison libvlc-dev pkg-config
|
||||
|
||||
freeswitch: deps has-git freeswitch.git/Makefile
|
||||
cd freeswitch.git && make
|
||||
|
@ -7,7 +7,7 @@
|
||||
#
|
||||
#
|
||||
|
||||
PKG=rsync-3.1.0 git automake-1.14.1 autoconf-2.69p1 libtool gmake bzip2 jpeg wget pcre speex libldns
|
||||
PKG=rsync-3.1.0 git automake-1.14.1 autoconf-2.69p1 libtool gmake bzip2 jpeg wget pcre2 speex libldns
|
||||
PREFIX=/usr/local/freeswitch
|
||||
DOWNLOAD=http://files.freeswitch.org/downloads/libs
|
||||
OPENSSL=1.0.1j
|
||||
|
@ -12,7 +12,7 @@ DOWNLOAD=http://files.freeswitch.org/downloads/libs
|
||||
JP=v8d
|
||||
SSL=1.0.1j
|
||||
SQLITE=autoconf-3080403
|
||||
PCRE=8.35
|
||||
PCRE2=10.42
|
||||
CURL=7.35.0
|
||||
SPEEX=1.2rc1
|
||||
LIBEDIT=20140618-3.1
|
||||
@ -43,7 +43,7 @@ has-git:
|
||||
@git --version || (echo "please install git by running 'gmake install-git'" && false)
|
||||
|
||||
clean:
|
||||
@rm -rf openssl* ldns* jpeg* pcre* perl* pkg-config* speex* sqlite* libedit* curl* *~
|
||||
@rm -rf openssl* ldns* jpeg* pcre2* perl* pkg-config* speex* sqlite* libedit* curl* *~
|
||||
(cd freeswitch.git && git clean -fdx && git reset --hard HEAD && git pull)
|
||||
|
||||
libjpeg: jpeg-8d/.done
|
||||
@ -64,9 +64,9 @@ sqlite-$(SQLITE):
|
||||
(test -d $@) || (wget -4 -O $@.tar.gz $(DOWNLOAD)/$@.tar.gz && tar zxfv $@.tar.gz)
|
||||
(cd $@ && CFLAGS=-m64 LDFLAGS=-m64 ./configure --prefix=$(PREFIX) && gmake && sudo gmake install && touch .done)
|
||||
|
||||
pcre: pcre-$(PCRE)/.done
|
||||
pcre-$(PCRE)/.done: pcre-$(PCRE)
|
||||
pcre-$(PCRE):
|
||||
pcre2: pcre2-$(PCRE2)/.done
|
||||
pcre2-$(PCRE2)/.done: pcre2-$(PCRE2)
|
||||
pcre2-$(PCRE2):
|
||||
(test -d $@) || (wget -4 -O $@.tar.gz $(DOWNLOAD)/$@.tar.gz && tar zxfv $@.tar.gz)
|
||||
(cd $@ && CXXFLAGS=-m64 CFLAGS=-m64 LDFLAGS=-m64 ./configure --prefix=$(PREFIX) && gmake && sudo gmake install && touch .done)
|
||||
|
||||
@ -107,4 +107,4 @@ perl-$(PERL):
|
||||
(test -d $@) || (wget -4 -O $@.tar.gz $(DOWNLOAD)/$@.tar.gz && tar zxfv $@.tar.gz)
|
||||
(cd $@ && CFLAGS=-m64 LDFLAGS=-m64 ./configure.gnu -Dcc=gcc --prefix=$(PREFIX) && gmake && sudo gmake install && touch .done)
|
||||
|
||||
deps: has-git libjpeg openssl sqlite pcre curl speex libedit ldns pkg-config perl
|
||||
deps: has-git libjpeg openssl sqlite pcre2 curl speex libedit ldns pkg-config perl
|
||||
|
@ -1,8 +0,0 @@
|
||||
#!/bin/sh
|
||||
tar zxf libzrtp-0.81.514.tar.gz
|
||||
cd libzrtp-0.81.514
|
||||
patch -p1 < ../patches/zrtp_bnlib_pic.diff
|
||||
cd projects/gnu/
|
||||
./configure CFLAGS="-fPIC"
|
||||
make
|
||||
make install
|
@ -17,5 +17,4 @@ extraclean-modules: extraclean
|
||||
|
||||
print_tests:
|
||||
@set +e; \
|
||||
test -z "$(TESTS)" || for i in $(TESTS); do echo $(subdir)/$$i; done;
|
||||
|
||||
test -z "$(TESTS)" || for i in $(TESTS); do echo $(subdir)/$$i; done; echo;
|
||||
|
33
build/modules.conf.in
Normal file → Executable file
33
build/modules.conf.in
Normal file → Executable file
@ -1,4 +1,3 @@
|
||||
#applications/mod_abstraction
|
||||
applications/mod_av
|
||||
#applications/mod_avmd
|
||||
#applications/mod_bert
|
||||
@ -26,29 +25,18 @@ applications/mod_hash
|
||||
#applications/mod_hiredis
|
||||
applications/mod_httapi
|
||||
#applications/mod_http_cache
|
||||
#applications/mod_ladspa
|
||||
#applications/mod_lcr
|
||||
#applications/mod_memcache
|
||||
#applications/mod_mongo
|
||||
#applications/mod_mp4
|
||||
#applications/mod_mp4v2
|
||||
#applications/mod_nibblebill
|
||||
#applications/mod_oreka
|
||||
#applications/mod_osp
|
||||
#applications/mod_prefix
|
||||
#applications/mod_rad_auth
|
||||
#applications/mod_redis
|
||||
#applications/mod_rss
|
||||
applications/mod_signalwire
|
||||
applications/mod_sms
|
||||
#applications/mod_sms_flowroute
|
||||
#applications/mod_snapshot
|
||||
#applications/mod_snom
|
||||
#applications/mod_sonar
|
||||
#applications/mod_soundtouch
|
||||
applications/mod_spandsp
|
||||
#applications/mod_spy
|
||||
#applications/mod_stress
|
||||
applications/mod_test
|
||||
#applications/mod_translate
|
||||
applications/mod_valet_parking
|
||||
@ -56,7 +44,6 @@ applications/mod_valet_parking
|
||||
#applications/mod_vmd
|
||||
applications/mod_voicemail
|
||||
#applications/mod_voicemail_ivr
|
||||
#asr_tts/mod_cepstral
|
||||
#asr_tts/mod_flite
|
||||
#asr_tts/mod_pocketsphinx
|
||||
#asr_tts/mod_tts_commandline
|
||||
@ -64,21 +51,14 @@ codecs/mod_amr
|
||||
#codecs/mod_amrwb
|
||||
codecs/mod_b64
|
||||
#codecs/mod_bv
|
||||
#codecs/mod_clearmode
|
||||
#codecs/mod_codec2
|
||||
#codecs/mod_com_g729
|
||||
#codecs/mod_dahdi_codec
|
||||
codecs/mod_g723_1
|
||||
codecs/mod_g729
|
||||
codecs/mod_h26x
|
||||
#codecs/mod_ilbc
|
||||
#codecs/mod_isac
|
||||
#codecs/mod_mp4v
|
||||
codecs/mod_opus
|
||||
#codecs/mod_sangoma_codec
|
||||
#codecs/mod_silk
|
||||
#codecs/mod_siren
|
||||
#codecs/mod_theora
|
||||
#databases/mod_mariadb
|
||||
databases/mod_pgsql
|
||||
dialplans/mod_dialplan_asterisk
|
||||
@ -86,12 +66,9 @@ dialplans/mod_dialplan_asterisk
|
||||
dialplans/mod_dialplan_xml
|
||||
#directories/mod_ldap
|
||||
#endpoints/mod_alsa
|
||||
#endpoints/mod_gsmopen
|
||||
#endpoints/mod_h323
|
||||
#endpoints/mod_khomp
|
||||
endpoints/mod_loopback
|
||||
#endpoints/mod_opal
|
||||
#endpoints/mod_portaudio
|
||||
endpoints/mod_rtc
|
||||
#endpoints/mod_rtmp
|
||||
endpoints/mod_skinny
|
||||
@ -108,22 +85,16 @@ event_handlers/mod_event_socket
|
||||
#event_handlers/mod_fail2ban
|
||||
#event_handlers/mod_format_cdr
|
||||
#event_handlers/mod_json_cdr
|
||||
#event_handlers/mod_radius_cdr
|
||||
#event_handlers/mod_odbc_cdr
|
||||
#event_handlers/mod_kazoo
|
||||
#event_handlers/mod_rayo
|
||||
#event_handlers/mod_smpp
|
||||
#event_handlers/mod_snmp
|
||||
#event_handlers/mod_event_zmq
|
||||
#formats/mod_imagick
|
||||
formats/mod_local_stream
|
||||
formats/mod_native_file
|
||||
formats/mod_png
|
||||
#formats/mod_portaudio_stream
|
||||
#formats/mod_shell_stream
|
||||
#formats/mod_shout
|
||||
formats/mod_sndfile
|
||||
#formats/mod_ssml
|
||||
formats/mod_tone_stream
|
||||
#formats/mod_vlc
|
||||
#formats/mod_opusfile
|
||||
@ -132,15 +103,12 @@ formats/mod_tone_stream
|
||||
languages/mod_lua
|
||||
#languages/mod_managed
|
||||
#languages/mod_perl
|
||||
#languages/mod_python
|
||||
#languages/mod_python3
|
||||
#languages/mod_v8
|
||||
#languages/mod_yaml
|
||||
loggers/mod_console
|
||||
#loggers/mod_graylog2
|
||||
loggers/mod_logfile
|
||||
loggers/mod_syslog
|
||||
#loggers/mod_raven
|
||||
#say/mod_say_de
|
||||
say/mod_say_en
|
||||
#say/mod_say_es
|
||||
@ -164,7 +132,6 @@ say/mod_say_en
|
||||
xml_int/mod_xml_cdr
|
||||
#xml_int/mod_xml_curl
|
||||
#xml_int/mod_xml_ldap
|
||||
#xml_int/mod_xml_radius
|
||||
xml_int/mod_xml_rpc
|
||||
xml_int/mod_xml_scgi
|
||||
|
||||
|
28
build/modules.conf.most
Normal file → Executable file
28
build/modules.conf.most
Normal file → Executable file
@ -1,4 +1,3 @@
|
||||
applications/mod_abstraction
|
||||
applications/mod_av
|
||||
applications/mod_avmd
|
||||
applications/mod_bert
|
||||
@ -26,27 +25,18 @@ applications/mod_hash
|
||||
applications/mod_hiredis
|
||||
applications/mod_httapi
|
||||
applications/mod_http_cache
|
||||
#applications/mod_ladspa
|
||||
applications/mod_lcr
|
||||
applications/mod_memcache
|
||||
applications/mod_mongo
|
||||
applications/mod_mp4
|
||||
applications/mod_nibblebill
|
||||
applications/mod_oreka
|
||||
#applications/mod_osp
|
||||
applications/mod_prefix
|
||||
#applications/mod_rad_auth
|
||||
applications/mod_redis
|
||||
applications/mod_rss
|
||||
applications/mod_signalwire
|
||||
applications/mod_sms
|
||||
applications/mod_snapshot
|
||||
applications/mod_snom
|
||||
applications/mod_sonar
|
||||
applications/mod_soundtouch
|
||||
applications/mod_spandsp
|
||||
applications/mod_spy
|
||||
applications/mod_stress
|
||||
applications/mod_test
|
||||
applications/mod_translate
|
||||
applications/mod_valet_parking
|
||||
@ -54,7 +44,6 @@ applications/mod_video_filter
|
||||
applications/mod_vmd
|
||||
applications/mod_voicemail
|
||||
applications/mod_voicemail_ivr
|
||||
#asr_tts/mod_cepstral
|
||||
asr_tts/mod_flite
|
||||
asr_tts/mod_pocketsphinx
|
||||
asr_tts/mod_tts_commandline
|
||||
@ -64,18 +53,12 @@ codecs/mod_b64
|
||||
codecs/mod_bv
|
||||
codecs/mod_codec2
|
||||
#codecs/mod_com_g729
|
||||
codecs/mod_dahdi_codec
|
||||
codecs/mod_g723_1
|
||||
codecs/mod_g729
|
||||
codecs/mod_h26x
|
||||
codecs/mod_ilbc
|
||||
codecs/mod_isac
|
||||
codecs/mod_mp4v
|
||||
codecs/mod_opus
|
||||
codecs/mod_sangoma_codec
|
||||
codecs/mod_silk
|
||||
codecs/mod_siren
|
||||
codecs/mod_theora
|
||||
#databases/mod_mariadb
|
||||
databases/mod_pgsql
|
||||
dialplans/mod_dialplan_asterisk
|
||||
@ -83,12 +66,9 @@ dialplans/mod_dialplan_directory
|
||||
dialplans/mod_dialplan_xml
|
||||
directories/mod_ldap
|
||||
#endpoints/mod_alsa
|
||||
#endpoints/mod_gsmopen
|
||||
#endpoints/mod_h323
|
||||
#endpoints/mod_khomp
|
||||
endpoints/mod_loopback
|
||||
#endpoints/mod_opal
|
||||
endpoints/mod_portaudio
|
||||
endpoints/mod_rtc
|
||||
endpoints/mod_rtmp
|
||||
endpoints/mod_skinny
|
||||
@ -104,21 +84,15 @@ event_handlers/mod_event_multicast
|
||||
event_handlers/mod_event_socket
|
||||
event_handlers/mod_format_cdr
|
||||
event_handlers/mod_json_cdr
|
||||
event_handlers/mod_kazoo
|
||||
#event_handlers/mod_radius_cdr
|
||||
event_handlers/mod_odbc_cdr
|
||||
event_handlers/mod_rayo
|
||||
event_handlers/mod_snmp
|
||||
#event_handlers/mod_event_zmq
|
||||
formats/mod_imagick
|
||||
formats/mod_local_stream
|
||||
formats/mod_native_file
|
||||
formats/mod_png
|
||||
formats/mod_portaudio_stream
|
||||
formats/mod_shell_stream
|
||||
formats/mod_shout
|
||||
formats/mod_sndfile
|
||||
formats/mod_ssml
|
||||
formats/mod_tone_stream
|
||||
formats/mod_vlc
|
||||
languages/mod_basic
|
||||
@ -128,7 +102,6 @@ languages/mod_managed
|
||||
languages/mod_perl
|
||||
languages/mod_python3
|
||||
#languages/mod_v8
|
||||
languages/mod_yaml
|
||||
loggers/mod_console
|
||||
loggers/mod_graylog2
|
||||
loggers/mod_logfile
|
||||
@ -156,6 +129,5 @@ timers/mod_timerfd
|
||||
xml_int/mod_xml_cdr
|
||||
xml_int/mod_xml_curl
|
||||
xml_int/mod_xml_ldap
|
||||
#xml_int/mod_xml_radius
|
||||
xml_int/mod_xml_rpc
|
||||
xml_int/mod_xml_scgi
|
||||
|
@ -1 +1 @@
|
||||
1.10.8-dev
|
||||
1.10.13-dev
|
||||
|
@ -8,11 +8,6 @@ make swigclean
|
||||
make mod_perl_wrap.cpp
|
||||
cd ../../../..
|
||||
|
||||
cd src/mod/languages/mod_python
|
||||
make swigclean
|
||||
make mod_python_wrap.cpp
|
||||
cd ../../../..
|
||||
|
||||
cd src/mod/languages/mod_python3
|
||||
make swigclean
|
||||
make mod_python_wrap.cpp
|
||||
|
255
ci.sh
Executable file
255
ci.sh
Executable file
@ -0,0 +1,255 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
### shfmt -w -s -ci -sr -kp -fn ci.sh
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# CI Script
|
||||
# Helper script for running CI jobs
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
# Function to display usage information
|
||||
display_usage()
|
||||
{
|
||||
echo "Usage: $0 -t <type> -a <action> -c <code> -p <path>"
|
||||
echo "Options:"
|
||||
echo " -t Type (unit-test, scan-build)"
|
||||
echo " -a Action (configure, build, install, validate)"
|
||||
echo " -c Code (sofia-sip, freeswitch)"
|
||||
echo " -p Path to code"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Parse command line arguments
|
||||
while getopts "t:p:a:c:h" opt; do
|
||||
case $opt in
|
||||
t) TYPE="$OPTARG" ;;
|
||||
a) ACTION="$OPTARG" ;;
|
||||
c) CODE="$OPTARG" ;;
|
||||
p) PATH_TO_CODE="$OPTARG" ;;
|
||||
h) display_usage ;;
|
||||
?) display_usage ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Function to handle sofia-sip configuration
|
||||
configure_sofia_sip()
|
||||
{
|
||||
./autogen.sh && ./configure.gnu || exit 1
|
||||
}
|
||||
|
||||
# Function to handle sofia-sip build
|
||||
build_sofia_sip()
|
||||
{
|
||||
make -j$(nproc) || exit 1
|
||||
}
|
||||
|
||||
# Function to handle sofia-sip installation
|
||||
install_sofia_sip()
|
||||
{
|
||||
make install || exit 1
|
||||
}
|
||||
|
||||
# Function to handle sofia-sip validation
|
||||
validate_sofia_sip()
|
||||
{
|
||||
exit 0
|
||||
}
|
||||
|
||||
# Function to handle freeswitch configuration
|
||||
configure_freeswitch()
|
||||
{
|
||||
local type="$1"
|
||||
|
||||
./bootstrap.sh -j || exit 1
|
||||
|
||||
case "$type" in
|
||||
"unit-test")
|
||||
echo 'codecs/mod_openh264' >> modules.conf
|
||||
sed -i \
|
||||
-e '/applications\/mod_http_cache/s/^#//g' \
|
||||
-e '/formats\/mod_opusfile/s/^#//g' \
|
||||
-e '/languages\/mod_lua/s/^#//g' \
|
||||
modules.conf
|
||||
|
||||
export ASAN_OPTIONS=log_path=stdout:disable_coredump=0:unmap_shadow_on_exit=1:fast_unwind_on_malloc=0
|
||||
|
||||
./configure \
|
||||
--enable-address-sanitizer \
|
||||
--enable-fake-dlclose ||
|
||||
exit 1
|
||||
|
||||
;;
|
||||
"scan-build")
|
||||
cp build/modules.conf.most modules.conf
|
||||
|
||||
# "Enable"/"Uncomment" mods
|
||||
echo 'codecs/mod_openh264' >> modules.conf
|
||||
sed -i \
|
||||
-e '/mod_mariadb/s/^#//g' \
|
||||
-e '/mod_v8/s/^#//g' \
|
||||
modules.conf
|
||||
|
||||
# "Disable"/"Comment out" mods
|
||||
sed -i \
|
||||
-e '/mod_ilbc/s/^/#/g' \
|
||||
-e '/mod_mongo/s/^/#/g' \
|
||||
-e '/mod_pocketsphinx/s/^/#/g' \
|
||||
-e '/mod_siren/s/^/#/g' \
|
||||
-e '/mod_avmd/s/^/#/g' \
|
||||
-e '/mod_basic/s/^/#/g' \
|
||||
-e '/mod_cdr_mongodb/s/^/#/g' \
|
||||
-e '/mod_cv/s/^/#/g' \
|
||||
-e '/mod_erlang_event/s/^/#/g' \
|
||||
-e '/mod_perl/s/^/#/g' \
|
||||
-e '/mod_rtmp/s/^/#/g' \
|
||||
-e '/mod_unimrcp/s/^/#/g' \
|
||||
-e '/mod_xml_rpc/s/^/#/g' \
|
||||
modules.conf
|
||||
|
||||
./configure || exit 1
|
||||
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Function to handle freeswitch build
|
||||
build_freeswitch()
|
||||
{
|
||||
local type="$1"
|
||||
|
||||
set -o pipefail
|
||||
|
||||
case "$type" in
|
||||
"unit-test")
|
||||
make --no-keep-going -j$(nproc --all) |& tee ./unit-tests-build-result.txt
|
||||
build_status=${PIPESTATUS[0]}
|
||||
if [[ $build_status != "0" ]]; then
|
||||
exit $build_status
|
||||
fi
|
||||
|
||||
;;
|
||||
"scan-build")
|
||||
if ! command -v scan-build-14 > /dev/null 2>&1; then
|
||||
echo "Error: scan-build-14 command not found. Please ensure clang static analyzer is installed." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p scan-build
|
||||
|
||||
scan-build-14 \
|
||||
--force-analyze-debug-code \
|
||||
--status-bugs \
|
||||
-o ./scan-build/ \
|
||||
make --no-keep-going -j$(nproc --all) |& tee ./scan-build-result.txt
|
||||
build_status=${PIPESTATUS[0]}
|
||||
|
||||
if ! grep -siq "scan-build: No bugs found" ./scan-build-result.txt; then
|
||||
echo "scan-build: bugs found!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $build_status != "0" ]]; then
|
||||
echo "scan-build: compilation failed!"
|
||||
exit $build_status
|
||||
fi
|
||||
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Function to handle freeswitch installation
|
||||
install_freeswitch()
|
||||
{
|
||||
make install || exit 1
|
||||
}
|
||||
|
||||
# Function to handle freeswitch validation
|
||||
validate_freeswitch()
|
||||
{
|
||||
local type="$1"
|
||||
|
||||
case "$type" in
|
||||
"unit-test")
|
||||
exit 0
|
||||
;;
|
||||
"scan-build")
|
||||
REPORT_PATH=$(find scan-build* -mindepth 1 -type d)
|
||||
if [ -n "$REPORT_PATH" ]; then
|
||||
echo "Found analysis report at: $REPORT_PATH"
|
||||
|
||||
if command -v html2text > /dev/null 2>&1; then
|
||||
echo "Report contents:"
|
||||
html2text "$REPORT_PATH"/*.html || true
|
||||
fi
|
||||
|
||||
echo "Number of issues found:"
|
||||
grep -c "<!--BUGDESC" "$REPORT_PATH"/*.html || true
|
||||
|
||||
exit $([ -d "$REPORT_PATH" ])
|
||||
else
|
||||
echo "No analysis report found"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Change to the code directory
|
||||
if [ -n "$PATH_TO_CODE" ]; then
|
||||
cd "$PATH_TO_CODE" || exit 1
|
||||
fi
|
||||
|
||||
# Execute appropriate flow based on code, type, and action
|
||||
case "$CODE" in
|
||||
"sofia-sip")
|
||||
case "$ACTION" in
|
||||
"configure")
|
||||
configure_sofia_sip "$TYPE"
|
||||
;;
|
||||
"build")
|
||||
build_sofia_sip "$TYPE"
|
||||
;;
|
||||
"install")
|
||||
install_sofia_sip "$TYPE"
|
||||
;;
|
||||
"validate")
|
||||
validate_sofia_sip "$TYPE"
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
"freeswitch")
|
||||
case "$ACTION" in
|
||||
"configure")
|
||||
configure_freeswitch "$TYPE"
|
||||
;;
|
||||
"build")
|
||||
build_freeswitch "$TYPE"
|
||||
;;
|
||||
"install")
|
||||
install_freeswitch "$TYPE"
|
||||
;;
|
||||
"validate")
|
||||
validate_freeswitch "$TYPE"
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
@ -1,33 +0,0 @@
|
||||
<configuration name="portaudio.conf" description="Soundcard Endpoint">
|
||||
<settings>
|
||||
<!-- indev, outdev, ringdev:
|
||||
partial case sensitive string match on something in the name
|
||||
or the device number prefixed with # eg "#1" (or blank for default) -->
|
||||
|
||||
<!-- device to use for input -->
|
||||
<param name="indev" value=""/>
|
||||
<!-- device to use for output -->
|
||||
<param name="outdev" value=""/>
|
||||
|
||||
<!--device to use for inbound ring -->
|
||||
<!--<param name="ringdev" value=""/>-->
|
||||
<!--File to play as the ring sound -->
|
||||
<!--<param name="ring-file" value="/sounds/ring.wav"/>-->
|
||||
<!--Number of seconds to pause between rings -->
|
||||
<!--<param name="ring-interval" value="5"/>-->
|
||||
|
||||
<!--file to play when calls are on hold-->
|
||||
<!--<param name="hold-file" value="/sounds/holdmusic.wav"/>-->
|
||||
<!--Timer to use for hold music (i'd leave this one commented)-->
|
||||
<!--<param name="timer-name" value="soft"/>-->
|
||||
|
||||
<!--Default dialplan and caller-id info -->
|
||||
<param name="dialplan" value="XML"/>
|
||||
<param name="cid-name" value="$${outbound_caller_name}"/>
|
||||
<param name="cid-num" value="$${outbound_caller_id}"/>
|
||||
|
||||
<!--audio sample rate and interval -->
|
||||
<param name="sample-rate" value="8000"/>
|
||||
<param name="codec-ms" value="20"/>
|
||||
</settings>
|
||||
</configuration>
|
@ -1,7 +0,0 @@
|
||||
<configuration name="rss.conf" description="RSS Parser">
|
||||
<feeds>
|
||||
<!-- Just download the files to wherever and refer to them here -->
|
||||
<!-- <feed name="Slash Dot">/home/rss/rss.rss</feed> -->
|
||||
<!-- <feed name="News Forge">/home/rss/newsforge.rss</feed> -->
|
||||
</feeds>
|
||||
</configuration>
|
File diff suppressed because it is too large
Load Diff
10
conf/insideout/autoload_configs/modules.conf.xml
Normal file → Executable file
10
conf/insideout/autoload_configs/modules.conf.xml
Normal file → Executable file
@ -6,8 +6,6 @@
|
||||
<load module="mod_logfile"/>
|
||||
<!-- <load module="mod_syslog"/> -->
|
||||
|
||||
<!--<load module="mod_yaml"/>-->
|
||||
|
||||
<!-- Multi-Faceted -->
|
||||
<!-- mod_enum is a dialplan interface, an application interface and an api command interface -->
|
||||
<load module="mod_enum"/>
|
||||
@ -29,7 +27,6 @@
|
||||
<!-- Endpoints -->
|
||||
<!-- <load module="mod_dingaling"/> -->
|
||||
<!-- <load module="mod_iax"/> -->
|
||||
<!-- <load module="mod_portaudio"/> -->
|
||||
<!-- <load module="mod_alsa"/> -->
|
||||
<load module="mod_sofia"/>
|
||||
<load module="mod_loopback"/>
|
||||
@ -49,9 +46,6 @@
|
||||
<load module="mod_fsv"/>
|
||||
<!--<load module="mod_translate"/>-->
|
||||
|
||||
<!-- SNOM Module -->
|
||||
<!--<load module="mod_snom"/>-->
|
||||
|
||||
<!-- Dialplan Interfaces -->
|
||||
<!-- <load module="mod_dialplan_directory"/> -->
|
||||
<load module="mod_dialplan_xml"/>
|
||||
@ -63,7 +57,6 @@
|
||||
<load module="mod_g729"/>
|
||||
<load module="mod_amr"/>
|
||||
<!--<load module="mod_ilbc"/>-->
|
||||
<load module="mod_h26x"/>
|
||||
<!--<load module="mod_siren"/>-->
|
||||
|
||||
<!-- File Format Interfaces -->
|
||||
@ -80,7 +73,6 @@
|
||||
<!-- Languages -->
|
||||
<load module="mod_v8"/>
|
||||
<!-- <load module="mod_perl"/> -->
|
||||
<!-- <load module="mod_python"/> -->
|
||||
<!-- <load module="mod_python3"/> -->
|
||||
<!-- <load module="mod_java"/> -->
|
||||
<load module="mod_lua"/>
|
||||
@ -88,9 +80,7 @@
|
||||
<!-- ASR /TTS -->
|
||||
<!-- <load module="mod_flite"/> -->
|
||||
<!-- <load module="mod_pocketsphinx"/> -->
|
||||
<!-- <load module="mod_cepstral"/> -->
|
||||
<!-- <load module="mod_openmrcp"/> -->
|
||||
<!-- <load module="mod_rss"/> -->
|
||||
|
||||
<!-- Say -->
|
||||
<load module="mod_say_en"/>
|
||||
|
@ -1,33 +0,0 @@
|
||||
<configuration name="portaudio.conf" description="Soundcard Endpoint">
|
||||
<settings>
|
||||
<!-- indev, outdev, ringdev:
|
||||
partial case sensitive string match on something in the name
|
||||
or the device number prefixed with # eg "#1" (or blank for default) -->
|
||||
|
||||
<!-- device to use for input -->
|
||||
<param name="indev" value=""/>
|
||||
<!-- device to use for output -->
|
||||
<param name="outdev" value=""/>
|
||||
|
||||
<!--device to use for inbound ring -->
|
||||
<!--<param name="ringdev" value=""/>-->
|
||||
<!--File to play as the ring sound -->
|
||||
<!--<param name="ring-file" value="/sounds/ring.wav"/>-->
|
||||
<!--Number of seconds to pause between rings -->
|
||||
<!--<param name="ring-interval" value="5"/>-->
|
||||
|
||||
<!--file to play when calls are on hold-->
|
||||
<!--<param name="hold-file" value="/sounds/holdmusic.wav"/>-->
|
||||
<!--Timer to use for hold music (i'd leave this one commented)-->
|
||||
<!--<param name="timer-name" value="soft"/>-->
|
||||
|
||||
<!--Default dialplan and caller-id info -->
|
||||
<param name="dialplan" value="XML"/>
|
||||
<param name="cid-name" value="$${outbound_caller_name}"/>
|
||||
<param name="cid-num" value="$${outbound_caller_id}"/>
|
||||
|
||||
<!--audio sample rate and interval -->
|
||||
<param name="sample-rate" value="8000"/>
|
||||
<param name="codec-ms" value="20"/>
|
||||
</settings>
|
||||
</configuration>
|
@ -1,7 +0,0 @@
|
||||
<configuration name="rss.conf" description="RSS Parser">
|
||||
<feeds>
|
||||
<!-- Just download the files to wherever and refer to them here -->
|
||||
<!-- <feed name="Slash Dot">/home/rss/rss.rss</feed> -->
|
||||
<!-- <feed name="News Forge">/home/rss/newsforge.rss</feed> -->
|
||||
</feeds>
|
||||
</configuration>
|
File diff suppressed because it is too large
Load Diff
@ -116,24 +116,6 @@
|
||||
</condition>
|
||||
</extension>
|
||||
-->
|
||||
<!--
|
||||
snom button demo, call 9000 to make button 2 mapped to transfer the current call to a conference
|
||||
-->
|
||||
|
||||
<extension name="snom-demo-2">
|
||||
<condition field="destination_number" expression="^9001$">
|
||||
<action application="eval" data="${snom_bind_key(2 off DND ${sip_from_user} ${sip_from_host} ${sofia_profile_name} message notused)}"/>
|
||||
<action application="transfer" data="3000"/>
|
||||
</condition>
|
||||
</extension>
|
||||
|
||||
<extension name="snom-demo-1">
|
||||
<condition field="destination_number" expression="^9000$">
|
||||
<!--<key> <light> <label> <user> <host> <profile> <action_name> <action>-->
|
||||
<action application="eval" data="${snom_bind_key(2 on DND ${sip_from_user} ${sip_from_host} ${sofia_profile_name} message api+uuid_transfer ${uuid} 9001)}"/>
|
||||
<action application="playback" data="$${hold_music}"/>
|
||||
</condition>
|
||||
</extension>
|
||||
|
||||
<extension name="eavesdrop">
|
||||
<condition field="destination_number" expression="^88(.*)$|^\*0(.*)$">
|
||||
|
@ -48,7 +48,6 @@
|
||||
<param name="auth-calls" value="false"/>
|
||||
<param name="rtp-timeout-sec" value="1800"/>
|
||||
<param name="inbound-late-negotiation" value="true"/>
|
||||
<param name="inbound-zrtp-passthru" value="true"/> <!-- (also enables late negotiation) -->
|
||||
<!--
|
||||
DO NOT USE HOSTNAMES, ONLY IP ADDRESSES IN THESE SETTINGS!
|
||||
-->
|
||||
|
@ -70,9 +70,6 @@
|
||||
<!-- Let calls hit the dialplan before selecting codec for the a-leg -->
|
||||
<param name="inbound-late-negotiation" value="true"/>
|
||||
|
||||
<!-- Allow ZRTP clients to negotiate end-to-end security associations (also enables late negotiation) -->
|
||||
<param name="inbound-zrtp-passthru" value="true"/>
|
||||
|
||||
<!-- this lets anything register -->
|
||||
<!-- comment the next line and uncomment one or both of the other 2 lines for call authentication -->
|
||||
<!-- <param name="accept-blind-reg" value="true"/> -->
|
||||
|
@ -106,9 +106,6 @@
|
||||
<!-- Let calls hit the dialplan before selecting codec for the a-leg -->
|
||||
<param name="inbound-late-negotiation" value="true"/>
|
||||
|
||||
<!-- Allow ZRTP clients to negotiate end-to-end security associations (also enables late negotiation) -->
|
||||
<param name="inbound-zrtp-passthru" value="true"/>
|
||||
|
||||
<!-- this lets anything register -->
|
||||
<!-- comment the next line and uncomment one or both of the other 2 lines for call authentication -->
|
||||
<!-- <param name="accept-blind-reg" value="true"/> -->
|
||||
|
@ -59,14 +59,6 @@
|
||||
G729 - G729 in passthru mode. (mod_g729)
|
||||
G723 - G723.1 in passthru mode. (mod_g723_1)
|
||||
AMR - AMR in passthru mode. (mod_amr)
|
||||
|
||||
These are the passthru video codecs: (mod_h26x)
|
||||
|
||||
H261 - H.261 Video
|
||||
H263 - H.263 Video
|
||||
H263-1998 - H.263-1998 Video
|
||||
H263-2000 - H.263-2000 Video
|
||||
H264 - H.264 Video
|
||||
|
||||
-->
|
||||
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=G722,PCMU,PCMA,GSM"/>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,41 +0,0 @@
|
||||
<configuration name="acl.conf" description="Network Lists">
|
||||
<network-lists>
|
||||
<!--
|
||||
These ACL's are automatically created on startup.
|
||||
|
||||
rfc1918.auto - RFC1918 Space
|
||||
nat.auto - RFC1918 Excluding your local lan.
|
||||
localnet.auto - ACL for your local lan.
|
||||
loopback.auto - ACL for your local lan.
|
||||
-->
|
||||
|
||||
<list name="lan" default="allow">
|
||||
<node type="deny" cidr="192.168.42.0/24"/>
|
||||
<node type="allow" cidr="192.168.42.42/32"/>
|
||||
</list>
|
||||
|
||||
<!--
|
||||
This will traverse the directory adding all users
|
||||
with the cidr= tag to this ACL, when this ACL matches
|
||||
the users variables and params apply as if they
|
||||
digest authenticated.
|
||||
-->
|
||||
<list name="domains" default="deny">
|
||||
<!-- domain= is special it scans the domain from the directory to build the ACL -->
|
||||
<node type="allow" domain="$${domain}"/>
|
||||
<!-- use cidr= if you wish to allow ip ranges to this domains acl. -->
|
||||
<!-- <node type="allow" cidr="192.168.0.0/24"/> -->
|
||||
</list>
|
||||
|
||||
<list name="rayo-clients" default="deny">
|
||||
<node type="allow" cidr="192.168.0.39/32"/>
|
||||
<node type="allow" cidr="192.168.0.59/32"/>
|
||||
</list>
|
||||
|
||||
<list name="rayo-servers" default="deny">
|
||||
<node type="allow" cidr="192.168.0.39/32"/>
|
||||
</list>
|
||||
|
||||
</network-lists>
|
||||
</configuration>
|
||||
|
@ -1,23 +0,0 @@
|
||||
<configuration name="cdr_csv.conf" description="CDR CSV Format">
|
||||
<settings>
|
||||
<!-- 'cdr-csv' will always be appended to log-base -->
|
||||
<!--<param name="log-base" value="/var/log"/>-->
|
||||
<param name="default-template" value="example"/>
|
||||
<!-- This is like the info app but after the call is hung up -->
|
||||
<!--<param name="debug" value="true"/>-->
|
||||
<param name="rotate-on-hup" value="true"/>
|
||||
<!-- may be a b or ab -->
|
||||
<param name="legs" value="a"/>
|
||||
<!-- Only log in Master.csv -->
|
||||
<!-- <param name="master-file-only" value="true"/> -->
|
||||
</settings>
|
||||
<templates>
|
||||
<template name="sql">INSERT INTO cdr VALUES ("${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}", "${accountcode}");</template>
|
||||
<template name="example">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}","${accountcode}","${read_codec}","${write_codec}"</template>
|
||||
<template name="snom">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}", "${accountcode}","${read_codec}","${write_codec}","${sip_user_agent}","${call_clientcode}","${sip_rtp_rxstat}","${sip_rtp_txstat}","${sofia_record_file}"</template>
|
||||
<template name="linksys">"${caller_id_name}","${caller_id_number}","${destination_number}","${context}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${uuid}","${bleg_uuid}","${accountcode}","${read_codec}","${write_codec}","${sip_user_agent}","${sip_p_rtp_stat}"</template>
|
||||
<template name="asterisk">"${accountcode}","${caller_id_number}","${destination_number}","${context}","${caller_id}","${channel_name}","${bridge_channel}","${last_app}","${last_arg}","${start_stamp}","${answer_stamp}","${end_stamp}","${duration}","${billsec}","${hangup_cause}","${amaflags}","${uuid}","${userfield}"</template>
|
||||
<template name="opencdrrate">"${uuid}","${signal_bond}","${direction}","${ani}","${destination_number}","${answer_stamp}","${end_stamp}","${billsec}","${accountcode}","${userfield}","${network_addr}","${regex('${original_caller_id_name}'|^.)}","${sip_gateway_name}"</template>
|
||||
</templates>
|
||||
</configuration>
|
||||
|
@ -1,214 +0,0 @@
|
||||
<!-- http://wiki.freeswitch.org/wiki/Mod_conference -->
|
||||
<!-- None of these paths are real if you want any of these options you need to really set them up -->
|
||||
<configuration name="conference.conf" description="Audio Conference">
|
||||
<!-- Advertise certain presence on startup . -->
|
||||
<advertise>
|
||||
<room name="3001@$${domain}" status="FreeSWITCH"/>
|
||||
</advertise>
|
||||
|
||||
<!-- These are the default keys that map when you do not specify a caller control group -->
|
||||
<!-- Note: none and default are reserved names for group names. Disabled if dist-dtmf member flag is set. -->
|
||||
<caller-controls>
|
||||
<group name="default">
|
||||
<control action="mute" digits="0"/>
|
||||
<control action="deaf mute" digits="*"/>
|
||||
<control action="energy up" digits="9"/>
|
||||
<control action="energy equ" digits="8"/>
|
||||
<control action="energy dn" digits="7"/>
|
||||
<control action="vol talk up" digits="3"/>
|
||||
<control action="vol talk zero" digits="2"/>
|
||||
<control action="vol talk dn" digits="1"/>
|
||||
<control action="vol listen up" digits="6"/>
|
||||
<control action="vol listen zero" digits="5"/>
|
||||
<control action="vol listen dn" digits="4"/>
|
||||
<control action="hangup" digits="#"/>
|
||||
</group>
|
||||
</caller-controls>
|
||||
|
||||
<!-- Profiles are collections of settings you can reference by name. -->
|
||||
<profiles>
|
||||
<!--If no profile is specified it will default to "default"-->
|
||||
<profile name="default">
|
||||
<!-- Directory to drop CDR's
|
||||
'auto' means $PREFIX/logs/conference_cdr/<confernece_uuid>.cdr.xml
|
||||
a non-absolute path means $PREFIX/logs/<value>/<confernece_uuid>.cdr.xml
|
||||
absolute path means <value>/<confernece_uuid>.cdr.xml
|
||||
-->
|
||||
<!-- <param name="cdr-log-dir" value="auto"/> -->
|
||||
|
||||
<!-- Domain (for presence) -->
|
||||
<param name="domain" value="$${domain}"/>
|
||||
<!-- Sample Rate-->
|
||||
<param name="rate" value="8000"/>
|
||||
<!-- Number of milliseconds per frame -->
|
||||
<param name="interval" value="20"/>
|
||||
<!-- Energy level required for audio to be sent to the other users -->
|
||||
<param name="energy-level" value="300"/>
|
||||
|
||||
<!--Can be | delim of waste|mute|deaf|dist-dtmf waste will always transmit data to each channel
|
||||
even during silence. dist-dtmf propagates dtmfs to all other members, but channel controls
|
||||
via dtmf will be disabled. -->
|
||||
<!--<param name="member-flags" value="waste"/>-->
|
||||
|
||||
<!-- Name of the caller control group to use for this profile -->
|
||||
<!-- <param name="caller-controls" value="some name"/> -->
|
||||
<!-- Name of the caller control group to use for the moderator in this profile -->
|
||||
<!-- <param name="moderator-controls" value="some name"/> -->
|
||||
<!-- TTS Engine to use -->
|
||||
<!--<param name="tts-engine" value="cepstral"/>-->
|
||||
<!-- TTS Voice to use -->
|
||||
<!--<param name="tts-voice" value="david"/>-->
|
||||
|
||||
<!-- If TTS is enabled all audio-file params beginning with -->
|
||||
<!-- 'say:' will be considered text to say with TTS -->
|
||||
<!-- Override the default path here, after which you use relative paths in the other sound params -->
|
||||
<!-- Note: The default path is the conference's first caller's sound_prefix -->
|
||||
<!--<param name="sound-prefix" value="$${sound_prefix}"/>-->
|
||||
<!-- File to play to acknowledge success -->
|
||||
<!--<param name="ack-sound" value="beep.wav"/>-->
|
||||
<!-- File to play to acknowledge failure -->
|
||||
<!--<param name="nack-sound" value="beeperr.wav"/>-->
|
||||
<!-- File to play to acknowledge muted -->
|
||||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<!-- File to play to acknowledge unmuted -->
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<!-- File to play if you are alone in the conference -->
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<!-- File to play endlessly (nobody will ever be able to talk) -->
|
||||
<!--<param name="perpetual-sound" value="perpetual.wav"/>-->
|
||||
<!-- File to play when you're alone (music on hold)-->
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<!-- File to play when you join the conference -->
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<!-- File to play when you leave the conference -->
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
<!-- File to play when you ae ejected from the conference -->
|
||||
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
|
||||
<!-- File to play when the conference is locked -->
|
||||
<param name="locked-sound" value="conference/conf-locked.wav"/>
|
||||
<!-- File to play when the conference is locked during the call-->
|
||||
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
|
||||
<!-- File to play when the conference is unlocked during the call-->
|
||||
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
|
||||
<!-- File to play to prompt for a pin -->
|
||||
<param name="pin-sound" value="conference/conf-pin.wav"/>
|
||||
<!-- File to play to when the pin is invalid -->
|
||||
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
|
||||
<!-- Conference pin -->
|
||||
<!--<param name="pin" value="12345"/>-->
|
||||
<!--<param name="moderator-pin" value="54321"/>-->
|
||||
<!-- Max number of times the user can be prompted for PIN -->
|
||||
<!--<param name="pin-retries" value="3"/>-->
|
||||
<!-- Default Caller ID Name for outbound calls -->
|
||||
<param name="caller-id-name" value="$${outbound_caller_name}"/>
|
||||
<!-- Default Caller ID Number for outbound calls -->
|
||||
<param name="caller-id-number" value="$${outbound_caller_id}"/>
|
||||
<!-- Suppress start and stop talking events -->
|
||||
<!-- <param name="suppress-events" value="start-talking,stop-talking"/> -->
|
||||
<!-- enable comfort noise generation -->
|
||||
<param name="comfort-noise" value="true"/>
|
||||
<!-- Uncomment auto-record to toggle recording every conference call. -->
|
||||
<!-- Another valid value is shout://user:pass@server.com/live.mp3 -->
|
||||
<!--
|
||||
<param name="auto-record" value="$${recordings_dir}/${conference_name}_${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
|
||||
-->
|
||||
|
||||
<!-- IVR digit machine timeouts -->
|
||||
<!-- How much to wait between DTMF digits to match caller-controls -->
|
||||
<!-- <param name="ivr-dtmf-timeout" value="500"/> -->
|
||||
<!-- How much to wait for the first DTMF, 0 forever -->
|
||||
<!-- <param name="ivr-input-timeout" value="0" /> -->
|
||||
<!-- Delay before a conference is asked to be terminated -->
|
||||
<!-- <param name="endconf-grace-time" value="120" /> -->
|
||||
<!-- Can be | delim of wait-mod|audio-always|video-bridge|video-floor-only
|
||||
wait_mod will wait until the moderator in,
|
||||
audio-always will always mix audio from all members regardless they are talking or not -->
|
||||
<!-- <param name="conference-flags" value="audio-always"/> -->
|
||||
</profile>
|
||||
|
||||
<profile name="wideband">
|
||||
<param name="domain" value="$${domain}"/>
|
||||
<param name="rate" value="16000"/>
|
||||
<param name="interval" value="20"/>
|
||||
<param name="energy-level" value="300"/>
|
||||
<!--<param name="sound-prefix" value="$${sound_prefix}"/>-->
|
||||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
|
||||
<param name="locked-sound" value="conference/conf-locked.wav"/>
|
||||
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
|
||||
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
|
||||
<param name="pin-sound" value="conference/conf-pin.wav"/>
|
||||
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
|
||||
<param name="caller-id-name" value="$${outbound_caller_name}"/>
|
||||
<param name="caller-id-number" value="$${outbound_caller_id}"/>
|
||||
<param name="comfort-noise" value="true"/>
|
||||
<!--<param name="tts-engine" value="flite"/>-->
|
||||
<!--<param name="tts-voice" value="kal16"/>-->
|
||||
</profile>
|
||||
|
||||
<profile name="ultrawideband">
|
||||
<param name="domain" value="$${domain}"/>
|
||||
<param name="rate" value="32000"/>
|
||||
<param name="interval" value="20"/>
|
||||
<param name="energy-level" value="300"/>
|
||||
<!--<param name="sound-prefix" value="$${sound_prefix}"/>-->
|
||||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
|
||||
<param name="locked-sound" value="conference/conf-locked.wav"/>
|
||||
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
|
||||
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
|
||||
<param name="pin-sound" value="conference/conf-pin.wav"/>
|
||||
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
|
||||
<param name="caller-id-name" value="$${outbound_caller_name}"/>
|
||||
<param name="caller-id-number" value="$${outbound_caller_id}"/>
|
||||
<param name="comfort-noise" value="true"/>
|
||||
<!--<param name="tts-engine" value="flite"/>-->
|
||||
<!--<param name="tts-voice" value="kal16"/>-->
|
||||
</profile>
|
||||
|
||||
<profile name="cdquality">
|
||||
<param name="domain" value="$${domain}"/>
|
||||
<param name="rate" value="48000"/>
|
||||
<param name="interval" value="10"/>
|
||||
<param name="energy-level" value="300"/>
|
||||
<!--<param name="sound-prefix" value="$${sound_prefix}"/>-->
|
||||
<param name="muted-sound" value="conference/conf-muted.wav"/>
|
||||
<param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
|
||||
<param name="alone-sound" value="conference/conf-alone.wav"/>
|
||||
<param name="moh-sound" value="$${hold_music}"/>
|
||||
<param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
|
||||
<param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
|
||||
<param name="kicked-sound" value="conference/conf-kicked.wav"/>
|
||||
<param name="locked-sound" value="conference/conf-locked.wav"/>
|
||||
<param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
|
||||
<param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
|
||||
<param name="pin-sound" value="conference/conf-pin.wav"/>
|
||||
<param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
|
||||
<param name="caller-id-name" value="$${outbound_caller_name}"/>
|
||||
<param name="caller-id-number" value="$${outbound_caller_id}"/>
|
||||
<param name="comfort-noise" value="true"/>
|
||||
</profile>
|
||||
|
||||
<profile name="sla">
|
||||
<param name="domain" value="$${domain}"/>
|
||||
<param name="rate" value="16000"/>
|
||||
<param name="interval" value="20"/>
|
||||
<param name="caller-controls" value="none"/>
|
||||
<param name="energy-level" value="200"/>
|
||||
<param name="moh-sound" value="silence"/>
|
||||
<param name="comfort-noise" value="true"/>
|
||||
<param name="min-required-recording-participants" value="1"/>
|
||||
</profile>
|
||||
|
||||
</profiles>
|
||||
</configuration>
|
@ -1,56 +0,0 @@
|
||||
<configuration name="console.conf" description="Console Logger">
|
||||
<!-- pick a file name, a function name or 'all' -->
|
||||
<!-- map as many as you need for specific debugging -->
|
||||
<mappings>
|
||||
<!--
|
||||
name can be a file name, function name or 'all'
|
||||
value is one or more of debug,info,notice,warning,err,crit,alert,all
|
||||
See examples below
|
||||
|
||||
|
||||
The following map is the default, which is all debug levels enabled:
|
||||
<map name="all" value="debug,info,notice,warning,err,crit,alert"/>
|
||||
|
||||
|
||||
Example: the following turns on debugging for error and critical levels only
|
||||
<map name="all" value="err,crit"/>
|
||||
|
||||
NOTE: using map name="all" will override any other settings! If you
|
||||
want a more specific set of console messages then you will need
|
||||
to specify which files and/or functions you want to have debug
|
||||
messages. One option is to turn on just the more critical
|
||||
messages with map name="all", then specify the other types of
|
||||
console messages you want to see for various files and functions.
|
||||
|
||||
Example: turn on ERROR, CRIT, ALERT for all modules, then specify other
|
||||
levels for various modules and functions
|
||||
|
||||
<map name="all" value="err,crit,alert"/>
|
||||
<map name="switch_loadable_module_process" value="all"/>
|
||||
<map name="mod_local_stream.c" value="warning,debug"/>
|
||||
<map name="mod_sndfile.c" value="warning,info,debug"/>
|
||||
-->
|
||||
<map name="all" value="console,debug,info,notice,warning,err,crit,alert"/>
|
||||
|
||||
<!--
|
||||
You can use or modify this sample set of mappings. It turns on higher
|
||||
level messages for all modules and then specifies extra lower level
|
||||
messages for Freetdm, Sofia, and switch core messages.
|
||||
|
||||
<map name="all" value="warning,err,crit,alert"/>
|
||||
<map name="zap_analog.c" value="all"/>
|
||||
<map name="zap_io.c" value="all"/>
|
||||
<map name="zap_isdn.c" value="all"/>
|
||||
<map name="zap_zt.c" value="all"/>
|
||||
<map name="mod_freetdm" value="all"/>
|
||||
<map name="sofia.c" value="notice"/>
|
||||
<map name="switch_core_state_machine.c" value="all"/>
|
||||
|
||||
-->
|
||||
</mappings>
|
||||
<settings>
|
||||
<!-- comment or set to false for no color logging -->
|
||||
<param name="colorize" value="true"/>
|
||||
<param name="loglevel" value="$${console_loglevel}"/>
|
||||
</settings>
|
||||
</configuration>
|
@ -1,9 +0,0 @@
|
||||
<configuration name="event_socket.conf" description="Socket Client">
|
||||
<settings>
|
||||
<param name="nat-map" value="false"/>
|
||||
<param name="listen-ip" value="127.0.0.1"/>
|
||||
<param name="listen-port" value="8021"/>
|
||||
<param name="password" value="ClueCon"/>
|
||||
<!--<param name="apply-inbound-acl" value="lan"/>-->
|
||||
</settings>
|
||||
</configuration>
|
@ -1,21 +0,0 @@
|
||||
<configuration name="http_cache.conf" description="HTTP GET cache">
|
||||
<settings>
|
||||
<!-- set to true if you want to enable http:// and https:// formats. Do not use if mod_httapi is also loaded -->
|
||||
<param name="enable-file-formats" value="true"/>
|
||||
<param name="max-urls" value="10000"/>
|
||||
<param name="location" value="$${base_dir}/http_cache"/>
|
||||
<param name="default-max-age" value="86400"/>
|
||||
<param name="prefetch-thread-count" value="8"/>
|
||||
<param name="prefetch-queue-size" value="100"/>
|
||||
<!-- absolute path to CA bundle file -->
|
||||
<param name="ssl-cacert" value="$${base_dir}/conf/cacert.pem"/>
|
||||
<!-- verify certificates -->
|
||||
<param name="ssl-verifypeer" value="true"/>
|
||||
<!-- verify host name matches certificate -->
|
||||
<param name="ssl-verifyhost" value="true"/>
|
||||
<!-- default is 300 seconds, override here -->
|
||||
<!--param name="connect-timeout" value="300"/-->
|
||||
<!-- default is 300 seconds, override here -->
|
||||
<!--param name="download-timeout" value="300"/-->
|
||||
</settings>
|
||||
</configuration>
|
@ -1,49 +0,0 @@
|
||||
<configuration name="local_stream.conf" description="stream files from local dir">
|
||||
<!-- fallback to default if requested moh class isn't found -->
|
||||
<directory name="default" path="$${sounds_dir}/music/8000">
|
||||
<param name="rate" value="8000"/>
|
||||
<param name="shuffle" value="true"/>
|
||||
<param name="channels" value="1"/>
|
||||
<param name="interval" value="20"/>
|
||||
<param name="timer-name" value="soft"/>
|
||||
<!-- list of short files to break in with every so often -->
|
||||
<!--<param name="chime-list" value="file1.wav,file2.wav"/>-->
|
||||
<!-- frequency of break-in (seconds)-->
|
||||
<!--<param name="chime-freq" value="30"/>-->
|
||||
<!-- limit to how many seconds the file will play -->
|
||||
<!--<param name="chime-max" value="500"/>-->
|
||||
</directory>
|
||||
|
||||
<directory name="moh/8000" path="$${sounds_dir}/music/8000">
|
||||
<param name="rate" value="8000"/>
|
||||
<param name="shuffle" value="true"/>
|
||||
<param name="channels" value="1"/>
|
||||
<param name="interval" value="20"/>
|
||||
<param name="timer-name" value="soft"/>
|
||||
</directory>
|
||||
|
||||
<directory name="moh/16000" path="$${sounds_dir}/music/16000">
|
||||
<param name="rate" value="16000"/>
|
||||
<param name="shuffle" value="true"/>
|
||||
<param name="channels" value="1"/>
|
||||
<param name="interval" value="20"/>
|
||||
<param name="timer-name" value="soft"/>
|
||||
</directory>
|
||||
|
||||
<directory name="moh/32000" path="$${sounds_dir}/music/32000">
|
||||
<param name="rate" value="32000"/>
|
||||
<param name="shuffle" value="true"/>
|
||||
<param name="channels" value="1"/>
|
||||
<param name="interval" value="20"/>
|
||||
<param name="timer-name" value="soft"/>
|
||||
</directory>
|
||||
<!--
|
||||
<directory name="moh/48000" path="$${sounds_dir}/music/48000">
|
||||
<param name="rate" value="48000"/>
|
||||
<param name="shuffle" value="true"/>
|
||||
<param name="channels" value="1"/>
|
||||
<param name="interval" value="10"/>
|
||||
<param name="timer-name" value="soft"/>
|
||||
</directory>
|
||||
-->
|
||||
</configuration>
|
@ -1,29 +0,0 @@
|
||||
<configuration name="logfile.conf" description="File Logging">
|
||||
<settings>
|
||||
<!-- true to auto rotate on HUP, false to open/close -->
|
||||
<param name="rotate-on-hup" value="true"/>
|
||||
</settings>
|
||||
<profiles>
|
||||
<profile name="default">
|
||||
<settings>
|
||||
<!-- File to log to -->
|
||||
<!--<param name="logfile" value="/var/log/freeswitch.log"/>-->
|
||||
<!-- At this length in bytes rotate the log file (0 for never) -->
|
||||
<param name="rollover" value="10485760"/>
|
||||
<!-- Maximum number of log files to keep before wrapping -->
|
||||
<!-- If this parameter is enabled, the log filenames will not include a date stamp -->
|
||||
<!-- <param name="maximum-rotate" value="32"/> -->
|
||||
<!-- Uncomment to prefix all log lines by the session's uuid -->
|
||||
<param name="uuid" value="true" />
|
||||
</settings>
|
||||
<mappings>
|
||||
<!--
|
||||
name can be a file name, function name or 'all'
|
||||
value is one or more of debug,info,notice,warning,err,crit,alert,all
|
||||
Please see comments in console.conf.xml for more information
|
||||
-->
|
||||
<map name="all" value="debug,info,notice,warning,err,crit,alert"/>
|
||||
</mappings>
|
||||
</profile>
|
||||
</profiles>
|
||||
</configuration>
|
@ -1,70 +0,0 @@
|
||||
<configuration name="modules.conf" description="Modules">
|
||||
<modules>
|
||||
<!-- Loggers -->
|
||||
<load module="mod_console"/>
|
||||
<load module="mod_logfile"/>
|
||||
|
||||
<!-- Event Handlers -->
|
||||
<load module="mod_cdr_csv"/>
|
||||
<load module="mod_event_socket"/>
|
||||
<load module="mod_rayo"/>
|
||||
|
||||
<!-- Endpoints -->
|
||||
<load module="mod_sofia"/>
|
||||
<load module="mod_loopback"/>
|
||||
|
||||
<!-- Applications -->
|
||||
<!--load module="mod_signalwire"-->
|
||||
<load module="mod_commands"/>
|
||||
<load module="mod_conference"/>
|
||||
<load module="mod_dptools"/>
|
||||
<load module="mod_expr"/>
|
||||
<load module="mod_esf"/>
|
||||
<load module="mod_fsv"/>
|
||||
<load module="mod_http_cache"/>
|
||||
|
||||
<!-- Dialplan Interfaces -->
|
||||
<load module="mod_dialplan_xml"/>
|
||||
|
||||
<!-- Codec Interfaces -->
|
||||
<load module="mod_spandsp"/>
|
||||
<load module="mod_opus"/>
|
||||
<load module="mod_ilbc"/>
|
||||
<load module="mod_h26x"/>
|
||||
|
||||
<!-- File Format Interfaces -->
|
||||
<load module="mod_sndfile"/>
|
||||
<load module="mod_native_file"/>
|
||||
<load module="mod_shell_stream"/>
|
||||
<!--For icecast/mp3 streams/files-->
|
||||
<load module="mod_shout"/>
|
||||
<!--For local streams (play all the files in a directory)-->
|
||||
<load module="mod_local_stream"/>
|
||||
<load module="mod_tone_stream"/>
|
||||
<load module="mod_ssml"/>
|
||||
|
||||
<!-- ASR /TTS -->
|
||||
<load module="mod_flite"/>
|
||||
<load module="mod_pocketsphinx"/>
|
||||
<!-- <load module="mod_tts_commandline"/> -->
|
||||
|
||||
<!-- Say -->
|
||||
<!--load module="mod_say_de"/-->
|
||||
<!--load module="mod_say_es"/-->
|
||||
<!--load module="mod_say_fr"/-->
|
||||
<!--load module="mod_say_hr"/-->
|
||||
<!--load module="mod_say_it"/-->
|
||||
<!--load module="mod_say_nl"/-->
|
||||
<!--load module="mod_say_ru"/-->
|
||||
<!--load module="mod_say_zh"/-->
|
||||
<load module="mod_say_en"/>
|
||||
<!--load module="mod_say_fa"/-->
|
||||
<!--load module="mod_say_he"/-->
|
||||
<!--load module="mod_say_hu"/-->
|
||||
<!--load module="mod_say_ja"/-->
|
||||
<!--load module="mod_say_pt"/-->
|
||||
<!--load module="mod_say_th"/-->
|
||||
<!--load module="mod_say_sv"/-->
|
||||
|
||||
</modules>
|
||||
</configuration>
|
@ -1,12 +0,0 @@
|
||||
<configuration name="pocketsphinx.conf" description="PocketSphinx ASR Configuration">
|
||||
<settings>
|
||||
<param name="threshold" value="400"/>
|
||||
<param name="silence-hits" value="25"/>
|
||||
<param name="listen-hits" value="1"/>
|
||||
<param name="auto-reload" value="true"/>
|
||||
<!--<param name="language-weight" value="1"/>-->
|
||||
<!--<param name="narrowband-model" value="communicator"/>-->
|
||||
<!--<param name="wideband-model" value="wsj1"/>-->
|
||||
<!--<param name="dictionary" value="default.dic"/>-->
|
||||
</settings>
|
||||
</configuration>
|
@ -1,4 +0,0 @@
|
||||
<configuration name="post_load_modules.conf" description="Modules">
|
||||
<modules>
|
||||
</modules>
|
||||
</configuration>
|
@ -1,7 +0,0 @@
|
||||
<configuration name="pre_load_modules.conf" description="Modules">
|
||||
<modules>
|
||||
<!-- Databases -->
|
||||
<!-- <load module="mod_mariadb"/> -->
|
||||
<load module="mod_pgsql"/>
|
||||
</modules>
|
||||
</configuration>
|
@ -1,7 +0,0 @@
|
||||
<configuration name="presence_map.conf" description="PRESENCE MAP">
|
||||
<domains>
|
||||
<domain name="$${domain}">
|
||||
<exten regex="3\d+" proto="conf"/>
|
||||
</domain>
|
||||
</domains>
|
||||
</configuration>
|
@ -1,315 +0,0 @@
|
||||
<configuration name="rayo.conf" description="Rayo server config">
|
||||
|
||||
<!-- rayo params -->
|
||||
<settings>
|
||||
<!-- ends idle calls : unbridged calls that have not been controlled by client in some time -->
|
||||
<param name="max-idle-sec" value="300"/>
|
||||
<!-- conference profile to use for mixers- sla = shared line appearance / conference /w no audio -->
|
||||
<param name="mixer-conf-profile" value="sla"/>
|
||||
<!-- if true, to attribute in offer uses URI instead of name/number -->
|
||||
<param name="offer-uri" value="true"/>
|
||||
<!-- how offers are distributed to clients (all, first, random). -->
|
||||
<param name="offer-algorithm" value="all"/>
|
||||
<!-- If offer is not answered after timeout, next client is offered (based on algorithm picked).
|
||||
If no other clients are available, the call is rejected. Set to 0 to disable -->
|
||||
<param name="offer-timeout-ms" value="5000"/>
|
||||
<!-- if true, channel variables are added to rayo client offer -->
|
||||
<param name="add-variables-to-offer" value="false"/>
|
||||
<!-- if true, channel variables are added to offer, ringing, answered, and end events sent to rayo clients -->
|
||||
<param name="add-variables-to-events" value="false"/>
|
||||
</settings>
|
||||
|
||||
<!-- record component params -->
|
||||
<record>
|
||||
<param name="record-file-prefix" value="$${recordings_dir}/"/>
|
||||
</record>
|
||||
|
||||
<!-- input component params -->
|
||||
<input>
|
||||
<param name="default-recognizer" value="pocketsphinx"/>
|
||||
</input>
|
||||
|
||||
<!-- send/receivefax component params -->
|
||||
<fax>
|
||||
<!-- where to store incoming faxes -->
|
||||
<param name="receivefax-file-prefix" value="/tmp/"/>
|
||||
</fax>
|
||||
|
||||
<!-- Call progress analysis configuration -->
|
||||
<!-- Define CPA detectors. These are sources for Rayo CPA signal events -->
|
||||
<!-- Detectors must fire an event that can be translated by mod_rayo into a CPA signal event -->
|
||||
<cpa>
|
||||
<!-- map DTMF events to CPA -->
|
||||
<detector name="core_dtmf_event">
|
||||
<event class="DTMF" value-header="DTMF-Digit" duration-header="DTMF-Duration">
|
||||
<signal-type value="dtmf"/>
|
||||
</event>
|
||||
</detector>
|
||||
|
||||
<!-- map mod_spandsp fax detector to the Rayo CPA events. Fires DETECTED_FAX_* event once and quits. -->
|
||||
<detector name="mod_spandsp_fax_ced">
|
||||
<start application="spandsp_start_fax_detect" data="event 'Event-Name=CUSTOM,Event-Subclass=DETECTED_FAX_CED' 500 ced"/>
|
||||
<stop application="spandsp_stop_fax_detect" data=""/>
|
||||
<event class="CUSTOM" subclass="DETECTED_FAX_CED">
|
||||
<signal-type value="fax-ced"/>
|
||||
</event>
|
||||
</detector>
|
||||
|
||||
<detector name="mod_spandsp_fax_cng">
|
||||
<start application="spandsp_start_fax_detect" data="event 'Event-Name=CUSTOM,Event-Subclass=DETECTED_FAX_CNG' 500"/>
|
||||
<stop application="spandsp_stop_fax_detect" data=""/>
|
||||
<event class="CUSTOM" subclass="DETECTED_FAX_CNG">
|
||||
<signal-type value="fax-cng"/>
|
||||
</event>
|
||||
</detector>
|
||||
|
||||
<!-- map mod_spandsp call progress tone detector to Rayo CPA signal events. Fires DETECTED_TONE events until stopped. -->
|
||||
<detector name="mod_spandsp_tone">
|
||||
<start application="spandsp_start_tone_detect" data="1"/>
|
||||
<stop application="spandsp_stop_tone_detect" data=""/>
|
||||
<!-- map tone events to Rayo CPA signal type -->
|
||||
<event class="DETECTED_TONE" type-header="Detected-Tone">
|
||||
<signal-type header-value="SIT" value="sit"/>
|
||||
<signal-type header-value="BUSY_TONE" value="busy"/>
|
||||
<signal-type header-value="REORDER_TONE" value="congestion"/>
|
||||
<signal-type header-value="RING_TONE" value="ring"/>
|
||||
</event>
|
||||
</detector>
|
||||
|
||||
<!-- map mod_avmd detector to Rayo CPA beep event. Fires avmd::beep event once. -->
|
||||
<detector name="mod_avmd">
|
||||
<start application="avmd" data=""/>
|
||||
<stop application="avmd" data="stop"/>
|
||||
<event class="CUSTOM" subclass="avmd::beep">
|
||||
<signal-type value="beep"/>
|
||||
</event>
|
||||
</detector>
|
||||
|
||||
<!-- Alternative beep detector using mod_vmd. Fires vmd::beep events until stopped. -->
|
||||
<!--detector name="mod_vmd">
|
||||
<start application="vmd" data=""/>
|
||||
<stop application="vmd" data="stop"/>
|
||||
<event class="CUSTOM" subclass="vmd::beep">
|
||||
<signal-type value="beep"/>
|
||||
</event>
|
||||
</detector-->
|
||||
</cpa>
|
||||
|
||||
<!-- XMPP server domain -->
|
||||
<domain name="$${rayo_domain_name}" shared-secret="ClueCon">
|
||||
<!-- use this instead if you want secure XMPP client to server connections. Put .crt and .key file in freeswitch/certs -->
|
||||
<!--domain name="$${rayo_domain_name}" shared-secret="ClueCon" cert="$${base_dir}/certs/$${rayo_domain_name}.crt" key="$${base_dir}/certs/$${rayo_domain_name}.key"-->
|
||||
|
||||
<!-- Listeners for new Rayo client connections -->
|
||||
<!--listen type="c2s" port="5222" address="$${local_ip_v4}" acl="rayo-clients"/-->
|
||||
<listen type="c2s" port="5222" address="$${rayo_ip}" acl=""/>
|
||||
|
||||
<!-- Listeners for new server connections -->
|
||||
<!--listen type="s2s" port="5269" address="$${local_ip_v4}" acl="rayo-servers"/-->
|
||||
|
||||
<!-- servers to connect to -->
|
||||
<!--connect port="5269" address="node.example.com" domain="example.com"/-->
|
||||
|
||||
<!-- Authorized users -->
|
||||
<users>
|
||||
<user name="usera" password="1"/>
|
||||
</users>
|
||||
</domain>
|
||||
|
||||
<!-- URI mapping to endpoint / gateway -->
|
||||
<dial-gateways>
|
||||
<dial-gateway uriprefix="default" dialprefix="sofia/gateway/outbound/" strip="0"/>
|
||||
<dial-gateway uriprefix="sip:" dialprefix="sofia/external/" strip="0"/>
|
||||
<dial-gateway uriprefix="tel:" dialprefix="sofia/gateway/outbound/" strip="4"/>
|
||||
<!-- pass through user and sofia unaltered -->
|
||||
<dial-gateway uriprefix="user/" dialprefix="" strip=""/>
|
||||
<dial-gateway uriprefix="sofia/" dialprefix="" strip=""/>
|
||||
<dial-gateway uriprefix="loopback/" dialprefix="" strip=""/>
|
||||
</dial-gateways>
|
||||
|
||||
<!-- IQ request aliases. Used mainly for testing purposes or for controlling a rayo call via the console -->
|
||||
<aliases>
|
||||
<alias name="detect" target="call" args="1"><![CDATA[<input xmlns="urn:xmpp:rayo:input:1" mode="cpa"><grammar url="urn:xmpp:rayo:cpa:$1:1"/></input>]]></alias>
|
||||
<alias name="detect-once" target="call" args="1"><![CDATA[<input xmlns="urn:xmpp:rayo:input:1" mode="cpa"><grammar url="urn:xmpp:rayo:cpa:$1:1?terminate=true"/></input>]]></alias>
|
||||
<alias name="detect-tones" target="call"><![CDATA[<input xmlns="urn:xmpp:rayo:input:1" mode="cpa"><grammar url="urn:xmpp:rayo:cpa:busy:1"/><grammar url="urn:xmpp:rayo:cpa:congestion:1"/><grammar url="urn:xmpp:rayo:cpa:sit:1"/></input>]]></alias>
|
||||
<alias name="ping" target="external"><![CDATA[<iq type="get"><ping xmlns="urn:xmpp:ping"/></iq>]]></alias>
|
||||
<alias name="dial" target="server" args="2"><![CDATA[<dial xmlns="urn:xmpp:rayo:1" from="$1" to="$2"/>]]></alias>
|
||||
<alias name="answer" target="call"><![CDATA[<answer xmlns="urn:xmpp:rayo:1"/>]]></alias>
|
||||
<alias name="hangup" target="call"><![CDATA[<hangup xmlns="urn:xmpp:rayo:1"/>]]></alias>
|
||||
<alias name="join" target="call" args="1"><![CDATA[<join xmlns="urn:xmpp:rayo:1" call-uri="xmpp:$1"/>]]></alias>
|
||||
<alias name="join_mixer_duplex" target="call" args="1"><![CDATA[<join xmlns="urn:xmpp:rayo:1" mixer-name="$1" direction="duplex"/>]]></alias>
|
||||
<alias name="join_mixer_send" target="call" args="1"><![CDATA[<join xmlns="urn:xmpp:rayo:1" mixer-name="$1" direction="send"/>]]></alias>
|
||||
<alias name="join_mixer_recv" target="call" args="1"><![CDATA[<join xmlns="urn:xmpp:rayo:1" mixer-name="$1" direction="recv"/>]]></alias>
|
||||
<alias name="unjoin_mixer" target="call" args="1"><![CDATA[<unjoin xmlns="urn:xmpp:rayo:1" mixer-name="$1"/>]]></alias>
|
||||
<alias name="unjoin" target="call"><![CDATA[<unjoin xmlns="urn:xmpp:rayo:1"/>]]></alias>
|
||||
<alias name="unjoin_call" target="call" args="1"><![CDATA[<unjoin xmlns="urn:xmpp:rayo:1" call-uri="xmpp:$1"/>]]></alias>
|
||||
<alias name="stop" target="component"><![CDATA[<stop xmlns="urn:xmpp:rayo:ext:1"/>]]></alias>
|
||||
<alias name="output_bad" target="call"><![CDATA[<output xmlns="urn:xmpp:rayo:output:1" repeat-time="100"></output>]]></alias>
|
||||
<alias name="pause" target="output"><![CDATA[<pause xmlns="urn:xmpp:rayo:output:1"/>]]></alias>
|
||||
<alias name="resume" target="output"><![CDATA[<resume xmlns="urn:xmpp:rayo:output:1"/>]]></alias>
|
||||
<alias name="speed-up" target="output"><![CDATA[<speed-up xmlns="urn:xmpp:rayo:output:1"/>]]></alias>
|
||||
<alias name="speed-down" target="output"><![CDATA[<speed-down xmlns="urn:xmpp:rayo:output:1"/>]]></alias>
|
||||
<alias name="volume-up" target="output"><![CDATA[<volume-up xmlns="urn:xmpp:rayo:output:1"/>]]></alias>
|
||||
<alias name="volume-down" target="output"><![CDATA[<volume-down xmlns="urn:xmpp:rayo:output:1"/>]]></alias>
|
||||
<alias name="receivefax" target="call"><![CDATA[<receivefax xmlns="urn:xmpp:rayo:fax:1"/>]]></alias>
|
||||
<alias name="sendfax" target="call" args="1"><![CDATA[<sendfax xmlns="urn:xmpp:rayo:fax:1"><document xmlns="urn:xmpp:rayo:fax:1" url="$1"/></sendfax>]]></alias>
|
||||
<alias name="record" target="call"><![CDATA[<record xmlns="urn:xmpp:rayo:record:1"/>]]></alias>
|
||||
<alias name="record_pause" target="record"><![CDATA[<pause xmlns="urn:xmpp:rayo:record:1"/>]]></alias>
|
||||
<alias name="record_resume" target="record"><![CDATA[<resume xmlns="urn:xmpp:rayo:record:1"/>]]></alias>
|
||||
<alias name="prompt_barge" target="call">
|
||||
<![CDATA[
|
||||
<prompt xmlns="urn:xmpp:rayo:prompt:1" barge-in="true">
|
||||
<output xmlns="urn:xmpp:rayo:output:1" repeat-times="5">
|
||||
<document content-type="application/ssml+xml">
|
||||
<![CDATA[<speak><p>Please press a digit.</p></speak>]]]]><![CDATA[>
|
||||
</document>
|
||||
</output>
|
||||
<input xmlns="urn:xmpp:rayo:input:1" mode="dtmf" initial-timeout="5000" inter-digit-timeout="3000">
|
||||
<grammar content-type="application/srgs+xml">
|
||||
<![CDATA[<grammar mode="dtmf"><rule id="digit" scope="public"><one-of><item>0</item><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item></one-of></rule></grammar>]]]]><![CDATA[>
|
||||
</grammar>
|
||||
</input>
|
||||
</prompt>
|
||||
]]>
|
||||
</alias>
|
||||
<alias name="prompt_no_barge" target="call">
|
||||
<![CDATA[
|
||||
<prompt xmlns="urn:xmpp:rayo:prompt:1" barge-in="false">
|
||||
<output xmlns="urn:xmpp:rayo:output:1" repeat-times="5">
|
||||
<document content-type="application/ssml+xml">
|
||||
<![CDATA[<speak><p>Please press a digit.</p></speak>]]]]><![CDATA[>
|
||||
</document>
|
||||
</output>
|
||||
<input xmlns="urn:xmpp:rayo:input:1" mode="dtmf" initial-timeout="5000" inter-digit-timeout="3000">
|
||||
<grammar content-type="application/srgs+xml">
|
||||
<![CDATA[<grammar mode="dtmf"><rule id="digit" scope="public"><one-of><item>0</item><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item></one-of></rule></grammar>]]]]><![CDATA[>
|
||||
</grammar>
|
||||
</input>
|
||||
</prompt>
|
||||
]]>
|
||||
</alias>
|
||||
<alias name="prompt_long" target="call">
|
||||
<![CDATA[
|
||||
<prompt xmlns="urn:xmpp:rayo:prompt:1" barge-in="true">
|
||||
<output xmlns="urn:xmpp:rayo:output:1" repeat-times="100">
|
||||
<document content-type="application/ssml+xml">
|
||||
<![CDATA[<speak><p>Please press a digit.</p></speak>]]]]><![CDATA[>
|
||||
</document>
|
||||
</output>
|
||||
<input xmlns="urn:xmpp:rayo:input:1" mode="dtmf" initial-timeout="5000" inter-digit-timeout="3000">
|
||||
<grammar content-type="application/srgs+xml">
|
||||
<![CDATA[<grammar mode="dtmf"><rule id="digit" scope="public"><one-of><item>0</item><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item></one-of></rule></grammar>]]]]><![CDATA[>
|
||||
</grammar>
|
||||
</input>
|
||||
</prompt>
|
||||
]]>
|
||||
</alias>
|
||||
<alias name="prompt_multi_digit" target="call">
|
||||
<![CDATA[
|
||||
<prompt xmlns="urn:xmpp:rayo:prompt:1" barge-in="true">
|
||||
<output xmlns="urn:xmpp:rayo:output:1" repeat-times="100">
|
||||
<document content-type="application/ssml+xml">
|
||||
<![CDATA[<speak><p>Please press a digit.</p></speak>]]]]><![CDATA[>
|
||||
</document>
|
||||
</output>
|
||||
<input xmlns="urn:xmpp:rayo:input:1" mode="dtmf" initial-timeout="5000" inter-digit-timeout="3000">
|
||||
<grammar content-type="application/srgs+xml">
|
||||
<![CDATA[<grammar mode="dtmf"><rule id="digit" scope="public"><item repeat="1-4"><one-of><item>0</item><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item></one-of></item></rule></grammar>]]]]><![CDATA[>
|
||||
</grammar>
|
||||
</input>
|
||||
</prompt>
|
||||
]]>
|
||||
</alias>
|
||||
<alias name="prompt_terminator" target="call">
|
||||
<![CDATA[
|
||||
<prompt xmlns="urn:xmpp:rayo:prompt:1" barge-in="true">
|
||||
<output xmlns="urn:xmpp:rayo:output:1" repeat-times="100">
|
||||
<document content-type="application/ssml+xml">
|
||||
<![CDATA[<speak><p>Please press a digit.</p></speak>]]]]><![CDATA[>
|
||||
</document>
|
||||
</output>
|
||||
<input xmlns="urn:xmpp:rayo:input:1" mode="dtmf" initial-timeout="5000" inter-digit-timeout="3000" terminator="#">
|
||||
<grammar content-type="application/srgs+xml">
|
||||
<![CDATA[<grammar mode="dtmf"><rule id="digit" scope="public"><item repeat="1-4"><one-of><item>0</item><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item></one-of></item></rule></grammar>]]]]><![CDATA[>
|
||||
</grammar>
|
||||
</input>
|
||||
</prompt>
|
||||
]]>
|
||||
</alias>
|
||||
<alias name="prompt_input_bad" target="call">
|
||||
<![CDATA[
|
||||
<prompt xmlns="urn:xmpp:rayo:prompt:1" barge-in="true">
|
||||
<output xmlns="urn:xmpp:rayo:output:1" repeat-times="100">
|
||||
<document content-type="application/ssml+xml">
|
||||
<![CDATA[<speak><p>Please press a digit.</p></speak>]]]]><![CDATA[>
|
||||
</document>
|
||||
</output>
|
||||
<input xmlns="urn:xmpp:rayo:input:1" mode="dtf" initial-timeout="5000" inter-digit-timeout="3000" terminator="#">
|
||||
<grammar content-type="application/srgs+xml">
|
||||
<![CDATA[<grammar mode="dtmf"><rule id="digit" scope="public"><item repeat="1-4"><one-of><item>0</item><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item></one-of></item></rule></grammar>]]]]><![CDATA[>
|
||||
</grammar>
|
||||
</input>
|
||||
</prompt>
|
||||
]]>
|
||||
</alias>
|
||||
<alias name="prompt_output_bad" target="call">
|
||||
<![CDATA[
|
||||
<prompt xmlns="urn:xmpp:rayo:prompt:1" barge-in="true">
|
||||
<output xmlns="urn:xmpp:rayo:output:1" repeat-time="100">
|
||||
<document content-type="application/ssml+xml">
|
||||
<![CDATA[<speak><p>Please press a digit.</p></speak>]]]]><![CDATA[>
|
||||
</document>
|
||||
</output>
|
||||
<input xmlns="urn:xmpp:rayo:input:1" mode="dtmf" initial-timeout="5000" inter-digit-timeout="3000" terminator="#">
|
||||
<grammar content-type="application/srgs+xml">
|
||||
<![CDATA[<grammar mode="dtmf"><rule id="digit" scope="public"><item repeat="1-4"><one-of><item>0</item><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item></one-of></item></rule></grammar>]]]]><![CDATA[>
|
||||
</grammar>
|
||||
</input>
|
||||
</prompt>
|
||||
]]>
|
||||
</alias>
|
||||
<alias name="input" target="call">
|
||||
<![CDATA[
|
||||
<input xmlns="urn:xmpp:rayo:input:1" mode="dtmf" initial-timeout="5000" inter-digit-timeout="3000">
|
||||
<grammar content-type="application/srgs+xml">
|
||||
<![CDATA[<grammar mode="dtmf"><rule id="digit" scope="public"><one-of><item>0</item><item>1</item><item>2</item><item>3</item><item>4</item><item>5</item><item>6</item><item>7</item><item>8</item><item>9</item></one-of></rule></grammar>]]]]><![CDATA[>
|
||||
</grammar>
|
||||
</input>
|
||||
]]>
|
||||
</alias>
|
||||
|
||||
<alias name="input_voice_yesno_pocketsphinx" target="call">
|
||||
<![CDATA[
|
||||
<input xmlns="urn:xmpp:rayo:input:1" mode="voice" recognizer="pocketsphinx" max-silence="5000" initial-timeout="5000">
|
||||
<grammar content-type="application/srgs+xml>
|
||||
<![CDATA[
|
||||
<grammar xmlns="http://www.w3.org/2001/06/grammar"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.w3.org/2001/06/grammar http://www.w3.org/TR/speech-grammar/grammar.xsd"
|
||||
xml:lang="en-US" version="1.0">
|
||||
<rule id="yesno"><one-of><item>yes</item><item>no</item></one-of></rule></grammar>
|
||||
]]]]><![CDATA[>
|
||||
</grammar>
|
||||
</input>
|
||||
]]>
|
||||
</alias>
|
||||
|
||||
<alias name="input_voice_yesno_default" target="call">
|
||||
<![CDATA[
|
||||
<input xmlns="urn:xmpp:rayo:input:1" mode="voice" max-silence="5000" initial-timeout="5000">
|
||||
<grammar content-type="application/srgs+xml>
|
||||
<![CDATA[
|
||||
<grammar xmlns="http://www.w3.org/2001/06/grammar"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.w3.org/2001/06/grammar http://www.w3.org/TR/speech-grammar/grammar.xsd"
|
||||
xml:lang="en-US" version="1.0">
|
||||
<rule id="yesno"><one-of><item>yes</item><item>no</item></one-of></rule></grammar>
|
||||
]]]]><![CDATA[>
|
||||
</grammar>
|
||||
</input>
|
||||
]]>
|
||||
</alias>
|
||||
|
||||
</aliases>
|
||||
|
||||
</configuration>
|
@ -1,9 +0,0 @@
|
||||
<configuration name="shout.conf" description="mod shout config">
|
||||
<settings>
|
||||
<!-- Don't change these unless you are insane -->
|
||||
<!--<param name="decoder" value="i586"/>-->
|
||||
<!--<param name="volume" value=".1"/>-->
|
||||
<!-- mod_shout sets output amplitude scale to 8192 by default - preserve mpg123 default of 32768 -->
|
||||
<param name="outscale" value="32768"/>
|
||||
</settings>
|
||||
</configuration>
|
@ -1,19 +0,0 @@
|
||||
<configuration name="sofia.conf" description="sofia Endpoint">
|
||||
|
||||
<global_settings>
|
||||
<param name="log-level" value="0"/>
|
||||
<!-- <param name="auto-restart" value="false"/> -->
|
||||
<param name="debug-presence" value="0"/>
|
||||
<!-- <param name="capture-server" value="udp:homer.domain.com:5060"/> -->
|
||||
</global_settings>
|
||||
|
||||
<!--
|
||||
The rabbit hole goes deep. This includes all the
|
||||
profiles in the sip_profiles directory that is up
|
||||
one level from this directory.
|
||||
-->
|
||||
<profiles>
|
||||
<X-PRE-PROCESS cmd="include" data="../sip_profiles/*.xml"/>
|
||||
</profiles>
|
||||
|
||||
</configuration>
|
@ -1,113 +0,0 @@
|
||||
<configuration name="spandsp.conf" description="SpanDSP config">
|
||||
<modem-settings>
|
||||
<!--
|
||||
total-modems set to N will create that many soft-modems.
|
||||
If you use them with Hylafax you need the following for each one numbered 0..N:
|
||||
|
||||
1) A line like this in /etc/inittab:
|
||||
|
||||
f0:2345:respawn:/usr/lib/fax/faxgetty /dev/FS0
|
||||
|
||||
2) copy conf/config.FS0 to /var/spool/hylafax/etc (or wherver the appropriate dir is on your system)
|
||||
|
||||
Subsequent modem configs would increment the 0 to 1 and so on.
|
||||
|
||||
-->
|
||||
<param name="total-modems" value="0"/>
|
||||
|
||||
<!-- Default context and dialplan to use on inbound calls from the modems -->
|
||||
<param name="context" value="default"/>
|
||||
<param name="dialplan" value="XML"/>
|
||||
|
||||
<!-- Extra tracing for debugging -->
|
||||
<param name="verbose" value="false"/>
|
||||
</modem-settings>
|
||||
|
||||
<fax-settings>
|
||||
<param name="use-ecm" value="true"/>
|
||||
<param name="verbose" value="false"/>
|
||||
<param name="disable-v17" value="false"/>
|
||||
<param name="ident" value="SpanDSP Fax Ident"/>
|
||||
<param name="header" value="SpanDSP Fax Header"/>
|
||||
|
||||
<param name="spool-dir" value="/tmp"/>
|
||||
<param name="file-prefix" value="faxrx"/>
|
||||
</fax-settings>
|
||||
|
||||
<descriptors>
|
||||
|
||||
<!-- These tones are defined in Annex to ITU Operational Bulletin No. 781 - 1.II.2003 -->
|
||||
<!-- Various Tones Used in National Networks (According to ITU-T Recommendation E.180)(03/1998) -->
|
||||
|
||||
<!-- North America -->
|
||||
<descriptor name="1">
|
||||
<tone name="CED_TONE">
|
||||
<element freq1="2100" freq2="0" min="700" max="0"/>
|
||||
</tone>
|
||||
<tone name="SIT">
|
||||
<element freq1="950" freq2="0" min="256" max="400"/>
|
||||
<element freq1="1400" freq2="0" min="256" max="400"/>
|
||||
<element freq1="1800" freq2="0" min="256" max="400"/>
|
||||
</tone>
|
||||
<tone name="RING_TONE" description="North America ring">
|
||||
<element freq1="440" freq2="480" min="1200" max="0"/>
|
||||
</tone>
|
||||
<tone name="REORDER_TONE">
|
||||
<element freq1="480" freq2="620" min="224" max="316"/>
|
||||
<element freq1="0" freq2="0" min="168" max="352"/>
|
||||
<element freq1="480" freq2="620" min="224" max="316"/>
|
||||
</tone>
|
||||
<tone name="BUSY_TONE">
|
||||
<element freq1="480" freq2="620" min="464" max="536"/>
|
||||
<element freq1="0" freq2="0" min="464" max="572"/>
|
||||
<element freq1="480" freq2="620" min="464" max="536"/>
|
||||
</tone>
|
||||
</descriptor>
|
||||
|
||||
<!-- United Kingdom -->
|
||||
<descriptor name="44">
|
||||
<tone name="CED_TONE">
|
||||
<element freq1="2100" freq2="0" min="500" max="0"/>
|
||||
</tone>
|
||||
<tone name="SIT">
|
||||
<element freq1="950" freq2="0" min="256" max="400"/>
|
||||
<element freq1="1400" freq2="0" min="256" max="400"/>
|
||||
<element freq1="1800" freq2="0" min="256" max="400"/>
|
||||
</tone>
|
||||
<tone name="REORDER_TONE">
|
||||
<element freq1="400" freq2="0" min="368" max="416"/>
|
||||
<element freq1="0" freq2="0" min="336" max="368"/>
|
||||
<element freq1="400" freq2="0" min="256" max="288"/>
|
||||
<element freq1="0" freq2="0" min="512" max="544"/>
|
||||
</tone>
|
||||
<tone name="BUSY_TONE">
|
||||
<element freq1="400" freq2="0" min="352" max="384"/>
|
||||
<element freq1="0" freq2="0" min="352" max="384"/>
|
||||
<element freq1="400" freq2="0" min="352" max="384"/>
|
||||
<element freq1="0" freq2="0" min="352" max="384"/>
|
||||
</tone>
|
||||
</descriptor>
|
||||
|
||||
<!-- Germany -->
|
||||
<descriptor name="49">
|
||||
<tone name="CED_TONE">
|
||||
<element freq1="2100" freq2="0" min="500" max="0"/>
|
||||
</tone>
|
||||
<tone name="SIT">
|
||||
<element freq1="900" freq2="0" min="256" max="400"/>
|
||||
<element freq1="1400" freq2="0" min="256" max="400"/>
|
||||
<element freq1="1800" freq2="0" min="256" max="400"/>
|
||||
</tone>
|
||||
<tone name="REORDER_TONE">
|
||||
<element freq1="425" freq2="0" min="224" max="272"/>
|
||||
<element freq1="0" freq2="0" min="224" max="272"/>
|
||||
</tone>
|
||||
<tone name="BUSY_TONE">
|
||||
<element freq1="425" freq2="0" min="464" max="516"/>
|
||||
<element freq1="0" freq2="0" min="464" max="516"/>
|
||||
</tone>
|
||||
</descriptor>
|
||||
</descriptors>
|
||||
|
||||
</configuration>
|
||||
|
@ -1,29 +0,0 @@
|
||||
<configuration name="ssml.conf" description="SSML parser config">
|
||||
|
||||
<!-- voices in order of preference -->
|
||||
<tts-voices>
|
||||
<voice name="slt" language="en-US" gender="female" prefix="tts://flite|slt|"/>
|
||||
<voice name="kal" language="en-US" gender="male" prefix="tts://flite|kal|"/>
|
||||
<voice name="rms" language="en-US" gender="male" prefix="tts://flite|rms|"/>
|
||||
<voice name="awb" language="en-US" gender="male" prefix="tts://flite|awb|"/>
|
||||
</tts-voices>
|
||||
|
||||
<!-- maps ISO language to say module -->
|
||||
<language-map>
|
||||
<language iso="en-US" say-module="en" language="en"/>
|
||||
</language-map>
|
||||
|
||||
<!-- say voices in order of preference -->
|
||||
<say-voices>
|
||||
<voice name="callie" language="en-US" gender="female" prefix="$${sound_prefix}/"/>
|
||||
</say-voices>
|
||||
|
||||
<!-- map interpret-as to say macros -->
|
||||
<macros>
|
||||
<macro name="ordinal" type="number" method="counted"/>
|
||||
<macro name="cardinal" type="number" method="pronounced"/>
|
||||
<macro name="characters" type="name_spelled" method="pronounced"/>
|
||||
<macro name="telephone" type="telephone_number" method="pronounced"/>
|
||||
</macros>
|
||||
|
||||
</configuration>
|
@ -1,192 +0,0 @@
|
||||
<configuration name="switch.conf" description="Core Configuration">
|
||||
|
||||
<cli-keybindings>
|
||||
<key name="1" value="help"/>
|
||||
<key name="2" value="status"/>
|
||||
<key name="3" value="show channels"/>
|
||||
<key name="4" value="show calls"/>
|
||||
<key name="5" value="sofia status"/>
|
||||
<key name="6" value="reloadxml"/>
|
||||
<key name="7" value="console loglevel 0"/>
|
||||
<key name="8" value="console loglevel 7"/>
|
||||
<key name="9" value="sofia status profile internal"/>
|
||||
<key name="10" value="sofia profile internal siptrace on"/>
|
||||
<key name="11" value="sofia profile internal siptrace off"/>
|
||||
<key name="12" value="version"/>
|
||||
</cli-keybindings>
|
||||
|
||||
<default-ptimes>
|
||||
<!-- Set this to override the 20ms assumption of various codecs in the sdp with no ptime defined -->
|
||||
<!-- <codec name="G729" ptime="40"/> -->
|
||||
</default-ptimes>
|
||||
|
||||
<settings>
|
||||
<!-- Colorize the Console -->
|
||||
<param name="colorize-console" value="true"/>
|
||||
|
||||
<!--Include full timestamps in dialplan logs -->
|
||||
<param name="dialplan-timestamps" value="false"/>
|
||||
|
||||
<!-- Run the timer at 20ms by default and drop down as needed unless you set 1m-timer=true which was previous default -->
|
||||
<!-- <param name="1ms-timer" value="true"/> -->
|
||||
|
||||
<!--
|
||||
Set the Switch Name for HA environments.
|
||||
When setting the switch name, it will override the system hostname for all DB and CURL requests
|
||||
allowing cluster environments such as RHCS to have identical FreeSWITCH configurations but run
|
||||
as different hostnames.
|
||||
-->
|
||||
<!-- <param name="switchname" value="freeswitch"/> -->
|
||||
|
||||
<!-- Maximum number of simultaneous DB handles open -->
|
||||
<param name="max-db-handles" value="50"/>
|
||||
<!-- Maximum number of seconds to wait for a new DB handle before failing -->
|
||||
<param name="db-handle-timeout" value="10"/>
|
||||
|
||||
<!-- Minimum idle CPU before refusing calls -->
|
||||
<!-- <param name="min-idle-cpu" value="25"/> -->
|
||||
|
||||
<!--
|
||||
Max number of sessions to allow at any given time.
|
||||
|
||||
NOTICE: If you're driving 28 T1's in a single box you should set this to 644*2 or 1288
|
||||
this will ensure you're able to use the entire DS3 without a problem. Otherwise you'll
|
||||
be 144 channels short of always filling that DS3 up which can translate into waste.
|
||||
-->
|
||||
<param name="max-sessions" value="1000"/>
|
||||
<!--Most channels to create per second -->
|
||||
<param name="sessions-per-second" value="30"/>
|
||||
<!-- Default Global Log Level - value is one of debug,info,notice,warning,err,crit,alert -->
|
||||
<param name="loglevel" value="debug"/>
|
||||
|
||||
<!-- Set the core DEBUG level (0-10) -->
|
||||
<!-- <param name="debug-level" value="10"/> -->
|
||||
|
||||
<!-- SQL Buffer length within rage of 32k to 10m -->
|
||||
<!-- <param name="sql-buffer-len" value="1m"/> -->
|
||||
<!-- Maximum SQL Buffer length must be greater than sql-buffer-len -->
|
||||
<!-- <param name="max-sql-buffer-len" value="2m"/> -->
|
||||
|
||||
<!--
|
||||
The min-dtmf-duration specifies the minimum DTMF duration to use on
|
||||
outgoing events. Events shorter than this will be increased in duration
|
||||
to match min_dtmf_duration. You cannot configure a dtmf duration on a
|
||||
profile that is less than this setting. You may increase this value,
|
||||
but cannot set it lower than 400. This value cannot exceed
|
||||
max-dtmf-duration. -->
|
||||
<!-- <param name="min-dtmf-duration" value="400"/> -->
|
||||
|
||||
<!--
|
||||
The max-dtmf-duration caps the playout of a DTMF event at the specified
|
||||
duration. Events exceeding this duration will be truncated to this
|
||||
duration. You cannot configure a duration on a profile that exceeds
|
||||
this setting. This setting can be lowered, but cannot exceed 192000.
|
||||
This setting cannot be set lower than min_dtmf_duration. -->
|
||||
<!-- <param name="max-dtmf-duration" value="192000"/> -->
|
||||
|
||||
<!--
|
||||
The default_dtmf_duration specifies the DTMF duration to use on
|
||||
originated DTMF events or on events that are received without a
|
||||
duration specified. This value can be increased or lowered. This
|
||||
value is lower-bounded by min_dtmf_duration and upper-bounded by
|
||||
max-dtmf-duration\. -->
|
||||
<!-- <param name="default-dtmf-duration" value="2000"/> -->
|
||||
|
||||
<!--
|
||||
If you want to send out voicemail notifications via Windows you'll need to change the mailer-app
|
||||
variable to the setting below:
|
||||
|
||||
<param name="mailer-app" value="msmtp"/>
|
||||
|
||||
Do not change mailer-app-args.
|
||||
You will also need to download a sendmail clone for Windows (msmtp). This version works without issue:
|
||||
http://msmtp.sourceforge.net/index.html. Download and copy the .exe to %winddir%\system32.
|
||||
You'll need to create a small config file for smtp credentials (host name, authentication, tls, etc.) in
|
||||
%USERPROFILE%\Application Data\ called "msmtprc.txt". Below is a sample copy of this file:
|
||||
|
||||
###################################
|
||||
# The SMTP server of the provider.
|
||||
account provider
|
||||
host smtp.myisp.com
|
||||
from john@myisp.com
|
||||
auth login
|
||||
user johndoe
|
||||
password mypassword
|
||||
|
||||
# Set a default account
|
||||
account default : provider
|
||||
###################################
|
||||
|
||||
-->
|
||||
|
||||
<param name="mailer-app" value="sendmail"/>
|
||||
<param name="mailer-app-args" value="-t"/>
|
||||
<param name="dump-cores" value="yes"/>
|
||||
|
||||
<!-- Enable verbose channel events to include every detail about a channel on every event -->
|
||||
<!-- <param name="verbose-channel-events" value="no"/> -->
|
||||
|
||||
<!-- Enable clock nanosleep -->
|
||||
<!-- <param name="enable-clock-nanosleep" value="true"/> -->
|
||||
|
||||
<!-- Enable monotonic timing -->
|
||||
<!-- <param name="enable-monotonic-timing" value="true"/> -->
|
||||
|
||||
<!-- NEEDS DOCUMENTATION -->
|
||||
<!-- <param name="enable-softtimer-timerfd" value="true"/> -->
|
||||
<!-- <param name="enable-cond-yield" value="true"/> -->
|
||||
<!-- <param name="enable-timer-matrix" value="true"/> -->
|
||||
<!-- <param name="threaded-system-exec" value="true"/> -->
|
||||
<!-- <param name="tipping-point" value="0"/> -->
|
||||
<!-- <param name="timer-affinity" value="disabled"/> -->
|
||||
<!-- NEEDS DOCUMENTATION -->
|
||||
|
||||
<!-- RTP port range -->
|
||||
<!-- <param name="rtp-start-port" value="16384"/> -->
|
||||
<!-- <param name="rtp-end-port" value="32768"/> -->
|
||||
|
||||
<param name="rtp-enable-zrtp" value="true"/>
|
||||
|
||||
<!--
|
||||
Native PostgreSQL support was removed from the FreeSWITCH Core!
|
||||
=================================
|
||||
NOTICE: You MUST enable mod_pgsql
|
||||
=================================
|
||||
According to https://www.postgresql.org/docs/9.6/libpq-connect.html#LIBPQ-CONNSTRING
|
||||
There are two accepted formats for connection strings supported by the libpq library:
|
||||
* For plain keyword = value strings use pgsql://
|
||||
pgsql://hostaddr=127.0.0.1 dbname=freeswitch user=freeswitch password='' options='-c client_min_messages=NOTICE' application_name='freeswitch'
|
||||
* For RFC 3986 URIs use postgresql:// or postgres://
|
||||
postgresql://
|
||||
postgresql://localhost
|
||||
postgresql://localhost:5433
|
||||
postgresql://localhost/mydb
|
||||
postgresql://user@localhost
|
||||
postgresql://user:secret@localhost
|
||||
postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp
|
||||
postgresql:///mydb?host=localhost&port=5433
|
||||
-->
|
||||
<!-- <param name="core-db-dsn" value="pgsql://hostaddr=127.0.0.1 dbname=freeswitch user=freeswitch password='' options='-c client_min_messages=NOTICE' application_name='freeswitch'" /> -->
|
||||
<!-- <param name="core-db-dsn" value="postgresql://freeswitch:@127.0.0.1/freeswitch?options=-c%20client_min_messages%3DNOTICE&application_name=freeswitch" /> -->
|
||||
<!-- <param name="core-db-dsn" value="mariadb://Server=localhost;Database=freeswitch;Uid=freeswitch;Pwd=pass;" /> -->
|
||||
<!-- <param name="core-db-dsn" value="dsn:username:password" /> -->
|
||||
<!--
|
||||
Allow to specify the sqlite db at a different location (In this example, move it to ramdrive for
|
||||
better performance on most linux distro (note, you loose the data if you reboot))
|
||||
-->
|
||||
<!-- <param name="core-db-name" value="/dev/shm/core.db" /> -->
|
||||
|
||||
<!-- The system will create all the db schemas automatically, set this to false to avoid this behaviour -->
|
||||
<!-- <param name="auto-create-schemas" value="true"/> -->
|
||||
<!-- <param name="auto-clear-sql" value="true"/> -->
|
||||
<!-- <param name="enable-early-hangup" value="true"/> -->
|
||||
|
||||
<!-- <param name="core-dbtype" value="MSSQL"/> -->
|
||||
|
||||
<!-- Allow multiple registrations to the same account in the central registration table -->
|
||||
<!-- <param name="multiple-registrations" value="true"/> -->
|
||||
|
||||
</settings>
|
||||
|
||||
</configuration>
|
||||
|
@ -1,551 +0,0 @@
|
||||
<configuration name="timezones.conf" description="Timezones">
|
||||
<timezones>
|
||||
<zone name="Africa/Abidjan" value="GMT0" />
|
||||
<zone name="Africa/Accra" value="GMT0" />
|
||||
<zone name="Africa/Addis_Ababa" value="EAT-3" />
|
||||
<zone name="Africa/Algiers" value="CET-1" />
|
||||
<zone name="Africa/Asmara" value="EAT-3" />
|
||||
<zone name="Africa/Asmera" value="EAT-3" />
|
||||
<zone name="Africa/Bamako" value="GMT0" />
|
||||
<zone name="Africa/Bangui" value="WAT-1" />
|
||||
<zone name="Africa/Banjul" value="GMT0" />
|
||||
<zone name="Africa/Bissau" value="GMT0" />
|
||||
<zone name="Africa/Blantyre" value="CAT-2" />
|
||||
<zone name="Africa/Brazzaville" value="WAT-1" />
|
||||
<zone name="Africa/Bujumbura" value="CAT-2" />
|
||||
<zone name="Africa/Cairo" value="EET-2EEST,M4.5.5/1,M9.5.5/3" />
|
||||
<zone name="Africa/Casablanca" value="WET0" />
|
||||
<zone name="Africa/Ceuta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Africa/Conakry" value="GMT0" />
|
||||
<zone name="Africa/Dakar" value="GMT0" />
|
||||
<zone name="Africa/Dar_es_Salaam" value="EAT-3" />
|
||||
<zone name="Africa/Djibouti" value="EAT-3" />
|
||||
<zone name="Africa/Douala" value="WAT-1" />
|
||||
<zone name="Africa/El_Aaiun" value="WET0" />
|
||||
<zone name="Africa/Freetown" value="GMT0" />
|
||||
<zone name="Africa/Gaborone" value="CAT-2" />
|
||||
<zone name="Africa/Harare" value="CAT-2" />
|
||||
<zone name="Africa/Johannesburg" value="SAST-2" />
|
||||
<zone name="Africa/Kampala" value="EAT-3" />
|
||||
<zone name="Africa/Khartoum" value="EAT-3" />
|
||||
<zone name="Africa/Kigali" value="CAT-2" />
|
||||
<zone name="Africa/Kinshasa" value="WAT-1" />
|
||||
<zone name="Africa/Lagos" value="WAT-1" />
|
||||
<zone name="Africa/Libreville" value="WAT-1" />
|
||||
<zone name="Africa/Lome" value="GMT0" />
|
||||
<zone name="Africa/Luanda" value="WAT-1" />
|
||||
<zone name="Africa/Lubumbashi" value="CAT-2" />
|
||||
<zone name="Africa/Lusaka" value="CAT-2" />
|
||||
<zone name="Africa/Malabo" value="WAT-1" />
|
||||
<zone name="Africa/Maputo" value="CAT-2" />
|
||||
<zone name="Africa/Maseru" value="SAST-2" />
|
||||
<zone name="Africa/Mbabane" value="SAST-2" />
|
||||
<zone name="Africa/Mogadishu" value="EAT-3" />
|
||||
<zone name="Africa/Monrovia" value="GMT0" />
|
||||
<zone name="Africa/Nairobi" value="EAT-3" />
|
||||
<zone name="Africa/Ndjamena" value="WAT-1" />
|
||||
<zone name="Africa/Niamey" value="WAT-1" />
|
||||
<zone name="Africa/Nouakchott" value="GMT0" />
|
||||
<zone name="Africa/Ouagadougou" value="GMT0" />
|
||||
<zone name="Africa/Porto-Novo" value="WAT-1" />
|
||||
<zone name="Africa/Sao_Tome" value="GMT0" />
|
||||
<zone name="Africa/Timbuktu" value="GMT0" />
|
||||
<zone name="Africa/Tripoli" value="EET-2" />
|
||||
<zone name="Africa/Tunis" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Africa/Windhoek" value="WAT-1WAST,M9.1.0,M4.1.0" />
|
||||
|
||||
<zone name="America/Adak" value="HAST10HADT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Anchorage" value="AKST9AKDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Anguilla" value="AST4" />
|
||||
<zone name="America/Antigua" value="AST4" />
|
||||
<zone name="America/Araguaina" value="BRT3" />
|
||||
<zone name="America/Argentina/Buenos_Aires" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
|
||||
<zone name="America/Argentina/Catamarca" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
|
||||
<zone name="America/Argentina/ComodRivadavia" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
|
||||
<zone name="America/Argentina/Cordoba" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
|
||||
<zone name="America/Argentina/Jujuy" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
|
||||
<zone name="America/Argentina/La_Rioja" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
|
||||
<zone name="America/Argentina/Mendoza" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
|
||||
<zone name="America/Argentina/Rio_Gallegos" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
|
||||
<zone name="America/Argentina/San_Juan" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
|
||||
<zone name="America/Argentina/San_Luis" value="ART3" />
|
||||
<zone name="America/Argentina/Tucuman" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
|
||||
<zone name="America/Argentina/Ushuaia" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
|
||||
<zone name="America/Aruba" value="AST4" />
|
||||
<zone name="America/Asuncion" value="PYT4PYST,M10.3.0/0,M3.2.0/0" />
|
||||
<zone name="America/Atikokan" value="EST5" />
|
||||
<zone name="America/Atka" value="HAST10HADT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Bahia" value="BRT3" />
|
||||
<zone name="America/Barbados" value="AST4" />
|
||||
<zone name="America/Belem" value="BRT3" />
|
||||
<zone name="America/Belize" value="CST6" />
|
||||
<zone name="America/Blanc-Sablon" value="AST4" />
|
||||
<zone name="America/Boa_Vista" value="AMT4" />
|
||||
<zone name="America/Bogota" value="COT5" />
|
||||
<zone name="America/Boise" value="MST7MDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Buenos_Aires" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
|
||||
<zone name="America/Cambridge_Bay" value="MST7MDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Campo_Grande" value="AMT4AMST,M10.2.0/0,M2.3.0/0" />
|
||||
<zone name="America/Cancun" value="CST6CDT,M4.1.0,M10.5.0" />
|
||||
<zone name="America/Caracas" value="VET4:30" />
|
||||
<zone name="America/Catamarca" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
|
||||
<zone name="America/Cayenne" value="GFT3" />
|
||||
<zone name="America/Cayman" value="EST5" />
|
||||
<zone name="America/Chicago" value="CST6CDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Chihuahua" value="MST7MDT,M4.1.0,M10.5.0" />
|
||||
<zone name="America/Coral_Harbour" value="EST5" />
|
||||
<zone name="America/Cordoba" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
|
||||
<zone name="America/Costa_Rica" value="CST6" />
|
||||
<zone name="America/Cuiaba" value="AMT4AMST,M10.2.0/0,M2.3.0/0" />
|
||||
<zone name="America/Curacao" value="AST4" />
|
||||
<zone name="America/Danmarkshavn" value="GMT0" />
|
||||
<zone name="America/Dawson" value="PST8PDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Dawson_Creek" value="MST7" />
|
||||
<zone name="America/Denver" value="MST7MDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Detroit" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Dominica" value="AST4" />
|
||||
<zone name="America/Edmonton" value="MST7MDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Eirunepe" value="ACT5" />
|
||||
<zone name="America/El_Salvador" value="CST6" />
|
||||
<zone name="America/Ensenada" value="PST8PDT,M4.1.0,M10.5.0" />
|
||||
<zone name="America/Fortaleza" value="BRT3" />
|
||||
<zone name="America/Fort_Wayne" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Glace_Bay" value="AST4ADT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Godthab" value="WGST" />
|
||||
<zone name="America/Goose_Bay" value="AST4ADT,M3.2.0/0:01,M11.1.0/0:01" />
|
||||
<zone name="America/Grand_Turk" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Grenada" value="AST4" />
|
||||
<zone name="America/Guadeloupe" value="AST4" />
|
||||
<zone name="America/Guatemala" value="CST6" />
|
||||
<zone name="America/Guayaquil" value="ECT5" />
|
||||
<zone name="America/Guyana" value="GYT4" />
|
||||
<zone name="America/Halifax" value="AST4ADT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Havana" value="CST5CDT,M3.3.0/0,M10.5.0/1" />
|
||||
<zone name="America/Hermosillo" value="MST7" />
|
||||
<zone name="America/Indiana/Indianapolis" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Indiana/Knox" value="CST6CDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Indiana/Marengo" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Indiana/Petersburg" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Indianapolis" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Indiana/Tell_City" value="CST6CDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Indiana/Vevay" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Indiana/Vincennes" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Indiana/Winamac" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Inuvik" value="MST7MDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Iqaluit" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Jamaica" value="EST5" />
|
||||
<zone name="America/Jujuy" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
|
||||
<zone name="America/Juneau" value="AKST9AKDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Kentucky/Louisville" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Kentucky/Monticello" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Knox_IN" value="CST6CDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/La_Paz" value="BOT4" />
|
||||
<zone name="America/Lima" value="PET5" />
|
||||
<zone name="America/Los_Angeles" value="PST8PDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Louisville" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Maceio" value="BRT3" />
|
||||
<zone name="America/Managua" value="CST6" />
|
||||
<zone name="America/Manaus" value="AMT4" />
|
||||
<zone name="America/Marigot" value="AST4" />
|
||||
<zone name="America/Martinique" value="AST4" />
|
||||
<zone name="America/Mazatlan" value="MST7MDT,M4.1.0,M10.5.0" />
|
||||
<zone name="America/Mendoza" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
|
||||
<zone name="America/Menominee" value="CST6CDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Merida" value="CST6CDT,M4.1.0,M10.5.0" />
|
||||
<zone name="America/Mexico_City" value="CST6CDT,M4.1.0,M10.5.0" />
|
||||
<zone name="America/Miquelon" value="PMST3PMDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Moncton" value="AST4ADT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Monterrey" value="CST6CDT,M4.1.0,M10.5.0" />
|
||||
<zone name="America/Montevideo" value="UYT3UYST,M10.1.0,M3.2.0" />
|
||||
<zone name="America/Montreal" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Montserrat" value="AST4" />
|
||||
<zone name="America/Nassau" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/New_York" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Nipigon" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Nome" value="AKST9AKDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Noronha" value="FNT2" />
|
||||
<zone name="America/North_Dakota/Center" value="CST6CDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/North_Dakota/New_Salem" value="CST6CDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Panama" value="EST5" />
|
||||
<zone name="America/Pangnirtung" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Paramaribo" value="SRT3" />
|
||||
<zone name="America/Phoenix" value="MST7" />
|
||||
<zone name="America/Port-au-Prince" value="EST5" />
|
||||
<zone name="America/Porto_Acre" value="ACT5" />
|
||||
<zone name="America/Port_of_Spain" value="AST4" />
|
||||
<zone name="America/Porto_Velho" value="AMT4" />
|
||||
<zone name="America/Puerto_Rico" value="AST4" />
|
||||
<zone name="America/Rainy_River" value="CST6CDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Rankin_Inlet" value="CST6CDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Recife" value="BRT3" />
|
||||
<zone name="America/Regina" value="CST6" />
|
||||
<zone name="America/Resolute" value="EST5" />
|
||||
<zone name="America/Rio_Branco" value="ACT5" />
|
||||
<zone name="America/Rosario" value="ART3ARST,M10.1.0/0,M3.3.0/0" />
|
||||
<zone name="America/Santiago" value="CLST" />
|
||||
<zone name="America/Santo_Domingo" value="AST4" />
|
||||
<zone name="America/Sao_Paulo" value="BRT3" />
|
||||
<zone name="America/Scoresbysund" value="EGT1EGST,M3.5.0/0,M10.5.0/1" />
|
||||
<zone name="America/Shiprock" value="MST7MDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/St_Barthelemy" value="AST4" />
|
||||
<zone name="America/St_Johns" value="NST3:30NDT,M3.2.0/0:01,M11.1.0/0:01" />
|
||||
<zone name="America/St_Kitts" value="AST4" />
|
||||
<zone name="America/St_Lucia" value="AST4" />
|
||||
<zone name="America/St_Thomas" value="AST4" />
|
||||
<zone name="America/St_Vincent" value="AST4" />
|
||||
<zone name="America/Swift_Current" value="CST6" />
|
||||
<zone name="America/Tegucigalpa" value="CST6" />
|
||||
<zone name="America/Thule" value="AST4ADT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Thunder_Bay" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Tijuana" value="PST8PDT,M4.1.0,M10.5.0" />
|
||||
<zone name="America/Toronto" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Tortola" value="AST4" />
|
||||
<zone name="America/Vancouver" value="PST8PDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Virgin" value="AST4" />
|
||||
<zone name="America/Whitehorse" value="PST8PDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Winnipeg" value="CST6CDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Yakutat" value="AKST9AKDT,M3.2.0,M11.1.0" />
|
||||
<zone name="America/Yellowknife" value="MST7MDT,M3.2.0,M11.1.0" />
|
||||
|
||||
<zone name="Antarctica/Casey" value="WST-8" />
|
||||
<zone name="Antarctica/Davis" value="DAVT-7" />
|
||||
<zone name="Antarctica/DumontDUrville" value="DDUT-10" />
|
||||
<zone name="Antarctica/Mawson" value="MAWT-6" />
|
||||
<zone name="Antarctica/McMurdo" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
|
||||
<zone name="Antarctica/Palmer" value="CLST" />
|
||||
<zone name="Antarctica/Rothera" value="ROTT3" />
|
||||
<zone name="Antarctica/South_Pole" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
|
||||
<zone name="Antarctica/Syowa" value="SYOT-3" />
|
||||
<zone name="Antarctica/Vostok" value="VOST-6" />
|
||||
|
||||
<zone name="Arctic/Longyearbyen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
|
||||
<zone name="Asia/Aden" value="AST-3" />
|
||||
<zone name="Asia/Almaty" value="ALMT-6" />
|
||||
<zone name="Asia/Amman" value="EET-2EEST,M3.5.4/0,M10.5.5/1" />
|
||||
<zone name="Asia/Anadyr" value="ANAT-12ANAST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Asia/Aqtau" value="AQTT-5" />
|
||||
<zone name="Asia/Aqtobe" value="AQTT-5" />
|
||||
<zone name="Asia/Ashgabat" value="TMT-5" />
|
||||
<zone name="Asia/Ashkhabad" value="TMT-5" />
|
||||
<zone name="Asia/Baghdad" value="AST-3" />
|
||||
<zone name="Asia/Bahrain" value="AST-3" />
|
||||
<zone name="Asia/Baku" value="AZT-4AZST,M3.5.0/4,M10.5.0/5" />
|
||||
<zone name="Asia/Bangkok" value="ICT-7" />
|
||||
<zone name="Asia/Beirut" value="EET-2EEST,M3.5.0/0,M10.5.0/0" />
|
||||
<zone name="Asia/Bishkek" value="KGT-6" />
|
||||
<zone name="Asia/Brunei" value="BNT-8" />
|
||||
<zone name="Asia/Calcutta" value="IST-5:30" />
|
||||
<zone name="Asia/Choibalsan" value="CHOT-9" />
|
||||
<zone name="Asia/Chongqing" value="CST-8" />
|
||||
<zone name="Asia/Chungking" value="CST-8" />
|
||||
<zone name="Asia/Colombo" value="IST-5:30" />
|
||||
<zone name="Asia/Dacca" value="BDT-6" />
|
||||
<zone name="Asia/Damascus" value="EET-2EEST,M4.1.5/0,J274/0" />
|
||||
<zone name="Asia/Dhaka" value="BDT-6" />
|
||||
<zone name="Asia/Dili" value="TLT-9" />
|
||||
<zone name="Asia/Dubai" value="GST-4" />
|
||||
<zone name="Asia/Dushanbe" value="TJT-5" />
|
||||
<zone name="Asia/Gaza" value="EET-2EEST,J91/0,M9.2.4" />
|
||||
<zone name="Asia/Harbin" value="CST-8" />
|
||||
<zone name="Asia/Ho_Chi_Minh" value="ICT-7" />
|
||||
<zone name="Asia/Hong_Kong" value="HKT-8" />
|
||||
<zone name="Asia/Hovd" value="HOVT-7" />
|
||||
<zone name="Asia/Irkutsk" value="IRKT-8IRKST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Asia/Istanbul" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
|
||||
<zone name="Asia/Jakarta" value="WIT-7" />
|
||||
<zone name="Asia/Jayapura" value="EIT-9" />
|
||||
<zone name="Asia/Jerusalem" value="IDDT" />
|
||||
<zone name="Asia/Kabul" value="AFT-4:30" />
|
||||
<zone name="Asia/Kamchatka" value="PETT-12PETST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Asia/Karachi" value="PKT-5" />
|
||||
<zone name="Asia/Kashgar" value="CST-8" />
|
||||
<zone name="Asia/Katmandu" value="NPT-5:45" />
|
||||
<zone name="Asia/Kolkata" value="IST-5:30" />
|
||||
<zone name="Asia/Krasnoyarsk" value="KRAT-7KRAST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Asia/Kuala_Lumpur" value="MYT-8" />
|
||||
<zone name="Asia/Kuching" value="MYT-8" />
|
||||
<zone name="Asia/Kuwait" value="AST-3" />
|
||||
<zone name="Asia/Macao" value="CST-8" />
|
||||
<zone name="Asia/Macau" value="CST-8" />
|
||||
<zone name="Asia/Magadan" value="MAGT-11MAGST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Asia/Makassar" value="CIT-8" />
|
||||
<zone name="Asia/Manila" value="PHT-8" />
|
||||
<zone name="Asia/Muscat" value="GST-4" />
|
||||
<zone name="Asia/Nicosia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
|
||||
<zone name="Asia/Novosibirsk" value="NOVT-6NOVST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Asia/Omsk" value="OMST-6OMSST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Asia/Oral" value="ORAT-5" />
|
||||
<zone name="Asia/Phnom_Penh" value="ICT-7" />
|
||||
<zone name="Asia/Pontianak" value="WIT-7" />
|
||||
<zone name="Asia/Pyongyang" value="KST-9" />
|
||||
<zone name="Asia/Qatar" value="AST-3" />
|
||||
<zone name="Asia/Qyzylorda" value="QYZT-6" />
|
||||
<zone name="Asia/Rangoon" value="MMT-6:30" />
|
||||
<zone name="Asia/Riyadh" value="AST-3" />
|
||||
<zone name="Asia/Riyadh87" value="zzz-3:07:04" />
|
||||
<zone name="Asia/Riyadh88" value="zzz-3:07:04" />
|
||||
<zone name="Asia/Riyadh89" value="zzz-3:07:04" />
|
||||
<zone name="Asia/Saigon" value="ICT-7" />
|
||||
<zone name="Asia/Sakhalin" value="SAKT-10SAKST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Asia/Samarkand" value="UZT-5" />
|
||||
<zone name="Asia/Seoul" value="KST-9" />
|
||||
<zone name="Asia/Shanghai" value="CST-8" />
|
||||
<zone name="Asia/Singapore" value="SGT-8" />
|
||||
<zone name="Asia/Taipei" value="CST-8" />
|
||||
<zone name="Asia/Tashkent" value="UZT-5" />
|
||||
<zone name="Asia/Tbilisi" value="GET-4" />
|
||||
<zone name="Asia/Tehran" value="IRDT" />
|
||||
<zone name="Asia/Tel_Aviv" value="IDDT" />
|
||||
<zone name="Asia/Thimbu" value="BTT-6" />
|
||||
<zone name="Asia/Thimphu" value="BTT-6" />
|
||||
<zone name="Asia/Tokyo" value="JST-9" />
|
||||
<zone name="Asia/Ujung_Pandang" value="CIT-8" />
|
||||
<zone name="Asia/Ulaanbaatar" value="ULAT-8" />
|
||||
<zone name="Asia/Ulan_Bator" value="ULAT-8" />
|
||||
<zone name="Asia/Urumqi" value="CST-8" />
|
||||
<zone name="Asia/Vientiane" value="ICT-7" />
|
||||
<zone name="Asia/Vladivostok" value="VLAT-10VLAST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Asia/Yakutsk" value="YAKT-9YAKST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Asia/Yekaterinburg" value="YEKT-5YEKST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Asia/Yerevan" value="AMT-4AMST,M3.5.0,M10.5.0/3" />
|
||||
|
||||
<zone name="Atlantic/Azores" value="AZOT1AZOST,M3.5.0/0,M10.5.0/1" />
|
||||
<zone name="Atlantic/Bermuda" value="AST4ADT,M3.2.0,M11.1.0" />
|
||||
<zone name="Atlantic/Canary" value="WET0WEST,M3.5.0/1,M10.5.0" />
|
||||
<zone name="Atlantic/Cape_Verde" value="CVT1" />
|
||||
<zone name="Atlantic/Faeroe" value="WET0WEST,M3.5.0/1,M10.5.0" />
|
||||
<zone name="Atlantic/Faroe" value="WET0WEST,M3.5.0/1,M10.5.0" />
|
||||
<zone name="Atlantic/Jan_Mayen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Atlantic/Madeira" value="WET0WEST,M3.5.0/1,M10.5.0" />
|
||||
<zone name="Atlantic/Reykjavik" value="GMT0" />
|
||||
<zone name="Atlantic/South_Georgia" value="GST2" />
|
||||
<zone name="Atlantic/Stanley" value="FKT4FKST,M9.1.0,M4.3.0" />
|
||||
<zone name="Atlantic/St_Helena" value="GMT0" />
|
||||
|
||||
<zone name="Australia/ACT" value="EST-10EST,M10.1.0,M4.1.0/3" />
|
||||
<zone name="Australia/Adelaide" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
|
||||
<zone name="Australia/Brisbane" value="EST-10" />
|
||||
<zone name="Australia/Broken_Hill" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
|
||||
<zone name="Australia/Canberra" value="EST-10EST,M10.1.0,M4.1.0/3" />
|
||||
<zone name="Australia/Currie" value="EST-10EST,M10.1.0,M4.1.0/3" />
|
||||
<zone name="Australia/Darwin" value="CST-9:30" />
|
||||
<zone name="Australia/Eucla" value="CWST-8:45" />
|
||||
<zone name="Australia/Hobart" value="EST-10EST,M10.1.0,M4.1.0/3" />
|
||||
<zone name="Australia/LHI" value="LHST-10:30LHST-11,M10.1.0,M4.1.0" />
|
||||
<zone name="Australia/Lindeman" value="EST-10" />
|
||||
<zone name="Australia/Lord_Howe" value="LHST-10:30LHST-11,M10.1.0,M4.1.0" />
|
||||
<zone name="Australia/Melbourne" value="EST-10EST,M10.1.0,M4.1.0/3" />
|
||||
<zone name="Australia/North" value="CST-9:30" />
|
||||
<zone name="Australia/NSW" value="EST-10EST,M10.1.0,M4.1.0/3" />
|
||||
<zone name="Australia/Perth" value="WST-8" />
|
||||
<zone name="Australia/Queensland" value="EST-10" />
|
||||
<zone name="Australia/South" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
|
||||
<zone name="Australia/Sydney" value="EST-10EST,M10.1.0,M4.1.0/3" />
|
||||
<zone name="Australia/Tasmania" value="EST-10EST,M10.1.0,M4.1.0/3" />
|
||||
<zone name="Australia/Victoria" value="EST-10EST,M10.1.0,M4.1.0/3" />
|
||||
<zone name="Australia/West" value="WST-8" />
|
||||
<zone name="Australia/Yancowinna" value="CST-9:30CST,M10.1.0,M4.1.0/3" />
|
||||
|
||||
<zone name="Brazil/Acre" value="ACT5" />
|
||||
<zone name="Brazil/DeNoronha" value="FNT2" />
|
||||
<zone name="Brazil/East" value="BRT3BRST,M10.2.0/0,M2.3.0/0" />
|
||||
<zone name="Brazil/West" value="AMT4" />
|
||||
|
||||
<zone name="Canada/Atlantic" value="AST4ADT,M3.2.0,M11.1.0" />
|
||||
<zone name="Canada/Central" value="CST6CDT,M3.2.0,M11.1.0" />
|
||||
<zone name="Canada/Eastern" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="Canada/East-Saskatchewan" value="CST6" />
|
||||
<zone name="Canada/Mountain" value="MST7MDT,M3.2.0,M11.1.0" />
|
||||
<zone name="Canada/Newfoundland" value="NST3:30NDT,M3.2.0/0:01,M11.1.0/0:01" />
|
||||
<zone name="Canada/Pacific" value="PST8PDT,M3.2.0,M11.1.0" />
|
||||
<zone name="Canada/Saskatchewan" value="CST6" />
|
||||
<zone name="Canada/Yukon" value="PST8PDT,M3.2.0,M11.1.0" />
|
||||
|
||||
<zone name="Chile/Continental" value="CLST" />
|
||||
<zone name="Chile/EasterIsland" value="EASST" />
|
||||
|
||||
<zone name="Etc/GMT" value="GMT0" />
|
||||
<zone name="Etc/GMT0" value="GMT0" />
|
||||
<zone name="Etc/GMT-0" value="GMT0" />
|
||||
<zone name="Etc/GMT+0" value="GMT0" />
|
||||
<zone name="Etc/GMT-1" value="GMT-1" />
|
||||
<zone name="Etc/GMT+1" value="GMT+1" />
|
||||
<zone name="Etc/GMT-10" value="GMT-10" />
|
||||
<zone name="Etc/GMT+10" value="GMT+10" />
|
||||
<zone name="Etc/GMT-11" value="GMT-11" />
|
||||
<zone name="Etc/GMT+11" value="GMT+11" />
|
||||
<zone name="Etc/GMT-12" value="GMT-12" />
|
||||
<zone name="Etc/GMT+12" value="GMT+12" />
|
||||
<zone name="Etc/GMT-13" value="GMT-13" />
|
||||
<zone name="Etc/GMT-14" value="GMT-14" />
|
||||
<zone name="Etc/GMT-2" value="GMT-2" />
|
||||
<zone name="Etc/GMT+2" value="GMT+2" />
|
||||
<zone name="Etc/GMT-3" value="GMT-3" />
|
||||
<zone name="Etc/GMT+3" value="GMT+3" />
|
||||
<zone name="Etc/GMT-4" value="GMT-4" />
|
||||
<zone name="Etc/GMT+4" value="GMT+4" />
|
||||
<zone name="Etc/GMT-5" value="GMT-5" />
|
||||
<zone name="Etc/GMT+5" value="GMT+5" />
|
||||
<zone name="Etc/GMT-6" value="GMT-6" />
|
||||
<zone name="Etc/GMT+6" value="GMT+6" />
|
||||
<zone name="Etc/GMT-7" value="GMT-7" />
|
||||
<zone name="Etc/GMT+7" value="GMT+7" />
|
||||
<zone name="Etc/GMT-8" value="GMT-8" />
|
||||
<zone name="Etc/GMT+8" value="GMT+8" />
|
||||
<zone name="Etc/GMT-9" value="GMT-9" />
|
||||
<zone name="Etc/GMT+9" value="GMT+9" />
|
||||
<zone name="Etc/Greenwich" value="GMT0" />
|
||||
<zone name="Etc/UCT" value="UCT0" />
|
||||
<zone name="Etc/Universal" value="UTC0" />
|
||||
<zone name="Etc/UTC" value="UTC0" />
|
||||
<zone name="Etc/Zulu" value="UTC0" />
|
||||
|
||||
<zone name="Europe/Amsterdam" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Andorra" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Athens" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
|
||||
<zone name="Europe/Belfast" value="GMT0BST,M3.5.0/1,M10.5.0" />
|
||||
<zone name="Europe/Belgrade" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Berlin" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Bratislava" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Brussels" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Bucharest" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
|
||||
<zone name="Europe/Budapest" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Chisinau" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
|
||||
<zone name="Europe/Copenhagen" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Dublin" value="GMT0IST,M3.5.0/1,M10.5.0" />
|
||||
<zone name="Europe/Gibraltar" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Guernsey" value="GMT0BST,M3.5.0/1,M10.5.0" />
|
||||
<zone name="Europe/Helsinki" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
|
||||
<zone name="Europe/Isle_of_Man" value="GMT0BST,M3.5.0/1,M10.5.0" />
|
||||
<zone name="Europe/Istanbul" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
|
||||
<zone name="Europe/Jersey" value="GMT0BST,M3.5.0/1,M10.5.0" />
|
||||
<zone name="Europe/Kaliningrad" value="EET-2EEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Kiev" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
|
||||
<zone name="Europe/Lisbon" value="WET0WEST,M3.5.0/1,M10.5.0" />
|
||||
<zone name="Europe/Ljubljana" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/London" value="GMT0BST,M3.5.0/1,M10.5.0" />
|
||||
<zone name="Europe/Luxembourg" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Madrid" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Malta" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Mariehamn" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
|
||||
<zone name="Europe/Minsk" value="EET-2EEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Monaco" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Moscow" value="MSK-3MSD,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Nicosia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
|
||||
<zone name="Europe/Oslo" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Paris" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Podgorica" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Prague" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Riga" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
|
||||
<zone name="Europe/Rome" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Samara" value="SAMT-4SAMST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/San_Marino" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Sarajevo" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Simferopol" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
|
||||
<zone name="Europe/Skopje" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Sofia" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
|
||||
<zone name="Europe/Stockholm" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Tallinn" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
|
||||
<zone name="Europe/Tirane" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Tiraspol" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
|
||||
<zone name="Europe/Uzhgorod" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
|
||||
<zone name="Europe/Vaduz" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Vatican" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Vienna" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Vilnius" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
|
||||
<zone name="Europe/Volgograd" value="VOLT-3VOLST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Warsaw" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Zagreb" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
<zone name="Europe/Zaporozhye" value="EET-2EEST,M3.5.0/3,M10.5.0/4" />
|
||||
<zone name="Europe/Zurich" value="CET-1CEST,M3.5.0,M10.5.0/3" />
|
||||
|
||||
<zone name="Indian/Antananarivo" value="EAT-3" />
|
||||
<zone name="Indian/Chagos" value="IOT-6" />
|
||||
<zone name="Indian/Christmas" value="CXT-7" />
|
||||
<zone name="Indian/Cocos" value="CCT-6:30" />
|
||||
<zone name="Indian/Comoro" value="EAT-3" />
|
||||
<zone name="Indian/Kerguelen" value="TFT-5" />
|
||||
<zone name="Indian/Mahe" value="SCT-4" />
|
||||
<zone name="Indian/Maldives" value="MVT-5" />
|
||||
<zone name="Indian/Mauritius" value="MUT-4" />
|
||||
<zone name="Indian/Mayotte" value="EAT-3" />
|
||||
<zone name="Indian/Reunion" value="RET-4" />
|
||||
|
||||
<zone name="Mexico/BajaNorte" value="PST8PDT,M4.1.0,M10.5.0" />
|
||||
<zone name="Mexico/BajaSur" value="MST7MDT,M4.1.0,M10.5.0" />
|
||||
<zone name="Mexico/General" value="CST6CDT,M4.1.0,M10.5.0" />
|
||||
|
||||
<zone name="Mideast/Riyadh87" value="zzz-3:07:04" />
|
||||
<zone name="Mideast/Riyadh88" value="zzz-3:07:04" />
|
||||
<zone name="Mideast/Riyadh89" value="zzz-3:07:04" />
|
||||
|
||||
<zone name="Pacific/Apia" value="WST11" />
|
||||
<zone name="Pacific/Auckland" value="NZST-12NZDT,M9.5.0,M4.1.0/3" />
|
||||
<zone name="Pacific/Chatham" value="CHAST-12:45CHADT,M9.5.0/2:45,M4.1.0/3:45" />
|
||||
<zone name="Pacific/Easter" value="EASST" />
|
||||
<zone name="Pacific/Efate" value="VUT-11" />
|
||||
<zone name="Pacific/Enderbury" value="PHOT-13" />
|
||||
<zone name="Pacific/Fakaofo" value="TKT10" />
|
||||
<zone name="Pacific/Fiji" value="FJT-12" />
|
||||
<zone name="Pacific/Funafuti" value="TVT-12" />
|
||||
<zone name="Pacific/Galapagos" value="GALT6" />
|
||||
<zone name="Pacific/Gambier" value="GAMT9" />
|
||||
<zone name="Pacific/Guadalcanal" value="SBT-11" />
|
||||
<zone name="Pacific/Guam" value="ChST-10" />
|
||||
<zone name="Pacific/Honolulu" value="HST10" />
|
||||
<zone name="Pacific/Johnston" value="HST10" />
|
||||
<zone name="Pacific/Kiritimati" value="LINT-14" />
|
||||
<zone name="Pacific/Kosrae" value="KOST-11" />
|
||||
<zone name="Pacific/Kwajalein" value="MHT-12" />
|
||||
<zone name="Pacific/Majuro" value="MHT-12" />
|
||||
<zone name="Pacific/Marquesas" value="MART9:30" />
|
||||
<zone name="Pacific/Midway" value="SST11" />
|
||||
<zone name="Pacific/Nauru" value="NRT-12" />
|
||||
<zone name="Pacific/Niue" value="NUT11" />
|
||||
<zone name="Pacific/Norfolk" value="NFT-11:30" />
|
||||
<zone name="Pacific/Noumea" value="NCT-11" />
|
||||
<zone name="Pacific/Pago_Pago" value="SST11" />
|
||||
<zone name="Pacific/Palau" value="PWT-9" />
|
||||
<zone name="Pacific/Pitcairn" value="PST8" />
|
||||
<zone name="Pacific/Ponape" value="PONT-11" />
|
||||
<zone name="Pacific/Port_Moresby" value="PGT-10" />
|
||||
<zone name="Pacific/Rarotonga" value="CKT10" />
|
||||
<zone name="Pacific/Saipan" value="ChST-10" />
|
||||
<zone name="Pacific/Samoa" value="SST11" />
|
||||
<zone name="Pacific/Tahiti" value="TAHT10" />
|
||||
<zone name="Pacific/Tarawa" value="GILT-12" />
|
||||
<zone name="Pacific/Tongatapu" value="TOT-13" />
|
||||
<zone name="Pacific/Truk" value="TRUT-10" />
|
||||
<zone name="Pacific/Wake" value="WAKT-12" />
|
||||
<zone name="Pacific/Wallis" value="WFT-12" />
|
||||
<zone name="Pacific/Yap" value="TRUT-10" />
|
||||
|
||||
<zone name="SystemV/AST4" value="AST4" />
|
||||
<zone name="SystemV/AST4ADT" value="AST4ADT,M3.2.0,M11.1.0" />
|
||||
<zone name="SystemV/CST6" value="CST6" />
|
||||
<zone name="SystemV/CST6CDT" value="CST6CDT,M3.2.0,M11.1.0" />
|
||||
<zone name="SystemV/EST5" value="EST5" />
|
||||
<zone name="SystemV/EST5EDT" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="SystemV/HST10" value="HST10" />
|
||||
<zone name="SystemV/MST7" value="MST7" />
|
||||
<zone name="SystemV/MST7MDT" value="MST7MDT,M3.2.0,M11.1.0" />
|
||||
<zone name="SystemV/PST8" value="PST8" />
|
||||
<zone name="SystemV/PST8PDT" value="PST8PDT,M3.2.0,M11.1.0" />
|
||||
<zone name="SystemV/YST9" value="GAMT9" />
|
||||
<zone name="SystemV/YST9YDT" value="AKST9AKDT,M3.2.0,M11.1.0" />
|
||||
|
||||
<zone name="US/Alaska" value="AKST9AKDT,M3.2.0,M11.1.0" />
|
||||
<zone name="US/Aleutian" value="HAST10HADT,M3.2.0,M11.1.0" />
|
||||
<zone name="US/Arizona" value="MST7" />
|
||||
<zone name="US/Central" value="CST6CDT,M3.2.0,M11.1.0" />
|
||||
<zone name="US/Eastern" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="US/East-Indiana" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="US/Hawaii" value="HST10" />
|
||||
<zone name="US/Indiana-Starke" value="CST6CDT,M3.2.0,M11.1.0" />
|
||||
<zone name="US/Michigan" value="EST5EDT,M3.2.0,M11.1.0" />
|
||||
<zone name="US/Mountain" value="MST7MDT,M3.2.0,M11.1.0" />
|
||||
<zone name="US/Pacific" value="PST8PDT,M3.2.0,M11.1.0" />
|
||||
<zone name="US/Samoa" value="SST11" />
|
||||
</timezones>
|
||||
</configuration>
|
3366
conf/rayo/cacert.pem
3366
conf/rayo/cacert.pem
File diff suppressed because it is too large
Load Diff
@ -1,36 +0,0 @@
|
||||
<include>
|
||||
<context name="public">
|
||||
|
||||
<extension name="unloop">
|
||||
<condition field="${unroll_loops}" expression="^true$"/>
|
||||
<condition field="${sip_looped_call}" expression="^true$">
|
||||
<action application="deflect" data="${destination_number}"/>
|
||||
</condition>
|
||||
</extension>
|
||||
<!--
|
||||
Tag anything pass thru here as an outside_call so you can make sure not
|
||||
to create any routing loops based on the conditions that it came from
|
||||
the outside of the switch.
|
||||
-->
|
||||
<extension name="outside_call" continue="true">
|
||||
<condition>
|
||||
<action application="set" data="outside_call=true"/>
|
||||
<action application="export" data="RFC2822_DATE=${strftime(%a, %d %b %Y %T %z)}"/>
|
||||
</condition>
|
||||
</extension>
|
||||
|
||||
<extension name="call_debug" continue="true">
|
||||
<condition field="${call_debug}" expression="^true$" break="never">
|
||||
<action application="info"/>
|
||||
</condition>
|
||||
</extension>
|
||||
|
||||
<extension name="adhearsion">
|
||||
<condition>
|
||||
<action application="rayo" data=""/>
|
||||
</condition>
|
||||
</extension>
|
||||
|
||||
</context>
|
||||
</include>
|
||||
|
@ -1,39 +0,0 @@
|
||||
<!--
|
||||
NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
|
||||
|
||||
FreeSWITCH works off the concept of users and domains just like email.
|
||||
You have users that are in domains for example 1000@domain.com.
|
||||
|
||||
When freeswitch gets a register packet it looks for the user in the directory
|
||||
based on the from or to domain in the packet depending on how your sofia profile
|
||||
is configured. Out of the box the default domain will be the IP address of the
|
||||
machine running FreeSWITCH. This IP can be found by typing "sofia status" at the
|
||||
CLI. You will register your phones to the IP and not the hostname by default.
|
||||
If you wish to register using the domain please open vars.xml in the root conf
|
||||
directory and set the default domain to the hostname you desire. Then you would
|
||||
use the domain name in the client instead of the IP address to register
|
||||
with FreeSWITCH.
|
||||
|
||||
NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
|
||||
-->
|
||||
|
||||
<include>
|
||||
<!--the domain or ip (the right hand side of the @ in the addr-->
|
||||
<domain name="$${domain}">
|
||||
<params>
|
||||
<param name="dial-string" value="{^^:sip_invite_domain=${dialed_domain}:presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(*/${dialed_user}@${dialed_domain})}"/>
|
||||
</params>
|
||||
|
||||
<variables>
|
||||
</variables>
|
||||
|
||||
<groups>
|
||||
<group name="default">
|
||||
<users>
|
||||
<X-PRE-PROCESS cmd="include" data="default/*.xml"/>
|
||||
</users>
|
||||
</group>
|
||||
</groups>
|
||||
|
||||
</domain>
|
||||
</include>
|
@ -1,21 +0,0 @@
|
||||
<include>
|
||||
<user id="usera">
|
||||
<!-- Outbound Registrations Related to this user -->
|
||||
<gateways>
|
||||
</gateways>
|
||||
<params>
|
||||
<!-- omit password for authless registration -->
|
||||
<param name="password" value="1"/>
|
||||
</params>
|
||||
<variables>
|
||||
<!--all variables here will be set on all inbound calls that originate from this user -->
|
||||
<variable name="user_context" value="public"/>
|
||||
<variable name="effective_caller_id_name" value="User A"/>
|
||||
<variable name="effective_caller_id_number" value="9009095333"/>
|
||||
</variables>
|
||||
|
||||
<vcard>
|
||||
<!-- insert optional compliant vcard xml here-->
|
||||
</vcard>
|
||||
</user>
|
||||
</include>
|
@ -1,21 +0,0 @@
|
||||
<include>
|
||||
<user id="userb">
|
||||
<!-- Outbound Registrations Related to this user -->
|
||||
<gateways>
|
||||
</gateways>
|
||||
<params>
|
||||
<!-- omit password for authless registration -->
|
||||
<param name="password" value="1"/>
|
||||
</params>
|
||||
<variables>
|
||||
<!--all variables here will be set on all inbound calls that originate from this user -->
|
||||
<variable name="user_context" value="public"/>
|
||||
<variable name="effective_caller_id_name" value="User B"/>
|
||||
<variable name="effective_caller_id_number" value="9009093733"/>
|
||||
</variables>
|
||||
|
||||
<vcard>
|
||||
<!-- insert optional compliant vcard xml here-->
|
||||
</vcard>
|
||||
</user>
|
||||
</include>
|
@ -1,21 +0,0 @@
|
||||
<include>
|
||||
<user id="userc">
|
||||
<!-- Outbound Registrations Related to this user -->
|
||||
<gateways>
|
||||
</gateways>
|
||||
<params>
|
||||
<!-- omit password for authless registration -->
|
||||
<param name="password" value="1"/>
|
||||
</params>
|
||||
<variables>
|
||||
<!--all variables here will be set on all inbound calls that originate from this user -->
|
||||
<variable name="user_context" value="public"/>
|
||||
<variable name="effective_caller_id_name" value="User C"/>
|
||||
<variable name="effective_caller_id_number" value="8006492568"/>
|
||||
</variables>
|
||||
|
||||
<vcard>
|
||||
<!-- insert optional compliant vcard xml here-->
|
||||
</vcard>
|
||||
</user>
|
||||
</include>
|
@ -1,21 +0,0 @@
|
||||
<include>
|
||||
<user id="userd">
|
||||
<!-- Outbound Registrations Related to this user -->
|
||||
<gateways>
|
||||
</gateways>
|
||||
<params>
|
||||
<!-- omit password for authless registration -->
|
||||
<param name="password" value="1"/>
|
||||
</params>
|
||||
<variables>
|
||||
<!--all variables here will be set on all inbound calls that originate from this user -->
|
||||
<variable name="user_context" value="public"/>
|
||||
<variable name="effective_caller_id_name" value="Jenny"/>
|
||||
<variable name="effective_caller_id_number" value="2128675309"/>
|
||||
</variables>
|
||||
|
||||
<vcard>
|
||||
<!-- insert optional compliant vcard xml here-->
|
||||
</vcard>
|
||||
</user>
|
||||
</include>
|
@ -1,69 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
|
||||
|
||||
This is the FreeSWITCH default config. Everything you see before you now traverses
|
||||
down into all the directories including files which include more files. The default
|
||||
config comes out of the box already working in most situations as a PBX. This will
|
||||
allow you to get started testing and playing with various things in FreeSWITCH.
|
||||
|
||||
Before you start to modify this default please visit this wiki page:
|
||||
|
||||
http://wiki.freeswitch.org/wiki/Getting_Started_Guide#Some_stuff_to_try_out.21
|
||||
|
||||
If all else fails you can read our FAQ located at:
|
||||
|
||||
http://wiki.freeswitch.org/wiki/FreeSwitch_FAQ
|
||||
|
||||
NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
|
||||
-->
|
||||
<document type="freeswitch/xml">
|
||||
<!--#comment
|
||||
All comments starting with #command will be preprocessed and never sent to the xml parser
|
||||
Valid instructions:
|
||||
#include ==> Include another file to this exact point
|
||||
(partial xml should be encased in <include></include> tags)
|
||||
#set ==> Set a global variable (can be expanded during preprocessing with $$ variables)
|
||||
(note the double $$ which denotes preprocessor variables)
|
||||
#comment ==> A general comment such as this
|
||||
|
||||
The preprocessor will compile the full xml document to ${prefix}/log/freeswitch.xml.fsxml
|
||||
Don't modify it while freeswitch is running cos it is mem mapped in most cases =D
|
||||
|
||||
The same can be achieved with the <X-PRE-PROCESS> tag where the attrs 'cmd' and 'data' are
|
||||
parsed in the same way.
|
||||
-->
|
||||
<!--#comment
|
||||
vars.xml contains all the #set directives for the preprocessor.
|
||||
-->
|
||||
<X-PRE-PROCESS cmd="include" data="vars.xml"/>
|
||||
|
||||
<section name="configuration" description="Various Configuration">
|
||||
<X-PRE-PROCESS cmd="include" data="autoload_configs/*.xml"/>
|
||||
</section>
|
||||
|
||||
<section name="dialplan" description="Regex/XML Dialplan">
|
||||
<X-PRE-PROCESS cmd="include" data="dialplan/*.xml"/>
|
||||
</section>
|
||||
|
||||
<!-- mod_dingaling is reliant on the vcard data in the "directory" section. -->
|
||||
<!-- mod_sofia is reliant on the user data for authorization -->
|
||||
<section name="directory" description="User Directory">
|
||||
<X-PRE-PROCESS cmd="include" data="directory/*.xml"/>
|
||||
</section>
|
||||
|
||||
<!-- languages section (under development still) -->
|
||||
<section name="languages" description="Language Management">
|
||||
<X-PRE-PROCESS cmd="include" data="lang/de/*.xml"/>
|
||||
<X-PRE-PROCESS cmd="include" data="lang/en/*.xml"/>
|
||||
<X-PRE-PROCESS cmd="include" data="lang/fr/*.xml"/>
|
||||
<X-PRE-PROCESS cmd="include" data="lang/ru/*.xml"/>
|
||||
<X-PRE-PROCESS cmd="include" data="lang/he/*.xml"/>
|
||||
<X-PRE-PROCESS cmd="include" data="lang/es/es_ES.xml"/>
|
||||
<X-NO-PRE-PROCESS cmd="include" data="lang/es/es_MX.xml"/>
|
||||
<X-PRE-PROCESS cmd="include" data="lang/pt/pt_BR.xml"/>
|
||||
<X-NO-PRE-PROCESS cmd="include" data="lang/pt/pt_PT.xml"/>
|
||||
<X-NO-PRE-PROCESS cmd="include" data="lang/sv/*.xml"/>
|
||||
</section>
|
||||
|
||||
</document>
|
@ -1,22 +0,0 @@
|
||||
<include>
|
||||
<language name="de" sound-prefix="/snds" tts-engine="cepstral" tts-voice="david">
|
||||
<phrases>
|
||||
<macros>
|
||||
<X-PRE-PROCESS cmd="include" data="demo/demo.xml"/>
|
||||
<!--voicemail_de_tts is purely implemented with tts, we need a files based implementation too -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/tts.xml"/>
|
||||
</macros>
|
||||
</phrases>
|
||||
</language>
|
||||
</include>
|
||||
<!--
|
||||
For Emacs:
|
||||
Local Variables:
|
||||
mode:xml
|
||||
indent-tabs-mode:nil
|
||||
tab-width:2
|
||||
c-basic-offset:2
|
||||
End:
|
||||
For VIM:
|
||||
vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
|
||||
-->
|
@ -1,82 +0,0 @@
|
||||
<include>
|
||||
<macro name="msgcount">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
<!-- or -->
|
||||
<!--<action function="speak-text" data="Sie haben $1 Nachrichten"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="saydate">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="current_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="timespec">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="time_measurement"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="ip-addr">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="iterated" type="ip_address"/>
|
||||
<action function="say" data="$1" method="pronounced" type="ip_address"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell-phonetic">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_phonetic"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="tts-timeleft">
|
||||
<!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
|
||||
<!-- If the function "break" is encountered all parsing will cease -->
|
||||
<input pattern="(\d+):(\d+)">
|
||||
<match>
|
||||
<action function="speak-text" data="Sie haben $1 Minuten, $2 Sekunden übrig $strftime(%Y-%m-%d)"/>
|
||||
<action function="break"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="Die Eingabe war ungültig."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input pattern="(\d+) min (\d+) sek">
|
||||
<match>
|
||||
<action function="speak-text" data="Sie haben $1 Minuten, $2 Sekunden übrig $strftime(%Y-%m-%d)"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="Die Eingabe war ungültig."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
<!--
|
||||
For Emacs:
|
||||
Local Variables:
|
||||
mode:xml
|
||||
indent-tabs-mode:nil
|
||||
tab-width:2
|
||||
c-basic-offset:2
|
||||
End:
|
||||
For VIM:
|
||||
vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
|
||||
-->
|
@ -1,413 +0,0 @@
|
||||
<include>
|
||||
|
||||
<macro name="voicemail_enter_id">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_id.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_enter_pass">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-enter_pass.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_fail_auth">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-fail_auth.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!--<action function="play-file" data="voicemail/vm-hello.wav"/> -->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_goodbye">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-goodbye.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_abort">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-abort.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_message_count">
|
||||
<input pattern="^(1):(.*)$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action application="log" data="INFO $1 $2"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items" gender="feminine"/>
|
||||
<action function="play-file" data="voicemail/vm-$2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items" gender="feminine"/>
|
||||
<action function="play-file" data="voicemail/vm-$2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<!-- To listen to new messages -->
|
||||
<action function="play-file" data="voicemail/vm-listen_new.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
<!-- To listen to saved messages -->
|
||||
<action function="play-file" data="voicemail/vm-listen_saved.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
<!-- For advanced options -->
|
||||
<action function="play-file" data="voicemail/vm-advanced.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
<!-- To exit -->
|
||||
<action function="play-file" data="voicemail/vm-to_exit.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_phonetic"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_config_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<!-- To record a greeting -->
|
||||
<action function="play-file" data="voicemail/vm-to_record_greeting.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
<!-- To choose greeting -->
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
<!-- To record your name -->
|
||||
<action function="play-file" data="voicemail/vm-record_name2.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
<!-- To change password -->
|
||||
<action function="play-file" data="voicemail/vm-change_password.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
<action function="execute" data="sleep(100)"/>
|
||||
<!-- To return to main menu -->
|
||||
<action function="play-file" data="voicemail/vm-main_menu.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_name1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-rerecord.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_urgent_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mark-urgent.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-continue.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_prepend">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_add_intro.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-send_message_now.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_forward_message_enter_extension">
|
||||
<input pattern="^([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-forward_enter_ext.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-followed_by.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_invalid_extension">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-that_was_an_invalid_ext.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_listen_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-forward_to_email.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-return_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-to_forward.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-listen_to_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-save_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-delete_recording.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-return_call.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$5" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-to_forward.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$6" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_choose.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting_fail">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-choose_greeting_fail.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_greeting.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_message">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-record_message.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_greeting_selected">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-greeting.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-selected.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-person.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-not_available.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_number">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_message_number">
|
||||
<input pattern="^([a-z]+):(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-message_number.wav"/>
|
||||
<action application="log" data="INFO $1 $2"/>
|
||||
<action function="say" data="$2" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<!-- Note: Update this to marked-urgent,emailed and saved once new sound files are recorded -->
|
||||
<macro name="voicemail_ack">
|
||||
<input pattern="^(too-small)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-too-small.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(deleted)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(saved)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(emailed)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(marked-urgent)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-message.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-$1.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action application="log" data="INFO $1"/>
|
||||
<action function="say" data="$1" method="counted" type="current_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_disk_quota_exceeded">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-mailbox_full.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_announce_ext">
|
||||
<input pattern="^([^\:]+):(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_lot_full">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="valet_lot_empty">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="tone_stream://%(275,10,600);%(275,100,300)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
<!--
|
||||
For Emacs:
|
||||
Local Variables:
|
||||
mode:xml
|
||||
indent-tabs-mode:nil
|
||||
tab-width:2
|
||||
c-basic-offset:2
|
||||
End:
|
||||
For VIM:
|
||||
vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
|
||||
-->
|
@ -1,224 +0,0 @@
|
||||
<include>
|
||||
|
||||
<macro name="voicemail_enter_id">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="Bitte geben Sie Ihren Benutzernamen ein, gefolgt von $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_enter_pass">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="Bitte geben Sie Ihr Passwort ein, gefolgt von $1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_fail_auth">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="Falsche Benutzerdaten."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_hello">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="Willkommen in Ihrem Postfach."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_goodbye">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="Auf Wiedersehen."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_abort">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="speak-text" data="Zu viele Fehlversuche."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_message_count">
|
||||
<input pattern="^1:(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Sie haben 1 $2 Nachricht im Ordner ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^([0,2-9]+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Sie haben $1 $2 Nachrichten im Ordner ${voicemail_current_folder}."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="Um neue Nachrichten zu hören, drücken Sie $1. Um gespeicherte Nachrichten zu hören, drücken Sie $2, Für erweiterte Optionen, drücken Sie $3. Zum beenden drücken Sie $4."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_config_menu">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="Um eine Ansage aufzunehmen, drücken Sie $1. Um eine Ansage auszuwählen, drücken Sie $2. Um ihren Namen aufzunehmen, drücken Sie $3. Um zum Hauptmenü zurückzukehren, drücken Sie $4."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Sprechen Sie Ihren Namen nach dem Ton, drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="Um die Aufzeichnung anzuhören, drücken Sie $1. Um die Aufzeichnung zu speichern, drücken Sie $2. Für eine erneute Aufnahme drücken Sie $3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_urgent_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="Drücken Sie $1 um diese Nachricht als wichtig zu markieren. Um fortzufahren drücken Sie $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_listen_file_check">
|
||||
<input pattern="^([0-9#*]):([0-9#*]):([0-9#*]):([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text"
|
||||
data="Drücken Sie $1 um die Nachricht erneut zu hören. Um die Nachricht zu speichern, drücken Sie $2. Zum löschen der Nachricht drücken Sie $3. Für die Weiterleitung als Email, drücken Sie $4."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Wählen Sie eine Ansage zwischen 1 und 3."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_choose_greeting_fail">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Ungültige Eingabe."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Zeichnen Sie Ihre Ansage nach dem Ton auf. Drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_record_message">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Sprechen Sie nach dem Ton. Drücken Sie eine beliebige Taste oder hören Sie auf zu sprechen um die Aufnahme zu beenden."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_greeting_selected">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Ansage $1 ausgewählt."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_play_greeting">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 ist nicht verfügbar."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_message_number">
|
||||
<input pattern="^([a-z]+):(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 Nachricht Nummer $2."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_phone_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_ack">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Nachricht $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="voicemail_say_date">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$strftime($1|%A, %B %d %Y, %I %M %p)"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
<!--
|
||||
For Emacs:
|
||||
Local Variables:
|
||||
mode:xml
|
||||
indent-tabs-mode:nil
|
||||
tab-width:2
|
||||
c-basic-offset:2
|
||||
End:
|
||||
For VIM:
|
||||
vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
|
||||
-->
|
@ -1,156 +0,0 @@
|
||||
<include>
|
||||
|
||||
<macro name="demo_ivr_count">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="demo_ivr_main_menu" pause="100"> <!-- See conf/autoload_config/ivr.conf.xml for an example on how to use this macro in an IVR -->
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- string together several existing sound files to create one long greeting -->
|
||||
<action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-this_ivr_will_let_you_test_features.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-you_may_exit_by_hanging_up.wav"/>
|
||||
<!-- note that you can do more than just play files, e.g. have pauses and do TTS -->
|
||||
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="ivr/ivr-enter_ext_pound.wav"/>
|
||||
<action function="play-file" data="silence_stream://1500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/3.wav"/>
|
||||
|
||||
<!-- Menu option 4: Register for ClueCon -->
|
||||
<action function="play-file" data="ivr/ivr-register_for_cluecon.wav"/>
|
||||
<action function="play-file" data="digits/4.wav"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/5.wav"/>
|
||||
|
||||
<!-- Menu option 6: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/6.wav"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/9.wav"/>
|
||||
<action function="play-file" data="silence_stream://2000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<!-- The following macro is the same as demo_ivr_main_menu except it is the "short" version -->
|
||||
<!-- The short version has all the options but not the initial greeting -->
|
||||
<macro name="demo_ivr_main_menu_short" pause="100">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Menu option 1: Call FreeSWITCH conference-->
|
||||
<action function="play-file" data="silence_stream://1000"/>
|
||||
<action function="play-file" data="ivr/ivr-to_call_the_freeswitch_conference.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
|
||||
<!-- Menu option 2: Do FreeSWITCH echo test -->
|
||||
<action function="play-file" data="ivr/ivr-to_do_a_freeswitch_echo_test.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
|
||||
<!-- Menu option 3: Listen to Music on Hold -->
|
||||
<action function="play-file" data="ivr/ivr-to_listen_to_moh.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/3.wav"/>
|
||||
|
||||
<!-- Menu option 4: Hear a sample submenu -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_sample_submenu.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/4.wav"/>
|
||||
|
||||
<!-- Menu option 5: Listen to screaming monkeys -->
|
||||
<action function="play-file" data="ivr/ivr-to_hear_screaming_monkeys.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/5.wav"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/9.wav"/>
|
||||
<action function="play-file" data="silence_stream://2000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<!-- The following macro is the "long" greeting for the demo_ivr_sub_menu -->
|
||||
<macro name="demo_ivr_sub_menu">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-sample_submenu.wav"/>
|
||||
|
||||
<!-- Menu option *: Return to top menu -->
|
||||
<action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<!-- The following macro is the same as demo_ivr_sub_menu except it is the "short" version -->
|
||||
<!-- The short version has all the options but not the initial greeting -->
|
||||
<macro name="demo_ivr_sub_menu_short">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Menu option *: Return to top menu -->
|
||||
<action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
<!--
|
||||
For Emacs:
|
||||
Local Variables:
|
||||
mode:xml
|
||||
indent-tabs-mode:nil
|
||||
tab-width:2
|
||||
c-basic-offset:2
|
||||
End:
|
||||
For VIM:
|
||||
vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
|
||||
-->
|
@ -1,82 +0,0 @@
|
||||
<include>
|
||||
<macro name="msgcount">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="execute" data="sleep(1000)"/>
|
||||
<action function="play-file" data="voicemail/vm-you_have.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="voicemail/vm-messages.wav"/>
|
||||
<!-- or -->
|
||||
<!--<action function="speak-text" data="you have $1 messages"/>-->
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="saydate">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="current_date_time"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="timespec">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="time_measurement"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="ip-addr">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="iterated" type="ip_address"/>
|
||||
<action function="say" data="$1" method="pronounced" type="ip_address"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="spell-phonetic">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_phonetic"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
<macro name="tts-timeleft">
|
||||
<!-- The parser will visit each <input> tag and execute the actions in <match> or <nomatch> depending on the pattern param -->
|
||||
<!-- If the function "break" is encountered all parsing will cease -->
|
||||
<input pattern="(\d+):(\d+)">
|
||||
<match>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
<action function="break"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
<input pattern="(\d+) min (\d+) sec">
|
||||
<match>
|
||||
<action function="speak-text" data="You have $1 minutes, $2 seconds remaining $strftime(%Y-%m-%d)"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="speak-text" data="That input was invalid."/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
||||
<!--
|
||||
For Emacs:
|
||||
Local Variables:
|
||||
mode:xml
|
||||
indent-tabs-mode:nil
|
||||
tab-width:2
|
||||
c-basic-offset:2
|
||||
End:
|
||||
For VIM:
|
||||
vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
|
||||
-->
|
@ -1,35 +0,0 @@
|
||||
<include>
|
||||
<macro name="funny_prompts" pause="750">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-wakey_wakey_sunshine.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-no_no_no.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-did_you_mean_to_press_key.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-seriously_mean_to_press_key.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-oh_whatever.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-one_more_mistake.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-congratulations_you_pressed_star.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-engineers_busy_assisting_other_sales.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-message_self_destruct.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-all_your_call_are_belong_to_us.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-love_those_touch_tones.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-yes_we_have_no_bananas.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-dude_you_suck.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-on_hold_indefinitely.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-youre_doing_it_wrong.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-were_asterisk_free.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-douche_telecom.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-asterisk_like_syphilis.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-freeguipy.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-terribly_wrong_awkward.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-it_was_that_bug.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-concentrate.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-founder_of_freesource.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-cold_foolish.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-trollover_minutes.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-yuno_silent_drill.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-beacuase.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
</include>
|
@ -1,171 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<include><!--This line will be ignored it's here to validate the xml and is optional -->
|
||||
|
||||
<macro name="new_demo_ivr_main_menu" pause="100"> <!-- See conf/ivr_menus/ivr.conf.xml for an example on how to use this macro in an IVR -->
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-welcome_to_freeswitch.wav"/>
|
||||
<action function="play-file" data="silence_stream://500"/>
|
||||
|
||||
<!-- Menu option 1: For information about FreeSWITCH... -->
|
||||
<action function="play-file" data="misc/misc-information_about_freeswitch.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
|
||||
<!-- Menu option 2: To learn more about FreeSWITCH Solutions... -->
|
||||
<action function="play-file" data="misc/misc-learn_more_about_freeswitch_solutions.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
|
||||
<!-- Menu option 3: To hear about ClueCon -->
|
||||
<action function="play-file" data="misc/misc-to_hear_about_cluecon.wav"/>
|
||||
<action function="play-file" data="digits/3.wav"/>
|
||||
|
||||
<!-- Menu option 4: For other options -->
|
||||
<action function="play-file" data="ivr/ivr-for_other_options.wav"/>
|
||||
<action function="play-file" data="digits/4.wav"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/9.wav"/>
|
||||
<action function="play-file" data="silence_stream://2000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<!-- The following macro is the same as new_demo_ivr_main_menu except it is the "short" version -->
|
||||
<!-- The short version has all the options but not the initial greeting -->
|
||||
<macro name="new_demo_ivr_main_menu_short" pause="100">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Menu option 1: For information about FreeSWITCH... -->
|
||||
<action function="play-file" data="misc/misc-information_about_freeswitch.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
|
||||
<!-- Menu option 2: To learn more about FreeSWITCH Solutions... -->
|
||||
<action function="play-file" data="misc/misc-learn_more_about_freeswitch_solutions.wav"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
|
||||
<!-- Menu option 3: To hear about ClueCon -->
|
||||
<action function="play-file" data="misc/misc-to_hear_about_cluecon.wav"/>
|
||||
<action function="play-file" data="digits/3.wav"/>
|
||||
|
||||
<!-- Menu option 4: For other options -->
|
||||
<action function="play-file" data="ivr/ivr-for_other_options.wav"/>
|
||||
<action function="play-file" data="digits/4.wav"/>
|
||||
|
||||
<!-- Menu option 9: Repeat these options -->
|
||||
<action function="play-file" data="ivr/ivr-to_repeat_these_options.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/9.wav"/>
|
||||
<action function="play-file" data="silence_stream://2000"/>
|
||||
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<!-- More information about FreeSWITCH... -->
|
||||
<macro name="learn_about_freeswitch_sub_menu">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Information about FreeSWITCH and OSTAG... -->
|
||||
<action function="play-file" data="misc-freeswitch_is_state_of_the_art.wav"/>
|
||||
<action function="play-file" data="silence_stream://50"/>
|
||||
<action function="play-file" data="misc-it_is_stable_scalable_extensible.wav"/>
|
||||
<action function="play-file" data="silence_stream://50"/>
|
||||
<action function="play-file" data="misc-free_to_download.wav"/>
|
||||
<action function="play-file" data="silence_stream://50"/>
|
||||
<action function="play-file" data="misc-freeswitch_sponsored_by_ostag.wav"/>
|
||||
<action function="play-file" data="silence_stream://50"/>
|
||||
<action function="play-file" data="misc-ostag_learn_more.wav"/>
|
||||
<action function="play-file" data="silence_stream://50"/>
|
||||
|
||||
<!-- Menu option 9: Repeat this information -->
|
||||
<action function="play-file" data="ivr/ivr-repeat_this_information.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/9.wav"/>
|
||||
<action function="play-file" data="silence_stream://2000"/>
|
||||
|
||||
<!-- Menu option *: Return to top menu -->
|
||||
<action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<!-- More information about FreeSWITCH Solutions... -->
|
||||
<macro name="learn_about_freeswitch_solutions_sub_menu">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Information about FreeSWITCH Solutions... -->
|
||||
<action function="play-file" data="[[sounds from tony/brian]]"/>
|
||||
<action function="play-file" data="silence_stream://50"/>
|
||||
<action function="play-file" data="[[sounds from tony/brian]]"/>
|
||||
<action function="play-file" data="silence_stream://50"/>
|
||||
<action function="play-file" data="[[sounds from tony/brian]]"/>
|
||||
<action function="play-file" data="silence_stream://50"/>
|
||||
<action function="play-file" data="[[sounds from tony/brian]]"/>
|
||||
<action function="play-file" data="silence_stream://50"/>
|
||||
<action function="play-file" data="[[sounds from tony/brian]]"/>
|
||||
<action function="play-file" data="silence_stream://50"/>
|
||||
|
||||
<!-- Menu option 9: Repeat this information -->
|
||||
<action function="play-file" data="ivr/ivr-repeat_this_information.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/9.wav"/>
|
||||
<action function="play-file" data="silence_stream://2000"/>
|
||||
|
||||
<!-- Menu option *: Return to top menu -->
|
||||
<action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<!-- More information about ClueCon -->
|
||||
<macro name="learn_about_cluecon_sub_menu">
|
||||
<input pattern="(.*)">
|
||||
<match>
|
||||
<!-- Information about ClueCon... -->
|
||||
<action function="play-file" data="misc-cluecon_is_premier_conference.wav"/>
|
||||
<action function="play-file" data="silence_stream://50"/>
|
||||
<action function="play-file" data="misc-chicago_each_summer.wav"/>
|
||||
<action function="play-file" data="silence_stream://50"/>
|
||||
<action function="play-file" data="misc-wide_range_of_persons.wav"/>
|
||||
<action function="play-file" data="silence_stream://50"/>
|
||||
<action function="play-file" data="misc-support_open_source_by_attending.wav"/>
|
||||
<action function="play-file" data="silence_stream://500"/>
|
||||
<action function="play-file" data="ivr-register_for_cluecon.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="play-file" data="silence_stream://500"/>
|
||||
|
||||
<!-- Menu option 9: Repeat this information -->
|
||||
<action function="play-file" data="ivr/ivr-repeat_this_information.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/9.wav"/>
|
||||
<action function="play-file" data="silence_stream://2000"/>
|
||||
|
||||
<!-- Menu option *: Return to top menu -->
|
||||
<action function="play-file" data="ivr/ivr-to_return_to_previous_menu.wav"/>
|
||||
<action function="play-file" data="ivr/ivr-please.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="play-file" data="digits/star.wav"/>
|
||||
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
|
||||
</include><!--This line will be ignored it's here to validate the xml and is optional -->
|
@ -1,130 +0,0 @@
|
||||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-enter_person.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-first_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_search_by.wav"/>
|
||||
<action function="play-file" data="directory/dir-last_name.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-specify_mininum.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-letters_of_person_name.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_matching_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="directory/dir-result_match.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-too_many_result.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-no_more_results.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-result_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-at_extension.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="play-file" data="directory/dir-to_select_entry.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_next.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$2" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-for_prev.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$3" method="pronounced" type="name_spelled"/>
|
||||
<action function="play-file" data="directory/dir-start_new_search.wav"/>
|
||||
<action function="play-file" data="voicemail/vm-press.wav"/>
|
||||
<action function="say" data="$4" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="say" data="$1" method="pronounced" type="name_spelled"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
<!--
|
||||
For Emacs:
|
||||
Local Variables:
|
||||
mode:xml
|
||||
indent-tabs-mode:nil
|
||||
tab-width:2
|
||||
c-basic-offset:2
|
||||
End:
|
||||
For VIM:
|
||||
vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
|
||||
-->
|
@ -1,106 +0,0 @@
|
||||
<include>
|
||||
|
||||
<macro name="directory_intro">
|
||||
<input pattern="^(last_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person last name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name)" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="Please enter the first few digit of the person first name"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(last_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by first name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(first_name):([0-9#*])$" break_on_match="false">
|
||||
<match>
|
||||
<action function="speak-text" data="to search by last name, press $2"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_min_search_digits">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="You need to specify a minimum the first $1 letters of the person name, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count">
|
||||
<input pattern="^0$" break_on_match="true">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search match no user on this system, try again."/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1 result match your search"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_count_too_large">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Your search returned too many result, please try again"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_last">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="No more result"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_item">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="Result number $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_menu">
|
||||
<input pattern="^([0-9#*]),([0-9#*]),([0-9#*]),([0-9#*])$">
|
||||
<match>
|
||||
<action function="speak-text" data="To select this entry press $1, for the next entry press $2, for the previous entry press $3, to make a new search press $4"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_at">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="at extension $1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="directory_result_say_name">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="speak-text" data="$1"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
<!--
|
||||
For Emacs:
|
||||
Local Variables:
|
||||
mode:xml
|
||||
indent-tabs-mode:nil
|
||||
tab-width:2
|
||||
c-basic-offset:2
|
||||
End:
|
||||
For VIM:
|
||||
vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
|
||||
-->
|
@ -1,25 +0,0 @@
|
||||
<include>
|
||||
<language name="en" say-module="en" sound-prefix="$${sound_prefix}" tts-engine="cepstral" tts-voice="callie">
|
||||
<phrases>
|
||||
<macros>
|
||||
<X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
|
||||
<!-- voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
|
||||
<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
|
||||
<X-PRE-PROCESS cmd="include" data="ivr/*.xml"/> <!-- IVR and custom phrases go here -->
|
||||
</macros>
|
||||
<X-PRE-PROCESS cmd="include" data="vm/voicemail_ivr.xml"/>
|
||||
</phrases>
|
||||
</language>
|
||||
</include>
|
||||
<!--
|
||||
For Emacs:
|
||||
Local Variables:
|
||||
mode:xml
|
||||
indent-tabs-mode:nil
|
||||
tab-width:2
|
||||
c-basic-offset:2
|
||||
End:
|
||||
For VIM:
|
||||
vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
|
||||
-->
|
@ -1,153 +0,0 @@
|
||||
<include>
|
||||
<macro name="queue_position">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="ivr/ivr-you_are_number.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="play-file" data="ivr/ivr-in_line.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_called_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_joined.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="has_left_conf">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-has_left.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="callers_in_conf">
|
||||
<input pattern="^1$" break_on_match="true">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<!--<action function="play-file" data="ivr/ivr-there_is.wav"/>-->
|
||||
<action function="play-file" data="digits/1.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-listener_in_conference.wav"/>
|
||||
</match>
|
||||
</input>
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="say" data="$1" method="pronounced" type="items"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</match>
|
||||
<nomatch>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-there_are.wav"/>
|
||||
<action function="play-file" data="digits/0.wav"/>
|
||||
<action function="sleep" data="100"/>
|
||||
<action function="play-file" data="conference/conf-members_in_conference.wav"/>
|
||||
</nomatch>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_dest_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_destination_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="enter_src_number">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-enter_source_telephone_number.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_set">
|
||||
<input pattern="^(\d+):(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="play-file" data="digits/2.wav"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$2" method="iterated" type="number"/>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_set.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="call_forward_cancel">
|
||||
<input pattern="^(\d+)$">
|
||||
<match>
|
||||
<action function="sleep" data="1000"/>
|
||||
<action function="play-file" data="ivr/ivr-extension_number.wav"/>
|
||||
<action function="sleep" data="400"/>
|
||||
<action function="say" data="$1" method="iterated" type="number"/>
|
||||
<action function="play-file" data="ivr/ivr-call_forwarding_has_been_cancelled.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
<macro name="screen_confirm">
|
||||
<input pattern="^(.*)$">
|
||||
<match>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<!-- Note, be sure to pass in the full path to the file or else!! -->
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
<action function="play-file" data="ivr/ivr-call_from.wav"/>
|
||||
<action function="sleep" data="250"/>
|
||||
<action function="play-file" data="$1"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_accept_press_one.wav"/>
|
||||
<action function="sleep" data="500"/>
|
||||
<action function="play-file" data="ivr/ivr-to_reject.wav"/>
|
||||
<action function="sleep" data="50"/>
|
||||
<action function="play-file" data="ivr/ivr-hang_up.wav"/>
|
||||
<action function="sleep" data="1500"/>
|
||||
</match>
|
||||
</input>
|
||||
</macro>
|
||||
|
||||
</include>
|
||||
<!--
|
||||
For Emacs:
|
||||
Local Variables:
|
||||
mode:xml
|
||||
indent-tabs-mode:nil
|
||||
tab-width:2
|
||||
c-basic-offset:2
|
||||
End:
|
||||
For VIM:
|
||||
vim:set softtabstop=2 shiftwidth=2 tabstop=2 expandtab:
|
||||
-->
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user