Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)

Merge pull request #55665 from pmahoney/freeswitch_1_8

Freeswitch 1.8

authored by

Ryan Mulligan and committed by
GitHub
1da3cdcc 58c97c50

+316 -6
+93 -6
pkgs/servers/sip/freeswitch/default.nix
··· 1 + let 2 + 3 + # the default list from v1.8.5, except with applications/mod_signalwire also disabled 4 + defaultModules = mods: with mods; [ 5 + applications.commands 6 + applications.conference 7 + applications.db 8 + applications.dptools 9 + applications.enum 10 + applications.esf 11 + applications.expr 12 + applications.fifo 13 + applications.fsv 14 + applications.hash 15 + applications.httapi 16 + applications.sms 17 + applications.spandsp 18 + applications.valet_parking 19 + applications.voicemail 20 + 21 + applications.curl 22 + 23 + codecs.amr 24 + codecs.b64 25 + codecs.g723_1 26 + codecs.g729 27 + codecs.h26x 28 + codecs.opus 29 + 30 + dialplans.asterisk 31 + dialplans.xml 32 + 33 + endpoints.loopback 34 + endpoints.rtc 35 + endpoints.skinny 36 + endpoints.sofia 37 + endpoints.verto 38 + 39 + event_handlers.cdr_csv 40 + event_handlers.cdr_sqlite 41 + event_handlers.event_socket 42 + 43 + formats.local_stream 44 + formats.native_file 45 + formats.png 46 + formats.sndfile 47 + formats.tone_stream 48 + 49 + languages.lua 50 + 51 + loggers.console 52 + loggers.logfile 53 + loggers.syslog 54 + 55 + say.en 56 + 57 + xml_int.cdr 58 + xml_int.rpc 59 + xml_int.scgi 60 + ]; 61 + 62 + in 63 + 1 64 { fetchurl, stdenv, lib, ncurses, curl, pkgconfig, gnutls, readline 2 65 , openssl, perl, sqlite, libjpeg, speex, pcre 3 - , ldns, libedit, yasm, which, lua, libopus, libsndfile 66 + , ldns, libedit, yasm, which, lua, libopus, libsndfile, libtiff 4 67 68 + , modules ? defaultModules 5 69 , postgresql 6 70 , enablePostgres ? true 7 71 8 72 , SystemConfiguration 9 73 }: 10 74 75 + let 76 + 77 + availableModules = import ./modules.nix { inherit curl lua libopus; }; 78 + 79 + enabledModules = modules availableModules; 80 + 81 + modulesConf = let 82 + lst = builtins.map (mod: mod.path) enabledModules; 83 + str = lib.strings.concatStringsSep "\n" lst; 84 + in builtins.toFile "modules.conf" str; 85 + 86 + in 87 + 11 88 stdenv.mkDerivation rec { 12 - name = "freeswitch-1.6.20"; 89 + name = "freeswitch-1.8.5"; 13 90 14 91 src = fetchurl { 15 92 url = "https://files.freeswitch.org/freeswitch-releases/${name}.tar.bz2"; 16 - sha256 = "0hqz68abs5x5vzf1mndcvdi35nrhmnklzdrnrk8dyvzvz67hp2ah"; 93 + sha256 = "00xdrx84pw2v5pw1r5gfbb77nmvlfj275pmd48yfrc9g8c91j1sr"; 17 94 }; 18 95 postPatch = '' 19 96 patchShebangs libs/libvpx/build/make/rtcd.pl ··· 23 100 24 101 nativeBuildInputs = [ pkgconfig ]; 25 102 buildInputs = [ 26 - openssl ncurses curl gnutls readline perl libjpeg 27 - sqlite pcre speex ldns libedit yasm which lua libopus 28 - libsndfile 103 + openssl ncurses gnutls readline perl libjpeg 104 + sqlite pcre speex ldns libedit yasm which 105 + libsndfile libtiff 29 106 ] 107 + ++ lib.unique (lib.concatMap (mod: mod.inputs) enabledModules) 30 108 ++ lib.optionals enablePostgres [ postgresql ] 31 109 ++ lib.optionals stdenv.isDarwin [ SystemConfiguration ]; 32 110 ··· 35 113 hardeningDisable = [ "format" ]; 36 114 37 115 configureFlags = lib.optionals enablePostgres [ "--enable-core-pgsql-support" ]; 116 + 117 + preConfigure = '' 118 + cp "${modulesConf}" modules.conf 119 + ''; 120 + 121 + postInstall = '' 122 + # helper for compiling modules... not generally useful; also pulls in perl dependency 123 + rm "$out"/bin/fsxs 124 + ''; 38 125 39 126 meta = { 40 127 description = "Cross-Platform Scalable FREE Multi-Protocol Soft Switch";
+223
pkgs/servers/sip/freeswitch/modules.nix
··· 1 + { libopus 2 + , lua 3 + , curl 4 + }: 5 + 6 + let 7 + 8 + mk = path: inputs: { inherit path inputs; }; 9 + 10 + in 11 + 12 + # TODO: many of these are untested and missing required inputs 13 + { 14 + applications = { 15 + abstraction = mk "applications/mod_abstraction" []; 16 + av = mk "applications/mod_av" []; 17 + avmd = mk "applications/mod_avmd" []; 18 + bert = mk "applications/mod_bert" []; 19 + blacklist = mk "applications/mod_blacklist" []; 20 + callcenter = mk "applications/mod_callcenter" []; 21 + cidlookup = mk "applications/mod_cidlookup" []; 22 + cluechoo = mk "applications/mod_cluechoo" []; 23 + commands = mk "applications/mod_commands" []; 24 + conference = mk "applications/mod_conference" []; 25 + curl = mk "applications/mod_curl" [ curl ]; 26 + cv = mk "applications/mod_cv" []; 27 + db = mk "applications/mod_db" []; 28 + directory = mk "applications/mod_directory" []; 29 + distributor = mk "applications/mod_distributor" []; 30 + dptools = mk "applications/mod_dptools" []; 31 + easyroute = mk "applications/mod_easyroute" []; 32 + enum = mk "applications/mod_enum" []; 33 + esf = mk "applications/mod_esf" []; 34 + esl = mk "applications/mod_esl" []; 35 + expr = mk "applications/mod_expr" []; 36 + fifo = mk "applications/mod_fifo" []; 37 + fsk = mk "applications/mod_fsk" []; 38 + fsv = mk "applications/mod_fsv" []; 39 + hash = mk "applications/mod_hash" []; 40 + hiredis = mk "applications/mod_hiredis" []; 41 + httapi = mk "applications/mod_httapi" []; 42 + http_cache = mk "applications/mod_http_cache" []; 43 + ladspa = mk "applications/mod_ladspa" []; 44 + lcr = mk "applications/mod_lcr" []; 45 + memcache = mk "applications/mod_memcache" []; 46 + mongo = mk "applications/mod_mongo" []; 47 + mp4 = mk "applications/mod_mp4" []; 48 + mp4v2 = mk "applications/mod_mp4v2" []; 49 + nibblebill = mk "applications/mod_nibblebill" []; 50 + oreka = mk "applications/mod_oreka" []; 51 + osp = mk "applications/mod_osp" []; 52 + prefix = mk "applications/mod_prefix" []; 53 + rad_auth = mk "applications/mod_rad_auth" []; 54 + redis = mk "applications/mod_redis" []; 55 + rss = mk "applications/mod_rss" []; 56 + signalwire = mk "applications/mod_signalwire" []; 57 + sms = mk "applications/mod_sms" []; 58 + sms_flowroute = mk "applications/mod_sms_flowroute" []; 59 + snapshot = mk "applications/mod_snapshot" []; 60 + snom = mk "applications/mod_snom" []; 61 + sonar = mk "applications/mod_sonar" []; 62 + soundtouch = mk "applications/mod_soundtouch" []; 63 + spandsp = mk "applications/mod_spandsp" []; 64 + spy = mk "applications/mod_spy" []; 65 + stress = mk "applications/mod_stress" []; 66 + translate = mk "applications/mod_translate" []; 67 + valet_parking = mk "applications/mod_valet_parking" []; 68 + video_filter = mk "applications/mod_video_filter" []; 69 + vmd = mk "applications/mod_vmd" []; 70 + voicemail = mk "applications/mod_voicemail" []; 71 + voicemail_ivr = mk "applications/mod_voicemail_ivr" []; 72 + }; 73 + 74 + ast_tts = { 75 + cepstral = mk "ast_tts/mod_cepstral" []; 76 + flite = mk "ast_tts/mod_flite" []; 77 + pocketsphinx = mk "ast_tts/mod_pocketsphinx" []; 78 + tts_commandline = mk "ast_tts/mod_tts_commandline" []; 79 + unimrcp = mk "ast_tts/mod_unimrcp" []; 80 + }; 81 + 82 + codecs = { 83 + amr = mk "codecs/mod_amr" []; 84 + amrwb = mk "codecs/mod_amrwb" []; 85 + b64 = mk "codecs/mod_b64" []; 86 + bv = mk "codecs/mod_bv" []; 87 + clearmode = mk "codecs/mod_clearmode" []; 88 + codec2 = mk "codecs/mod_codec2" []; 89 + com_g729 = mk "codecs/mod_com_g729" []; 90 + dahdi_codec = mk "codecs/mod_dahdi_codec" []; 91 + g723_1 = mk "codecs/mod_g723_1" []; 92 + g729 = mk "codecs/mod_g729" []; 93 + h26x = mk "codecs/mod_h26x" []; 94 + ilbc = mk "codecs/mod_ilbc" []; 95 + isac = mk "codecs/mod_isac" []; 96 + mp4v = mk "codecs/mod_mp4v" []; 97 + opus = mk "codecs/mod_opus" [ libopus ]; 98 + sangoma_codec = mk "codecs/mod_sangoma_codec" []; 99 + silk = mk "codecs/mod_silk" []; 100 + siren = mk "codecs/mod_siren" []; 101 + theora = mk "codecs/mod_theora" []; 102 + }; 103 + 104 + dialplans = { 105 + asterisk = mk "dialplans/mod_dialplan_asterisk" []; 106 + directory = mk "dialplans/mod_dialplan_directory" []; 107 + xml = mk "dialplans/mod_dialplan_xml" []; 108 + }; 109 + 110 + directories = { 111 + ldap = mk "directories/mod_ldap" []; 112 + }; 113 + 114 + endpoints = { 115 + alsa = mk "endpoints/mod_alsa" []; 116 + dingaling = mk "endpoints/mod_dingaling" []; 117 + gsmopen = mk "endpoints/mod_gsmopen" []; 118 + h323 = mk "endpoints/mod_h323" []; 119 + khomp = mk "endpoints/mod_khomp" []; 120 + loopback = mk "endpoints/mod_loopback" []; 121 + opal = mk "endpoints/mod_opal" []; 122 + portaudio = mk "endpoints/mod_portaudio" []; 123 + rtc = mk "endpoints/mod_rtc" []; 124 + rtmp = mk "endpoints/mod_rtmp" []; 125 + skinny = mk "endpoints/mod_skinny" []; 126 + sofia = mk "endpoints/mod_sofia" []; 127 + verto = mk "endpoints/mod_verto" []; 128 + }; 129 + 130 + event_handlers = { 131 + amqp = mk "event_handlers/mod_amqp" []; 132 + cdr_csv = mk "event_handlers/mod_cdr_csv" []; 133 + cdr_mongodb = mk "event_handlers/mod_cdr_mongodb" []; 134 + cdr_pg_csv = mk "event_handlers/mod_cdr_pg_csv" []; 135 + cdr_sqlite = mk "event_handlers/mod_cdr_sqlite" []; 136 + erlang_event = mk "event_handlers/mod_erlang_event" []; 137 + event_multicast = mk "event_handlers/mod_event_multicast" []; 138 + event_socket = mk "event_handlers/mod_event_socket" []; 139 + fail2ban = mk "event_handlers/mod_fail2ban" []; 140 + format_cdr = mk "event_handlers/mod_format_cdr" []; 141 + json_cdr = mk "event_handlers/mod_json_cdr" []; 142 + radius_cdr = mk "event_handlers/mod_radius_cdr" []; 143 + odbc_cdr = mk "event_handlers/mod_odbc_cdr" []; 144 + kazoo = mk "event_handlers/mod_kazoo" []; 145 + rayo = mk "event_handlers/mod_rayo" []; 146 + smpp = mk "event_handlers/mod_smpp" []; 147 + snmp = mk "event_handlers/mod_snmp" []; 148 + event_zmq = mk "event_handlers/mod_event_zmq" []; 149 + }; 150 + 151 + formats = { 152 + imagick = mk "formats/mod_imagick" []; 153 + local_stream = mk "formats/mod_local_stream" []; 154 + native_file = mk "formats/mod_native_file" []; 155 + png = mk "formats/mod_png" []; 156 + portaudio_stream = mk "formats/mod_portaudio_stream" []; 157 + shell_stream = mk "formats/mod_shell_stream" []; 158 + shout = mk "formats/mod_shout" []; 159 + sndfile = mk "formats/mod_sndfile" []; 160 + ssml = mk "formats/mod_ssml" []; 161 + tone_stream = mk "formats/mod_tone_stream" []; 162 + vlc = mk "formats/mod_vlc" []; 163 + }; 164 + 165 + languages = { 166 + basic = mk "languages/mod_basic" []; 167 + java = mk "languages/mod_java" []; 168 + lua = mk "languages/mod_lua" [ lua ]; 169 + managed = mk "languages/mod_managed" []; 170 + perl = mk "languages/mod_perl" []; 171 + python = mk "languages/mod_python" []; 172 + v8 = mk "languages/mod_v8" []; 173 + yaml = mk "languages/mod_yaml" []; 174 + }; 175 + 176 + loggers = { 177 + console = mk "loggers/mod_console" []; 178 + graylog2 = mk "loggers/mod_graylog2" []; 179 + logfile = mk "loggers/mod_logfile" []; 180 + syslog = mk "loggers/mod_syslog" []; 181 + raven = mk "loggers/mod_raven" []; 182 + }; 183 + 184 + say = { 185 + de = mk "say/mod_say_de" []; 186 + en = mk "say/mod_say_en" []; 187 + es = mk "say/mod_say_es" []; 188 + es_ar = mk "say/mod_say_es_ar" []; 189 + fa = mk "say/mod_say_fa" []; 190 + fr = mk "say/mod_say_fr" []; 191 + he = mk "say/mod_say_he" []; 192 + hr = mk "say/mod_say_hr" []; 193 + hu = mk "say/mod_say_hu" []; 194 + it = mk "say/mod_say_it" []; 195 + ja = mk "say/mod_say_ja" []; 196 + nl = mk "say/mod_say_nl" []; 197 + pl = mk "say/mod_say_pl" []; 198 + pt = mk "say/mod_say_pt" []; 199 + ru = mk "say/mod_say_ru" []; 200 + sv = mk "say/mod_say_sv" []; 201 + th = mk "say/mod_say_th" []; 202 + zh = mk "say/mod_say_zh" []; 203 + }; 204 + 205 + timers = { 206 + posix_timer = mk "timers/mod_posix_timer" []; 207 + timerfd = mk "timers/mod_timerfd" []; 208 + }; 209 + 210 + xml_int = { 211 + cdr = mk "xml_int/mod_xml_cdr" []; 212 + curl = mk "xml_int/mod_xml_curl" [ curl ]; 213 + ldap = mk "xml_int/mod_xml_ldap" []; 214 + radius = mk "xml_int/mod_xml_radius" []; 215 + rpc = mk "xml_int/mod_xml_rpc" []; 216 + scgi = mk "xml_int/mod_xml_scgi" []; 217 + 218 + # experimental 219 + odbc = mk "../../contrib/mod/xml_int/mod_xml_odbc" []; 220 + }; 221 + 222 + freetdm = mk "../../libs/freetdm/mod_freetdm" []; 223 + }