summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
* Merge branch 'master' into jackaudiojackaudioThomas Groman2020-09-21-595/+8053
|\
| * Merge pull request #216 from fbriere/misc/qt-deprecation-warningsLuboš Doležel2020-08-23-0/+4
| |\ | | | | | | Suppress deprecation warnings from Qt
| | * Suppress deprecation warnings from QtFrédéric Brière2020-08-23-0/+4
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | Starting from Qt 5.13, QT_DEPRECATED_WARNINGS is now enabled by default. Unfortunately, methods are often deprecated not long after a suitable alternative is available, meaning that getting rid of these warnings would require breaking backwards compatibility (or sprinkling QT_VERSION checks everywhere). (See QList::fromStdList() as an example, which was marked as deprecated merely a month after range constructors were made available.) This reverts things to how they were before. Getting rid of these warnings will probably be part of the job when porting to Qt 6.
| * Merge pull request #212 from urbanware-org/patch-1Luboš Doležel2020-08-04-1/+1
| |\ | | | | | | Fix typo in German language file
| | * Fix typo in German language fileRalf Kilian2020-08-04-1/+1
| |/ | | | | Missing letter inside the word "Uhrzeit"
| * Merge pull request #205 from fbriere/misc/https-manual-urlLuboš Doležel2020-04-01-1/+1
| |\ | | | | | | Use HTTPS for the archive.org manual URL
| | * Use HTTPS for the archive.org manual URLFrédéric Brière2020-04-01-1/+1
| |/
| * Merge pull request #202 from fbriere/fixes/195-empty-context-menuLuboš Doležel2020-04-01-0/+3
| |\ | | | | | | Set the windowTitle property of callToolbar
| | * Set the windowTitle property of callToolbarFrédéric Brière2020-03-30-0/+3
| | | | | | | | | | | | | | | | | | | | | The window title of a toolbar is displayed in the default context menu of the main window. Closes #195
| * | Merge pull request #196 from bart-webleads/patch-1Luboš Doležel2020-04-01-7/+7
| |\ \ | | | | | | | | Fix a few translation typos
| | * | Fix a few translation typosBart Lagerweij2020-03-02-7/+7
| | | | | | | | | | | | A few dutch translation where misspelled.
| * | | Merge pull request #201 from fbriere/issue/184-sdp-duplicate-codecsLuboš Doležel2020-04-01-1/+4
| |\ \ \ | | | | | | | | | | Use the first payload type number for each codec in the SDP answer
| | * | | Use the first payload type number for each codec in the SDP answerFrédéric Brière2020-03-30-1/+4
| | | |/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is possible for the SDP offer to feature more than one payload type number (either static or dynamic) that refer to the same codec. For example, a peer that supports ITU-T V.152 may use two payload types, with one of them marked for voice-band data use: m=audio 3456 RTP/AVP 0 98 a=rtpmap:0 PCMU/8000 a=rtpmap:98 PCMU/8000 a=gpmd:98 vbd=yes Ideally, Twinkle should use the number that was listed first in the media formats list when building the SDP answer. Closes #184
| * | | Merge pull request #203 from fbriere/issue/189-profile-name-dialogLuboš Doležel2020-04-01-4/+50
| |\ \ \ | | | | | | | | | | Various fixes for the GetProfileNameForm dialog
| | * | | Give focus to profileLineEdit in GetProfileNameForm constructorFrédéric Brière2020-03-31-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Even though focus is supposed to initially go to profileLineEdit (due to its first position in the tabstops list), this doesn't seem to be the case in reality (at least for me).
| | * | | Relax GetProfileNameForm validator to only check individual charactersFrédéric Brière2020-03-31-4/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QRegExpValidator can be somewhat user-unfriendly, as it will prevent characters from being input, or even deleted, while leaving the user in the dark as to what is going on. Retricting the set of characters allowed shouldn't pose a problem if we make a mention of this on the form. Checking for a leading "." or "@", however, is better left at submission time, with an explicit error message in that case.
| | * | | Add a note in getprofilenameform.ui listing which characters are allowedFrédéric Brière2020-03-31-0/+24
| | | | |
| | * | | Call GetProfileNameForm::init() in the constructorFrédéric Brière2020-03-31-0/+1
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | init() is responsible for setting a validator for profileLineEdit; its invocation was probably lost in the Qt4/5 transition. Closes #189
| * | | Merge pull request #204 from fbriere/fix/sys-settings-overlapLuboš Doležel2020-04-01-1/+1
| |\ \ \ | | |/ / | |/| | Fix overlap of two settings in syssettingsform.ui
| | * | Fix overlap of two settings in syssettingsform.uiFrédéric Brière2020-03-31-1/+1
| |/ / | | | | | | | | | | | | The merging of 1e9f091 (#123) and f3d6f33 (#126) resulted in a positional conflict in syssettingsform.ui.
| * | Merge pull request #152 from fbriere/issue/104-bcg729-apiLuboš Doležel2020-03-29-0/+68
| |\ \ | | |/ | |/| Add support for the new bcg729 API, introduced in version 1.0.2
| | * Test building with bcg729 on Travis CI, trying both APIsFrédéric Brière2020-03-29-0/+9
| | |
| | * Add support for the new bcg729 API, introduced in version 1.0.2Frédéric Brière2020-03-29-0/+59
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Starting with version 1.0.2, bcg729 has changed its API to add support for G.729B, thus requiring us to adjust our function calls depending on which version is installed. When dealing with the new API, we merely need to add a few parameters to disable all G.729B features, namely: * On the decoder side: When `SIDFrameFlag` is not set, the decoder will behave just like before, decoding the payload as a standard G.729A voice frame (or concealing an erased frame). The other parameters, `rfc3389PayloadFlag` and `bitStreamLength`, are only of use when dealing with a SID frame sent as per RFC 3389, and are ignored if `SIDFrameFlag` is not set. * On the encoder side: When `enableVAD` is disabled, the encoder will behave just like before, producing only standard G.729A voice frames. The only API difference is the introduction of `*bitStreamLength`, to return the length of the encoded frame (0, 2 or 10 bytes). In our case, this will always be 10 bytes just like before; an assert() was added to guarantee this. Closes #104
| * Merge pull request #194 from glixx/masterLuboš Doležel2020-02-24-175/+68
| |\ | | | | | | update Russian translation
| | * update Russian translationglixx2020-02-24-175/+68
| |/
| * Merge pull request #193 from jose1711/masterLuboš Doležel2020-02-23-23/+23
| |\ | | | | | | Add more markdown in README.md
| | * Add more markdown in README.mdJose Riha2020-02-23-23/+23
| |/ | | | | | | | | Mostly cosmetic changes. This also solves <user> string being invisible on github page.
| * Merge pull request #180 from fbriere/issue/165-deadlocks-complexLuboš Doležel2020-02-23-29/+243
| |\ | | | | | | Introduce read-write-update locks and guards to prevent deadlocks
| | * Fix "REFER declined" deadlockFrédéric Brière2019-12-27-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | This occurs when the user declines an incoming call transfer request, due to the following path: - recvd_refer_permission() acquires a read lock over lines_mtx - move_releasing_lines_to_background() is called - A write lock over lines_mtx is acquired
| | * Fix "Transfer with consultation without Replaces" deadlockFrédéric Brière2019-12-27-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This occurs when performing a consult transfer if the target does not support the Replaces extension, due to the following path: - refer() acquires a read lock over lines_mtx - refer_consultation() is called - A write lock over lines_mtx is acquired Closes #118
| | * Fix "NOTIFY received when line is idle" deadlockFrédéric Brière2019-12-27-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This can easily be triggered by starting a blind transfer, and hanging up before the other end has accepted/rejected it, due to the following path: - recvd_notify() acquires a read lock on lines_mtx - cleanup_dead_lines() is called - A write lock on lines_mtx is acquired
| | * Fix "INVITE with Replaces header" deadlockFrédéric Brière2019-12-27-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | This occurs on reception of an INVITE with a Replaces header, due to the following path: - recvd_invite() acquires a read lock on lines_mtx - recvd_initial_invite() is called - A write lock over lines_mtx is acquired
| | * Introduce read-write-update locks and guards to prevent deadlocksFrédéric Brière2019-12-27-13/+199
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This converts t_rwmutex and t_rwmutex_guard into a read-write-update[*] lock and guard, in an attempt to circumvent the various deadlocks that were introduced with the addition of lines_mtx in 38bb6b7. [*] For more details, see https://stackoverflow.com/a/18785300 and http://lkml.iu.edu/hypermail/linux/kernel/0004.3/0117.html. Note that this is not a real fix; this would require analyzing and refactoring phone.cpp, which is well beyond my abilities. This is at best a workaround that appears to conveniently dodge all the deadlocks I've encountered so far. (It would have been more proper to introduce a separate class for this purpose, but this would have required modifying over 80 lines just to change one type for another. As phone_users_mtx is the only other instance of this class, the impact of subverting t_rwmutex directly is minimal.)
| | * Create t_rwmutex_guard base classFrédéric Brière2019-12-26-7/+19
| | | | | | | | | | | | (Doing this ahead of time to simplify the next commit a bit.)
| | * Move t_rwmutex_reader/writer definitions into mutex.cppFrédéric Brière2019-10-02-16/+32
| | | | | | | | | | | | | | | These classes are about to get more complex, so let's move them ahead of time into mutex.cpp.
| * | Merge pull request #163 from fbriere/issue/162-multiple-auth-headersLuboš Doležel2020-02-23-0/+13
| |\ \ | | | | | | | | Support multiple WWW-Authenticate/Proxy-Authenticate headers
| | * | Support multiple WWW-Authenticate/Proxy-Authenticate headersFrédéric Brière2019-09-21-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The server may send multiple WWW-Authenticate/Proxy-Authenticate headers, with different digest algorithms, in decreasing order of preference. We must therefore avoid overwriting any supported challenge once we've got a hold of one. Closes #162
| * | | Merge pull request #154 from fbriere/feature/inhibit-idle-sessionLuboš Doležel2020-02-23-0/+531
| |\ \ \ | | | | | | | | | | Add an option to prevent an idle session while a call is in progress
| | * | | Properly display and log warning messages in IdleSessionInhibitorFrédéric Brière2019-07-13-13/+27
| | | | |
| | * | | Add an option to prevent an idle session while a call is in progressFrédéric Brière2019-07-13-0/+517
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Having the session marked as idle while a call is in progress could trigger certain actions (such as locking the screen, logging out automatically, or suspending the system) which could be undesirable in this situation. Closes #123
| * | | Merge pull request #148 from fbriere/feature/disable-incoming-call-popupLuboš Doležel2020-02-23-2/+42
| |\ \ \ | | | | | | | | | | Add configuration option to disable incoming call popup window
| | * | | Add configuration option to disable incoming call popup windowFrédéric Brière2019-06-30-2/+42
| | |/ / | | | | | | | | | | | | Closes #126
| * | | Merge pull request #147 from fbriere/fix/mutex-on-boolLuboš Doležel2020-02-23-2/+2
| |\ \ \ | | | | | | | | | | Use a mutex in all t_sys_settings getters/setters, even bool
| | * | | Use a mutex in all t_sys_settings getters/setters, even boolFrédéric Brière2019-07-03-2/+2
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Despite what one might intuitively expect, the C++ standard does not make any guarantee about fundamental types being atomic, not even bool. (In fact, it explicitly mentions the existence of std::atomic<bool> for that purpose.) See https://stackoverflow.com/a/35226186 for more details about this subject.
| * | | Merge pull request #116 from fbriere/misc/old-autotools-stuffLuboš Doležel2020-02-23-2/+62
| |\ \ \ | | | | | | | | | | Add missing tests lost in the autotools to CMake transition
| | * | | CMake: Check if libilbc links without 'extern "C"' (ILBC_CPP)Frédéric Brière2019-12-29-0/+23
| | | | | | | | | | | | | | | | | | | | This variable was originally set manually in configure.in.
| | * | | CMake: Check for endianness (WORDS_BIGENDIAN)Frédéric Brière2019-12-29-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | This check (AC_C_BIGENDIAN) was originally present in configure.in, and was lost in the transition to CMake.
| | * | | CMake: Check for res_init() (HAVE_RES_INIT)Frédéric Brière2019-12-29-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | This check (AC_CHECK_RES_INIT) was originally defined in acinclude.m4, and was lost in the transition to CMake.
| | * | | CMake: Check for strerror_r() (HAVE_STRERROR_R and STRERROR_R_CHAR_P)Frédéric Brière2019-12-29-2/+20
| | |/ / | | | | | | | | | | | | | | | | This check (AC_FUNC_STRERROR_R) was originally present in configure.in, and was lost in the transition to CMake.
| * | | Merge pull request #149 from fbriere/issue/121-toggle-window-menu-entryLuboš Doležel2020-02-23-6/+33
| |\ \ \ | | | | | | | | | | Systray icon: Always toggle visibility when clicking & Add "Show/Hide" menu entry