Compare commits

...

543 Commits
1.10.1 ... v1.6

Author SHA1 Message Date
Mike Jerris 43a9feb7f8 FS-11061: [core] fix build with newer pcre 2018-05-07 14:56:11 -04:00
Mike Jerris 987c9b9a2a version bump 2018-01-23 15:49:09 -06:00
Mike Jerris b1b21d0695 cleanup unused 2017-11-20 11:34:16 -05:00
Anthony Minessale 86184a2f73 FS-10757: [mod_conference] Race condition freeing avatar image #resolve 2017-10-25 14:21:26 -05:00
Anthony Minessale ccb31ab442 FS-10667: [core] Segfault in crypto / srtp 2017-10-25 12:31:10 -05:00
Anthony Minessale f51b5d2dce FS-10734: [mod_conference] Fix deadlock on hangup race #resolve 2017-10-19 13:25:35 -05:00
Anthony Minessale 38f568d343 FS-10527: [mod_av] AV tweaks 2017-09-27 12:58:34 -05:00
Mike Jerris 6a73479e7f FS-10574: fix deadlock on invalid syntax using conference record api 2017-09-19 17:51:37 -05:00
Anthony Minessale febfb385aa FS-10667: [core] Segfault in crypto / srtp #resolve 2017-09-14 18:14:02 -05:00
Anthony Minessale ba8a0984cd FS-10667: [core] Segfault in crypto / srtp #resolve 2017-09-13 17:29:07 -05:00
Anthony Minessale e536cdae24 FS-10527: [mod_av] AV tweaks -- using more threads on decode is a little buggy 2017-09-06 13:48:26 -05:00
Anthony Minessale 968beedaf3 FS-10647: [mod_av] Video quality degragation from 1.6.17 to 1.6.19 #resolve 2017-09-06 12:59:34 -05:00
Anthony Minessale 4c3e34145f FS-10604: [core] Segfault in libcrypto / dtls #resolve 2017-09-06 12:29:27 -05:00
Brian West 3ada6bd35a [core] FS-10587 502 response sent on codec mismatch 2017-08-24 15:06:04 -05:00
Anthony Minessale 2288f160c8 FS-10609: [mod_verto] Invalid pointer in verto channel #resolve 2017-08-24 11:17:24 -05:00
Anthony Minessale c3c408c634 FS-10270 add additional patch 2017-08-24 11:12:12 -05:00
Anthony Minessale c28091bc4e FS-10601: [freeswitch-core] accomodate should be accommodate #resolve 2017-08-21 17:09:37 -05:00
Anthony Minessale afc16e5bce FS-10571: [mod_conference,RTP] TMMBR messages request the same size for any user layout size when manage-inbound-video-bitrate enabled 2017-08-21 12:38:59 -05:00
Mike Jerris 9f782bdc04 FS-10577: [core] start additional event dispatch threads based on event system queue size 2017-08-09 16:25:26 -05:00
Anthony Minessale 21620cc3a3 FS-10562: [core] Crashes referencing cannot access memory #comment Firefox sending only candidates for RTCP and not RTP causing funky code path #resolve 2017-07-31 15:01:01 -05:00
Anthony Minessale 384f3c7eb5 FS-10472: [mod_conference] Crash due to hangup race in conference personal canvas mode -- minor regression 2017-07-28 18:09:05 -05:00
Anthony Minessale e61ee1a179 FS-10379: [mod_conference] Set canvas size based on a variable -- lock width and height to even numbers 2017-07-25 16:08:52 -05:00
Anthony Minessale 1659953c6b FS-10532: [mod_av] Add an av command to mod_av and use it to modify log level #resolve 2017-07-21 13:55:15 -05:00
Anthony Minessale 41a7fc78f8 FS-10528: [mod_conference] Put proper color behind letterboxed video avatars #resolve 2017-07-20 17:59:00 -05:00
Anthony Minessale 4845490960 FS-10527: [mod_av] AV tweaks 2017-07-20 17:35:56 -05:00
Anthony Minessale babb7ce12c FS-10526: [freeswitch-core] Uninitialized variable in switch_img_fit when using SWITCH_FIT_SIZE_AND_SCALE #resolve 2017-07-20 17:28:56 -05:00
Anthony Minessale 35542d33ee FS-10091: [mod_conference] Conference play file with full-screen=true has side effect on member video -- - manual cherry pick 2017-07-20 17:25:08 -05:00
Anthony Minessale 1a7c04da88 FS-10523: [freeswitch-core] Websocket disconnects prematurely #resolve 2017-07-20 02:57:06 -05:00
Anthony Minessale 3ed616e4f1 FS-10472: [mod_conference] Crash due to hangup race in conference personal canvas mode -- the saga continues 2017-07-20 02:56:51 -05:00
Anthony Minessale c90cc5e7f4 FS-10472: [mod_conference] Crash due to hangup race in conference personal canvas mode -- the saga continues 2017-07-20 02:36:20 -05:00
Anthony Minessale 324f31130c FS-10472: [mod_conference] Crash due to hangup race in conference personal canvas mode -- the saga continues 2017-07-19 23:06:36 -05:00
Anthony Minessale c540248da4 FS-10472: [mod_conference] Crash due to hangup race in conference personal canvas mode -- Regression fixed with playing files cont (manual cherry-pick) 2017-07-14 15:18:31 -05:00
Anthony Minessale 26cbfd4f6c FS-10379: [mod_conference] Set canvas size based on a variable 2017-07-14 11:30:21 -05:00
Anthony Minessale 60a5ff16d7 FS-10472: [mod_conference] Crash due to hangup race in conference personal canvas mode -- manual cherry pick 2017-07-13 18:12:54 -05:00
Ken Rice 7a77e0bb2c version bump 2017-07-13 07:01:45 -05:00
Mike Jerris eee4464139 swigall 2017-07-11 12:59:09 -05:00
Mike Jerris 03749835f2 Revert "FS-10304: [mod_callcenter] Prevent infinite logging when a stale queue member in found in the database"
This reverts commit 5d4ee9a851.
2017-07-11 13:51:46 -04:00
Mike Jerris dfa9bb6000 FS-10427: move mod_lua to use swig3.0 so we can reswig on debian9
Conflicts:
	src/mod/languages/mod_lua/mod_lua_wrap.cpp
2017-07-11 12:21:45 -05:00
Mike Jerris 212af9f22b FS-10480: [mod_av] fix crash recording an audio only stream to an rtmp stream 2017-07-11 13:11:17 -04:00
trevora 988fcc8c6f FS-10395: [mod_sofia] Fix ssl error handling in tls sip traffic
Clears SSL error state.

Updates tport_tls.c to clear the SSL error state after an error occurs.

OpenSSL puts errors into a queue that is kept in thread local storage.
In some cases, such as when SSL_ERROR_SSL is returned by SSL_get_errror(),
OpenSSL will queue multiple errors for a single event. When this occurs,
OpenSSL will report an error the next time I/O is performed if the queue
is not cleared first, which can result in TLS connections being torn down
prematurely.
2017-07-11 13:10:46 -04:00
Hristo Trendev e2b7928add FS-10407: [mod_sofia] Set redirect variables when outbound_redirect_fatal is true
In case of outbound_redirect_fatal=true none of the redirect variables are
set. This makes it impossible for ESL applications to extract any information
related to the "302 Moved Temporarily" reply.
2017-07-11 13:10:36 -04:00
Antonio 2fae7089b2 Revert "FS-10299 [mod_callcenter] Removing global lock on all cc_execute_sql functions when executing database queries"
This reverts commit faf87febdb.
2017-07-11 13:10:11 -04:00
Sergey Safarov 945710cc71 FS-10451: Updated sound files descriptions 2017-07-11 13:07:25 -04:00
Mike Jerris 79deef5fbe FS-10388: [core] fix crash on shutdown when using multiple meida bugs 2017-07-11 13:06:23 -04:00
Mike Jerris acc9821ef6 FS-10388: [core] fix crash on shutdown when using multiple meida bugs 2017-07-11 13:06:15 -04:00
Eduardo Marinho 5d4ee9a851 FS-10304: [mod_callcenter] Prevent infinite logging when a stale queue member in found in the database
Having a member from a queue that is no longer found on the current system
causes infinite logging about skipping a member.

There is already cleanup code for abandoned calls in same function, but it can
never be reached for this case, because there is no queue.

If the queue is never found again in the system, the logging would continue
forever or until the stale record gets removed from the database.

FS-10304 #resolve
2017-07-11 13:04:46 -04:00
Anthony Minessale 747eb4cfcf FS-10466: [freeswitch-core] Add session to some log lines #resolve 2017-07-11 13:03:37 -04:00
Mike Jerris f20b28424e FS-10458: [mod_av] temporarily silence warning when building against ffmpeg 3.2 until we fix them properly 2017-07-11 13:03:10 -04:00
Mike Jerris 737f2848b7 FS-10457: [mod_cdr_csv] set group too when creating new csv file so other users in the group can access it 2017-07-11 13:02:59 -04:00
lazedo af764d21bc FS-10453 [kazoo] fix dropped messages 2017-07-11 13:02:25 -04:00
Trever L. Adams b11bdd0016 FS-9785: Fix src/switch_ivr_play_say.c:1668:48: error: ‘*’ in boolean context, suggest ‘&&’ instead [-Werror=int-in-bool-context] 2017-07-11 13:01:42 -04:00
Trever L. Adams 2ac4d17314 FS-9785: Fix format-truncation warnings for systems that treat it as an error. 2017-07-11 13:01:30 -04:00
Mike Jerris 67e7f66445 FS-10439: [mod_sofia] fix small leak when receiving REFER message 2017-07-11 12:59:59 -04:00
Italo Rossi 3f992435a4 FS-10444 [vanilla config/languages] Adding phrases and macros tag to languages es, pt and sv 2017-07-11 12:59:46 -04:00
Italo Rossi 71b3ef44be FS-10432 [mod_callcenter] Increase agent contact field up to 1024. 2017-07-11 12:58:55 -04:00
Mike Jerris e444852e0f FS-10431: [mod_smpp] fix build on newer compilers due to malformed system headers 2017-07-11 12:58:30 -04:00
Mike Jerris edec9694c4 FS-9785: fix build deps for mod_java 2017-07-11 12:57:12 -04:00
Mike Jerris 9a2f3268ba FS-10427: move mod_python to use swig3.0 so we can reswig on debian9 2017-07-11 12:57:04 -04:00
Mike Jerris 38a215d237 FS-10427: move mod_perl to use swig3.0 so we can reswig on debian9 2017-07-11 12:56:46 -04:00
Mike Jerris 057dcfbc2f FS-10427: move mod_java to use swig3.0 so we can reswig on debian9 2017-07-11 12:55:46 -04:00
Mike Jerris 2db78891f5 FS-10427: move libesl to use swig3.0 so we can reswig on debian9 2017-07-11 12:55:38 -04:00
Italo Rossi 2559bbe14d FS-9894 [verto_communicator] Removing refreshDevices before doing a call. 2017-07-11 12:54:17 -04:00
Brian West 637f3b6336 FS-10406: [mod_sofia] mod_sofia secure websocket connections SSLv3 and tls v1.0 is still not disabled #resolve 2017-07-11 12:51:52 -04:00
Brian West 3da50fc110 FS-10356: [core] Do not blindly print error string from rtp/stun packets 2017-07-11 12:51:09 -04:00
Trevor Alpeter 4a39e94c26 FS-10370: Enable SRTP Key Padding
Some clients rely on Base64 padding characters (i.e., '=') to be present
in encoded SRTP key/salt strings to determine the length of the encoded
data. However, FreeSWITCH removes these characters before including the
encoded strings in the SDP. This causes those clients that rely on the
padding to truncate the encoded data and be unable to properly set up an
encrypted SRTP session.

This change introduces a channel flag named 'rtp_pad_srtp_keys'. When
this flag is enabled, FreeSWITCH includes the Base64 padding characters
in the SDP. This allows clients that rely on the padding to retrieve the
full key and salt values and successfully negotiate an SRTP stream with
FreeSWITCH.

FS-103070 #resolve
2017-07-11 12:50:49 -04:00
Sebastian Kemper 93565545ec FS-10384 [mod_lua] Fix Makefile target
When running "make swigclean" in mod_lua directory and trying to compile
mod_lua afterward, the build fails because the target mod_lua_wrap.cpp
doesn't exist. The target is wrongly called lua_wrap instead.

making all mod_lua
make[7]: Entering directory '/path/to/freeswitch-1.6.17/src/mod/languages/mod_lua'
  CXX mod_lua_la-mod_lua.lo
  CXX mod_lua_la-freeswitch_lua.lo
make[7]: *** No rule to make target 'mod_lua_wrap.cpp', needed by 'mod_lua_la-mod_lua_wrap.lo'. Stop.

Fix this by renaming lua_wrap to mod_lua_wrap.cpp.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2017-07-11 12:49:25 -04:00
Anthony Minessale 403ef4b2bb FS-10472: [mod_conference] Invalid free in personal canvas mode - manual cherry-pick of 2ee8d58 2017-07-10 19:50:52 -05:00
Anthony Minessale 1840c22a2e FS-10472: [mod_conference] Invalid free in personal canvas mode 2017-07-10 19:14:57 -05:00
Anthony Minessale 812e3daf70 FS-10448: [mod_conference] Add Video Blind -- make blind video feature work in passthrough mode too 2017-07-07 11:35:56 -05:00
Anthony Minessale fae9408532 FS-10473: [freeswitch-core] FreeSWITCH crash - Null event pointer dereference during conference_cdr_del #resolve 2017-07-06 14:39:43 -05:00
Anthony Minessale 7b875c3321 FS-10472: [mod_conference] Invalid free in personal canvas mode #resolve 2017-07-05 18:12:30 -05:00
Anthony Minessale 9a2738964f FS-10286: [mod_conference] Sync member joins up with keyframes in shared encoder mode -- high cpu usage on h264 2017-07-05 18:12:14 -05:00
Anthony Minessale db529ca382 FS-10456: [mod_av] add wav support to mod_av as well as specifying audio_codec -- add av_record_audio_only param 2017-06-30 12:38:19 -05:00
Anthony Minessale 7c98ed7eb1 FS-10456: [mod_av] add wav support to mod_av as well as specifying audio_codec #resolve 2017-06-30 12:32:24 -05:00
Anthony Minessale 81e47636c1 FS-10454: [mod_av] Regression in video file seek #resolve 2017-06-30 11:29:14 -05:00
Anthony Minessale a2e14fc624 FS-10448: [mod_conference] Add Video Blind -- add tweak 2017-06-30 10:29:13 -05:00
Trever L. Adams fb37138f14 FS-9785: fix ./mod_conference.h:353:23: error: enumerator value for ‘EFLAG_BLIND_MEMBER’ is not an integer constant expression [-Werror=pedantic] EFLAG_BLIND_MEMBER = (1 << 31) 2017-06-30 10:28:18 -05:00
Anthony Minessale aaf86d8bb6 FS-10440: [mod_httapi] valgrind: event leak in mod_httapi.c #resolve 2017-06-29 18:21:38 -05:00
Anthony Minessale c7a1f28737 hand pick 8734c9070d FS-10448: [mod_conference] Add Video Blind 2017-06-29 18:14:38 -05:00
Anthony Minessale 2756c96f9d FS-10433: [mod_av,mod_conference] Crash when video recording fails to setup properly -- fix regression 2017-06-29 18:11:44 -05:00
Anthony Minessale b8876da6d4 hand pick db47792558 - FS-10447: [freeswitch-core] Manual video refresh mode 2017-06-29 17:00:07 -05:00
Anthony Minessale 3da0ad047b FS-10433: [mod_av,mod_conference] Crash when video recording fails to setup properly #resolve 2017-06-28 12:17:04 -05:00
Anthony Minessale b1dcfac802 FS-10394: [freeswitch-core] FS Crash while linphone sends ICE packets 2017-06-28 11:32:40 -05:00
Anthony Minessale f0eae43e29 FS-10394: [freeswitch-core] FS Crash while linphone sends ICE packets #resolve 2017-06-27 21:03:09 -05:00
Anthony Minessale 407b8893a5 FS-10249: [mod_av] Audio gradually falls behind video in recordings -- init timer for audio only as well 2017-06-27 13:06:48 -05:00
Anthony Minessale c78e58abc7 FS-10409: [core] Crash (ABRT) using conferencing -- related to FS-10132 #resolve 2017-06-26 18:17:08 -05:00
Mike Jerris 5a71d79e97 FS-10405: fix typo in timer destroy check 2017-06-26 14:17:56 -05:00
Anthony Minessale 9fb8a0c79d FS-10417: [freeswitch-core] Reduce flicker in screen sharing -- minor tweak 2017-06-26 12:57:11 -05:00
Andrey Volk 8aeca1d3df FS-9717 [Build-System] Fix missing mods in msi packages. Fix x64 release build on a clean tree on windows. 2017-06-23 15:44:11 -04:00
Anthony Minessale 094edeea2e FS-10387: [core] High memory usage with mod_sofia, osmo-nitb and DTX setting active #resolve 2017-06-22 15:48:46 -05:00
Mike Jerris 0a69fc7ecc FS-10405: [core] Fix Timer destroy error on one legged calls 2017-06-22 13:56:08 -05:00
Anthony Minessale 373d78f8b2 manually cherry pick 7c19615 -- FS-10417: [freeswitch-core] Reduce flicker in screen sharing 2017-06-21 19:29:45 -05:00
Ken Rice 6e79667c0a version bump 2017-06-12 16:14:49 -05:00
Roman Sukhov 36a60bdcaf FS-10383 [freeswitch-core] Destroy RTP session write timer 2017-06-09 17:33:14 -05:00
Anthony Minessale 1150d843c7 FS-10378: [freeswitch-core] VPX Tweaks 2017-06-07 19:41:35 -05:00
Anthony Minessale 582a7c76c4 FS-10379: [mod_conference] Set canvas size based on a variable 2017-06-07 18:13:16 -05:00
Anthony Minessale d0aea09784 FS-10378: [freeswitch-core] VPX Tweaks #resolve 2017-06-07 18:01:20 -05:00
Nicholas Blasgen d3aa6c2d60 FS-10084 [mod_v8] If the value passed is negative, block until event is received 2017-06-06 13:52:17 -05:00
Anthony Minessale 39700ab04d FS-10372: [Build-System,fs-utils] #resolve 2017-06-06 13:56:42 -05:00
Anthony Minessale ab631fdcee FS-10371: [mod_httapi] Typo in httapi causes files to always report video #resolve 2017-06-06 12:38:15 -05:00
Anthony Minessale f1b332e916 FS-10369: [freeswitch-core] Preserve original progress time when getting more than one 2017-06-06 09:41:16 -05:00
Anthony Minessale 1eb5ee1a84 FS-10240: [freeswitch-core] Use the "Negative Lookahead" in xml dialplan cause memory leak #resolve
Conflicts:
	src/switch_channel.c
2017-06-06 09:40:16 -05:00
Brian West 595a5fc15a FS-10257: [mod_sofia] libsofia-sip-ua/msg no longer builds on Arch Linux due to -Werror=parentheses
Conflicts:
	libs/sofia-sip/.update
2017-06-06 09:36:54 -05:00
Anthony Minessale 4f9dab90c2 FS-10189: [core] switch_core_add_state_handler runtime.state_handler_index may exceed SWITCH_MAX_STATE_HANDLERS #resolve 2017-06-05 18:33:26 -05:00
Mike Jerris a855548c85 update phrase 2017-06-05 15:24:25 -05:00
Anthony Minessale 5eeed0f792 FS-10369: [freeswitch-core] Preserve original progress time when getting more than one #resolve 2017-06-05 15:24:25 -05:00
Andrey Volk 6c55cd651b FS-10362 [mod_lua] Update lua to 5.2.4 for windows build.
Conflicts:
	.gitignore
	src/mod/languages/mod_lua/lua/lgc.c
2017-06-05 15:24:25 -05:00
Andrey Volk 4eef9e38b9 FS-10365 [mod_http_cache] Add mod_http_cache to the windows build.
Conflicts:
	Freeswitch.2015.sln
2017-06-05 15:24:25 -05:00
Andrey Volk 983a0a7c72 FS-10364 [mod_event_multicast] Enable encryption on windows by adding missing defines. 2017-06-05 15:24:25 -05:00
Andrey Volk b19ec7c6b9 FS-10363 [Core] Move openssl to props on windows.
Conflicts:
	w32/Library/FreeSwitchCore.2015.vcxproj
2017-06-05 15:24:24 -05:00
Anthony Minessale 8e8b524d37 FS-10360: [freeswitch-core,verto.js] FireFox Screen Sharing #resolve
Conflicts:
	html5/verto/js/src/jquery.FSRTC.js
	html5/verto/video_demo-live_canvas/js/verto-min.js
	html5/verto/video_demo/js/verto-min.js
2017-06-05 15:24:18 -05:00
Ken Rice 399a95f7b8 swigall 2017-06-01 18:02:50 -05:00
Mike Jerris 8558037a42 swigall 2017-06-01 17:56:01 -05:00
Anthony Minessale 8ceb25b4db FS-10269: [mod_conference] conference recording pause doesn't work correctly for video -- fix regression from change re: FS-10249 2017-06-01 16:37:55 -04:00
Anthony Minessale de9025c95f FS-10249: [mod_av] Audio gradually falls behind video in recordings #comment Based on that feedback, please try latest master 2017-06-01 16:37:48 -04:00
Anthony Minessale 7c13d0b214 FS-10269: [mod_conference] conference recording pause doesn't work correctly for video #resolve 2017-06-01 16:37:40 -04:00
Mike Jerris 6290130011 FS-10319: fix build errors from rtp ts changes 2017-06-01 16:21:42 -04:00
Mike Jerris d618a767ac FS-10338: [mod_sofia] add sip_invite_stamp variable of the time we received initial invite on an inbound call leg 2017-06-01 16:18:44 -04:00
Anthony Minessale 76e0b3bdee FS-10328: [freeswitch-core] Add method to allow orphaned B legs during originate to transfer to another extension 2017-06-01 16:18:24 -04:00
Neto Guimaraes b2a692432d FS-10309: [verto_communicator] Add a loader that shows up when check network is called and vanishes when the request is completed.
The button to check network now is disabled when a request is processing.
2017-06-01 16:17:52 -04:00
Neto Guimaraes 1aa49b3800 FS-10310 [verto_communicator]: Adding validation at change login information modal 2017-06-01 16:16:08 -04:00
Tiago Lisboa 79241d13a3 FS-8941: [verto_communicator] Add No Microphone label to audio devices
If no microphone was detected it was impossible to open a call.

So, add a No Microphone label, just like the No Camera, with id:none,
wich allow to enter a call with microphone disabled.
2017-06-01 16:15:51 -04:00
Mike Jerris 59f9157ead FS-10300: [mod_verto] fix crash in multiple verto messages when processing messages with missing params 2017-06-01 16:15:11 -04:00
Italo Rossi 5ffe9d8c64 FS-10299 [mod_callcenter] Removing global lock on all cc_execute_sql functions when executing database queries 2017-06-01 16:13:43 -04:00
Italo Rossi 3ecddca30e FS-10298 [mod_callcenter] Firing bridge-agent-end if we failed to bridge answered agent with member. 2017-06-01 16:13:25 -04:00
Brian West 5fb6632c0d FS-10267: [freeswitch-core] zrtp_enrollment broken since 1.6.13 #resolve 2017-06-01 16:13:01 -04:00
Anthony Minessale c4aa3c0eb4 FS-10291: [fs_cli] fs_cli Error indicated on console loglevel debug with extra whitespace before or after debug #resolve 2017-06-01 16:12:23 -04:00
Anthony Minessale 98a0b49959 FS-10285: [verto.js] Device enumeration in Edge #resolve 2017-06-01 16:11:33 -04:00
Anthony Minessale 880b59e6ab FS-9242: [verto.js] Update WebRTC code in verto to match latest spec -- update to latest 2017-06-01 16:06:45 -04:00
Mitch Capper 1a1af6cf26 FS-10071 mod_perl safety fix for clone call
Adding NULL at the end of our fake ARGV string for completeness
2017-06-01 16:06:05 -04:00
Dragos Oancea 8b1d287f10 FS-10282: mod_opus: fix some logging for debug mode (when opus_debug is on) 2017-06-01 16:05:45 -04:00
Bas Couwenberg b4ab7028f2 FS-10279: Fix double digit pronounciation (mod_say_nl). 2017-06-01 16:05:15 -04:00
Roman Sukhov 0e0636070d FS-10085 [mod_callcenter] fix no_answer_delay_time behavoir in ring-all strategy 2017-06-01 16:04:51 -04:00
Marc Olivier Chouinard 1aba264264 FS-10111: mod_xml_cdr Create folder recursivery to the specified destination 2017-06-01 16:04:30 -04:00
Dragos Oancea be1d5509b4 FS-10172: mod_event_socket: handle return codes from switch_queue_trypush() , more verbose logging when we cannot enqueue 2017-06-01 16:04:05 -04:00
Anthony Minessale 10c4eb8e8e FS-10269: [mod_conference] conference recording pause doesn't work correctly for video -- partial 2017-06-01 16:03:39 -04:00
Merwan Ouddane 2e1c4d68eb [FS-10155] French digits are not spelled right 2017-06-01 15:58:45 -04:00
Andrey Volk 988eff2d0c FS-10246 [Core] Fix VPX codecs for windows build 2017-06-01 15:57:14 -04:00
Anthony Minessale a6e9dbaded FS-10270: [mod_conference] Regression in personal canvas -- from: f1d8685566 #resolve 2017-06-01 15:56:11 -04:00
Alexey Melnichuk 1c603688b9 FS-10268. Set correct Event-Name for RECV_EVENT event in sofia endpoint 2017-06-01 15:23:54 -04:00
Bas Couwenberg 93032f3615 FS-10208: Exclude .git* files & gbp.conf from upstream tarball for Debian package. 2017-06-01 15:23:34 -04:00
Seven Du dadf19e38c FS-10352 #resolve fix size doesn't match causing segs when casts to switch_rtp_packet_t 2017-06-01 15:23:12 -04:00
Dragos Oancea 93e0f7164f FS-10264: extend switch_rtp_packet_t to fix jitter buffer bug triggered by RTP ext headers (RFC5285) 2017-06-01 15:16:23 -04:00
Italo Rossi c8d5fed7c5 FS-10228: [switch_pgsql] Avoiding double openssl initialization when using core pgsql 2017-06-01 15:15:24 -04:00
Chad Phillips 522267060a FS-10261: Fire conference-destroy event later
The conference-destroy event can fire later, after more conference shutdown
operations are complete, such as closing open recording files.
2017-06-01 15:14:48 -04:00
Anthony Minessale 4dec277ea0 FS-10258: [mod_sofia] FW must keep previously negotiated DTLS role during SIP re-INVITE 2017-06-01 14:59:20 -04:00
Anthony Minessale fa6e6c4e0c FS-10150: [freeswitch-core] Reduce writes to closed ssl sockets -- same fix for non-ssl sockets #resolve 2017-06-01 14:46:44 -04:00
Anthony Minessale 47af36ff83 FS-10225: [mod_conference] Incorrect layout chosen when playing a file in a conference with a layout group -- fix regression when playing files into a group layout 2017-06-01 14:42:00 -04:00
Mike Jerris b0a295e2e3 FS-10246: [build] fix code can not be reached build error 2017-05-30 16:47:00 -04:00
Brian West 874ec983b7 FS-10169: [mod_local_stream] When using local stream commands FreeSWITCH locks up #resolve 2017-05-30 16:46:03 -04:00
Brian West 03949cbd76 FS-10169: [mod_local_stream] When using local stream commands FreeSWITCH locks up #resolve 2017-05-30 16:45:56 -04:00
Chris Rienzo b83f7c4417 FS-10251 [mod_rayo] fix defects found by clang-analyzer 2017-05-30 16:45:26 -04:00
Josh Allmann ff31fd17ff FS-10241: Convert sofia_send_info_vid_refresh to a chanvar. 2017-05-30 16:45:14 -04:00
Mike Jerris 4a280c70e4 FS-10236: [core] fix crash on hangup with multiple media bugs 2017-05-30 16:45:00 -04:00
Anthony Minessale f17ac2feb2 FS-10249: [mod_av] Audio gradually falls behind video in recordings 2017-05-26 17:41:25 -05:00
Anthony Minessale efbf7e5473 FS-10249: [mod_av] Audio gradually falls behind video in recordings 2017-05-25 12:03:20 -05:00
Anthony Minessale 7ef54c2926 FS-10326: [mod_conference] Memory leak while playing video files that contain only a video stream #resolve 2017-05-23 12:43:28 -05:00
Anthony Minessale c13a2fb380 FS-10231: [freeswitch-core] Some media bugs not fully cleaned up when session is destroyed #comment Regression causing deadlock when holding write lock and close/destroying all the bugs but the video recording thread tries to read lock. Separating destroy out so it can be called outside the lock after the bugs are detached. 2017-05-23 12:36:53 -05:00
Anthony Minessale 1cd2c607c9 FS-10335: [mod_av] Colors in recorded MP4 appear dull #resolve 2017-05-22 19:59:39 -05:00
Bradley Jokinen 05c499a7b4 FS-10231 Fix issue with media bugs not being completely cleaned up when session is destroyed 2017-05-19 18:18:57 -05:00
Anthony Minessale 6e428c9ba3 FS-10249: [mod_av] Audio gradually falls behind video in recordings #comment backport to 1.6 2017-05-19 18:24:47 -05:00
Anthony Minessale 198eb824cc FS-10328: [freeswitch-core] Add method to allow orphaned B legs during originate to transfer to another extension #resolve 2017-05-18 11:58:44 -05:00
Anthony Minessale ba43392462 FS-10312: [mod_event_socket] bgapi uuid_transfer using -both option is not transfering both uuid's 2017-05-16 14:50:40 -05:00
Anthony Minessale 7ddfd3a004 FS-10312: [mod_event_socket] bgapi uuid_transfer using -both option is not transfering both uuid's #resolve 2017-05-16 13:16:59 -05:00
Anthony Minessale 7f8478232a FS-10311: [core] RTP timestamp rollover calculation is incorrect 2017-05-15 18:00:56 -05:00
Anthony Minessale 03427ba5ab FS-10320: [mod_av] Playing a file with audio only with mod_av can crash when attempting to seek #resolve 2017-05-15 17:28:26 -05:00
Anthony Minessale e052ef9218 FS-10311: [core] RTP timestamp rollover calculation is incorrect 2017-05-12 14:35:26 -05:00
Anthony Minessale 5bc30edbda FS-10311: [core] RTP timestamp rollover calculation is incorrect #resolve 2017-05-12 14:05:39 -05:00
Anthony Minessale 948af93946 FS-10307: [freeswitch-core] Repetitive verto re-attach with video only channels can cause a buffer overflow #resolve
Conflicts:
	src/switch_core_media.c
2017-05-11 13:32:26 -05:00
Anthony Minessale eb93b81890 FS-10295: [freeswitch-core] Remove debug log line #resolve 2017-05-08 16:44:33 -05:00
Anthony Minessale 7b38721562 FS-10284: [core] rtp session variable "ts" can wrap to zero for long running calls, causing incorrect logic to be executed #resolve 2017-05-05 11:19:37 -05:00
Anthony Minessale fe4e2fd536 FS-10286: [mod_conference] Sync member joins up with keyframes in shared encoder mode 2017-05-03 14:32:52 -05:00
Anthony Minessale 72f5906bd1 FS-10274: [mod_conference] Prevent double-recording of conference files and all recording of supercanvas in multi-canvas mode 2017-04-28 12:28:27 -05:00
Anthony Minessale 5b5a903237 FS-10273: [freeswitch-core] Missing case stmt causing invalid stats #resolve 2017-04-27 14:54:57 -05:00
Anthony Minessale ab1f8eae62 FS-10259: [freeswitch-core,mod_commands,mod_conference] Allow uuid_video_bitrate to supersede bitrate control from the conference 2017-04-21 16:17:27 -05:00
Anthony Minessale a218001b35 FS-10255: [freeswitch-core] "complete" sqlite table grows indefinitely when video-mode=mux is enabled for conference #resolve 2017-04-20 13:06:53 -05:00
Anthony Minessale 136dc465d6 FS-10254: [mod_conference] Send keyframe from shared encoder on layout changes #resolve 2017-04-20 10:54:14 -05:00
Brian West 693fe90c96 FS-10169: [mod_local_stream] When using local stream commands FreeSWITCH locks up #resolve 2017-04-20 09:59:03 -05:00
Anthony Minessale bb408b1e32 FS-10241 backport d157cbab12 manually 2017-04-19 16:35:41 -05:00
Mike Jerris 3b4964bd7e FS-10241: [mod_sofia] don't send xml media refresh request before we have media setup 2017-04-19 16:31:26 -05:00
Anthony Minessale 38efa65d89 FS-10247: [mod_conference] Fit logo img to size of cropped video or mute image #resolve 2017-04-19 14:55:51 -05:00
Mike Jerris 3bcab9b32a FS-9623: fix rare crash on startup due to openssl init functions being run multiple times 2017-04-17 15:37:15 -05:00
Anthony Minessale 7751c61a27 FS-10225 2017-04-17 12:25:45 -05:00
Ken Rice 0fc0946461 bump version 2017-04-17 09:21:08 -05:00
Anthony Minessale 3afa404d65 FS-10225: [mod_conference] Incorrect layout chosen when playing a file in a conference with a layout group -- revert small piece 2017-04-14 18:58:08 -05:00
Anthony Minessale ba306e5ab6 FS-10233: [mod_local_stream] mod_local_stream segfault trying to read a music file that is not open while playing a chime #resolve 2017-04-14 11:25:11 -05:00
Anthony Minessale 196f73ac98 FS-10225: [mod_conference] Incorrect layout chosen when playing a file in a conference with a layout group -- Edge case with file-only slots 2017-04-13 13:44:38 -05:00
Anthony Minessale a6b53cdfe0 FS-10225: [mod_conference] Incorrect layout chosen when playing a file in a conference with a layout group #resolve
Conflicts:
	src/mod/applications/mod_conference/conference_video.c
2017-04-11 17:41:16 -05:00
Mike Jerris 59d6c456e3 FS-10210: [mod_console] add support for uuid config param and 'console uuid' api command 2017-04-11 13:54:13 -05:00
Anthony Minessale 7ef83f0316 FS-10220: [mod_conference] Conference channel parameters not working #resolve 2017-04-11 13:53:41 -05:00
Mike Jerris 154e5d6d7e FS-10153: [build] fix mod_http_cache build on FreeBSD 2017-04-11 13:42:28 -05:00
Brian West 7e77f5d623 FS-10059: [sofia-sip] handle re-invites during t.38 call 2017-04-11 13:42:08 -05:00
Chris Rienzo f0e97f5e39 FS-10117 [mod_rayo] allow duplicate rayo signal-type configs for call progress detector 2017-04-11 13:41:46 -05:00
Anthony Minessale 38621e47ba FS-10209: [freeswitch-core,mod_av] Add auth params to file handles 2017-04-11 13:41:34 -05:00
Anthony Minessale ae1cdced23 FS-10195: [fs_cli] Freeswitch intermittently segfaults #resolve 2017-04-11 13:08:56 -05:00
Anthony Minessale 1769905709 FS-10222: [freeswitch-core] add disable_audio_jb_during_passthru and disable_video_jb_during_passthru (cherry pick of aaa26c6 was messed up in git so ported manually) 2017-04-10 15:27:05 -05:00
Mike Jerris 0a3dd43e2f FS-10100: [mod_av] fix crash on allocation error and other error cases opening a file 2017-04-10 13:16:25 -05:00
Anthony Minessale 35b3e9a6a0 FS-10126: [freeswitch-core] General Video Improvements #resolve
Conflicts:
	src/include/switch_core.h
	src/include/switch_types.h
	src/mod/applications/mod_conference/conference_file.c
	src/mod/applications/mod_conference/conference_video.c
	src/mod/languages/mod_managed/managed/swig.cs
	src/switch_core_media.c
	src/switch_ivr_bridge.c
	src/switch_rtp.c
2017-04-07 17:32:05 -05:00
Anthony Minessale 3da6bd0108 FS-10126: [freeswitch-core] General Video Improvements 2017-04-07 11:49:13 -05:00
Anthony Minessale 879b3b9d0c FS-10150: [freeswitch-core] Reduce writes to closed ssl sockets 2017-04-06 17:08:32 -05:00
Anthony Minessale ab6cf5c742 FS-10126: [freeswitch-core] General Video Improvements 2017-04-06 11:54:08 -05:00
Mike Jerris d490fbe89d FS-10099: [mod_conference] fix rare seg on race on shutdown of a conference 2017-04-05 15:35:21 -05:00
Brian West b720d92167 FS-9765 one tweak from submitted patch to use switch_channel_var_true instead of switch_channel_get_variable no need to allocate on every hold/unhold just to check if this is enabled. 2017-04-03 18:18:37 -05:00
Ken Rice e6d643b29c version bump 2017-04-03 09:24:23 -05:00
Mike Jerris d75bd42c5c FS-10193: fix osx build error 2017-03-31 12:27:45 -04:00
Anthony Minessale caf2e0ad3e FS-10193: [freeswitch-core] Implement filter in openssl to enable proper dtls MTU #resolve
Conflicts:
	src/switch_core_cert.c
2017-03-30 10:32:49 -05:00
Mike Jerris 440dbf0dd8 FS-10184: [Build-System] Fix missing #ifdefs for proper build w/o libyuv/libvpx 2017-03-30 10:31:04 -05:00
Brian West d832743ddc FS-10183 [mod_sofia] Broadsoft Shared line pickup would fall if a-leg is PCMU and your pickup device has G722 as its first codec. 2017-03-30 10:30:45 -05:00
Anthony Minessale 1f71be1945 FS-10180: [mod_sofia] Move debug line to higher level #resolve 2017-03-30 10:30:24 -05:00
Nicholas Blasgen 67583b8d4b FS-10128 [mod_v8] This commit removes strlen() in favor of binary safe .length() function 2017-03-30 10:30:07 -05:00
Dragos Oancea f00257d4c9 FS-10087: fix for volume level per member of conference (volume level when playing file) 2017-03-30 10:29:29 -05:00
Mitch Capper 84584d7194 Resolves FS-10071. Fixed newer (perl 5.22 and up) versions of perl from crashing, -e means evaluate the following string and it does not like emptystr. 2017-03-30 10:26:54 -05:00
Brian West 989194ca14 FS-10149 [freeswitch-core] ZRTP encrypted calls drop on reinvite 2017-03-30 10:25:33 -05:00
Richard Screene 5088dbcec8 FS-10156 [mod_http_cache] Return HTTP status code 2017-03-30 10:25:10 -05:00
Brian West 0cd652222f FS-10169: [mod_local_stream] When using local stream commands FreeSWITCH locks up #resolve 2017-03-23 16:24:16 -05:00
Anthony Minessale 9844d1887b FS-10150: [freeswitch-core] Reduce writes to closed ssl sockets #resolve
Conflicts:
	libs/libks/src/kws.c
	libs/sofia-sip/.update
2017-03-20 17:11:00 -05:00
Brian West 46b518d57a FS-10139: [verto.js] $.FSRTC.bestResSupported() returns true for any res #resolve
Conflicts:
	html5/verto/video_demo/js/verto-min.js
2017-03-20 16:48:22 -05:00
Anthony Minessale f19fcdb4f0 FS-10152: [mod_shout] seek from eof to 0 not working in mod_shout #resolve 2017-03-17 15:31:23 -05:00
Anthony Minessale 1c0a6725ac FS-10146: [mod_conference] Completely setup conference member before adding them to the conference #resolve 2017-03-16 19:08:08 -05:00
Anthony Minessale 17ff4b41ae FS-9704 backport of 2de527564e cherry pick was beeing funky 2017-03-16 17:56:55 -05:00
Anthony Minessale 2532d9c626 FS-10144: [mod_conference] Minor issues with video mute in mod_conference [cherry-picked] 2017-03-16 17:47:16 -05:00
Ken Rice 5997f90c6a FS-10143 #resolve small tweak to overlaps conf layout 2017-03-16 15:05:32 -05:00
Anthony Minessale 8b0a49f014 FS-9697 remove auto toggle to old fir mode 2017-03-15 18:19:08 -05:00
Anthony Minessale 703158f88f FS-10091 2017-03-15 18:14:08 -05:00
Anthony Minessale 2f8a6db000 FS-9704: [mod_av] Seeking video files with mod_av after it reaches the end does not work fix regression 2017-03-15 18:04:34 -05:00
Anthony Minessale 6cfb94b81b FS-10107 can of worms contd 2017-03-15 16:58:39 -05:00
Anthony Minessale a5c10be821 FS-10088: [freeswitch-core] Backports backport video modification functions to fix a seg in conference caused by backporting FS-10107 2017-03-15 15:47:33 -05:00
Anthony Minessale 48b51ffbb7 FS-10088: [freeswitch-core] Backports 2017-03-15 15:40:53 -05:00
Brian West 24973b9279 FS-10125 small fix 2017-03-14 13:03:40 -05:00
Anthony Minessale 617186d874 FS-10132: [mod_conference] Memory leak playing video files in personal-canvas mode #resolve 2017-03-13 15:10:07 -05:00
Anthony Minessale 3878d91316 FS-10131: [freeswitch-core] Incorrect video decode flags in some places #resolve 2017-03-13 14:51:46 -05:00
Anthony Minessale 1c51205a72 FS-10107 doh 2017-03-13 09:55:04 -05:00
Anthony Minessale c8ec463ef9 FS-10107 2017-03-10 21:20:58 -06:00
Brian West 45feb3b23e FS-10125 [new_module] clearmode passthru codec 2017-03-10 16:39:59 -06:00
Anthony Minessale 86355674f3 FS-10091: [mod_conference] Conference play file with full-screen=true has side effect on member video 2017-03-09 15:29:35 -06:00
Anthony Minessale e19e329fc7 FS-10107: [mod_conference] Reduce contention on layer floor changes 2017-03-09 15:15:44 -06:00
Anthony Minessale 5c01be768b FS-10107: [mod_conference] Reduce contention on layer floor changes #resolve 2017-03-09 15:14:52 -06:00
Anthony Minessale 88fb841a5d FS-10118: [freeswitch-core] Race conditions from lack of error checking in switch_core_session_read_lock #resolve
Conflicts:
	src/switch_core_media.c
2017-03-09 13:39:00 -06:00
Mike Jerris bc0702a776 FS-10116: [RTP] Crash when rtp_autofix_timing=true on video calls #resolve
Conflicts:
	src/switch_core_media.c
2017-03-09 11:20:01 -06:00
Anthony Minessale f991a08691 FS-10019 typo 2017-03-09 10:49:39 -06:00
Anthony Minessale 893f3ace64 FS-10019 2017-03-08 19:42:05 -06:00
Anthony Minessale 334ae30484 FS-10114: [mod_conference] Reduce image reads from disk for logo image 2017-03-08 19:38:45 -06:00
Mike Jerris 165e8cf38c FS-10104: [mod_h323] fix build error caused by FS-10025 2017-03-08 11:31:03 -06:00
Brian West d387db229d FS-10103: [freeswitch-core] segfault on new call #resolve 2017-03-07 19:36:54 -06:00
Anthony Minessale 3a18464f7e FS-10076: [mod_av] File sync issues with different framerates #resolve 2017-03-07 18:19:10 -06:00
Anthony Minessale 5e6ff638cf FS-10091: [mod_conference] Conference play file with full-screen=true has side effect on member video 2017-03-07 17:35:56 -06:00
Anthony Minessale d7c6c976ec FS-10079: [mod_conference] Possible lockup when sending many commands to conference at once #resolve
Conflicts:
	src/mod/applications/mod_conference/conference_video.c
2017-03-07 13:48:34 -06:00
Dragos Oancea 3802a68d46 FS-9864: mod_opus : Added OPUS@16000 with 10, 20, 40, 60 ms ptime 2017-03-07 13:46:00 -06:00
Alexandr Popov 568384d392 FS-10061 [mod_verto] now it sends custom variables on incoming call via verto 2017-03-07 13:45:51 -06:00
Mike Jerris 2477b9e3d7 FS-10001: [core] Fix Buffer overflow collecting digits 2017-03-07 13:45:22 -06:00
Mike Jerris 3834871e47 FS-10067: [mod_sofia] add update-refresher profile param and sip_update_refresher channel var to use update for session timers
Conflicts:
	src/mod/endpoints/mod_sofia/mod_sofia.h
2017-03-07 13:44:27 -06:00
Anthony Minessale 9fef185762 FS-7989: [shell-utils] Fix bugs in fixbug.pl 2017-03-07 13:41:55 -06:00
Brian West 072797c0c1 FS-10058: [mod_voicemail] voicemail timestamp plays in military time #resolve
FS-10058: [mod_voicemail] voicemail timestamp plays in military time
2017-03-07 13:40:57 -06:00
Brian West ad08fa13b6 FS-10041: [mod_conference,mod_sofia] Invalid contact,<(null)>;isfocus, when hold call inside a conference room #resolve
Conflicts:
	src/mod/endpoints/mod_sofia/mod_sofia.c
2017-03-07 13:39:50 -06:00
Razvan Crainea 4ebca9551b FS-10038: [core] tune heartbeat events interval
Conflicts:
	src/switch_core.c
2017-03-07 13:38:08 -06:00
Andrey Antipov 247131a1be FS-10032: [mod_amqp] Fix log facilities #resolve 2017-03-07 13:30:32 -06:00
Andrey Volk 8ff79b510c FS-10037 [Core] Update OpenSSL to version 1.0.2k for windows 2017-03-07 13:29:43 -06:00
Anthony Minessale c421b82c17 FS-10097: [mod_conference] Add fgimg to conference video layouts 2017-03-07 12:53:15 -06:00
Anthony Minessale a81a4c6abe FS-10091: [mod_conference] Conference play file with full-screen=true has side effect on member video #resolve 2017-03-07 12:53:15 -06:00
Anthony Minessale d44fe1c650 FS-10088: [freeswitch-core] Backports 2017-03-07 12:53:15 -06:00
Anthony Minessale b0823231a4 FS-10088: [freeswitch-core] Backports 2017-03-07 12:53:15 -06:00
Anthony Minessale fa33b30267 FS-10088: [freeswitch-core] Backports #resolve 2017-03-07 12:53:08 -06:00
Sebastian Kemper 70f4c41184 FS-10056: Fix modcheck.sh invokation
modcheck.sh gets called by build/Makefile when doing "make install" with
parameter "$(modulesdir)". This is fine when the install is done on a
live system. But when "make install" was called with a "$DESTDIR" then
this won't work, as the correct path would then be
"$(DESTDIR)$(modulesdir)". So add "$(DESTDIR)" in front.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2017-02-20 11:31:08 -06:00
Sebastian Kemper 4d60465cca FS-10055: Fix gentls_cert script to use "@certsdir@"
Currently gentls_cert uses "@prefix@/conf/ssl". But FreeSWITCH's
configure script provides "@certsdir@", so let's use that instead.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2017-02-20 11:30:04 -06:00
Anthony Minessale adfe751b7f FS-10054 2017-02-17 14:48:54 -06:00
Anthony Minessale 612d3011da FS-10054: [mod_smpp] mod_smpp will not reconnect if connection was interupted #resolve 2017-02-17 14:32:18 -06:00
Anthony Minessale a8c23ed87c FS-10019 revert and alternate fix 2017-02-16 18:28:59 -06:00
Anthony Minessale 13bf24bd10 FS-10048: [mod_conference] Possible crash on mass exit of members from a conference #resolve 2017-02-15 16:22:11 -06:00
Ken Rice 602c34f738 FS-10003 #resolve force mod_ilbc package to depend on ilbc2 with Requires in spec file this builds properly as its linked against ilbc2 via the build requires 2017-02-15 10:22:53 -06:00
Ken Rice 4c37f8374a Revert "FS-10003 small tweak to freeswitch.spec file for improper libilbc2 require %backport=1.6"
This reverts commit 202dda4e06.
2017-02-15 10:17:48 -06:00
Ken Rice bec45386a2 drop mod_ldap for meta-all 2017-02-14 11:37:45 -06:00
Brian West 7bbe49713c FS-10035: [mod_sofia] Outbound calls use progressing not alerting #resolve 2017-02-13 09:46:36 -06:00
Ken Rice bbbe0801e7 bump version 2017-02-13 08:23:34 -06:00
Andrey Volk 3e2e6b8eeb FS-10034 [WIX] Fix WIX to respect Win32/x64 binary output folders. 2017-02-13 07:59:01 -06:00
Anthony Minessale fd4043774a FS-10031: [mod_conference] Personal canvas mode doesn't switch layouts properly when a group is specified #resolve 2017-02-10 14:16:46 -06:00
Anthony Minessale de2936af46 FS-10026: [mod_verto] reduce attach_wake calls #resolve 2017-02-09 17:42:09 -06:00
Mike Jerris 2d312f38ac FS-10025: fix global symbol scope issue causing modules to use another modules global pointer
Conflicts:
	libs/sofia-sip/.update
2017-02-09 17:36:43 -06:00
Andrey Volk eb2862af5c FS-10010 [WIX] Fix windows WIX installer by including a proper vc runtime 2017-02-09 14:54:51 -06:00
Mike Jerris 4cefe9e7e7 FS-9206: [core] endable proxy media auto-adjust on re-invite for text and video every time as the streams may be being added on re-invite
Conflicts:
	src/switch_core_media.c
2017-02-09 14:41:51 -06:00
Anthony Minessale 7b6666d426 FS-9990: [freeswitch-core] Exhaust fmtp sensitive codecs before moving on with negotiation in video #resolve
Conflicts:
	src/switch_core_media.c
2017-02-09 14:36:46 -06:00
Anthony Minessale 12aa84a86c FS-9654 additional changes 2017-02-09 14:36:42 -06:00
Anthony Minessale d0da33c595 FS-10007: [mod_conference] Issue with reservation-id and conference video layouts #resolve
Conflicts:
	src/mod/applications/mod_conference/conference_video.c
2017-02-09 14:14:43 -06:00
Seven Du a10d2ba023 FS-9137 update to openh264 release 1.6.0 2017-02-09 13:32:21 -06:00
Seven Du 7f436e293a FS-9137 update to openh264 release 1.5.0 and tweak some params 2017-02-09 13:32:13 -06:00
Brian West ffc73419db FS-10006: [core] Allow adding parameters to P-Asserted-Identity #resolve 2017-02-09 13:10:40 -06:00
Anthony Minessale c61e427229 FS-10020: [mod_av] Error scrolls endlessly on a recording that fails to rtmp addrs #resolve 2017-02-09 13:06:58 -06:00
Anthony Minessale 1fe32f4795 FS-10017: [freeswitch-core] add rtp_nack_buffer_size #resolve 2017-02-09 13:06:52 -06:00
Italo Rossi ffe36efff6 FS-10012 [mod_callcenter] Enabling bypass media if agents leg have bypass_media_after_bridge=true #resolve 2017-02-09 13:04:27 -06:00
Brian West 9aad78df64 FS-6683: [mod_dingaling] iksemel TLS-Fragments #resolve 2017-02-09 13:04:08 -06:00
Anthony Minessale 278793ac01 FS-9997: [mod_verto] Invalid JSON-RPC Response to an incorrect JSON-RPC Request. #resolve 2017-02-09 13:02:56 -06:00
Antonio 2f5a68298a [mod_sofia] FS-9966 fix private ip in contact header when invite w/ nosdp 2017-02-09 13:02:33 -06:00
Andrey Volk d23507e193 FS-9953 [mod_av] Add mod_av to windows build 2017-02-09 13:02:15 -06:00
Chris Young 3e7fe83313 FS-9984 [mod_enum] Fix for handle leak in Windows 2017-02-09 13:02:01 -06:00
Kevin James ca6312eee1 FS-9986: [libvpx] update .gitignore to exclude erronesously matched Makefile 2017-02-09 13:01:38 -06:00
Hesaam Farhang f934c9c8e1 FS-9989 [mod_kazoo] add a parameter to ignore transient network issues 2017-02-09 13:01:23 -06:00
Brian West 8822a3a69a FS-9981: [mod_spandsp] add api_on_fax_success api_on_fax_failure #resolve 2017-02-09 13:00:31 -06:00
Chris Rienzo 53290057bb FS-9959 [mod_spandsp] Add two new channel variables
fax_t38_tx_reinvite_packet_count - overrides t38-tx-reinvite-packet-count param in spandsp.conf
   fax_t38_rx_reinvite_packet_count - overrides t38-rx-reinvite-packet-count param in spandsp.conf
2017-02-09 12:58:47 -06:00
lazedo ea674c7450 FS-9955 [mod_kazoo] set profile var when setting channel var 2017-02-09 12:58:36 -06:00
Anthony Minessale b63cfbba5a FS-9954: [freeswitch-core] Crash on switch_ivr_intercept_session due null pointer for buuid #resolve 2017-02-09 12:58:23 -06:00
Anthony Minessale dc61edcd28 FS-9654 introduce origination_aleg_uuid 2017-02-09 12:55:22 -06:00
Andrey Volk 2f7d6dca5e FS-9948 [mod_png] Add mod_png to windows build 2017-02-09 12:51:40 -06:00
Italo Rossi 7638623715 FS-9947 [verto_communicator] Do not try to parse empty chat messages 2017-02-09 12:51:22 -06:00
Italo Rossi fd1ae61454 FS-9946 [verto_communicator] Fixed video size when window is resized on canary 2017-02-09 12:48:25 -06:00
Andrey Volk b821a6452b FS-9944 [core] Add core video support to windows build 2017-02-09 12:48:07 -06:00
Anthony Minessale 1b3f6492b8 FS-10022: [mod_sofia] verify-profile 'none' not parsed for TLS #resolve 2017-02-09 11:25:47 -06:00
Anthony Minessale f94302dce8 FS-10021: [RTP] Large RTP timestamp jump when system clock is late from internal timer #resolve 2017-02-09 11:11:36 -06:00
Anthony Minessale 4bda9bf1e6 FS-10019: [mod_conference] Crash when playing mp4 in personal-canvas mode #resolve 2017-02-08 13:55:10 -06:00
Anthony Minessale 97438725da FS-10008: [mod_say_en] Add military time to say_en #resolve 2017-02-03 16:25:09 -06:00
Ken Rice 202dda4e06 FS-10003 small tweak to freeswitch.spec file for improper libilbc2 require %backport=1.6 2017-02-02 13:53:43 -06:00
Anthony Minessale e9cb966d18 FS-9962: [mod_spandsp] Avaya IP Office IB FAX call T38 v0 failed #resolve 2017-01-30 10:53:59 -06:00
Mike Jerris a4f9c79fc8 FS-9975: [mod_sofia] add contact params to request uri of outbound recovery reinvite for originally inbound calls 2017-01-27 17:02:24 -06:00
Mike Jerris fd3b726ea6 FS-9970: [mod_sofia] don't detect nat in cases when the contact is in the acl, but the packet actually came from a proxy. We need to check where we got the packet from as being a natted address instead of the contact in order to properly handle nat to our next hop 2017-01-27 15:14:20 -06:00
Anthony Minessale 3fe597288e FS-9154 tiny part belongs here too 2017-01-26 16:17:46 -06:00
Anthony Minessale f645326e74 FS-9978: [mod_expr] mod_expr random seed function not working for Windows #resolve 2017-01-25 12:49:26 -06:00
Brian West a8d53fdd79 FS-9943: [core] Default 488 handling for t.38 re-invite switches to udptl mode when it should not. #resolve 2017-01-12 11:48:02 -06:00
Ken Rice e460bf8539 Version bump 2017-01-10 23:02:57 -06:00
Mike Jerris 9c3b907d96 FS-9934: [mod_redis] fix segfault on windows on close or connect failure 2017-01-10 18:17:31 -06:00
Anthony Minessale 3fde59fcef FS-9933: [freeswitch-core] Fallback from native file failure to alternate ext #resolve 2017-01-10 17:10:28 -06:00
Mike Jerris 20b22978bd FS-9931: [mod_sofia] don't send display updates to endpoints who don't have UPDATE in their Allow header 2017-01-10 17:10:24 -06:00
Anthony Minessale 14a8cde321 FS-9932: [freeswitch-core] Error with group confirm feature combined with enterprise originate #resolve 2017-01-10 17:10:10 -06:00
Anthony Minessale 862667f7e7 FS-9929: [core,mod_spandsp] Assert in switch_frame_buffer_dup when receiving a fax using t.38 #resolve 2017-01-10 15:11:27 -06:00
Sergey Safarov 708d71ccad FS-9924: Removed libvpx dependency from SPEC file. 2017-01-10 15:08:58 -06:00
Ken Rice 23c371a5a7 FS-9581 #resolve remove file from core lib project file that was added inadvertantly 2017-01-10 09:28:14 -06:00
Ken Rice addfbf0730 swigall 2017-01-09 17:56:12 -06:00
Anthony Minessale 49d39ef422 swigall 2017-01-09 16:57:40 -06:00
Mike Jerris 2827452e46 swigall 2017-01-06 17:12:32 -06:00
Mike Jerris 4b997e6b8e swigall 2017-01-06 16:36:58 -06:00
Mike Jerris 3bf22f4a4b FS-9809: [mod_sofia] url encode caller id number before sticking it in the from header in case we have non url safe chars in the cid number in the caller profile 2017-01-06 16:34:10 -06:00
Mike Jerris eea2b139ab FS-9915: [mod_sofia] fix non null terminated parsed sip body being passed in when sending to sip messages in a row on tcp in a single packet 2017-01-05 16:09:18 -06:00
Brian West 325c50ad48 FS-9855: [mod_spandsp] Refused T38 reinvite on b-leg breaks T38 negotiation on a-leg when using T38 gateway mode #resolve 2017-01-05 15:52:02 -06:00
Anthony Minessale 074b7f367c FS-9906: [mod_conference] Member join/part in conference shows webcam briefly during slide transition #resolve 2017-01-04 18:40:45 -06:00
Brian West f53b670a7f FS-9916: [mod_spandsp] OB fax calls go zombie #resolve 2017-01-04 16:15:26 -06:00
chapman 89d3e29fa8 FS-9917 [switch_rtp/core] Fix in do_flush to handle the current packet (if RFC2833) rather than discard it.
only print flushed if we flushed something
2017-01-04 14:00:09 -05:00
Anthony Minessale 605ac486c1 FS-9881 accidentally removed -1 for forever support 2017-01-04 12:59:51 -05:00
Anthony Minessale d4833fac43 FS-9206: [mod_sofia] proxy media with enable-3pcc=proxy does not properly pass audio after 3pcc re-invite #resolve 2017-01-03 18:30:10 -06:00
Mike Jerris afa182cbfc FS-9840: [mod_avmd] fix error avmd_desa2_tweaked.c:61:5: error: implicit declaration of function 'ISINF' [-Werror=implicit-function-declaration] 2017-01-03 18:11:07 -06:00
Anthony Minessale 2dcbeffcd8 FS-9912: [mod_conference] floor-only and file-only not working properly in canvas-layouts #resolve 2017-01-03 15:46:01 -06:00
Anthony Minessale b29dfcd94b FS-9911: [mod_conference] Canvas not clearing when video playback of file is done #resolve 2017-01-03 15:45:55 -06:00
Anthony Minessale 33c852dd15 FS-9881: [core] FS crashing when playing png file #resolve 2017-01-03 15:45:49 -06:00
Anthony Minessale 9ef2492a52 FS-9860: [core] add playback_timeout_sec_cumulative variable 2017-01-03 13:59:32 -06:00
Andrey Volk 1e3cb59058 FS-9897 [mod_v8] Fix Visual Studio 2015 build 2017-01-03 12:54:42 -06:00
Anthony Minessale e0c0b28350 FS-9898: [mod_sofia] Call hanging in FS if HOLD not successful #resolve 2017-01-03 12:54:30 -06:00
Brian West a3a154a5d7 swigall 2016-12-30 17:49:58 -06:00
Anthony Minessale da5a2f4069 FS-9206 backport 2016-12-30 17:36:52 -06:00
Mike Jerris 47619cd01d swigall 2016-12-30 15:57:28 -06:00
Italo Rossi 4c543f883b [mod_callcenter] FS-9894: Removing reference to call_timeout, use leg_timeout instead 2016-12-30 15:36:49 -06:00
Italo Rossi bdbd29ed17 [mod_callcenter] FS-9891: Checking if we got a valid pointer for a queue 2016-12-30 15:36:34 -06:00
Brian West c302eb405b FS-9776: [mod_sofia] SIP Transfer generates high CPU #resolve
Conflicts:
	src/mod/endpoints/mod_sofia/sofia.c
2016-12-30 15:36:08 -06:00
Mike Jerris c4cd4834d7 FS-9569: [mod_shout] close file handle when recording mp3 files that never get written to 2016-12-30 15:33:36 -06:00
Italo Rossi 220ad0c2b3 [mod_callcenter] FS-9891: Get queue again to increase calls answered and abandoned 2016-12-30 15:33:06 -06:00
Italo Rossi 37a8f183a1 [mod_callcenter] FS-9347: Do not log as error when the member is gone just before we assigned an agent, now logging as DEBUG 2016-12-30 15:32:48 -06:00
Italo Rossi d09c4f5d3b [mod_callcenter] FS-9689 Fixed issue when agent rejects the call while hearing cc_outbound_announce making member (caller) waiting on queue forever 2016-12-30 15:32:33 -06:00
Italo Rossi bea46c1089 [mod_callcenter] FS-9723: Fixing cc_warning_tone, using switch_ivr_play_file instead of queue private event 2016-12-30 15:32:17 -06:00
StefanYohansson 42f94a112b [verto-communicator] - Added change server feature
When someone set any wss server and do login
VC doesn't record the settings on localStorage,
so when we reload the browser, it will try to connect on
"wss://" + window.location.hostname + ":8082" and if
this wss server is offline for any reason, user will
be stuck on splash screen by auto-login step plus reconnect
modal blocking any action.

- Added button "Change Server" on modal reconnection alert;
- Stop jsonRpcClient retry timeout and delete verto instance
to create a new one when user login with new wss server;
- Record wss server and hostname on localStorage.
2016-12-30 15:32:02 -06:00
Sebastian Kemper 8c12569d0e FS-9840 mod_avmd: Fix implicit declaration warning
Fix the following compile-time warning:

making all mod_avmd
make[7]: Entering directory '/home/sk/tmp/lede/build_dir/target-mips_24kc_musl-1.1.15/freeswitch-1.8.0/src/mod/applications/mod_avmd'
  CC       mod_avmd_la-mod_avmd.lo
mod_avmd.c: In function 'avmd_process_sample':
mod_avmd.c:49:19: error: implicit declaration of function '__isinf' [-Werror=implicit-function-declaration]
 #define ISINF(x) (__isinf(x))
                   ^
mod_avmd.c:2038:33: note: in expansion of macro 'ISINF'
         if (ISNAN(amplitude) || ISINF(amplitude)) {
                                 ^
cc1: all warnings being treated as errors
Makefile:682: recipe for target 'mod_avmd_la-mod_avmd.lo' failed

Fix this by adding the declaration for __isinf(), the same is done for
__isnan() already

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2016-12-30 15:30:57 -06:00
Sebastian Kemper 2235ebb303 FS-9840 sofia-sip: fix implicit declaration warning
This fixes the following compile-time warning:

cc1: note: someone does not honour COPTS correctly, passed 2 times
	 LTCOMPILE tport_type_connect.lo
cc1: note: someone does not honour COPTS correctly, passed 2 times
	 LTCOMPILE tport_type_ws.lo
cc1: note: someone does not honour COPTS correctly, passed 2 times
	 LTCOMPILE ws.lo
cc1: note: someone does not honour COPTS correctly, passed 2 times
ws.c: In function 'hton64':
ws.c:730:14: error: implicit declaration of function '__bswap_64' [-Werror=implicit-function-declaration]
  else return __bswap_64(val);
              ^
cc1: all warnings being treated as errors
Makefile:1465: recipe for target 'ws.lo' failed
make[12]: *** [ws.lo] Error 1

Fix by including byteswap.h, which is available on Linux and also
everywhere glibc is used (wpa_supplicant includes this header the same
way).

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2016-12-30 15:30:43 -06:00
Sebastian Kemper af111ba0a1 FS-9840 mod-verto: fix implicit declaration warning
This fixes the following compile-time warning:

making all mod_verto
make[7]: Entering directory '/home/sk/tmp/lede/build_dir/target-mips_24kc_musl-1.1.15/freeswitch-1.8.0/src/mod/endpoints/mod_verto'
  CC       mod_verto_la-mod_verto.lo
  CC       mod_verto_la-ws.lo
ws.c: In function 'hton64':
ws.c:730:14: error: implicit declaration of function '__bswap_64' [-Werror=implicit-function-declaration]
  else return __bswap_64(val);
              ^
cc1: all warnings being treated as errors

Fix by including byteswap.h, which is available on Linux and also
everywhere glibc is used (wpa_supplicant includes this header the same
way).

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2016-12-30 15:30:32 -06:00
Sebastian Kemper 03e1aeae65 FS-9840 mod_sofia: fix redefine warning
This fixes the following compile-time warning:

make[8]: Entering directory '/home/sk/tmp/lede/build_dir/target-mips_24kc_musl-1.1.15/freeswitch-1.8.0/src/mod/endpoints/mod_sofia'
  CC       mod_sofia_la-mod_sofia.lo
  CC       mod_sofia_la-sofia.lo
  CC       mod_sofia_la-sofia_glue.lo
  CC       mod_sofia_la-sofia_presence.lo
  CC       mod_sofia_la-sofia_reg.lo
  CC       mod_sofia_la-sofia_media.lo
  CC       mod_sofia_la-sip-dig.lo
In file included from sip-dig.c:137:0:
/home/sk/tmp/lede/build_dir/target-mips_24kc_musl-1.1.15/freeswitch-1.8.0/libs/sofia-sip/libsofia-sip-ua/bnf/../../config.h:522:0: error: "__BYTE_ORDER" redefined [-Werror]
 #define __BYTE_ORDER __BIG_ENDIAN
 ^
In file included from /home/sk/tmp/lede/staging_dir/toolchain-mips_24kc_gcc-5.4.0_musl-1.1.15/include/sys/types.h:70:0,
                 from ../../../../src/include/switch.h:107,
                 from sip-dig.c:135:
/home/sk/tmp/lede/staging_dir/toolchain-mips_24kc_gcc-5.4.0_musl-1.1.15/include/endian.h:11:0: note: this is the location of the previous definition
 #define __BYTE_ORDER __BYTE_ORDER__
 ^
cc1: all warnings being treated as errors

SWITCH_BYTE_ORDER is already used elsewhere in FS source and takes care
of changing byte order without causing a warning

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2016-12-30 15:30:16 -06:00
Antonio 29eb20b861 FS-6893 [mod_conference] recording auto creates file path if not exists 2016-12-30 15:29:31 -06:00
Anthony Minessale 4d0cead866 FS-4102: [mod_sofia] invite to gateway without registration goes to another wrong host #resolve
Conflicts:
	libs/sofia-sip/.update
2016-12-30 15:29:12 -06:00
shaileshplivo 1f56b77bda FS-9876 switch_rtp this fix issue of rtcp lost packet count 2016-12-30 15:28:21 -06:00
Mike Jerris 912291e80b FS-9854: [mod_sofia] SDP O/A fails to put sdp in messages after certain kinds of sip traffic 2016-12-30 15:27:51 -06:00
Anthony Minessale 70121a3edb FS-9871: [freeswitch-core] DTMF not delivered on B leg of a bridge when A leg has no media #resolve 2016-12-30 15:27:36 -06:00
Anthony Minessale bf469f07a7 FS-9870: [freeswitch-core] playback_timeout_sec does not stop a delimited playback #resolve 2016-12-30 15:27:23 -06:00
Italo Rossi 445f9a7b0f FS-9869 [mod_callcenter] Exporting cc_queue_joined_epoch when originating agent outbound leg 2016-12-30 15:27:08 -06:00
William Henry ff07c91c4e FS-9760 Removed the un-needed whitespace from the file 2016-12-30 15:26:33 -06:00
Anthony Minessale 76f14e5a3b FS-9866: [freeswitch-core] 3pcc=proxy for FS client and local SDP #resolve 2016-12-30 15:26:11 -06:00
Sebastian Kemper b32dc985c1 FS-9858: add configure switches to disable libpng and freetype support
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>

Conflicts:
	configure.ac
2016-12-30 15:25:50 -06:00
Brian West cadf011277 FS-9846: [mod_sofia] Bugs related with Hold and Proxy Hold option added in FS-9192 after merges in 1.6.11 #resolve 2016-12-30 15:23:54 -06:00
Anthony Minessale 4a3a021c8c FS-9745: [mod_sofia] Call to FS WebRTC Gateway fails when no SDP on invite #resolve 2016-12-30 15:23:28 -06:00
Anthony Minessale 241f3e0a5f FS-9863: [] video_width/video_height unset with playback application #resolve 2016-12-30 15:20:56 -06:00
Josh Allmann ef62523f2a FS-9725: Fix echo if blank image is disabled. 2016-12-30 15:19:45 -06:00
Brian West 23d6663c7a fix typo %ignore 2016-12-30 15:19:28 -06:00
Brian West e94de3eb03 %ignore update fixbug.pl to include component 2016-12-30 15:18:38 -06:00
Brian West 660f79e350 FS-9829 #resolve [FreeSWITCH 200ok to second reINVITE on a dialog doesn't contain an SDP.] 2016-12-30 15:18:23 -06:00
Piotr Gregor 028f0f4df9 FS-9843 [mod_avmd] Remove unused defines 2016-12-30 15:17:36 -06:00
Brian West 6245a4d193 FS-9808 #resolve [mod_png issue when used with ivr as video input] 2016-12-30 15:17:11 -06:00
Chris Rienzo 7077819039 FS-9827 [mod_hiredis] handle NIL reply 2016-12-30 15:15:05 -06:00
Alexey Melnichuk 12483d5ee3 FS-9821 [mod_lua] Fix. memory/resource leak in mod_lua 2016-12-30 15:12:36 -06:00
Sebastian Kemper 01c1060688 FS-9824 [tone2wav.c] Fix segfault on tone2wav
I checked fs_encode and saw that it terminates itself a bit differently, so I applied the same to tone2wav and the segfaults went away

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2016-12-30 15:12:14 -06:00
Chris Rienzo f45b19d53e FS-9826 reset jitter buffer if SSRC changes regardless of jitter buffer paused state 2016-12-30 15:11:52 -06:00
Brian West b32109b884 FS-9816 yasm is not a runtime dependency, its only needed to build libvpx when compiling 2016-12-30 15:11:07 -06:00
Seven Du efaab35430 FS-9817 #resolve fix regression from 828d6eaf01 2016-12-30 15:10:55 -06:00
Luis Azedo 5bb50046b3 FS-9813 [mod_kazoo] add kz_http_put 2016-12-30 15:08:21 -06:00
Sergey Safarov 6d4e83ed2c FS-9805: Organized prompts in phrase_en.xml 2016-12-30 15:07:51 -06:00
Sergey Safarov c63229e5ef FS-9805: Created script to compare XML traslation files with phrase_en.xml 2016-12-30 15:07:39 -06:00
Brian West 174a1e2458 FS-9812 fix label that is only used when zrtp or srtp are enabled 2016-12-30 15:07:24 -06:00
Marc Olivier Chouinard 0cf6445cc2 FS-9788: Add close() option to FileIO implementation 2016-12-30 15:07:09 -06:00
Marc Olivier Chouinard 251d59f167 FS-9794: Set the result cause of an originate failed cause to variable originate_failed_cause 2016-12-30 15:05:00 -06:00
nneul at mst.edu 44ab5cb413 FS-8733 FS-9804 various phrase updates 2016-12-30 15:04:34 -06:00
nneul at mst.edu 02e5191698 FS-9804 broken closing tag 2016-12-30 15:04:24 -06:00
Brian West 88274afc60 FS-9799 rotate and increase log file size 2016-12-30 15:03:46 -06:00
Muhammad Zaka 5e69c625ee FS-9277: sip info with record: on and off doesn't start and stop call recording sessions 2016-12-30 15:03:22 -06:00
nneul at mst.edu 9dbbc97cd0 FS-9801 fix incorrect xml sections for phrase files 2016-12-30 15:03:00 -06:00
Mike Jerris 20966a1d03 FS-9800: [core] add new accessor functions to core statistics for use in modules 2016-12-30 15:02:33 -06:00
Brian West 6e6d85903e tweak our bashrc %ignore 2016-12-30 15:01:15 -06:00
Seven Du 238729da62 FS-9787 #resolve remove duplicated headers in conference del-member events 2016-12-30 15:00:49 -06:00
Roman Sukhov cb03c607cb FS-9780 [spandsp] Change MAX_COMMAND_TRIES to 6 2016-12-30 14:58:31 -06:00
Luis Azedo 14d18a0977 FS-9735 - send unknown headers to switch_ivr_set_user
creeates switch_ivr_set_user_extended to receive params to pass to xml_locate_user
2016-12-30 14:56:36 -06:00
Tamas Cseke e6f928ca79 Remove arg limit
Allocate dynamically
FS-9762 --resolve
2016-12-30 14:56:01 -06:00
Aron Podrigal 65e0908128 FS-9758: switch_sql_queue_manager_destroy() avoid null pointer deref
If passed in *qmp is a null pointer return `SWITCH_STATUS_NOOP`
2016-12-30 14:55:35 -06:00
Mike Jerris cc75fd8307 FS-9581: [windows] fix function signatures in switch_estimators.c 2016-12-30 14:44:30 -06:00
Mike Jerris 801d594637 FS-9581: add new required source files to core build 2016-12-30 14:44:24 -06:00
Mike Jerris 54856f08ee FS-9581: [windows] don't define symbols before pch include 2016-12-30 14:44:17 -06:00
Mike Jerris 097c048747 FS-9581: [windows] DEBUG_ESTIMATORS symbol conflict in windows 2016-12-30 14:44:10 -06:00
Mike Jerris d422498d0f FS-9782: [mod_sofia] on recovery, flip the order of the record route on inbound calls only, use the record route in the same order on inbound calls and in reverse order on outbound calls as the initial route set when doing the recover invite. Account for the call direction based on how sip considers it, not based on freeswitch direction so inbound calls after recovery are treated as outbound in this logic 2016-12-14 15:37:02 -06:00
Mike Jerris cacebb1557 FS-9782: [mod_sofia] on recovery, don't flip the order of the record route ever, on outbound calls use the record route in the reverse order as the initial route set when doing the recover invite 2016-12-14 15:36:57 -06:00
Brian West 553f3ac1ac FS-9851: [freeswitch-core] Add abstimeout to CoreSession:getDigits in switch_cpp #resolve 2016-12-14 14:27:41 -06:00
Ken Rice e755b430da version bump 2016-11-29 09:46:39 -06:00
Luis Azedo f18f82cffe FS-9747: [core] add channel hold/unhold verbosity 2016-11-18 09:37:54 -06:00
Brian West 7d61495381 FS-9755 conference cdr is required for 4579 support in mod_conference 2016-11-18 09:37:53 -06:00
Anthony Minessale a71bf235e7 FS-9748: [Locking contention with mod_shout playing conference moh] 2016-11-18 09:37:30 -06:00
Anthony Minessale 1e3b8d1f97 FS-9739 [switch_rtp mistakes "ffffffff" for a new DTMF and Queue's a NULL digit] 2016-11-18 09:36:51 -06:00
Chris Rienzo ea90d6d5b3 FS-5978 [mod_rayo] attempt to fix direct media join 2016-11-18 09:34:30 -06:00
Mike Jerris 18deb4d8d7 update verto-min.js 2016-11-16 11:23:18 -06:00
Mike Jerris bc608b9213 swigall 2016-11-16 11:23:18 -06:00
Chris Rienzo 311b6e1b6b FS-9737 [mod_hiredis] fix limit_usage when using hiredis backend 2016-11-16 11:23:17 -06:00
Chris Rienzo 0e5508ab57 FS-9733 [mod_rayo] prevent bad tts format string from being generated when MRCP headers are not present 2016-11-16 11:23:17 -06:00
Chris Rienzo 90b4521b7f FS-9732 [mod_ssml] create default configuration so ssml.conf.xml is not needed 2016-11-16 11:23:17 -06:00
Anthony Minessale fdabd49da3 FS-9715 add webm and mkv too 2016-11-16 11:23:17 -06:00
nneul at mst.edu 383c4cf8ce [FS-9367] log session counts at channel state change 2016-11-16 11:23:17 -06:00
Markus von Arx 8bcf236877 FS-9387 [libzrtp] bugfix for hash calculation of the auxiliary secret 2016-11-16 11:23:16 -06:00
Andy Newlands f57d0a8424 FS-9412 [switch_loadable_module.c] Make MODULE_UNLOAD event report module name (key) and file (filename), similar to event MODULE_LOAD
Add key and filename for symetry with SWITCH_EVENT_MODULE_LOAD, for api_interface, and to make it simpler to know which module is unloaded

FS-9412 #resolve
2016-11-16 11:23:16 -06:00
Mike Jerris c1939fe7a6 FS-9727: raise size limit on unkown size odbc column data from 256 to 16k 2016-11-16 11:23:16 -06:00
François a451db4a60 FS-9728 fix dynamic media tag on verto.newCall method 2016-11-16 11:23:16 -06:00
Mike Jerris b0d2b2d761 FS-9652: improve sql sanitization 2016-11-16 11:23:15 -06:00
Mike Jerris 6bda05280b FS-9592: [mod_httapi] make sure to reset one time params when starting over in httapi app 2016-11-16 11:23:15 -06:00
luiztelles 6b40391b31 FS-9671 fix wrong cseq in notify Expires 0 2016-11-16 11:23:15 -06:00
Mike Jerris 249af2689f FS-9691: don't call sql code inside hash_mutex due to circular mutex contention between hash_mutex and profile->dbh_mutex 2016-11-16 11:23:15 -06:00
Anthony Minessale b610495f0b FS-9712 #resolve [3PCC-Proxy Missing SDP on Reinvite. ] 2016-11-16 11:23:15 -06:00
Brian West 1df48d4506 FS-9726 Fix malformed PAI 2016-11-16 11:23:15 -06:00
Josh Allmann cc83b7ecd2 FS-9725: Disable blank img with core_video_blank_image=false. 2016-11-16 11:23:14 -06:00
Brian West 2fe0c8c085 FS-9204: complte the urls so that snom can execute the pickup, It used to probably send it to the proxy, but now needs the host in the packet or throws network error 2016-11-16 11:23:14 -06:00
Mike Jerris 7bcaaeb5eb FS-9714: [mod_conference] fix crash due to race on closing file handles when playing a file to a conference via api command as a conference is shutting down 2016-11-16 11:23:14 -06:00
Anthony Minessale be2d60accf FS-9719: Separate gen_ts_delta between audio and video and enable support to auto engage this feature for pass-thru video 2016-11-16 11:23:14 -06:00
Anthony Minessale 1d9c198d85 FS-9709 #resolve [JB drops packets after hole-punching] 2016-11-16 11:23:14 -06:00
Anthony Minessale f944bc7d9f FS-9715 #resolve [Add support for m4a] 2016-11-16 11:23:14 -06:00
François 8a6c4208ed FS-9693 use existing date parsing functions in fulldate comparison that take timezone into account 2016-11-16 11:23:13 -06:00
Anthony Minessale aa68ef26fe FS-9706 #resolve [Add loops param to file playback in conference] 2016-11-16 11:23:13 -06:00
Anthony Minessale b367518755 FS-9705 #resolve [Files using prebuffer do not play properly when seeking back to the beginning once the file is done playing] 2016-11-16 11:23:13 -06:00
Anthony Minessale 4c683a9130 FS-9704 #resolve [Seeking video files with mod_av after it reaches the end does not work] 2016-11-16 11:23:13 -06:00
Seven Du b65688c5a4 FS-9700 #resolve 2016-11-16 11:23:13 -06:00
Anthony Minessale 1cd9fee7f1 FS-9697 #resolve [Video compat changes to support older clients] 2016-11-16 11:23:13 -06:00
Anthony Minessale b2abff82ee FS-9668 also check for keyframe requests on INFO even when proxying for good measure 2016-11-16 11:23:12 -06:00
Seven Du aaaf8cf469 FS-3568 #comment update Chinese phrase XML, thanks Gaofei 2016-11-16 11:23:12 -06:00
Mike Jerris 08aa721cda FS-9714: [core] switch assert on attempted double close of a file handle 2016-11-16 11:23:12 -06:00
Brian West cb382084f0 FS-9687: segfault Program terminated with signal SIGFPE, Arithmetic exception. 2016-11-16 11:23:12 -06:00
Brian West 44b3f7bf18 Commit an example of using the IVRMenu object to build the ivr in lua. 2016-11-16 11:23:12 -06:00
Brian West 083fb35494 FS-9629: add isfocus to replies, and add is_conference support to pre_answer 2016-11-16 11:23:12 -06:00
Brian West 2cbe1989d1 FS-9678: Fix FreeSWITCH not shutting down when profiles fails to load and shutdown-on-fail is set to true 2016-11-16 11:23:12 -06:00
Anthony Minessale 91945cb1de FS-9680 #resolve [Add proxy-message param to sofia] 2016-11-16 11:23:11 -06:00
Anthony Minessale aa3283e256 FS-9668 #resolve [Add proxy-info feature] 2016-11-16 11:23:11 -06:00
Italo Rossi 0b46ced079 FS-9646 [verto_communicator] Fixing settings toggle 2016-11-16 11:23:11 -06:00
David Matson 402e7f57b7 FS-9662 #resolves [mod_opal] Fix version number in old OPAL error 2016-11-16 11:23:10 -06:00
Anthony Minessale bce387e537 FS-9665 #resolve [Add video_pre_call_banner feature]
Conflicts:
	src/switch_ivr_bridge.c
2016-11-16 11:23:10 -06:00
Mike Jerris c57f72177f FS-9634: fix typo 2016-11-16 11:23:10 -06:00
Seven Du af7577195a FS-9151 FS-9631 #resolve 2016-11-16 11:23:10 -06:00
Josh Allmann 5e302a6982 FS-9660: Fix BW calculation for SDP media clause
The AS descriptor for SDP b= lines is already defined in kilobits/second.
Fixes an issue with extremely low bitrate videos when a SDP media clause has
its own b=AS: line specified.
2016-11-16 11:23:10 -06:00
Anthony Minessale fb40ef0d2a FS-9634 #resolve [RTCP mux is always proposed on outbound channels even if rtcp_mux chan variable is 0] 2016-11-16 11:23:10 -06:00
William King c82e83fb42 FS-9656 Coverity 1364971: resolve memory leak in new HEPv3 logging 2016-11-16 11:23:10 -06:00
Giacomo Vacca 501579c8e9 FS-9643 mod_opus Log encoded stats at end of call
Log count of encoded FEC frames in debug mode
2016-11-16 11:23:09 -06:00
Manuel Durán Aguete cc444c08ed FS-9647 Improve spanish translations
Improve spanish translations for verto communicator.
2016-11-16 11:23:09 -06:00
William King cae04beb32 FS-9651 Fix incorrect expression 2016-11-16 11:23:09 -06:00
William King e9f1830489 FS-9650 initialize pointer to NULL to resolve warning 2016-11-16 11:23:09 -06:00
William King 90c09d045e FS-9649 Fix filebug script if EDITOR env variable not set 2016-11-16 11:23:09 -06:00
Brian West 6c6eb98452 FS-9632 remove SWITCH_FILE_FLAG_VIDEO flag if we fail to receive video so we fall thru and record the audio only. Previously it would just fail to function as expected. 2016-11-16 11:23:09 -06:00
Josh Allmann eecb9db0c5 mod_sofia: Add 'username' header for expiration events.
More consistent with the naming in other events, eg
register and unregister.
2016-11-16 11:23:08 -06:00
Chad Phillips 34e8c062de FS-9640: Allow access to Verto stream object via callback
Exposes Verto MediaStream objects via the onGranted() callback
2016-11-16 11:23:08 -06:00
François d0e3d0b8e6 FS-9590 check dtmf_type variable when negociating inbound SDP 2016-11-16 11:23:08 -06:00
Sergey Safarov 95b66cea9f FS-9594: Fixed hostname resolving for IPv6 addreses.
aa
2016-11-16 11:23:08 -06:00
Sergey Safarov ba6ed65366 FS-9594: Has been adjusted string vars size to fit IPv6 address 2016-11-16 11:23:08 -06:00
Chad Phillips ed36e9cb6f FS-9395: downgrade some FSRTC console.error messages
Some of the console.error messages generated in FSRTC aren't really
error-worthy, downgrading appropriately.
2016-11-16 11:23:08 -06:00
Chad Phillips c5bd29971c FS-9635: update deprecated stream.onended
stream.onended is being removed in Chrome 54, update to
stream.oninactive
2016-11-16 11:23:08 -06:00
Brian West 463ab08d5a FS-9623 update .update 2016-11-16 11:23:08 -06:00
Mike Jerris 82ce12bc95 FS-9628: [verto] correct return value of $.FSRTC.bestResSupported to be the largest resolution
Conflicts:
	html5/verto/video_demo/js/verto-min.js
2016-11-16 11:23:07 -06:00
Anthony Minessale 8749966e2b FS-9699 #resolve [Improper response to reinvite after using uuid_media_3p] 2016-11-16 11:23:00 -06:00
Anthony Minessale 92a0251f41 FS-9455 #resolve [Doubled posts in the chat window ] 2016-11-02 16:01:15 -05:00
Brian West be0499094b FS-9685 Update broadsoft SLA to work with newer Polycom firmware. 2016-11-01 10:23:13 -05:00
Josh Allmann 43f889cfee FS-9654: Fix RTP packet drops
There was issue with certain endpoints that would lead to dropping
nearly every other RTP packet from the callee.

The scenario is as follows: the caller (bridged through FreeSWITCH)
offers codecs A and B with payload types X and Y, respectively.
The callee answers with codec B and payload type X.

The fix is to use the sender's expected payload type when checking
against the received RTP packet, rather than the receiver's.
2016-10-28 10:13:36 -05:00
Anthony Minessale 96eca8abb1 FS-9654 2016-10-25 21:10:15 -05:00
Brian West ca356f2ac0 FS-9666 fix unused variable 2016-10-24 17:22:03 -05:00
Anthony Minessale 8b01f65971 FS-9666 #resolve [Remove legacy code when getting an XML video refresh] 2016-10-24 17:22:03 -05:00
Brian West 8c795825f1 swigall 2016-10-21 11:31:47 -05:00
Anthony Minessale f811652699 FS-9654 #resolve [Issue with RTP payload negotiation] 2016-10-20 15:54:17 -05:00
Ken Rice 08d5f672d5 FS-9653 #resolve freeswitch-meta-all-dbg should not depend on non-existant freeswitch-meta-lang-dbg %backport=1.6 2016-10-20 13:50:13 -05:00
Ken Rice 61dc7bdd35 FS-9642 #resolve do not limit time for real time threads with systemd. this causes systemd to randomly restart FreeSWITCH without notice as to why. %backport=1.6 2016-10-20 10:58:46 -05:00
Anthony Minessale bd30d76332 FS-9648 #resolve [Conference avatar image gets stuck enabled when it uses the same image as video mute] 2016-10-19 15:36:13 -05:00
Anthony Minessale 464eba8434 FS-9639 e3353b7 backported 2016-10-13 13:05:17 -05:00
Ken Rice b91a0a6f2b bump version 2016-10-11 08:49:56 -05:00
Anthony Minessale 25837103fb FS-9612 2016-10-05 10:10:43 -05:00
Anthony Minessale 4bfc63b261 FS-9612 #resolve [RTCP-MUX wrongly enabled in cases where answer contains rtcp but offer didn't / remote addr not obtained in UDPTL mode] %backport=1.6 2016-10-05 01:23:07 -05:00
Anthony Minessale 3ce24c2964 FS-9610 #resolve [Video keyframe requests not being propagated properly] %backport=1.6 2016-10-04 22:35:51 -05:00
Dragos Oancea 191aca2c58 FS-9601: mod_opus: make adjustable bitrate mutually exclusive with FEC enforcing on the decreasing trend,
add step calculation for bitrate adjustment, fix bug on context settings
2016-10-03 11:14:50 -05:00
Anthony Minessale 3bb339d920 FS-9596 #resolve [rtp-timeout triggered for on-hold calls with a=inactive] 2016-09-30 13:01:41 -05:00
Anthony Minessale 412b598151 FS-9597 #resolve [host_lookup does not resolve v6 addrs] %backport=1.6 2016-09-30 12:23:26 -05:00
Anthony Minessale 93205a6028 FS-9593 #resolve [Video syncs too much on video muted channels] %backport=1.6 2016-09-29 17:16:13 -05:00
Anthony Minessale 9a94a61b01 FS-9552 2016-09-29 16:16:41 -05:00
Anthony Minessale ec751e64a1 FS-9552 2016-09-29 16:16:23 -05:00
Giacomo Vacca 58ed5bdf7c FS-9584 Separate initial bitrate negotiation from sample rates 2016-09-29 16:16:01 -05:00
Waldyr de Souza e4c8c2fc46 FS-9552 add to verto communicator toggle deaf status button 2016-09-29 16:14:45 -05:00
Anthony Minessale 5e413fe204 update config file 2016-09-28 12:20:19 -05:00
Anthony Minessale 064f0c0e11 FS-9586 #resolve [local_stream video queue stuck when not being read from] %backport=1.6 2016-09-28 11:16:14 -05:00
Anthony Minessale abf8a7bfca FS-9580 #resolve [RTCP Auto-adjust] %backport=1.6 2016-09-28 11:16:01 -05:00
Anthony Minessale 4bab51e306 FS-9242 fix screen share for chrome to work in VC with additional camera 2016-09-28 11:15:45 -05:00
Italo Rossi 2ea20cca1b FS-7876 [verto_communicator] Adding hold button for video calls 2016-09-28 11:15:34 -05:00
Italo Rossi 575c98552d FS-9508 [verto_communicator] Adding AGC option on settings, enabled by default 2016-09-28 11:15:12 -05:00
Italo Rossi a328210b25 FS-8955 [verto_communicator] Adding DTMF shortcuts and handling DTMF history on DTMF widget 2016-09-28 11:15:00 -05:00
Anthony Minessale e57a6b356b FS-9242 convert to adapter.js 2016-09-28 11:14:45 -05:00
Ken Rice 3b959e9435 Bump Version Number 2016-09-28 09:09:52 -05:00
Ken Rice 278cca6f7b Merge branch 'master' into v1.6 2016-09-28 09:09:01 -05:00
Ken Rice 726448d962 version bump 2016-08-24 16:54:04 -05:00
Ken Rice 63c10a9a36 Merge branch 'master' into v1.6 2016-08-24 16:50:18 -05:00
Ken Rice d574870720 Merge branch 'master' into v1.6 2016-06-13 13:10:44 -05:00
Ken Rice 7ceac34e47 bump version 2016-06-12 21:54:27 -05:00
Ken Rice 608c65c0d3 Merge branch 'master' into v1.6 2016-06-12 21:53:47 -05:00
Ken Rice 99de0ad502 Merge branch 'master' into v1.6 2016-05-05 10:38:32 -05:00
Ken Rice 905d0d2823 Merge branch 'master' into v1.6 2016-05-04 17:14:06 -05:00
Ken Rice de08c20caf version bump 2016-05-02 09:36:04 -05:00
Ken Rice 5d97d0892c Merge branch 'master' into v1.6 2016-04-29 16:01:33 -05:00
Ken Rice 5d75f06645 Merge branch 'master' into v1.6 2016-04-25 17:12:06 -05:00
Ken Rice 3266df82fc Merge branch 'master' into v1.6 2016-04-21 10:45:00 -05:00
Ken Rice f0c3870be3 spec file update for asm build requirements for libyuv 2016-04-01 08:40:07 -05:00
Ken Rice d38d065f51 Merge branch 'master' into v1.6 2016-03-31 20:36:13 -05:00
Ken Rice 56119fd685 version bump 2016-03-14 10:55:23 -05:00
Ken Rice 4f335f797c Merge branch 'master' into v1.6 2016-03-14 10:54:47 -05:00
Ken Rice d2d0b3283a version bump 2016-01-11 14:16:12 -06:00
Ken Rice c0707c84ab Merge branch 'master' into v1.6 2016-01-11 14:14:51 -06:00
nneul on mst.edu 60f514362d FS-8711 #resolve [fix a couple of possible memory leaks in mod_skinny packet reading code] 2016-01-06 10:54:47 -06:00
Ken Rice 70b8c17763 tweak to freeswitch.spec for building RPMs on centos7 2015-11-20 14:57:50 -06:00
Ken Rice 09fd5f539e Revert "FS-8369 Debian8/CentOS7 systemd installer additions"
This reverts commit adc8f9a119.
2015-11-20 14:57:46 -06:00
Ken Rice c1e140fdf0 Revert "FS-8369 Debian8/CentOS7 systemd installer additions"
This reverts commit 757fa94239.
2015-11-20 14:57:41 -06:00
Ken Rice ff12bd6cfc Revert "FS-8369 Fixes"
This reverts commit 389d24da14.
2015-11-20 14:57:36 -06:00
Ken Rice d5520a6612 bump revision 2015-11-19 14:27:21 -06:00
Ken Rice 684235116d Merge branch 'master' into v1.6 2015-11-19 13:55:18 -06:00
Ken Rice 0452cdc0a8 bumping version number 2015-10-23 10:26:13 -05:00
Ken Rice 5e60af977e Merge branch 'master' into v1.6 2015-10-23 10:25:35 -05:00
Ken Rice 6f1be1d4d9 bump version 2015-10-09 15:28:18 -05:00
Ken Rice 08bda5e21b Merge branch 'master' into v1.6 2015-10-09 15:27:41 -05:00
William King c0c3c38f64 FS-8255 #resolve fix debian codename changes since jessie was released as stable 2015-09-30 13:24:28 -05:00
Ken Rice 74c037b0ae Bump Version Number 2015-09-28 00:24:12 -05:00
Ken Rice 643e3ff88f bump version 2015-09-25 09:50:20 -05:00
Ken Rice f6ab7ff6ae Merge branch 'master' into v1.6 for v1.6.2 2015-09-25 09:49:42 -05:00
Ken Rice 6762f14140 bump versions numbers in prep for initial 1.6 release 2015-09-03 15:36:52 -05:00
600 changed files with 62394 additions and 75643 deletions

2
.gitattributes vendored
View File

@ -17,6 +17,8 @@
*.min.js -diff binary minified
*-min.js -diff binary minified
*.min.css -diff binary minified
.git* debian-ignore
gbp.conf debian-ignore
/clients/flex* dfsg-nonfree
/debian* debian-ignore
/freeswitch.xcodeproj debian-ignore

18
.gitignore vendored
View File

@ -231,3 +231,21 @@ yum/temp
html5/verto/verto_communicator/bower_components/
html5/verto/verto_communicator/node_modules/
.vs/
Freeswitch.2015.VC.db
Freeswitch.2015.VC.VC.opendb
libs/freetype/
libs/libpng/
libs/zlib/
libs/libav/
libs/libx264/
Win32/*.msi
x64/*.msi
libs/tiff-4.0.7/
libs/PaxHeaders.1693/
libs/lua-*/

View File

@ -1,6 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Codecs", "Codecs", "{F881ADA2-2F1A-4046-9FEB-191D9422D781}"
EndProject
@ -395,8 +395,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspeexdsp", "libs\win32\s
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libilbc", "libs\ilbc\libilbc.2015.vcxproj", "{9A5DDF08-C88C-4A35-B7F6-D605228446BD}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lua51", "src\mod\languages\mod_lua\lua\lua.2015.vcxproj", "{D0B36172-CD76-454A-9B89-990025266C2A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_opal", "src\mod\endpoints\mod_opal\mod_opal.2015.vcxproj", "{05C9FB27-480E-4D53-B3B7-6338E2526666}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skinny", "src\mod\endpoints\mod_skinny\mod_skinny.2015.vcxproj", "{CC1DD008-9406-448D-A0AD-33C3186CFADB}"
@ -606,6 +604,53 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_rtc", "src\mod\endpoint
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_verto", "src\mod\endpoints\mod_verto\mod_verto.2015.vcxproj", "{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libyuv", "libs\win32\libyuv\libyuv.2015.vcxproj", "{B6E22500-3DB6-4E6E-8CD5-591B781D7D99}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvpx", "libs\win32\libvpx\libvpx.2015.vcxproj", "{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "libs\win32\zlib\zlib.vcxproj", "{60F89955-91C6-3A36-8000-13C592FEC2DF}"
ProjectSection(ProjectDependencies) = postProject
{CDCEC78E-D445-47AC-A2AE-DEBE2CE3A311} = {CDCEC78E-D445-47AC-A2AE-DEBE2CE3A311}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpng", "libs\win32\libpng\libpng.vcxproj", "{D6973076-9317-4EF2-A0B8-B7A18AC0713E}"
ProjectSection(ProjectDependencies) = postProject
{60F89955-91C6-3A36-8000-13C592FEC2DF} = {60F89955-91C6-3A36-8000-13C592FEC2DF}
{C2D5EB6D-F4DE-4DEE-B5B8-B6FD26C22D33} = {C2D5EB6D-F4DE-4DEE-B5B8-B6FD26C22D33}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download zlib", "libs\win32\Download zlib.2015.vcxproj", "{CDCEC78E-D445-47AC-A2AE-DEBE2CE3A311}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download libpng", "libs\win32\Download libpng.2015.vcxproj", "{C2D5EB6D-F4DE-4DEE-B5B8-B6FD26C22D33}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "libs\win32\freetype\freetype.vcxproj", "{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}"
ProjectSection(ProjectDependencies) = postProject
{0AD87FDA-989F-4638-B6E1-B0132BB0560A} = {0AD87FDA-989F-4638-B6E1-B0132BB0560A}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download freetype", "libs\win32\Download freetype.2015.vcxproj", "{0AD87FDA-989F-4638-B6E1-B0132BB0560A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_png", "src\mod\formats\mod_png\mod_png.2015.vcxproj", "{FBC7E2A4-B989-4289-BA7F-68F440E9EF8B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download libav", "libs\win32\Download libav.2015.vcxproj", "{77C9E0A2-177D-4BD6-9EFD-75A56F886325}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libav", "libs\win32\libav\libav.2015.vcxproj", "{841C345F-FCC7-4F64-8F54-0281CEABEB01}"
ProjectSection(ProjectDependencies) = postProject
{77C9E0A2-177D-4BD6-9EFD-75A56F886325} = {77C9E0A2-177D-4BD6-9EFD-75A56F886325}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_av", "src\mod\applications\mod_av\mod_av.2015.vcxproj", "{7AEE504B-23B6-4B05-829E-7CD34855F146}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libx264", "libs\win32\libx264\libx264.2015.vcxproj", "{20179127-853B-4FE9-B7C0-9E817E6A3A72}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download libx264", "libs\win32\Download libx264.2015.vcxproj", "{6D1BC01C-3F97-4C08-8A45-69C9B94281AA}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_http_cache", "src\mod\applications\mod_http_cache\mod_http_cache.vcxproj", "{87933C2D-0159-46F7-B326-E1B6E982C21E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lua52", "libs\win32\lua\lua.2015.vcxproj", "{4F990563-6DFB-45C3-B083-1938C6D7FFA4}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download lua", "libs\win32\Download lua.2015.vcxproj", "{45CD36EE-0AF3-4387-8790-4F11E928299D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
All|Win32 = All|Win32
@ -1300,6 +1345,7 @@ Global
{7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x64.ActiveCfg = Release|x64
{7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x64.Build.0 = Release|x64
{7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.ActiveCfg = Debug|Win32
{7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.Build.0 = Debug|Win32
{7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64.ActiveCfg = Debug|x64
{7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64.Build.0 = Debug|x64
{7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|Win32.ActiveCfg = Release|Win32
@ -1746,17 +1792,6 @@ Global
{9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|Win32.Build.0 = Release|Win32
{9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|x64.ActiveCfg = Release|x64
{9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release|x64.Build.0 = Release|x64
{D0B36172-CD76-454A-9B89-990025266C2A}.All|Win32.ActiveCfg = Release|x64
{D0B36172-CD76-454A-9B89-990025266C2A}.All|x64.ActiveCfg = Release|x64
{D0B36172-CD76-454A-9B89-990025266C2A}.All|x64.Build.0 = Release|x64
{D0B36172-CD76-454A-9B89-990025266C2A}.Debug|Win32.ActiveCfg = Debug|Win32
{D0B36172-CD76-454A-9B89-990025266C2A}.Debug|Win32.Build.0 = Debug|Win32
{D0B36172-CD76-454A-9B89-990025266C2A}.Debug|x64.ActiveCfg = Debug|x64
{D0B36172-CD76-454A-9B89-990025266C2A}.Debug|x64.Build.0 = Debug|x64
{D0B36172-CD76-454A-9B89-990025266C2A}.Release|Win32.ActiveCfg = Release|Win32
{D0B36172-CD76-454A-9B89-990025266C2A}.Release|Win32.Build.0 = Release|Win32
{D0B36172-CD76-454A-9B89-990025266C2A}.Release|x64.ActiveCfg = Release|x64
{D0B36172-CD76-454A-9B89-990025266C2A}.Release|x64.Build.0 = Release|x64
{05C9FB27-480E-4D53-B3B7-6338E2526666}.All|Win32.ActiveCfg = Release|Win32
{05C9FB27-480E-4D53-B3B7-6338E2526666}.All|Win32.Build.0 = Release|Win32
{05C9FB27-480E-4D53-B3B7-6338E2526666}.All|x64.ActiveCfg = Release|Win32
@ -2686,6 +2721,218 @@ Global
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Release|Win32.Build.0 = Release|Win32
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Release|x64.ActiveCfg = Release|x64
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6}.Release|x64.Build.0 = Release|x64
{B6E22500-3DB6-4E6E-8CD5-591B781D7D99}.All|Win32.ActiveCfg = Release|Win32
{B6E22500-3DB6-4E6E-8CD5-591B781D7D99}.All|Win32.Build.0 = Release|Win32
{B6E22500-3DB6-4E6E-8CD5-591B781D7D99}.All|x64.ActiveCfg = Release|x64
{B6E22500-3DB6-4E6E-8CD5-591B781D7D99}.All|x64.Build.0 = Release|x64
{B6E22500-3DB6-4E6E-8CD5-591B781D7D99}.Debug|Win32.ActiveCfg = Debug|Win32
{B6E22500-3DB6-4E6E-8CD5-591B781D7D99}.Debug|Win32.Build.0 = Debug|Win32
{B6E22500-3DB6-4E6E-8CD5-591B781D7D99}.Debug|x64.ActiveCfg = Debug|x64
{B6E22500-3DB6-4E6E-8CD5-591B781D7D99}.Debug|x64.Build.0 = Debug|x64
{B6E22500-3DB6-4E6E-8CD5-591B781D7D99}.Release|Win32.ActiveCfg = Release|Win32
{B6E22500-3DB6-4E6E-8CD5-591B781D7D99}.Release|Win32.Build.0 = Release|Win32
{B6E22500-3DB6-4E6E-8CD5-591B781D7D99}.Release|x64.ActiveCfg = Release|x64
{B6E22500-3DB6-4E6E-8CD5-591B781D7D99}.Release|x64.Build.0 = Release|x64
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.All|Win32.ActiveCfg = Release|Win32
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.All|Win32.Build.0 = Release|Win32
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.All|x64.ActiveCfg = Release|x64
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.All|x64.Build.0 = Release|x64
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Debug|Win32.ActiveCfg = Debug|Win32
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Debug|Win32.Build.0 = Debug|Win32
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Debug|x64.ActiveCfg = Debug|x64
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Debug|x64.Build.0 = Debug|x64
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Release|Win32.ActiveCfg = Release|Win32
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Release|Win32.Build.0 = Release|Win32
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Release|x64.ActiveCfg = Release|x64
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74}.Release|x64.Build.0 = Release|x64
{60F89955-91C6-3A36-8000-13C592FEC2DF}.All|Win32.ActiveCfg = Release|Win32
{60F89955-91C6-3A36-8000-13C592FEC2DF}.All|Win32.Build.0 = Release|Win32
{60F89955-91C6-3A36-8000-13C592FEC2DF}.All|x64.ActiveCfg = Release|x64
{60F89955-91C6-3A36-8000-13C592FEC2DF}.All|x64.Build.0 = Release|x64
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Debug|Win32.ActiveCfg = Debug|Win32
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Debug|Win32.Build.0 = Debug|Win32
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Debug|x64.ActiveCfg = Debug|x64
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Debug|x64.Build.0 = Debug|x64
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release|Win32.ActiveCfg = Release|Win32
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release|Win32.Build.0 = Release|Win32
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release|x64.ActiveCfg = Release|x64
{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release|x64.Build.0 = Release|x64
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.All|Win32.ActiveCfg = Release|Win32
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.All|Win32.Build.0 = Release|Win32
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.All|x64.ActiveCfg = Release|x64
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.All|x64.Build.0 = Release|x64
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug|Win32.ActiveCfg = Debug|Win32
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug|Win32.Build.0 = Debug|Win32
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug|x64.ActiveCfg = Debug|x64
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug|x64.Build.0 = Debug|x64
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release|Win32.ActiveCfg = Release|Win32
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release|Win32.Build.0 = Release|Win32
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release|x64.ActiveCfg = Release|x64
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release|x64.Build.0 = Release|x64
{CDCEC78E-D445-47AC-A2AE-DEBE2CE3A311}.All|Win32.ActiveCfg = Release|Win32
{CDCEC78E-D445-47AC-A2AE-DEBE2CE3A311}.All|Win32.Build.0 = Release|Win32
{CDCEC78E-D445-47AC-A2AE-DEBE2CE3A311}.All|x64.ActiveCfg = Release|Win32
{CDCEC78E-D445-47AC-A2AE-DEBE2CE3A311}.All|x64.Build.0 = Release|Win32
{CDCEC78E-D445-47AC-A2AE-DEBE2CE3A311}.Debug|Win32.ActiveCfg = Debug|Win32
{CDCEC78E-D445-47AC-A2AE-DEBE2CE3A311}.Debug|Win32.Build.0 = Debug|Win32
{CDCEC78E-D445-47AC-A2AE-DEBE2CE3A311}.Debug|x64.ActiveCfg = Debug|Win32
{CDCEC78E-D445-47AC-A2AE-DEBE2CE3A311}.Debug|x64.Build.0 = Debug|Win32
{CDCEC78E-D445-47AC-A2AE-DEBE2CE3A311}.Release|Win32.ActiveCfg = Release|Win32
{CDCEC78E-D445-47AC-A2AE-DEBE2CE3A311}.Release|Win32.Build.0 = Release|Win32
{CDCEC78E-D445-47AC-A2AE-DEBE2CE3A311}.Release|x64.ActiveCfg = Release|Win32
{CDCEC78E-D445-47AC-A2AE-DEBE2CE3A311}.Release|x64.Build.0 = Release|Win32
{C2D5EB6D-F4DE-4DEE-B5B8-B6FD26C22D33}.All|Win32.ActiveCfg = Release|Win32
{C2D5EB6D-F4DE-4DEE-B5B8-B6FD26C22D33}.All|Win32.Build.0 = Release|Win32
{C2D5EB6D-F4DE-4DEE-B5B8-B6FD26C22D33}.All|x64.ActiveCfg = Release|Win32
{C2D5EB6D-F4DE-4DEE-B5B8-B6FD26C22D33}.All|x64.Build.0 = Release|Win32
{C2D5EB6D-F4DE-4DEE-B5B8-B6FD26C22D33}.Debug|Win32.ActiveCfg = Debug|Win32
{C2D5EB6D-F4DE-4DEE-B5B8-B6FD26C22D33}.Debug|Win32.Build.0 = Debug|Win32
{C2D5EB6D-F4DE-4DEE-B5B8-B6FD26C22D33}.Debug|x64.ActiveCfg = Debug|Win32
{C2D5EB6D-F4DE-4DEE-B5B8-B6FD26C22D33}.Debug|x64.Build.0 = Debug|Win32
{C2D5EB6D-F4DE-4DEE-B5B8-B6FD26C22D33}.Release|Win32.ActiveCfg = Release|Win32
{C2D5EB6D-F4DE-4DEE-B5B8-B6FD26C22D33}.Release|Win32.Build.0 = Release|Win32
{C2D5EB6D-F4DE-4DEE-B5B8-B6FD26C22D33}.Release|x64.ActiveCfg = Release|Win32
{C2D5EB6D-F4DE-4DEE-B5B8-B6FD26C22D33}.Release|x64.Build.0 = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.All|Win32.ActiveCfg = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.All|Win32.Build.0 = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.All|x64.ActiveCfg = Release|x64
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.All|x64.Build.0 = Release|x64
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.ActiveCfg = Debug|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.Build.0 = Debug|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.ActiveCfg = Debug|x64
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.Build.0 = Debug|x64
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.ActiveCfg = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.Build.0 = Release|Win32
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.ActiveCfg = Release|x64
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.Build.0 = Release|x64
{0AD87FDA-989F-4638-B6E1-B0132BB0560A}.All|Win32.ActiveCfg = Release|Win32
{0AD87FDA-989F-4638-B6E1-B0132BB0560A}.All|Win32.Build.0 = Release|Win32
{0AD87FDA-989F-4638-B6E1-B0132BB0560A}.All|x64.ActiveCfg = Release|Win32
{0AD87FDA-989F-4638-B6E1-B0132BB0560A}.All|x64.Build.0 = Release|Win32
{0AD87FDA-989F-4638-B6E1-B0132BB0560A}.Debug|Win32.ActiveCfg = Debug|Win32
{0AD87FDA-989F-4638-B6E1-B0132BB0560A}.Debug|Win32.Build.0 = Debug|Win32
{0AD87FDA-989F-4638-B6E1-B0132BB0560A}.Debug|x64.ActiveCfg = Debug|Win32
{0AD87FDA-989F-4638-B6E1-B0132BB0560A}.Debug|x64.Build.0 = Debug|Win32
{0AD87FDA-989F-4638-B6E1-B0132BB0560A}.Release|Win32.ActiveCfg = Release|Win32
{0AD87FDA-989F-4638-B6E1-B0132BB0560A}.Release|Win32.Build.0 = Release|Win32
{0AD87FDA-989F-4638-B6E1-B0132BB0560A}.Release|x64.ActiveCfg = Release|Win32
{0AD87FDA-989F-4638-B6E1-B0132BB0560A}.Release|x64.Build.0 = Release|Win32
{FBC7E2A4-B989-4289-BA7F-68F440E9EF8B}.All|Win32.ActiveCfg = Release|Win32
{FBC7E2A4-B989-4289-BA7F-68F440E9EF8B}.All|Win32.Build.0 = Release|Win32
{FBC7E2A4-B989-4289-BA7F-68F440E9EF8B}.All|x64.ActiveCfg = Release|x64
{FBC7E2A4-B989-4289-BA7F-68F440E9EF8B}.All|x64.Build.0 = Release|x64
{FBC7E2A4-B989-4289-BA7F-68F440E9EF8B}.Debug|Win32.ActiveCfg = Debug|Win32
{FBC7E2A4-B989-4289-BA7F-68F440E9EF8B}.Debug|Win32.Build.0 = Debug|Win32
{FBC7E2A4-B989-4289-BA7F-68F440E9EF8B}.Debug|x64.ActiveCfg = Debug|x64
{FBC7E2A4-B989-4289-BA7F-68F440E9EF8B}.Debug|x64.Build.0 = Debug|x64
{FBC7E2A4-B989-4289-BA7F-68F440E9EF8B}.Release|Win32.ActiveCfg = Release|Win32
{FBC7E2A4-B989-4289-BA7F-68F440E9EF8B}.Release|Win32.Build.0 = Release|Win32
{FBC7E2A4-B989-4289-BA7F-68F440E9EF8B}.Release|x64.ActiveCfg = Release|x64
{FBC7E2A4-B989-4289-BA7F-68F440E9EF8B}.Release|x64.Build.0 = Release|x64
{77C9E0A2-177D-4BD6-9EFD-75A56F886325}.All|Win32.ActiveCfg = Release|Win32
{77C9E0A2-177D-4BD6-9EFD-75A56F886325}.All|Win32.Build.0 = Release|Win32
{77C9E0A2-177D-4BD6-9EFD-75A56F886325}.All|x64.ActiveCfg = Release|Win32
{77C9E0A2-177D-4BD6-9EFD-75A56F886325}.All|x64.Build.0 = Release|Win32
{77C9E0A2-177D-4BD6-9EFD-75A56F886325}.Debug|Win32.ActiveCfg = Debug|Win32
{77C9E0A2-177D-4BD6-9EFD-75A56F886325}.Debug|Win32.Build.0 = Debug|Win32
{77C9E0A2-177D-4BD6-9EFD-75A56F886325}.Debug|x64.ActiveCfg = Debug|Win32
{77C9E0A2-177D-4BD6-9EFD-75A56F886325}.Debug|x64.Build.0 = Debug|Win32
{77C9E0A2-177D-4BD6-9EFD-75A56F886325}.Release|Win32.ActiveCfg = Release|Win32
{77C9E0A2-177D-4BD6-9EFD-75A56F886325}.Release|Win32.Build.0 = Release|Win32
{77C9E0A2-177D-4BD6-9EFD-75A56F886325}.Release|x64.ActiveCfg = Release|Win32
{77C9E0A2-177D-4BD6-9EFD-75A56F886325}.Release|x64.Build.0 = Release|Win32
{841C345F-FCC7-4F64-8F54-0281CEABEB01}.All|Win32.ActiveCfg = Release|Win32
{841C345F-FCC7-4F64-8F54-0281CEABEB01}.All|Win32.Build.0 = Release|Win32
{841C345F-FCC7-4F64-8F54-0281CEABEB01}.All|x64.ActiveCfg = Release|x64
{841C345F-FCC7-4F64-8F54-0281CEABEB01}.All|x64.Build.0 = Release|x64
{841C345F-FCC7-4F64-8F54-0281CEABEB01}.Debug|Win32.ActiveCfg = Debug|Win32
{841C345F-FCC7-4F64-8F54-0281CEABEB01}.Debug|Win32.Build.0 = Debug|Win32
{841C345F-FCC7-4F64-8F54-0281CEABEB01}.Debug|x64.ActiveCfg = Debug|x64
{841C345F-FCC7-4F64-8F54-0281CEABEB01}.Debug|x64.Build.0 = Debug|x64
{841C345F-FCC7-4F64-8F54-0281CEABEB01}.Release|Win32.ActiveCfg = Release|Win32
{841C345F-FCC7-4F64-8F54-0281CEABEB01}.Release|Win32.Build.0 = Release|Win32
{841C345F-FCC7-4F64-8F54-0281CEABEB01}.Release|x64.ActiveCfg = Release|x64
{841C345F-FCC7-4F64-8F54-0281CEABEB01}.Release|x64.Build.0 = Release|x64
{7AEE504B-23B6-4B05-829E-7CD34855F146}.All|Win32.ActiveCfg = Release|Win32
{7AEE504B-23B6-4B05-829E-7CD34855F146}.All|Win32.Build.0 = Release|Win32
{7AEE504B-23B6-4B05-829E-7CD34855F146}.All|x64.ActiveCfg = Release|x64
{7AEE504B-23B6-4B05-829E-7CD34855F146}.All|x64.Build.0 = Release|x64
{7AEE504B-23B6-4B05-829E-7CD34855F146}.Debug|Win32.ActiveCfg = Debug|Win32
{7AEE504B-23B6-4B05-829E-7CD34855F146}.Debug|x64.ActiveCfg = Debug|x64
{7AEE504B-23B6-4B05-829E-7CD34855F146}.Release|Win32.ActiveCfg = Release|Win32
{7AEE504B-23B6-4B05-829E-7CD34855F146}.Release|x64.ActiveCfg = Release|x64
{20179127-853B-4FE9-B7C0-9E817E6A3A72}.All|Win32.ActiveCfg = Release|Win32
{20179127-853B-4FE9-B7C0-9E817E6A3A72}.All|Win32.Build.0 = Release|Win32
{20179127-853B-4FE9-B7C0-9E817E6A3A72}.All|x64.ActiveCfg = Release|x64
{20179127-853B-4FE9-B7C0-9E817E6A3A72}.All|x64.Build.0 = Release|x64
{20179127-853B-4FE9-B7C0-9E817E6A3A72}.Debug|Win32.ActiveCfg = Debug|Win32
{20179127-853B-4FE9-B7C0-9E817E6A3A72}.Debug|Win32.Build.0 = Debug|Win32
{20179127-853B-4FE9-B7C0-9E817E6A3A72}.Debug|x64.ActiveCfg = Debug|x64
{20179127-853B-4FE9-B7C0-9E817E6A3A72}.Debug|x64.Build.0 = Debug|x64
{20179127-853B-4FE9-B7C0-9E817E6A3A72}.Release|Win32.ActiveCfg = Release|Win32
{20179127-853B-4FE9-B7C0-9E817E6A3A72}.Release|Win32.Build.0 = Release|Win32
{20179127-853B-4FE9-B7C0-9E817E6A3A72}.Release|x64.ActiveCfg = Release|x64
{20179127-853B-4FE9-B7C0-9E817E6A3A72}.Release|x64.Build.0 = Release|x64
{6D1BC01C-3F97-4C08-8A45-69C9B94281AA}.All|Win32.ActiveCfg = Release|Win32
{6D1BC01C-3F97-4C08-8A45-69C9B94281AA}.All|Win32.Build.0 = Release|Win32
{6D1BC01C-3F97-4C08-8A45-69C9B94281AA}.All|x64.ActiveCfg = Release|Win32
{6D1BC01C-3F97-4C08-8A45-69C9B94281AA}.All|x64.Build.0 = Release|Win32
{6D1BC01C-3F97-4C08-8A45-69C9B94281AA}.Debug|Win32.ActiveCfg = Debug|Win32
{6D1BC01C-3F97-4C08-8A45-69C9B94281AA}.Debug|Win32.Build.0 = Debug|Win32
{6D1BC01C-3F97-4C08-8A45-69C9B94281AA}.Debug|x64.ActiveCfg = Debug|Win32
{6D1BC01C-3F97-4C08-8A45-69C9B94281AA}.Debug|x64.Build.0 = Debug|Win32
{6D1BC01C-3F97-4C08-8A45-69C9B94281AA}.Release|Win32.ActiveCfg = Release|Win32
{6D1BC01C-3F97-4C08-8A45-69C9B94281AA}.Release|Win32.Build.0 = Release|Win32
{6D1BC01C-3F97-4C08-8A45-69C9B94281AA}.Release|x64.ActiveCfg = Release|Win32
{6D1BC01C-3F97-4C08-8A45-69C9B94281AA}.Release|x64.Build.0 = Release|Win32
{583D8CEA-4171-4493-9025-B63265F408D8}.All|Win32.ActiveCfg = Release|Win32
{583D8CEA-4171-4493-9025-B63265F408D8}.All|Win32.Build.0 = Release|Win32
{583D8CEA-4171-4493-9025-B63265F408D8}.All|x64.ActiveCfg = Release|Win32
{583D8CEA-4171-4493-9025-B63265F408D8}.All|x64.Build.0 = Release|Win32
{583D8CEA-4171-4493-9025-B63265F408D8}.Debug|Win32.ActiveCfg = Debug|Win32
{583D8CEA-4171-4493-9025-B63265F408D8}.Debug|Win32.Build.0 = Debug|Win32
{583D8CEA-4171-4493-9025-B63265F408D8}.Debug|x64.ActiveCfg = Debug|Win32
{583D8CEA-4171-4493-9025-B63265F408D8}.Debug|x64.Build.0 = Debug|Win32
{583D8CEA-4171-4493-9025-B63265F408D8}.Release|Win32.ActiveCfg = Release|Win32
{583D8CEA-4171-4493-9025-B63265F408D8}.Release|Win32.Build.0 = Release|Win32
{583D8CEA-4171-4493-9025-B63265F408D8}.Release|x64.ActiveCfg = Release|Win32
{583D8CEA-4171-4493-9025-B63265F408D8}.Release|x64.Build.0 = Release|Win32
{87933C2D-0159-46F7-B326-E1B6E982C21E}.All|Win32.ActiveCfg = Release|Win32
{87933C2D-0159-46F7-B326-E1B6E982C21E}.All|Win32.Build.0 = Release|Win32
{87933C2D-0159-46F7-B326-E1B6E982C21E}.All|x64.ActiveCfg = Release|x64
{87933C2D-0159-46F7-B326-E1B6E982C21E}.All|x64.Build.0 = Release|x64
{87933C2D-0159-46F7-B326-E1B6E982C21E}.Debug|Win32.ActiveCfg = Debug|Win32
{87933C2D-0159-46F7-B326-E1B6E982C21E}.Debug|Win32.Build.0 = Debug|Win32
{87933C2D-0159-46F7-B326-E1B6E982C21E}.Debug|x64.ActiveCfg = Debug|x64
{87933C2D-0159-46F7-B326-E1B6E982C21E}.Debug|x64.Build.0 = Debug|x64
{87933C2D-0159-46F7-B326-E1B6E982C21E}.Release|Win32.ActiveCfg = Release|Win32
{87933C2D-0159-46F7-B326-E1B6E982C21E}.Release|Win32.Build.0 = Release|Win32
{87933C2D-0159-46F7-B326-E1B6E982C21E}.Release|x64.ActiveCfg = Release|x64
{87933C2D-0159-46F7-B326-E1B6E982C21E}.Release|x64.Build.0 = Release|x64
{4F990563-6DFB-45C3-B083-1938C6D7FFA4}.All|Win32.ActiveCfg = Release|Win32
{4F990563-6DFB-45C3-B083-1938C6D7FFA4}.All|Win32.Build.0 = Release|Win32
{4F990563-6DFB-45C3-B083-1938C6D7FFA4}.All|x64.ActiveCfg = Release|x64
{4F990563-6DFB-45C3-B083-1938C6D7FFA4}.All|x64.Build.0 = Release|x64
{4F990563-6DFB-45C3-B083-1938C6D7FFA4}.Debug|Win32.ActiveCfg = Debug|Win32
{4F990563-6DFB-45C3-B083-1938C6D7FFA4}.Debug|Win32.Build.0 = Debug|Win32
{4F990563-6DFB-45C3-B083-1938C6D7FFA4}.Debug|x64.ActiveCfg = Debug|x64
{4F990563-6DFB-45C3-B083-1938C6D7FFA4}.Debug|x64.Build.0 = Debug|x64
{4F990563-6DFB-45C3-B083-1938C6D7FFA4}.Release|Win32.ActiveCfg = Release|Win32
{4F990563-6DFB-45C3-B083-1938C6D7FFA4}.Release|Win32.Build.0 = Release|Win32
{4F990563-6DFB-45C3-B083-1938C6D7FFA4}.Release|x64.ActiveCfg = Release|x64
{4F990563-6DFB-45C3-B083-1938C6D7FFA4}.Release|x64.Build.0 = Release|x64
{45CD36EE-0AF3-4387-8790-4F11E928299D}.All|Win32.ActiveCfg = Release|Win32
{45CD36EE-0AF3-4387-8790-4F11E928299D}.All|Win32.Build.0 = Release|Win32
{45CD36EE-0AF3-4387-8790-4F11E928299D}.All|x64.ActiveCfg = Release|Win32
{45CD36EE-0AF3-4387-8790-4F11E928299D}.All|x64.Build.0 = Release|Win32
{45CD36EE-0AF3-4387-8790-4F11E928299D}.Debug|Win32.ActiveCfg = Debug|Win32
{45CD36EE-0AF3-4387-8790-4F11E928299D}.Debug|Win32.Build.0 = Debug|Win32
{45CD36EE-0AF3-4387-8790-4F11E928299D}.Debug|x64.ActiveCfg = Debug|Win32
{45CD36EE-0AF3-4387-8790-4F11E928299D}.Debug|x64.Build.0 = Debug|Win32
{45CD36EE-0AF3-4387-8790-4F11E928299D}.Release|Win32.ActiveCfg = Release|Win32
{45CD36EE-0AF3-4387-8790-4F11E928299D}.Release|Win32.Build.0 = Release|Win32
{45CD36EE-0AF3-4387-8790-4F11E928299D}.Release|x64.ActiveCfg = Release|Win32
{45CD36EE-0AF3-4387-8790-4F11E928299D}.Release|x64.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -2812,7 +3059,6 @@ Global
{E972C52F-9E85-4D65-B19C-031E511E9DB4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{03207781-0D1C-4DB3-A71D-45C608F28DBD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{9A5DDF08-C88C-4A35-B7F6-D605228446BD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{D0B36172-CD76-454A-9B89-990025266C2A} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{05C9FB27-480E-4D53-B3B7-6338E2526666} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{CC1DD008-9406-448D-A0AD-33C3186CFADB} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{48414740-C693-4968-9846-EE058020C64F} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
@ -2902,5 +3148,23 @@ Global
{C0779BCC-C037-4F58-B890-EF37BA956B3C} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{3884ADD2-91D0-4CD6-86D3-D5FB2D4AAB9E} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{5B2BACE4-0F5A-4A21-930D-C0F4B1F58FA6} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
{B6E22500-3DB6-4E6E-8CD5-591B781D7D99} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{DCE19DAF-69AC-46DB-B14A-39F0FAA5DB74} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{60F89955-91C6-3A36-8000-13C592FEC2DF} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{D6973076-9317-4EF2-A0B8-B7A18AC0713E} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{CDCEC78E-D445-47AC-A2AE-DEBE2CE3A311} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{C2D5EB6D-F4DE-4DEE-B5B8-B6FD26C22D33} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{0AD87FDA-989F-4638-B6E1-B0132BB0560A} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{FBC7E2A4-B989-4289-BA7F-68F440E9EF8B} = {A5A27244-AD24-46E5-B01B-840CD296C91D}
{77C9E0A2-177D-4BD6-9EFD-75A56F886325} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{841C345F-FCC7-4F64-8F54-0281CEABEB01} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{7AEE504B-23B6-4B05-829E-7CD34855F146} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
{20179127-853B-4FE9-B7C0-9E817E6A3A72} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{6D1BC01C-3F97-4C08-8A45-69C9B94281AA} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{583D8CEA-4171-4493-9025-B63265F408D8} = {C120A020-773F-4EA3-923F-B67AF28B750D}
{87933C2D-0159-46F7-B326-E1B6E982C21E} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
{4F990563-6DFB-45C3-B083-1938C6D7FFA4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
{45CD36EE-0AF3-4387-8790-4F11E928299D} = {C120A020-773F-4EA3-923F-B67AF28B750D}
EndGlobalSection
EndGlobal

View File

@ -71,7 +71,7 @@ install:
@echo " + +"
@echo " +-------------------------------------------------+"
@cat $(switch_srcdir)/cluecon2.tmpl
@sh $(switch_srcdir)/build/modcheck.sh $(modulesdir)
@sh $(switch_srcdir)/build/modcheck.sh $(DESTDIR)$(modulesdir)
.PHONY: check dvi html info install-data \
install-dvi install-exec install-html install-info install-pdf install-ps installcheck installdirs pdf \

View File

@ -62,6 +62,7 @@ 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

View File

@ -1 +1 @@
1.0.50
1.0.52

View File

@ -1 +1 @@
1.7.0
1.6.20

View File

@ -1,4 +1,9 @@
en-us-callie 1.0.50
ru-RU-elena 1.0.50
fr-ca-june 1.0.18
en-us-callie 1.0.51
ru-RU-elena 1.0.51
en-ca-june 1.0.51
fr-ca-june 1.0.51
pt-BR-karina 1.0.51
sv-se-jakob 1.0.50
zh-cn-sinmei 1.0.51
zh-hk-sinmei 1.0.51

View File

@ -28,7 +28,7 @@
<!-- WARNING: Configuration of XML Tiers will reset the level and position if those were supplied. -->
<!-- WARNING: Agents and Tiers XML config shouldn't be used in a multi FS shared DB setup (Not currently supported anyway) -->
<agents>
<!--<agent name="1000@default" type="callback" contact="[call_timeout=10]user/1000@default" status="Available" max-no-answer="3" wrap-up-time="10" reject-delay-time="10" busy-delay-time="60" />-->
<!--<agent name="1000@default" type="callback" contact="[leg_timeout=10]user/1000@default" status="Available" max-no-answer="3" wrap-up-time="10" reject-delay-time="10" busy-delay-time="60" />-->
</agents>
<tiers>
<!-- If no level or position is provided, they will default to 1. You should do this to keep db value on restart. -->

View File

@ -345,7 +345,7 @@
<image x="180" y="180" scale="180" overlap="true" reservation_id="presenter"/>
</layout>
<layout name="overlaps" auto-3d-position="true">
<image x="0" y="0" scale="360"/>
<image x="0" y="0" scale="360" floor-only="true"/>
<image x="300" y="300" scale="60" overlap="true"/>
<image x="240" y="300" scale="60" overlap="true"/>
<image x="180" y="300" scale="60" overlap="true"/>

View File

@ -9,10 +9,10 @@
<!-- 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"/>
<param name="rollover" value="1048576000"/>
<!-- 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"/> -->
<param name="maximum-rotate" value="32"/>
<!-- Prefix all log lines by the session's uuid -->
<param name="uuid" value="true" />
</settings>

View File

@ -7,6 +7,10 @@
<!--<param name="packet-loss-percent" value="10"/>-->
<!-- Support asymmetric sample rates -->
<!--<param name="asymmetric-sample-rates" value="1"/>-->
<!-- Enable bitrate negotiation -->
<!--<param name="bitrate-negotiation" value="1"/>-->
<!-- Keep FEC Enabled -->
<param name="keep-fec-enabled" value="1"/>
<!--<param name="use-jb-lookahead" value="true"/> -->

View File

@ -48,6 +48,9 @@
<!-- Minimum idle CPU before refusing calls -->
<!-- <param name="min-idle-cpu" value="25"/> -->
<!-- Interval between heartbeat events -->
<!-- <param name="event-heartbeat-interval" value="20"/> -->
<!--
Max number of sessions to allow at any given time.

View File

@ -1,8 +1,12 @@
<include>
<language name="es" sound-path="$${sounds_dir}/es/ES/cristina" tts-engine="cepstral" tts-voice="marta">
<X-PRE-PROCESS cmd="include" data="demo/*-es-ES.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
<!--voicemail_es_ES_tts is purely implemented with tts, we have the files based one that is the default. -->
<X-PRE-PROCESS cmd="include" data="vm/sounds-es-ES.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
<X-PRE-PROCESS cmd="include" data="dir/sounds-es-ES.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
<phrases>
<macros>
<X-PRE-PROCESS cmd="include" data="demo/*-es-ES.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
<!--voicemail_es_ES_tts is purely implemented with tts, we have the files based one that is the default. -->
<X-PRE-PROCESS cmd="include" data="vm/sounds-es-ES.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
<X-PRE-PROCESS cmd="include" data="dir/sounds-es-ES.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
</macros>
</phrases>
</language>
</include>

View File

@ -1,8 +1,12 @@
<include>
<language name="es" sound-path="$${sounds_dir}/es/mx/maria" tts-engine="cepstral" tts-voice="marta">
<X-PRE-PROCESS cmd="include" data="demo/*-es-MX.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
<!--voicemail_es_MX_tts is purely implemented with tts, we have the files based one that is the default. -->
<X-PRE-PROCESS cmd="include" data="vm/sounds-es-MX.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
<X-PRE-PROCESS cmd="include" data="dir/sounds-es-MX.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
<phrases>
<macros>
<X-PRE-PROCESS cmd="include" data="demo/*-es-MX.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
<!--voicemail_es_MX_tts is purely implemented with tts, we have the files based one that is the default. -->
<X-PRE-PROCESS cmd="include" data="vm/sounds-es-MX.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
<X-PRE-PROCESS cmd="include" data="dir/sounds-es-MX.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
</macros>
</phrases>
</language>
</include>

View File

@ -1,8 +1,12 @@
<include>
<language name="pt" sound-path="$${sounds_dir}/pt/BR/karina" tts-engine="cepstral" tts-voice="marta">
<X-PRE-PROCESS cmd="include" data="demo/*-pt-BR.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
<!--voicemail_pt_BR_tts is purely implemented with tts, we have the files based one that is the default. -->
<X-PRE-PROCESS cmd="include" data="vm/sounds-pt-BR.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
<X-PRE-PROCESS cmd="include" data="dir/sounds-pt-BR.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
<phrases>
<macros>
<X-PRE-PROCESS cmd="include" data="demo/*-pt-BR.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
<!--voicemail_pt_BR_tts is purely implemented with tts, we have the files based one that is the default. -->
<X-PRE-PROCESS cmd="include" data="vm/sounds-pt-BR.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
<X-PRE-PROCESS cmd="include" data="dir/sounds-pt-BR.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
</macros>
</phrases>
</language>
</include>

View File

@ -1,8 +1,12 @@
<include>
<language name="pt" sound-path="$${sounds_dir}/pt/PT/karina" tts-engine="cepstral" tts-voice="marta">
<X-PRE-PROCESS cmd="include" data="demo/*-pt-PT.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
<!--voicemail_pt_PT_tts is purely implemented with tts, we have the files based one that is the default. -->
<X-PRE-PROCESS cmd="include" data="vm/sounds-pt-PT.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
<X-PRE-PROCESS cmd="include" data="dir/sounds-pt-PT.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
<phrases>
<macros>
<X-PRE-PROCESS cmd="include" data="demo/*-pt-PT.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
<!--voicemail_pt_PT_tts is purely implemented with tts, we have the files based one that is the default. -->
<X-PRE-PROCESS cmd="include" data="vm/sounds-pt-PT.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
<X-PRE-PROCESS cmd="include" data="dir/sounds-pt-PT.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
</macros>
</phrases>
</language>
</include>

View File

@ -1,7 +1,11 @@
<include>
<language name="sv" sound-path="$${sounds_dir}/sv/se/jakob" tts-engine="" tts-voice="">
<X-PRE-PROCESS cmd="include" data="ivr/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>
<!--voicemail is purely implemented with files based one that is the default. -->
<phrases>
<macros>
<X-PRE-PROCESS cmd="include" data="ivr/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
<X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/>
<!--voicemail is purely implemented with files based one that is the default. -->
</macros>
</phrases>
</language>
</include>

View File

@ -3,10 +3,10 @@
# Must change all of the below together
# For a release, set revision for that tagged release as well and uncomment
AC_INIT([freeswitch], [1.7.0], bugs@freeswitch.org)
AC_INIT([freeswitch], [1.6.20], bugs@freeswitch.org)
AC_SUBST(SWITCH_VERSION_MAJOR, [1])
AC_SUBST(SWITCH_VERSION_MINOR, [7])
AC_SUBST(SWITCH_VERSION_MICRO, [0])
AC_SUBST(SWITCH_VERSION_MINOR, [6])
AC_SUBST(SWITCH_VERSION_MICRO, [20])
AC_SUBST(SWITCH_VERSION_REVISION, [])
AC_SUBST(SWITCH_VERSION_REVISION_HUMAN, [])
@ -1273,17 +1273,36 @@ module_enabled() {
grep -v -e "\#" -e "^\$" modules.conf | sed -e "s|^.*/||" | grep "^${1}\$" >/dev/null
}
AC_ARG_WITH(png,
[AS_HELP_STRING([--without-png],
[disable support for libpng])],
[with_png="$withval"],
[with_png="yes"])
if test "$with_png" = "yes"; then
PKG_CHECK_MODULES([LIBPNG], [libpng >= 1.6.16],[
AM_CONDITIONAL([HAVE_PNG],[true])],[
PKG_CHECK_MODULES([LIBPNG], [libpng16 >= 1.6.16],[
AM_CONDITIONAL([HAVE_PNG],[true])],[
PKG_CHECK_MODULES([LIBPNG], [libpng >= 1.2.49],[
AM_CONDITIONAL([HAVE_PNG],[true])],[
AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_PNG],[false])])])])
else
AM_CONDITIONAL([HAVE_PNG],[false])
fi
AC_ARG_WITH(freetype,
[AS_HELP_STRING([--without-freetype],
[disable support for freetype])],
[with_freetype="$withval"],
[with_freetype="yes"])
if test "$with_freetype" = "yes"; then
PKG_CHECK_MODULES([FREETYPE], [freetype2 >= 2.4.9],[
AM_CONDITIONAL([HAVE_FREETYPE],[true])],[
AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_FREETYPE],[false])])
else
AM_CONDITIONAL([HAVE_FREETYPE],[false])
fi
PKG_CHECK_MODULES([LIBPNG], [libpng >= 1.6.16],[
AM_CONDITIONAL([HAVE_PNG],[true])],[
PKG_CHECK_MODULES([LIBPNG], [libpng16 >= 1.6.16],[
AM_CONDITIONAL([HAVE_PNG],[true])],[
PKG_CHECK_MODULES([LIBPNG], [libpng >= 1.2.49],[
AM_CONDITIONAL([HAVE_PNG],[true])],[
AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_PNG],[false])])])])
PKG_CHECK_MODULES([FREETYPE], [freetype2 >= 2.4.9],[
AM_CONDITIONAL([HAVE_FREETYPE],[true])],[
AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_FREETYPE],[false])])
PKG_CHECK_MODULES([SQLITE], [sqlite3 >= 3.6.20])
PKG_CHECK_MODULES([CURL], [libcurl >= 7.19])
PKG_CHECK_MODULES([PCRE], [libpcre >= 7.8])
@ -1805,6 +1824,7 @@ AC_CONFIG_FILES([Makefile
src/mod/codecs/mod_codec2/Makefile
src/mod/codecs/mod_com_g729/Makefile
src/mod/codecs/mod_dahdi_codec/Makefile
src/mod/codecs/mod_clearmode/Makefile
src/mod/codecs/mod_g723_1/Makefile
src/mod/codecs/mod_g729/Makefile
src/mod/codecs/mod_h26x/Makefile

6
debian/bootstrap.sh vendored
View File

@ -360,8 +360,7 @@ Description: Cross-Platform Scalable Multi-Protocol Soft Switch
Package: libfreeswitch1
Architecture: any
Depends: \${shlibs:Depends}, \${misc:Depends},
yasm
Depends: \${shlibs:Depends}, \${misc:Depends}
Recommends:
Suggests: libfreeswitch1-dbg
Conflicts: freeswitch-all (<= 1.6.7)
@ -639,7 +638,6 @@ Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
freeswitch-mod-dialplan-asterisk (= \${binary:Version}),
freeswitch-mod-dialplan-directory (= \${binary:Version}),
freeswitch-mod-dialplan-xml (= \${binary:Version}),
freeswitch-mod-ldap (= \${binary:Version}),
freeswitch-mod-dingaling (= \${binary:Version}),
freeswitch-mod-loopback (= \${binary:Version}),
freeswitch-mod-portaudio (= \${binary:Version}),
@ -826,7 +824,6 @@ Package: freeswitch-meta-all-dbg
Architecture: any
Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
freeswitch-meta-codecs-dbg (= \${binary:Version}),
freeswitch-meta-lang-dbg (= \${binary:Version}),
freeswitch-meta-mod-say (= \${binary:Version}),
freeswitch-mod-abstraction-dbg (= \${binary:Version}),
freeswitch-mod-avmd-dbg (= \${binary:Version}),
@ -878,7 +875,6 @@ Depends: \${misc:Depends}, freeswitch (= \${binary:Version}),
freeswitch-mod-dialplan-asterisk-dbg (= \${binary:Version}),
freeswitch-mod-dialplan-directory-dbg (= \${binary:Version}),
freeswitch-mod-dialplan-xml-dbg (= \${binary:Version}),
freeswitch-mod-ldap-dbg (= \${binary:Version}),
freeswitch-mod-dingaling-dbg (= \${binary:Version}),
freeswitch-mod-loopback-dbg (= \${binary:Version}),
freeswitch-mod-portaudio-dbg (= \${binary:Version}),

18
debian/copyright vendored
View File

@ -1725,24 +1725,6 @@ Files: src/switch_dso.c
Copyright: 2008 Michael Jerris
License: BSD-like
Files: libs/libks/*
libs/libscgi/src/include/scgi_oop.h
libs/libscgi/src/scgi.c
Copyright: 2007-2013, Anthony Minessale II
2007 Michael Jerris
1996-2000 Gray Watson
License: BSD-3-clause
Files: libs/libks/*/ks_json.[ch]
src/include/switch_json.h
src/switch_json.c
Copyright: 2009 Dave Gamble
License: MIT/X11 (BSD like)
Files: libs/libks/*/simclist.[ch]
Copyright: 2007-2011 Mij <mij@bitchx.it>
License: ISC
Files: libs/libtpl-1.5/src/tpl.[ch]
Copyright: 2005-2010, Troy D. Hanson
License: BSD-2-clause

View File

@ -21,7 +21,7 @@ LimitNOFILE=100000
LimitNPROC=60000
LimitSTACK=250000
LimitRTPRIO=infinity
LimitRTTIME=7000000
LimitRTTIME=infinity
IOSchedulingClass=realtime
IOSchedulingPriority=2
CPUSchedulingPolicy=rr

View File

@ -7,6 +7,11 @@ to automatically generate or verify all the files exist for a particular
language. If you are capable of recording each language please do so and
contribute them to the project. As phrases are added, the files will need to be
updated for the respective phrase_xx.xml file.
make_checks.sh - script to compare phrase_en.xml with other language xml files.
Script output contans prompt elements with attributes:
translated - value 'false' or not displayed;
transpated-to - tranlation value if exists;
more-then-one-translation - displayed if exist two or more for given wav file.
How can you contribute?

17
docs/phrase/make_checks.sh Executable file
View File

@ -0,0 +1,17 @@
#!/bin/sh
SAXON_JAR=/usr/share/java/saxon9he.jar
XML=$1
if [ ! -f "$SAXON_JAR" ]; then
echo "Please update 'SAXON_JAR' varaiable value to location of SAXON jar"
exit -1
fi
if [ -z "$XML" ]; then
echo "Error: Please enter xml file name that must be ckecked."
echo "Exmple: make_checks.sh phrase_es_ES.xml > comparison_result.xml"
exit -1
fi
java -jar "$SAXON_JAR" -xsl:make_checks.xslt -t "$XML"

View File

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
<xsl:template match="/">
<xsl:variable name="master_xml">
<xsl:copy-of select="document('phrase_en.xml')/*"/>
</xsl:variable>
<xsl:variable name="current_xml">
<xsl:copy-of select="*"/>
</xsl:variable>
<xsl:apply-templates select="$master_xml" mode="checkElements">
<xsl:with-param name="current_xml" select="$current_xml/*"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="en" mode="checkElements">
<xsl:param name="current_xml"/>
<xsl:copy>
<xsl:attribute name="translated-to" select="name($current_xml)"/>
<xsl:apply-templates select="@*|node()" mode="#current">
<xsl:with-param name="current_xml" select="$current_xml/*"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="prompt" mode="checkElements">
<xsl:param name="current_xml"/>
<xsl:variable name="translation"
select="$current_xml[@filename=current()/@filename]/@phrase"/>
<xsl:copy>
<xsl:apply-templates select="@*" mode="#current"/>
<xsl:choose>
<xsl:when test="count($translation)=0">
<xsl:attribute name="translated" select="false()"/>
</xsl:when>
<xsl:when test="@phrase = $translation">
<xsl:attribute name="translated" select="false()"/>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="translated-to" select="$translation[1]"/>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="count($translation) > 1">
<xsl:attribute name="more-then-one-translation" select="true()"/>
</xsl:if>
</xsl:copy>
</xsl:template>
<xsl:template match="@*|node()" mode="checkElements">
<xsl:param name="current_xml"/>
<xsl:copy>
<xsl:apply-templates select="@*|node()" mode="#current">
<xsl:with-param name="current_xml" select="$current_xml/*"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>

View File

@ -89,6 +89,8 @@
<prompt phrase="Xray" filename="120.wav"/>
<prompt phrase="Yankee" filename="121.wav"/>
<prompt phrase="Zulu" filename="122.wav"/>
<prompt phrase="Star" filename="42.wav"/>
<prompt phrase="Pound" filename="35.wav"/>
</phonetic-ascii>
<digits>
<prompt phrase="Zero" filename="0.wav"/>
@ -142,12 +144,12 @@
<prompt phrase="Twentieth" filename="h-20.wav"/>
<prompt phrase="Thirtieth" filename="h-30.wav"/>
<prompt phrase="Hundred" filename="hundred.wav"/>
<prompt phrase="Thousand" filename="thousand.wav"/>
<prompt phrase="Million" filename="million.wav"/>
<prompt phrase="Period" filename="period.wav"/>
<prompt phrase="Point" filename="point.wav"/>
<prompt phrase="Pound" filename="pound.wav"/>
<prompt phrase="Star" filename="star.wav"/>
<prompt phrase="Thousand" filename="thousand.wav"/>
</digits>
<currency>
<prompt phrase="And" filename="and.wav"/>
@ -174,6 +176,8 @@
<prompt phrase="Hours" filename="hours.wav"/>
<prompt phrase="Minute" filename="minute.wav"/>
<prompt phrase="Minutes" filename="minutes.wav"/>
<prompt phrase="Second" filename="second.wav"/>
<prompt phrase="Seconds" filename="seconds.wav"/>
<prompt phrase="January" filename="mon-0.wav"/>
<prompt phrase="Febuary" filename="mon-1.wav"/>
<prompt phrase="March" filename="mon-2.wav"/>
@ -189,8 +193,6 @@
<prompt phrase="O'Clock" filename="oclock.wav"/>
<prompt phrase="oh" filename="oh.wav"/>
<prompt phrase="P.M." filename="p-m.wav"/>
<prompt phrase="Second" filename="second.wav"/>
<prompt phrase="Seconds" filename="seconds.wav"/>
<prompt phrase="Today" filename="today.wav"/>
<prompt phrase="Tomorrow" filename="tomorrow.wav"/>
<prompt phrase="Yesterday" filename="yesterday.wav"/>
@ -288,6 +290,11 @@
<prompt phrase="Message from..." filename="vm-message_from.wav"/>
<prompt phrase="Nobody is currently leaving a message in this voicemail box." filename="vm-nobody_leaving_message.wav"/>
<prompt phrase="last" filename="vm-last.wav"/>
<prompt phrase="To delete greeting" filename="vm-delete_greeting.wav"/>
<prompt phrase="To listen to greeting..." filename="vm-listen_to_greeting.wav"/>
<prompt phrase="For the main menu..." filename="vm-main_menu_alt.wav"/>
<prompt phrase="message forwarded" filename="vm-message_forwarded.wav"/>
<prompt phrase="The extension you have dialed does not answer and there is no voicemail box set up for this extension." filename="vm-no_answer_no_vm.wav"/>
</voicemail>
<directory>
<prompt phrase="Please enter the first few letters of the persons" filename="dir-enter_person.wav"/>
@ -310,6 +317,12 @@
<prompt phrase="press" filename="dir-press.wav" info="we can copy vm/vm-press.wav"/>
<prompt phrase="For the next entry..." filename="dir-for_next.wav" note="re-recorded because original was wrong"/>
<prompt phrase="Please enter the first few letters of the person's first or last name" filename="dir-enter_person_first_or_last.wav"/>
<prompt phrase="Please enter the first few letters of the person's" filename="dir-enter-person.wav"/>
<prompt phrase="Your search matched no results, try again." filename="dir-no_match_entry.wav"/>
<prompt phrase="No more results" filename="dir-no_more_result.wav"/>
<prompt phrase="You need to specify a minimum of..." filename="dir-specify_mininum_first.wav"/>
<prompt phrase="To start a new search" filename="dir-to_make_new_search.wav"/>
<prompt phrase="Your search returned too many results, please try again." filename="dir-to_many_result.wav"/>
</directory>
<conference>
<prompt phrase="NULL" filename="conf-ack.wav" type="tone"/>
@ -347,6 +360,8 @@
<prompt phrase="...other persons in this conference." filename="conf-other_persons_conference.wav"/>
<prompt phrase="There is one other person in this conference." filename="conf-one_other_person_conference.wav"/>
<prompt phrase="There is one other member in this conference." filename="conf-one_other_member_conference.wav"/>
<prompt phrase="This conference is being recorded." filename="conf-being_recorded.wav"/>
<prompt phrase="This conference is no longer being recorded." filename="conf-no_longer_being_recorded.wav"/>
</conference>
<ivr>
<prompt phrase="Account number" filename="ivr-account_number.wav"/>
@ -546,7 +561,6 @@
<prompt phrase="3... 2... 1... WE'RE ASTERISK FREE!!!" filename="ivr-were_asterisk_free.wav"/>
<prompt phrase="Thank you for calling Douche Telecom, where we make sure that your communications never have that 'not so fresh' feeling!" filename="ivr-douche_telecom.wav"/>
<prompt phrase="To learn more about FreeSWITCH..." filename="ivr-to_learn_more_about_freeswitch.wav"/>
<prompt phrase="Asterisk is like syphilis: it hurts until it's gone." filename="ivr-asterisk_like_syphilis.wav"/>
<prompt phrase="There is..." filename="ivr-there_is.wav"/>
<prompt phrase="That number is on the Do Not Call list." filename="ivr-do_not_call_list.wav"/>
<prompt phrase="The call attempt has been aborted." filename="ivr-call_attempt_aborted.wav"/>
@ -670,12 +684,16 @@
<prompt phrase="This is a reminder for..." filename="ivr-reminder_for.wav"/>
<prompt phrase="You have an appointment scheduled for..." filename="ivr-appointment_schedule_for.wav"/>
<prompt phrase="Your verification PIN is..." filename="ivr-Your_verification_PIN_is.wav"/>
<prompt phrase="To hear the hotseat menu, please enter your extension followed by the pound or hash key." filename="ivr-hotseat_intro.wav"/>
<prompt phrase="To modify main prompt..." filename="ivr-modify_main_prompt.wav"/>
<prompt phrase="Please enter your pin number followed by the pound or hash key." filename="ivr-hotseat_pin.wav"/>
<prompt phrase="To hotseat this phone to your extension, press 1. To remove hotseat on this phone, press 2." filename="ivr-hotseat_options.wav"/>
<!-- The following phrases still need to be recorded -->
<prompt phrase="You have reached the maximum number of channels." filename="ivr-maximum_number_of_channels.wav"/>
<prompt phrase="" filename=""/>
<prompt phrase="" filename=""/>
<prompt phrase="" filename=""/>
<prompt phrase="To do an echo test" filename="ivr-to_do_a_echo_test.wav"/>
</ivr>
<misc>
<prompt phrase="This call has been secured" filename="call_secured.wav"/>
@ -712,8 +730,14 @@
<prompt phrase="More information is available online at wiki dot FreeSWITCH dot org." filename="misc-more_info_wiki.wav"/>
<prompt phrase="Welcome to the FreeSWITCH community conference call!" filename="misc-welcome_freeswitch_conf_call.wav"/>
<prompt phrase="E one sixty-four dot org." filename="misc-e164_dot_org.wav"/>
<prompt phrase="This phone is not authorized to make outside calls." filename="phone_not_auth.wav"/>
<prompt phrase="I'm sorry." filename="sorry.wav"/>
<prompt phrase="This call may be monitored or recorded for quality and training purposes." filename="call_monitoring_blurb.wav"/>
<prompt phrase="Spanish" filename="es.wav"/>
<prompt phrase="That is an invalid extension." filename="invalid_extension.wav"/>
<prompt phrase="English" filename="en.wav"/>
</misc>
<zrtp>
<base256>
<!-- base256 prompts for SAS -->
<prompt phrase="Algol" filename="Algol.wav"/>
<prompt phrase="Apollo" filename="Apollo.wav"/>
@ -808,6 +832,7 @@
<prompt phrase="beehive" filename="beehive.wav"/>
<prompt phrase="beeswax" filename="beeswax.wav"/>
<prompt phrase="befriend" filename="befriend.wav"/>
<prompt phrase="being" filename="being.wav"/>
<prompt phrase="belowground" filename="belowground.wav"/>
<prompt phrase="berserk" filename="berserk.wav"/>
<prompt phrase="bifocals" filename="bifocals.wav"/>
@ -865,6 +890,7 @@
<prompt phrase="concert" filename="concert.wav"/>
<prompt phrase="concurrent" filename="concurrent.wav"/>
<prompt phrase="confidence" filename="confidence.wav"/>
<prompt phrase="conference" filename="conference.wav"/>
<prompt phrase="conformist" filename="conformist.wav"/>
<prompt phrase="congregate" filename="congregate.wav"/>
<prompt phrase="consensus" filename="consensus.wav"/>
@ -992,6 +1018,7 @@
<prompt phrase="inventive" filename="inventive.wav"/>
<prompt phrase="inverse" filename="inverse.wav"/>
<prompt phrase="involve" filename="involve.wav"/>
<prompt phrase="is" filename="is.wav"/>
<prompt phrase="island" filename="island.wav"/>
<prompt phrase="jawbone" filename="jawbone.wav"/>
<prompt phrase="keyboard" filename="keyboard.wav"/>
@ -1001,6 +1028,7 @@
<prompt phrase="leprosy" filename="leprosy.wav"/>
<prompt phrase="letterhead" filename="letterhead.wav"/>
<prompt phrase="liberty" filename="liberty.wav"/>
<prompt phrase="longer" filename="longer.wav"/>
<prompt phrase="locale" filename="locale.wav"/>
<prompt phrase="lockup" filename="lockup.wav"/>
<prompt phrase="maritime" filename="maritime.wav"/>
@ -1028,6 +1056,7 @@
<prompt phrase="newborn" filename="newborn.wav"/>
<prompt phrase="newsletter" filename="newsletter.wav"/>
<prompt phrase="nightbird" filename="nightbird.wav"/>
<prompt phrase="no" filename="no.wav"/>
<prompt phrase="obtuse" filename="obtuse.wav"/>
<prompt phrase="offload" filename="offload.wav"/>
<prompt phrase="onlooker" filename="onlooker.wav"/>
@ -1087,6 +1116,7 @@
<prompt phrase="regain" filename="regain.wav"/>
<prompt phrase="reindeer" filename="reindeer.wav"/>
<prompt phrase="rematch" filename="rematch.wav"/>
<prompt phrase="recorded" filename="recorded.wav"/>
<prompt phrase="repay" filename="repay.wav"/>
<prompt phrase="repellent" filename="repellent.wav"/>
<prompt phrase="replica" filename="replica.wav"/>
@ -1174,6 +1204,7 @@
<prompt phrase="telephone" filename="telephone.wav"/>
<prompt phrase="tempest" filename="tempest.wav"/>
<prompt phrase="therapist" filename="therapist.wav"/>
<prompt phrase="this" filename="this.wav"/>
<prompt phrase="tiger" filename="tiger.wav"/>
<prompt phrase="tissue" filename="tissue.wav"/>
<prompt phrase="tobacco" filename="tobacco.wav"/>
@ -1227,6 +1258,8 @@
<prompt phrase="willow" filename="willow.wav"/>
<prompt phrase="woodlark" filename="woodlark.wav"/>
<prompt phrase="yesteryear" filename="yesteryear.wav"/>
</base256>
<zrtp>
<!-- Event prompts -->
<prompt phrase="Welcome to the ZRTP security enrollment agent." filename="zrtp-enroll_welcome.wav"/>
<prompt phrase="You must check the authentication string with your partner. If it doesn't match, it indicates the presence of a wire tapper." filename="zrtp-check_sas.wav"/>

View File

@ -358,4 +358,4 @@ I will translate them anyways
<prompt phrase="Un error ha ocurrido, por favor contacte al administrador" filename="error.wav"/>
</misc>
</en>
</language>
</language>

View File

@ -477,7 +477,7 @@
<prompt phrase="Este teléfono no está autorizado para realizar llamadas hacia fuera." filename="phone_not_auth.wav"/>
<prompt phrase="Lo siento." filename="sorry.wav"/>
</misc>
<zrtp>
<base256>
<!-- base256 prompts for SAS -->
<prompt phrase="Algol" filename="Algol.wav"/>
<prompt phrase="Apollo" filename="Apollo.wav"/>
@ -991,6 +991,8 @@
<prompt phrase="willow" filename="willow.wav"/>
<prompt phrase="woodlark" filename="woodlark.wav"/>
<prompt phrase="yesteryear" filename="yesteryear.wav"/>
</base256>
<zrtp>
<!-- Event prompts -->
<prompt phrase="Bienvenidos al servicio de inscripción ZRTP." filename="zrtp-enroll_welcome.wav"/>
<prompt phrase="Usted debe verificar la cadena de caracteres con su destino. Si no coincide, indica la presencia de una escucha telefónica." filename="zrtp-check_sas.wav"/>
@ -1009,4 +1011,4 @@
<prompt phrase="Securizando su llamada." filename="zrtp-status_securing.wav"/>
</zrtp>
</es_ES>
<language>
</language>

View File

@ -476,7 +476,7 @@
<prompt phrase="Este teléfono no está autorizado para realizar llamadas hacia fuera." filename="phone_not_auth.wav"/>
<prompt phrase="Lo siento." filename="sorry.wav"/>
</misc>
<zrtp>
<base256>
<!-- base256 prompts for SAS -->
<prompt phrase="Algol" filename="Algol.wav"/>
<prompt phrase="Apollo" filename="Apollo.wav"/>
@ -990,6 +990,8 @@
<prompt phrase="willow" filename="willow.wav"/>
<prompt phrase="woodlark" filename="woodlark.wav"/>
<prompt phrase="yesteryear" filename="yesteryear.wav"/>
</base256>
<zrtp>
<!-- Event prompts -->
<prompt phrase="Bienvenidos al servicio de inscripción ZRTP." filename="zrtp-enroll_welcome.wav"/>
<prompt phrase="Usted debe verificar la cadena de caracteres con su destino. Si no coincide, indica la presencia de una escucha telefónica." filename="zrtp-check_sas.wav"/>

View File

@ -470,7 +470,7 @@
<prompt phrase="Este telefone não esta autorizado para realizar ligações ao exterior." filename="phone_not_auth.wav"/>
<prompt phrase="Lamento." filename="sorry.wav"/>
</misc>
<zrtp>
<base256>
<!-- base256 prompts for SAS -->
<prompt phrase="Algol" filename="Algol.wav"/>
<prompt phrase="Apollo" filename="Apollo.wav"/>
@ -984,6 +984,8 @@
<prompt phrase="willow" filename="willow.wav"/>
<prompt phrase="woodlark" filename="woodlark.wav"/>
<prompt phrase="yesteryear" filename="yesteryear.wav"/>
</base256>
<zrtp>
<!-- Event prompts -->
<prompt phrase="Bem-vindo ao agente de registro de segurança ZRTP." filename="zrtp-enroll_welcome.wav"/>
<prompt phrase="Você deve verificar a autentificação com o seu destinatário. Se não coincidir, isso indica presença de um dispositivo de escuta telefonica." filename="zrtp-check_sas.wav"/>

View File

@ -469,7 +469,7 @@
<prompt phrase="Este telefone não está autorizado a realizar chamadas para o exterior." filename="phone_not_auth.wav"/>
<prompt phrase="Lamento." filename="sorry.wav"/>
</misc>
<zrtp>
<base256>
<!-- base256 prompts for SAS -->
<prompt phrase="Algol" filename="Algol.wav"/>
<prompt phrase="Apollo" filename="Apollo.wav"/>
@ -983,6 +983,8 @@
<prompt phrase="willow" filename="willow.wav"/>
<prompt phrase="woodlark" filename="woodlark.wav"/>
<prompt phrase="yesteryear" filename="yesteryear.wav"/>
</base256>
<zrtp>
<!-- Event prompts -->
<prompt phrase="Bem-vindo ao agente de registo ZRTP." filename="zrtp-enroll_welcome.wav"/>
<prompt phrase="Deve verificar a chave de autenticação com destinatário. Se não for igual, indica a presença de uma escuta." filename="zrtp-check_sas.wav"/>

View File

@ -22,6 +22,17 @@
<prompt phrase="分号" filename="59.wav"/>
<prompt phrase="脱字符" filename="94.wav"/>
<prompt phrase="竖线" filename="124.wav"/>
<prompt phrase="加号" filename="43.wav"/>
<prompt phrase="左括号" filename="40.wav"/>
<prompt phrase="右括号" filename="41.wav"/>
<prompt phrase="左大括号" filename="123.wav"/>
<prompt phrase="右大括号" filename="125.wav"/>
<prompt phrase="左方括号" filename="91.wav"/>
<prompt phrase="右方括号" filename="93.wav"/>
<prompt phrase="逗号" filename="44.wav"/>
<prompt phrase="反撇号" filename="96.wav"/>
<prompt phrase="小于号" filename="60.wav"/>
<prompt phrase="大于号" filename="62.wav"/>
<prompt phrase="A" filename="97.wav"/>
<prompt phrase="B" filename="98.wav"/>
<prompt phrase="C" filename="99.wav"/>
@ -142,7 +153,7 @@
<prompt phrase="And" filename="and.wav"/>
<prompt phrase="分" filename="cent.wav"/>
<prompt phrase="Central" filename="central.wav"/>
<prompt phrase="分每分钟" filename="cents-per-minute.wav"/>
<prompt phrase="分每分钟" filename="cents-per-minute.wav"/>
<prompt phrase="分" filename="cents.wav"/>
<prompt phrase="元" filename="dollar.wav"/>
<prompt phrase="元" filename="dollars.wav"/>
@ -163,7 +174,7 @@
<prompt phrase="星期四" filename="day-4.wav"/>
<prompt phrase="星期五" filename="day-5.wav"/>
<prompt phrase="星期六" filename="day-6.wav"/>
<prompt phrase="时" filename="hour.wav"/>
<prompt phrase="时" filename="hour.wav"/>
<prompt phrase="小时" filename="hours.wav"/>
<prompt phrase="分" filename="minute.wav"/>
<prompt phrase="分" filename="minutes.wav"/>
@ -180,7 +191,7 @@
<prompt phrase="十一月" filename="mon-10.wav"/>
<prompt phrase="十二月" filename="mon-11.wav"/>
<prompt phrase="点" filename="oclock.wav"/>
<prompt phrase="oh" filename="oh.wav"/>
<prompt phrase="" filename="oh.wav"/>
<prompt phrase="下午" filename="p-m.wav"/>
<prompt phrase="秒" filename="second.wav"/>
<prompt phrase="秒" filename="seconds.wav"/>
@ -191,8 +202,10 @@
<voicemail>
<prompt phrase="分机" filename="vm-person.wav"/>
<prompt phrase="设置紧急" filename="vm-marked-urgent.wav"/>
<prompt phrase="标记新" filename="vm-marked_new.wav"/>
<prompt phrase="已发送邮件" filename="vm-emailed.wav"/>
<prompt phrase="您有" filename="vm-you_have.wav"/>
<prompt phrase="信息来自" filename="vm-from.wav"/>
<prompt phrase="请输入您的ID然后按" filename="vm-enter_id.wav"/>
<prompt phrase="请输入您的密码,然后按" filename="vm-enter_pass.wav"/>
<prompt phrase="登录错误" filename="vm-fail_auth.wav"/>
@ -210,15 +223,35 @@
<prompt phrase="新" filename="vm-new.wav"/>
<prompt phrase="紧急留言已保存" filename="vm-urgent-saved.wav"/>
<prompt phrase="已保存" filename="vm-saved.wav"/>
<prompt phrase="信息" filename="vm-message.wav"/>
<prompt phrase="信息" filename="vm-messages.wav"/>
<prompt phrase="留言" filename="vm-message.wav"/>
<prompt phrase="留言" filename="vm-message_alt.wav"/>
<prompt phrase="留言" filename="vm-messages.wav"/>
<prompt phrase="留言" filename="vm-messages_alt.wav"/>
<prompt phrase="没有留言" filename="vm-no_more_messages.wav"/>
<prompt phrase="重复此留言" filename="vm-repeat_message.wav"/>
<prompt phrase="删除此留言" filename="vm-delete_message.wav"/>
<prompt phrase="保存此留言" filename="vm-save_message.wav"/>
<prompt phrase="播放下一个留言" filename="vm-play_next_message.wav"/>
<prompt phrase="播放上一个留言" filename="vm-play_previous_message.wav"/>
<prompt phrase="删除留言" filename="vm-undelete_message.wav"/>
<prompt phrase="现在发送此留言" filename="vm-send_message_now.wav"/>
<prompt phrase="听到留言信息" filename="vm-message_envelope.wav"/>
<prompt phrase="已更改为" filename="vm-has_been_changed_to.wav"/>
<prompt phrase="按" filename="vm-press.wav"/>
<prompt phrase="收到" filename="vm-received.wav"/>
<prompt phrase="然后" filename="vm-followed_by.wav"/>
<prompt phrase="这是个无效的分机" filename="vm-that_was_an_invalid_ext.wav"/>
<prompt phrase="取消删除" filename="vm-undeleted.wav"/>
<prompt phrase="然后按#号" filename="vm-followed_by_pound.wav"/>
<prompt phrase="下一个" filename="vm-next.wav"/>
<prompt phrase="听取新留言" filename="vm-listen_new.wav"/>
<prompt phrase="听取已保存的留言" filename="vm-listen_saved.wav"/>
<prompt phrase="听取已保存的留言" filename="vm-listen_saved.vmwav"/>
<prompt phrase="高级选项" filename="vm-advanced.wav"/>
<prompt phrase="转发留言" filename="vm-to_forward.wav"/>
<prompt phrase="高级选项" filename="vm-advanced_alt.wav"/>
<prompt phrase="退出" filename="vm-to_exit.wav"/>
<prompt phrase="退出" filename="vm-to_exit_alt.wav"/>
<prompt phrase="录制欢迎音" filename="vm-record_greeting.wav"/>
<prompt phrase="录制欢迎音" filename="vm-to_record_greeting.wav"/>
<prompt phrase="选择一个欢迎音" filename="vm-choose_greeting.wav"/>
<prompt phrase="录制您的名字" filename="vm-record_name2.wav"/>
<prompt phrase="主菜单" filename="vm-main_menu.wav"/>
@ -226,10 +259,14 @@
<prompt phrase="保存录音" filename="vm-save_recording.wav"/>
<prompt phrase="重新录音" filename="vm-rerecord.wav"/>
<prompt phrase="将该留言设置为紧急" filename="vm-mark-urgent.wav"/>
<prompt phrase="标记为新留言" filename="vm-mark_message_new.wav"/>
<prompt phrase="继续" filename="vm-continue.wav"/>
<prompt phrase="重听" filename="vm-listen_to_recording_again.wav"/>
<prompt phrase="删除录音" filename="vm-delete_recording.wav"/>
<prompt phrase="将录音转发到您的电子邮箱" filename="vm-forward_to_email.wav"/>
<prompt phrase="转发留言" filename="vm-to_forward.wav"/>
<prompt phrase="请输入分机号码转发此留言" filename="vm-forward_enter_ext.wav"/>
<prompt phrase="给留言添加介绍" filename="vm-forward_add_intro.wav"/>
<prompt phrase="欢迎" filename="vm-greeting.wav"/>
<prompt phrase="已选择" filename="vm-selected.wav"/>
<prompt phrase="不存在" filename="vm-not_available.wav"/>
@ -246,6 +283,15 @@
<prompt phrase="您所拨号的用户不可达,他也没有语音邮箱" filename="vm-not_available_no_voicemail.wav"/>
<prompt phrase="您输入的密码长度不够" filename="voicemail/vm-pin_below_minimum_length.wav"/>
<prompt phrase="最小的密码长度是..." filename="voicemail/vm-minimum_pin_length_is.wav"/>
<prompt phrase="您的密码已更改" filename="vm-password_has_been_changed.wav"/>
<prompt phrase="请输入您的新密码并按#键结束" filename="vm-enter_new_pin.wav"/>
<prompt phrase="您输入的密码无效" filename="vm-password_not_valid.wav"/>
<prompt phrase="诸如1111或1234这样的密码是不安全的" filename="vm-password_is_not_secure.wav"/>
<prompt phrase="请选择不包含所有重复或连续数字的密码" filename="vm-choose_password.wav"/>
<prompt phrase="请记住,您的语音信箱密码也是您的网页界面密码" filename="vm-voicemail_password_is_web_password.wav"/>
<prompt phrase="留言来自." filename="vm-message_from.wav"/>
<prompt phrase="当前语音信箱没有新留言" filename="vm-nobody_leaving_message.wav"/>
<prompt phrase="最后" filename="vm-last.wav"/>
</voicemail>
<directory>
<prompt phrase="请输入姓名拼音的前几位字母" filename="dir-enter_person.wav"/>
@ -296,10 +342,15 @@
<prompt phrase="...名听众参与本次会议" filename="conf-listeners_in_conference.wav"/>
<prompt phrase="...名听众参与本次会议" filename="conf-listener_in_conference.wav"/>
<prompt phrase="...名与会者参与本次会议" filename="conf-members_in_conference.wav"/>
<prompt phrase="本会议现在是 Q and A 模式" filename="conference/conf-conference_is_in_qna_mode.wav"/>
<prompt phrase="Q and A 模式..." filename="conference/conf-qna_mode.wav"/>
<prompt phrase="进入声音..." filename="conference/conf-entry_sound.wav"/>
<prompt phrase="退出声音..." filename="conference/conf-exit_sound.wav"/>
<prompt phrase="本会议现在是 Q and A 模式" filename="conf-conference_is_in_qna_mode.wav"/>
<prompt phrase="Q and A 模式..." filename="conf-qna_mode.wav"/>
<prompt phrase="进入声音..." filename="conf-entry_sound.wav"/>
<prompt phrase="退出声音..." filename="conf-exit_sound.wav"/>
<prompt phrase="会议室已满,请联系管理员" filename="conf-conference_is_full.wav"/>
<prompt phrase="您的会议将很快开始,请保持在线" filename="conf-conference_will_start_shortly.wav"/>
<prompt phrase="... 本次会议的其他人." filename="conf-other_persons_conference.wav"/>
<prompt phrase="在本次会议还有一个人" filename="conf-one_other_person_conference.wav"/>
<prompt phrase="此会议中还有一名成员" filename="conf-one_other_member_conference.wav"/>
</conference>
<ivr>
<prompt phrase="账号" filename="ivr-account_number.wav"/>
@ -494,7 +545,6 @@
<prompt phrase="会议室已满,请联系管理员" filename="conf-conference_is_full.wav"/>
<prompt phrase="操作受限" filename="ivr-not_have_permission.wav"/>
</ivr>
<misc>
<prompt phrase="已进入安全通信" filename="call_secured.wav"/>
<prompt phrase="然后按#号" filename="followed.wav"/>

View File

@ -28,7 +28,7 @@
#
######################################################################################################################
%define version 1.7.0
%define version 1.6.0
%define release 1
%define fsname freeswitch

View File

@ -47,7 +47,7 @@
%{?with_mod_esl:%define build_mod_esl 1 }
%{?with_mod_shout:%define build_mod_shout 1 }
%define version 1.7.0
%define version 1.6.0
%define release 1
######################################################################################################################
@ -191,7 +191,6 @@ BuildRequires: ilbc2-devel
BuildRequires: g722_1-devel
BuildRequires: libcodec2-devel
BuildRequires: libsilk-devel
BuildRequires: libvpx2-devel >= 2.0.0
BuildRequires: libyuv-devel >= 0.0.1280
BuildRequires: lua-devel
BuildRequires: mongo-c-driver-devel
@ -736,6 +735,8 @@ H.263/H.264 Video Codec support for FreeSWITCH open source telephony platform
Summary: iLCB Codec support for FreeSWITCH open source telephony platform
Group: System/Libraries
Requires: %{name} = %{version}-%{release}
Requires: ilbc2
%description codec-ilbc
iLBC Codec support for FreeSWITCH open source telephony platform

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
JSFILES=src/jquery.FSRTC.js src/jquery.jsonrpcclient.js src/jquery.verto.js
JSFILES=src/jquery.FSRTC.js src/jquery.jsonrpcclient.js src/jquery.verto.js src/vendor/adapter-latest.js
all: jsmin verto-min.js

View File

@ -100,22 +100,10 @@
candidateList: []
};
if (moz) {
this.constraints = {
offerToReceiveAudio: this.options.useSpeak === "none" ? false : true,
offerToReceiveVideo: this.options.useVideo ? true : false,
};
} else {
this.constraints = {
optional: [{
'DtlsSrtpKeyAgreement': 'true'
}],mandatory: {
OfferToReceiveAudio: this.options.useSpeak === "none" ? false : true,
OfferToReceiveVideo: this.options.useVideo ? true : false,
}
};
}
this.constraints = {
offerToReceiveAudio: this.options.useSpeak === "none" ? false : true,
offerToReceiveVideo: this.options.useVideo ? true : false,
};
if (self.options.useVideo) {
self.options.useVideo.style.display = 'none';
@ -133,19 +121,11 @@
if (obj) {
self.options.useVideo = obj;
self.options.localVideo = local;
if (moz) {
self.constraints.offerToReceiveVideo = true;
} else {
self.constraints.mandatory.OfferToReceiveVideo = true;
}
self.constraints.offerToReceiveVideo = true;
} else {
self.options.useVideo = null;
self.options.localVideo = null;
if (moz) {
self.constraints.offerToReceiveVideo = false;
} else {
self.constraints.mandatory.OfferToReceiveVideo = false;
}
self.constraints.offerToReceiveVideo = false;
}
if (self.options.useVideo) {
@ -193,18 +173,9 @@
};
function setCompat() {
$.FSRTC.moz = !!navigator.mozGetUserMedia;
//navigator.getUserMedia || (navigator.getUserMedia = navigator.mozGetUserMedia || navigator.webkitGetUserMedia || navigator.msGetUserMedia);
if (!navigator.getUserMedia) {
navigator.getUserMedia = navigator.mozGetUserMedia || navigator.webkitGetUserMedia || navigator.msGetUserMedia;
}
}
function checkCompat() {
if (!navigator.getUserMedia) {
alert('This application cannot function in this browser.');
return false;
}
return true;
}
@ -258,6 +229,21 @@
doCallback(self, "onICESDP", msg);
}
FSRTCattachMediaStream = function(element, stream) {
if (element && element.id && attachMediaStream) {
attachMediaStream(element, stream);
} else {
if (typeof element.srcObject !== 'undefined') {
element.srcObject = stream;
} else if (typeof element.src !== 'undefined') {
element.src = URL.createObjectURL(stream);
} else {
console.error('Error attaching stream to element.');
}
}
}
function onRemoteStream(self, stream) {
if (self.options.useVideo) {
self.options.useVideo.style.display = 'block';
@ -266,16 +252,8 @@
var element = self.options.useAudio;
console.log("REMOTE STREAM", stream, element);
if (typeof element.srcObject !== 'undefined') {
element.srcObject = stream;
} else if (typeof element.mozSrcObject !== 'undefined') {
element.mozSrcObject = stream;
} else if (typeof element.src !== 'undefined') {
element.src = URL.createObjectURL(stream);
} else {
console.error('Error attaching stream to element.');
}
FSRTCattachMediaStream(element, stream);
self.options.useAudio.play();
self.remoteStream = stream;
}
@ -306,11 +284,7 @@
if (self.options.useVideo) {
self.options.useVideo.style.display = 'none';
if (moz) {
self.options.useVideo['mozSrcObject'] = null;
} else {
self.options.useVideo['src'] = '';
}
self.options.useVideo['src'] = '';
}
if (self.localStream) {
@ -319,7 +293,7 @@
} else {
if (self.localStream.active){
var tracks = self.localStream.getTracks();
console.error(tracks);
console.log(tracks);
tracks.forEach(function(track, index){
console.log(track);
track.stop();
@ -331,11 +305,7 @@
if (self.options.localVideo) {
self.options.localVideo.style.display = 'none';
if (moz) {
self.options.localVideo['mozSrcObject'] = null;
} else {
self.options.localVideo['src'] = '';
}
self.options.localVideo['src'] = '';
}
if (self.options.localVideoStream) {
@ -344,7 +314,7 @@
} else {
if (self.options.localVideoStream.active){
var tracks = self.options.localVideoStream.getTracks();
console.error(tracks);
console.log(tracks);
tracks.forEach(function(track, index){
console.log(track);
track.stop();
@ -426,7 +396,7 @@
function onSuccess(stream) {
self.localStream = stream;
self.peer = RTCPeerConnection({
self.peer = FSRTCPeerConnection({
type: self.type,
attachStream: self.localStream,
onICE: function(candidate) {
@ -452,7 +422,7 @@
}
});
onStreamSuccess(self);
onStreamSuccess(self, stream);
}
function onError(e) {
@ -469,8 +439,8 @@
constraints: {
audio: false,
video: {
mandatory: self.options.videoParams,
optional: []
//mandatory: self.options.videoParams,
//optional: []
},
},
localVideo: self.options.localVideo,
@ -501,45 +471,28 @@
console.log("Microphone Disabled");
audio = false;
} else if (obj.options.videoParams && obj.options.screenShare) {//obj.options.videoParams.chromeMediaSource == 'desktop') {
//obj.options.videoParams = {
// chromeMediaSource: 'screen',
// maxWidth:screen.width,
// maxHeight:screen.height
// chromeMediaSourceId = sourceId;
// };
console.error("SCREEN SHARE");
console.error("SCREEN SHARE", obj.options.videoParams);
audio = false;
} else {
audio = {
mandatory: {},
optional: []
};
if (obj.options.useMic !== "any") {
audio.optional = [{sourceId: obj.options.useMic}]
}
if (obj.options.audioParams) {
for (var key in obj.options.audioParams) {
var con = {};
con[key] = obj.options.audioParams[key];
audio.optional.push(con);
}
audio = obj.options.audioParams;
}
if (obj.options.useMic !== "any") {
//audio.optional = [{sourceId: obj.options.useMic}]
audio.deviceId = {exact: obj.options.useMic};
}
}
if (obj.options.useVideo && obj.options.localVideo) {
getUserMedia({
constraints: {
audio: false,
video: {
mandatory: obj.options.videoParams,
optional: []
},
video: obj.options.videoParams
},
localVideo: obj.options.localVideo,
onsuccess: function(e) {self.options.localVideoStream = e; console.log("local video ready");},
@ -549,33 +502,69 @@
var video = {};
var bestFrameRate = obj.options.videoParams.vertoBestFrameRate;
var minFrameRate = obj.options.videoParams.minFrameRate || 15;
delete obj.options.videoParams.vertoBestFrameRate;
video = {
mandatory: obj.options.videoParams,
optional: []
}
var useVideo = obj.options.useVideo;
if (obj.options.screenShare) {
if (!obj.options.useCamera && !!navigator.mozGetUserMedia) {
//This is an issue, only FireFox needs to ask this additional question if its screen or window we need a better way
var dowin = window.confirm("Do you want to share an application window? If not you can share an entire screen.");
if (useVideo && obj.options.useCamera && obj.options.useCamera !== "none") {
if (!video.optional) {
video.optional = [];
video = {
width: {min: obj.options.videoParams.minWidth, max: obj.options.videoParams.maxWidth},
height: {min: obj.options.videoParams.minHeight, max: obj.options.videoParams.maxHeight},
mediaSource: dowin ? "window" : "screen"
}
} else {
var opt = [];
if (obj.options.useCamera) {
opt.push({sourceId: obj.options.useCamera});
}
if (bestFrameRate) {
opt.push({minFrameRate: bestFrameRate});
opt.push({maxFrameRate: bestFrameRate});
}
video = {
mandatory: obj.options.videoParams,
optional: opt
};
}
if (obj.options.useCamera !== "any") {
video.optional.push({sourceId: obj.options.useCamera});
}
if (bestFrameRate) {
video.optional.push({minFrameRate: bestFrameRate});
video.optional.push({maxFrameRate: bestFrameRate});
}
} else {
console.log("Camera Disabled");
video = false;
useVideo = false;
video = {
//mandatory: obj.options.videoParams,
width: {min: obj.options.videoParams.minWidth, max: obj.options.videoParams.maxWidth},
height: {min: obj.options.videoParams.minHeight, max: obj.options.videoParams.maxHeight}
};
var useVideo = obj.options.useVideo;
if (useVideo && obj.options.useCamera && obj.options.useCamera !== "none") {
//if (!video.optional) {
//video.optional = [];
//}
if (obj.options.useCamera !== "any") {
//video.optional.push({sourceId: obj.options.useCamera});
video.deviceId = obj.options.useCamera;
}
if (bestFrameRate) {
//video.optional.push({minFrameRate: bestFrameRate});
//video.optional.push({maxFrameRate: bestFrameRate});
video.frameRate = {ideal: bestFrameRate, min: minFrameRate, max: 30};
}
} else {
console.log("Camera Disabled");
video = false;
useVideo = false;
}
}
return {audio: audio, video: video, useVideo: useVideo};
@ -597,14 +586,12 @@
self.localStream = stream;
if (screen) {
if (moz) {
self.constraints.OfferToReceiveVideo = false;
} else {
self.constraints.mandatory.OfferToReceiveVideo = false;
}
self.constraints.offerToReceiveVideo = false;
self.constraints.offerToReceiveAudio = false;
self.constraints.offerToSendAudio = false;
}
self.peer = RTCPeerConnection({
self.peer = FSRTCPeerConnection({
type: self.type,
attachStream: self.localStream,
onICE: function(candidate) {
@ -646,12 +633,13 @@
getUserMedia({
constraints: {
audio: mediaParams.audio,
video: mediaParams.video
video: mediaParams.video
},
video: mediaParams.useVideo,
onsuccess: onSuccess,
onerror: onError
});
} else {
onSuccess(null);
}
@ -671,57 +659,23 @@
// 2013, @muazkh - github.com/muaz-khan
// MIT License - https://www.webrtc-experiment.com/licence/
// Documentation - https://github.com/muaz-khan/WebRTC-Experiment/tree/master/RTCPeerConnection
window.moz = !!navigator.mozGetUserMedia;
function RTCPeerConnection(options) {
function FSRTCPeerConnection(options) {
var gathering = false, done = false;
var w = window,
PeerConnection = w.mozRTCPeerConnection || w.webkitRTCPeerConnection,
SessionDescription = w.mozRTCSessionDescription || w.RTCSessionDescription,
IceCandidate = w.mozRTCIceCandidate || w.RTCIceCandidate;
var STUN = {
url: !moz ? 'stun:stun.l.google.com:19302' : 'stun:23.21.150.121'
};
var iceServers = null;
var config = {};
var default_ice = {
urls: ['stun:stun.l.google.com:19302']
};
if (options.iceServers) {
var tmp = options.iceServers;
if (typeof(tmp) === "boolean") {
tmp = null;
}
if (tmp && !(typeof(tmp) == "object" && tmp.constructor === Array)) {
console.warn("iceServers must be an array, reverting to default ice servers");
tmp = null;
}
iceServers = {
iceServers: tmp || [STUN]
};
if (!moz && !tmp) {
iceServers.iceServers = [STUN];
}
if (typeof(options.iceServers) === "boolean") {
config.iceServers = [default_ice];
} else {
config.iceServers = options.iceServers;
}
}
var optional = {
optional: []
};
if (!moz) {
optional.optional = [{
DtlsSrtpKeyAgreement: true
},
{
RtpDataChannels: options.onChannelMessage ? true : false
}];
}
var peer = new PeerConnection(iceServers, optional);
var peer = new window.RTCPeerConnection(config);
openOffererChannel();
var x = 0;
@ -736,34 +690,10 @@
}
if (options.type == "offer") {
if ((!moz || (!options.sentICESDP && peer.localDescription.sdp.match(/a=candidate/)) && !x && options.onICESDP)) {
options.onICESDP(peer.localDescription);
//x = 1;
/*
x = 1;
peer.createOffer(function(sessionDescription) {
sessionDescription.sdp = serializeSdp(sessionDescription.sdp);
peer.setLocalDescription(sessionDescription);
if (options.onICESDP) {
options.onICESDP(sessionDescription);
}
}, onSdpError, constraints);
*/
}
options.onICESDP(peer.localDescription);
} else {
if (!x && options.onICESDP) {
options.onICESDP(peer.localDescription);
//x = 1;
/*
x = 1;
peer.createAnswer(function(sessionDescription) {
sessionDescription.sdp = serializeSdp(sessionDescription.sdp);
peer.setLocalDescription(sessionDescription);
if (options.onICESDP) {
options.onICESDP(sessionDescription);
}
}, onSdpError, constraints);
*/
}
}
}
@ -811,7 +741,7 @@
var remoteMediaStream = event.stream;
// onRemoteStreamEnded(MediaStream)
remoteMediaStream.onended = function() {
remoteMediaStream.oninactive = function () {
if (options.onRemoteStreamEnded) options.onRemoteStreamEnded(remoteMediaStream);
};
@ -821,10 +751,10 @@
//console.debug('on:add:stream', remoteMediaStream);
};
var constraints = options.constraints || {
offerToReceiveAudio: true,
offerToReceiveVideo: true
};
//var constraints = options.constraints || {
// offerToReceiveAudio: true,
//offerToReceiveVideo: true
//};
// onOfferSDP(RTCSessionDescription)
function createOffer() {
@ -834,13 +764,8 @@
sessionDescription.sdp = serializeSdp(sessionDescription.sdp);
peer.setLocalDescription(sessionDescription);
options.onOfferSDP(sessionDescription);
/* old mozilla behaviour the SDP was already great right away */
if (moz && options.onICESDP && sessionDescription.sdp.match(/a=candidate/)) {
options.onICESDP(sessionDescription);
options.sentICESDP = 1;
}
},
onSdpError, constraints);
onSdpError, options.constraints);
}
// onAnswerSDP(RTCSessionDescription)
@ -848,7 +773,7 @@
if (options.type != "answer") return;
//options.offerSDP.sdp = addStereo(options.offerSDP.sdp);
peer.setRemoteDescription(new SessionDescription(options.offerSDP), onSdpSuccess, onSdpError);
peer.setRemoteDescription(new window.RTCSessionDescription(options.offerSDP), onSdpSuccess, onSdpError);
peer.createAnswer(function(sessionDescription) {
sessionDescription.sdp = serializeSdp(sessionDescription.sdp);
peer.setLocalDescription(sessionDescription);
@ -856,11 +781,11 @@
options.onAnswerSDP(sessionDescription);
}
},
onSdpError, constraints);
onSdpError);
}
// if Mozilla Firefox & DataChannel; offer/answer will be created later
if ((options.onChannelMessage && !moz) || !options.onChannelMessage) {
if ((options.onChannelMessage) || !options.onChannelMessage) {
createOffer();
createAnswer();
}
@ -899,9 +824,6 @@
}
function serializeSdp(sdp) {
//if (!moz) sdp = setBandwidth(sdp);
//sdp = getInteropSDP(sdp);
//console.debug(sdp);
return sdp;
}
@ -909,29 +831,18 @@
var channel;
function openOffererChannel() {
if (!options.onChannelMessage || (moz && !options.onOfferSDP)) return;
if (!options.onChannelMessage) return;
_openOffererChannel();
if (!moz) return;
navigator.mozGetUserMedia({
audio: true,
fake: true
},
function(stream) {
peer.addStream(stream);
createOffer();
},
useless);
return;
}
function _openOffererChannel() {
channel = peer.createDataChannel(options.channel || 'RTCDataChannel', moz ? {} : {
channel = peer.createDataChannel(options.channel || 'RTCDataChannel', {
reliable: false
});
if (moz) channel.binaryType = 'blob';
setChannelEvents();
}
@ -955,8 +866,6 @@
};
}
if (options.onAnswerSDP && moz && options.onChannelMessage) openAnswererChannel();
function openAnswererChannel() {
peer.ondatachannel = function(event) {
channel = event.channel;
@ -964,16 +873,7 @@
setChannelEvents();
};
if (!moz) return;
navigator.mozGetUserMedia({
audio: true,
fake: true
},
function(stream) {
peer.addStream(stream);
createAnswer();
},
useless);
return;
}
// fake:true is also available on chrome under a flag!
@ -993,10 +893,10 @@
return {
addAnswerSDP: function(sdp, cbSuccess, cbError) {
peer.setRemoteDescription(new SessionDescription(sdp), cbSuccess ? cbSuccess : onSdpSuccess, cbError ? cbError : onSdpError);
peer.setRemoteDescription(new window.RTCSessionDescription(sdp), cbSuccess ? cbSuccess : onSdpSuccess, cbError ? cbError : onSdpError);
},
addICE: function(candidate) {
peer.addIceCandidate(new IceCandidate({
peer.addIceCandidate(new window.RTCIceCandidate({
sdpMLineIndex: candidate.sdpMLineIndex,
candidate: candidate.candidate
}));
@ -1026,14 +926,14 @@
// getUserMedia
var video_constraints = {
mandatory: {},
optional: []
//mandatory: {},
//optional: []
};
function getUserMedia(options) {
var n = navigator,
media;
n.getMedia = n.webkitGetUserMedia || n.mozGetUserMedia;
n.getMedia = n.getUserMedia;
n.getMedia(options.constraints || {
audio: true,
video: video_constraints
@ -1044,15 +944,8 @@
});
function streaming(stream) {
//var video = options.video;
//var localVideo = options.localVideo;
//if (video) {
// video[moz ? 'mozSrcObject' : 'src'] = moz ? stream : window.webkitURL.createObjectURL(stream);
//video.play();
//}
if (options.localVideo) {
options.localVideo[moz ? 'mozSrcObject' : 'src'] = moz ? stream : window.webkitURL.createObjectURL(stream);
options.localVideo['src'] = window.URL.createObjectURL(stream);
options.localVideo.style.display = 'block';
}
@ -1080,7 +973,7 @@
var w = 0, h = 0;
for (var i in $.FSRTC.validRes) {
if ($.FSRTC.validRes[i][0] > w && $.FSRTC.validRes[i][1] > h) {
if ($.FSRTC.validRes[i][0] >= w && $.FSRTC.validRes[i][1] >= h) {
w = $.FSRTC.validRes[i][0];
h = $.FSRTC.validRes[i][1];
}
@ -1108,23 +1001,26 @@
}
var video = {
mandatory: {},
optional: []
//mandatory: {},
//optional: []
}
//FIXME
if (cam) {
video.optional = [{sourceId: cam}];
//video.optional = [{sourceId: cam}];
video.deviceId = {exact: cam};
}
w = resList[resI][0];
h = resList[resI][1];
resI++;
video.mandatory = {
"minWidth": w,
"minHeight": h,
"maxWidth": w,
"maxHeight": h
video = {
width: {exact: w},
height: {exact: h}
//"minWidth": w,
//"minHeight": h,
//"maxWidth": w,
//"maxHeight": h
};
getUserMedia({
@ -1135,7 +1031,7 @@
onsuccess: function(e) {
e.getTracks().forEach(function(track) {track.stop();});
console.info(w + "x" + h + " supported."); $.FSRTC.validRes.push([w, h]); checkRes(cam, func);},
onerror: function(e) {console.error( w + "x" + h + " not supported."); checkRes(cam, func);}
onerror: function(e) {console.warn( w + "x" + h + " not supported."); checkRes(cam, func);}
});
}
@ -1170,6 +1066,7 @@
video: check_video,
},
onsuccess: function(e) {
e.getTracks().forEach(function(track) {track.stop();});
console.info("media perm init complete");

View File

@ -359,6 +359,11 @@
return self._ws_socket ? true : false;
};
$.JsonRpcClient.prototype.stopRetrying = function() {
if (self.to)
clearTimeout(self.to);
}
$.JsonRpcClient.prototype._getSocket = function(onmessage_cb) {
// If there is no ws url set, we don't have a socket.
// Likewise, if there is no window.WebSocket.

View File

@ -1298,6 +1298,14 @@
this.modCommand("stop", null, "all");
};
$.verto.conf.prototype.deaf = function(memberID) {
this.modCommand("deaf", parseInt(memberID));
};
$.verto.conf.prototype.undeaf = function(memberID) {
this.modCommand("undeaf", parseInt(memberID));
};
$.verto.conf.prototype.record = function(file) {
this.modCommand("recording", null, ["start", file]);
};
@ -1890,24 +1898,24 @@
$.verto.dialog = function(direction, verto, params) {
var dialog = this;
var tag = verto.options.tag;
if (typeof(tag) === "function") {
tag = tag();
}
dialog.params = $.extend({
useVideo: verto.options.useVideo,
useStereo: verto.options.useStereo,
screenShare: false,
useCamera: verto.options.deviceParams.useCamera,
useCamera: false,
useMic: verto.options.deviceParams.useMic,
useSpeak: verto.options.deviceParams.useSpeak,
tag: tag,
tag: verto.options.tag,
localTag: verto.options.localTag,
login: verto.options.login,
videoParams: verto.options.videoParams
}, params);
if (!dialog.params.screenShare) {
dialog.params.useCamera = verto.options.deviceParams.useCamera;
}
dialog.verto = verto;
dialog.direction = direction;
dialog.lastState = null;
@ -1925,6 +1933,10 @@
} else {
dialog.callID = dialog.params.callID = generateGUID();
}
if (typeof(dialog.params.tag) === "function") {
dialog.params.tag = dialog.params.tag();
}
if (dialog.params.tag) {
dialog.audioStream = document.getElementById(dialog.params.tag);
@ -2012,7 +2024,7 @@
RTCcallbacks.onStream = function(rtc, stream) {
if (dialog.verto.options.permissionCallback &&
typeof dialog.verto.options.permissionCallback.onGranted === 'function'){
dialog.verto.options.permissionCallback.onGranted();
dialog.verto.options.permissionCallback.onGranted(stream);
}
console.log("stream started");
};
@ -2658,70 +2670,83 @@
var checkDevices = function(runtime) {
console.info("enumerating devices");
var aud_in = [], aud_out = [], vid = [];
var has_video = 0, has_audio = 0;
var Xstream;
if ((!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) && MediaStreamTrack.getSources) {
MediaStreamTrack.getSources(function (media_sources) {
for (var i = 0; i < media_sources.length; i++) {
function gotDevices(deviceInfos) {
// Handles being called several times to update labels. Preserve values.
for (var i = 0; i !== deviceInfos.length; ++i) {
var deviceInfo = deviceInfos[i];
var text = "";
if (media_sources[i].kind == 'video') {
vid.push(media_sources[i]);
} else {
aud_in.push(media_sources[i]);
}
console.log(deviceInfo);
console.log(deviceInfo.kind + ": " + deviceInfo.label + " id = " + deviceInfo.deviceId);
if (deviceInfo.kind === 'audioinput') {
text = deviceInfo.label || 'microphone ' + (aud_in.length + 1);
aud_in.push({id: deviceInfo.deviceId, kind: "audio_in", label: text});
} else if (deviceInfo.kind === 'audiooutput') {
text = deviceInfo.label || 'speaker ' + (aud_out.length + 1);
aud_out.push({id: deviceInfo.deviceId, kind: "audio_out", label: text});
} else if (deviceInfo.kind === 'videoinput') {
text = deviceInfo.label || 'camera ' + (vid.length + 1);
vid.push({id: deviceInfo.deviceId, kind: "video", label: text});
} else {
console.log('Some other kind of source/device: ', deviceInfo);
}
$.verto.videoDevices = vid;
$.verto.audioInDevices = aud_in;
console.info("Audio Devices", $.verto.audioInDevices);
console.info("Video Devices", $.verto.videoDevices);
runtime(true);
});
} else {
/* of course it's a totally different API CALL with different element names for the same exact thing */
if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {
console.log("enumerateDevices() not supported.");
return;
}
// List cameras and microphones.
navigator.mediaDevices.enumerateDevices()
.then(function(devices) {
devices.forEach(function(device) {
console.log(device);
$.verto.videoDevices = vid;
$.verto.audioInDevices = aud_in;
$.verto.audioOutDevices = aud_out;
console.info("Audio IN Devices", $.verto.audioInDevices);
console.info("Audio Out Devices", $.verto.audioOutDevices);
console.info("Video Devices", $.verto.videoDevices);
console.log(device.kind + ": " + device.label +
" id = " + device.deviceId);
if (device.kind === "videoinput") {
vid.push({id: device.deviceId, kind: "video", label: device.label});
} else if (device.kind === "audioinput") {
aud_in.push({id: device.deviceId, kind: "audio_in", label: device.label});
} else if (device.kind === "audiooutput") {
aud_out.push({id: device.deviceId, kind: "audio_out", label: device.label});
}
});
if (Xstream) {
Xstream.getTracks().forEach(function(track) {track.stop();});
}
$.verto.videoDevices = vid;
$.verto.audioInDevices = aud_in;
$.verto.audioOutDevices = aud_out;
console.info("Audio IN Devices", $.verto.audioInDevices);
console.info("Audio Out Devices", $.verto.audioOutDevices);
console.info("Video Devices", $.verto.videoDevices);
runtime(true);
})
.catch(function(err) {
console.log(" Device Enumeration ERROR: " + err.name + ": " + err.message);
runtime(false);
});
if (runtime) {
runtime(true);
}
}
};
function handleError(error) {
console.log('device enumeration error: ', error);
if (runtime) runtime(false);
}
function checkTypes(devs) {
for (var i = 0; i !== devs.length; ++i) {
if (devs[i].kind === 'audioinput') {
has_audio++;
} else if (devs[i].kind === 'videoinput') {
has_video++;
}
}
navigator.getUserMedia({ audio: (has_audio > 0 ? true : false), video: (has_video > 0 ? true : false)},
function(stream) {
Xstream = stream;
navigator.mediaDevices.enumerateDevices().then(gotDevices).catch(handleError);
},
function(err) {
console.log("The following error occurred: " + err.name);
}
);
}
navigator.mediaDevices.enumerateDevices().then(checkTypes).catch(handleError);
};
$.verto.refreshDevices = function(runtime) {
checkDevices(runtime);

File diff suppressed because one or more lines are too long

View File

@ -46,7 +46,7 @@
"bootstrap-material-design": "~0.3.0",
"angular-translate": "~2.10.0",
"angular-translate-loader-static-files": "~2.10.0",
"angular-click-outside": "^2.8.3"
"angular-click-outside": "~2.9.2"
},
"resolutions": {
"angular": "~1.3.15",

View File

@ -507,7 +507,6 @@ body .modal-body .btn-group .btn.active {
max-height: calc(100% - 1vw);
max-width: 146.78vh;
margin: 7px auto;
position: absolute;
top: 0;
bottom: 0;
left: 0;
@ -1736,3 +1735,8 @@ body:-webkit-full-screen #incall .video-footer {
color: rgba(0, 10, 66, 0.84);
background-color: #E8E8E8;
}
#settings .loader {
width: 20px;
height: 20px;
}

View File

@ -108,6 +108,7 @@
<script type="text/javascript" src="../js/src/jquery.jsonrpcclient.js"></script>
<script type="text/javascript" src="../js/src/jquery.FSRTC.js"></script>
<script type="text/javascript" src="../js/src/jquery.verto.js"></script>
<script type="text/javascript" src="../js/src/vendor/adapter-latest.js"></script>
<script type="text/javascript" src="js/3rd-party/getScreenId.js"></script>
<script type="text/javascript" src="js/3rd-party/md5.min.js"></script>

View File

@ -124,6 +124,7 @@
"AUTO_SPEED_RES": "Automatically determine speed and resolution settings",
"RECHECK_BANDWIDTH": "Recheck bandwidth before each outgoing call",
"CHECK_NETWORK_SPEED": "Check Network Speed",
"CHECKING_NETWORK_SPEED": "Checking Network Speed",
"VIDEO_QUALITY": "Video quality:",
"MAX_INCOMING_BANDWIDTH": "Max incoming bandwidth:",
"MAX_OUTGOING_BANDWIDTH": "Max outgoing bandwidth:",
@ -144,11 +145,15 @@
"CHAT_TITLE_VOL_PLUS": "Volume +",
"CHAT_TITLE_GAIN_MINUS": "Gain -",
"CHAT_TITLE_GAIN_PLUS": "Gain +",
"CHAT_TITLE_DEAF_UNDEAF": "Deaf/Undeaf",
"CHAT_VOL_MINUS": "Vol -",
"CHAT_VOL_PLUS": "Vol +",
"CHAT_GAIN_MINUS": "Gain -",
"CHAT_GAIN_PLUS": "Gain +",
"CHAT_DEAF": "Deaf",
"CHAT_UNDEAF": "Undeaf",
"LANGUAGE": "Language:",
"BROWSER_LANGUAGE": "Browser Language",
"FACTORY_RESET_SETTINGS": "Factory Reset Settings"
"FACTORY_RESET_SETTINGS": "Factory Reset Settings",
"AUTOGAIN_CONTROL": "Auto Gain Control"
}

View File

@ -1,142 +1,159 @@
{
"TITLE_ACTIVE_CALL": "Uy, llamada activa en curso.",
"MESSAGE_ACTIVE_CALL_HANGUP": "Parece que estas en una llamada, Desea colgar?",
"MESSAGE_ACTIVE_CALL_BACK": "Parece que estabas en una llamada la ultima vez, quieres regresar a eso?",
"TITLE_ACTIVE_CALL": "Llamada en curso.",
"MESSAGE_ACTIVE_CALL_HANGUP": "Estas en una llamada, ¿ quieres colgar ?",
"MESSAGE_ACTIVE_CALL_BACK": "Wstabas en una llamada la última vez, ¿ quieres retomarla ?",
"TITLE_INCOMING_CALL": "Llamada entrante",
"MESSAGE_INCOMING_CALL": "Desde ",
"MESSAGE_NO_HANGUP_CALL": "No hay ninguna llamada que colgar.",
"MESSAGE_ENTER_FILENAME": "Por favor, indique el nombre del archivo.",
"TITLE_ENABLE_VIDEO": "¿Quieres activar el video para esta convocatoria?",
"MESSAGE_ENABLE_VIDEO": "Video estará activo durante las siguientes llamadas.",
"TITLE_INSERT_BANNER": "Por favor introduzca el texto del estandarte ",
"TITLE_INSERT_CANVAS_ID": "Por favor, Introduzca el Id de lona",
"TITLE_INSERT_LAYER": "Por favor inserte la capa",
"TITLE_TRANSFER": "¿Transferencia de partido?",
"MESSAGE_TRANSFER": "¿A qué destino quieres transferir esta llamada?",
"MESSAGE_INCOMING_CALL": "desde ",
"MESSAGE_NO_HANGUP_CALL": "No hay llamada que colgar.",
"MESSAGE_ENTER_FILENAME": "Por favor, indica el nombre del archivo.",
"TITLE_ENABLE_VIDEO": "¿ Quieres activar el vídeo para esta llamada ?",
"MESSAGE_ENABLE_VIDEO": "El video estará activo durante las siguientes llamadas.",
"TITLE_INSERT_BANNER": "Por favor indica el texto para el banner",
"TITLE_INSERT_CANVAS_ID": "Por favor, indica el idenficador del lienzo",
"TITLE_INSERT_LAYER": "Por favor, indica el título para la capa",
"TITLE_TRANSFER": "¿ Transferir llamada ?",
"MESSAGE_TRANSFER": "¿ A qué destino quieres transferir esta llamada? ",
"LABEL_TRANSFER": "Destino",
"MESSAGE_DISPLAY_SETTINGS": "No se puede mostrar la configuración durante una llamada",
"MESSAGE_DISPLAY_SETTINGS": "No se puede mostrar la configuración de vista previa durante una llamada",
"BUTTON_END_CALL": "Finalizar llamada",
"BUTTON_CLOSE": "Cerrar",
"MESSAGE_PLAY": " Reproducir",
"MESSAGE_STOP": "Parar",
"MESSAGE_RECORD": "Grabar",
"MESSAGE_STOP_RECORD": "Parar de grabar",
"MESSAGE_SNAPSHOT": "Foto instantánea",
"MESSAGE_SNAPSHOT": "Captura",
"MESSAGE_VIDEO_MODE": "Modo de vídeo",
"MESSAGE_MUTE_MIC": "(des) silenciar el micrófono",
"MESSAGE_MUTE_VIDEO": "(des) silenciar el Video",
"MESSAGE_MUTE_MIC": "(des)activar el micrófono",
"MESSAGE_MUTE_VIDEO": "(des)activar el video",
"MESSAGE_FULLSCREEN": "Cambiar el modo de pantalla completa",
"MESSAGE_SCREENSHARE": "Compartir la pantalla",
"MESSAGE_OPEN_CLOSE_CHAT": "Abrir/cerrar Chat",
"MESSAGE_OPEN_CLOSE_CHAT": "Abrir/cerrar chat",
"MESSAGE_SPEAKER": "Altavoz",
"MESSAGE_POPUP": "Emergente",
"CHAT_TITLE_MEMBERS": "Miembros",
"MESSAGE_POPUP": "Ventana emergente",
"CHAT_TITLE_MEMBERS": "Participantes",
"CHAT_TITLE": "Chat",
"CHAT_NO_MEMBERS": "No hay miembros para mostrar.",
"CHAT_NO_MEMBERS": "No hay participantes para mostrar.",
"CHAT_GENERAL": "General",
"CHAT_TITLE_KICK": "Patear",
"CHAT_KICK": "Patear",
"CHAT_TITLE_VIDEO_FLOOR": "Piso Video",
"CHAT_FLOOR": "Piso",
"CHAT_TITLE_KICK": "Expulsar",
"CHAT_KICK": "Expulsar",
"CHAT_TITLE_VIDEO_FLOOR": "Fondo de vídeo",
"CHAT_FLOOR": "Fondo de chat",
"CHAT_TITLE_TRANSFER": "Transferir",
"CHAT_TRANSFER": "Transferir",
"CHAT_BANNER": "Estandarte",
"CHAT_BANNER": "Banner",
"CHAT_TITLE_SET": "Poner",
"CHAT_SET": "Poner",
"CHAT_TITLE_RESET": "Reajustar",
"CHAT_RESET": "Reajustar ",
"CHAT_CANVAS": "Lona",
"CHAT_CANVAS_IN": "Lona dentro",
"CHAT_CANVAS_OUT": "Lona afuera",
"CHAT_PREV": "Prev",
"CHAT_NEXT": "Proximo",
"CHAT_TITLE_RESET": "Resetear",
"CHAT_RESET": "Resetear ",
"CHAT_CANVAS": "Lienzo",
"CHAT_CANVAS_IN": "Lienzo dentro",
"CHAT_CANVAS_OUT": "Lienzo afuera",
"CHAT_PREV": "Siguiente",
"CHAT_NEXT": "Próximo",
"CHAT_LAYER": "Capa",
"CHAT_AUDIO_VIDEO": "Audio/Video",
"CHAT_TITLE_MUTE_UNMUTE_MIC": "Silenciar/Des Silenciar Microfono",
"CHAT_TITLE_MUTE_UNMUTE_MIC": "Activar/desactivar micrófono",
"CHAT_MUTE_MIC": "Silenciar ",
"CHAT_UNMUTE_MIC": "Des Silenciar",
"CHAT_TITLE_MUTE_UNMUTE_MIC": "Silenciar/Des Silenciar Video",
"CHAT_UNMUTE_MIC": "No silenciar",
"CHAT_TITLE_MUTE_UNMUTE_VIDEO": "Activar/desactivar vídeo",
"CHAT_NO_MESSAGES": "No hay mensajes para mostrar.",
"CHAT_SEND_MESSAGE": "Enviar",
"CHAT_TYPE_MESSAGE": "Escriba su mensaje aquí...",
"TITLE_CONTRIBUTORS": "Contribuyente",
"CHAT_TYPE_MESSAGE": "Escribe tu mensaje aquí...",
"TITLE_CONTRIBUTORS": "Colaboradores",
"MESSAGE_CONNECTION_UNTRUSTED": "Esta conexión no es de confianza.",
"MESSAGE_TOGGLE_NAVIGATION": "Alternar la navegación",
"BANDWIDTH_INFO": "Información de la amplitud de banda",
"BANDWIDTH_INFO": "Información de ancho de banda",
"BANDWIDTH_INFO_INCOMING": "Entrante:",
"BANDWIDTH_INFO_OUTGOING": "Saliente:",
"BANDWIDTH_INFO_VIDEO_RES": "Resolución de vídeo:",
"IN_CALL": "En llamada:",
"LAST_CALL": " Última llamada:",
"OPEN_NEW_WINDOW": "Abrir nueva Ventana",
"LAST_CALL": "Última llamada:",
"OPEN_NEW_WINDOW": "Abrir en ventana nueva",
"CHANGE_LOGIN_INFO": "Cambiar la información de inicio de sesión",
"LOGOUT": "Salir de sesión",
"ABOUT": "Sobre",
"LOGOUT": "Cerrar sesión",
"ABOUT": "Acerca de",
"HELP": "Ayuda",
"CONTRIBUTORS": "Contribuyente",
"TITLE_PREVIEW_SETTINGS": "Configuración de la Cámara y el Micrófono",
"CONTRIBUTORS": "Colaboradores",
"TITLE_PREVIEW_SETTINGS": "Configuración de la cámara y el micrófono",
"CAMERA_SETTINGS": "Cámara:",
"MIC_SETTINGS": "Micrófono:",
"SAVE": "Salvar",
"SAVE": "Guardar",
"LOADING": "Cargando",
"ERRORS" : "Errores",
"CALLING_TO": "Llamar a ",
"CANCELLING": "Cancelando...",
"DETERMINING_SPEED": "Determinación de la velocidad...",
"DETERMINING_SPEED": "Midiendo la velocidad...",
"CALL_HISTORY": "Historial de llamadas",
"CLEAR_CALL_HISTORY": "Borrar Historial",
"NO_CALL_HISTORY": "No Historial de llamadas.",
"ENTER_EXTENSION": "Entre en una extensión",
"CALL_EXTENSION": " Llamar extensión",
"LOGIN": "Inicio de Sesión",
"LOGIN_INFORMATION": "Información de Inicio de Sesión",
"SAVE_LOGIN_INFORMATION": "Salvar Información de Inicio de Sesión",
"INVALID_LOGIN_FIELDS": "Verifique los campos abajo e intente otra vez.",
"NO_CALL_HISTORY": "Sin historial de llamadas.",
"ENTER_EXTENSION": "Marca una extensión",
"CALL_EXTENSION": "Llamar a una extensión",
"LOGIN": "Inicio de sesión",
"LOGIN_INFORMATION": "Información de inicio de sesión",
"SAVE_LOGIN_INFORMATION": "Guardar información de inicio de sesión",
"INVALID_LOGIN_FIELDS": "Corrige el formulario e inténtalo otra vez.",
"INVALID_SETTINGS_FIELDS": "Verifica los ajustes e inténtalo otra vez.",
"NAME": "Nombre",
"YOUR_NAME": "Su Nombre",
"EMAIL": " El Correo Electrónico",
"YOUR_EMAIL": "Su Correo Electrónico",
"YOUR_NAME": "Tu nombre",
"EMAIL": " Correo electrónico",
"YOUR_EMAIL": "Tu correo electrónico",
"USER": "Usuario",
"PASSWORD": "Contraseña",
"CALLER_ID": "Identificador de llamadas",
"HOSTNAME": "Hostname",
"CALLER_ID": "Identificador de llamada",
"HOSTNAME": "Servidor",
"WEBSOCKET_URL": "Websocket URL",
"SETTINGS": "Configuraciónes",
"DEVICE_SETTINGS": "La configuración de usuario",
"SETTINGS": "Configuración",
"DEVICE_SETTINGS": "Configuración de dispositivo",
"SHARE_DEVICE": "Compartir dispositivo",
"SPEAKER": "Altavoz:",
"SPEAKER_FEATURE": "Su navegador no parece apoyar esta función",
"PREVIEW_SETTINGS": "Configuración de vista anticipada",
"SPEAKER_FEATURE": "Tu navegador no soporta esta característica",
"PREVIEW_SETTINGS": "Configuración de vista previa",
"REFRESH_DEVICE_LIST": "Actualizar la lista de dispositivos",
"GENERAL_SETTINGS": "Configuración general:",
"USE_VIDEO": "Utilizar vídeo",
"USE_STEREO_AUDIO": "Audio Estéreo",
"USE_STEREO_AUDIO": "Utilizar audio estéreo",
"USE_STUN": "Utilizar STUN",
"SCALE_VIDEO": "Escala de vídeo remoto para que coincida con la resolución de la cámara",
"SCALE_VIDEO": "Escalar el vídeo remoto para que coincida con la resolución de la cámara",
"ASK_BEFORE_RECOVER": "Preguntar antes de recuperar la llamada",
"BEST_FRAME_RATE": "Mejor velocidad:",
"BEST_FRAME_RATE": "Mejor velocidad de vídeo:",
"AUDIO_SETTINGS": "Configuración de audio:",
"ECHO_CANCEL": "Cancelación de eco",
"NOISE_SUPPRESSION": "Supresión de Ruido",
"HIGHPASS_FILTER": "Filtro de paso alto",
"VIDEO_SETTINGS": "Configuración de vídeo:",
"REMOTE_ENCODER": "Codificador Remoto dedicado permitido.",
"REMOTE_ENCODER": "Codificador remoto activado",
"AUTO_SPEED_RES": "Determinar automáticamente la configuración de velocidad y resolución",
"RECHECK_BANDWIDTH": "Compruebe de nuevo la amplitud de banda antes de cada llamada saliente",
"CHECK_NETWORK_SPEED": "Compruebe la velocidad de la red",
"VIDEO_QUALITY": "Calidad de video:",
"MAX_INCOMING_BANDWIDTH": "Máxima amplitude banda entrante:",
"MAX_OUTGOING_BANDWIDTH": "Máxima amplitude banda saliente:",
"FACTORY_RESET": "Restablecimiento de fábrica",
"SAVE_DEVICE_SETTINGS": "Guardar la Configuración del dispositivo ",
"BROWSER_COMPATIBILITY": "Comprobar Compatibilidad de navegadores.",
"REFRESH_MEDIA_DEVICES": "Actualizar dispositivos de medios.",
"RECHECK_BANDWIDTH": "Volver a comprobar el ancho de banda antes de cada llamada saliente",
"CHECK_NETWORK_SPEED": "Comprobar la velocidad de la red",
"VIDEO_QUALITY": "Calidad de vídeo:",
"MAX_INCOMING_BANDWIDTH": "Máximo ancho banda entrante:",
"MAX_OUTGOING_BANDWIDTH": "Máximo ancho banda saliente:",
"FACTORY_RESET": "Reiniciar",
"SAVE_DEVICE_SETTINGS": "Guardar la configuración del dispositivo",
"BROWSER_COMPATIBILITY": "Comprobando la compatibilidad del navegador web",
"REFRESH_MEDIA_DEVICES": "Actualizando dispositivos multimedia",
"BROWSER_WITHOUT_WEBRTC": "Error: el navegador no soporta WebRTC.",
"CHECK_PERMISSION_MEDIA": "Comprobación de permisos de los medios de comunicación",
"CHECK_PROVISIONING_CONF": "Aprovisionamiento de configuración.",
"CHECK_LOGIN": "Verifiicar inicio de sesión.",
"CHECK_CONNECTION_SPEED": " Verificar la velocidad de conexión.",
"ERROR_PERMISSION_MEDIA": "Error: permiso de medios negado",
"CHECK_PERMISSION_MEDIA": "Comprobando permisos de los dispositivos multimedia",
"CHECK_PROVISIONING_CONF": "Verificando configuración.",
"CHECK_LOGIN": "Verificando inicio de sesión.",
"CHECK_CONNECTION_SPEED": " Verificando la velocidad de conexión.",
"ERROR_PERMISSION_MEDIA": "Error: permiso de dispositivos multimedia denegado",
"ERROR_PROVISIONING_CONF": "Error: Provisión falló.",
"PLEASE_WAIT": "Por favor espere..."
"PLEASE_WAIT": "Por favor espere...",
"CANCEL": "Cancelar",
"CHAT_TITLE_VOL_MINUS": "Volumen -",
"CHAT_TITLE_VOL_PLUS": "Volumen +",
"CHAT_TITLE_GAIN_MINUS": "Ganancia -",
"CHAT_TITLE_GAIN_PLUS": "Ganancia +",
"CHAT_TITLE_DEAF_UNDEAF": "Deaf/Undeaf",
"CHAT_VOL_MINUS": "Vol -",
"CHAT_VOL_PLUS": "Vol +",
"CHAT_GAIN_MINUS": "Gain -",
"CHAT_GAIN_PLUS": "Gain +",
"CHAT_DEAF": "Deaf",
"CHAT_UNDEAF": "Undeaf",
"LANGUAGE": "Idioma:",
"BROWSER_LANGUAGE": "Idioma del navegador",
"FACTORY_RESET_SETTINGS": "Inicializar ajustes",
"AUTOGAIN_CONTROL": "Control de ganancia automática"
}

View File

@ -124,6 +124,7 @@
"AUTO_SPEED_RES": "Determinar automaticamente velocidade e configurações de resolução",
"RECHECK_BANDWIDTH": "Verificar novamente largura de banda antes de realizar cada chamada",
"CHECK_NETWORK_SPEED": "Verificar velocidade da rede",
"CHECKING_NETWORK_SPEED": "Verificando velocidade da rede",
"VIDEO_QUALITY": "Qualidade do vídeo:",
"MAX_INCOMING_BANDWIDTH": "Largura de banda de entrada máxima:",
"MAX_OUTGOING_BANDWIDTH": "Largura de banda de saída máxima:",
@ -144,9 +145,13 @@
"CHAT_TITLE_VOL_PLUS": "Volume +",
"CHAT_TITLE_GAIN_MINUS": "Ganho -",
"CHAT_TITLE_GAIN_PLUS": "Ganho +",
"CHAT_TITLE_DEAF_UNDEAF": "Ligar/Desligar Áudio",
"CHAT_VOL_MINUS": "Vol -",
"CHAT_VOL_PLUS": "Vol +",
"CHAT_GAIN_MINUS": "Ganho -",
"CHAT_GAIN_PLUS": "Ganho +",
"FACTORY_RESET_SETTINGS": "Redefinir configurações"
"CHAT_DEAF": "Ligar Áudio",
"CHAT_UNDEAF": "Desligar Áudio",
"FACTORY_RESET_SETTINGS": "Redefinir configurações",
"AUTOGAIN_CONTROL": "Controle de Ganho Automático (AGC)"
}

View File

@ -55,7 +55,7 @@
<div class="admin-controls" ng-if="verto.data.confRole == 'moderator'" ng-show="$index == $parent.openId">
<div>
<div class="col-md-6 ctrl-section">
<div class="col-md-12 ctrl-section">
<h3>{{ 'CHAT_GENERAL' | translate }}</h3>
<div class="group btn-group-justified">
<a href="" class="btn btn-xs" ng-click="confKick(member.id)" title="{{ 'CHAT_TITLE_KICK' | translate }}">
@ -70,6 +70,11 @@
<i class="mdi-fw mdi-communication-call-made"></i>
<span style="margin-left: -9px">{{ 'CHAT_TRANSFER' | translate }}</span>
</a>
<a href="" class="btn btn-xs" ng-click="confToggleDeaf(member)" title="{{ 'CHAT_TITLE_DEAF_UNDEAF' | translate }}">
<i class="mdi-fw" ng-class="member.status.audio.deaf ? 'mdi-content-clear' : 'mdi-av-hearing'"></i>
{{ member.status.audio.deaf ? 'CHAT_UNDEAF' : 'CHAT_DEAF' | translate }}
</a>
</div>
</div>
@ -188,7 +193,8 @@
<div class="chat-message-input">
<form ng-submit="send()" >
<div class="chat-message-input-group">
<textarea ng-model="message" ng-keydown="($event.keyCode == 13 && $event.shiftKey !== true) && send($event)" required="required" class="form-control input-sm" placeholder="{{ 'CHAT_TYPE_MESSAGE' | translate }}"></textarea>
<textarea ng-model="message" ng-keydown="($event.keyCode == 13 && $event.shiftKey !== true) && send($event)" required="required" class="form-control input-sm" placeholder="{{ 'CHAT_TYPE_MESSAGE' | translate }}"
ng-focus="disableOnKeydownDtmf()" ng-blur="enableOnKeydownDtmf()"></textarea>
<button class="btn btn-success btn-sm" type="submit">
{{ 'CHAT_SEND_MESSAGE' | translate }}
<span class="mdi-navigation-arrow-forward chat-message-input-group-icon-button"></span>

View File

@ -1,25 +1,25 @@
<div class="panel panel-default shadow-z-2" ng-class="{'shadow-z-2': !call_history}">
<form name="form">
<div class="input-group dialpad-display">
<input name="dialpadnumber" type="text" class="form-control text-center" placeholder="" ng-model="dialpadNumber" />
<input name="dtmfHistory" type="text" class="form-control text-center" placeholder="" ng-model="dtmfHistory.value" />
</div>
<div class="panel-body">
<div class="dialpad-numbers">
<div class="row">
<div class="col-md-4 col-xs-4">
<a class="btn btn-block" href="" ng-click="dtmf(1)">
<a class="btn btn-block" href="" ng-click="dtmfWidget(1)">
<h2 class="dialpad-number">1</h2>
<span class="dialpad-alpha">./@</span>
</a>
</div>
<div class="col-md-4 col-xs-4">
<a class="btn btn-block" href="" ng-click="dtmf(2)">
<a class="btn btn-block" href="" ng-click="dtmfWidget(2)">
<h2 class="dialpad-number">2</h2>
<span class="dialpad-alpha">ABC</span>
</a>
</div>
<div class="col-md-4 col-xs-4">
<a class="btn btn-block" href="" ng-click="dtmf(3)">
<a class="btn btn-block" href="" ng-click="dtmfWidget(3)">
<h2 class="dialpad-number">3</h2>
<span class="dialpad-alpha">DEF</span>
</a>
@ -27,19 +27,19 @@
</div>
<div class="row">
<div class="col-md-4 col-xs-4">
<a class="btn btn-block" href="" ng-click="dtmf(4)">
<a class="btn btn-block" href="" ng-click="dtmfWidget(4)">
<h2 class="dialpad-number">4</h2>
<span class="dialpad-alpha">GHI</span>
</a>
</div>
<div class="col-md-4 col-xs-4">
<a class="btn btn-block" href="" ng-click="dtmf(5)">
<a class="btn btn-block" href="" ng-click="dtmfWidget(5)">
<h2 class="dialpad-number">5</h2>
<span class="dialpad-alpha">JKL</span>
</a>
</div>
<div class="col-md-4 col-xs-4">
<a class="btn btn-block" href="" ng-click="dtmf(6)">
<a class="btn btn-block" href="" ng-click="dtmfWidget(6)">
<h2 class="dialpad-number">6</h2>
<span class="dialpad-alpha">MNO</span>
</a>
@ -47,19 +47,19 @@
</div>
<div class="row">
<div class="col-md-4 col-xs-4">
<a class="btn btn-block" href="" ng-click="dtmf(7)">
<a class="btn btn-block" href="" ng-click="dtmfWidget(7)">
<h2 class="dialpad-number">7</h2>
<span class="dialpad-alpha">PQRS</span>
</a>
</div>
<div class="col-md-4 col-xs-4">
<a class="btn btn-block" href="" ng-click="dtmf(8)">
<a class="btn btn-block" href="" ng-click="dtmfWidget(8)">
<h2 class="dialpad-number">8</h2>
<span class="dialpad-alpha">TUV</span>
</a>
</div>
<div class="col-md-4 col-xs-4">
<a class="btn btn-block" href="" ng-click="dtmf(9)">
<a class="btn btn-block" href="" ng-click="dtmfWidget(9)">
<h2 class="dialpad-number">9</h2>
<span class="dialpad-alpha">WXYZ</span>
</a>
@ -67,19 +67,19 @@
</div>
<div class="row">
<div class="col-md-4 col-xs-4">
<a class="btn btn-block" href="" ng-click="dtmf('*')">
<a class="btn btn-block" href="" ng-click="dtmfWidget('*')">
<h2 class="dialpad-number dialpad-star">*</h2>
<span class="dialpad-alpha"></span>
</a>
</div>
<div class="col-md-4 col-xs-4">
<a class="btn btn-block" href="" ng-click="dtmf(0)">
<a class="btn btn-block" href="" ng-click="dtmfWidget(0)">
<h2 class="dialpad-number">0</h2>
<span class="dialpad-alpha">+</span>
</a>
</div>
<div class="col-md-4 col-xs-4">
<a class="btn btn-block" href="" ng-click="dtmf('#')">
<a class="btn btn-block" href="" ng-click="dtmfWidget('#')">
<h2 class="dialpad-number dialpad-pound">#</h2>
<span class="dialpad-alpha"></span>
</a>

View File

@ -2,22 +2,22 @@
<h3 class="modal-title">{{ 'LOGIN_INFORMATION' | translate}}</h3>
</div>
<div class="modal-body">
<div class="form-group">
<label for="name">{{ 'NAME' | translate}}</label>
<input type="text" name="name" class="form-control" ng-model="storage.data.name" ng-value="storage.data.name"/>
<form name="form" class="css-form" novalidate>
<div class="form-group {{ (((!form.name.$pristine || form.$submitted) && !form.name.$valid) ? 'has-error': '') }}">
<label class="control-label" for="name">{{ 'NAME' | translate}}</label>
<input type="text" name="name" class="form-control" id="login-name" placeholder="{{ 'YOUR_NAME' | translate}}" required="" ng-model="verto.data.name" autofocus>
</div>
<div class="form-group">
<label for="email">{{ 'EMAIL' | translate}}</label>
<input type="text" name="email" class="form-control" ng-model="storage.data.email" ng-value="storage.data.email"/>
<div class="form-group {{ (((!form.email.$pristine || form.$submitted) && !form.email.$valid) ? 'has-error': '') }}">
<label class="control-label" for="login-email">{{ 'EMAIL' | translate }}</label>
<input type="email" name="email" class="form-control" id="login-email" placeholder="{{ 'YOUR_EMAIL' | translate}}" ng-model="verto.data.email">
</div>
<div class="form-group">
<label class="control-label" for="user">{{ 'USER' | translate}}</label>
<input type="text" class="form-control" id="user" placeholder="User" ng-model="storage.data.login">
</div>
<div class="form-group">
<label class="control-label" for="password">{{ 'PASSWORD' | translate}}</label>
<input type="password" class="form-control" id="password" placeholder="Password" ng-model="verto.data.password">
@ -27,7 +27,7 @@
<label class="control-label" for="callerid">{{ 'CALLER_ID' | translate}}</label>
<input type="text" class="form-control" id="callerid" placeholder="Caller ID" ng-model="verto.data.callerid">
</div>
</form>
</div>
<div class="modal-footer">
<!-- <button class="btn btn-primary" ng-click="cancel()">Cancel</button> -->

View File

@ -7,7 +7,7 @@
<div class="panel-body">
<div class="preview-wrapper">
<video id="videopreview" muted autoplay style="width: 100%;"></video>
<div id="mic-meter">
<div id="mic-meter" ng-if="audioContext">
<div class="volumes">
<div class="volume-segment"></div>
<div class="volume-segment"></div>

View File

@ -1,4 +1,4 @@
<div id="settings" ng-controller="SettingsController" click-outside="$parent.closeSettings()">
<div id="settings" ng-controller="SettingsController" click-outside="$parent.closeSettings()" outside-if-not="mdi-action-settings">
<div class="content">
<div class="col-md-4">
@ -107,6 +107,12 @@
<span ng-bind="'HIGHPASS_FILTER' | translate"></span>
</label>
</div>
<div class="checkbox">
<label>
<input type="checkbox" name="googAutoGainControl" value="mydata.googAutoGainControl" ng-model="mydata.googAutoGainControl">
<span ng-bind="'AUTOGAIN_CONTROL' | translate"></span>
</label>
</div>
</div>
</div>
</div>
@ -129,11 +135,24 @@
</label>
</div>
<div class="checkbox" ng-show="mydata.autoBand">
<label>
<input type="checkbox" ng-model="mydata.testSpeedJoin">
<span ng-bind="'RECHECK_BANDWIDTH' | translate"></span>
</label>
<div ng-show="mydata.autoBand">
<div class="checkbox">
<label>
<input type="checkbox" ng-model="mydata.testSpeedJoin">
<span ng-bind="'RECHECK_BANDWIDTH' | translate"></span>
</label>
</div>
<a class="btn btn-primary" href="" ng-disabled="isTestingSpeed" ng-click="testSpeed()">
{{ isTestingSpeed ? 'CHECKING_NETWORK_SPEED' : 'CHECK_NETWORK_SPEED' | translate }}
</a>
<div>
<span ng-bind="speedMsg"></span>
<span ng-show="isTestingSpeed">
<img class="loader" src="src/images/ajax-loader.gif"/>
</span>
</div>
</div>
<a ng-show="mydata.autoBand" class="btn btn-primary" href="" ng-click="testSpeed()">{{ 'CHECK_NETWORK_SPEED' | translate }}</a> <span ng-bind="speedMsg"></span>

View File

@ -99,6 +99,9 @@
</div>
</div>
<div class="col-md-6 col-xs-6 text-right">
<button ng-if="!verto.data.conf" tooltips="" tooltip-title="Hold" tooltip-side="bottom" tooltip-lazy="false" class="btn btn-material-900" ng-click="hold()">
<i class="big-icon" ng-class="{'mdi-av-pause':!storage.data.onHold, 'mdi-av-play-arrow': storage.data.onHold}"></i>
</button>
<button class="btn btn-danger" ng-click="hangup()" translate>
<i class="mdi-communication-call-end"></i>
{{ watcher ? 'BUTTON_CLOSE' : 'BUTTON_END_CALL' }}

View File

@ -2,7 +2,7 @@
<h3 class="modal-title">Waiting for server reconnection.</h3>
</div>
<div class="modal-body">
<a href="#/login" ng-click="closeReconnect()" class="btn btn-success">Change Server</a>
</div>
<div class="modal-footer">
</div>

View File

@ -14,11 +14,7 @@
'status': 'success',
'message': $translate.instant('BROWSER_COMPATIBILITY')
};
navigator.getUserMedia = navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia;
if (!navigator.getUserMedia) {
if (!navigator.mediaDevices.getUserMedia) {
result['status'] = 'error';
result['message'] = $translate.instant('BROWSER_WITHOUT_WEBRTC');
reject(result);
@ -147,6 +143,8 @@
* not connecting prevent two connects
*/
if (storage.data.ui_connected && storage.data.ws_connected && !verto.data.connecting) {
verto.data.hostname = storage.data.hostname || verto.data.hostname;
verto.data.wsURL = storage.data.wsURL || verto.data.wsURL;
verto.data.name = storage.data.name;
verto.data.email = storage.data.email;
verto.data.login = storage.data.login;

View File

@ -23,6 +23,7 @@
mutedMic: false,
preview: true,
selectedVideo: null,
selectedVideoName: null,
selectedAudio: null,
selectedShare: null,
selectedSpeaker: null,
@ -37,6 +38,7 @@
googNoiseSuppression: true,
googHighpassFilter: true,
googEchoCancellation: true,
googAutoGainControl: true,
autoBand: true,
testSpeedJoin: true,
bestFrameRate: "15",

View File

@ -333,6 +333,18 @@
});
};
$scope.confToggleDeaf = function(member) {
if(verto.data.confRole == 'moderator') {
console.log('$scope.confToggleDeaf');
if (member.status.audio.deaf) {
verto.data.conf.undeaf(member.id);
} else {
verto.data.conf.deaf(member.id);
}
}
};
function shortPrompt(text, cb) {
prompt({
title: text,

View File

@ -4,8 +4,8 @@
angular
.module('vertoControllers')
.controller('DialPadController', ['$rootScope', '$scope',
'$http', '$location', 'toastr', 'verto', 'storage', 'CallHistory', 'eventQueue',
function($rootScope, $scope, $http, $location, toastr, verto, storage, CallHistory, eventQueue) {
'$http', '$location', 'toastr', 'verto', 'storage', 'CallHistory', 'eventQueue', '$timeout',
function($rootScope, $scope, $http, $location, toastr, verto, storage, CallHistory, eventQueue, $timeout) {
console.debug('Executing DialPadController.');
eventQueue.process();

View File

@ -4,9 +4,11 @@
angular
.module('vertoControllers')
.controller('MainController',
function($scope, $rootScope, $location, $modal, $timeout, $q, verto, storage, CallHistory, toastr, Fullscreen, prompt, eventQueue, $translate) {
function($scope, $rootScope, $location, $modal, $timeout, $q, verto, storage, CallHistory, toastr, Fullscreen, prompt, eventQueue, $translate, $window) {
console.debug('Executing MainController.');
$rootScope.dtmfHistory = { value: '' };
$rootScope.onKeydownDtmfEnabled = true;
if (storage.data.language && storage.data.language !== 'browser') {
$translate.use(storage.data.language);
@ -77,6 +79,8 @@
$scope.$apply(function() {
verto.data.connecting = false;
if (connected) {
storage.data.hostname = verto.data.hostname;
storage.data.wsURL = verto.data.wsURL;
storage.data.ui_connected = verto.data.connected;
storage.data.ws_connected = verto.data.connected;
storage.data.name = verto.data.name;
@ -198,10 +202,10 @@
$rootScope.$on('ws.close', onWSClose);
$rootScope.$on('ws.login', onWSLogin);
var ws_modalInstance;
$rootScope.ws_modalInstance;
function onWSClose(ev, data) {
if(ws_modalInstance) {
if($rootScope.ws_modalInstance) {
return;
};
var options = {
@ -209,7 +213,7 @@
keyboard: false
};
if ($scope.showReconnectModal) {
ws_modalInstance = $scope.openModal('partials/ws_reconnect.html', 'ModalWsReconnectController', options);
$rootScope.ws_modalInstance = $scope.openModal('partials/ws_reconnect.html', 'ModalWsReconnectController', options);
};
};
@ -217,12 +221,12 @@
if(storage.data.autoBand) {
verto.testSpeed();
}
if(!ws_modalInstance) {
if(!$rootScope.ws_modalInstance) {
return;
};
ws_modalInstance.close();
ws_modalInstance = null;
$rootScope.ws_modalInstance.close();
$rootScope.ws_modalInstance = null;
};
$scope.showAbout = function() {
@ -239,7 +243,8 @@
* @param {String} number - New touched number.
*/
$rootScope.dtmf = function(number) {
$rootScope.dialpadNumber = $scope.dialpadNumber + number;
console.log('dtmf', number);
$rootScope.dialpadNumber = $rootScope.dialpadNumber + number;
if (verto.data.call) {
verto.dtmf(number);
}
@ -555,6 +560,38 @@
}
}
$rootScope.dtmfWidget = function(number) {
$rootScope.dtmfHistory.value = $rootScope.dtmfHistory.value + number;
if (verto.data.call) {
verto.dtmf(number);
}
}
$rootScope.disableOnKeydownDtmf = function() {
$rootScope.onKeydownDtmfEnabled = false;
};
$rootScope.enableOnKeydownDtmf = function() {
$rootScope.onKeydownDtmfEnabled = true;
};
$rootScope.$on("$routeChangeStart", function(event, next, current) {
if (next.$$route.originalPath === '/incall') {
$rootScope.dtmfHistory.value = '';
angular.element($window).bind('keydown', onKeydownDtmfHistory);
} else {
angular.element($window).unbind('keydown', onKeydownDtmfHistory);
}
});
function onKeydownDtmfHistory(event) {
var caracter = event.key;
if ($rootScope.onKeydownDtmfEnabled && caracter.match(/^(\*|\#|[0-9a-dA-D])$/g)) {
$rootScope.dtmfWidget(caracter);
$scope.$applyAsync();
}
}
}
);

View File

@ -19,7 +19,10 @@
$modalInstance.dismiss('cancel');
};
verto.data.name = storage.data.name;
verto.data.email = storage.data.email;
}
]);
})();
})();

View File

@ -5,10 +5,20 @@
.module('vertoControllers')
.controller('ModalWsReconnectController', ModalWsReconnectController);
ModalWsReconnectController.$inject = ['$scope', 'storage', 'verto'];
ModalWsReconnectController.$inject = ['$rootScope', '$scope', 'storage', 'verto'];
function ModalWsReconnectController($scope, storage, verto) {
function ModalWsReconnectController($rootScope, $scope, storage, verto) {
console.debug('Executing ModalWsReconnectController');
$scope.closeReconnect = closeReconnect;
function closeReconnect() {
if ($rootScope.ws_modalInstance && verto.data.instance) {
verto.data.instance.rpcClient.stopRetrying();
$rootScope.ws_modalInstance.close();
delete verto.data.instance;
}
};
};

View File

@ -11,7 +11,10 @@
$scope.storage = storage;
console.debug('Executing PreviewController.');
var localVideo = document.getElementById('videopreview');
var volumes = document.querySelector('#mic-meter .volumes').children;
var volumes = document.querySelector('#mic-meter .volumes');
if (volumes) {
volumes = volumes.children;
}
$scope.localVideo = function() {
var constraints = {
@ -31,10 +34,13 @@
});
};
var audioContext = null;
if (typeof AudioContext !== "undefined") {
audioContext = new AudioContext();
}
var audioContext = new AudioContext();
var mediaStreamSource = null;
var meter;
var meter = null;
var streamObj = {};
function stopMedia(stream) {
@ -55,13 +61,12 @@
}
streamObj = stream;
localVideo.src = window.URL.createObjectURL(stream);
mediaStreamSource = audioContext.createMediaStreamSource(stream);
meter = createAudioMeter(audioContext);
mediaStreamSource.connect(meter);
renderMic();
FSRTCattachMediaStream(localVideo, stream);
if (audioContext) {
mediaStreamSource = audioContext.createMediaStreamSource(stream);
meter = createAudioMeter(audioContext);
mediaStreamSource.connect(meter);
};
}
function renderMic() {
@ -109,8 +114,10 @@
$scope.endPreview = function() {
localVideo.src = null;
meter.shutdown();
meter.onaudioprocess = null;
if (audioContext) {
meter.shutdown();
meter.onaudioprocess = null;
};
stopMedia(streamObj);
$location.path('/dialpad');
storage.data.preview = false;

View File

@ -33,6 +33,15 @@
});
$scope.ok = function() {
console.log('Camera Selected is', $scope.mydata.selectedVideo, $scope.verto.data.videoDevices);
angular.forEach(verto.data.videoDevices, function(video) {
console.log('checking video ', video);
if (video.id == $scope.mydata.selectedVideo) {
$scope.mydata.selectedVideoName = video.label;
console.log('Setting selectedVideoName to ', video.label);
}
})
if ($scope.mydata.selectedSpeaker != storage.data.selectedSpeaker) {
$rootScope.$emit('changedSpeaker', $scope.mydata.selectedSpeaker);
}
@ -75,11 +84,13 @@
};
$scope.testSpeed = function() {
$scope.isTestingSpeed = true;
return verto.testSpeed(cb);
function cb(data) {
$scope.mydata.vidQual = storage.data.vidQual;
$scope.speedMsg = 'Up: ' + data.upKPS + ' Down: ' + data.downKPS;
$scope.isTestingSpeed = false;
$scope.$apply();
}
};

View File

@ -74,7 +74,7 @@
$rootScope.$on('progress.complete', function(ev, current_progress) {
$scope.message = 'Complete';
if(verto.data.connected) {
if (storage.data.preview) {
if (0 && storage.data.preview) {
$location.path('/preview');
}
else {

View File

@ -13,17 +13,35 @@
.module('vertoDirectives')
.directive('videoTag',
function() {
function link(scope, element, attrs) {
// Moving the video tag to the new place inside the incall page.
console.log('Moving the video to element.');
jQuery('video').removeClass('hide').appendTo(element);
jQuery('video').css('display', 'block');
var videoElem = jQuery('#webcam');
var newParent = document.getElementsByClassName('video-tag-wrapper');
newParent[0].appendChild(document.getElementById('webcam'));
$("#webcam").resize(function() {
updateVideoSize();
});
$(window).resize(function() {
updateVideoSize();
});
updateVideoSize();
videoElem.removeClass('hide');
videoElem.css('display', 'block');
scope.callActive("", {useVideo: true});
element.on('$destroy', function() {
// Move the video back to the body.
console.log('Moving the video back to body.');
jQuery('video').addClass('hide').appendTo(jQuery('body'));
videoElem.addClass('hide').appendTo(jQuery('body'));
$(window).unbind('resize');
});
}

View File

@ -113,6 +113,35 @@ var framerate = [{
label: '30 FPS'
}, ];
var updateReq;
var updateVideoSize = function(ms) {
if (!ms) ms = 500;
clearTimeout(updateReq);
updateReq = setTimeout(function () {
var videoElem = jQuery('#webcam');
videoElem.width("");
videoElem.height("");
var w = videoElem.width();
var h = videoElem.height();
var new_w, new_h;
var aspect = 1920 / 1080;
var videoContainer = jQuery('div.video-wrapper');
if (w > h) {
new_w = videoContainer.width();
new_h = Math.round(videoContainer.width() / aspect);
} else {
new_h = videoContainer.height();
new_w = Math.round(videoContainer.height() / aspect);
}
videoElem.width(new_w);
videoElem.height(new_h);
console.log('Setting video size to ' + new_w + '/' + new_h);
}, ms);
}
var vertoService = angular.module('vertoService', ['ngCookies']);
vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'storage',
@ -234,7 +263,10 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora
id: 'screen',
label: 'Screen'
}];
data.audioDevices = [];
data.audioDevices = [{
id: 'none',
label: 'No Microphone'
}];
data.speakerDevices = [];
if(!storage.data.selectedShare) {
@ -317,7 +349,13 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora
// Verify if selected devices are valid
var videoFlag = data.videoDevices.some(function(device) {
return device.id == storage.data.selectedVideo;
console.log('Evaluating device ', device);
if (device.label == storage.data.selectedVideoName) {
console.log('Matched video selection by name: ', device.label);
storage.data.selectedVideo = device.id;
return true;
}
return device.id == storage.data.selectedVideo && storage.data.selectedVideo !== "none";
});
var shareFlag = data.shareDevices.some(function(device) {
@ -332,7 +370,10 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora
return device.id == storage.data.selectedSpeaker;
});
if (!videoFlag) storage.data.selectedVideo = data.videoDevices[0].id;
console.log('Storage Video: ', storage.data.selectedVideo);
console.log('Video Flag: ', videoFlag)
if (!videoFlag) storage.data.selectedVideo = data.videoDevices[data.videoDevices.length - 1].id;
if (!shareFlag) storage.data.selectedShare = data.shareDevices[0].id;
if (!audioFlag) storage.data.selectedAudio = data.audioDevices[0].id;
if (!speakerFlag && data.speakerDevices.length > 0) storage.data.selectedSpeaker = data.speakerDevices[0].id;
@ -484,7 +525,6 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora
data.liveArray.onChange = function(obj, args) {
// console.log('liveArray.onChange', obj, args);
switch (args.action) {
case 'bootObj':
$rootScope.$emit('members.boot', args.data);
@ -560,6 +600,7 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora
console.log("conference-liveArray-join");
stopConference();
startConference(v, dialog, params.pvtData);
updateVideoSize();
}
break;
case "conference-liveArray-part":
@ -578,6 +619,10 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora
case $.verto.enum.message.info:
var body = params.body;
var from = params.from_msg_name || params.from;
if (!body) {
console.log('Received an empty body: ', params);
return;
}
$rootScope.$emit('chat.newMessage', {
from: from,
body: body
@ -616,6 +661,7 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora
console.debug('Talking to:', d.cidString());
data.callState = 'active';
callActive(d.lastState.name, d.params);
updateVideoSize();
break;
case "hangup":
console.debug('Call ended with cause: ' + d.cause);
@ -659,7 +705,7 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora
// Checking if we have a failed connection attempt before
// connecting again.
if (data.instance && !data.instance.rpcClient.socketReady()) {
clearTimeout(data.instance.rpcClient.to);
data.instance.rpcClient.stopRetrying();
data.instance.logout();
data.instance.login();
return;
@ -672,9 +718,11 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora
ringFile: "sounds/bell_ring2.wav",
// TODO: Add options for this.
audioParams: {
googEchoCancellation: storage.data.googEchoCancellation || true,
googNoiseSuppression: storage.data.googNoiseSuppression || true,
googHighpassFilter: storage.data.googHighpassFilter || true
googEchoCancellation: storage.data.googEchoCancellation === undefined ? true : storage.data.googEchoCancellation,
googNoiseSuppression: storage.data.googNoiseSuppression === undefined ? true : storage.data.googNoiseSuppression,
googHighpassFilter: storage.data.googHighpassFilter === undefined ? true : storage.data.googHighpassFilter,
googAutoGainControl: storage.data.googAutoGainControl === undefined ? true : storage.data.googAutoGainControl,
googAutoGainControl2: storage.data.googAutoGainControl === undefined ? true : storage.data.googAutoGainControl
},
sessid: sessid,
iceServers: storage.data.useSTUN
@ -695,7 +743,6 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora
onResCheck: that.refreshVideoResolution
});
}
if (data.mediaPerm) {
ourBootstrap();
} else {
@ -775,33 +822,85 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora
data.mutedMic = false;
data.mutedVideo = false;
this.refreshDevices();
if (angular.isFunction(callback)) {
callback(data.instance, call);
}
},
screenshare: function(destination, callback) {
console.log('share screen video');
var that = this;
var that = this;
if (storage.data.selectedShare !== "screen") {
getScreenId(function(error, sourceId, screen_constraints) {
console.log('share screen from device ' + storage.data.selectedShare);
var call = data.instance.newCall({
destination_number: destination + "-screen",
caller_id_name: data.name + " (Screen)",
caller_id_number: data.login + " (screen)",
outgoingBandwidth: storage.data.outgoingBandwidth,
incomingBandwidth: storage.data.incomingBandwidth,
useCamera: storage.data.selectedShare,
useVideo: true,
screenShare: true,
dedEnc: storage.data.useDedenc,
mirrorInput: storage.data.mirrorInput,
userVariables: {
email : storage.data.email,
avatar: "http://gravatar.com/avatar/" + md5(storage.data.email) + ".png?s=600"
}
});
// Override onStream callback in $.FSRTC instance
call.rtc.options.callbacks.onStream = function(rtc, stream) {
if(stream) {
var StreamTrack = stream.getVideoTracks()[0];
StreamTrack.addEventListener('ended', stopSharing);
// (stream.getVideoTracks()[0]).onended = stopSharing;
}
console.log("screenshare started");
function stopSharing() {
if(that.data.shareCall) {
that.screenshareHangup();
console.log("screenshare ended");
}
}
};
data.shareCall = call;
console.log('shareCall', data);
data.mutedMic = false;
data.mutedVideo = false;
that.refreshDevices();
return;
}
console.log('share screen from plugin ' + storage.data.selectedShare);
var screenfunc = function(error, sourceId, screen_constraints) {
if(error) {
$rootScope.$emit('ScreenShareExtensionStatus', error);
return;
}
var call = data.instance.newCall({
var share_call = data.instance.newCall({
destination_number: destination + '-screen',
caller_id_name: data.name + ' (Screen)',
caller_id_number: data.login + ' (Screen)',
outgoingBandwidth: storage.data.outgoingBandwidth,
incomingBandwidth: storage.data.incomingBandwidth,
videoParams: screen_constraints.video.mandatory,
useVideo: storage.data.useVideo,
videoParams: screen_constraints ? screen_constraints.video.mandatory : {},
useVideo: true,
screenShare: true,
dedEnc: storage.data.useDedenc,
mirrorInput: storage.data.mirrorInput,
@ -812,7 +911,7 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora
});
// Override onStream callback in $.FSRTC instance
call.rtc.options.callbacks.onStream = function(rtc, stream) {
share_call.rtc.options.callbacks.onStream = function(rtc, stream) {
if(stream) {
var StreamTrack = stream.getVideoTracks()[0];
StreamTrack.addEventListener('ended', stopSharing);
@ -829,16 +928,19 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora
}
};
data.shareCall = call;
data.shareCall = share_call;
console.log('shareCall', data);
data.mutedMic = false;
data.mutedVideo = false;
};
that.refreshDevices();
});
if (!!navigator.mozGetUserMedia) {
screenfunc();
} else {
getScreenId(screenfunc);
}
},

File diff suppressed because one or more lines are too long

View File

@ -101,14 +101,14 @@ function full_screen(name) {
}
$("#" + video_screen).resize(function(e) {
console.log("video size changed to " + $("#" + video_screen).width() + "x" + $("#" + video_screen).height());
//console.log("video size changed to " + $("#" + video_screen).width() + "x" + $("#" + video_screen).height());
if ($("#" + video_screen).width() > $(window).width()) {
//if ($("#" + video_screen).width() > $(window).width()) {
//resize(false);
$("#" + video_screen).width("100%");
$("#" + video_screen).height("100%");
}
//$("#" + video_screen).width("100%");
//$("#" + video_screen).height("100%");
//}
real_size();
});
@ -128,13 +128,41 @@ function resize(up) {
}
$( window ).resize(function() {
real_size();
});
function real_size() {
$("#" + video_screen).width("");
$("#" + video_screen).height("");
/* temasys hack */
setTimeout(function() {
$("#" + video_screen).width("");
$("#" + video_screen).height("");
var w = $("#" + video_screen).width();
var h = $("#" + video_screen).height();
var new_w;
var new_h;
var aspect = 1920 / 1080; /*temasys doesn't provide video width hack aspect to wide screen*/
if (w > h) {
new_w = window.innerWidth;
new_h = Math.round(window.innerWidth / aspect);
} else {
new_h = window.innerHeight;
new_w = Math.round(window.innerHeight / aspect);
}
$("#" + video_screen).width(new_w);
$("#" + video_screen).height(new_h);
}, 500);
console.log("video size changed to fit screen");
console.log("video size changed to natural default");
}
@ -202,8 +230,19 @@ function check_vid() {
return use_vid;
}
var DISABLE_SPEED_TEST = true;
function do_speed_test(fn)
{
if (DISABLE_SPEED_TEST) {
if (fn) {
fn();
}
return;
}
goto_page("bwtest");
vertoHandle.rpcClient.speedTest(1024 * 256, function(e, obj) {
@ -486,6 +525,7 @@ var callbacks = {
check_vid_res();
$("#ansbtn").click(function() {
console.error("WTF", cur_call, d);
cur_call.answer({
useStereo: $("#use_stereo").is(':checked'),
callee_id_name: $("#cidname").val(),
@ -548,7 +588,7 @@ var callbacks = {
}
goto_page("incall");
real_size();
break;
case $.verto.enum.state.hangup:
$("#main_info").html("Call ended with cause: " + d.cause);
@ -868,7 +908,7 @@ function doshare(on) {
console.log("Attempting Screen Capture....");
getScreenId(function (error, sourceId, screen_constraints) {
var sharefunc = function(error, sourceId, screen_constraints) {
@ -878,15 +918,22 @@ function doshare(on) {
caller_id_number: $("#cid").val() + " (screen)",
outgoingBandwidth: outgoingBandwidth,
incomingBandwidth: incomingBandwidth,
videoParams: screen_constraints.video.mandatory,
videoParams: screen_constraints ? screen_constraints.video.mandatory : {},
useVideo: true,
screenShare: true,
dedEnc: $("#use_dedenc").is(':checked'),
mirrorInput: $("#mirror_input").is(':checked')
});
});
};
if (!!navigator.mozGetUserMedia) {
sharefunc();
} else {
getScreenId(sharefunc);
}
//$("#main_info").html("Trying");
@ -963,6 +1010,8 @@ function pop_select(id, cname, dft, onchange) {
function refresh_devices()
{
$.verto.refreshDevices();
$("#useshare").selectmenu({});
$("#useshare").selectmenu({});
$("#usemic").selectmenu({});
@ -1051,6 +1100,13 @@ function refresh_devices()
pop_select("#usecamera","verto_demo_camera_selected", tmp);
}
var tmp;
tmp = $.cookie("verto_demo_share_selected") || "false";
if (tmp) {
$('#useshare option[value=' + tmp + ']').prop('selected', 'selected').change();
pop_select("#useshare","verto_demo_share_selected", tmp);
}
tmp = $.cookie("verto_demo_mic_selected") || "false";
if (tmp) {
$('#usemic option[value=' + tmp + ']').prop('selected', 'selected').change();

3
libs/esl/.gitignore vendored
View File

@ -10,3 +10,6 @@ Makefile.in
!python/Makefile
!ruby/Makefile
!tcl/Makefile
java/classes/org/
java/esl.jar

View File

@ -76,7 +76,7 @@ static int is_color = 1;
static int warn_stop = 0;
static int connected = 0;
static int allow_ctl_c = 0;
static char bare_prompt_str[512] = "";
static char bare_prompt_str[514] = "";
static int bare_prompt_str_len = 0;
static char prompt_str[512] = "";
static char prompt_color[12] = {ESL_SEQ_DEFAULT_COLOR};

View File

@ -5,7 +5,7 @@ CLASSES=org/freeswitch/esl/*
all: esl.jar
esl_wrap.cpp:
swig2.0 -module esl -java -c++ $(LOCAL_CFLAGS) -package org.freeswitch.esl -outdir org/freeswitch/esl -o esl_wrap.cpp ../ESL.i
swig3.0 -module esl -java -c++ $(LOCAL_CFLAGS) -package org.freeswitch.esl -outdir org/freeswitch/esl -o esl_wrap.cpp ../ESL.i
esl_wrap.o: esl_wrap.cpp
$(CXX) $(CXX_CFLAGS) $(LOCAL_CFLAGS) $(CXXFLAGS) $(GCC_WARNING_JUNK) $(PERL_INC) -c esl_wrap.cpp -o esl_wrap.o

View File

@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* This file is not intended to be easily readable and contains a number of
* coding conventions designed to improve portability and efficiency. Do not make

View File

@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.

View File

@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.

View File

@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.

View File

@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.

View File

@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.

View File

@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.

View File

@ -5,7 +5,7 @@ WRAP_GCC_WARNING_SILENCE=-Wno-unused-function
all: ESL.so
esl_wrap.cpp:
swig2.0 -module ESL -lua -c++ -DMULTIPLICITY -I../src/include -o esl_wrap.cpp ../ESL.i
swig3.0 -module ESL -lua -c++ -DMULTIPLICITY -I../src/include -o esl_wrap.cpp ../ESL.i
esl_wrap.o: esl_wrap.cpp
$(CXX) $(CXX_CFLAGS) $(LUA_CFLAGS) $(CXXFLAGS) $(LOCAL_CFLAGS) $(WRAP_GCC_WARNING_SILENCE) -c esl_wrap.cpp -o esl_wrap.o

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +1,12 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
* ----------------------------------------------------------------------------- */
using System;
using System.Runtime.InteropServices;
public class ESL {
public static void eslSetLogLevel(int level) {
ESLPINVOKE.eslSetLogLevel(level);

View File

@ -1,15 +1,12 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
* ----------------------------------------------------------------------------- */
using System;
using System.Runtime.InteropServices;
class ESLPINVOKE {
protected class SWIGExceptionHelper {
@ -33,7 +30,7 @@ class ESLPINVOKE {
static ExceptionArgumentDelegate argumentNullDelegate = new ExceptionArgumentDelegate(SetPendingArgumentNullException);
static ExceptionArgumentDelegate argumentOutOfRangeDelegate = new ExceptionArgumentDelegate(SetPendingArgumentOutOfRangeException);
[DllImport("ESL", EntryPoint="SWIGRegisterExceptionCallbacks_ESL")]
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="SWIGRegisterExceptionCallbacks_ESL")]
public static extern void SWIGRegisterExceptionCallbacks_ESL(
ExceptionDelegate applicationDelegate,
ExceptionDelegate arithmeticDelegate,
@ -47,58 +44,58 @@ class ESLPINVOKE {
ExceptionDelegate overflowDelegate,
ExceptionDelegate systemExceptionDelegate);
[DllImport("ESL", EntryPoint="SWIGRegisterExceptionArgumentCallbacks_ESL")]
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="SWIGRegisterExceptionArgumentCallbacks_ESL")]
public static extern void SWIGRegisterExceptionCallbacksArgument_ESL(
ExceptionArgumentDelegate argumentDelegate,
ExceptionArgumentDelegate argumentNullDelegate,
ExceptionArgumentDelegate argumentOutOfRangeDelegate);
static void SetPendingApplicationException(string message) {
SWIGPendingException.Set(new System.ApplicationException(message, SWIGPendingException.Retrieve()));
SWIGPendingException.Set(new global::System.ApplicationException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingArithmeticException(string message) {
SWIGPendingException.Set(new System.ArithmeticException(message, SWIGPendingException.Retrieve()));
SWIGPendingException.Set(new global::System.ArithmeticException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingDivideByZeroException(string message) {
SWIGPendingException.Set(new System.DivideByZeroException(message, SWIGPendingException.Retrieve()));
SWIGPendingException.Set(new global::System.DivideByZeroException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingIndexOutOfRangeException(string message) {
SWIGPendingException.Set(new System.IndexOutOfRangeException(message, SWIGPendingException.Retrieve()));
SWIGPendingException.Set(new global::System.IndexOutOfRangeException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingInvalidCastException(string message) {
SWIGPendingException.Set(new System.InvalidCastException(message, SWIGPendingException.Retrieve()));
SWIGPendingException.Set(new global::System.InvalidCastException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingInvalidOperationException(string message) {
SWIGPendingException.Set(new System.InvalidOperationException(message, SWIGPendingException.Retrieve()));
SWIGPendingException.Set(new global::System.InvalidOperationException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingIOException(string message) {
SWIGPendingException.Set(new System.IO.IOException(message, SWIGPendingException.Retrieve()));
SWIGPendingException.Set(new global::System.IO.IOException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingNullReferenceException(string message) {
SWIGPendingException.Set(new System.NullReferenceException(message, SWIGPendingException.Retrieve()));
SWIGPendingException.Set(new global::System.NullReferenceException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingOutOfMemoryException(string message) {
SWIGPendingException.Set(new System.OutOfMemoryException(message, SWIGPendingException.Retrieve()));
SWIGPendingException.Set(new global::System.OutOfMemoryException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingOverflowException(string message) {
SWIGPendingException.Set(new System.OverflowException(message, SWIGPendingException.Retrieve()));
SWIGPendingException.Set(new global::System.OverflowException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingSystemException(string message) {
SWIGPendingException.Set(new System.SystemException(message, SWIGPendingException.Retrieve()));
SWIGPendingException.Set(new global::System.SystemException(message, SWIGPendingException.Retrieve()));
}
static void SetPendingArgumentException(string message, string paramName) {
SWIGPendingException.Set(new System.ArgumentException(message, paramName, SWIGPendingException.Retrieve()));
SWIGPendingException.Set(new global::System.ArgumentException(message, paramName, SWIGPendingException.Retrieve()));
}
static void SetPendingArgumentNullException(string message, string paramName) {
Exception e = SWIGPendingException.Retrieve();
global::System.Exception e = SWIGPendingException.Retrieve();
if (e != null) message = message + " Inner Exception: " + e.Message;
SWIGPendingException.Set(new System.ArgumentNullException(paramName, message));
SWIGPendingException.Set(new global::System.ArgumentNullException(paramName, message));
}
static void SetPendingArgumentOutOfRangeException(string message, string paramName) {
Exception e = SWIGPendingException.Retrieve();
global::System.Exception e = SWIGPendingException.Retrieve();
if (e != null) message = message + " Inner Exception: " + e.Message;
SWIGPendingException.Set(new System.ArgumentOutOfRangeException(paramName, message));
SWIGPendingException.Set(new global::System.ArgumentOutOfRangeException(paramName, message));
}
static SWIGExceptionHelper() {
@ -125,8 +122,8 @@ class ESLPINVOKE {
protected static SWIGExceptionHelper swigExceptionHelper = new SWIGExceptionHelper();
public class SWIGPendingException {
[ThreadStatic]
private static Exception pendingException = null;
[global::System.ThreadStatic]
private static global::System.Exception pendingException = null;
private static int numExceptionsPending = 0;
public static bool Pending {
@ -139,17 +136,17 @@ class ESLPINVOKE {
}
}
public static void Set(Exception e) {
public static void Set(global::System.Exception e) {
if (pendingException != null)
throw new ApplicationException("FATAL: An earlier pending exception from unmanaged code was missed and thus not thrown (" + pendingException.ToString() + ")", e);
throw new global::System.ApplicationException("FATAL: An earlier pending exception from unmanaged code was missed and thus not thrown (" + pendingException.ToString() + ")", e);
pendingException = e;
lock(typeof(ESLPINVOKE)) {
numExceptionsPending++;
}
}
public static Exception Retrieve() {
Exception e = null;
public static global::System.Exception Retrieve() {
global::System.Exception e = null;
if (numExceptionsPending > 0) {
if (pendingException != null) {
e = pendingException;
@ -169,7 +166,7 @@ class ESLPINVOKE {
public delegate string SWIGStringDelegate(string message);
static SWIGStringDelegate stringDelegate = new SWIGStringDelegate(CreateString);
[DllImport("ESL", EntryPoint="SWIGRegisterStringCallback_ESL")]
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="SWIGRegisterStringCallback_ESL")]
public static extern void SWIGRegisterStringCallback_ESL(SWIGStringDelegate stringDelegate);
static string CreateString(string cString) {
@ -188,144 +185,144 @@ class ESLPINVOKE {
}
[DllImport("ESL", EntryPoint="CSharp_ESLevent_Event_set")]
public static extern void ESLevent_Event_set(HandleRef jarg1, HandleRef jarg2);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLevent_Event_set")]
public static extern void ESLevent_Event_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_Event_get")]
public static extern IntPtr ESLevent_Event_get(HandleRef jarg1);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLevent_Event_get")]
public static extern global::System.IntPtr ESLevent_Event_get(global::System.Runtime.InteropServices.HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_SerializedString_set")]
public static extern void ESLevent_SerializedString_set(HandleRef jarg1, string jarg2);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLevent_SerializedString_set")]
public static extern void ESLevent_SerializedString_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_SerializedString_get")]
public static extern string ESLevent_SerializedString_get(HandleRef jarg1);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLevent_SerializedString_get")]
public static extern string ESLevent_SerializedString_get(global::System.Runtime.InteropServices.HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_Mine_set")]
public static extern void ESLevent_Mine_set(HandleRef jarg1, int jarg2);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLevent_Mine_set")]
public static extern void ESLevent_Mine_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_Mine_get")]
public static extern int ESLevent_Mine_get(HandleRef jarg1);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLevent_Mine_get")]
public static extern int ESLevent_Mine_get(global::System.Runtime.InteropServices.HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_new_ESLevent__SWIG_0")]
public static extern IntPtr new_ESLevent__SWIG_0(string jarg1, string jarg2);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_new_ESLevent__SWIG_0")]
public static extern global::System.IntPtr new_ESLevent__SWIG_0(string jarg1, string jarg2);
[DllImport("ESL", EntryPoint="CSharp_new_ESLevent__SWIG_1")]
public static extern IntPtr new_ESLevent__SWIG_1(HandleRef jarg1, int jarg2);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_new_ESLevent__SWIG_1")]
public static extern global::System.IntPtr new_ESLevent__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);
[DllImport("ESL", EntryPoint="CSharp_new_ESLevent__SWIG_2")]
public static extern IntPtr new_ESLevent__SWIG_2(HandleRef jarg1);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_new_ESLevent__SWIG_2")]
public static extern global::System.IntPtr new_ESLevent__SWIG_2(global::System.Runtime.InteropServices.HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_delete_ESLevent")]
public static extern void delete_ESLevent(HandleRef jarg1);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_delete_ESLevent")]
public static extern void delete_ESLevent(global::System.Runtime.InteropServices.HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_Serialize")]
public static extern string ESLevent_Serialize(HandleRef jarg1, string jarg2);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLevent_Serialize")]
public static extern string ESLevent_Serialize(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_SetPriority")]
public static extern bool ESLevent_SetPriority(HandleRef jarg1, HandleRef jarg2);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLevent_SetPriority")]
public static extern bool ESLevent_SetPriority(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_GetHeader")]
public static extern string ESLevent_GetHeader(HandleRef jarg1, string jarg2, int jarg3);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLevent_GetHeader")]
public static extern string ESLevent_GetHeader(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, int jarg3);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_GetBody")]
public static extern string ESLevent_GetBody(HandleRef jarg1);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLevent_GetBody")]
public static extern string ESLevent_GetBody(global::System.Runtime.InteropServices.HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_getType")]
public static extern string ESLevent_getType(HandleRef jarg1);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLevent_getType")]
public static extern string ESLevent_getType(global::System.Runtime.InteropServices.HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_AddBody")]
public static extern bool ESLevent_AddBody(HandleRef jarg1, string jarg2);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLevent_AddBody")]
public static extern bool ESLevent_AddBody(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_AddHeader")]
public static extern bool ESLevent_AddHeader(HandleRef jarg1, string jarg2, string jarg3);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLevent_AddHeader")]
public static extern bool ESLevent_AddHeader(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_pushHeader")]
public static extern bool ESLevent_pushHeader(HandleRef jarg1, string jarg2, string jarg3);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLevent_pushHeader")]
public static extern bool ESLevent_pushHeader(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_unshiftHeader")]
public static extern bool ESLevent_unshiftHeader(HandleRef jarg1, string jarg2, string jarg3);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLevent_unshiftHeader")]
public static extern bool ESLevent_unshiftHeader(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_DelHeader")]
public static extern bool ESLevent_DelHeader(HandleRef jarg1, string jarg2);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLevent_DelHeader")]
public static extern bool ESLevent_DelHeader(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_FirstHeader")]
public static extern string ESLevent_FirstHeader(HandleRef jarg1);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLevent_FirstHeader")]
public static extern string ESLevent_FirstHeader(global::System.Runtime.InteropServices.HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLevent_NextHeader")]
public static extern string ESLevent_NextHeader(HandleRef jarg1);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLevent_NextHeader")]
public static extern string ESLevent_NextHeader(global::System.Runtime.InteropServices.HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_new_ESLconnection__SWIG_0")]
public static extern IntPtr new_ESLconnection__SWIG_0(string jarg1, int jarg2, string jarg3, string jarg4);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_new_ESLconnection__SWIG_0")]
public static extern global::System.IntPtr new_ESLconnection__SWIG_0(string jarg1, int jarg2, string jarg3, string jarg4);
[DllImport("ESL", EntryPoint="CSharp_new_ESLconnection__SWIG_1")]
public static extern IntPtr new_ESLconnection__SWIG_1(string jarg1, int jarg2, string jarg3);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_new_ESLconnection__SWIG_1")]
public static extern global::System.IntPtr new_ESLconnection__SWIG_1(string jarg1, int jarg2, string jarg3);
[DllImport("ESL", EntryPoint="CSharp_new_ESLconnection__SWIG_2")]
public static extern IntPtr new_ESLconnection__SWIG_2(string jarg1, string jarg2, string jarg3, string jarg4);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_new_ESLconnection__SWIG_2")]
public static extern global::System.IntPtr new_ESLconnection__SWIG_2(string jarg1, string jarg2, string jarg3, string jarg4);
[DllImport("ESL", EntryPoint="CSharp_new_ESLconnection__SWIG_3")]
public static extern IntPtr new_ESLconnection__SWIG_3(string jarg1, string jarg2, string jarg3);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_new_ESLconnection__SWIG_3")]
public static extern global::System.IntPtr new_ESLconnection__SWIG_3(string jarg1, string jarg2, string jarg3);
[DllImport("ESL", EntryPoint="CSharp_new_ESLconnection__SWIG_4")]
public static extern IntPtr new_ESLconnection__SWIG_4(int jarg1);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_new_ESLconnection__SWIG_4")]
public static extern global::System.IntPtr new_ESLconnection__SWIG_4(int jarg1);
[DllImport("ESL", EntryPoint="CSharp_delete_ESLconnection")]
public static extern void delete_ESLconnection(HandleRef jarg1);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_delete_ESLconnection")]
public static extern void delete_ESLconnection(global::System.Runtime.InteropServices.HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_SocketDescriptor")]
public static extern int ESLconnection_SocketDescriptor(HandleRef jarg1);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLconnection_SocketDescriptor")]
public static extern int ESLconnection_SocketDescriptor(global::System.Runtime.InteropServices.HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_Connected")]
public static extern int ESLconnection_Connected(HandleRef jarg1);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLconnection_Connected")]
public static extern int ESLconnection_Connected(global::System.Runtime.InteropServices.HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_GetInfo")]
public static extern IntPtr ESLconnection_GetInfo(HandleRef jarg1);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLconnection_GetInfo")]
public static extern global::System.IntPtr ESLconnection_GetInfo(global::System.Runtime.InteropServices.HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_Send")]
public static extern int ESLconnection_Send(HandleRef jarg1, string jarg2);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLconnection_Send")]
public static extern int ESLconnection_Send(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_SendRecv")]
public static extern IntPtr ESLconnection_SendRecv(HandleRef jarg1, string jarg2);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLconnection_SendRecv")]
public static extern global::System.IntPtr ESLconnection_SendRecv(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_Api")]
public static extern IntPtr ESLconnection_Api(HandleRef jarg1, string jarg2, string jarg3);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLconnection_Api")]
public static extern global::System.IntPtr ESLconnection_Api(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_Bgapi")]
public static extern IntPtr ESLconnection_Bgapi(HandleRef jarg1, string jarg2, string jarg3, string jarg4);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLconnection_Bgapi")]
public static extern global::System.IntPtr ESLconnection_Bgapi(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, string jarg4);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_SendEvent")]
public static extern IntPtr ESLconnection_SendEvent(HandleRef jarg1, HandleRef jarg2);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLconnection_SendEvent")]
public static extern global::System.IntPtr ESLconnection_SendEvent(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_sendMSG")]
public static extern int ESLconnection_sendMSG(HandleRef jarg1, HandleRef jarg2, string jarg3);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLconnection_sendMSG")]
public static extern int ESLconnection_sendMSG(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_RecvEvent")]
public static extern IntPtr ESLconnection_RecvEvent(HandleRef jarg1);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLconnection_RecvEvent")]
public static extern global::System.IntPtr ESLconnection_RecvEvent(global::System.Runtime.InteropServices.HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_RecvEventTimed")]
public static extern IntPtr ESLconnection_RecvEventTimed(HandleRef jarg1, int jarg2);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLconnection_RecvEventTimed")]
public static extern global::System.IntPtr ESLconnection_RecvEventTimed(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_Filter")]
public static extern IntPtr ESLconnection_Filter(HandleRef jarg1, string jarg2, string jarg3);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLconnection_Filter")]
public static extern global::System.IntPtr ESLconnection_Filter(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_Events")]
public static extern int ESLconnection_Events(HandleRef jarg1, string jarg2, string jarg3);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLconnection_Events")]
public static extern int ESLconnection_Events(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_Execute")]
public static extern IntPtr ESLconnection_Execute(HandleRef jarg1, string jarg2, string jarg3, string jarg4);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLconnection_Execute")]
public static extern global::System.IntPtr ESLconnection_Execute(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, string jarg4);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_ExecuteAsync")]
public static extern IntPtr ESLconnection_ExecuteAsync(HandleRef jarg1, string jarg2, string jarg3, string jarg4);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLconnection_ExecuteAsync")]
public static extern global::System.IntPtr ESLconnection_ExecuteAsync(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, string jarg4);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_SetAsyncExecute")]
public static extern int ESLconnection_SetAsyncExecute(HandleRef jarg1, string jarg2);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLconnection_SetAsyncExecute")]
public static extern int ESLconnection_SetAsyncExecute(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_SetEventLock")]
public static extern int ESLconnection_SetEventLock(HandleRef jarg1, string jarg2);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLconnection_SetEventLock")]
public static extern int ESLconnection_SetEventLock(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);
[DllImport("ESL", EntryPoint="CSharp_ESLconnection_Disconnect")]
public static extern int ESLconnection_Disconnect(HandleRef jarg1);
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_ESLconnection_Disconnect")]
public static extern int ESLconnection_Disconnect(global::System.Runtime.InteropServices.HandleRef jarg1);
[DllImport("ESL", EntryPoint="CSharp_eslSetLogLevel")]
[global::System.Runtime.InteropServices.DllImport("ESL", EntryPoint="CSharp_eslSetLogLevel")]
public static extern void eslSetLogLevel(int jarg1);
}

View File

@ -1,26 +1,23 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
* ----------------------------------------------------------------------------- */
using System;
using System.Runtime.InteropServices;
public class ESLconnection : IDisposable {
private HandleRef swigCPtr;
public class ESLconnection : global::System.IDisposable {
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
protected bool swigCMemOwn;
internal ESLconnection(IntPtr cPtr, bool cMemoryOwn) {
internal ESLconnection(global::System.IntPtr cPtr, bool cMemoryOwn) {
swigCMemOwn = cMemoryOwn;
swigCPtr = new HandleRef(this, cPtr);
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
}
internal static HandleRef getCPtr(ESLconnection obj) {
return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ESLconnection obj) {
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
}
~ESLconnection() {
@ -29,14 +26,14 @@ public class ESLconnection : IDisposable {
public virtual void Dispose() {
lock(this) {
if (swigCPtr.Handle != IntPtr.Zero) {
if (swigCPtr.Handle != global::System.IntPtr.Zero) {
if (swigCMemOwn) {
swigCMemOwn = false;
ESLPINVOKE.delete_ESLconnection(swigCPtr);
}
swigCPtr = new HandleRef(null, IntPtr.Zero);
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
}
GC.SuppressFinalize(this);
global::System.GC.SuppressFinalize(this);
}
}
@ -66,8 +63,8 @@ public class ESLconnection : IDisposable {
}
public ESLevent GetInfo() {
IntPtr cPtr = ESLPINVOKE.ESLconnection_GetInfo(swigCPtr);
ESLevent ret = (cPtr == IntPtr.Zero) ? null : new ESLevent(cPtr, true);
global::System.IntPtr cPtr = ESLPINVOKE.ESLconnection_GetInfo(swigCPtr);
ESLevent ret = (cPtr == global::System.IntPtr.Zero) ? null : new ESLevent(cPtr, true);
return ret;
}
@ -77,26 +74,26 @@ public class ESLconnection : IDisposable {
}
public ESLevent SendRecv(string cmd) {
IntPtr cPtr = ESLPINVOKE.ESLconnection_SendRecv(swigCPtr, cmd);
ESLevent ret = (cPtr == IntPtr.Zero) ? null : new ESLevent(cPtr, true);
global::System.IntPtr cPtr = ESLPINVOKE.ESLconnection_SendRecv(swigCPtr, cmd);
ESLevent ret = (cPtr == global::System.IntPtr.Zero) ? null : new ESLevent(cPtr, true);
return ret;
}
public ESLevent Api(string cmd, string arg) {
IntPtr cPtr = ESLPINVOKE.ESLconnection_Api(swigCPtr, cmd, arg);
ESLevent ret = (cPtr == IntPtr.Zero) ? null : new ESLevent(cPtr, true);
global::System.IntPtr cPtr = ESLPINVOKE.ESLconnection_Api(swigCPtr, cmd, arg);
ESLevent ret = (cPtr == global::System.IntPtr.Zero) ? null : new ESLevent(cPtr, true);
return ret;
}
public ESLevent Bgapi(string cmd, string arg, string job_uuid) {
IntPtr cPtr = ESLPINVOKE.ESLconnection_Bgapi(swigCPtr, cmd, arg, job_uuid);
ESLevent ret = (cPtr == IntPtr.Zero) ? null : new ESLevent(cPtr, true);
global::System.IntPtr cPtr = ESLPINVOKE.ESLconnection_Bgapi(swigCPtr, cmd, arg, job_uuid);
ESLevent ret = (cPtr == global::System.IntPtr.Zero) ? null : new ESLevent(cPtr, true);
return ret;
}
public ESLevent SendEvent(ESLevent send_me) {
IntPtr cPtr = ESLPINVOKE.ESLconnection_SendEvent(swigCPtr, ESLevent.getCPtr(send_me));
ESLevent ret = (cPtr == IntPtr.Zero) ? null : new ESLevent(cPtr, true);
global::System.IntPtr cPtr = ESLPINVOKE.ESLconnection_SendEvent(swigCPtr, ESLevent.getCPtr(send_me));
ESLevent ret = (cPtr == global::System.IntPtr.Zero) ? null : new ESLevent(cPtr, true);
return ret;
}
@ -106,20 +103,20 @@ public class ESLconnection : IDisposable {
}
public ESLevent RecvEvent() {
IntPtr cPtr = ESLPINVOKE.ESLconnection_RecvEvent(swigCPtr);
ESLevent ret = (cPtr == IntPtr.Zero) ? null : new ESLevent(cPtr, true);
global::System.IntPtr cPtr = ESLPINVOKE.ESLconnection_RecvEvent(swigCPtr);
ESLevent ret = (cPtr == global::System.IntPtr.Zero) ? null : new ESLevent(cPtr, true);
return ret;
}
public ESLevent RecvEventTimed(int ms) {
IntPtr cPtr = ESLPINVOKE.ESLconnection_RecvEventTimed(swigCPtr, ms);
ESLevent ret = (cPtr == IntPtr.Zero) ? null : new ESLevent(cPtr, true);
global::System.IntPtr cPtr = ESLPINVOKE.ESLconnection_RecvEventTimed(swigCPtr, ms);
ESLevent ret = (cPtr == global::System.IntPtr.Zero) ? null : new ESLevent(cPtr, true);
return ret;
}
public ESLevent Filter(string header, string value) {
IntPtr cPtr = ESLPINVOKE.ESLconnection_Filter(swigCPtr, header, value);
ESLevent ret = (cPtr == IntPtr.Zero) ? null : new ESLevent(cPtr, true);
global::System.IntPtr cPtr = ESLPINVOKE.ESLconnection_Filter(swigCPtr, header, value);
ESLevent ret = (cPtr == global::System.IntPtr.Zero) ? null : new ESLevent(cPtr, true);
return ret;
}
@ -129,14 +126,14 @@ public class ESLconnection : IDisposable {
}
public ESLevent Execute(string app, string arg, string uuid) {
IntPtr cPtr = ESLPINVOKE.ESLconnection_Execute(swigCPtr, app, arg, uuid);
ESLevent ret = (cPtr == IntPtr.Zero) ? null : new ESLevent(cPtr, true);
global::System.IntPtr cPtr = ESLPINVOKE.ESLconnection_Execute(swigCPtr, app, arg, uuid);
ESLevent ret = (cPtr == global::System.IntPtr.Zero) ? null : new ESLevent(cPtr, true);
return ret;
}
public ESLevent ExecuteAsync(string app, string arg, string uuid) {
IntPtr cPtr = ESLPINVOKE.ESLconnection_ExecuteAsync(swigCPtr, app, arg, uuid);
ESLevent ret = (cPtr == IntPtr.Zero) ? null : new ESLevent(cPtr, true);
global::System.IntPtr cPtr = ESLPINVOKE.ESLconnection_ExecuteAsync(swigCPtr, app, arg, uuid);
ESLevent ret = (cPtr == global::System.IntPtr.Zero) ? null : new ESLevent(cPtr, true);
return ret;
}

View File

@ -1,26 +1,23 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
* ----------------------------------------------------------------------------- */
using System;
using System.Runtime.InteropServices;
public class ESLevent : IDisposable {
private HandleRef swigCPtr;
public class ESLevent : global::System.IDisposable {
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
protected bool swigCMemOwn;
internal ESLevent(IntPtr cPtr, bool cMemoryOwn) {
internal ESLevent(global::System.IntPtr cPtr, bool cMemoryOwn) {
swigCMemOwn = cMemoryOwn;
swigCPtr = new HandleRef(this, cPtr);
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
}
internal static HandleRef getCPtr(ESLevent obj) {
return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ESLevent obj) {
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
}
~ESLevent() {
@ -29,14 +26,14 @@ public class ESLevent : IDisposable {
public virtual void Dispose() {
lock(this) {
if (swigCPtr.Handle != IntPtr.Zero) {
if (swigCPtr.Handle != global::System.IntPtr.Zero) {
if (swigCMemOwn) {
swigCMemOwn = false;
ESLPINVOKE.delete_ESLevent(swigCPtr);
}
swigCPtr = new HandleRef(null, IntPtr.Zero);
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
}
GC.SuppressFinalize(this);
global::System.GC.SuppressFinalize(this);
}
}
@ -45,8 +42,8 @@ public class ESLevent : IDisposable {
ESLPINVOKE.ESLevent_Event_set(swigCPtr, SWIGTYPE_p_esl_event_t.getCPtr(value));
}
get {
IntPtr cPtr = ESLPINVOKE.ESLevent_Event_get(swigCPtr);
SWIGTYPE_p_esl_event_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_esl_event_t(cPtr, false);
global::System.IntPtr cPtr = ESLPINVOKE.ESLevent_Event_get(swigCPtr);
SWIGTYPE_p_esl_event_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_esl_event_t(cPtr, false);
return ret;
}
}

View File

@ -5,7 +5,7 @@ WRAP_GCC_WARNING_SILENCE=-Wno-unused-function
all: ESL.so
esl_wrap.cpp:
swig2.0 -module ESL -csharp -c++ -DMULTIPLICITY -I../src/include -o esl_wrap.cpp ../ESL.i
swig3.0 -module ESL -csharp -c++ -DMULTIPLICITY -I../src/include -o esl_wrap.cpp ../ESL.i
esl_wrap.o: esl_wrap.cpp
$(CXX) $(CXX_CFLAGS) $(CXXFLAGS) $(LOCAL_CFLAGS) $(WRAP_GCC_WARNING_SILENCE) -c esl_wrap.cpp -o esl_wrap.o

View File

@ -1,27 +1,24 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
* ----------------------------------------------------------------------------- */
using System;
using System.Runtime.InteropServices;
public class SWIGTYPE_p_esl_event_t {
private HandleRef swigCPtr;
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
internal SWIGTYPE_p_esl_event_t(IntPtr cPtr, bool futureUse) {
swigCPtr = new HandleRef(this, cPtr);
internal SWIGTYPE_p_esl_event_t(global::System.IntPtr cPtr, bool futureUse) {
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
}
protected SWIGTYPE_p_esl_event_t() {
swigCPtr = new HandleRef(null, IntPtr.Zero);
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
}
internal static HandleRef getCPtr(SWIGTYPE_p_esl_event_t obj) {
return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_esl_event_t obj) {
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
}
}

View File

@ -1,27 +1,24 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
* ----------------------------------------------------------------------------- */
using System;
using System.Runtime.InteropServices;
public class SWIGTYPE_p_esl_priority_t {
private HandleRef swigCPtr;
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
internal SWIGTYPE_p_esl_priority_t(IntPtr cPtr, bool futureUse) {
swigCPtr = new HandleRef(this, cPtr);
internal SWIGTYPE_p_esl_priority_t(global::System.IntPtr cPtr, bool futureUse) {
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
}
protected SWIGTYPE_p_esl_priority_t() {
swigCPtr = new HandleRef(null, IntPtr.Zero);
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
}
internal static HandleRef getCPtr(SWIGTYPE_p_esl_priority_t obj) {
return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_esl_priority_t obj) {
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
}
}

View File

@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* This file is not intended to be easily readable and contains a number of
* coding conventions designed to improve portability and efficiency. Do not make

View File

@ -1,5 +1,5 @@
# This file was automatically generated by SWIG (http://www.swig.org).
# Version 2.0.12
# Version 3.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

View File

@ -21,7 +21,7 @@ endif
$(MAKE) -C ..
esl_wrap.cpp:
swig2.0 -module ESL -shadow -perl5 -c++ -DMULTIPLICITY -I../src/include -o esl_wrap.cpp ../ESL.i
swig3.0 -module ESL -shadow -perl5 -c++ -DMULTIPLICITY -I../src/include -o esl_wrap.cpp ../ESL.i
perlxsi.c:
$(PERL) -MExtUtils::Embed -e xsinit -- -o perlxsi.c

View File

@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* This file is not intended to be easily readable and contains a number of
* coding conventions designed to improve portability and efficiency. Do not make
@ -550,14 +550,14 @@ SWIG_MangledTypeQueryModule(swig_module_info *start,
swig_module_info *iter = start;
do {
if (iter->size) {
register size_t l = 0;
register size_t r = iter->size - 1;
size_t l = 0;
size_t r = iter->size - 1;
do {
/* since l+r >= 0, we can (>> 1) instead (/ 2) */
register size_t i = (l + r) >> 1;
size_t i = (l + r) >> 1;
const char *iname = iter->types[i]->name;
if (iname) {
register int compare = strcmp(name, iname);
int compare = strcmp(name, iname);
if (compare == 0) {
return iter->types[i];
} else if (compare < 0) {
@ -601,7 +601,7 @@ SWIG_TypeQueryModule(swig_module_info *start,
of the str field (the human readable name) */
swig_module_info *iter = start;
do {
register size_t i = 0;
size_t i = 0;
for (; i < iter->size; ++i) {
if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
return iter->types[i];
@ -620,10 +620,10 @@ SWIG_TypeQueryModule(swig_module_info *start,
SWIGRUNTIME char *
SWIG_PackData(char *c, void *ptr, size_t sz) {
static const char hex[17] = "0123456789abcdef";
register const unsigned char *u = (unsigned char *) ptr;
register const unsigned char *eu = u + sz;
const unsigned char *u = (unsigned char *) ptr;
const unsigned char *eu = u + sz;
for (; u != eu; ++u) {
register unsigned char uu = *u;
unsigned char uu = *u;
*(c++) = hex[(uu & 0xf0) >> 4];
*(c++) = hex[uu & 0xf];
}
@ -635,11 +635,11 @@ SWIG_PackData(char *c, void *ptr, size_t sz) {
*/
SWIGRUNTIME const char *
SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
register unsigned char *u = (unsigned char *) ptr;
register const unsigned char *eu = u + sz;
unsigned char *u = (unsigned char *) ptr;
const unsigned char *eu = u + sz;
for (; u != eu; ++u) {
register char d = *(c++);
register unsigned char uu;
char d = *(c++);
unsigned char uu;
if ((d >= '0') && (d <= '9'))
uu = ((d - '0') << 4);
else if ((d >= 'a') && (d <= 'f'))
@ -894,6 +894,7 @@ SWIG_Perl_ErrorType(int code) {
#define SWIG_ConvertPtr(obj, pp, type, flags) SWIG_Perl_ConvertPtr(SWIG_PERL_OBJECT_CALL obj, pp, type, flags)
#define SWIG_ConvertPtrAndOwn(obj, pp, type, flags,own) SWIG_Perl_ConvertPtrAndOwn(SWIG_PERL_OBJECT_CALL obj, pp, type, flags, own)
#define SWIG_NewPointerObj(p, type, flags) SWIG_Perl_NewPointerObj(SWIG_PERL_OBJECT_CALL p, type, flags)
#define swig_owntype int
/* for raw packed data */
#define SWIG_ConvertPacked(obj, p, s, type) SWIG_Perl_ConvertPacked(SWIG_PERL_OBJECT_CALL obj, p, s, type)
@ -1162,7 +1163,11 @@ SWIG_Perl_ConvertPtrAndOwn(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_
/* Now see if the types match */
char *_c = HvNAME(SvSTASH(SvRV(sv)));
tc = SWIG_TypeProxyCheck(_c,_t);
#ifdef SWIG_DIRECTORS
if (!tc && !sv_derived_from(sv,SWIG_Perl_TypeProxyName(_t))) {
#else
if (!tc) {
#endif
return SWIG_ERROR;
}
{
@ -1520,7 +1525,7 @@ static swig_module_info swig_module = {swig_types, 5, 0, 0, 0, 0};
#define SWIG_name "ESLc::boot_ESL"
#define SWIG_prefix "ESLc::"
#define SWIGVERSION 0x020012
#define SWIGVERSION 0x030002
#define SWIG_VERSION SWIGVERSION
@ -4129,7 +4134,7 @@ static swig_command_info swig_commands[] = {
* array with the correct data and linking the correct swig_cast_info
* structures together.
*
* The generated swig_type_info structures are assigned staticly to an initial
* The generated swig_type_info structures are assigned statically to an initial
* array. We just loop through that array, and handle each type individually.
* First we lookup if this type has been already loaded, and if so, use the
* loaded structure instead of the generated one. Then we have to fill in the

View File

@ -2,7 +2,7 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* This file is not intended to be easily readable and contains a number of
* coding conventions designed to improve portability and efficiency. Do not make
@ -44,12 +44,6 @@ class ESLevent {
$this->_pData[$var] = $value;
}
function __isset($var) {
if (function_exists('ESLevent_'.$var.'_set')) return true;
if ($var === 'thisown') return true;
return array_key_exists($var, $this->_pData);
}
function __get($var) {
$func = 'ESLevent_'.$var.'_get';
if (function_exists($func)) return call_user_func($func,$this->_cPtr);
@ -57,6 +51,12 @@ class ESLevent {
return $this->_pData[$var];
}
function __isset($var) {
if (function_exists('ESLevent_'.$var.'_get')) return true;
if ($var === 'thisown') return true;
return array_key_exists($var, $this->_pData);
}
function __construct($type_or_wrap_me_or_me,$subclass_name_or_free_me=null) {
if (is_resource($type_or_wrap_me_or_me) && get_resource_type($type_or_wrap_me_or_me) === '_p_ESLevent') {
$this->_cPtr=$type_or_wrap_me_or_me;
@ -134,16 +134,16 @@ class ESLconnection {
$this->_pData[$var] = $value;
}
function __isset($var) {
if ($var === 'thisown') return true;
return array_key_exists($var, $this->_pData);
}
function __get($var) {
if ($var === 'thisown') return swig_ESL_get_newobject($this->_cPtr);
return $this->_pData[$var];
}
function __isset($var) {
if ($var === 'thisown') return true;
return array_key_exists($var, $this->_pData);
}
function __construct($host_or_socket,$port=null,$user_or_password=null,$password=null) {
if (is_resource($host_or_socket) && get_resource_type($host_or_socket) === '_p_ESLconnection') {
$this->_cPtr=$host_or_socket;

View File

@ -3,7 +3,7 @@ WRAP_GCC_WARNING_SILENCE=-Wno-unused-label -Wno-unused-function
all: ESL.so
esl_wrap.cpp:
swig2.0 -module ESL -php5 -c++ -DMULTIPLICITY -I../src/include -o esl_wrap.cpp ../ESL.i
swig3.0 -module ESL -php5 -c++ -DMULTIPLICITY -I../src/include -o esl_wrap.cpp ../ESL.i
sed -e 's/ char \*type_name;/ const char \*type_name;/' -i esl_wrap.cpp
esl_wrap.o: esl_wrap.cpp

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* This file is not intended to be easily readable and contains a number of
* coding conventions designed to improve portability and efficiency. Do not make

View File

@ -1,5 +1,5 @@
# This file was automatically generated by SWIG (http://www.swig.org).
# Version 2.0.12
# Version 3.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

View File

@ -5,7 +5,7 @@ SITE_DIR=$(DESTDIR)/`python -c "from distutils.sysconfig import get_python_lib;
all: _ESL.so
esl_wrap.cpp:
swig2.0 -module ESL -classic -python -c++ -DMULTIPLICITY -threads -I../src/include -o esl_wrap.cpp ../ESL.i
swig3.0 -module ESL -classic -python -c++ -DMULTIPLICITY -threads -I../src/include -o esl_wrap.cpp ../ESL.i
esl_wrap.o: esl_wrap.cpp
$(CXX) $(CXX_CFLAGS) $(CXXFLAGS) $(LOCAL_CFLAGS) -c esl_wrap.cpp -o esl_wrap.o

View File

@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* This file is not intended to be easily readable and contains a number of
* coding conventions designed to improve portability and efficiency. Do not make
@ -562,14 +562,14 @@ SWIG_MangledTypeQueryModule(swig_module_info *start,
swig_module_info *iter = start;
do {
if (iter->size) {
register size_t l = 0;
register size_t r = iter->size - 1;
size_t l = 0;
size_t r = iter->size - 1;
do {
/* since l+r >= 0, we can (>> 1) instead (/ 2) */
register size_t i = (l + r) >> 1;
size_t i = (l + r) >> 1;
const char *iname = iter->types[i]->name;
if (iname) {
register int compare = strcmp(name, iname);
int compare = strcmp(name, iname);
if (compare == 0) {
return iter->types[i];
} else if (compare < 0) {
@ -613,7 +613,7 @@ SWIG_TypeQueryModule(swig_module_info *start,
of the str field (the human readable name) */
swig_module_info *iter = start;
do {
register size_t i = 0;
size_t i = 0;
for (; i < iter->size; ++i) {
if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
return iter->types[i];
@ -632,10 +632,10 @@ SWIG_TypeQueryModule(swig_module_info *start,
SWIGRUNTIME char *
SWIG_PackData(char *c, void *ptr, size_t sz) {
static const char hex[17] = "0123456789abcdef";
register const unsigned char *u = (unsigned char *) ptr;
register const unsigned char *eu = u + sz;
const unsigned char *u = (unsigned char *) ptr;
const unsigned char *eu = u + sz;
for (; u != eu; ++u) {
register unsigned char uu = *u;
unsigned char uu = *u;
*(c++) = hex[(uu & 0xf0) >> 4];
*(c++) = hex[uu & 0xf];
}
@ -647,11 +647,11 @@ SWIG_PackData(char *c, void *ptr, size_t sz) {
*/
SWIGRUNTIME const char *
SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
register unsigned char *u = (unsigned char *) ptr;
register const unsigned char *eu = u + sz;
unsigned char *u = (unsigned char *) ptr;
const unsigned char *eu = u + sz;
for (; u != eu; ++u) {
register char d = *(c++);
register unsigned char uu;
char d = *(c++);
unsigned char uu;
if ((d >= '0') && (d <= '9'))
uu = ((d - '0') << 4);
else if ((d >= 'a') && (d <= 'f'))
@ -1328,7 +1328,7 @@ SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssi
}
if (!PyTuple_Check(args)) {
if (min <= 1 && max >= 1) {
register int i;
int i;
objs[0] = args;
for (i = 1; i < max; ++i) {
objs[i] = 0;
@ -1338,7 +1338,7 @@ SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssi
PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple");
return 0;
} else {
register Py_ssize_t l = PyTuple_GET_SIZE(args);
Py_ssize_t l = PyTuple_GET_SIZE(args);
if (l < min) {
PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d",
name, (min == max ? "" : "at least "), (int)min, (int)l);
@ -1348,7 +1348,7 @@ SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssi
name, (min == max ? "" : "at most "), (int)max, (int)l);
return 0;
} else {
register int i;
int i;
for (i = 0; i < l; ++i) {
objs[i] = PyTuple_GET_ITEM(args, i);
}
@ -2463,7 +2463,7 @@ SWIG_Python_NewShadowInstance(SwigPyClientData *data, PyObject *swig_this)
}
} else {
#if PY_VERSION_HEX >= 0x03000000
inst = PyBaseObject_Type.tp_new((PyTypeObject*) data->newargs, Py_None, Py_None);
inst = ((PyTypeObject*) data->newargs)->tp_new((PyTypeObject*) data->newargs, Py_None, Py_None);
if (inst) {
PyObject_SetAttr(inst, SWIG_This(), swig_this);
Py_TYPE(inst)->tp_flags &= ~Py_TPFLAGS_VALID_VERSION_TAG;
@ -2966,7 +2966,7 @@ static swig_module_info swig_module = {swig_types, 5, 0, 0, 0, 0};
#endif
#define SWIG_name "_ESL"
#define SWIGVERSION 0x020012
#define SWIGVERSION 0x030002
#define SWIG_VERSION SWIGVERSION
@ -3145,7 +3145,11 @@ SWIG_FromCharPtrAndSize(const char* carray, size_t size)
SWIG_InternalNewPointerObj(const_cast< char * >(carray), pchar_descriptor, 0) : SWIG_Py_Void();
} else {
#if PY_VERSION_HEX >= 0x03000000
#if PY_VERSION_HEX >= 0x03010000
return PyUnicode_DecodeUTF8(carray, static_cast< int >(size), "surrogateescape");
#else
return PyUnicode_FromStringAndSize(carray, static_cast< int >(size));
#endif
#else
return PyString_FromStringAndSize(carray, static_cast< int >(size));
#endif
@ -5452,7 +5456,7 @@ static swig_const_info swig_const_table[] = {
* array with the correct data and linking the correct swig_cast_info
* structures together.
*
* The generated swig_type_info structures are assigned staticly to an initial
* The generated swig_type_info structures are assigned statically to an initial
* array. We just loop through that array, and handle each type individually.
* First we lookup if this type has been already loaded, and if so, use the
* loaded structure instead of the generated one. Then we have to fill in the
@ -5782,7 +5786,7 @@ extern "C" {
var = var->next;
}
if (res == NULL && !PyErr_Occurred()) {
PyErr_SetString(PyExc_NameError,"Unknown C global variable");
PyErr_Format(PyExc_AttributeError, "Unknown C global variable '%s'", n);
}
return res;
}
@ -5799,7 +5803,7 @@ extern "C" {
var = var->next;
}
if (res == 1 && !PyErr_Occurred()) {
PyErr_SetString(PyExc_NameError,"Unknown C global variable");
PyErr_Format(PyExc_AttributeError, "Unknown C global variable '%s'", n);
}
return res;
}

View File

@ -6,7 +6,7 @@ RUBY_GEM_DIR=$(shell $(RUBY) -e 'puts RbConfig::CONFIG["rubylibdir"]')
all: ESL.so
esl_wrap.cpp:
swig2.0 -module ESL -ruby -c++ -DMULTIPLICITY -I../src/include -o esl_wrap.cpp ../ESL.i
swig3.0 -module ESL -ruby -c++ -DMULTIPLICITY -I../src/include -o esl_wrap.cpp ../ESL.i
esl_wrap.o: esl_wrap.cpp
$(CXX) $(CXX_CFLAGS) $(CXXFLAGS) $(LOCAL_CFLAGS) -c esl_wrap.cpp -o esl_wrap.o

View File

@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 2.0.12
* Version 3.0.2
*
* This file is not intended to be easily readable and contains a number of
* coding conventions designed to improve portability and efficiency. Do not make
@ -658,14 +658,14 @@ SWIG_MangledTypeQueryModule(swig_module_info *start,
swig_module_info *iter = start;
do {
if (iter->size) {
register size_t l = 0;
register size_t r = iter->size - 1;
size_t l = 0;
size_t r = iter->size - 1;
do {
/* since l+r >= 0, we can (>> 1) instead (/ 2) */
register size_t i = (l + r) >> 1;
size_t i = (l + r) >> 1;
const char *iname = iter->types[i]->name;
if (iname) {
register int compare = strcmp(name, iname);
int compare = strcmp(name, iname);
if (compare == 0) {
return iter->types[i];
} else if (compare < 0) {
@ -709,7 +709,7 @@ SWIG_TypeQueryModule(swig_module_info *start,
of the str field (the human readable name) */
swig_module_info *iter = start;
do {
register size_t i = 0;
size_t i = 0;
for (; i < iter->size; ++i) {
if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
return iter->types[i];
@ -728,10 +728,10 @@ SWIG_TypeQueryModule(swig_module_info *start,
SWIGRUNTIME char *
SWIG_PackData(char *c, void *ptr, size_t sz) {
static const char hex[17] = "0123456789abcdef";
register const unsigned char *u = (unsigned char *) ptr;
register const unsigned char *eu = u + sz;
const unsigned char *u = (unsigned char *) ptr;
const unsigned char *eu = u + sz;
for (; u != eu; ++u) {
register unsigned char uu = *u;
unsigned char uu = *u;
*(c++) = hex[(uu & 0xf0) >> 4];
*(c++) = hex[uu & 0xf];
}
@ -743,11 +743,11 @@ SWIG_PackData(char *c, void *ptr, size_t sz) {
*/
SWIGRUNTIME const char *
SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
register unsigned char *u = (unsigned char *) ptr;
register const unsigned char *eu = u + sz;
unsigned char *u = (unsigned char *) ptr;
const unsigned char *eu = u + sz;
for (; u != eu; ++u) {
register char d = *(c++);
register unsigned char uu;
char d = *(c++);
unsigned char uu;
if ((d >= '0') && (d <= '9'))
uu = ((d - '0') << 4);
else if ((d >= 'a') && (d <= 'f'))
@ -1503,14 +1503,13 @@ SWIG_Ruby_InitRuntime(void)
SWIGRUNTIME void
SWIG_Ruby_define_class(swig_type_info *type)
{
VALUE klass;
char *klass_name = (char *) malloc(4 + strlen(type->name) + 1);
sprintf(klass_name, "TYPE%s", type->name);
if (NIL_P(_cSWIG_Pointer)) {
_cSWIG_Pointer = rb_define_class_under(_mSWIG, "Pointer", rb_cObject);
rb_undef_method(CLASS_OF(_cSWIG_Pointer), "new");
}
klass = rb_define_class_under(_mSWIG, klass_name, _cSWIG_Pointer);
rb_define_class_under(_mSWIG, klass_name, _cSWIG_Pointer);
free((void *) klass_name);
}
@ -1823,7 +1822,7 @@ static VALUE mESL;
#define SWIG_RUBY_THREAD_END_BLOCK
#define SWIGVERSION 0x020012
#define SWIGVERSION 0x030002
#define SWIG_VERSION SWIGVERSION
@ -1929,7 +1928,7 @@ SWIG_ruby_failed(void)
}
/*@SWIG:/usr/share/swig2.0/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
/*@SWIG:/usr/share/swig3.0/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
{
VALUE obj = args[0];
@ -3890,7 +3889,7 @@ static swig_cast_info *swig_cast_initial[] = {
* array with the correct data and linking the correct swig_cast_info
* structures together.
*
* The generated swig_type_info structures are assigned staticly to an initial
* The generated swig_type_info structures are assigned statically to an initial
* array. We just loop through that array, and handle each type individually.
* First we lookup if this type has been already loaded, and if so, use the
* loaded structure instead of the generated one. Then we have to fill in the

View File

@ -5,7 +5,7 @@ WRAP_GCC_WARNING_SILENCE=-Wno-unused-function
all: ESL.so
esl_wrap.cpp:
swig -module ESL -tcl -c++ -DMULTIPLICITY -I../src/include -o esl_wrap.cpp ../ESL.i
swig3.0 -module ESL -tcl -c++ -DMULTIPLICITY -I../src/include -o esl_wrap.cpp ../ESL.i
esl_wrap.o: esl_wrap.cpp
$(CXX) $(CXX_CFLAGS) $(CXXFLAGS) $(LOCAL_CFLAGS) $(WRAP_GCC_WARNING_SILENCE) -c esl_wrap.cpp -o esl_wrap.o

Some files were not shown because too many files have changed in this diff Show More