| Commit message (Collapse) | Author | Age | Lines |
|\ |
|
| |\
| | |
| | | |
Suppress deprecation warnings from Qt
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |\
| | |
| | | |
Fix typo in German language file
|
| |/
| |
| | |
Missing letter inside the word "Uhrzeit"
|
| |\
| | |
| | | |
Use HTTPS for the archive.org manual URL
|
| |/ |
|
| |\
| | |
| | | |
Set the windowTitle property of callToolbar
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The window title of a toolbar is displayed in the default context menu
of the main window.
Closes #195
|
| |\ \
| | | |
| | | | |
Fix a few translation typos
|
| | | |
| | | |
| | | | |
A few dutch translation where misspelled.
|
| |\ \ \
| | | | |
| | | | | |
Use the first payload type number for each codec in the SDP answer
|
| | | |/
| | |/|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| |\ \ \
| | | | |
| | | | | |
Various fixes for the GetProfileNameForm dialog
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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).
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| | | | | |
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
init() is responsible for setting a validator for profileLineEdit; its
invocation was probably lost in the Qt4/5 transition.
Closes #189
|
| |\ \ \
| | |/ /
| |/| | |
Fix overlap of two settings in syssettingsform.ui
|
| |/ /
| | |
| | |
| | |
| | | |
The merging of 1e9f091 (#123) and f3d6f33 (#126) resulted in a
positional conflict in syssettingsform.ui.
|
| |\ \
| | |/
| |/| |
Add support for the new bcg729 API, introduced in version 1.0.2
|
| | | |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |\
| | |
| | | |
update Russian translation
|
| |/ |
|
| |\
| | |
| | | |
Add more markdown in README.md
|
| |/
| |
| |
| |
| | |
Mostly cosmetic changes. This also solves <user> string being invisible
on github page.
|
| |\
| | |
| | | |
Introduce read-write-update locks and guards to prevent deadlocks
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.)
|
| | |
| | |
| | |
| | | |
(Doing this ahead of time to simplify the next commit a bit.)
|
| | |
| | |
| | |
| | |
| | | |
These classes are about to get more complex, so let's move them ahead of
time into mutex.cpp.
|
| |\ \
| | | |
| | | | |
Support multiple WWW-Authenticate/Proxy-Authenticate headers
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| |\ \ \
| | | | |
| | | | | |
Add an option to prevent an idle session while a call is in progress
|
| | | | | |
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| |\ \ \
| | | | |
| | | | | |
Add configuration option to disable incoming call popup window
|
| | |/ /
| | | |
| | | |
| | | | |
Closes #126
|
| |\ \ \
| | | | |
| | | | | |
Use a mutex in all t_sys_settings getters/setters, even bool
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| |\ \ \
| | | | |
| | | | | |
Add missing tests lost in the autotools to CMake transition
|
| | | | |
| | | | |
| | | | |
| | | | | |
This variable was originally set manually in configure.in.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This check (AC_C_BIGENDIAN) was originally present in configure.in,
and was lost in the transition to CMake.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This check (AC_CHECK_RES_INIT) was originally defined in acinclude.m4,
and was lost in the transition to CMake.
|
| | |/ /
| | | |
| | | |
| | | |
| | | | |
This check (AC_FUNC_STRERROR_R) was originally present in configure.in,
and was lost in the transition to CMake.
|
| |\ \ \
| | | | |
| | | | | |
Systray icon: Always toggle visibility when clicking & Add "Show/Hide" menu entry
|