diff -pruN 43.0-1/build-aux/fix-libphonenumber-build.patch 44~alpha.1-1/build-aux/fix-libphonenumber-build.patch
--- 43.0-1/build-aux/fix-libphonenumber-build.patch	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/build-aux/fix-libphonenumber-build.patch	1970-01-01 00:00:00.000000000 +0000
@@ -1,55 +0,0 @@
-From 5b34d5883d1c7fc9d306491a0823badcaf03bdda Mon Sep 17 00:00:00 2001
-From: Julian Sparber <julian@sparber.net>
-Date: Fri, 8 Nov 2019 16:44:18 +0100
-Subject: [PATCH] Remove java dep, and fix build issue in libphonenumber
-
-Java is used only for generating the metadata which is already included
-in the git repo. Related upstream MR: https://github.com/google/libphonenumber/pull/2363
-
----
- cpp/CMakeLists.txt | 14 ++++----------
- 1 file changed, 4 insertions(+), 10 deletions(-)
-
-diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
-index 38ce1f50..b5e2770b 100644
---- a/cpp/CMakeLists.txt
-+++ b/cpp/CMakeLists.txt
-@@ -130,9 +130,6 @@ endif ()
- find_required_program (PROTOC protoc
-                        "Google Protocol Buffers compiler (protoc)")
- 
--find_required_program (JAVA java
--                       "Java Runtime Environment")
--
- if (APPLE)
-   FIND_LIBRARY (COREFOUNDATION_LIB CoreFoundation)
-   FIND_LIBRARY (FOUNDATION_LIB Foundation)
-@@ -268,13 +265,10 @@ function (add_metadata_gen_target TARGET_NAME
-   set (METADATA_SOURCE_DIR "${CMAKE_SOURCE_DIR}/src/phonenumbers")
-   set (GEN_OUTPUT "${METADATA_SOURCE_DIR}/${METADATA_TYPE}.cc"
-                   "${METADATA_SOURCE_DIR}/${METADATA_HEADER}.h")
--  set (JAR_PATH "${CMAKE_SOURCE_DIR}/../tools/java/cpp-build/target")
--  set (JAR_PATH "${JAR_PATH}/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar")
--
-   add_custom_command (
--    COMMAND ${JAVA_BIN} -jar
--      ${JAR_PATH} BuildMetadataCppFromXml ${XML_FILE}
--      ${CMAKE_SOURCE_DIR}/src/phonenumbers ${METADATA_TYPE}
-+    COMMAND echo "skip metadata generation from"
-+    ${XML_FILE} "to"
-+    ${CMAKE_SOURCE_DIR}/src/phonenumbers ${METADATA_TYPE}
- 
-     OUTPUT ${GEN_OUTPUT}
-     DEPENDS ${XML_FILE}
-@@ -314,7 +308,7 @@ add_metadata_gen_target (
-   ${TEST_METADATA_TARGET}
-   "${RESOURCES_DIR}/PhoneNumberMetadataForTesting.xml"
-   "test_metadata"
--  "metadata"
-+  "test_metadata"
- )
- list (APPEND TESTING_LIBRARY_SOURCES "src/phonenumbers/test_metadata.cc")
- 
--- 
-2.20.1
-
diff -pruN 43.0-1/data/meson.build 44~alpha.1-1/data/meson.build
--- 43.0-1/data/meson.build	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/data/meson.build	2023-01-12 09:50:29.000000000 +0000
@@ -11,7 +11,7 @@ desktop_file = i18n.merge_file(
   install_dir : join_paths(datadir, 'applications')
 )
 
-desktop_file = i18n.merge_file(
+desktop_daemon_file = i18n.merge_file(
   input : 'org.gnome.Calls-daemon.desktop.in',
   output : 'org.gnome.Calls-daemon.desktop',
   type : 'desktop',
@@ -35,16 +35,27 @@ configure_file(
 
 desktop_utils = find_program('desktop-file-validate', required: false)
 if desktop_utils.found()
-  test('Validate desktop file', desktop_utils,
-       args: [join_paths(meson.current_build_dir(),
-                         'org.gnome.Calls.desktop')
-             ])
-  test('Validate daemon desktop file', desktop_utils,
-       args: [join_paths(meson.current_build_dir(),
-                         'org.gnome.Calls-daemon.desktop')
-             ])
+  test('Validate desktop file',
+    desktop_utils,
+    args: [
+      desktop_file.full_path()
+    ],
+    depends: [
+      desktop_file,
+    ],
+  )
+  test('Validate daemon desktop file',
+    desktop_utils,
+    args: [
+      desktop_daemon_file.full_path()
+    ],
+    depends: [
+      desktop_daemon_file,
+    ],
+  )
 endif
 
+
 # Metainfo file
 install_data('org.gnome.Calls.metainfo.xml',
     install_dir: join_paths(datadir, 'metainfo'),
diff -pruN 43.0-1/debian/changelog 44~alpha.1-1/debian/changelog
--- 43.0-1/debian/changelog	2022-10-11 08:38:57.000000000 +0000
+++ 44~alpha.1-1/debian/changelog	2023-01-13 09:30:15.000000000 +0000
@@ -1,3 +1,28 @@
+gnome-calls (44~alpha.1-1) unstable; urgency=medium
+
+  * New upstream version 44~alpha.1
+
+ -- Evangelos Ribeiro Tzaras <devrtz-debian@fortysixandtwo.eu>  Fri, 13 Jan 2023 10:30:15 +0100
+
+gnome-calls (44~alpha.0-1) unstable; urgency=medium
+
+  [ Debian Janitor ]
+  * Update lintian override info to new format on line 2.
+  * Set upstream metadata fields: Bug-Database, Bug-Submit, Repository-Browse.
+
+  [ Evangelos Ribeiro Tzaras ]
+  * d/upstream/metadata: Add "Repository" field
+  * d/patches: Remove patches applied in new upstream release
+
+ -- Evangelos Ribeiro Tzaras <devrtz-debian@fortysixandtwo.eu>  Tue, 06 Dec 2022 11:52:56 +0100
+
+gnome-calls (43.0-2) unstable; urgency=medium
+
+  * d/patches: Fix build on IPv6 only buildd Closes: #1019292, thanks Adrian Bunk
+  * d/patches: Reenable g722 codecs
+
+ -- Evangelos Ribeiro Tzaras <devrtz-debian@fortysixandtwo.eu>  Thu, 13 Oct 2022 00:36:08 +0200
+
 gnome-calls (43.0-1) unstable; urgency=medium
 
   * d/patches: Add patches to prevent app window from showing up
diff -pruN 43.0-1/debian/control 44~alpha.1-1/debian/control
--- 43.0-1/debian/control	2022-08-08 18:44:42.000000000 +0000
+++ 44~alpha.1-1/debian/control	2022-12-06 12:52:09.000000000 +0000
@@ -13,7 +13,7 @@ Build-Depends:
  gtk-doc-tools <!nodoc>,
  libcallaudio-dev (>= 0.0.5),
  libebook-contacts1.2-dev,
- libfeedback-dev,
+ libfeedback-dev (>= 0.0.1),
  libfolks-dev,
  libgom-1.0-dev,
  libgsound-dev,
diff -pruN 43.0-1/debian/gnome-calls-doc.lintian-overrides 44~alpha.1-1/debian/gnome-calls-doc.lintian-overrides
--- 43.0-1/debian/gnome-calls-doc.lintian-overrides	2022-08-08 15:23:55.000000000 +0000
+++ 44~alpha.1-1/debian/gnome-calls-doc.lintian-overrides	2022-12-06 10:50:59.000000000 +0000
@@ -1,2 +1,2 @@
 #https://bugs.debian.org/970275
-gnome-calls-doc: package-contains-documentation-outside-usr-share-doc usr/share/gtk-doc/html/*
+gnome-calls-doc: package-contains-documentation-outside-usr-share-doc [usr/share/gtk-doc/html/*]
diff -pruN 43.0-1/debian/patches/0001-Remove-SIP-call-test-to-fix-intermittent-build-failu.patch 44~alpha.1-1/debian/patches/0001-Remove-SIP-call-test-to-fix-intermittent-build-failu.patch
--- 43.0-1/debian/patches/0001-Remove-SIP-call-test-to-fix-intermittent-build-failu.patch	2022-10-11 08:34:24.000000000 +0000
+++ 44~alpha.1-1/debian/patches/0001-Remove-SIP-call-test-to-fix-intermittent-build-failu.patch	1970-01-01 00:00:00.000000000 +0000
@@ -1,75 +0,0 @@
-From: Evangelos Ribeiro Tzaras <devrtz@fortysixandtwo.eu>
-Date: Mon, 1 Nov 2021 02:28:49 +0100
-Subject: Remove SIP call test to fix intermittent build failure
-
-This test might be failing intermittently depending on environment it is build
-on. I have no final conclusive analysis yet, but sound reasoning as to what
-might be going on:
-
-The build failure in question can occure during the last stage of the SIP
-tests, which creates two local account instances Alice and Bob listening for
-SIP signalling on ports 5060 and 5061 respectively. These two instances are
-trying to call each other.
-
-When a call is established a GStreamer pipeline is being fed the host and port
-properties for the UDP elements to use from the previous SDP negotiation. The
-problem appears to be the following: The INVITE is sent to "127.0.0.1" and the
-GStreamer pipeline is prepared accordingly. The receiving side can end up
-reporting the INVITE as coming from $HOSTNAME which in turn, is then used for
-its own GStreamer pipeline. The hostname appears then to be resolved to an IPv6
-address which may lead to an error on the GStreamer side in the following code:
-
-if (family == G_SOCKET_FAMILY_IPV6 && !sink->used_socket_v6)
-    goto invalid_family;
-
-leading to the GST_ELEMENT_ERROR:
-
-Bail out! CallsSipMediaPipeline-FATAL-WARNING: Error on the message bus: Could not get/set settings from/on resource. (../gst/udp/gstmultiudpsink.c(1225): gst_multiudpsink_configure_client (): /GstPipeline:rtp-send-pipeline/GstUDPSink:rtp-udp-sink:
-Invalid address family (got 10))
-
-Since IPv6 support is not yet fleshed out and will receive some love during the
-next development cycle upstream I believe it is acceptable to disable these
-tests for the moment.
----
- plugins/provider/tests/test-sip.c | 28 ----------------------------
- 1 file changed, 28 deletions(-)
-
-diff --git a/plugins/provider/tests/test-sip.c b/plugins/provider/tests/test-sip.c
-index d16a036..f2aea94 100644
---- a/plugins/provider/tests/test-sip.c
-+++ b/plugins/provider/tests/test-sip.c
-@@ -326,34 +326,6 @@ test_sip_call_direct_calls (SipFixture   *fixture,
- 
-   g_signal_handler_disconnect (fixture->origin_alice, handler_alice);
-   g_signal_handler_disconnect (fixture->origin_bob, handler_bob);
--
--  /* Case 3: Alice calls Bob, Bob accepts and Alice hangs up shortly after */
--
--  g_debug ("Call test: Stage 3");
--
--  handler_alice =
--    g_signal_connect (fixture->origin_alice,
--                      "call-added",
--                      G_CALLBACK (on_outgoing_call_cb),
--                      GINT_TO_POINTER (TRUE));
--
--  handler_bob =
--    g_signal_connect (fixture->origin_bob,
--                      "call-added",
--                      G_CALLBACK (on_incoming_call_autoaccept_cb),
--                      GINT_TO_POINTER (FALSE));
--
--  calls_origin_dial (CALLS_ORIGIN (fixture->origin_alice), address_bob);
--
--  while (!are_call_tests_done)
--    g_main_context_iteration (NULL, TRUE);
--
--  is_call_test_done = FALSE;
--  are_call_tests_done = FALSE;
--
--  g_signal_handler_disconnect (fixture->origin_alice, handler_alice);
--  g_signal_handler_disconnect (fixture->origin_bob, handler_bob);
--
- }
- 
- static void
diff -pruN 43.0-1/debian/patches/application-do-not-return-bool-start-proper.patch 44~alpha.1-1/debian/patches/application-do-not-return-bool-start-proper.patch
--- 43.0-1/debian/patches/application-do-not-return-bool-start-proper.patch	2022-10-11 08:38:57.000000000 +0000
+++ 44~alpha.1-1/debian/patches/application-do-not-return-bool-start-proper.patch	1970-01-01 00:00:00.000000000 +0000
@@ -1,70 +0,0 @@
-From: Evangelos Ribeiro Tzaras <devrtz@fortysixandtwo.eu>
-Date: Tue, 20 Sep 2022 13:27:47 +0200
-Subject: application: Don't return value in start_proper()
-
-It never returned FALSE, so change function prototype accordingly.
----
- src/calls-application.c | 15 ++++++---------
- 1 file changed, 6 insertions(+), 9 deletions(-)
-
-diff --git a/src/calls-application.c b/src/calls-application.c
-index 8ce0ec3..bde75be 100644
---- a/src/calls-application.c
-+++ b/src/calls-application.c
-@@ -74,7 +74,7 @@ struct _CallsApplication {
- G_DEFINE_TYPE (CallsApplication, calls_application, GTK_TYPE_APPLICATION);
- 
- 
--static gboolean start_proper (CallsApplication *self);
-+static void start_proper (CallsApplication *self);
- 
- 
- static gboolean
-@@ -534,13 +534,13 @@ notify_window_visible_cb (GtkWidget        *window,
- }
- 
- 
--static gboolean
-+static void
- start_proper (CallsApplication *self)
- {
-   GtkApplication *gtk_app;
- 
-   if (self->main_window) {
--    return TRUE;
-+    return;
-   }
- 
-   gtk_app = GTK_APPLICATION (self);
-@@ -566,10 +566,9 @@ start_proper (CallsApplication *self)
-                     "notify::visible",
-                     G_CALLBACK (notify_window_visible_cb),
-                     self);
--
--  return TRUE;
- }
- 
-+
- static void
- activate (GApplication *application)
- {
-@@ -581,10 +580,7 @@ activate (GApplication *application)
-   if (self->main_window) {
-     present = TRUE;
-   } else {
--    gboolean ok = start_proper (self);
--    if (!ok)
--      return;
--
-+    start_proper (self);
-     present = !self->daemon;
-   }
- 
-@@ -604,6 +600,7 @@ activate (GApplication *application)
-   g_clear_pointer (&self->uri, g_free);
- }
- 
-+
- static void
- app_open (GApplication *application,
-           GFile       **files,
diff -pruN 43.0-1/debian/patches/application-do-not-show-app-window-daemon.patch 44~alpha.1-1/debian/patches/application-do-not-show-app-window-daemon.patch
--- 43.0-1/debian/patches/application-do-not-show-app-window-daemon.patch	2022-10-11 08:38:57.000000000 +0000
+++ 44~alpha.1-1/debian/patches/application-do-not-show-app-window-daemon.patch	1970-01-01 00:00:00.000000000 +0000
@@ -1,77 +0,0 @@
-From: Evangelos Ribeiro Tzaras <devrtz@fortysixandtwo.eu>
-Date: Tue, 20 Sep 2022 13:35:12 +0200
-Subject: application: Don't show application window if started as daemon
-
-If calls was already running as a daemon it and were invoked again with
-`--daemon` it ended up showing the UI.
-
-Now we always set the `daemon` variable and simplify activation logic as
-a side effect.
-
-Fixes #500
----
- src/calls-application.c | 28 ++++++++++------------------
- 1 file changed, 10 insertions(+), 18 deletions(-)
-
-diff --git a/src/calls-application.c b/src/calls-application.c
-index bde75be..0a58b59 100644
---- a/src/calls-application.c
-+++ b/src/calls-application.c
-@@ -186,16 +186,12 @@ set_daemon_action (GSimpleAction *action,
-                    gpointer       user_data)
- {
-   CallsApplication *self = CALLS_APPLICATION (user_data);
-+  gboolean daemon = g_variant_get_boolean (parameter);
- 
--  if (self->main_window) {
--    g_warning ("Cannot set application as a daemon"
--               " because application is already started");
--    return;
--  }
-+  self->daemon = daemon;
- 
--  self->daemon = TRUE;
--
--  g_debug ("Application marked as daemon");
-+  g_debug ("Application %smarked as daemon",
-+    daemon ? "" : "not ");
- }
- 
- 
-@@ -390,7 +386,7 @@ static const GActionEntry actions[] =
- {
-   { "set-provider-names", set_provider_names_action, "as" },
-   { "set-default-providers", set_default_providers_action, NULL },
--  { "set-daemon", set_daemon_action, NULL },
-+  { "set-daemon", set_daemon_action, "b" },
-   { "dial", dial_action, "s" },
-   { "copy-number", copy_number, "s" },
-   /* TODO About dialog { "about", show_about, NULL}, */
-@@ -484,9 +480,9 @@ calls_application_command_line (GApplication            *application,
-                                     NULL);
-   }
- 
--  if (g_variant_dict_contains (options, "daemon"))
--    g_action_group_activate_action (G_ACTION_GROUP (application),
--                                    "set-daemon", NULL);
-+  g_action_group_activate_action (G_ACTION_GROUP (application),
-+                                  "set-daemon",
-+                                  g_variant_new_boolean (g_variant_dict_contains (options, "daemon")));
- 
-   if (g_variant_dict_lookup (options, "dial", "&s", &arg))
-     g_action_group_activate_action (G_ACTION_GROUP (application),
-@@ -577,12 +573,8 @@ activate (GApplication *application)
- 
-   g_debug ("Activated");
- 
--  if (self->main_window) {
--    present = TRUE;
--  } else {
--    start_proper (self);
--    present = !self->daemon;
--  }
-+  start_proper (self);
-+  present = !self->daemon;
- 
-   if (present || self->uri) {
-     gtk_window_present (GTK_WINDOW (self->main_window));
diff -pruN 43.0-1/debian/patches/series 44~alpha.1-1/debian/patches/series
--- 43.0-1/debian/patches/series	2022-10-11 08:38:57.000000000 +0000
+++ 44~alpha.1-1/debian/patches/series	1970-01-01 00:00:00.000000000 +0000
@@ -1,3 +0,0 @@
-0001-Remove-SIP-call-test-to-fix-intermittent-build-failu.patch
-application-do-not-return-bool-start-proper.patch
-application-do-not-show-app-window-daemon.patch
diff -pruN 43.0-1/debian/upstream/metadata 44~alpha.1-1/debian/upstream/metadata
--- 43.0-1/debian/upstream/metadata	1970-01-01 00:00:00.000000000 +0000
+++ 44~alpha.1-1/debian/upstream/metadata	2022-12-06 10:50:59.000000000 +0000
@@ -0,0 +1,5 @@
+---
+Bug-Database: https://gitlab.gnome.org/GNOME/calls/-/issues
+Bug-Submit: https://gitlab.gnome.org/GNOME/calls/-/issues/new
+Repository-Browse: https://gitlab.gnome.org/GNOME/calls
+Repository: https://gitlab.gnome.org/GNOME/calls.git
diff -pruN 43.0-1/gcovr.cfg 44~alpha.1-1/gcovr.cfg
--- 43.0-1/gcovr.cfg	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/gcovr.cfg	2023-01-12 09:50:29.000000000 +0000
@@ -1,2 +1,8 @@
 exclude = src/dbus
-exclude = subprojects/
\ No newline at end of file
+exclude = subprojects/
+# exclude calls-dummy-provider.c and calls-sip-provider.c as
+# gcovr currently can't handle having the same function name twice on different lines:
+# #ifdef FOR_TESTING switches between G_DEFINE_TYPE and a G_DEFINE_DYNAMIC_TYPE
+# see https://github.com/gcovr/gcovr/issues/586
+exclude = plugins/provider/dummy/calls-dummy-provider.c
+exclude = plugins/provider/sip/calls-sip-provider.c
diff -pruN 43.0-1/.gitlab-ci/run-docker.sh 44~alpha.1-1/.gitlab-ci/run-docker.sh
--- 43.0-1/.gitlab-ci/run-docker.sh	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/.gitlab-ci/run-docker.sh	2023-01-12 09:50:29.000000000 +0000
@@ -107,6 +107,7 @@ if [ $build == 1 ]; then
         ${CMD} build \
                 ${format} \
                 --volume "$(pwd)/..:/home/user/app" \
+                --no-cache \
                 --build-arg HOST_USER_ID="$UID" \
                 --tag "${TAG}" \
                 --file "${base}.Dockerfile" .
diff -pruN 43.0-1/.gitlab-ci.yml 44~alpha.1-1/.gitlab-ci.yml
--- 43.0-1/.gitlab-ci.yml	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/.gitlab-ci.yml	2023-01-12 09:50:29.000000000 +0000
@@ -11,7 +11,7 @@ stages:
 
 variables:
   L5_DOCKER_IMAGE: debian:bookworm
-  DEBIAN_IMAGE: $CI_REGISTRY/gnome/calls/debian:v0.0.20220817
+  DEBIAN_IMAGE: $CI_REGISTRY/gnome/calls/debian:v0.0.20221117
   GIT_SUBMODULE_STRATEGY: normal
 
 build:native:
@@ -77,17 +77,53 @@ package:deb-pureos-byzantium:arm64:
     - aarch64
   extends: .l5-build-debian-package
 
-flatpak:main:
-  extends: .flatpak
-  stage: package
-  allow_failure: true
+.vars-devel:
   variables:
     MANIFEST_PATH: "org.gnome.Calls.json"
-    RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
     FLATPAK_MODULE: "calls"
-    MESON_ARGS: ""
     APP_ID: "org.gnome.Calls"
+    RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
     BUNDLE: "calls.flatpak"
+    CONFIG_OPTS: >-
+      -Dmanpages=false
+    TEST_RUN_ARGS: >-
+      "calls:Validate desktop file"
+      "calls:Validate daemon desktop file"
+      calls:util
+      calls:settings
+      calls:origin
+      calls:provider
+      calls:call
+      calls:plugins
+      calls:contacts
+      calls:ui-call
+      calls:manager
+      calls:ringer
+      calls:media
+      calls:srtp
+      calls:sdp-crypto
+      # Disable test because it fails in flatpak
+      #calls:sip
+
+# Build Flatpak for x86_64
+flatpak@x86_64:
+  stage: package
+  extends: ['.flatpak@x86_64', '.vars-devel']
+
+# Build Flatpak for aarch64
+flatpak@aarch64:
+  stage: package
+  extends: ['.flatpak@aarch64', '.vars-devel']
+
+# Publish Flatpak for x86_64
+nightly@x86_64:
+  extends: '.publish_nightly'
+  needs: ['flatpak@x86_64']
+
+# Publish Flatpak for aarch64
+nightly@aarch64:
+  extends: '.publish_nightly'
+  needs: ['flatpak@aarch64']
 
 pages:
   stage: deploy
diff -pruN 43.0-1/meson.build 44~alpha.1-1/meson.build
--- 43.0-1/meson.build	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/meson.build	2023-01-12 09:50:29.000000000 +0000
@@ -22,7 +22,7 @@
 project(
   'calls',
   'c', 'vala',
-  version: '43.0',
+  version: '44.alpha.1',
   license: 'GPLv3+',
   meson_version: '>= 0.56.0',
   default_options: [
@@ -47,8 +47,6 @@ full_servicedir = join_paths(prefix, get
 localedir = get_option('localedir')
 full_localedir = join_paths(prefix, localedir)
 full_calls_plugin_libdir = join_paths(prefix, libdir, calls_name, 'plugins')
-# Path to plugins inside the build dir, used for testing
-full_calls_plugin_builddir = join_paths(builddir, 'plugins')
 
 libcall_ui_dep = dependency('call-ui',
   fallback:  ['libcall-ui', 'libcall_ui_dep'],
@@ -65,6 +63,10 @@ config_data.set_quoted('PACKAGE_URL', ca
 config_data.set_quoted('PACKAGE_VERSION', calls_version)
 config_data.set('PACKAGE_URL_RAW', calls_homepage)
 
+gst_debug = get_option('gst_debug')
+config_data.set('CALLS_GST_DEBUG', gst_debug, description: 'Use GStreamer debugging API')
+
+
 run_data = configuration_data()
 run_data.set('ABS_BUILDDIR', meson.current_build_dir())
 run_data.set('ABS_SRCDIR', meson.current_source_dir())
@@ -132,16 +134,15 @@ add_project_arguments(
 
 subdir('po')
 subdir('src')
-subdir('tests')
 subdir('plugins')
+subdir('tests')
 subdir('doc')
 subdir('data')
 
 # gnome.post_install() is available since meson 0.59.0
 # Distributions use their own tooling (e.g. postinst, triggers, etc)
 # so it is okay if the post_install() is not run on distro builds
-m_ver = meson.version().split('.')
-if m_ver[0].to_int() > 0 or m_ver[1].to_int() > 58
+if meson.version().version_compare('>=0.59.0')
   gnome.post_install(
     glib_compile_schemas: true,
     gtk_update_icon_cache: true,
diff -pruN 43.0-1/meson_options.txt 44~alpha.1-1/meson_options.txt
--- 43.0-1/meson_options.txt	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/meson_options.txt	2023-01-12 09:50:29.000000000 +0000
@@ -9,3 +9,7 @@ option('tests',
 option('manpages',
        type: 'boolean', value: true,
        description: 'Whether to generate man pages')
+
+option('gst_debug',
+       type: 'boolean', value: true,
+       description: 'Whether to use gstreamers debugging API')
diff -pruN 43.0-1/NEWS 44~alpha.1-1/NEWS
--- 43.0-1/NEWS	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/NEWS	2023-01-12 09:50:29.000000000 +0000
@@ -1,3 +1,79 @@
+Calls 44.alpha.1
+----------------
+Released: 12 January 2022
+
+New features:
+=============
+None
+
+Maybe noteworthy:
+=================
+* **Really** fix endless ringing bug
+* Fixed a crash
+* Database closed correctly on shutdown
+
+Code contributions:
+===================
+ - Evangelos Ribeiro Tzaras
+ - Chris Talbot
+ - Abderrahim Kitouni
+ - Дилян Палаузов
+
+Translation updates:
+====================
+ - Friulian (Fabio Tomat)
+ - Belarusian (Vasil Pupkin)
+ - Galician (Fran Dieguez)
+ - British English (Bruce Cowan)
+ - Greek, Modern (Efstathios Iosifidis)
+ - Chinese, Taiwan (Freddy Cheng)
+ - Turkish (Sabri Ünal)
+ - Brazilian Portuguese (Matheus Barbosa)
+
+The detailed changes can be found in debian/changelog
+
+Calls 44.alpha.0
+----------------
+Released: 3 December 2022
+
+New features:
+=============
+None
+
+Maybe noteworthy:
+=================
+* Fixed rare endless ringing bug (requires feedbackd 0.0.1)
+* SIP: Honour remote port in INVITE
+* SIP: Reenable G722 codec
+* Shuts down gracefully on SIGTERM/SIGINT
+* Flatpak build improvements
+
+Code contributions:
+===================
+ - Evangelos Ribeiro Tzaras
+ - Julian Sparber
+ - Дилян Палаузов
+
+Translation updates:
+====================
+ - Czech (Daniel Rusek)
+ - Hungarian (Balázs Úr)
+ - Ukrainian (Yuri Chornoivan)
+ - Georgian (Zurab Kargareteli)
+ - Swedish (Anders Jonsson)
+ - Polish (Piotr Drąg)
+ - Romanian (Daniel Șerbănescu)
+ - Italian (Vittorio Monti)
+ - Hebrew (Yosef Or Boczko)
+ - Portuguese (Hugo Carvalho)
+ - Finnish (Jiri Grönroos)
+ - Russian (Aleksandr Melman)
+ - Indonesian (Kukuh Syafaat)
+ - Basque (asier Sarasua Garmendia)
+ - Chinese (Boyuan Yang)
+
+The detailed changes can be found in debian/changelog
+
 Calls 43.0
 ----------
 Released: 19 September 2022
diff -pruN 43.0-1/org.gnome.Calls.json 44~alpha.1-1/org.gnome.Calls.json
--- 43.0-1/org.gnome.Calls.json	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/org.gnome.Calls.json	2023-01-12 09:50:29.000000000 +0000
@@ -16,7 +16,9 @@
         "--talk-name=im.pidgin.purple.PurpleService",
         "--talk-name=org.gnome.evolution.dataserver.Subprocess.Backend.*",
         "--talk-name=org.mobian_project.CallAudio",
-        "--talk-name=org.sigxcpu.Feedback"
+        "--talk-name=org.sigxcpu.Feedback",
+        "--talk-name=org.gtk.vfs.*",
+        "--filesystem=xdg-run/gvfsd"
     ],
     "cleanup" : [
         "/include",
@@ -50,124 +52,91 @@
             ]
         },
         {
-            "name" : "gsound",
-            "buildsystem" : "meson",
-            "sources" : [
-                {
-                    "type" : "archive",
-                    "url" : "https://download.gnome.org/sources/gsound/1.0/gsound-1.0.3.tar.xz",
-                    "sha256" : "ca2d039e1ebd148647017a7f548862350bc9af01986d39f10cfdc8e95f07881a"
-                }
-            ],
-            "modules": [
-                {
-                    "name" : "libcanberra",
-                    "sources" : [
-                        {
-                            "type" : "archive",
-                            "url" : "http://0pointer.de/lennart/projects/libcanberra/libcanberra-0.30.tar.xz",
-                            "sha256" : "c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72"
-                        }
-                    ],
-                    "config-opts" : [
-                        "--disable-alsa",
-                        "--disable-null",
-                        "--disable-oss"
-                    ]
-                }
-            ]
-        },
-        {
             "name" : "libpeas",
             "buildsystem" : "meson",
-            "sources" : [
-                {
-                    "type" : "archive",
-                    "url" : "https://download.gnome.org/sources/libpeas/1.30/libpeas-1.30.0.tar.xz",
-                    "sha256": "0bf5562e9bfc0382a9dcb81f64340787542568762a3a367d9d90f6185898b9a3"
-                }
-            ]
-        },
-        {
-            "name" : "boost",
-            "buildsystem" : "simple",
-            "sources" : [
-                {
-                    "type" : "archive",
-                    "url" : "https://boostorg.jfrog.io/artifactory/main/release/1.72.0/source/boost_1_72_0.tar.bz2",
-                    "sha256" : "59c9b274bc451cf91a9ba1dd2c7fdcaf5d60b1b3aa83f2c9fa143417cc660722"
-                }
-            ],
-            "build-commands" : [
-                "./bootstrap.sh --prefix=${FLATPAK_DEST} --with-libraries=date_time,thread,system",
-                "./b2 -j ${FLATPAK_BUILDER_N_JOBS} install"
-            ],
-            "cleanup" : [
-                "/share",
-                "/bin"
-            ]
-        },
-        {
-            "name" : "GTest",
-            "buildsystem" : "cmake-ninja",
-            "cleanup" : ["*"],
-            "sources" : [
-                {
-                    "type" : "archive",
-                    "url" : "http://archive.ubuntu.com/ubuntu/pool/universe/g/googletest/googletest_1.8.0.orig.tar.gz",
-                    "md5" : "16877098823401d1bf2ed7891d7dce36"
-                }
-            ]
-        },
-        {
-            "name" : "protobuf",
-            "cleanup" : [
-                "protoc",
-                "/bin",
-                "/doc",
-                "/lib/plugins"
+            "config-opts" : [
+                "-Ddemos=false",
+                "-Dwidgetry=false",
+                "-Dlua51=false",
+                "-Dglade_catalog=false",
+                "-Dintrospection=false"
             ],
             "sources" : [
                 {
                     "type" : "archive",
-                    "url" : "https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protobuf-cpp-3.6.1.tar.gz",
-                    "sha256" : "b3732e471a9bb7950f090fd0457ebd2536a9ba0891b7f3785919c654fe2a2529"
-                }
-            ]
-        },
-        {
-            "name" : "cmocka",
-            "buildsystem" : "cmake",
-            "builddir" : true,
-            "sources" : [
-                {
-                    "type" : "archive",
-                    "url" : "https://cmocka.org/files/1.1/cmocka-1.1.5.tar.xz",
-                    "sha256" : "f0ccd8242d55e2fd74b16ba518359151f6f8383ff8aef4976e48393f77bba8b6"
+                    "url" : "https://download.gnome.org/sources/libpeas/1.34/libpeas-1.34.0.tar.xz",
+                    "sha256": "4305f715dab4b5ad3e8007daec316625e7065a94e63e25ef55eb1efb964a7bf0"
                 }
             ]
         },
         {
             "name" : "libphonenumber",
-            "buildsystem" : "cmake-ninja",
+            "buildsystem" : "cmake",
+            "config-opts" : [
+                "-DCMAKE_CXX_STANDARD=17",
+                "-DREGENERATE_METADATA=OFF",
+                "-DUSE_BOOST=OFF"
+            ],
             "sources" : [
                 {
                     "type" : "archive",
-                    "url" : "https://github.com/google/libphonenumber/archive/v8.10.16.tar.gz",
-                    "sha256" : "0cd9baf788dc7a7cca94ecbd43d0a562c4acf21f234d66d756574be89edf14c5"
+                    "url" : "https://github.com/google/libphonenumber/archive/refs/tags/v8.12.54.tar.gz",
+                    "sha256" : "cf3d531a6b097cad508c475888bcf042ff15fabc6be05e3f817224ae8512ce63"
                 },
                 {
                     "type" : "shell",
                     "commands" : [
                         "sed -i -e 's/\${\${NAME}_BIN}-NOTFOUND/\${NAME}_BIN-NOTFOUND/' cpp/CMakeLists.txt"
                     ]
-                },
-                {
-                    "type" : "patch",
-                    "path" : "build-aux/fix-libphonenumber-build.patch"
                 }
             ],
-            "subdir" : "cpp"
+            "subdir" : "cpp",
+            "modules" : [
+		{
+		    "name" : "GTest",
+		    "buildsystem" : "cmake-ninja",
+		    "cleanup" : ["*"],
+		    "sources" : [
+		        {
+		            "type" : "archive",
+		            "url" : "https://github.com/google/googletest/archive/refs/tags/release-1.12.1.tar.gz",
+		            "sha256" : "81964fe578e9bd7c94dfdb09c8e4d6e6759e19967e397dbea48d1c10e45d0df2"
+		        }
+		    ]
+		},
+		{
+		    "name" : "protobuf",
+		    "cleanup" : [
+		        "protoc",
+		        "/bin",
+		        "/doc",
+		        "/lib/plugins"
+		    ],
+		    "sources" : [
+		        {
+		            "type" : "archive",
+		            "url" : "https://github.com/protocolbuffers/protobuf/releases/download/v21.6/protobuf-cpp-3.21.6.tar.gz",
+		            "sha256" : "a3c4c104b98a21a577ce5ecc0d9b9f43a359b917d0bcf69467b70dc27416dfdc"
+		        }
+		    ]
+		},
+		{
+		    "name" : "abseil",
+		    "buildsystem" : "cmake",
+		    "config-opts" : [
+		        "-DCMAKE_CXX_STANDARD=17",
+		        "-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
+		    ],
+		    "sources" : [
+		        {
+		            "type" : "archive",
+		            "url" : "https://github.com/abseil/abseil-cpp/archive/refs/tags/20220623.1.tar.gz",
+		            "sha256" : "91ac87d30cc6d79f9ab974c51874a704de9c2647c40f6932597329a282217ba8"
+		        }
+		    ]
+		}
+	    ]
+
         },
         {
             "name" : "libical",
@@ -209,6 +178,7 @@
             "buildsystem" : "cmake-ninja",
             "config-opts" : [
                 "-DENABLE_PHONENUMBER=ON",
+                "-DENABLE_OAUTH2=OFF",
                 "-DENABLE_DOT_LOCKING=OFF",
                 "-DENABLE_FILE_LOCKING=fcntl",
                 "-DENABLE_GOA=OFF",
@@ -222,7 +192,11 @@
                 "-DENABLE_INSTALLED_TESTS=OFF",
                 "-DENABLE_GTK_DOC=OFF",
                 "-DENABLE_EXAMPLES=OFF",
-                "-DWITH_PHONENUMBER:PATH=/"
+                "-DENABLE_OAUTH2=OFF",
+                "-DWITH_PHONENUMBER:PATH=/",
+                "-DPHONENUMBER_DEFINITIONS=",
+                "-DENABLE_CANBERRA=OFF",
+                "-DENABLE_DOT_LOCKING=OFF"
             ],
             "sources" : [
                 {
@@ -270,8 +244,8 @@
             "sources" : [
                 {
                     "type" : "archive",
-                    "url" : "https://source.puri.sm/Librem5/feedbackd/-/archive/v0.0.0+git20220208/feedbackd-v0.0.0+git20220208.tar.gz",
-                    "sha256" : "b4504aad1d061a41d1ca8cf4d09b43fecbd6b2286b6593d0b8a15169ab21398a"
+                    "url" : "https://source.puri.sm/Librem5/feedbackd/-/archive/v0.0.1/feedbackd-v0.0.1.tar.gz",
+                    "sha256" : "95c0658698e1ba17dae89f64e03a5ba57d938b22ff9869e36f2ded07dc6ccc48"
                 }
             ]
         },
@@ -287,38 +261,27 @@
             ]
         },
         {
-            "name" : "gstreamer",
-            "buildsystem" : "meson",
-            "sources" : [
-                {
-                    "type" : "archive",
-                    "url" : "https://gitlab.freedesktop.org/gstreamer/gstreamer/-/archive/1.19.3/gstreamer-1.19.3.tar.gz",
-                    "sha256" : "f155fe7335de78988dc6264524e716b6e4f02be27d106b765c187cc2c1d5de7e"
-                }
-            ]
-        },
-        {
             "name" : "sofia-sip",
             "buildsystem" : "autotools",
             "sources" : [
                 {
                     "type" : "archive",
-                    "url" : "https://github.com/freeswitch/sofia-sip/archive/v1.13.2.tar.gz",
-                    "sha256" : "b9eca9688ce4b28e062daf0933c3bf661fb607e7afafa71bda3e8f07eb88df44"
+                    "url" : "https://github.com/freeswitch/sofia-sip/archive/refs/tags/v1.13.9.tar.gz",
+                    "sha256" : "3e7bfe9345e7d196bb13cf2c6e758cec8d959f1b9dbbb3bd5459b004f6f65c6c"
                 }
             ]
         },
         {
             "name" : "calls",
-            "builddir" : "true",
+            "builddir" : true,
             "buildsystem" : "meson",
             "config-opts" : [
                 "-Dmanpages=false"
             ],
             "sources" : [
                 {
-                    "type" : "git",
-                    "url" : "https://gitlab.gnome.org/GNOME/calls.git"
+                    "type" : "dir",
+                    "path" : "./"
                 }
             ]
         }
diff -pruN 43.0-1/plugins/meson.build 44~alpha.1-1/plugins/meson.build
--- 43.0-1/plugins/meson.build	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/plugins/meson.build	2023-01-12 09:50:29.000000000 +0000
@@ -4,3 +4,5 @@ subdir('provider/dummy')
 subdir('provider/ofono')
 subdir('provider/sip')
 subdir('provider/tests')
+
+calls_plugins = [calls_mm, calls_dummy, calls_ofono, calls_sip]
diff -pruN 43.0-1/plugins/provider/mm/calls-mm-provider.c 44~alpha.1-1/plugins/provider/mm/calls-mm-provider.c
--- 43.0-1/plugins/provider/mm/calls-mm-provider.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/plugins/provider/mm/calls-mm-provider.c	2023-01-12 09:50:29.000000000 +0000
@@ -50,6 +50,8 @@ struct _CallsMMProvider {
   MMManager    *mm;
   /* A list of CallsOrigins */
   GListStore   *origins;
+
+  GCancellable *cancellable;
 };
 
 static void calls_mm_provider_message_source_interface_init (CallsMessageSourceInterface *iface);
@@ -310,9 +312,13 @@ mm_appeared_cb (GDBusConnection *connect
 {
   g_debug ("ModemManager appeared on D-Bus");
 
+  g_cancellable_cancel (self->cancellable);
+  g_clear_object (&self->cancellable);
+  self->cancellable = g_cancellable_new ();
+
   mm_manager_new (connection,
                   G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE,
-                  NULL,
+                  self->cancellable,
                   (GAsyncReadyCallback) mm_manager_new_cb,
                   self);
 }
@@ -390,6 +396,9 @@ dispose (GObject *object)
 {
   CallsMMProvider *self = CALLS_MM_PROVIDER (object);
 
+  g_cancellable_cancel (self->cancellable);
+  g_clear_object (&self->cancellable);
+
   g_clear_object (&self->mm);
 
   g_clear_handle_id (&self->watch_id, g_bus_unwatch_name);
diff -pruN 43.0-1/plugins/provider/sip/calls-sip-media-manager.c 44~alpha.1-1/plugins/provider/sip/calls-sip-media-manager.c
--- 43.0-1/plugins/provider/sip/calls-sip-media-manager.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/plugins/provider/sip/calls-sip-media-manager.c	2023-01-12 09:50:29.000000000 +0000
@@ -34,9 +34,7 @@
 #include <gio/gio.h>
 #include <gst/gst.h>
 
-#include <sys/types.h>
 #include <sys/socket.h>
-#include <netdb.h>
 
 
 /**
@@ -52,9 +50,6 @@
 typedef struct _CallsSipMediaManager {
   GObject                 parent;
 
-  int                     address_family;
-  struct         addrinfo hints;
-
   CallsSettings          *settings;
   GList                  *preferred_codecs;
   GListStore             *pipelines;
@@ -63,34 +58,6 @@ typedef struct _CallsSipMediaManager {
 G_DEFINE_TYPE (CallsSipMediaManager, calls_sip_media_manager, G_TYPE_OBJECT);
 
 
-static const char *
-get_address_family_string (CallsSipMediaManager *self,
-                           const char           *ip)
-{
-  struct addrinfo *result = NULL;
-  const char *family;
-
-  if (getaddrinfo (ip, NULL, &self->hints, &result) != 0) {
-    g_warning ("Cannot parse session IP %s", ip);
-    return NULL;
-  }
-
-  /* check if IP is IPv4 or IPv6. We need to specify this in the c= line of SDP */
-  self->address_family = result->ai_family;
-
-  if (result->ai_family == AF_INET)
-    family = "IP4";
-  else if (result->ai_family == AF_INET6)
-    family = "IP6";
-  else
-    family = NULL;
-
-  freeaddrinfo (result);
-
-  return family;
-}
-
-
 static void
 on_notify_preferred_audio_codecs (CallsSipMediaManager *self)
 {
@@ -183,10 +150,6 @@ calls_sip_media_manager_init (CallsSipMe
                             self);
   on_notify_preferred_audio_codecs (self);
 
-  /* Hints are used with getaddrinfo() when setting the session IP */
-  self->hints.ai_flags = AI_V4MAPPED | AI_ADDRCONFIG | AI_NUMERICHOST;
-  self->hints.ai_family = AF_UNSPEC;
-
   self->pipelines = g_list_store_new (CALLS_TYPE_SIP_MEDIA_PIPELINE);
 
   add_new_pipeline (self);
@@ -209,6 +172,28 @@ calls_sip_media_manager_default (void)
 }
 
 
+/* helper for calls_sip_media_manager_get_capabilities() */
+static char *
+get_connection_line (const char *ip)
+{
+  int af_family;
+
+  if (STR_IS_NULL_OR_EMPTY(ip))
+    goto invalid;
+
+  af_family = get_address_family_for_ip (ip, TRUE);
+  if (af_family == AF_UNSPEC)
+    goto invalid;
+
+  return g_strdup_printf ("c=IN %s %s\r\n",
+                          af_family == AF_INET ? "IP4" : "IP6",
+                          ip);
+
+  invalid:
+  return NULL;
+}
+
+
 /* calls_sip_media_manager_get_capabilities:
  *
  * @self: A #CallsSipMediaManager
@@ -231,8 +216,8 @@ calls_sip_media_manager_get_capabilities
 
   g_autoptr (GString) media_line = NULL;
   g_autoptr (GString) attribute_lines = NULL;
+  g_autofree char *connection_line = NULL;
   GList *node;
-  const char *address_family_string;
 
   g_return_val_if_fail (CALLS_IS_SIP_MEDIA_MANAGER (self), NULL);
 
@@ -265,7 +250,7 @@ calls_sip_media_manager_get_capabilities
     calls_srtp_crypto_attribute *attr = node->data;
     g_autoptr (GError) error = NULL;
     g_autofree char *crypto_line =
-      calls_srtp_print_sdp_crypto_attribute(attr, &error);
+      calls_srtp_print_sdp_crypto_attribute (attr, &error);
 
     if (!crypto_line) {
       g_warning ("Could not print SDP crypto line for tag %d: %s", attr->tag, error->message);
@@ -277,25 +262,15 @@ calls_sip_media_manager_get_capabilities
   g_string_append_printf (attribute_lines, "a=rtcp:%d\r\n", rtcp_port);
 
 done:
-  if (own_ip && *own_ip)
-    address_family_string = get_address_family_string (self, own_ip);
-
-  if (own_ip && *own_ip && address_family_string)
-    return g_strdup_printf ("v=0\r\n"
-                            "c=IN %s %s\r\n"
-                            "%s\r\n"
-                            "%s\r\n",
-                            address_family_string,
-                            own_ip,
-                            media_line->str,
-                            attribute_lines->str);
-  else
-    return g_strdup_printf ("v=0\r\n"
-                            "%s\r\n"
-                            "%s\r\n",
-                            media_line->str,
-                            attribute_lines->str);
+  connection_line = get_connection_line (own_ip);
 
+  return g_strdup_printf ("v=0\r\n"
+                          "%s"
+                          "%s\r\n"
+                          "%s\r\n",
+                          connection_line ?: "",
+                          media_line->str,
+                          attribute_lines->str);
 }
 
 
diff -pruN 43.0-1/plugins/provider/sip/calls-sip-media-pipeline.c 44~alpha.1-1/plugins/provider/sip/calls-sip-media-pipeline.c
--- 43.0-1/plugins/provider/sip/calls-sip-media-pipeline.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/plugins/provider/sip/calls-sip-media-pipeline.c	2023-01-12 09:50:29.000000000 +0000
@@ -24,6 +24,8 @@
 
 #define G_LOG_DOMAIN "CallsSipMediaPipeline"
 
+#include "calls-config.h"
+
 #include "calls-media-pipeline-enums.h"
 #include "calls-sip-media-pipeline.h"
 #include "calls-srtp-utils.h"
@@ -690,9 +692,9 @@ pipeline_init (CallsSipMediaPipeline *se
   MAKE_ELEMENT (rtcp_sink, "udpsink", "rtcp-udp-sink");
 
   /* port 0 means letting the OS allocate */
-  g_object_set (self->rtp_src, "port", 0, NULL);
+  g_object_set (self->rtp_src, "port", 0, "address", "::", NULL);
 
-  g_object_set (self->rtcp_src, "port", 0, NULL);
+  g_object_set (self->rtcp_src, "port", 0, "address", "::", NULL);
 
   g_object_set (self->rtp_sink, "async", FALSE, "sync", FALSE, NULL);
   g_object_set (self->rtcp_sink, "async", FALSE, "sync", FALSE, NULL);
@@ -1064,9 +1066,110 @@ calls_sip_media_pipeline_class_init (Cal
 }
 
 
+static void
+on_dump_data_written  (GObject      *source_object,
+                       GAsyncResult *res,
+                       gpointer      userdata)
+{
+  g_autoptr (GError) error = NULL;
+  g_autofree char *dot_data = userdata;
+  GOutputStream *stream = G_OUTPUT_STREAM (source_object);
+  gsize n_expected = GPOINTER_TO_SIZE (dot_data);
+  gsize n_written;
+
+  n_written = g_output_stream_write_finish (stream, res, &error);
+  if (n_written != n_expected) {
+    /* this is not an error
+     * TODO write the rest
+     * note: maybe easier with GBytes because of keeping track of
+     * dot_data reference ? */
+    g_warning ("Expected to write %" G_GSIZE_FORMAT
+               " but only wrote %" G_GSIZE_FORMAT " bytes",
+               n_expected,
+               n_written);
+  }
+  if (error) {
+    g_warning ("Error while trying to dump dot graph to file: %s",
+               error->message);
+  }
+}
+
+
+static void
+on_dump_file_created (GObject      *source_object,
+                      GAsyncResult *res,
+                      gpointer      userdata)
+{
+  g_autoptr (GError) error = NULL;
+  g_autoptr (GFileOutputStream) stream = NULL;
+  GFile *file = G_FILE (source_object);
+  char *dot_data = userdata;
+
+
+  stream = g_file_create_finish (G_FILE (source_object), res, &error);
+  if (!stream) {
+    g_autofree char *path = g_file_get_path (file);
+
+    if (error->code == G_IO_ERROR_EXISTS) {
+      /* we could potentially also g_file_replace() here,
+       * but no immediate need to bother right now */
+    }
+
+    g_warning ("Cannot create file %s: %s", path, error->message);
+
+    g_free (dot_data);
+    return;
+  }
+
+  g_output_stream_write_async (G_OUTPUT_STREAM (stream),
+                               dot_data,
+                               strlen (dot_data),
+                               G_PRIORITY_DEFAULT,
+                               NULL,
+                               on_dump_data_written,
+                               dot_data);
+}
+
+
+
+/* we need dump_pipeline_graph_to_path() because both
+ * GST_DEBUG_BIN_TO_DOT_FILE*() and  gst_debug_bin_to_dot_file*()
+ * require GStreamer being initialized with environment variable
+ * GST_DEBUG_DOT_DIR set.
+ */
+
+static void
+dump_pipeline_graph_to_path (GstBin     *bin,
+                             const char *full_path)
+{
+  #ifdef CALLS_GST_DEBUG
+  g_autoptr (GFile) file = NULL;
+  char *dot_data;
+
+  g_print ("Dumping pipeline graph to '%s'", full_path);
+
+  dot_data = gst_debug_bin_to_dot_data (bin,
+                                        GST_DEBUG_GRAPH_SHOW_VERBOSE);
+
+  file = g_file_new_for_path (full_path);
+
+  /* try creating, and if it fails with IO_ERROR_EXISTS try replacing the file */
+  g_file_create_async (file,
+                       G_PRIORITY_DEFAULT,
+                       G_FILE_CREATE_PRIVATE,
+                       NULL,
+                       on_dump_file_created,
+                       dot_data);
+  #endif
+}
+
+
 static gboolean
 usr2_handler (CallsSipMediaPipeline *self)
 {
+  g_autofree char *tmp_dir = NULL;
+  g_autofree char *file_path = NULL;
+
   g_print ("playing: %d\n"
            "paused: %d\n"
            "stopped: %d\n"
@@ -1078,9 +1181,19 @@ usr2_handler (CallsSipMediaPipeline *sel
            self->use_srtp ? EL_ALL_SRTP : EL_ALL_RTP,
            self->state);
 
-  GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS (GST_BIN (self->pipeline),
-                                     GST_DEBUG_GRAPH_SHOW_ALL,
-                                     "usr2-debug");
+  /* TODO once we require GLib >= 2.74
+   * we can open a temp file more easily with g_file_new_tmp_async/finish()
+
+     g_file_new_tmp_async ("calls-pipeline-XXXXXX",
+                        G_PRIORITY_DEFAULT,
+                        NULL,
+                        on_dump_file_created,
+                        dot_data);
+   */
+  tmp_dir = g_mkdtemp ("calls-pipeline-XXXXXX");
+  file_path = g_strconcat (tmp_dir, G_DIR_SEPARATOR_S, "usr2-debug.dot", NULL);
+
+  dump_pipeline_graph_to_path (GST_BIN (self->pipeline), file_path);
 
   return G_SOURCE_CONTINUE;
 }
diff -pruN 43.0-1/plugins/provider/sip/calls-sip-origin.c 44~alpha.1-1/plugins/provider/sip/calls-sip-origin.c
--- 43.0-1/plugins/provider/sip/calls-sip-origin.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/plugins/provider/sip/calls-sip-origin.c	2023-01-12 09:50:29.000000000 +0000
@@ -34,7 +34,7 @@
 #include "calls-sip-util.h"
 #include "calls-sip-media-manager.h"
 #include "calls-network-watch.h"
-#include "config.h"
+#include "calls-config.h"
 #include "enum-types.h"
 
 #include <glib/gi18n.h>
@@ -361,10 +361,14 @@ dial (CallsOrigin *origin,
                    TAG_END ());
 
   /* Make sure @host is in the dial target */
-  if (g_strstr_len (address, -1, "@"))
+  if (g_strstr_len (address, -1, "@")) {
     dial_target = g_strdup (address);
-  else
-    dial_target = g_strconcat (address, "@", self->host, NULL);
+  } else {
+    if (self->port > 0)
+      dial_target = g_strdup_printf ("%s@%s:%d", address, self->host, self->port);
+    else
+      dial_target = g_strconcat (address, "@", self->host, NULL);
+  }
 
   g_debug ("Calling `%s' from origin '%s'", address, name);
 
diff -pruN 43.0-1/plugins/provider/sip/calls-sip-provider.c 44~alpha.1-1/plugins/provider/sip/calls-sip-provider.c
--- 43.0-1/plugins/provider/sip/calls-sip-provider.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/plugins/provider/sip/calls-sip-provider.c	2023-01-12 09:50:29.000000000 +0000
@@ -36,7 +36,7 @@
 #include "calls-sip-origin.h"
 #include "calls-sip-provider.h"
 #include "calls-sip-util.h"
-#include "config.h"
+#include "calls-config.h"
 
 #include <libpeas/peas.h>
 #include <sofia-sip/nua.h>
@@ -144,7 +144,6 @@ on_origin_pw_looked_up (GObject      *so
   display_name = g_key_file_get_string (data->key_file, data->name, "DisplayName", NULL);
   protocol = g_key_file_get_string (data->key_file, data->name, "Protocol", NULL);
   port = g_key_file_get_integer (data->key_file, data->name, "Port", NULL);
-  display_name = g_key_file_get_string (data->key_file, data->name, "DisplayName", NULL);
   local_port = g_key_file_get_integer (data->key_file, data->name, "LocalPort", NULL);
 
   if (g_key_file_has_key (data->key_file, data->name, "AutoConnect", NULL))
diff -pruN 43.0-1/plugins/provider/sip/gst-rfc3551.c 44~alpha.1-1/plugins/provider/sip/gst-rfc3551.c
--- 43.0-1/plugins/provider/sip/gst-rfc3551.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/plugins/provider/sip/gst-rfc3551.c	2023-01-12 09:50:29.000000000 +0000
@@ -34,7 +34,7 @@ static MediaCodecInfo gst_codecs[] = {
   {8, "PCMA", 8000, 1, "rtppcmapay", "rtppcmadepay", "alawenc", "alawdec", "libgstalaw.so"},
   {0, "PCMU", 8000, 1, "rtppcmupay", "rtppcmudepay", "mulawenc", "mulawdec", "libgstmulaw.so"},
   {3, "GSM", 8000, 1, "rtpgsmpay", "rtpgsmdepay", "gsmenc", "gsmdec", "libgstgsm.so"},
-  /* {9, "G722", 8000, 1, "rtpg722pay", "rtpg722depay", "avenc_g722", "avdec_g722", "libgstlibav.so"}, */
+  {9, "G722", 8000, 1, "rtpg722pay", "rtpg722depay", "avenc_g722", "avdec_g722", "libgstlibav.so"},
   {4, "G723", 8000, 1, "rtpg723pay", "rtpg723depay", "avenc_g723_1", "avdec_g723_1", "libgstlibav.so"}, // does not seem to work
 };
 
diff -pruN 43.0-1/plugins/provider/sip/meson.build 44~alpha.1-1/plugins/provider/sip/meson.build
--- 43.0-1/plugins/provider/sip/meson.build	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/plugins/provider/sip/meson.build	2023-01-12 09:50:29.000000000 +0000
@@ -45,13 +45,13 @@ sip_deps = [
 sip_sources = files(
   [
     'calls-sdp-crypto-context.c', 'calls-sdp-crypto-context.h',
+    'calls-sip-account-widget.c', 'calls-sip-account-widget.h',
     'calls-sip-call.c', 'calls-sip-call.h',
+    'calls-sip-media-manager.c', 'calls-sip-media-manager.h',
+    'calls-sip-media-pipeline.c', 'calls-sip-media-pipeline.h',
     'calls-sip-origin.c', 'calls-sip-origin.h',
     'calls-sip-provider.c', 'calls-sip-provider.h',
     'calls-sip-util.c', 'calls-sip-util.h',
-    'calls-sip-media-manager.c', 'calls-sip-media-manager.h',
-    'calls-sip-media-pipeline.c', 'calls-sip-media-pipeline.h',
-    'calls-sip-account-widget.c', 'calls-sip-account-widget.h',
     'calls-srtp-utils.c', 'calls-srtp-utils.h',
     'gst-rfc3551.c', 'gst-rfc3551.h',
   ]
diff -pruN 43.0-1/plugins/provider/tests/meson.build 44~alpha.1-1/plugins/provider/tests/meson.build
--- 43.0-1/plugins/provider/tests/meson.build	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/plugins/provider/tests/meson.build	2023-01-12 09:50:29.000000000 +0000
@@ -23,8 +23,6 @@
 if get_option('tests')
 
 test_env = [
-  'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
-  'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()),
   'G_DEBUG=gc-friendly,fatal-warnings',
   'GSETTINGS_BACKEND=memory',
   'PYTHONDONTWRITEBYTECODE=yes',
@@ -34,12 +32,12 @@ test_env = [
   'CALLS_AUDIOSRC=audiotestsrc',
   'CALLS_AUDIOSINK=fakesink',
   'GSETTINGS_SCHEMA_DIR=@0@/data'.format(meson.project_build_root()),
+  'CALLS_PLUGIN_DIR=@0@/plugins'.format(meson.project_build_root()),
 ]
 
 test_cflags = [
   '-DFOR_TESTING',
   '-Wno-error=deprecated-declarations',
-  '-DPLUGIN_BUILDDIR="@0@"'.format(full_calls_plugin_builddir),
 ]
 
 test_link_args = [
diff -pruN 43.0-1/plugins/provider/tests/test-media.c 44~alpha.1-1/plugins/provider/tests/test-media.c
--- 43.0-1/plugins/provider/tests/test-media.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/plugins/provider/tests/test-media.c	2023-01-12 09:50:29.000000000 +0000
@@ -85,7 +85,6 @@ test_sip_media_manager_caps (void)
   g_debug ("PCMA SRTP test OK");
 
   /* G722 RTP */
-  /*
   codecs = g_list_append (NULL, media_codec_by_name ("G722"));
 
   sdp_message =
@@ -103,10 +102,9 @@ test_sip_media_manager_caps (void)
   g_free (sdp_message);
 
   g_debug ("G722 RTP test OK");
-  */
 
   /* G722 PCMU PCMA RTP (in this order) */
-  /* codecs = g_list_append (NULL, media_codec_by_name ("G722")); */
+  codecs = g_list_append (NULL, media_codec_by_name ("G722"));
   codecs = g_list_append (codecs, media_codec_by_name ("PCMU"));
   codecs = g_list_append (codecs, media_codec_by_name ("PCMA"));
 
@@ -115,11 +113,9 @@ test_sip_media_manager_caps (void)
 
   g_assert_true (sdp_message);
   g_assert_true (find_string_in_sdp_message (sdp_message,
-                                             "m=audio 33340 RTP/AVP 0 8"));
-  /*
+                                             "m=audio 33340 RTP/AVP 9 0 8"));
   g_assert_true (find_string_in_sdp_message (sdp_message,
                                              "a=rtpmap:9 G722/8000"));
-  */
   g_assert_true (find_string_in_sdp_message (sdp_message,
                                              "a=rtpmap:0 PCMU/8000"));
   g_assert_true (find_string_in_sdp_message (sdp_message,
@@ -133,9 +129,7 @@ test_sip_media_manager_caps (void)
   /* GSM PCMA G722 PCMU SRTP (in this order) */
   codecs = g_list_append (NULL, media_codec_by_name ("GSM"));
   codecs = g_list_append (codecs, media_codec_by_name ("PCMA"));
-  /*
   codecs = g_list_append (codecs, media_codec_by_name ("G722"));
-  */
   codecs = g_list_append (codecs, media_codec_by_name ("PCMU"));
 
   sdp_message =
@@ -143,7 +137,7 @@ test_sip_media_manager_caps (void)
 
   g_assert_true (sdp_message);
   g_assert_true (find_string_in_sdp_message (sdp_message,
-                                             "m=audio 18098 RTP/SAVP 3 8 0"));
+                                             "m=audio 18098 RTP/SAVP 3 8 9 0"));
 
   g_clear_pointer (&codecs, g_list_free);
   g_free (sdp_message);
diff -pruN 43.0-1/plugins/provider/tests/test-sdp-crypto.c 44~alpha.1-1/plugins/provider/tests/test-sdp-crypto.c
--- 43.0-1/plugins/provider/tests/test-sdp-crypto.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/plugins/provider/tests/test-sdp-crypto.c	2023-01-12 09:50:29.000000000 +0000
@@ -46,10 +46,15 @@ test_crypto_manual (void)
                                 "%s",
                                 offer_crypto_attr);
 
-  sdp_parser_offer = sdp_parse (&home, offer_full, -1, sdp_f_config);
+  sdp_parser_offer = sdp_parse (&home, offer_full, strlen(offer_full), sdp_f_config);
 
   sdp_offer = sdp_session (sdp_parser_offer);
 
+  if (!sdp_offer) {
+    g_error("%s", sdp_parsing_error(sdp_parser_offer));
+  }
+
+  g_assert_true (sdp_offer != NULL);
 
   g_assert_true (calls_sdp_crypto_context_set_remote_media (ctx, sdp_offer->sdp_media));
 
@@ -63,7 +68,7 @@ test_crypto_manual (void)
                                  "%s",
                                  answer_crypto_attr);
 
-  sdp_parser_answer = sdp_parse (&home, answer_full, -1, sdp_f_config);
+  sdp_parser_answer = sdp_parse (&home, answer_full, strlen(answer_full), sdp_f_config);
   sdp_answer = sdp_session (sdp_parser_answer);
 
   g_assert_true (calls_sdp_crypto_context_set_local_media (ctx, sdp_answer->sdp_media));
@@ -128,7 +133,7 @@ test_crypto_offer_answer (void)
 
   media_line_offer = g_strdup_printf ("m=audio 42024 RTP/SAVP 0\r\n%s",
                                       attr_offer_str);
-  sdp_parser_offer = sdp_parse (&home, media_line_offer, -1, sdp_f_config);
+  sdp_parser_offer = sdp_parse (&home, media_line_offer, strlen(media_line_offer), sdp_f_config);
   sdp_session_offer = sdp_session (sdp_parser_offer);
 
   calls_sdp_crypto_context_set_remote_media (ctx_answer,
@@ -150,7 +155,7 @@ test_crypto_offer_answer (void)
 
   media_line_answer = g_strdup_printf ("m=audio 42124 RTP/SAVP 0\r\n%s",
                                        attr_answer_str);
-  sdp_parser_answer = sdp_parse (&home, media_line_answer, -1, sdp_f_config);
+  sdp_parser_answer = sdp_parse (&home, media_line_answer, strlen(media_line_answer), sdp_f_config);
   sdp_session_answer = sdp_session (sdp_parser_answer);
 
   calls_sdp_crypto_context_set_remote_media (ctx_offer,
diff -pruN 43.0-1/plugins/provider/tests/test-sip.c 44~alpha.1-1/plugins/provider/tests/test-sip.c
--- 43.0-1/plugins/provider/tests/test-sip.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/plugins/provider/tests/test-sip.c	2023-01-12 09:50:29.000000000 +0000
@@ -429,10 +429,6 @@ main (int   argc,
   gtk_test_init (&argc, &argv, NULL);
 
   gst_init (NULL, NULL);
-
-#ifdef PLUGIN_BUILDDIR
-  peas_engine_add_search_path (peas_engine_get_default (), PLUGIN_BUILDDIR, NULL);
-#endif
   /* this is a workaround for an issue with sofia: https://github.com/freeswitch/sofia-sip/issues/58 */
   su_random64 ();
 
diff -pruN 43.0-1/po/be.po 44~alpha.1-1/po/be.po
--- 43.0-1/po/be.po	1970-01-01 00:00:00.000000000 +0000
+++ 44~alpha.1-1/po/be.po	2023-01-12 09:50:29.000000000 +0000
@@ -0,0 +1,568 @@
+# Belarusian translation for calls.
+# Copyright (C) 2022 calls's COPYRIGHT HOLDER
+# This file is distributed under the same license as the calls package.
+# Yuras Shumovich <shumovichy@gmail.com>, 2022.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: calls main\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
+"POT-Creation-Date: 2022-11-29 21:42+0000\n"
+"PO-Revision-Date: 2022-12-09 01:44+0300\n"
+"Last-Translator: Yuras Shumovich <shumovichy@gmail.com>\n"
+"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
+"Language: be\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Poedit 3.2\n"
+
+#: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
+#: src/calls-application.c:457 src/ui/call-window.ui:9 src/ui/main-window.ui:7
+msgid "Calls"
+msgstr "Выклікі"
+
+#: data/org.gnome.Calls.desktop.in:4 data/org.gnome.Calls-daemon.desktop.in:4
+msgid "Phone"
+msgstr "Тэлефон"
+
+#: data/org.gnome.Calls.desktop.in:5
+msgid "A phone dialer and call handler"
+msgstr "Набіральнік нумара і апрацоўшчык выклікаў"
+
+#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
+#: data/org.gnome.Calls.desktop.in:7 data/org.gnome.Calls-daemon.desktop.in:7
+msgid "Telephone;Call;Phone;Dial;Dialer;PSTN;"
+msgstr ""
+"Telephone;Call;Phone;Dial;Dialer;PSTN;Тэлефон;Выклікі;Званкі;Званіць;Набор;"
+
+#: data/org.gnome.Calls-daemon.desktop.in:3
+msgid "Calls (daemon)"
+msgstr "Выклікі (дэман)"
+
+#: data/org.gnome.Calls-daemon.desktop.in:5
+msgid "A phone dialer and call handler (daemon mode)"
+msgstr "Набіральнік нумара і апрацоўшчык выклікаў (рэжым дэмана)"
+
+#: data/org.gnome.Calls.metainfo.xml:7
+msgid "Make phone and SIP calls"
+msgstr "Тэлефанаванне і выклікі праз SIP"
+
+#: data/org.gnome.Calls.metainfo.xml:10
+msgid ""
+"Calls is a simple, elegant phone dialer and call handler for GNOME. It can "
+"be used with a cellular modem for plain old telephone calls as well as VoIP "
+"calls using the SIP protocol."
+msgstr ""
+"Выклікі - гэта просты элегантны набіральнік нумара і апрацоўшчык выклікаў "
+"для GNOME. Праграму можна выкарыстоўваць з мадэмам сотавай сувязі для "
+"звычайнага тэлефанавання, а таксама для выклікаў праз VoIP па пратаколе SIP."
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:26
+msgid "Placing a call"
+msgstr "Выконваецца выклік"
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:31
+msgid "The call history"
+msgstr "Гісторыя выклікаў"
+
+#: data/org.gnome.Calls.gschema.xml:7 data/org.gnome.Calls.gschema.xml:8
+msgid "Whether calls should automatically use the default origin"
+msgstr "Ці павінны выклікі аўтаматычна выкарыстоўваць прадвызначаную крыніцу"
+
+#: data/org.gnome.Calls.gschema.xml:13
+msgid "The country code as reported by the modem"
+msgstr "Код краіны, які паведамляе мадэм"
+
+#: data/org.gnome.Calls.gschema.xml:14
+msgid "The country code is used for contact name lookup"
+msgstr "Код краіны выкарыстоўваецца для пошуку па імені кантакту"
+
+#: data/org.gnome.Calls.gschema.xml:19
+msgid "The plugins to load automatically"
+msgstr "Убудовы, якія загружаюцца аўтаматычна"
+
+#: data/org.gnome.Calls.gschema.xml:20
+msgid "These plugins will be automatically loaded on application startup."
+msgstr "Гэтыя ўбудовы будуць аўтаматычна загружацца падчас запуску праграмы."
+
+#: data/org.gnome.Calls.gschema.xml:25
+msgid "Audio codecs to use for VoIP calls in order of preference"
+msgstr ""
+"Парадак прыярытэту аўдыякодэкаў, якія выкарыстоўваюцца для выклікаў VoIP"
+
+#: data/org.gnome.Calls.gschema.xml:26
+msgid "The preferred audio codecs to use for VoIP calls (if available)"
+msgstr "Пажаданыя аўдыякодэкі для выклікаў VoIP (калі даступна)"
+
+#: data/org.gnome.Calls.gschema.xml:31
+msgid "Whether to allow using SDES for SRTP without TLS as the transport"
+msgstr "Ці дазваляць выкарыстанне SDES для SRTP без TLS у якасці транспарту"
+
+#: data/org.gnome.Calls.gschema.xml:32
+msgid "Set to true if you want to allow with keys exchanged in cleartext."
+msgstr ""
+"Задайце значэнне true, калі вы хочаце дазволіць абмен ключамі праз адкрыты "
+"тэкст."
+
+#: src/calls-account.c:163
+msgid "Default (uninitialized) state"
+msgstr "Прадвызначаны (неініцыялізаваны) стан"
+
+#: src/calls-account.c:166
+msgid "Initializing account…"
+msgstr "Ініцыялізацыя ўліковага запісу…"
+
+#: src/calls-account.c:169
+msgid "Uninitializing account…"
+msgstr "Адмена ініцыялізацыі ўліковага запісу…"
+
+#: src/calls-account.c:172
+msgid "Connecting to server…"
+msgstr "Злучэнне з серверам…"
+
+#: src/calls-account.c:175
+msgid "Account is online"
+msgstr "Уліковы запіс у сетцы"
+
+#: src/calls-account.c:178
+msgid "Disconnecting from server…"
+msgstr "Адлучэнне ад сервера…"
+
+#: src/calls-account.c:181
+msgid "Account is offline"
+msgstr "Уліковы запіс не ў сетцы"
+
+#: src/calls-account.c:184
+msgid "Account encountered an error"
+msgstr "Уліковы запіс сутыкнуўся з памылкай"
+
+#: src/calls-account.c:202
+msgid "No reason given"
+msgstr "Прычына не ўказана"
+
+#: src/calls-account.c:205
+msgid "Initialization started"
+msgstr "Ініцыялізацыя запушчана"
+
+#: src/calls-account.c:208
+msgid "Initialization complete"
+msgstr "Ініцыялізацыя завершана"
+
+#: src/calls-account.c:211
+msgid "Uninitialization started"
+msgstr "Адмена ініцыялізацыі пачалася"
+
+#: src/calls-account.c:214
+msgid "Uninitialization complete"
+msgstr "Адмена ініцыялізацыі завершана"
+
+#: src/calls-account.c:217
+msgid "No credentials set"
+msgstr "Уліковыя даныя не зададзены"
+
+#: src/calls-account.c:220
+msgid "Starting to connect"
+msgstr "Запуск злучэння"
+
+#: src/calls-account.c:223
+msgid "Connection timed out"
+msgstr "Скончыўся тэрмін чакання злучэння"
+
+#: src/calls-account.c:226
+msgid "Domain name could not be resolved"
+msgstr "Імя дамена не знойдзена"
+
+#: src/calls-account.c:229
+msgid "Server did not accept username or password"
+msgstr "Сервер не прыняў імя карыстальніка або пароль"
+
+#: src/calls-account.c:232
+msgid "Connecting complete"
+msgstr "Злучэнне выканана"
+
+#: src/calls-account.c:235
+msgid "Starting to disconnect"
+msgstr "Запуск адлучэння"
+
+#: src/calls-account.c:238
+msgid "Disconnecting complete"
+msgstr "Адлучэнне выканана"
+
+#: src/calls-account.c:241
+msgid "Internal error occurred"
+msgstr "Узнікла ўнутраная памылка"
+
+#: src/calls-account-overview.c:177
+#, c-format
+msgid "Edit account: %s"
+msgstr "Змяніць уліковы запіс: %s"
+
+#: src/calls-account-overview.c:184
+msgid "Add new account"
+msgstr "Дадаць новы ўліковы запіс"
+
+#: src/calls-account-overview.c:376
+msgid "Account overview"
+msgstr "Агляд уліковага запісу"
+
+#: src/calls-application.c:327
+#, c-format
+msgid "Tried dialing invalid tel URI `%s'"
+msgstr "Была спроба набраць няправільны URI тэлефона `%s'"
+
+#: src/calls-application.c:660
+#, c-format
+msgid "Don't know how to open `%s'"
+msgstr "Невядома як адкрыць `%s'"
+
+#: src/calls-application.c:717
+msgid "The name of the plugin to use as a call provider"
+msgstr "Назва ўбудовы для выкарыстання ў якасці пастаўшчыка выклікаў"
+
+#: src/calls-application.c:718
+msgid "PLUGIN"
+msgstr "УБУДОВА"
+
+#: src/calls-application.c:723
+msgid "Whether to present the main window on startup"
+msgstr "Ці паказваць галоўнае акно пры запуску"
+
+#: src/calls-application.c:729
+msgid "Dial a telephone number"
+msgstr "Набраць тэлефонны нумар"
+
+#: src/calls-application.c:730
+msgid "NUMBER"
+msgstr "НУМАР"
+
+#: src/calls-application.c:735
+msgid "Enable verbose debug messages"
+msgstr "Уключыць падрабязныя адладачныя паведамленні"
+
+#: src/calls-application.c:741
+msgid "Print current version"
+msgstr "Вывесці версію праграмы"
+
+#: src/calls-best-match.c:435
+msgid "Anonymous caller"
+msgstr "Ананімны абанент"
+
+#: src/calls-call-record-row.c:97
+#, c-format
+msgid ""
+"%s\n"
+"yesterday"
+msgstr ""
+"%s\n"
+"учора"
+
+#: src/calls-main-window.c:123
+msgid "translator-credits"
+msgstr "Yuras Shumovich <shumovichy@gmail.com>"
+
+#: src/calls-main-window.c:316
+msgid "Can't place calls: No modem or VoIP account available"
+msgstr "Немагчыма рабіць выклікі: няма мадэма або ўліковага запісу VoIP"
+
+#: src/calls-main-window.c:318
+msgid "Can't place calls: No plugin loaded"
+msgstr "Немагчыма рабіць выклікі: убудова не загружана"
+
+#: src/calls-main-window.c:353
+msgid "Contacts"
+msgstr "Кантакты"
+
+#: src/calls-main-window.c:363
+msgid "Dial Pad"
+msgstr "Панэль набору"
+
+#. Recent as in "Recent calls" (the call history)
+#: src/calls-main-window.c:372
+msgid "Recent"
+msgstr "Нядаўнія"
+
+#: src/calls-notifier.c:52
+msgid "Missed call"
+msgstr "Прапушчаны выклік"
+
+#. %s is a name here
+#: src/calls-notifier.c:76
+#, c-format
+msgid "Missed call from <b>%s</b>"
+msgstr "Прапушчаны выклік ад <b>%s</b>"
+
+#. %s is a id here
+#: src/calls-notifier.c:79
+#, c-format
+msgid "Missed call from %s"
+msgstr "Прапушчаны выклік ад %s"
+
+#: src/calls-notifier.c:81
+msgid "Missed call from unknown caller"
+msgstr "Прапушчаны выклік ад невядомага абанента"
+
+#: src/calls-notifier.c:87
+msgid "Call back"
+msgstr "Зваротны выклік"
+
+#: src/ui/account-overview.ui:16
+msgid "VoIP Accounts"
+msgstr "Уліковыя запісы VoIP"
+
+#: src/ui/account-overview.ui:49
+msgid "Add VoIP Accounts"
+msgstr "Дадаць уліковыя запісы VoIP"
+
+#: src/ui/account-overview.ui:51
+msgid ""
+"You can add VoIP account here. It will allow you to place and receive VoIP "
+"calls using the SIP protocol. This feature is still relatively new and not "
+"yet feature complete (i.e. no encrypted media)."
+msgstr ""
+"Тут вы можаце дадаць уліковы запіс VoIP. Гэта дазволіць вам здзяйсняць і "
+"прымаць выклікі VoIP праз пратакол SIP. Гэтая функцыя адносна новая і яшчэ "
+"не завершана (г.зн. няма шыфравання медыятрафіка)."
+
+#: src/ui/account-overview.ui:58 src/ui/account-overview.ui:106
+msgid "_Add Account"
+msgstr "_Дадаць уліковы запіс"
+
+#. Translators: This is a verb, not a noun. Call the number of the currently selected row.
+#: src/ui/call-record-row.ui:62
+msgid "Call"
+msgstr "Набраць"
+
+#: src/ui/call-record-row.ui:102
+msgid "_Delete Call"
+msgstr "_Выдаліць выклік"
+
+#. Translators: This is a phone number
+#: src/ui/call-record-row.ui:107
+msgid "_Copy number"
+msgstr "_Скапіраваць нумар"
+
+#: src/ui/call-record-row.ui:112
+msgid "_Add contact"
+msgstr "_Дадаць кантакт"
+
+#: src/ui/call-record-row.ui:117
+msgid "_Send SMS"
+msgstr "_Адправіць SMS"
+
+#: src/ui/call-selector-item.ui:38
+msgid "On hold"
+msgstr "На ўтрыманні"
+
+#: src/ui/contacts-box.ui:60
+msgid "No Contacts Found"
+msgstr "Кантакты не знойдзены"
+
+#: src/ui/history-box.ui:10
+msgid "No Recent Calls"
+msgstr "Няма нядаўніх выклікаў"
+
+#: src/ui/main-window.ui:105
+msgid "USSD"
+msgstr "USSD"
+
+#: src/ui/main-window.ui:114
+msgid "_Cancel"
+msgstr "_Скасаваць"
+
+#: src/ui/main-window.ui:131
+msgid "_Close"
+msgstr "_Закрыць"
+
+#: src/ui/main-window.ui:141
+msgid "_Send"
+msgstr "_Адправіць"
+
+#: src/ui/main-window.ui:214
+msgid "_VoIP Accounts"
+msgstr "_Уліковыя запісы VoIP"
+
+#: src/ui/main-window.ui:227
+msgid "_Keyboard shortcuts"
+msgstr "_Спалучэнні клавіш"
+
+#: src/ui/main-window.ui:233
+msgid "_Help"
+msgstr "_Даведка"
+
+#. "Calls" is the application name, do not translate
+#: src/ui/main-window.ui:239
+msgid "_About Calls"
+msgstr "_Аб праграме"
+
+#: src/ui/new-call-box.ui:38
+msgid "Enter a VoIP address"
+msgstr "Увядзіце адрас VoIP"
+
+#: src/ui/new-call-box.ui:62
+msgid "SIP Account"
+msgstr "Уліковы запіс SIP"
+
+#: src/ui/new-call-header-bar.ui:6
+msgid "New Call"
+msgstr "Новы выклік"
+
+#: src/ui/new-call-header-bar.ui:19
+msgid "Back"
+msgstr "Назад"
+
+#: plugins/provider/mm/calls-mm-call.c:73
+msgid "Unknown reason"
+msgstr "Невядомая прычына"
+
+#: plugins/provider/mm/calls-mm-call.c:74
+msgid "Outgoing call started"
+msgstr "Выходны выклік пачаўся"
+
+#: plugins/provider/mm/calls-mm-call.c:75
+msgid "New incoming call"
+msgstr "Новы ўваходны выклік"
+
+#: plugins/provider/mm/calls-mm-call.c:76
+msgid "Call accepted"
+msgstr "Выклік прыняты"
+
+#: plugins/provider/mm/calls-mm-call.c:77
+msgid "Call ended"
+msgstr "Выклік закончаны"
+
+#: plugins/provider/mm/calls-mm-call.c:78
+msgid "Call disconnected (busy or call refused)"
+msgstr "Выклік адключаны (заняты або адхілены)"
+
+#: plugins/provider/mm/calls-mm-call.c:79
+msgid "Call disconnected (wrong id or network problem)"
+msgstr "Выклік адключаны (няправільны id або праблемы з сеткай)"
+
+#: plugins/provider/mm/calls-mm-call.c:80
+msgid "Call disconnected (error setting up audio channel)"
+msgstr "Выклік адключаны (памылка наладжвання аўдыяканала)"
+
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
+msgid "Call transferred"
+msgstr "Выклік пераключаны"
+
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
+msgid "Call deflected"
+msgstr "Выклік адхілены"
+
+#: plugins/provider/mm/calls-mm-call.c:109
+#, c-format
+msgid "Call disconnected (unknown reason code %i)"
+msgstr "Выклік адключаны (код невядомай прычыны %i)"
+
+#: plugins/provider/mm/calls-mm-provider.c:84
+msgid "ModemManager unavailable"
+msgstr "ModemManager недаступны"
+
+#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/ofono/calls-ofono-provider.c:96
+msgid "No voice-capable modem available"
+msgstr "Няма даступнага галасавога мадэма"
+
+#: plugins/provider/mm/calls-mm-provider.c:88
+#: plugins/provider/ofono/calls-ofono-provider.c:98
+msgid "Normal"
+msgstr "Нармальна"
+
+#: plugins/provider/mm/calls-mm-provider.c:456
+#: plugins/provider/ofono/calls-ofono-provider.c:546
+msgid "Initialized"
+msgstr "Ініцыявана"
+
+#: plugins/provider/ofono/calls-ofono-provider.c:94
+msgid "DBus unavailable"
+msgstr "DBus недаступны"
+
+#: plugins/provider/sip/calls-sip-account-widget.c:668
+msgid "No encryption"
+msgstr "Без шыфравання"
+
+#. TODO Optional encryption
+#: plugins/provider/sip/calls-sip-account-widget.c:675
+msgid "Force encryption"
+msgstr "Прымусовае шыфраванне"
+
+#: plugins/provider/sip/calls-sip-call.c:123
+msgid "Cryptographic key exchange unsuccessful"
+msgstr "Няўдалы абмен крыптаграфічнымі ключамі"
+
+#: plugins/provider/sip/sip-account-widget.ui:11
+msgid "Add Account"
+msgstr "Дадаць уліковы запіс"
+
+#: plugins/provider/sip/sip-account-widget.ui:17
+msgid "_Log In"
+msgstr "_Увайсці"
+
+#: plugins/provider/sip/sip-account-widget.ui:42
+msgid "Manage Account"
+msgstr "Кіраванне ўліковым запісам"
+
+#: plugins/provider/sip/sip-account-widget.ui:47
+msgid "_Apply"
+msgstr "_Ужыць"
+
+#: plugins/provider/sip/sip-account-widget.ui:61
+msgid "_Delete"
+msgstr "_Выдаліць"
+
+#: plugins/provider/sip/sip-account-widget.ui:91
+msgid "Server"
+msgstr "Сервер"
+
+#: plugins/provider/sip/sip-account-widget.ui:109
+msgid "Display Name"
+msgstr "Бачнае імя"
+
+#: plugins/provider/sip/sip-account-widget.ui:110
+msgid "Optional"
+msgstr "Неабавязкова"
+
+#: plugins/provider/sip/sip-account-widget.ui:128
+msgid "User ID"
+msgstr "Ідэнтыфікатар карыстальніка"
+
+#: plugins/provider/sip/sip-account-widget.ui:141
+msgid "Password"
+msgstr "Пароль"
+
+#: plugins/provider/sip/sip-account-widget.ui:166
+msgid "Port"
+msgstr "Порт"
+
+#: plugins/provider/sip/sip-account-widget.ui:182
+msgid "Transport"
+msgstr "Транспарт"
+
+#: plugins/provider/sip/sip-account-widget.ui:189
+msgid "Media Encryption"
+msgstr "Шыфраванне медыятрафіка"
+
+#: plugins/provider/sip/sip-account-widget.ui:201
+msgid "Use for Phone Calls"
+msgstr "Выкарыстоўваць для тэлефонных выклікаў"
+
+#: plugins/provider/sip/sip-account-widget.ui:214
+msgid "Automatically Connect"
+msgstr "Аўтаматычнае злучэнне"
+
+#~ msgid "Enter a number"
+#~ msgstr "Увядзіце нумар"
+
+#~ msgid "Dial"
+#~ msgstr "Набраць"
+
+#~ msgid "Delete character in front of cursor"
+#~ msgstr "Выдаліць сімвал перад курсорам"
diff -pruN 43.0-1/po/cs.po 44~alpha.1-1/po/cs.po
--- 43.0-1/po/cs.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/cs.po	2023-01-12 09:50:29.000000000 +0000
@@ -2,52 +2,241 @@
 # Copyright (C) 2021 Calls's COPYRIGHT HOLDER
 # This file is distributed under the same license as the calls package.
 # Jaroslav Svoboda <multi.flexi@seznam.cz>, 2021.
+# Daniel Rusek <mail@asciiwolf.com>, 2022.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: calls\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-05-29 14:30+0200\n"
-"PO-Revision-Date: 2021-02-24 12:58+0100\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
+"POT-Creation-Date: 2022-09-21 05:54+0000\n"
+"PO-Revision-Date: 2022-09-19 00:34+0200\n"
+"Last-Translator: Daniel Rusek <mail@asciiwolf.com>\n"
 "Language-Team: Czech <gnome-cs-list@gnome.org>\n"
+"Language: cs\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Gtranslator 3.38.0\n"
-"Last-Translator: Jaroslav Svoboda <multi.flexi@seznam.cz>\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
-"Language: cs\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"X-Generator: Poedit 3.1.1\n"
 
-#: src/calls-application.c:308 src/calls-main-window.c:112
-#: src/ui/call-window.ui:11 src/ui/main-window.ui:8
+#: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
+#: src/calls-application.c:436 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "Volání"
 
-#: src/calls-application.c:513
-msgid "The name of the plugin to use for the call Provider"
-msgstr "Název pluginu, který se má použít pro poskytovatele hovoru"
+#: data/org.gnome.Calls.desktop.in:4 data/org.gnome.Calls-daemon.desktop.in:4
+msgid "Phone"
+msgstr "Telefon"
+
+#: data/org.gnome.Calls.desktop.in:5
+msgid "A phone dialer and call handler"
+msgstr "Vytáčení a obsluha hovorů"
+
+#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
+#: data/org.gnome.Calls.desktop.in:7 data/org.gnome.Calls-daemon.desktop.in:7
+msgid "Telephone;Call;Phone;Dial;Dialer;PSTN;"
+msgstr "Telefon;Hovor;Vytáčení;Číselník;PSTN;"
+
+#: data/org.gnome.Calls-daemon.desktop.in:3
+msgid "Calls (daemon)"
+msgstr "Volání (démon)"
+
+#: data/org.gnome.Calls-daemon.desktop.in:5
+msgid "A phone dialer and call handler (daemon mode)"
+msgstr "Vytáčení a obsluha hovorů (režim démonu)"
+
+#: data/org.gnome.Calls.metainfo.xml:7
+msgid "Make phone and SIP calls"
+msgstr "Uskutečňujte telefonní a SIP hovory"
+
+#: data/org.gnome.Calls.metainfo.xml:10
+msgid ""
+"Calls is a simple, elegant phone dialer and call handler for GNOME. It can "
+"be used with a cellular modem for plain old telephone calls as well as VoIP "
+"calls using the SIP protocol."
+msgstr ""
+"Volání je jednoduchý, elegantní telefonní číselník a správce hovorů pro "
+"GNOME. Je možné jej využít jak s mobilním modemem pro obyčejné staré "
+"telefonní hovory, tak i pro VoIP hovory pomocí protokolu SIP."
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:26
+msgid "Placing a call"
+msgstr "Uskutečňování hovoru"
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:31
+msgid "The call history"
+msgstr "Historie hovorů"
+
+#: data/org.gnome.Calls.gschema.xml:7 data/org.gnome.Calls.gschema.xml:8
+msgid "Whether calls should automatically use the default origin"
+msgstr "Zda mají hovory automaticky používat výchozí původ"
+
+#: data/org.gnome.Calls.gschema.xml:13
+msgid "The country code as reported by the modem"
+msgstr "Kód země tak, jak je hlášen modemem"
+
+#: data/org.gnome.Calls.gschema.xml:14
+msgid "The country code is used for contact name lookup"
+msgstr "Kód země je použit pro vyhledávání jmen kontaktů"
+
+#: data/org.gnome.Calls.gschema.xml:19
+msgid "The plugins to load automatically"
+msgstr "Pluginy pro automatické načtení"
+
+#: data/org.gnome.Calls.gschema.xml:20
+msgid "These plugins will be automatically loaded on application startup."
+msgstr "Tyto pluginy budou automaticky načteny při spuštění aplikace."
+
+#: data/org.gnome.Calls.gschema.xml:25
+msgid "Audio codecs to use for VoIP calls in order of preference"
+msgstr "Zvukové kodeky v preferovaném pořadí k použití pro hovory VoIP"
+
+#: data/org.gnome.Calls.gschema.xml:26
+msgid "The preferred audio codecs to use for VoIP calls (if available)"
+msgstr "Preferované zvukové kodeky pro hovory VoIP (pokud je k dispozici)"
+
+#: data/org.gnome.Calls.gschema.xml:31
+msgid "Whether to allow using SDES for SRTP without TLS as the transport"
+msgstr "Zda povolit použití SDES pro SRTP bez TLS jako přenosu"
+
+#: data/org.gnome.Calls.gschema.xml:32
+msgid "Set to true if you want to allow with keys exchanged in cleartext."
+msgstr ""
+"Nastavte na true, pokud chcete povolit s klíči vyměněnými v čistém textu."
+
+#: src/calls-account.c:163
+msgid "Default (uninitialized) state"
+msgstr "Výchozí (neinicializovaný) stav"
+
+#: src/calls-account.c:166
+msgid "Initializing account…"
+msgstr "Inicializace účtu…"
+
+#: src/calls-account.c:169
+msgid "Uninitializing account…"
+msgstr "Zrušení inicializace účtu…"
+
+#: src/calls-account.c:172
+msgid "Connecting to server…"
+msgstr "Připojování k serveru…"
+
+#: src/calls-account.c:175
+msgid "Account is online"
+msgstr "Účet je on-line"
+
+#: src/calls-account.c:178
+msgid "Disconnecting from server…"
+msgstr "Odpojování od serveru…"
+
+#: src/calls-account.c:181
+msgid "Account is offline"
+msgstr "Účet je off-line"
+
+#: src/calls-account.c:184
+msgid "Account encountered an error"
+msgstr "Došlo k chybě účtu"
+
+#: src/calls-account.c:202
+msgid "No reason given"
+msgstr "Nebyl uveden žádný důvod"
+
+#: src/calls-account.c:205
+msgid "Initialization started"
+msgstr "Inicializace zahájena"
+
+#: src/calls-account.c:208
+msgid "Initialization complete"
+msgstr "Inicializace dokončena"
+
+#: src/calls-account.c:211
+msgid "Uninitialization started"
+msgstr "Zrušení inicializace zahájeno"
+
+#: src/calls-account.c:214
+msgid "Uninitialization complete"
+msgstr "Zrušení inicializace dokončeno"
+
+#: src/calls-account.c:217
+msgid "No credentials set"
+msgstr "Nenastavena žádná pověření"
+
+#: src/calls-account.c:220
+msgid "Starting to connect"
+msgstr "Zahajuje se připojení"
+
+#: src/calls-account.c:223
+msgid "Connection timed out"
+msgstr "Vypršel časový limit připojení"
 
-#: src/calls-application.c:514
+#: src/calls-account.c:226
+msgid "Domain name could not be resolved"
+msgstr "Nepodařilo se přeložit doménové jméno"
+
+#: src/calls-account.c:229
+msgid "Server did not accept username or password"
+msgstr "Server nepřijal uživatelské jméno nebo heslo"
+
+#: src/calls-account.c:232
+msgid "Connecting complete"
+msgstr "Připojení dokončeno"
+
+#: src/calls-account.c:235
+msgid "Starting to disconnect"
+msgstr "Zahajuje se odpojení"
+
+#: src/calls-account.c:238
+msgid "Disconnecting complete"
+msgstr "Odpojení dokončeno"
+
+#: src/calls-account.c:241
+msgid "Internal error occurred"
+msgstr "Došlo k vnitřní chybě"
+
+#: src/calls-application.c:315
+#, c-format
+msgid "Tried dialing invalid tel URI `%s'"
+msgstr "Pokusilo se vytočit neplatné tel URI `%s'"
+
+#: src/calls-application.c:627
+#, c-format
+msgid "Don't know how to open `%s'"
+msgstr "Neví se, jak otevřít `%s'"
+
+#: src/calls-application.c:681
+msgid "The name of the plugin to use as a call provider"
+msgstr "Název pluginu, který se má použít jako poskytovatel hovorů"
+
+#: src/calls-application.c:682
 msgid "PLUGIN"
 msgstr "PLUGIN"
 
-#: src/calls-application.c:519
+#: src/calls-application.c:687
 msgid "Whether to present the main window on startup"
 msgstr "Zda-li zobrazit hlavní okno při spuštění"
 
-#: src/calls-application.c:525
-msgid "Dial a number"
-msgstr "Vytočit číslo"
+#: src/calls-application.c:693
+msgid "Dial a telephone number"
+msgstr "Vytočit telefonní číslo"
 
-#: src/calls-application.c:526
+#: src/calls-application.c:694
 msgid "NUMBER"
 msgstr "ČÍSLO"
 
-#: src/calls-call-display.c:246
-msgid "Calling..."
-msgstr "Volání..."
+#: src/calls-application.c:699
+msgid "Enable verbose debug messages"
+msgstr "Povolit detailnější ladicí zprávy"
+
+#: src/calls-application.c:705
+msgid "Print current version"
+msgstr "Vypsat aktuální verzi"
+
+#: src/calls-best-match.c:435
+msgid "Anonymous caller"
+msgstr "Anonymní volající"
 
-#: src/calls-call-record-row.c:103
+#: src/calls-call-record-row.c:97
 #, c-format
 msgid ""
 "%s\n"
@@ -56,127 +245,361 @@ msgstr ""
 "%s\n"
 "včera"
 
-#: src/calls-main-window.c:113
+#: src/calls-main-window.c:123
 msgid "translator-credits"
-msgstr "Jaroslav Svoboda <multi.flexi@sezman.cz>, 2021"
-
-#: src/calls-main-window.c:176
-msgid "Can't place calls: No SIM card"
-msgstr "Nelze volat: Chybí SIM karta"
+msgstr ""
+"Jaroslav Svoboda <multi.flexi@sezman.cz>\n"
+"Daniel Rusek <mail@asciiwolf.com>"
 
-#: src/calls-main-window.c:181
-msgid "Can't place calls: No backend service"
-msgstr "Nelze volat: Chybí backend služba"
+#: src/calls-main-window.c:316
+msgid "Can't place calls: No modem or VoIP account available"
+msgstr "Nelze volat: Není dostupný modem nebo účet VoIP"
+
+#: src/calls-main-window.c:318
+msgid "Can't place calls: No plugin loaded"
+msgstr "Nelze volat: Není načtený plugin"
 
-#: src/calls-main-window.c:185
-msgid "Can't place calls: No plugin"
-msgstr "Nelze volat: Chybí plugin"
+#: src/calls-main-window.c:353
+msgid "Contacts"
+msgstr "Kontakty"
 
-#: src/calls-main-window.c:213 src/ui/call-display.ui:270
+#: src/calls-main-window.c:363
 msgid "Dial Pad"
 msgstr "Číselník"
 
-#: src/calls-main-window.c:223
+#. Recent as in "Recent calls" (the call history)
+#: src/calls-main-window.c:372
 msgid "Recent"
 msgstr "Nedávné"
 
-#: src/calls-ringer.c:204
-msgid "Incoming call"
-msgstr "Příchozí hovor"
-
-#: src/ui/call-display.ui:33
-msgid "Incoming phone call"
-msgstr "Příchozí telefonní hovor"
-
-#: src/ui/call-display.ui:124
-msgid "Mute"
-msgstr "Ztlumit"
-
-#: src/ui/call-display.ui:159
-msgid "Speaker"
-msgstr "Reproduktor"
-
-#: src/ui/call-display.ui:193
-msgid "Add call"
-msgstr "Přidat hovor"
-
-#: src/ui/call-display.ui:236
-msgid "Hold"
-msgstr "Přidržet"
-
-#: src/ui/call-display.ui:326
-msgid "Hang up"
-msgstr "Zavěsit"
-
-#: src/ui/call-display.ui:357
-msgid "Answer"
-msgstr "Zvednout"
-
-#: src/ui/call-display.ui:439
-msgid "Hide the dial pad"
-msgstr "Skrýt číselník"
-
-#: src/ui/call-record-row.ui:65
-msgid "Call the party"
-msgstr "Uskutečnit konferenční hovor"
-
-#: src/ui/call-selector-item.ui:31
-msgid "+441234567890"
-msgstr "+441234567890"
+#: src/calls-notifier.c:52
+msgid "Missed call"
+msgstr "Zmeškaný hovor"
+
+#. %s is a name here
+#: src/calls-notifier.c:76
+#, c-format
+msgid "Missed call from <b>%s</b>"
+msgstr "Zmeškaný hovor od <b>%s</b>"
+
+#. %s is a id here
+#: src/calls-notifier.c:79
+#, c-format
+msgid "Missed call from %s"
+msgstr "Zmeškaný hovor od %s"
+
+#: src/calls-notifier.c:81
+msgid "Missed call from unknown caller"
+msgstr "Zmeškaný hovor od neznámého volajícího"
+
+#: src/calls-notifier.c:87
+msgid "Call back"
+msgstr "Volat zpět"
+
+#: src/ui/account-overview.ui:16
+msgid "VoIP Accounts"
+msgstr "Účty VoIP"
+
+#: src/ui/account-overview.ui:49
+msgid "Add VoIP Accounts"
+msgstr "Přidat účty VoIP"
+
+#: src/ui/account-overview.ui:51
+msgid ""
+"You can add VoIP account here. It will allow you to place and receive VoIP "
+"calls using the SIP protocol. This feature is still relatively new and not "
+"yet feature complete (i.e. no encrypted media)."
+msgstr ""
+"Zde můžete přidat účet VoIP. Ten vám umožní uskutečňovat nebo přijímat "
+"hovory VoIP pomocí protokolu SIP. Tato funkce je stále poměrně nová a zatím "
+"není funkčně kompletní (tj. žádná šifrovaná média)."
+
+#: src/ui/account-overview.ui:58 src/ui/account-overview.ui:106
+msgid "_Add Account"
+msgstr "Přid_at účet"
+
+#. Translators: This is a verb, not a noun. Call the number of the currently selected row.
+#: src/ui/call-record-row.ui:62
+msgid "Call"
+msgstr "Volat"
+
+#: src/ui/call-record-row.ui:102
+msgid "_Delete Call"
+msgstr "_Odstranit hovor"
+
+#. Translators: This is a phone number
+#: src/ui/call-record-row.ui:107
+msgid "_Copy number"
+msgstr "_Kopírovat číslo"
+
+#: src/ui/call-record-row.ui:112
+msgid "_Add contact"
+msgstr "Přid_at kontakt"
+
+#: src/ui/call-record-row.ui:117
+msgid "_Send SMS"
+msgstr "Po_slat SMS"
 
-#: src/ui/call-selector-item.ui:44
+#: src/ui/call-selector-item.ui:38
 msgid "On hold"
 msgstr "Hovor přidržen"
 
-#: src/ui/encryption-indicator.ui:23
-msgid "This call is not encrypted"
-msgstr "Tento hovor není zašifrován"
-
-#: src/ui/encryption-indicator.ui:45
-msgid "This call is encrypted"
-msgstr "Tento hovor je zašifrován"
+#: src/ui/contacts-box.ui:60
+msgid "No Contacts Found"
+msgstr "Nenalezeny žádné kontakty"
 
-#: src/ui/history-box.ui:23
+#: src/ui/history-box.ui:10
 msgid "No Recent Calls"
 msgstr "Žádné nedávné hovory"
 
-#: src/ui/history-header-bar.ui:8
-msgid "Recent Calls"
-msgstr "Nedávné hovory"
-
-#: src/ui/history-header-bar.ui:21
-msgid "New call…"
-msgstr "Nový hovor…"
-
-#. Translators: tooltip for the application menu button
-#: src/ui/history-header-bar.ui:40
-msgid "Menu"
-msgstr "Nabídka"
-
-#: src/ui/history-header-bar.ui:71
-msgid "About Calls"
-msgstr "O aplikaci Volání"
-
-#: src/ui/main-window.ui:36
-msgid "No modem found"
-msgstr "Modem nenalezen"
+#: src/ui/main-window.ui:105
+msgid "USSD"
+msgstr "USSD"
+
+#: src/ui/main-window.ui:114
+msgid "_Cancel"
+msgstr "_Zrušit"
+
+#: src/ui/main-window.ui:131
+msgid "_Close"
+msgstr "_Zavřít"
+
+#: src/ui/main-window.ui:141
+msgid "_Send"
+msgstr "Ode_slat"
+
+#: src/ui/main-window.ui:214
+msgid "_VoIP Accounts"
+msgstr "Účty _VoIP"
+
+#: src/ui/main-window.ui:227
+msgid "_Keyboard shortcuts"
+msgstr "_Klávesové zkratky"
+
+#: src/ui/main-window.ui:233
+msgid "_Help"
+msgstr "_Nápověda"
+
+#. "Calls" is the application name, do not translate
+#: src/ui/main-window.ui:239
+msgid "_About Calls"
+msgstr "O _aplikaci Volání"
+
+#: src/ui/new-call-box.ui:45
+msgid "Enter a VoIP address"
+msgstr "Zadejte adresu VoIP"
+
+#: src/ui/new-call-box.ui:58
+msgid "Enter a number"
+msgstr "Zadejte číslo"
 
-#: src/ui/main-window.ui:56
-msgid "Contacts"
-msgstr "Kontakty"
-
-#: src/ui/new-call-box.ui:101
+#: src/ui/new-call-box.ui:97
 msgid "Dial"
 msgstr "Vytočit"
 
-#: src/ui/new-call-box.ui:129
-msgid "Backspace through number"
-msgstr "Smazat číslo"
+#: src/ui/new-call-box.ui:120
+msgid "Delete character in front of cursor"
+msgstr "Odstranit znak před kurzorem"
+
+#: src/ui/new-call-box.ui:149
+msgid "SIP Account"
+msgstr "Účet SIP"
 
-#: src/ui/new-call-header-bar.ui:8
+#: src/ui/new-call-header-bar.ui:6
 msgid "New Call"
 msgstr "Nový hovor"
 
-#: src/ui/new-call-header-bar.ui:21
+#: src/ui/new-call-header-bar.ui:19
 msgid "Back"
 msgstr "Zpět"
+
+#: plugins/provider/mm/calls-mm-call.c:73
+msgid "Unknown reason"
+msgstr "Neznámý důvod"
+
+#: plugins/provider/mm/calls-mm-call.c:74
+msgid "Outgoing call started"
+msgstr "Zahájen odchozí hovor"
+
+#: plugins/provider/mm/calls-mm-call.c:75
+msgid "New incoming call"
+msgstr "Nový příchozí hovor"
+
+#: plugins/provider/mm/calls-mm-call.c:76
+msgid "Call accepted"
+msgstr "Hovor přijat"
+
+#: plugins/provider/mm/calls-mm-call.c:77
+msgid "Call ended"
+msgstr "Hovor skončil"
+
+#: plugins/provider/mm/calls-mm-call.c:78
+msgid "Call disconnected (busy or call refused)"
+msgstr "Hovor odpojen (zaneprázdněn nebo hovor odmítnut)"
+
+#: plugins/provider/mm/calls-mm-call.c:79
+msgid "Call disconnected (wrong id or network problem)"
+msgstr "Hovor odpojen (neznámé id nebo problém sítě)"
+
+#: plugins/provider/mm/calls-mm-call.c:80
+msgid "Call disconnected (error setting up audio channel)"
+msgstr "Hovor odpojen (chyba při nastavení zvukového kanálu)"
+
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
+msgid "Call transferred"
+msgstr "Hovor přesměrován"
+
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
+msgid "Call deflected"
+msgstr "Hovor odkloněn"
+
+#: plugins/provider/mm/calls-mm-call.c:109
+#, c-format
+msgid "Call disconnected (unknown reason code %i)"
+msgstr "Hovor odpojen (neznámý kód příčiny %i)"
+
+#: plugins/provider/mm/calls-mm-provider.c:82
+msgid "ModemManager unavailable"
+msgstr "ModemManager nedostupný"
+
+#: plugins/provider/mm/calls-mm-provider.c:84
+#: plugins/provider/ofono/calls-ofono-provider.c:96
+msgid "No voice-capable modem available"
+msgstr "Žádný modem s podporou hlasu není dostupný"
+
+#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/ofono/calls-ofono-provider.c:98
+msgid "Normal"
+msgstr "Normální"
+
+#: plugins/provider/mm/calls-mm-provider.c:447
+#: plugins/provider/ofono/calls-ofono-provider.c:546
+msgid "Initialized"
+msgstr "Inicializováno"
+
+#: plugins/provider/ofono/calls-ofono-provider.c:94
+msgid "DBus unavailable"
+msgstr "DBus nedostupný"
+
+#: plugins/provider/sip/calls-sip-account-widget.c:668
+msgid "No encryption"
+msgstr "Žádné šifrování"
+
+#. TODO Optional encryption
+#: plugins/provider/sip/calls-sip-account-widget.c:675
+msgid "Force encryption"
+msgstr "Vynutit šifrování"
+
+#: plugins/provider/sip/calls-sip-call.c:123
+msgid "Cryptographic key exchange unsuccessful"
+msgstr "Výměna kryptografických klíčů nebyla úspěšná"
+
+#: plugins/provider/sip/sip-account-widget.ui:11
+msgid "Add Account"
+msgstr "Přidat účet"
+
+#: plugins/provider/sip/sip-account-widget.ui:17
+msgid "_Log In"
+msgstr "Přih_lásit se"
+
+#: plugins/provider/sip/sip-account-widget.ui:42
+msgid "Manage Account"
+msgstr "Správa účtu"
+
+#: plugins/provider/sip/sip-account-widget.ui:47
+msgid "_Apply"
+msgstr "_Použít"
+
+#: plugins/provider/sip/sip-account-widget.ui:61
+msgid "_Delete"
+msgstr "O_dstranit"
+
+#: plugins/provider/sip/sip-account-widget.ui:91
+msgid "Server"
+msgstr "Server"
+
+#: plugins/provider/sip/sip-account-widget.ui:109
+msgid "Display Name"
+msgstr "Zobrazované jméno"
+
+#: plugins/provider/sip/sip-account-widget.ui:110
+msgid "Optional"
+msgstr "Volitelné"
+
+#: plugins/provider/sip/sip-account-widget.ui:128
+msgid "User ID"
+msgstr "ID uživatele"
+
+#: plugins/provider/sip/sip-account-widget.ui:141
+msgid "Password"
+msgstr "Heslo"
+
+#: plugins/provider/sip/sip-account-widget.ui:166
+msgid "Port"
+msgstr "Port"
+
+#: plugins/provider/sip/sip-account-widget.ui:182
+msgid "Transport"
+msgstr "Transport"
+
+#: plugins/provider/sip/sip-account-widget.ui:189
+msgid "Media Encryption"
+msgstr "Šifrování médií"
+
+#: plugins/provider/sip/sip-account-widget.ui:201
+msgid "Use for Phone Calls"
+msgstr "Použít pro telefonní hovory"
+
+#: plugins/provider/sip/sip-account-widget.ui:214
+msgid "Automatically Connect"
+msgstr "Připojit automaticky"
+
+#~ msgid "Calling..."
+#~ msgstr "Volání..."
+
+#~ msgid "Can't place calls: No SIM card"
+#~ msgstr "Nelze volat: Chybí SIM karta"
+
+#~ msgid "Incoming phone call"
+#~ msgstr "Příchozí telefonní hovor"
+
+#~ msgid "Mute"
+#~ msgstr "Ztlumit"
+
+#~ msgid "Speaker"
+#~ msgstr "Reproduktor"
+
+#~ msgid "Hold"
+#~ msgstr "Přidržet"
+
+#~ msgid "Hang up"
+#~ msgstr "Zavěsit"
+
+#~ msgid "Answer"
+#~ msgstr "Zvednout"
+
+#~ msgid "Hide the dial pad"
+#~ msgstr "Skrýt číselník"
+
+#~ msgid "Call the party"
+#~ msgstr "Uskutečnit konferenční hovor"
+
+#~ msgid "+441234567890"
+#~ msgstr "+441234567890"
+
+#~ msgid "This call is not encrypted"
+#~ msgstr "Tento hovor není zašifrován"
+
+#~ msgid "New call…"
+#~ msgstr "Nový hovor…"
+
+#~ msgid "Menu"
+#~ msgstr "Nabídka"
+
+#~ msgid "No modem found"
+#~ msgstr "Modem nenalezen"
+
+#~ msgid "Backspace through number"
+#~ msgstr "Smazat číslo"
diff -pruN 43.0-1/po/el.po 44~alpha.1-1/po/el.po
--- 43.0-1/po/el.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/el.po	2023-01-12 09:50:29.000000000 +0000
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: calls master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
-"POT-Creation-Date: 2021-07-14 17:51+0000\n"
-"PO-Revision-Date: 2021-07-14 21:16+0300\n"
+"POT-Creation-Date: 2022-09-19 19:47+0000\n"
+"PO-Revision-Date: 2022-12-25 19:12+0200\n"
 "Last-Translator: Efstathios Iosifidis <eiosifidis@gnome.org>\n"
 "Language-Team: Greek <gnome-el-list@gnome.org>\n"
 "Language: el\n"
@@ -16,10 +16,10 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 2.3\n"
+"X-Generator: Poedit 3.2.2\n"
 
-#: data/org.gnome.Calls.desktop.in:3 src/calls-application.c:390
-#: src/ui/call-window.ui:10 src/ui/main-window.ui:8
+#: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
+#: src/calls-application.c:440 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "Κλήσεις"
 
@@ -31,7 +31,7 @@ msgstr "Τηλέφωνο"
 msgid "A phone dialer and call handler"
 msgstr ""
 
-#. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon.
+#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
 #: data/org.gnome.Calls.desktop.in:7 data/org.gnome.Calls-daemon.desktop.in:7
 msgid "Telephone;Call;Phone;Dial;Dialer;PSTN;"
 msgstr ""
@@ -44,51 +44,200 @@ msgstr "Κλήσεις (υπηρεσία
 msgid "A phone dialer and call handler (daemon mode)"
 msgstr ""
 
-#: src/calls-application.c:511
+#: data/org.gnome.Calls.metainfo.xml:7
+msgid "Make phone and SIP calls"
+msgstr ""
+
+#: data/org.gnome.Calls.metainfo.xml:10
+msgid ""
+"Calls is a simple, elegant phone dialer and call handler for GNOME. It can "
+"be used with a cellular modem for plain old telephone calls as well as VoIP "
+"calls using the SIP protocol."
+msgstr ""
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:26
+#, fuzzy
+#| msgid "Incoming phone call"
+msgid "Placing a call"
+msgstr "Εισερχόμενη κλήση"
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:31
+msgid "The call history"
+msgstr "Το ιστορικό κλήσης"
+
+#: data/org.gnome.Calls.gschema.xml:7 data/org.gnome.Calls.gschema.xml:8
+msgid "Whether calls should automatically use the default origin"
+msgstr ""
+
+#: data/org.gnome.Calls.gschema.xml:13
+msgid "The country code as reported by the modem"
+msgstr ""
+
+#: data/org.gnome.Calls.gschema.xml:14
+msgid "The country code is used for contact name lookup"
+msgstr ""
+
+#: data/org.gnome.Calls.gschema.xml:19
+msgid "The plugins to load automatically"
+msgstr ""
+
+#: data/org.gnome.Calls.gschema.xml:20
+msgid "These plugins will be automatically loaded on application startup."
+msgstr ""
+
+#: data/org.gnome.Calls.gschema.xml:25
+msgid "Audio codecs to use for VoIP calls in order of preference"
+msgstr ""
+
+#: data/org.gnome.Calls.gschema.xml:26
+msgid "The preferred audio codecs to use for VoIP calls (if available)"
+msgstr ""
+
+#: data/org.gnome.Calls.gschema.xml:31
+msgid "Whether to allow using SDES for SRTP without TLS as the transport"
+msgstr ""
+
+#: data/org.gnome.Calls.gschema.xml:32
+msgid "Set to true if you want to allow with keys exchanged in cleartext."
+msgstr ""
+
+#: src/calls-account.c:163
+msgid "Default (uninitialized) state"
+msgstr ""
+
+#: src/calls-account.c:166
+msgid "Initializing account…"
+msgstr "Αρχικοποίηση λογαριασμού..."
+
+#: src/calls-account.c:169
+msgid "Uninitializing account…"
+msgstr ""
+
+#: src/calls-account.c:172
+msgid "Connecting to server…"
+msgstr "Σύνδεση με τον διακομιστή…"
+
+#: src/calls-account.c:175
+msgid "Account is online"
+msgstr ""
+
+#: src/calls-account.c:178
+msgid "Disconnecting from server…"
+msgstr ""
+
+#: src/calls-account.c:181
+msgid "Account is offline"
+msgstr ""
+
+#: src/calls-account.c:184
+msgid "Account encountered an error"
+msgstr ""
+
+#: src/calls-account.c:202
+msgid "No reason given"
+msgstr ""
+
+#: src/calls-account.c:205
+msgid "Initialization started"
+msgstr ""
+
+#: src/calls-account.c:208
+msgid "Initialization complete"
+msgstr ""
+
+#: src/calls-account.c:211
+msgid "Uninitialization started"
+msgstr ""
+
+#: src/calls-account.c:214
+msgid "Uninitialization complete"
+msgstr ""
+
+#: src/calls-account.c:217
+msgid "No credentials set"
+msgstr ""
+
+#: src/calls-account.c:220
+msgid "Starting to connect"
+msgstr ""
+
+#: src/calls-account.c:223
+msgid "Connection timed out"
+msgstr ""
+
+#: src/calls-account.c:226
+msgid "Domain name could not be resolved"
+msgstr ""
+
+#: src/calls-account.c:229
+msgid "Server did not accept username or password"
+msgstr ""
+
+#: src/calls-account.c:232
+msgid "Connecting complete"
+msgstr ""
+
+#: src/calls-account.c:235
+msgid "Starting to disconnect"
+msgstr ""
+
+#: src/calls-account.c:238
+msgid "Disconnecting complete"
+msgstr ""
+
+#: src/calls-account.c:241
+msgid "Internal error occurred"
+msgstr ""
+
+#: src/calls-application.c:319
 #, c-format
-msgid "Tried dialing unparsable tel URI `%s'"
+msgid "Tried dialing invalid tel URI `%s'"
 msgstr ""
 
-#: src/calls-application.c:593
+#: src/calls-application.c:638
 #, c-format
 msgid "Don't know how to open `%s'"
 msgstr ""
 
-#: src/calls-application.c:646
-msgid "The name of the plugin to use for the call Provider"
+#: src/calls-application.c:692
+#, fuzzy
+#| msgid "The name of the plugin to use for the call Provider"
+msgid "The name of the plugin to use as a call provider"
 msgstr ""
 "Το όνομα του προσθέτου  που θα χρησιμοποιηθεί για την υπηρεσία παροχής "
 "κλήσεων"
 
-#: src/calls-application.c:647
+#: src/calls-application.c:693
 msgid "PLUGIN"
 msgstr "ΠΡΟΣΘΕΤΟ"
 
-#: src/calls-application.c:652
+#: src/calls-application.c:698
 msgid "Whether to present the main window on startup"
 msgstr "Εάν θα παρουσιάζεται το κύριο παράθυρο κατά την εκκίνηση"
 
-#: src/calls-application.c:658
-msgid "Dial a number"
-msgstr "Πληκτρολογήστε έναν αριθμό"
+#: src/calls-application.c:704
+msgid "Dial a telephone number"
+msgstr "Πληκτρολογήστε έναν τηλεφωνικό αριθμό"
 
-#: src/calls-application.c:659
+#: src/calls-application.c:705
 msgid "NUMBER"
 msgstr "ΑΡΙΘΜΟΣ"
 
-#: src/calls-application.c:664
+#: src/calls-application.c:710
+msgid "Enable verbose debug messages"
+msgstr ""
+
+#: src/calls-application.c:716
 msgid "Print current version"
 msgstr "Εμφάνιση τρέχουσας έκδοσης"
 
-#: src/calls-best-match.c:375 src/calls-call-record-row.c:40
+#: src/calls-best-match.c:435
 msgid "Anonymous caller"
 msgstr "Ανώνυμος"
 
-#: src/calls-call-display.c:278
-msgid "Calling…"
-msgstr "Γίνεται κλήση…"
-
-#: src/calls-call-record-row.c:113
+#: src/calls-call-record-row.c:97
 #, c-format
 msgid ""
 "%s\n"
@@ -97,7 +246,7 @@ msgstr ""
 "%s\n"
 "χθες"
 
-#: src/calls-main-window.c:121
+#: src/calls-main-window.c:123
 msgid "translator-credits"
 msgstr ""
 "Ελληνική μεταφραστική ομάδα GNOME\n"
@@ -106,181 +255,363 @@ msgstr ""
 "Για περισσότερες πληροφορίες, επισκεφθείτε τη σελίδα\n"
 "http://gnome.gr/"
 
-#: src/calls-main-window.c:319
-#, fuzzy
-#| msgid "Can't place calls: No backend service"
-msgid "Can't place calls: No voice-capable modem available"
-msgstr "Αδυναμία πραγματοποίησης κλήσης: Δεν υπάρχει υπηρεσία υποστήριξης"
-
-#: src/calls-main-window.c:323
+#: src/calls-main-window.c:316
 #, fuzzy
 #| msgid "Can't place calls: No backend service"
 msgid "Can't place calls: No modem or VoIP account available"
 msgstr "Αδυναμία πραγματοποίησης κλήσης: Δεν υπάρχει υπηρεσία υποστήριξης"
 
-#: src/calls-main-window.c:328
-msgid "Can't place calls: No backend service"
-msgstr "Αδυναμία πραγματοποίησης κλήσης: Δεν υπάρχει υπηρεσία υποστήριξης"
-
-#: src/calls-main-window.c:332
-msgid "Can't place calls: No plugin"
+#: src/calls-main-window.c:318
+#, fuzzy
+#| msgid "Can't place calls: No plugin"
+msgid "Can't place calls: No plugin loaded"
 msgstr "Αδυναμία πραγματοποίησης κλήσης: Δεν υπάρχει πρόσθετο"
 
-#: src/calls-main-window.c:372
+#: src/calls-main-window.c:353
 msgid "Contacts"
 msgstr "Επαφές"
 
-#: src/calls-main-window.c:382 src/ui/call-display.ui:289
+#: src/calls-main-window.c:363
 msgid "Dial Pad"
 msgstr "Πληκτρολόγιο κλήσης"
 
-#: src/calls-main-window.c:390
+#. Recent as in "Recent calls" (the call history)
+#: src/calls-main-window.c:372
 msgid "Recent"
 msgstr "Πρόσφατα"
 
-#: src/calls-notifier.c:46
+#: src/calls-notifier.c:52
 msgid "Missed call"
 msgstr "Αναπάντητη κλήση"
 
-#: src/calls-notifier.c:63
+#. %s is a name here
+#: src/calls-notifier.c:76
 #, c-format
 msgid "Missed call from <b>%s</b>"
 msgstr "Αναπάντητη κλήση από τον <b>%s</b>"
 
-#: src/calls-notifier.c:65
+#. %s is a id here
+#: src/calls-notifier.c:79
 #, c-format
 msgid "Missed call from %s"
 msgstr "Αναπάντητη κλήση από %s"
 
-#: src/calls-notifier.c:67
+#: src/calls-notifier.c:81
 msgid "Missed call from unknown caller"
 msgstr "Αναπάντητη κλήση από άγνωστο αριθμό"
 
-#: src/calls-notifier.c:73
+#: src/calls-notifier.c:87
 msgid "Call back"
 msgstr "Επανάκληση"
 
-#: src/ui/call-display.ui:33
-msgid "Incoming phone call"
-msgstr "Εισερχόμενη κλήση"
+#: src/ui/account-overview.ui:16
+msgid "VoIP Accounts"
+msgstr "Λογαριασμοί VoIP"
+
+#: src/ui/account-overview.ui:49
+msgid "Add VoIP Accounts"
+msgstr "Προσθήκη λογαριασμών VoIP"
 
-#: src/ui/call-display.ui:135
-msgid "Mute"
-msgstr "Σίγαση"
-
-#: src/ui/call-display.ui:172
-msgid "Speaker"
-msgstr "Μεγάφωνο"
-
-#: src/ui/call-display.ui:208
-msgid "Add call"
-msgstr "Προσθήκη κλήσης"
-
-#: src/ui/call-display.ui:253
-msgid "Hold"
-msgstr "Αναμονή"
-
-#: src/ui/call-display.ui:345
-msgid "Hang up"
-msgstr "Κλείσιμο γραμμής"
-
-#: src/ui/call-display.ui:376
-msgid "Answer"
-msgstr "Απάντηση"
-
-#: src/ui/call-display.ui:458
-msgid "Hide the dial pad"
-msgstr "Απόκρυψη πληκτρολογίου κλήσης"
-
-#: src/ui/call-record-row.ui:68
-msgid "Call the party"
-msgstr "Καλέστε το πάρτι"
+#: src/ui/account-overview.ui:51
+msgid ""
+"You can add VoIP account here. It will allow you to place and receive VoIP "
+"calls using the SIP protocol. This feature is still relatively new and not "
+"yet feature complete (i.e. no encrypted media)."
+msgstr ""
 
-#: src/ui/call-record-row.ui:112
+#: src/ui/account-overview.ui:58 src/ui/account-overview.ui:106
+msgid "_Add Account"
+msgstr "_Προσθήκη λογαριασμού"
+
+#. Translators: This is a verb, not a noun. Call the number of the currently selected row.
+#: src/ui/call-record-row.ui:62
+msgid "Call"
+msgstr "Κλήση"
+
+#: src/ui/call-record-row.ui:102
 msgid "_Delete Call"
 msgstr "_Διαγραφή κλήσης"
 
 #. Translators: This is a phone number
-#: src/ui/call-record-row.ui:117
+#: src/ui/call-record-row.ui:107
 msgid "_Copy number"
 msgstr "_Αντιγραφή αριθμού"
 
-#: src/ui/call-selector-item.ui:31
-msgid "+441234567890"
-msgstr "+441234567890"
+#: src/ui/call-record-row.ui:112
+msgid "_Add contact"
+msgstr "_Προσθήκη επαφής"
+
+#: src/ui/call-record-row.ui:117
+msgid "_Send SMS"
+msgstr "_Αποστολή SMS"
 
-#: src/ui/call-selector-item.ui:44
+#: src/ui/call-selector-item.ui:38
 msgid "On hold"
 msgstr "Σε αναμονή"
 
-#: src/ui/contacts-box.ui:66
-msgid "No contacts found"
+#: src/ui/contacts-box.ui:60
+msgid "No Contacts Found"
 msgstr "Δεν βρέθηκαν επαφές"
 
-#: src/ui/encryption-indicator.ui:23
-msgid "This call is not encrypted"
-msgstr "Η κλήση δεν είναι κρυπτογραφημένη"
-
-#: src/ui/encryption-indicator.ui:45
-msgid "This call is encrypted"
-msgstr "Η κλήση είναι κρυπτογραφημένη"
-
-#: src/ui/history-box.ui:23
+#: src/ui/history-box.ui:10
 msgid "No Recent Calls"
 msgstr "Καμιά πρόσφατη κλήση"
 
-#: src/ui/history-header-bar.ui:7
-msgid "Recent Calls"
-msgstr "Πρόσφατες κλήσεις"
-
-#: src/ui/history-header-bar.ui:20
-msgid "New call…"
-msgstr "Νέα κλήση…"
-
-#. Translators: tooltip for the application menu button
-#: src/ui/history-header-bar.ui:39
-msgid "Menu"
-msgstr "Μενού"
-
-#: src/ui/history-header-bar.ui:70
-msgid "About Calls"
-msgstr "Περί Κλήσεις"
-
-#: src/ui/main-window.ui:38
-msgid "No modem found"
-msgstr "Δεν βρέθηκε μόντεμ"
-
-#: src/ui/main-window.ui:95
+#: src/ui/main-window.ui:105
 msgid "USSD"
 msgstr "USSD"
 
-#: src/ui/main-window.ui:104
+#: src/ui/main-window.ui:114
 msgid "_Cancel"
 msgstr "A_κύρωση"
 
-#: src/ui/main-window.ui:121
+#: src/ui/main-window.ui:131
 msgid "_Close"
 msgstr "_Κλείσιμο"
 
-#: src/ui/main-window.ui:131
+#: src/ui/main-window.ui:141
 msgid "_Send"
 msgstr "Α_ποστολή"
 
-#: src/ui/new-call-box.ui:94
+#: src/ui/main-window.ui:214
+msgid "_VoIP Accounts"
+msgstr "Λογαριασμοί _VoIP"
+
+#: src/ui/main-window.ui:227
+msgid "_Keyboard shortcuts"
+msgstr "_Συντομεύσεις πληκτρολογίου"
+
+#: src/ui/main-window.ui:233
+msgid "_Help"
+msgstr "_Βοήθεια"
+
+#. "Calls" is the application name, do not translate
+#: src/ui/main-window.ui:239
+msgid "_About Calls"
+msgstr "_Περί Κλήσεις"
+
+#: src/ui/new-call-box.ui:45
+msgid "Enter a VoIP address"
+msgstr ""
+
+#: src/ui/new-call-box.ui:58
+msgid "Enter a number"
+msgstr "Εισαγωγή ενός αριθμού"
+
+#: src/ui/new-call-box.ui:97
 msgid "Dial"
 msgstr "Πραγματοπολιηση κλήσης"
 
-#: src/ui/new-call-box.ui:122
-msgid "Backspace through number"
+#: src/ui/new-call-box.ui:120
+msgid "Delete character in front of cursor"
 msgstr ""
 
-#: src/ui/new-call-header-bar.ui:7
+#: src/ui/new-call-box.ui:149
+msgid "SIP Account"
+msgstr "Λογαριασμός SIP"
+
+#: src/ui/new-call-header-bar.ui:6
 msgid "New Call"
 msgstr "Νέα κλήση"
 
-#: src/ui/new-call-header-bar.ui:20
+#: src/ui/new-call-header-bar.ui:19
 msgid "Back"
 msgstr "Πίσω"
 
+#: plugins/provider/mm/calls-mm-call.c:73
+msgid "Unknown reason"
+msgstr "Άγνωστη αιτία"
+
+#: plugins/provider/mm/calls-mm-call.c:74
+msgid "Outgoing call started"
+msgstr ""
+
+#: plugins/provider/mm/calls-mm-call.c:75
+msgid "New incoming call"
+msgstr "Νέα εισερχόμενη κλήση"
+
+#: plugins/provider/mm/calls-mm-call.c:76
+#, fuzzy
+#| msgid "Call back"
+msgid "Call accepted"
+msgstr "Επανάκληση"
+
+#: plugins/provider/mm/calls-mm-call.c:77
+msgid "Call ended"
+msgstr "Η κλήση τερματίστηκε"
+
+#: plugins/provider/mm/calls-mm-call.c:78
+msgid "Call disconnected (busy or call refused)"
+msgstr ""
+
+#: plugins/provider/mm/calls-mm-call.c:79
+msgid "Call disconnected (wrong id or network problem)"
+msgstr ""
+
+#: plugins/provider/mm/calls-mm-call.c:80
+msgid "Call disconnected (error setting up audio channel)"
+msgstr ""
+
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
+msgid "Call transferred"
+msgstr ""
+
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
+msgid "Call deflected"
+msgstr ""
+
+#: plugins/provider/mm/calls-mm-call.c:109
+#, c-format
+msgid "Call disconnected (unknown reason code %i)"
+msgstr ""
+
+#: plugins/provider/mm/calls-mm-provider.c:82
+msgid "ModemManager unavailable"
+msgstr ""
+
+#: plugins/provider/mm/calls-mm-provider.c:84
+#: plugins/provider/ofono/calls-ofono-provider.c:96
+#, fuzzy
+#| msgid "Can't place calls: No backend service"
+msgid "No voice-capable modem available"
+msgstr "Αδυναμία πραγματοποίησης κλήσης: Δεν υπάρχει υπηρεσία υποστήριξης"
+
+#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/ofono/calls-ofono-provider.c:98
+msgid "Normal"
+msgstr "Κανονικό"
+
+#: plugins/provider/mm/calls-mm-provider.c:447
+#: plugins/provider/ofono/calls-ofono-provider.c:546
+msgid "Initialized"
+msgstr ""
+
+#: plugins/provider/ofono/calls-ofono-provider.c:94
+msgid "DBus unavailable"
+msgstr ""
+
+#: plugins/provider/sip/calls-sip-account-widget.c:668
+msgid "No encryption"
+msgstr "Χωρίς κρυπτογράφηση"
+
+#. TODO Optional encryption
+#: plugins/provider/sip/calls-sip-account-widget.c:675
+msgid "Force encryption"
+msgstr "Αναγκαστική κρυπτογράφηση"
+
+#: plugins/provider/sip/calls-sip-call.c:123
+msgid "Cryptographic key exchange unsuccessful"
+msgstr ""
+
+#: plugins/provider/sip/sip-account-widget.ui:11
+msgid "Add Account"
+msgstr "Προσθήκη λογαριασμού"
+
+#: plugins/provider/sip/sip-account-widget.ui:17
+msgid "_Log In"
+msgstr "_Είσοδος"
+
+#: plugins/provider/sip/sip-account-widget.ui:42
+msgid "Manage Account"
+msgstr "Διαχείριση λογαριασμού"
+
+#: plugins/provider/sip/sip-account-widget.ui:47
+msgid "_Apply"
+msgstr "_Εφαρμογή"
+
+#: plugins/provider/sip/sip-account-widget.ui:61
+msgid "_Delete"
+msgstr "_Διαγραφή"
+
+#: plugins/provider/sip/sip-account-widget.ui:91
+msgid "Server"
+msgstr "Διακομιστής"
+
+#: plugins/provider/sip/sip-account-widget.ui:109
+msgid "Display Name"
+msgstr ""
+
+#: plugins/provider/sip/sip-account-widget.ui:110
+msgid "Optional"
+msgstr "Προαιρετικό"
+
+#: plugins/provider/sip/sip-account-widget.ui:128
+msgid "User ID"
+msgstr "ID Χρήστη"
+
+#: plugins/provider/sip/sip-account-widget.ui:141
+msgid "Password"
+msgstr "Συνθηματικό"
+
+#: plugins/provider/sip/sip-account-widget.ui:166
+msgid "Port"
+msgstr "Θύρα"
+
+#: plugins/provider/sip/sip-account-widget.ui:182
+msgid "Transport"
+msgstr "Μεταφορά"
+
+#: plugins/provider/sip/sip-account-widget.ui:189
+msgid "Media Encryption"
+msgstr "Κρυπτογράφηση μέσων"
+
+#: plugins/provider/sip/sip-account-widget.ui:201
+msgid "Use for Phone Calls"
+msgstr "Χρήση για τηλεφωνικές κλήσεις"
+
+#: plugins/provider/sip/sip-account-widget.ui:214
+msgid "Automatically Connect"
+msgstr "Αυτόματη σύνδεση"
+
+#~ msgid "Calling…"
+#~ msgstr "Γίνεται κλήση…"
+
+#~ msgid "Can't place calls: No backend service"
+#~ msgstr "Αδυναμία πραγματοποίησης κλήσης: Δεν υπάρχει υπηρεσία υποστήριξης"
+
+#~ msgid "Mute"
+#~ msgstr "Σίγαση"
+
+#~ msgid "Speaker"
+#~ msgstr "Μεγάφωνο"
+
+#~ msgid "Add call"
+#~ msgstr "Προσθήκη κλήσης"
+
+#~ msgid "Hold"
+#~ msgstr "Αναμονή"
+
+#~ msgid "Hang up"
+#~ msgstr "Κλείσιμο γραμμής"
+
+#~ msgid "Answer"
+#~ msgstr "Απάντηση"
+
+#~ msgid "Hide the dial pad"
+#~ msgstr "Απόκρυψη πληκτρολογίου κλήσης"
+
+#~ msgid "Call the party"
+#~ msgstr "Καλέστε το πάρτι"
+
+#~ msgid "+441234567890"
+#~ msgstr "+441234567890"
+
+#~ msgid "This call is not encrypted"
+#~ msgstr "Η κλήση δεν είναι κρυπτογραφημένη"
+
+#~ msgid "Recent Calls"
+#~ msgstr "Πρόσφατες κλήσεις"
+
+#~ msgid "New call…"
+#~ msgstr "Νέα κλήση…"
+
+#~ msgid "Menu"
+#~ msgstr "Μενού"
+
+#~ msgid "No modem found"
+#~ msgstr "Δεν βρέθηκε μόντεμ"
+
 #~ msgid "Can't place calls: No SIM card"
 #~ msgstr "Αδυναμία πραγματοποίησης κλήσης: Δεν υπάρχει κάρτα SIM"
diff -pruN 43.0-1/po/en_GB.po 44~alpha.1-1/po/en_GB.po
--- 43.0-1/po/en_GB.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/en_GB.po	2023-01-12 09:50:29.000000000 +0000
@@ -2,341 +2,713 @@
 # Copyright (C) 2020 calls's COPYRIGHT HOLDER
 # This file is distributed under the same license as the calls package.
 # Zander Brown <zbrown@gnome.org>, 2020.
+# Bruce Cowan <bruce@bcowan.me.uk>, 2022.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: calls master\n"
-"Report-Msgid-Bugs-To: https://source.puri.sm/Librem5/calls/issues\n"
-"POT-Creation-Date: 2020-05-14 03:25+0000\n"
-"PO-Revision-Date: 2020-05-18 13:31+0100\n"
-"Last-Translator: Zander Brown <zbrown@gnome.org>\n"
-"Language-Team: English - United Kingdom <en_GB@li.org>\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
+"POT-Creation-Date: 2022-09-19 19:47+0000\n"
+"PO-Revision-Date: 2022-12-05 12:58+0000\n"
+"Last-Translator: Bruce Cowan <bruce@bcowan.me.uk>\n"
+"Language-Team: English - United Kingdom <en@li.org>\n"
 "Language: en_GB\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Gtranslator 3.36.0\n"
+"X-Generator: Gtranslator 42.0\n"
 
-#: src/calls-application.c:308 src/calls-main-window.c:112
-#: src/ui/call-window.ui:11 src/ui/main-window.ui:8
+#: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
+#: src/calls-application.c:440 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "Calls"
 
-#: src/calls-application.c:513
-msgid "The name of the plugin to use for the call Provider"
-msgstr "The name of the plug-in to use for the call Provider"
+#: data/org.gnome.Calls.desktop.in:4 data/org.gnome.Calls-daemon.desktop.in:4
+msgid "Phone"
+msgstr "Phone"
+
+#: data/org.gnome.Calls.desktop.in:5
+msgid "A phone dialer and call handler"
+msgstr "A phone dialer and call handler"
+
+#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
+#: data/org.gnome.Calls.desktop.in:7 data/org.gnome.Calls-daemon.desktop.in:7
+msgid "Telephone;Call;Phone;Dial;Dialer;PSTN;"
+msgstr "Telephone;Call;Phone;Dial;Dialer;PSTN;"
+
+#: data/org.gnome.Calls-daemon.desktop.in:3
+msgid "Calls (daemon)"
+msgstr "Calls (daemon)"
+
+#: data/org.gnome.Calls-daemon.desktop.in:5
+msgid "A phone dialer and call handler (daemon mode)"
+msgstr "A phone dialer and call handler (daemon mode)"
+
+#: data/org.gnome.Calls.metainfo.xml:7
+msgid "Make phone and SIP calls"
+msgstr "Make phone and SIP calls"
 
-#: src/calls-application.c:514
+#: data/org.gnome.Calls.metainfo.xml:10
+msgid ""
+"Calls is a simple, elegant phone dialer and call handler for GNOME. It can "
+"be used with a cellular modem for plain old telephone calls as well as VoIP "
+"calls using the SIP protocol."
+msgstr ""
+"Calls is a simple, elegant phone dialer and call handler for GNOME. It can "
+"be used with a cellular modem for plain old telephone calls as well as VoIP "
+"calls using the SIP protocol."
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:26
+msgid "Placing a call"
+msgstr "Placing a call"
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:31
+msgid "The call history"
+msgstr "The call history"
+
+#: data/org.gnome.Calls.gschema.xml:7 data/org.gnome.Calls.gschema.xml:8
+msgid "Whether calls should automatically use the default origin"
+msgstr "Whether calls should automatically use the default origin"
+
+#: data/org.gnome.Calls.gschema.xml:13
+msgid "The country code as reported by the modem"
+msgstr "The country code as reported by the modem"
+
+#: data/org.gnome.Calls.gschema.xml:14
+msgid "The country code is used for contact name lookup"
+msgstr "The country code is used for contact name lookup"
+
+#: data/org.gnome.Calls.gschema.xml:19
+msgid "The plugins to load automatically"
+msgstr "The plugins to load automatically"
+
+#: data/org.gnome.Calls.gschema.xml:20
+msgid "These plugins will be automatically loaded on application startup."
+msgstr "These plugins will be automatically loaded on application startup."
+
+#: data/org.gnome.Calls.gschema.xml:25
+msgid "Audio codecs to use for VoIP calls in order of preference"
+msgstr "Audio codecs to use for VoIP calls in order of preference"
+
+#: data/org.gnome.Calls.gschema.xml:26
+msgid "The preferred audio codecs to use for VoIP calls (if available)"
+msgstr "The preferred audio codecs to use for VoIP calls (if available)"
+
+#: data/org.gnome.Calls.gschema.xml:31
+msgid "Whether to allow using SDES for SRTP without TLS as the transport"
+msgstr "Whether to allow using SDES for SRTP without TLS as the transport"
+
+#: data/org.gnome.Calls.gschema.xml:32
+msgid "Set to true if you want to allow with keys exchanged in cleartext."
+msgstr "Set to true if you want to allow with keys exchanged in cleartext."
+
+#: src/calls-account.c:163
+msgid "Default (uninitialized) state"
+msgstr "Default (uninitialised) state"
+
+#: src/calls-account.c:166
+msgid "Initializing account…"
+msgstr "Initialising account…"
+
+#: src/calls-account.c:169
+msgid "Uninitializing account…"
+msgstr "Uninitialising account…"
+
+#: src/calls-account.c:172
+msgid "Connecting to server…"
+msgstr "Connecting to server…"
+
+#: src/calls-account.c:175
+msgid "Account is online"
+msgstr "Account is online"
+
+#: src/calls-account.c:178
+msgid "Disconnecting from server…"
+msgstr "Disconnecting from server…"
+
+#: src/calls-account.c:181
+msgid "Account is offline"
+msgstr "Account is offline"
+
+#: src/calls-account.c:184
+msgid "Account encountered an error"
+msgstr "Account encountered an error"
+
+#: src/calls-account.c:202
+msgid "No reason given"
+msgstr "No reason given"
+
+#: src/calls-account.c:205
+msgid "Initialization started"
+msgstr "Initialisation started"
+
+#: src/calls-account.c:208
+msgid "Initialization complete"
+msgstr "Initialisation complete"
+
+#: src/calls-account.c:211
+msgid "Uninitialization started"
+msgstr "Uninitialisation started"
+
+#: src/calls-account.c:214
+msgid "Uninitialization complete"
+msgstr "Uninitialisation complete"
+
+#: src/calls-account.c:217
+msgid "No credentials set"
+msgstr "No credentials set"
+
+#: src/calls-account.c:220
+msgid "Starting to connect"
+msgstr "Starting to connect"
+
+#: src/calls-account.c:223
+msgid "Connection timed out"
+msgstr "Connection timed out"
+
+#: src/calls-account.c:226
+msgid "Domain name could not be resolved"
+msgstr "Domain name could not be resolved"
+
+#: src/calls-account.c:229
+msgid "Server did not accept username or password"
+msgstr "Server did not accept username or password"
+
+#: src/calls-account.c:232
+msgid "Connecting complete"
+msgstr "Connecting complete"
+
+#: src/calls-account.c:235
+msgid "Starting to disconnect"
+msgstr "Starting to disconnect"
+
+#: src/calls-account.c:238
+msgid "Disconnecting complete"
+msgstr "Disconnecting complete"
+
+#: src/calls-account.c:241
+msgid "Internal error occurred"
+msgstr "Internal error occurred"
+
+#: src/calls-application.c:319
+#, c-format
+msgid "Tried dialing invalid tel URI `%s'"
+msgstr "Tried dialing invalid tel URI `%s'"
+
+#: src/calls-application.c:638
+#, c-format
+msgid "Don't know how to open `%s'"
+msgstr "Don't know how to open `%s'"
+
+#: src/calls-application.c:692
+msgid "The name of the plugin to use as a call provider"
+msgstr "The name of the plug-in to use as a call provider"
+
+#: src/calls-application.c:693
 msgid "PLUGIN"
 msgstr "PLUG-IN"
 
-#: src/calls-application.c:519
+#: src/calls-application.c:698
 msgid "Whether to present the main window on startup"
 msgstr "Whether to present the main window on startup"
 
-#: src/calls-application.c:525
-msgid "Dial a number"
-msgstr "Dial a number"
+#: src/calls-application.c:704
+msgid "Dial a telephone number"
+msgstr "Dial a telephone number"
 
-#: src/calls-application.c:526
+#: src/calls-application.c:705
 msgid "NUMBER"
 msgstr "NUMBER"
 
-#: src/calls-best-match.c:487
-msgid "View"
-msgstr "View"
-
-#: src/calls-best-match.c:488
-msgid "The CallsBestMatchView to monitor"
-msgstr "The CallsBestMatchView to monitor"
-
-#: src/calls-best-match.c:494 src/calls-call.c:139 src/calls-party.c:186
-msgid "Name"
-msgstr "Name"
-
-#: src/calls-best-match.c:495
-msgid "The display name of the best match"
-msgstr "The display name of the best match"
-
-#: src/calls-call.c:123 src/calls-call-record.c:206
-msgid "Inbound"
-msgstr "Inbound"
-
-#: src/calls-call.c:124
-msgid "Whether the call is inbound"
-msgstr "Whether the call is inbound"
-
-#: src/calls-call.c:131 src/calls-party.c:193
-msgid "Number"
-msgstr "Number"
-
-#: src/calls-call.c:132
-msgid "The number the call is connected to if known"
-msgstr "The number the call is connected to if known"
+#: src/calls-application.c:710
+msgid "Enable verbose debug messages"
+msgstr "Enable verbose debug messages"
+
+#: src/calls-application.c:716
+msgid "Print current version"
+msgstr "Print current version"
+
+#: src/calls-best-match.c:435
+msgid "Anonymous caller"
+msgstr "Anonymous caller"
 
-#: src/calls-call.c:140
+#: src/calls-call-record-row.c:97
+#, c-format
 msgid ""
-"The name of the party the call is connected to, if the network provides it"
+"%s\n"
+"yesterday"
 msgstr ""
-"The name of the party the call is connected to, if the network provides it"
+"%s\n"
+"yesterday"
 
-#: src/calls-call.c:147
-msgid "State"
-msgstr "State"
+#: src/calls-main-window.c:123
+msgid "translator-credits"
+msgstr ""
+"Zander Brown <zbrown@gnome.org>\n"
+"Bruce Cowan <bruce@bcowan.me.uk>"
 
-#: src/calls-call.c:148
-msgid "The current state of the call"
-msgstr "The current state of the call"
+#: src/calls-main-window.c:316
+msgid "Can't place calls: No modem or VoIP account available"
+msgstr "Can't place calls: No modem or VoIP account available"
+
+#: src/calls-main-window.c:318
+msgid "Can't place calls: No plugin loaded"
+msgstr "Can't place calls: No plugin loaded"
 
-#: src/calls-encryption-indicator.c:129
-msgid "The party participating in the call"
-msgstr "The party participating in the call"
+#: src/calls-main-window.c:353
+msgid "Contacts"
+msgstr "Contacts"
 
-#: src/calls-call-display.c:245
-msgid "Calling..."
-msgstr "Calling..."
+#: src/calls-main-window.c:363
+msgid "Dial Pad"
+msgstr "Dial Pad"
 
-#: src/calls-call-display.c:598
-msgid "Call data"
-msgstr "Call data"
+#. Recent as in "Recent calls" (the call history)
+#: src/calls-main-window.c:372
+msgid "Recent"
+msgstr "Recent"
 
-#: src/calls-call-display.c:599
-msgid "Data for the call this display will be associated with"
-msgstr "Data for the call this display will be associated with"
+#: src/calls-notifier.c:52
+msgid "Missed call"
+msgstr "Missed call"
 
-#: src/calls-call-record.c:189
-msgid "ID"
-msgstr "ID"
+#. %s is a name here
+#: src/calls-notifier.c:76
+#, c-format
+msgid "Missed call from <b>%s</b>"
+msgstr "Missed call from <b>%s</b>"
 
-#: src/calls-call-record.c:190
-msgid "The row ID"
-msgstr "The row ID"
+#. %s is a id here
+#: src/calls-notifier.c:79
+#, c-format
+msgid "Missed call from %s"
+msgstr "Missed call from %s"
 
-#: src/calls-call-record.c:198
-msgid "Target"
-msgstr "Target"
+#: src/calls-notifier.c:81
+msgid "Missed call from unknown caller"
+msgstr "Missed call from unknown caller"
+
+#: src/calls-notifier.c:87
+msgid "Call back"
+msgstr "Call back"
+
+#: src/ui/account-overview.ui:16
+msgid "VoIP Accounts"
+msgstr "VoIP Accounts"
+
+#: src/ui/account-overview.ui:49
+msgid "Add VoIP Accounts"
+msgstr "Add VoIP Accounts"
 
-#: src/calls-call-record.c:199
-msgid "The PTSN phone number or other address of the call"
-msgstr "The PTSN phone number or other address of the call"
+#: src/ui/account-overview.ui:51
+msgid ""
+"You can add VoIP account here. It will allow you to place and receive VoIP "
+"calls using the SIP protocol. This feature is still relatively new and not "
+"yet feature complete (i.e. no encrypted media)."
+msgstr ""
+"You can add VoIP account here. It will allow you to place and receive VoIP "
+"calls using the SIP protocol. This feature is still relatively new and not "
+"yet feature complete (i.e. no encrypted media)."
+
+#: src/ui/account-overview.ui:58 src/ui/account-overview.ui:106
+msgid "_Add Account"
+msgstr "_Add Account"
+
+#. Translators: This is a verb, not a noun. Call the number of the currently selected row.
+#: src/ui/call-record-row.ui:62
+msgid "Call"
+msgstr "Call"
+
+#: src/ui/call-record-row.ui:102
+msgid "_Delete Call"
+msgstr "_Delete Call"
+
+#. Translators: This is a phone number
+#: src/ui/call-record-row.ui:107
+msgid "_Copy number"
+msgstr "_Copy number"
+
+#: src/ui/call-record-row.ui:112
+msgid "_Add contact"
+msgstr "_Add contact"
+
+#: src/ui/call-record-row.ui:117
+msgid "_Send SMS"
+msgstr "_Send SMS"
 
-#: src/calls-call-record.c:207
-msgid "Whether the call was an inbound call"
-msgstr "Whether the call was an inbound call"
+#: src/ui/call-selector-item.ui:38
+msgid "On hold"
+msgstr "On hold"
 
-#: src/calls-call-record.c:214
-msgid "Start"
-msgstr "Start"
+#: src/ui/contacts-box.ui:60
+msgid "No Contacts Found"
+msgstr "No Contacts Found"
 
-#: src/calls-call-record.c:215
-msgid "Time stamp of the start of the call"
-msgstr "Time stamp of the start of the call"
+#: src/ui/history-box.ui:10
+msgid "No Recent Calls"
+msgstr "No Recent Calls"
 
-#: src/calls-call-record.c:222
-msgid "Answered"
-msgstr "Answered"
+#: src/ui/main-window.ui:105
+msgid "USSD"
+msgstr "USSD"
+
+#: src/ui/main-window.ui:114
+msgid "_Cancel"
+msgstr "_Cancel"
+
+#: src/ui/main-window.ui:131
+msgid "_Close"
+msgstr "_Close"
+
+#: src/ui/main-window.ui:141
+msgid "_Send"
+msgstr "_Send"
+
+#: src/ui/main-window.ui:214
+msgid "_VoIP Accounts"
+msgstr "_VoIP Accounts"
+
+#: src/ui/main-window.ui:227
+msgid "_Keyboard shortcuts"
+msgstr "_Keyboard shortcuts"
+
+#: src/ui/main-window.ui:233
+msgid "_Help"
+msgstr "_Help"
+
+#. "Calls" is the application name, do not translate
+#: src/ui/main-window.ui:239
+msgid "_About Calls"
+msgstr "_About Calls"
+
+#: src/ui/new-call-box.ui:45
+msgid "Enter a VoIP address"
+msgstr "Enter a VoIP address"
+
+#: src/ui/new-call-box.ui:58
+msgid "Enter a number"
+msgstr "Enter a number"
 
-#: src/calls-call-record.c:223
-msgid "Time stamp of when the call was answered"
-msgstr "Time stamp of when the call was answered"
+#: src/ui/new-call-box.ui:97
+msgid "Dial"
+msgstr "Dial"
+
+#: src/ui/new-call-box.ui:120
+msgid "Delete character in front of cursor"
+msgstr "Delete character in front of cursor"
+
+#: src/ui/new-call-box.ui:149
+msgid "SIP Account"
+msgstr "SIP Account"
+
+#: src/ui/new-call-header-bar.ui:6
+msgid "New Call"
+msgstr "New Call"
 
-#: src/calls-call-record.c:230
-msgid "End"
-msgstr "End"
+#: src/ui/new-call-header-bar.ui:19
+msgid "Back"
+msgstr "Back"
 
-#: src/calls-call-record.c:231
-msgid "Time stamp of the end of the call"
-msgstr "Time stamp of the end of the call"
+#: plugins/provider/mm/calls-mm-call.c:73
+msgid "Unknown reason"
+msgstr "Unknown reason"
+
+#: plugins/provider/mm/calls-mm-call.c:74
+msgid "Outgoing call started"
+msgstr "Outgoing call started"
+
+#: plugins/provider/mm/calls-mm-call.c:75
+msgid "New incoming call"
+msgstr "New incoming call"
+
+#: plugins/provider/mm/calls-mm-call.c:76
+msgid "Call accepted"
+msgstr "Call accepted"
+
+#: plugins/provider/mm/calls-mm-call.c:77
+msgid "Call ended"
+msgstr "Call ended"
+
+#: plugins/provider/mm/calls-mm-call.c:78
+msgid "Call disconnected (busy or call refused)"
+msgstr "Call disconnected (busy or call refused)"
+
+#: plugins/provider/mm/calls-mm-call.c:79
+msgid "Call disconnected (wrong id or network problem)"
+msgstr "Call disconnected (wrong id or network problem)"
+
+#: plugins/provider/mm/calls-mm-call.c:80
+msgid "Call disconnected (error setting up audio channel)"
+msgstr "Call disconnected (error setting up audio channel)"
+
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
+msgid "Call transferred"
+msgstr "Call transferred"
+
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
+msgid "Call deflected"
+msgstr "Call deflected"
 
-#: src/calls-call-record-row.c:103
+#: plugins/provider/mm/calls-mm-call.c:109
 #, c-format
-msgid ""
-"%s\n"
-"yesterday"
-msgstr ""
-"%s\n"
-"yesterday"
+msgid "Call disconnected (unknown reason code %i)"
+msgstr "Call disconnected (unknown reason code %i)"
 
-#: src/calls-call-record-row.c:505
-msgid "Record"
-msgstr "Record"
-
-#: src/calls-call-record-row.c:506
-msgid "The call record for this row"
-msgstr "The call record for this row"
+#: plugins/provider/mm/calls-mm-provider.c:82
+msgid "ModemManager unavailable"
+msgstr "ModemManager unavailable"
 
-#: src/calls-call-record-row.c:512 src/calls-history-box.c:202
-#: src/calls-main-window.c:314 src/ui/main-window.ui:56
-msgid "Contacts"
-msgstr "Contacts"
+#: plugins/provider/mm/calls-mm-provider.c:84
+#: plugins/provider/ofono/calls-ofono-provider.c:96
+msgid "No voice-capable modem available"
+msgstr "No voice-capable modem available"
 
-#: src/calls-call-record-row.c:513 src/calls-history-box.c:203
-#: src/calls-main-window.c:315
-msgid "Interface for libfolks"
-msgstr "Interface for libfolks"
-
-#: src/calls-call-selector-item.c:174
-msgid "Call holder"
-msgstr "Call holder"
-
-#: src/calls-call-selector-item.c:175
-msgid "The holder for this call"
-msgstr "The holder for this call"
-
-#: src/calls-encryption-indicator.c:128
-msgid "Encrypted"
-msgstr "Encrypted"
-
-#: src/calls-history-box.c:195
-msgid "model"
-msgstr "model"
-
-#: src/calls-history-box.c:196
-msgid "The data store containing call records"
-msgstr "The data store containing call records"
+#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/ofono/calls-ofono-provider.c:98
+msgid "Normal"
+msgstr "Normal"
 
-#: src/calls-main-window.c:113
-msgid "translator-credits"
-msgstr "Zander Brown <zbrown@gnome.org>"
+#: plugins/provider/mm/calls-mm-provider.c:447
+#: plugins/provider/ofono/calls-ofono-provider.c:546
+msgid "Initialized"
+msgstr "Initialised"
 
-#: src/calls-main-window.c:176
-msgid "Can't place calls: No SIM card"
-msgstr "Can't place calls: No SIM card"
+#: plugins/provider/ofono/calls-ofono-provider.c:94
+msgid "DBus unavailable"
+msgstr "DBus unavailable"
 
-#: src/calls-main-window.c:181
-msgid "Can't place calls: No backend service"
-msgstr "Can't place calls: No backend service"
+#: plugins/provider/sip/calls-sip-account-widget.c:668
+msgid "No encryption"
+msgstr "No encryption"
 
-#: src/calls-main-window.c:185
-msgid "Can't place calls: No plugin"
-msgstr "Can't place calls: No plug-in"
+#. TODO Optional encryption
+#: plugins/provider/sip/calls-sip-account-widget.c:675
+msgid "Force encryption"
+msgstr "Force encryption"
 
-#: src/calls-main-window.c:213 src/ui/call-display.ui:270
-msgid "Dial Pad"
-msgstr "Dial Pad"
+#: plugins/provider/sip/calls-sip-call.c:123
+msgid "Cryptographic key exchange unsuccessful"
+msgstr "Cryptographic key exchange unsuccessful"
 
-#: src/calls-main-window.c:223
-msgid "Recent"
-msgstr "Recent"
+#: plugins/provider/sip/sip-account-widget.ui:11
+msgid "Add Account"
+msgstr "Add Account"
 
-#: src/calls-main-window.c:307
-msgid "Record store"
-msgstr "Record store"
-
-#: src/calls-main-window.c:308
-msgid "The store of call records"
-msgstr "The store of call records"
-
-#: src/calls-party.c:187
-msgid "The party's name"
-msgstr "The party's name"
-
-#: src/calls-party.c:194
-msgid "The party's telephone number"
-msgstr "The party's telephone number"
-
-#: src/calls-provider.c:70
-msgid "Status"
-msgstr "Status"
-
-#: src/calls-provider.c:71
-msgid "A text string describing the status for display to the user"
-msgstr "A text string describing the status for display to the user"
-
-#: src/calls-ringer.c:204
-msgid "Incoming call"
-msgstr "Incoming call"
-
-#: src/ui/call-display.ui:33
-msgid "Incoming phone call"
-msgstr "Incoming phone call"
-
-#: src/ui/call-display.ui:124
-msgid "Mute"
-msgstr "Mute"
-
-#: src/ui/call-display.ui:159
-msgid "Speaker"
-msgstr "Speaker"
-
-#: src/ui/call-display.ui:193
-msgid "Add call"
-msgstr "Add call"
-
-#: src/ui/call-display.ui:236
-msgid "Hold"
-msgstr "Hold"
-
-#: src/ui/call-display.ui:326
-msgid "Hang up"
-msgstr "Hang up"
-
-#: src/ui/call-display.ui:357
-msgid "Answer"
-msgstr "Answer"
-
-#: src/ui/call-display.ui:439
-msgid "Hide the dial pad"
-msgstr "Hide the dial pad"
-
-#: src/ui/call-record-row.ui:65
-msgid "Call the party"
-msgstr "Call the party"
-
-#: src/ui/call-selector-item.ui:31
-msgid "+441234567890"
-msgstr "+441234567890"
+#: plugins/provider/sip/sip-account-widget.ui:17
+msgid "_Log In"
+msgstr "_Log In"
 
-#: src/ui/call-selector-item.ui:44
-msgid "On hold"
-msgstr "On hold"
+#: plugins/provider/sip/sip-account-widget.ui:42
+msgid "Manage Account"
+msgstr "Manage Account"
 
-#: src/ui/encryption-indicator.ui:23
-msgid "This call is not encrypted"
-msgstr "This call is not encrypted"
-
-#: src/ui/encryption-indicator.ui:45
-msgid "This call is encrypted"
-msgstr "This call is encrypted"
+#: plugins/provider/sip/sip-account-widget.ui:47
+msgid "_Apply"
+msgstr "_Apply"
 
-#: src/ui/history-box.ui:23
-msgid "No Recent Calls"
-msgstr "No Recent Calls"
+#: plugins/provider/sip/sip-account-widget.ui:61
+msgid "_Delete"
+msgstr "_Delete"
 
-#: src/ui/history-header-bar.ui:8
-msgid "Recent Calls"
-msgstr "Recent Calls"
-
-#: src/ui/history-header-bar.ui:21
-msgid "New call…"
-msgstr "New call…"
-
-#. Translators: tooltip for the application menu button
-#: src/ui/history-header-bar.ui:40
-msgid "Menu"
-msgstr "Menu"
-
-#: src/ui/history-header-bar.ui:71
-msgid "About Calls"
-msgstr "About Calls"
-
-#: src/ui/main-window.ui:36
-msgid "No modem found"
-msgstr "No modem found"
+#: plugins/provider/sip/sip-account-widget.ui:91
+msgid "Server"
+msgstr "Server"
 
-#: src/ui/new-call-box.ui:101
-msgid "Dial"
-msgstr "Dial"
+#: plugins/provider/sip/sip-account-widget.ui:109
+msgid "Display Name"
+msgstr "Display Name"
 
-#: src/ui/new-call-box.ui:129
-msgid "Backspace through number"
-msgstr "Backspace through number"
+#: plugins/provider/sip/sip-account-widget.ui:110
+msgid "Optional"
+msgstr "Optional"
 
-#: src/ui/new-call-header-bar.ui:8
-msgid "New Call"
-msgstr "New Call"
+#: plugins/provider/sip/sip-account-widget.ui:128
+msgid "User ID"
+msgstr "User ID"
 
-#: src/ui/new-call-header-bar.ui:21
-msgid "Back"
-msgstr "Back"
+#: plugins/provider/sip/sip-account-widget.ui:141
+msgid "Password"
+msgstr "Password"
+
+#: plugins/provider/sip/sip-account-widget.ui:166
+msgid "Port"
+msgstr "Port"
+
+#: plugins/provider/sip/sip-account-widget.ui:182
+msgid "Transport"
+msgstr "Transport"
+
+#: plugins/provider/sip/sip-account-widget.ui:189
+msgid "Media Encryption"
+msgstr "Media Encryption"
+
+#: plugins/provider/sip/sip-account-widget.ui:201
+msgid "Use for Phone Calls"
+msgstr "Use for Phone Calls"
+
+#: plugins/provider/sip/sip-account-widget.ui:214
+msgid "Automatically Connect"
+msgstr "Automatically Connect"
+
+#~ msgid "View"
+#~ msgstr "View"
+
+#~ msgid "The CallsBestMatchView to monitor"
+#~ msgstr "The CallsBestMatchView to monitor"
+
+#~ msgid "Name"
+#~ msgstr "Name"
+
+#~ msgid "The display name of the best match"
+#~ msgstr "The display name of the best match"
+
+#~ msgid "Inbound"
+#~ msgstr "Inbound"
+
+#~ msgid "Whether the call is inbound"
+#~ msgstr "Whether the call is inbound"
+
+#~ msgid "Number"
+#~ msgstr "Number"
+
+#~ msgid "The number the call is connected to if known"
+#~ msgstr "The number the call is connected to if known"
+
+#~ msgid ""
+#~ "The name of the party the call is connected to, if the network provides it"
+#~ msgstr ""
+#~ "The name of the party the call is connected to, if the network provides it"
+
+#~ msgid "State"
+#~ msgstr "State"
+
+#~ msgid "The current state of the call"
+#~ msgstr "The current state of the call"
+
+#~ msgid "The party participating in the call"
+#~ msgstr "The party participating in the call"
+
+#~ msgid "Calling..."
+#~ msgstr "Calling..."
+
+#~ msgid "Data for the call this display will be associated with"
+#~ msgstr "Data for the call this display will be associated with"
+
+#~ msgid "ID"
+#~ msgstr "ID"
+
+#~ msgid "The row ID"
+#~ msgstr "The row ID"
+
+#~ msgid "Target"
+#~ msgstr "Target"
+
+#~ msgid "The PTSN phone number or other address of the call"
+#~ msgstr "The PTSN phone number or other address of the call"
+
+#~ msgid "Whether the call was an inbound call"
+#~ msgstr "Whether the call was an inbound call"
+
+#~ msgid "Start"
+#~ msgstr "Start"
+
+#~ msgid "Time stamp of the start of the call"
+#~ msgstr "Time stamp of the start of the call"
+
+#~ msgid "Answered"
+#~ msgstr "Answered"
+
+#~ msgid "Time stamp of when the call was answered"
+#~ msgstr "Time stamp of when the call was answered"
+
+#~ msgid "End"
+#~ msgstr "End"
+
+#~ msgid "Time stamp of the end of the call"
+#~ msgstr "Time stamp of the end of the call"
+
+#~ msgid "Record"
+#~ msgstr "Record"
+
+#~ msgid "The call record for this row"
+#~ msgstr "The call record for this row"
+
+#~ msgid "Interface for libfolks"
+#~ msgstr "Interface for libfolks"
+
+#~ msgid "The holder for this call"
+#~ msgstr "The holder for this call"
+
+#~ msgid "Encrypted"
+#~ msgstr "Encrypted"
+
+#~ msgid "model"
+#~ msgstr "model"
+
+#~ msgid "The data store containing call records"
+#~ msgstr "The data store containing call records"
+
+#~ msgid "Can't place calls: No SIM card"
+#~ msgstr "Can't place calls: No SIM card"
+
+#~ msgid "Record store"
+#~ msgstr "Record store"
+
+#~ msgid "The store of call records"
+#~ msgstr "The store of call records"
+
+#~ msgid "The party's name"
+#~ msgstr "The party's name"
+
+#~ msgid "Status"
+#~ msgstr "Status"
+
+#~ msgid "A text string describing the status for display to the user"
+#~ msgstr "A text string describing the status for display to the user"
+
+#~ msgid "Incoming phone call"
+#~ msgstr "Incoming phone call"
+
+#~ msgid "Mute"
+#~ msgstr "Mute"
+
+#~ msgid "Speaker"
+#~ msgstr "Speaker"
+
+#~ msgid "Hold"
+#~ msgstr "Hold"
+
+#~ msgid "Hang up"
+#~ msgstr "Hang up"
+
+#~ msgid "Answer"
+#~ msgstr "Answer"
+
+#~ msgid "Hide the dial pad"
+#~ msgstr "Hide the dial pad"
+
+#~ msgid "Call the party"
+#~ msgstr "Call the party"
+
+#~ msgid "+441234567890"
+#~ msgstr "+441234567890"
+
+#~ msgid "This call is not encrypted"
+#~ msgstr "This call is not encrypted"
+
+#~ msgid "New call…"
+#~ msgstr "New call…"
+
+#~ msgid "Menu"
+#~ msgstr "Menu"
+
+#~ msgid "No modem found"
+#~ msgstr "No modem found"
+
+#~ msgid "Backspace through number"
+#~ msgstr "Backspace through number"
diff -pruN 43.0-1/po/es.po 44~alpha.1-1/po/es.po
--- 43.0-1/po/es.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/es.po	2023-01-12 09:50:29.000000000 +0000
@@ -25,7 +25,7 @@ msgstr ""
 #: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
 #: src/calls-application.c:440 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
-msgstr "Llamadase"
+msgstr "Llamadas"
 
 #: data/org.gnome.Calls.desktop.in:4 data/org.gnome.Calls-daemon.desktop.in:4
 msgid "Phone"
diff -pruN 43.0-1/po/eu.po 44~alpha.1-1/po/eu.po
--- 43.0-1/po/eu.po	1970-01-01 00:00:00.000000000 +0000
+++ 44~alpha.1-1/po/eu.po	2023-01-12 09:50:29.000000000 +0000
@@ -0,0 +1,544 @@
+# Basque translation for calls.
+# Copyright (C) 2022 calls's COPYRIGHT HOLDER
+# This file is distributed under the same license as the calls package.
+# Asier Sarasua Garmendia <asiersarasua@ni.eus>, 2022.
+#
+msgid ""
+msgstr "Project-Id-Version: calls main\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
+"POT-Creation-Date: 2022-11-24 14:04+0000\n"
+"PO-Revision-Date: 2022-11-29 14:04+0000\n"
+"Last-Translator: Asier Sarasua Garmendia <asiersarasua@ni.eus>\n"
+"Language-Team: Basque <librezale@librezale.eus>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
+#: src/calls-application.c:457 src/ui/call-window.ui:9 src/ui/main-window.ui:7
+msgid "Calls"
+msgstr "Deiak"
+
+#: data/org.gnome.Calls.desktop.in:4 data/org.gnome.Calls-daemon.desktop.in:4
+msgid "Phone"
+msgstr "Telefonoa"
+
+#: data/org.gnome.Calls.desktop.in:5
+msgid "A phone dialer and call handler"
+msgstr "Telefono-markatzailea eta dei-kudeatzailea"
+
+#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
+#: data/org.gnome.Calls.desktop.in:7 data/org.gnome.Calls-daemon.desktop.in:7
+msgid "Telephone;Call;Phone;Dial;Dialer;PSTN;"
+msgstr "Telefonoa;Deia;Mugikorra;Markatu;Markatzailea;PSTN;"
+
+#: data/org.gnome.Calls-daemon.desktop.in:3
+msgid "Calls (daemon)"
+msgstr "Deiak (daemona)"
+
+#: data/org.gnome.Calls-daemon.desktop.in:5
+msgid "A phone dialer and call handler (daemon mode)"
+msgstr "Telefono-markatzailea eta dei-kudeatzailea (daemon modua)"
+
+#: data/org.gnome.Calls.metainfo.xml:7
+msgid "Make phone and SIP calls"
+msgstr "Deitu telefonoz eta SIP bidez"
+
+#: data/org.gnome.Calls.metainfo.xml:10
+msgid ""
+"Calls is a simple, elegant phone dialer and call handler for GNOME. It can "
+"be used with a cellular modem for plain old telephone calls as well as VoIP "
+"calls using the SIP protocol."
+msgstr "Deiak aplikazioa GNOME ingurunerako telefono-markatzaile eta dei-kudeatzaile sinplea da. Sare mugikorraren bidez betiko telefono-deiak egiteko erabili daiteke, edo SIP protokoloaren bidez VoIP deiak egiteko."
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:26
+msgid "Placing a call"
+msgstr "Deitzen"
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:31
+msgid "The call history"
+msgstr "Deien historia"
+
+#: data/org.gnome.Calls.gschema.xml:7 data/org.gnome.Calls.gschema.xml:8
+msgid "Whether calls should automatically use the default origin"
+msgstr "Deiek automatikoki jatorri lehenetsia erabiliko duten ala ez"
+
+#: data/org.gnome.Calls.gschema.xml:13
+msgid "The country code as reported by the modem"
+msgstr "Herrialde-kodea modemaren arabera"
+
+#: data/org.gnome.Calls.gschema.xml:14
+msgid "The country code is used for contact name lookup"
+msgstr "Herrialde-kodea kontaktu-izenak bilatzeko erabiltzen da"
+
+#: data/org.gnome.Calls.gschema.xml:19
+msgid "The plugins to load automatically"
+msgstr "Automatikoki kargatuko diren pluginak"
+
+#: data/org.gnome.Calls.gschema.xml:20
+msgid "These plugins will be automatically loaded on application startup."
+msgstr "Plugin horiek automatikoki kargatuko dira aplikazioa abiaraztean."
+
+#: data/org.gnome.Calls.gschema.xml:25
+msgid "Audio codecs to use for VoIP calls in order of preference"
+msgstr "VoIP deietan erabiliko diren audio-kodekak, lehentasunaren arabera ordenatuta"
+
+#: data/org.gnome.Calls.gschema.xml:26
+msgid "The preferred audio codecs to use for VoIP calls (if available)"
+msgstr "VoIP deietan erabiliko diren (erabilgarri badaude) audio-kodek hobetsiak"
+
+#: data/org.gnome.Calls.gschema.xml:31
+msgid "Whether to allow using SDES for SRTP without TLS as the transport"
+msgstr "SRTPrako SDES erabiltzea onartzen den, TLS gabe, garraiorako"
+
+#: data/org.gnome.Calls.gschema.xml:32
+msgid "Set to true if you want to allow with keys exchanged in cleartext."
+msgstr "Ezarri egia gakoak testu garbian trukatuta onartu nahi baduzu."
+
+#: src/calls-account.c:163
+msgid "Default (uninitialized) state"
+msgstr "Egoera lehenetsia (hasieratu gabea)"
+
+#: src/calls-account.c:166
+msgid "Initializing account…"
+msgstr "Kontua hasieratzen…"
+
+#: src/calls-account.c:169
+msgid "Uninitializing account…"
+msgstr "Kontuaren hasieratzea desegiten…"
+
+#: src/calls-account.c:172
+msgid "Connecting to server…"
+msgstr "Zerbitzariarekin konektatzen…"
+
+#: src/calls-account.c:175
+msgid "Account is online"
+msgstr "Kontua linean dago"
+
+#: src/calls-account.c:178
+msgid "Disconnecting from server…"
+msgstr "Zerbitzaritik deskonektatzen…"
+
+#: src/calls-account.c:181
+msgid "Account is offline"
+msgstr "Kontua lineaz kanpo dago"
+
+#: src/calls-account.c:184
+msgid "Account encountered an error"
+msgstr "Kontuak errore bat aurkitu du"
+
+#: src/calls-account.c:202
+msgid "No reason given"
+msgstr "Ez da arrazoirik eman"
+
+#: src/calls-account.c:205
+msgid "Initialization started"
+msgstr "Hasieratzea abiarazi da"
+
+#: src/calls-account.c:208
+msgid "Initialization complete"
+msgstr "Hasieratzea osatu da"
+
+#: src/calls-account.c:211
+msgid "Uninitialization started"
+msgstr "Hasieratzea desegitea abiarazi da"
+
+#: src/calls-account.c:214
+msgid "Uninitialization complete"
+msgstr "Hasieratzea desegitea osatu da"
+
+#: src/calls-account.c:217
+msgid "No credentials set"
+msgstr "Ez da kredentzialik ezarri"
+
+#: src/calls-account.c:220
+msgid "Starting to connect"
+msgstr "Konexioa abiarazten"
+
+#: src/calls-account.c:223
+msgid "Connection timed out"
+msgstr "Konexioak denbora agortu du"
+
+#: src/calls-account.c:226
+msgid "Domain name could not be resolved"
+msgstr "Ezin izan da domeinu-izena ebatzi"
+
+#: src/calls-account.c:229
+msgid "Server did not accept username or password"
+msgstr "Zerbitzariak ez du onartu erabiltzaile-izena edo pasahitza"
+
+#: src/calls-account.c:232
+msgid "Connecting complete"
+msgstr "Konexioa osatu da"
+
+#: src/calls-account.c:235
+msgid "Starting to disconnect"
+msgstr "Deskonexioa abiarazten"
+
+#: src/calls-account.c:238
+msgid "Disconnecting complete"
+msgstr "Deskonexioa osatu da"
+
+#: src/calls-account.c:241
+msgid "Internal error occurred"
+msgstr "Barneko errorea gertatu da"
+
+#: src/calls-account-overview.c:177
+#, c-format
+msgid "Edit account: %s"
+msgstr "Editatu kontua: %s"
+
+#: src/calls-account-overview.c:184
+msgid "Add new account"
+msgstr "Gehitu kontu berria"
+
+#: src/calls-account-overview.c:376
+msgid "Account overview"
+msgstr "Kontuen ikuspegi orokorra"
+
+#: src/calls-application.c:327
+#, c-format
+msgid "Tried dialing invalid tel URI `%s'"
+msgstr "Baliogabea den `%s' URI telefonoa markatzen saiatu zara"
+
+#: src/calls-application.c:660
+#, c-format
+msgid "Don't know how to open `%s'"
+msgstr "Ez dakit nola ireki `%s'"
+
+#: src/calls-application.c:717
+msgid "The name of the plugin to use as a call provider"
+msgstr "Dei-hornitzaile modura erabiliko den pluginaren izena"
+
+#: src/calls-application.c:718
+msgid "PLUGIN"
+msgstr "PLUGINA"
+
+#: src/calls-application.c:723
+msgid "Whether to present the main window on startup"
+msgstr "Abioan leiho nagusia erakutsiko den ala ez"
+
+#: src/calls-application.c:729
+msgid "Dial a telephone number"
+msgstr "Markatu telefono-zenbakia"
+
+#: src/calls-application.c:730
+msgid "NUMBER"
+msgstr "ZENBAKIA"
+
+#: src/calls-application.c:735
+msgid "Enable verbose debug messages"
+msgstr "Gaitu arazketa-mezu xehatuak"
+
+#: src/calls-application.c:741
+msgid "Print current version"
+msgstr "Inprimatu uneko bertsioa"
+
+#: src/calls-best-match.c:435
+msgid "Anonymous caller"
+msgstr "Deitzaile anonimoa"
+
+#: src/calls-call-record-row.c:97
+#, c-format
+msgid ""
+"%s\n"
+"yesterday"
+msgstr "%s\n"
+"atzo"
+
+#: src/calls-main-window.c:123
+msgid "translator-credits"
+msgstr "translator-credits"
+
+#: src/calls-main-window.c:316
+msgid "Can't place calls: No modem or VoIP account available"
+msgstr "Ezin da deirik egin: Ez dago modemik edo VoIP konturik erabilgarri"
+
+#: src/calls-main-window.c:318
+msgid "Can't place calls: No plugin loaded"
+msgstr "Ezin da deirik egin: Ez dago pluginik kargatuta"
+
+#: src/calls-main-window.c:353
+msgid "Contacts"
+msgstr "Kontaktuak"
+
+#: src/calls-main-window.c:363
+msgid "Dial Pad"
+msgstr "Markatze-teklatua"
+
+#. Recent as in "Recent calls" (the call history)
+#: src/calls-main-window.c:372
+msgid "Recent"
+msgstr "Azken aldikoa"
+
+#: src/calls-notifier.c:52
+msgid "Missed call"
+msgstr "Galdutako deia"
+
+#. %s is a name here
+#: src/calls-notifier.c:76
+#, c-format
+msgid "Missed call from <b>%s</b>"
+msgstr "Galdutako deia: <b>%s</b>"
+
+#. %s is a id here
+#: src/calls-notifier.c:79
+#, c-format
+msgid "Missed call from %s"
+msgstr "Galdutako deia: %s"
+
+#: src/calls-notifier.c:81
+msgid "Missed call from unknown caller"
+msgstr "Galdutako deia: deitzaile ezezaguna"
+
+#: src/calls-notifier.c:87
+msgid "Call back"
+msgstr "Itzuli deia"
+
+#: src/ui/account-overview.ui:16
+msgid "VoIP Accounts"
+msgstr "VoIP kontuak"
+
+#: src/ui/account-overview.ui:49
+msgid "Add VoIP Accounts"
+msgstr "Gehitu VoIP kontuak"
+
+#: src/ui/account-overview.ui:51
+msgid ""
+"You can add VoIP account here. It will allow you to place and receive VoIP "
+"calls using the SIP protocol. This feature is still relatively new and not "
+"yet feature complete (i.e. no encrypted media)."
+msgstr "VoIP kontua hemen gehitu daiteke. SIP protokoloaren bidezko VoIP deiak egitea eta jasotzea ahalbidetzen du. Egingide hau berria da eta oraindik ez dago erabat osatuta (adibidez, multimedia ez da zifratuko)."
+
+#: src/ui/account-overview.ui:58 src/ui/account-overview.ui:106
+msgid "_Add Account"
+msgstr "_Gehitu kontua"
+
+#. Translators: This is a verb, not a noun. Call the number of the currently selected row.
+#: src/ui/call-record-row.ui:62
+msgid "Call"
+msgstr "Deia"
+
+#: src/ui/call-record-row.ui:102
+msgid "_Delete Call"
+msgstr "E_zabatu deia"
+
+#. Translators: This is a phone number
+#: src/ui/call-record-row.ui:107
+msgid "_Copy number"
+msgstr "_Kopiatu zenbakia"
+
+#: src/ui/call-record-row.ui:112
+msgid "_Add contact"
+msgstr "_Gehitu kontaktua"
+
+#: src/ui/call-record-row.ui:117
+msgid "_Send SMS"
+msgstr "_Bidali SMSa"
+
+#: src/ui/call-selector-item.ui:38
+msgid "On hold"
+msgstr "Zain"
+
+#: src/ui/contacts-box.ui:60
+msgid "No Contacts Found"
+msgstr "Ez da kontakturik aurkitu"
+
+#: src/ui/history-box.ui:10
+msgid "No Recent Calls"
+msgstr "Ez da deirik egon azken aldian"
+
+#: src/ui/main-window.ui:105
+msgid "USSD"
+msgstr "USSD"
+
+#: src/ui/main-window.ui:114
+msgid "_Cancel"
+msgstr "_Utzi"
+
+#: src/ui/main-window.ui:131
+msgid "_Close"
+msgstr "_Itxi"
+
+#: src/ui/main-window.ui:141
+msgid "_Send"
+msgstr "_Bidali"
+
+#: src/ui/main-window.ui:214
+msgid "_VoIP Accounts"
+msgstr "_VoIP kontuak"
+
+#: src/ui/main-window.ui:227
+msgid "_Keyboard shortcuts"
+msgstr "La_sterbideak"
+
+#: src/ui/main-window.ui:233
+msgid "_Help"
+msgstr "_Laguntza"
+
+#. "Calls" is the application name, do not translate
+#: src/ui/main-window.ui:239
+msgid "_About Calls"
+msgstr "Deiak aplikazioari b_uruz"
+
+#: src/ui/new-call-box.ui:38
+msgid "Enter a VoIP address"
+msgstr "Sartu VoIP helbidea"
+
+#: src/ui/new-call-box.ui:62
+msgid "SIP Account"
+msgstr "SIP kontuak"
+
+#: src/ui/new-call-header-bar.ui:6
+msgid "New Call"
+msgstr "Dei berria"
+
+#: src/ui/new-call-header-bar.ui:19
+msgid "Back"
+msgstr "Atzera"
+
+#: plugins/provider/mm/calls-mm-call.c:73
+msgid "Unknown reason"
+msgstr "Arrazoi ezezaguna"
+
+#: plugins/provider/mm/calls-mm-call.c:74
+msgid "Outgoing call started"
+msgstr "Irteerako deia abiarazi da"
+
+#: plugins/provider/mm/calls-mm-call.c:75
+msgid "New incoming call"
+msgstr "Sarrerako dei berria"
+
+#: plugins/provider/mm/calls-mm-call.c:76
+msgid "Call accepted"
+msgstr "Deia onartu da"
+
+#: plugins/provider/mm/calls-mm-call.c:77
+msgid "Call ended"
+msgstr "Deia amaitu da"
+
+#: plugins/provider/mm/calls-mm-call.c:78
+msgid "Call disconnected (busy or call refused)"
+msgstr "Deia deskonektatu da (lanpetuta edo baztertu da)"
+
+#: plugins/provider/mm/calls-mm-call.c:79
+msgid "Call disconnected (wrong id or network problem)"
+msgstr "Deia deskonektatu da (ID okerra edo sareko arazoa)"
+
+#: plugins/provider/mm/calls-mm-call.c:80
+msgid "Call disconnected (error setting up audio channel)"
+msgstr "Deia deskonektatu da (errorea audio-kanala konfiguratzean)"
+
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
+msgid "Call transferred"
+msgstr "Deia transferitu da"
+
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
+msgid "Call deflected"
+msgstr "Deia desbideratu da"
+
+#: plugins/provider/mm/calls-mm-call.c:109
+#, c-format
+msgid "Call disconnected (unknown reason code %i)"
+msgstr "Deia deskonektatu da (arrazoi ezezaguna, %i kodea)"
+
+#: plugins/provider/mm/calls-mm-provider.c:84
+msgid "ModemManager unavailable"
+msgstr "ModemManager ez dago erabilgarri"
+
+#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/ofono/calls-ofono-provider.c:96
+msgid "No voice-capable modem available"
+msgstr "Ez da aurkitu ahotsa maneiatzeko gai den modemik"
+
+#: plugins/provider/mm/calls-mm-provider.c:88
+#: plugins/provider/ofono/calls-ofono-provider.c:98
+msgid "Normal"
+msgstr "Normala"
+
+#: plugins/provider/mm/calls-mm-provider.c:456
+#: plugins/provider/ofono/calls-ofono-provider.c:546
+msgid "Initialized"
+msgstr "Hasieratua"
+
+#: plugins/provider/ofono/calls-ofono-provider.c:94
+msgid "DBus unavailable"
+msgstr "DBus ez dago erabilgarri"
+
+#: plugins/provider/sip/calls-sip-account-widget.c:668
+msgid "No encryption"
+msgstr "Zifratzerik gabe"
+
+#. TODO Optional encryption
+#: plugins/provider/sip/calls-sip-account-widget.c:675
+msgid "Force encryption"
+msgstr "Behartu zifratzea"
+
+#: plugins/provider/sip/calls-sip-call.c:123
+msgid "Cryptographic key exchange unsuccessful"
+msgstr "Gako kriptografikoen trukea ez da ongi gauzatu"
+
+#: plugins/provider/sip/sip-account-widget.ui:11
+msgid "Add Account"
+msgstr "Gehitu kontua"
+
+#: plugins/provider/sip/sip-account-widget.ui:17
+msgid "_Log In"
+msgstr "_Hasi saioa"
+
+#: plugins/provider/sip/sip-account-widget.ui:42
+msgid "Manage Account"
+msgstr "Kudeatu kontua"
+
+#: plugins/provider/sip/sip-account-widget.ui:47
+msgid "_Apply"
+msgstr "_Aplikatu"
+
+#: plugins/provider/sip/sip-account-widget.ui:61
+msgid "_Delete"
+msgstr "E_zabatu"
+
+#: plugins/provider/sip/sip-account-widget.ui:91
+msgid "Server"
+msgstr "Zerbitzaria"
+
+#: plugins/provider/sip/sip-account-widget.ui:109
+msgid "Display Name"
+msgstr "Bistaratze-izena"
+
+#: plugins/provider/sip/sip-account-widget.ui:110
+msgid "Optional"
+msgstr "Aukerakoa"
+
+#: plugins/provider/sip/sip-account-widget.ui:128
+msgid "User ID"
+msgstr "Erabiltzailearen IDa"
+
+#: plugins/provider/sip/sip-account-widget.ui:141
+msgid "Password"
+msgstr "Pasahitza"
+
+#: plugins/provider/sip/sip-account-widget.ui:166
+msgid "Port"
+msgstr "Ataka"
+
+#: plugins/provider/sip/sip-account-widget.ui:182
+msgid "Transport"
+msgstr "Garraioa"
+
+#: plugins/provider/sip/sip-account-widget.ui:189
+msgid "Media Encryption"
+msgstr "Multimedia-zifratzea"
+
+#: plugins/provider/sip/sip-account-widget.ui:201
+msgid "Use for Phone Calls"
+msgstr "Erabili telefono-deietarako"
+
+#: plugins/provider/sip/sip-account-widget.ui:214
+msgid "Automatically Connect"
+msgstr "Konektatu automatikoki"
diff -pruN 43.0-1/po/fi.po 44~alpha.1-1/po/fi.po
--- 43.0-1/po/fi.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/fi.po	2023-01-12 09:50:29.000000000 +0000
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: calls master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
-"POT-Creation-Date: 2022-08-29 11:48+0000\n"
-"PO-Revision-Date: 2022-08-30 19:57+0300\n"
+"POT-Creation-Date: 2022-11-18 15:34+0000\n"
+"PO-Revision-Date: 2022-11-26 23:30+0200\n"
 "Last-Translator: Jiri Grönroos <jiri.gronroos+l10n@iki.fi>\n"
 "Language-Team: Finnish <lokalisointi-lista@googlegroups.com>\n"
 "Language: fi\n"
@@ -20,7 +20,7 @@ msgstr ""
 "X-Generator: Poedit 3.1.1\n"
 
 #: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
-#: src/calls-application.c:438 src/ui/call-window.ui:9 src/ui/main-window.ui:7
+#: src/calls-application.c:457 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "Puhelut"
 
@@ -196,42 +196,55 @@ msgstr "Yhteyden katkaiseminen valmistui
 msgid "Internal error occurred"
 msgstr "Tapahtui sisäinen virhe"
 
-#: src/calls-application.c:319
+#: src/calls-account-overview.c:177
+#, c-format
+msgid "Edit account: %s"
+msgstr "Muokkaa tiliä: %s"
+
+#: src/calls-account-overview.c:184
+msgid "Add new account"
+msgstr "Lisää uusi tili"
+
+#: src/calls-account-overview.c:376
+msgid "Account overview"
+msgstr "Tilin yhteenveto"
+
+#: src/calls-application.c:327
 #, c-format
 msgid "Tried dialing invalid tel URI `%s'"
 msgstr "Yritettiin soittaa virheelliseen tel-URI:in `%s'"
 
-#: src/calls-application.c:636
+#: src/calls-application.c:660
 #, c-format
 msgid "Don't know how to open `%s'"
 msgstr "Ei tietoa miten avata`%s'"
 
 # Provider - muuttuja, ohjelma vai taho?
-#: src/calls-application.c:690
+#: src/calls-application.c:717
 msgid "The name of the plugin to use as a call provider"
 msgstr "Liitännäisen nimi käytettäväksi puhelun tarjoajalle"
 
-#: src/calls-application.c:691
+#: src/calls-application.c:718
 msgid "PLUGIN"
 msgstr "LIITÄNNÄINEN"
 
-#: src/calls-application.c:696
+#: src/calls-application.c:723
 msgid "Whether to present the main window on startup"
 msgstr "Näytetäänkö pääikkunaa käynnistyksen yhteydessä"
 
-#: src/calls-application.c:702
+#: src/calls-application.c:729
 msgid "Dial a telephone number"
 msgstr "Soita puhelinnumeroon"
 
-#: src/calls-application.c:703
+#: src/calls-application.c:730
 msgid "NUMBER"
 msgstr "NUMERO"
 
-#: src/calls-application.c:708
+#: src/calls-application.c:735
 msgid "Enable verbose debug messages"
 msgstr "Käytä runsaita vianjäljitysviestejä"
 
-#: src/calls-application.c:714
+#: src/calls-application.c:741
 msgid "Print current version"
 msgstr "Tulosta nykyinen versio"
 
@@ -393,24 +406,11 @@ msgstr "_Ohje"
 msgid "_About Calls"
 msgstr "_Tietoja - Puhelut"
 
-#: src/ui/new-call-box.ui:45
+#: src/ui/new-call-box.ui:38
 msgid "Enter a VoIP address"
 msgstr "Kirjoita VoIP-osoite"
 
-#: src/ui/new-call-box.ui:58
-msgid "Enter a number"
-msgstr "Näppäile numero"
-
-# Valitse vai näppäile?
-#: src/ui/new-call-box.ui:97
-msgid "Dial"
-msgstr "Valitse numero"
-
-#: src/ui/new-call-box.ui:120
-msgid "Delete character in front of cursor"
-msgstr "Poista merkki kursorin edestä"
-
-#: src/ui/new-call-box.ui:149
+#: src/ui/new-call-box.ui:62
 msgid "SIP Account"
 msgstr "SIP-tili"
 
@@ -454,35 +454,37 @@ msgstr "Puhelu päättyi (väärä id ta
 msgid "Call disconnected (error setting up audio channel)"
 msgstr "Puhelu päättyi (virhe asettaessa äänikanavaa)"
 
-#: plugins/provider/mm/calls-mm-call.c:81
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
 msgid "Call transferred"
 msgstr "Puhelu siirretty"
 
-#: plugins/provider/mm/calls-mm-call.c:82
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
 msgid "Call deflected"
 msgstr "Puhelu taitettu"
 
-#: plugins/provider/mm/calls-mm-call.c:107
+#: plugins/provider/mm/calls-mm-call.c:109
 #, c-format
 msgid "Call disconnected (unknown reason code %i)"
 msgstr "Puhelu päättyi (tuntematon syykoodi %i)"
 
-#: plugins/provider/mm/calls-mm-provider.c:82
+#: plugins/provider/mm/calls-mm-provider.c:84
 msgid "ModemManager unavailable"
 msgstr "ModemManager ei saatavilla"
 
-#: plugins/provider/mm/calls-mm-provider.c:84
+#: plugins/provider/mm/calls-mm-provider.c:86
 #: plugins/provider/ofono/calls-ofono-provider.c:96
 msgid "No voice-capable modem available"
 msgstr "Ei puhetoiminnolla varustettua modeemia saatavilla"
 
-#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/mm/calls-mm-provider.c:88
 #: plugins/provider/ofono/calls-ofono-provider.c:98
 msgid "Normal"
 msgstr "Normaali"
 
-#: plugins/provider/mm/calls-mm-provider.c:445
-#: plugins/provider/ofono/calls-ofono-provider.c:543
+#: plugins/provider/mm/calls-mm-provider.c:456
+#: plugins/provider/ofono/calls-ofono-provider.c:546
 msgid "Initialized"
 msgstr "Alustettu"
 
@@ -563,6 +565,16 @@ msgstr "Käytä puheluihin"
 msgid "Automatically Connect"
 msgstr "Yhdistä automaattisesti"
 
+#~ msgid "Enter a number"
+#~ msgstr "Näppäile numero"
+
+# Valitse vai näppäile?
+#~ msgid "Dial"
+#~ msgstr "Valitse numero"
+
+#~ msgid "Delete character in front of cursor"
+#~ msgstr "Poista merkki kursorin edestä"
+
 #~ msgid "Call disconnected (unknown reason)"
 #~ msgstr "Puhelu päättyi (tuntematon syy)"
 
diff -pruN 43.0-1/po/fur.po 44~alpha.1-1/po/fur.po
--- 43.0-1/po/fur.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/fur.po	2023-01-12 09:50:29.000000000 +0000
@@ -7,19 +7,20 @@ msgid ""
 msgstr ""
 "Project-Id-Version: calls\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
-"POT-Creation-Date: 2021-11-24 15:53+0000\n"
-"PO-Revision-Date: 2021-12-22 15:18+0100\n"
-"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
-"Language-Team: Furlan (f.t.public@gmail.com)\n"
+"POT-Creation-Date: 2023-01-06 17:14+0000\n"
+"PO-Revision-Date: 2023-01-08 13:03+0000\n"
+"Last-Translator: Fabio T. <f.t.public@gmail.com>\n"
+"Language-Team: Friulian <f.t.public@gmail.com>\n"
 "Language: fur\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Editor: HaiPO 1.4 beta\n"
 "X-Generator: Poedit 3.0.1\n"
 
-#: data/org.gnome.Calls.desktop.in:3 src/calls-application.c:373
-#: src/ui/call-window.ui:10 src/ui/main-window.ui:8
+#: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
+#: src/calls-application.c:457 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "Clamadis"
 
@@ -31,7 +32,8 @@ msgstr "Telefon"
 msgid "A phone dialer and call handler"
 msgstr "Une tastiere telefoniche e un gjestôr di clamadis"
 
-#. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon.
+#. Translators: Search terms to find this application. Do NOT translate or
+#. localize the semicolons! The list MUST also end with a semicolon!
 #: data/org.gnome.Calls.desktop.in:7 data/org.gnome.Calls-daemon.desktop.in:7
 msgid "Telephone;Call;Phone;Dial;Dialer;PSTN;"
 msgstr "Telefon;Clamade;Tastierin;PSTN;"
@@ -44,97 +46,215 @@ msgstr "Clamadis (demoni)"
 msgid "A phone dialer and call handler (daemon mode)"
 msgstr "Une tastiere telefoniche e gjestôr di clamadis (modalitât demoni)"
 
-#: plugins/sip/sip-account-widget.ui:11
-msgid "Add Account"
-msgstr "Zonte un Account"
-
-#: plugins/sip/sip-account-widget.ui:17
-msgid "_Log In"
-msgstr "_Jentre"
-
-#: plugins/sip/sip-account-widget.ui:42
-msgid "Manage Account"
-msgstr "Gjestìs account"
+#: data/org.gnome.Calls.metainfo.xml:7
+msgid "Make phone and SIP calls"
+msgstr "Fâs clamadis telefonichis e SIP"
 
-#: plugins/sip/sip-account-widget.ui:47
-msgid "_Apply"
-msgstr "_Apliche"
+#: data/org.gnome.Calls.metainfo.xml:10
+msgid ""
+"Calls is a simple, elegant phone dialer and call handler for GNOME. It can "
+"be used with a cellular modem for plain old telephone calls as well as VoIP "
+"calls using the SIP protocol."
+msgstr ""
+"Clamadis al è un sempliç, elegant compositôr telefonic e gjestôr di clamadis"
+" par GNOME. Al è pussibil doprâlu cuntun modem di celulâr par semplicis "
+"clamadis telefonichis in vecjo stîl ma ancje pes clamadis VoIP doprant il "
+"protocol SIP."
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:26
+msgid "Placing a call"
+msgstr "Fâ une clamade"
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:31
+msgid "The call history"
+msgstr "La cronologjie des clamadis"
 
-#: plugins/sip/sip-account-widget.ui:61
-msgid "_Delete"
-msgstr "_Elimine"
+#: data/org.gnome.Calls.gschema.xml:7 data/org.gnome.Calls.gschema.xml:8
+msgid "Whether calls should automatically use the default origin"
+msgstr ""
+"Indiche se lis clamadis a àn di doprâ in automatic la origjin predefinide"
 
-#: plugins/sip/sip-account-widget.ui:91
-msgid "Server"
-msgstr "Servidôr"
+#: data/org.gnome.Calls.gschema.xml:13
+msgid "The country code as reported by the modem"
+msgstr "Il prefìs nazionâl come ripuartât dal modem"
+
+#: data/org.gnome.Calls.gschema.xml:14
+msgid "The country code is used for contact name lookup"
+msgstr "Il prefìs nazionâl al ven doprât pe ricercje dal non dai contats"
+
+#: data/org.gnome.Calls.gschema.xml:19
+msgid "The plugins to load automatically"
+msgstr "I plugins di cjariâ in automatic"
 
-#: plugins/sip/sip-account-widget.ui:109
-msgid "Display Name"
-msgstr "Non mostrât"
+#: data/org.gnome.Calls.gschema.xml:20
+msgid "These plugins will be automatically loaded on application startup."
+msgstr ""
+"Chescj plugins a vignaran cjariâts in automatic al inviament de aplicazion."
 
-#: plugins/sip/sip-account-widget.ui:110
-msgid "Optional"
-msgstr "Opzionâl"
+#: data/org.gnome.Calls.gschema.xml:25
+msgid "Audio codecs to use for VoIP calls in order of preference"
+msgstr "I codecs audio di doprâ pes clamadis VoIP par ordin di preference"
+
+#: data/org.gnome.Calls.gschema.xml:26
+msgid "The preferred audio codecs to use for VoIP calls (if available)"
+msgstr "I codecs audio preferîts di doprâ pes clamadis VoIP (se disponibii)"
+
+#: data/org.gnome.Calls.gschema.xml:31
+msgid "Whether to allow using SDES for SRTP without TLS as the transport"
+msgstr "Indiche se permeti l'ûs di SDES par SRTP cence TLS tant che traspuart"
 
-#: plugins/sip/sip-account-widget.ui:128
-msgid "User ID"
-msgstr "ID utent"
+#: data/org.gnome.Calls.gschema.xml:32
+msgid "Set to true if you want to allow with keys exchanged in cleartext."
+msgstr ""
+"Met a vêr (true) se tu desideris permeti il scambi des clâfs in test in "
+"clâr."
 
-#: plugins/sip/sip-account-widget.ui:141
-msgid "Password"
-msgstr "Password"
+#: src/calls-account.c:163
+msgid "Default (uninitialized) state"
+msgstr "Stât predefinît (no inizializât)"
+
+#: src/calls-account.c:166
+msgid "Initializing account…"
+msgstr "Daûr a inizializâ l'account…"
+
+#: src/calls-account.c:169
+msgid "Uninitializing account…"
+msgstr "Daûr a anulâ l'inizializazion dal account…"
+
+#: src/calls-account.c:172
+msgid "Connecting to server…"
+msgstr "Daûr a conetisi al servidôr…"
+
+#: src/calls-account.c:175
+msgid "Account is online"
+msgstr "L'account al è conetût"
+
+#: src/calls-account.c:178
+msgid "Disconnecting from server…"
+msgstr "Daûr a disconetisi dal servidôr…"
+
+#: src/calls-account.c:181
+msgid "Account is offline"
+msgstr "L'account al è disconetût"
+
+#: src/calls-account.c:184
+msgid "Account encountered an error"
+msgstr "L'account al è lât incuintri a un erôr"
+
+#: src/calls-account.c:202
+msgid "No reason given"
+msgstr "Nissun motîf indicât"
+
+#: src/calls-account.c:205
+msgid "Initialization started"
+msgstr "Inizializazion scomençade"
+
+#: src/calls-account.c:208
+msgid "Initialization complete"
+msgstr "Inizializazion completade"
+
+#: src/calls-account.c:211
+msgid "Uninitialization started"
+msgstr "Anulament inizializazion scomençât"
+
+#: src/calls-account.c:214
+msgid "Uninitialization complete"
+msgstr "Anulament inizializazion completât"
+
+#: src/calls-account.c:217
+msgid "No credentials set"
+msgstr "Credenziâls no configuradis"
+
+#: src/calls-account.c:220
+msgid "Starting to connect"
+msgstr "Inviament de conession"
+
+#: src/calls-account.c:223
+msgid "Connection timed out"
+msgstr "Conession scjadude"
+
+#: src/calls-account.c:226
+msgid "Domain name could not be resolved"
+msgstr "Impussibil risolvi il non dal domini"
+
+#: src/calls-account.c:229
+msgid "Server did not accept username or password"
+msgstr "Il servidôr nol à acetât il non utent o la password"
+
+#: src/calls-account.c:232
+msgid "Connecting complete"
+msgstr "Conession completade"
+
+#: src/calls-account.c:235
+msgid "Starting to disconnect"
+msgstr "Inviament de disconession"
+
+#: src/calls-account.c:238
+msgid "Disconnecting complete"
+msgstr "Disconession completade"
+
+#: src/calls-account.c:241
+msgid "Internal error occurred"
+msgstr "Al è vignût fûr un erôr interni"
 
-#: plugins/sip/sip-account-widget.ui:161
-msgid "Port"
-msgstr "Puarte"
+#: src/calls-account-overview.c:177
+#, c-format
+msgid "Edit account: %s"
+msgstr "Modifiche account: %s"
 
-#: plugins/sip/sip-account-widget.ui:177
-msgid "Transport"
-msgstr "Traspuart"
+#: src/calls-account-overview.c:184
+msgid "Add new account"
+msgstr "Zonte gnûf account"
+
+#: src/calls-account-overview.c:376
+msgid "Account overview"
+msgstr "Panoramiche dal account"
 
-#: src/calls-application.c:536
+#: src/calls-application.c:327
 #, c-format
-msgid "Tried invalid tel URI `%s'"
-msgstr "Provât tel URI `%s' no valit"
+msgid "Tried dialing invalid tel URI `%s'"
+msgstr "Provât a componi l'URI di telefon `%s' no valit"
 
-#: src/calls-application.c:613
+#: src/calls-application.c:660
 #, c-format
 msgid "Don't know how to open `%s'"
 msgstr "No sai cemût vierzi `%s'"
 
-#: src/calls-application.c:666
+#: src/calls-application.c:717
 msgid "The name of the plugin to use as a call provider"
 msgstr "Il non dal plugin di doprâ tant che gjestôr di clamadis"
 
-#: src/calls-application.c:667
+#: src/calls-application.c:718
 msgid "PLUGIN"
 msgstr "PLUGIN"
 
-#: src/calls-application.c:672
+#: src/calls-application.c:723
 msgid "Whether to present the main window on startup"
 msgstr "Indiche se presentâ il barcon principâl al inviament"
 
-#: src/calls-application.c:678
+#: src/calls-application.c:729
 msgid "Dial a telephone number"
 msgstr "Fâs un numar di telefon"
 
-#: src/calls-application.c:679
+#: src/calls-application.c:730
 msgid "NUMBER"
 msgstr "NUMAR"
 
-#: src/calls-application.c:684
+#: src/calls-application.c:735
 msgid "Enable verbose debug messages"
 msgstr "Abilite messaçs di debug prolìs"
 
-#: src/calls-application.c:690
+#: src/calls-application.c:741
 msgid "Print current version"
 msgstr "Stampe la version curinte"
 
-#: src/calls-best-match.c:357 src/calls-call-record-row.c:40
+#: src/calls-best-match.c:435
 msgid "Anonymous caller"
 msgstr "Telefonade anonime"
 
-#: src/calls-call-record-row.c:115
+#: src/calls-call-record-row.c:97
 #, c-format
 msgid ""
 "%s\n"
@@ -143,60 +263,52 @@ msgstr ""
 "%s\n"
 "îr"
 
-#: src/calls-main-window.c:124
+#: src/calls-main-window.c:123
 msgid "translator-credits"
 msgstr "Fabio Tomat <f.t.publig@gmail.com>"
 
-#: src/calls-main-window.c:322
-msgid "Can't place calls: No voice-capable modem available"
-msgstr "Impussibil fâ clamadis: nissun modem disponibil cun capacitâts vocâls"
-
-#: src/calls-main-window.c:326
+#: src/calls-main-window.c:316
 msgid "Can't place calls: No modem or VoIP account available"
 msgstr "Impussibil fâ clamadis: nissun modem o account VoIP disponibil"
 
-#: src/calls-main-window.c:331
-msgid "Can't place calls: No backend service"
-msgstr "Impussibil clamâ: nissune servizi di backend"
-
-#: src/calls-main-window.c:335
-msgid "Can't place calls: No plugin"
-msgstr "Impussibil clamâ: nissun plugin"
+#: src/calls-main-window.c:318
+msgid "Can't place calls: No plugin loaded"
+msgstr "Impussibil fâ clamadis: nissun plugin cjariât"
 
-#: src/calls-main-window.c:375
+#: src/calls-main-window.c:353
 msgid "Contacts"
 msgstr "Contats"
 
-#: src/calls-main-window.c:385
+#: src/calls-main-window.c:363
 msgid "Dial Pad"
 msgstr "Tastiere"
 
 #. Recent as in "Recent calls" (the call history)
-#: src/calls-main-window.c:394
+#: src/calls-main-window.c:372
 msgid "Recent"
 msgstr "Resint"
 
-#: src/calls-notifier.c:48
+#: src/calls-notifier.c:52
 msgid "Missed call"
 msgstr "Clamade pierdude"
 
 #. %s is a name here
-#: src/calls-notifier.c:69
+#: src/calls-notifier.c:76
 #, c-format
 msgid "Missed call from <b>%s</b>"
 msgstr "Clamade pierdude di <b>%s</b>"
 
-#. %s is a number here
-#: src/calls-notifier.c:72
+#. %s is a id here
+#: src/calls-notifier.c:79
 #, c-format
 msgid "Missed call from %s"
 msgstr "Clamade pierdude di %s"
 
-#: src/calls-notifier.c:74
+#: src/calls-notifier.c:81
 msgid "Missed call from unknown caller"
 msgstr "Clamade pierdude di un numar no cognossût"
 
-#: src/calls-notifier.c:80
+#: src/calls-notifier.c:87
 msgid "Call back"
 msgstr "Torne clame"
 
@@ -204,11 +316,11 @@ msgstr "Torne clame"
 msgid "VoIP Accounts"
 msgstr "Accounts VoIP"
 
-#: src/ui/account-overview.ui:41
+#: src/ui/account-overview.ui:49
 msgid "Add VoIP Accounts"
 msgstr "Zonte accounts VoIP"
 
-#: src/ui/account-overview.ui:43
+#: src/ui/account-overview.ui:51
 msgid ""
 "You can add VoIP account here. It will allow you to place and receive VoIP "
 "calls using the SIP protocol. This feature is still relatively new and not "
@@ -219,29 +331,38 @@ msgstr ""
 "mancul gnove e no je complete di dutis lis funzionalitâts (vâl a dî nissun "
 "media cifrât)."
 
-#: src/ui/account-overview.ui:50 src/ui/account-overview.ui:88
+#: src/ui/account-overview.ui:58 src/ui/account-overview.ui:106
 msgid "_Add Account"
 msgstr "_Zonte Account"
 
-#. Translators: This is a verb, not a noun. Call the number of the currently selected row.
-#: src/ui/call-record-row.ui:68
+#. Translators: This is a verb, not a noun. Call the number of the currently
+#. selected row.
+#: src/ui/call-record-row.ui:62
 msgid "Call"
 msgstr "Clame"
 
-#: src/ui/call-record-row.ui:112
+#: src/ui/call-record-row.ui:102
 msgid "_Delete Call"
 msgstr "_Elimine clamade"
 
 #. Translators: This is a phone number
-#: src/ui/call-record-row.ui:117
+#: src/ui/call-record-row.ui:107
 msgid "_Copy number"
 msgstr "_Copie il numar"
 
-#: src/ui/call-selector-item.ui:44
+#: src/ui/call-record-row.ui:112
+msgid "_Add contact"
+msgstr "_Zonte contat"
+
+#: src/ui/call-record-row.ui:117
+msgid "_Send SMS"
+msgstr "_Mande SMS"
+
+#: src/ui/call-selector-item.ui:38
 msgid "On hold"
 msgstr "In spiete"
 
-#: src/ui/contacts-box.ui:69
+#: src/ui/contacts-box.ui:60
 msgid "No Contacts Found"
 msgstr "Nissun contat cjatât"
 
@@ -249,66 +370,210 @@ msgstr "Nissun contat cjatât"
 msgid "No Recent Calls"
 msgstr "Nissune clamade resinte"
 
-#: src/ui/main-window.ui:117
+#: src/ui/main-window.ui:105
 msgid "USSD"
 msgstr "USSD"
 
-#: src/ui/main-window.ui:126
+#: src/ui/main-window.ui:114
 msgid "_Cancel"
 msgstr "_Anule"
 
-#: src/ui/main-window.ui:143
+#: src/ui/main-window.ui:131
 msgid "_Close"
 msgstr "_Siere"
 
-#: src/ui/main-window.ui:153
+#: src/ui/main-window.ui:141
 msgid "_Send"
 msgstr "_Invie"
 
-#: src/ui/main-window.ui:227
+#: src/ui/main-window.ui:214
 msgid "_VoIP Accounts"
 msgstr "Accounts _VoIP"
 
-#: src/ui/main-window.ui:240
+#: src/ui/main-window.ui:227
 msgid "_Keyboard shortcuts"
 msgstr "_Scurtis di tastiere"
 
-#: src/ui/main-window.ui:246
+#: src/ui/main-window.ui:233
 msgid "_Help"
 msgstr "_Jutori"
 
-#: src/ui/main-window.ui:252
+#. "Calls" is the application name, do not translate
+#: src/ui/main-window.ui:239
 msgid "_About Calls"
 msgstr "_Informazions su Clamadis"
 
-#: src/ui/new-call-box.ui:33
+#: src/ui/new-call-box.ui:38
 msgid "Enter a VoIP address"
 msgstr "Inserìs une direzion VoIP"
 
-#: src/ui/new-call-box.ui:46
-msgid "Enter a number"
-msgstr "Inserìs un numar"
-
-#: src/ui/new-call-box.ui:91
-msgid "Dial"
-msgstr "Compon"
-
-#: src/ui/new-call-box.ui:114
-msgid "Delete character in front of cursor"
-msgstr "Elimine il caratar denant dal cursôr"
-
-#: src/ui/new-call-box.ui:145
+#: src/ui/new-call-box.ui:62
 msgid "SIP Account"
 msgstr "Account SIP"
 
-#: src/ui/new-call-header-bar.ui:7
+#: src/ui/new-call-header-bar.ui:6
 msgid "New Call"
 msgstr "Gnove clamade"
 
-#: src/ui/new-call-header-bar.ui:20
+#: src/ui/new-call-header-bar.ui:19
 msgid "Back"
 msgstr "Indaûr"
 
+#: plugins/provider/mm/calls-mm-call.c:73
+msgid "Unknown reason"
+msgstr "Reson no cognossût"
+
+#: plugins/provider/mm/calls-mm-call.c:74
+msgid "Outgoing call started"
+msgstr "Clamade in jessude scomençade"
+
+#: plugins/provider/mm/calls-mm-call.c:75
+msgid "New incoming call"
+msgstr "Gnove clamade in jentrade"
+
+#: plugins/provider/mm/calls-mm-call.c:76
+msgid "Call accepted"
+msgstr "Clamade acetade"
+
+#: plugins/provider/mm/calls-mm-call.c:77
+msgid "Call ended"
+msgstr "Clamade terminade"
+
+#: plugins/provider/mm/calls-mm-call.c:78
+msgid "Call disconnected (busy or call refused)"
+msgstr "Clamade interote (ocupât o clamade refudade)"
+
+#: plugins/provider/mm/calls-mm-call.c:79
+msgid "Call disconnected (wrong id or network problem)"
+msgstr "Clamade interote (id sbaliât o probleme di rêt)"
+
+#: plugins/provider/mm/calls-mm-call.c:80
+msgid "Call disconnected (error setting up audio channel)"
+msgstr "Clamade interote (erôr tal configurâ il canâl audio)"
+
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
+msgid "Call transferred"
+msgstr "Clamade trasferide"
+
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
+msgid "Call deflected"
+msgstr "Clamade deviade"
+
+#: plugins/provider/mm/calls-mm-call.c:109
+#, c-format
+msgid "Call disconnected (unknown reason code %i)"
+msgstr "Clamade interote (codiç dal motîf %i no cognossût)"
+
+#: plugins/provider/mm/calls-mm-provider.c:84
+msgid "ModemManager unavailable"
+msgstr "ModemManager no disponibil"
+
+#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/ofono/calls-ofono-provider.c:96
+msgid "No voice-capable modem available"
+msgstr "Nissun modem disponibil cun capacitâts vocâls"
+
+#: plugins/provider/mm/calls-mm-provider.c:88
+#: plugins/provider/ofono/calls-ofono-provider.c:98
+msgid "Normal"
+msgstr "Normâl"
+
+#: plugins/provider/mm/calls-mm-provider.c:456
+#: plugins/provider/ofono/calls-ofono-provider.c:546
+msgid "Initialized"
+msgstr "Inizializât"
+
+#: plugins/provider/ofono/calls-ofono-provider.c:94
+msgid "DBus unavailable"
+msgstr "DBus no disponibil"
+
+#: plugins/provider/sip/calls-sip-account-widget.c:668
+msgid "No encryption"
+msgstr "Nissune cifradure"
+
+#. TODO Optional encryption
+#: plugins/provider/sip/calls-sip-account-widget.c:675
+msgid "Force encryption"
+msgstr "Sfuarce cifradure"
+
+#: plugins/provider/sip/calls-sip-call.c:123
+msgid "Cryptographic key exchange unsuccessful"
+msgstr "Il scambi de clâf criptografiche nol è lât a bon fin"
+
+#: plugins/provider/sip/sip-account-widget.ui:11
+msgid "Add Account"
+msgstr "Zonte un Account"
+
+#: plugins/provider/sip/sip-account-widget.ui:17
+msgid "_Log In"
+msgstr "_Jentre"
+
+#: plugins/provider/sip/sip-account-widget.ui:42
+msgid "Manage Account"
+msgstr "Gjestìs account"
+
+#: plugins/provider/sip/sip-account-widget.ui:47
+msgid "_Apply"
+msgstr "_Apliche"
+
+#: plugins/provider/sip/sip-account-widget.ui:61
+msgid "_Delete"
+msgstr "_Elimine"
+
+#: plugins/provider/sip/sip-account-widget.ui:91
+msgid "Server"
+msgstr "Servidôr"
+
+#: plugins/provider/sip/sip-account-widget.ui:109
+msgid "Display Name"
+msgstr "Non mostrât"
+
+#: plugins/provider/sip/sip-account-widget.ui:110
+msgid "Optional"
+msgstr "Opzionâl"
+
+#: plugins/provider/sip/sip-account-widget.ui:128
+msgid "User ID"
+msgstr "ID utent"
+
+#: plugins/provider/sip/sip-account-widget.ui:141
+msgid "Password"
+msgstr "Password"
+
+#: plugins/provider/sip/sip-account-widget.ui:166
+msgid "Port"
+msgstr "Puarte"
+
+#: plugins/provider/sip/sip-account-widget.ui:182
+msgid "Transport"
+msgstr "Traspuart"
+
+#: plugins/provider/sip/sip-account-widget.ui:189
+msgid "Media Encryption"
+msgstr "Cifradure dal multimedia"
+
+#: plugins/provider/sip/sip-account-widget.ui:201
+msgid "Use for Phone Calls"
+msgstr "Doprâ pes clamadis telefonichis"
+
+#: plugins/provider/sip/sip-account-widget.ui:214
+msgid "Automatically Connect"
+msgstr "Conet in automatic"
+
+#~ msgid "Enter a number"
+#~ msgstr "Inserìs un numar"
+
+#~ msgid "Dial"
+#~ msgstr "Compon"
+
+#~ msgid "Delete character in front of cursor"
+#~ msgstr "Elimine il caratar denant dal cursôr"
+
+#~ msgid "Can't place calls: No backend service"
+#~ msgstr "Impussibil clamâ: nissune servizi di backend"
+
 #~ msgid "Calling…"
 #~ msgstr "Daûr a clamâ…"
 
@@ -345,9 +610,6 @@ msgstr "Indaûr"
 #~ msgid "This call is not encrypted"
 #~ msgstr "Cheste clamade no je cifrade"
 
-#~ msgid "This call is encrypted"
-#~ msgstr "Cheste clamade e je cifrade"
-
 #~ msgid "Recent Calls"
 #~ msgstr "Clamadis resintis"
 
@@ -368,6 +630,3 @@ msgstr "Indaûr"
 
 #~ msgid "Can't place calls: No SIM card"
 #~ msgstr "Impussibil clamâ: nissune schede SIM"
-
-#~ msgid "Incoming call"
-#~ msgstr "Clamade in jentrade"
diff -pruN 43.0-1/po/gl.po 44~alpha.1-1/po/gl.po
--- 43.0-1/po/gl.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/gl.po	2023-01-12 09:50:29.000000000 +0000
@@ -2,25 +2,30 @@
 # Copyright (C) 2020 calls's COPYRIGHT HOLDER
 # This file is distributed under the same license as the calls package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-# Fran Dieguez <frandieguez@gnome.gl>, 2020.
+# Fran Dieguez <frandieguez@gnome.org>, 2020-2022.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: calls master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
-"POT-Creation-Date: 2021-12-26 21:06+0000\n"
-"PO-Revision-Date: 2022-01-02 17:32+0100\n"
-"Last-Translator: Fran Dieguez <frandieguez@gnome.gl>\n"
-"Language-Team: Galician <Proxecto Trasno <proxecto@trasno.gal>>\n"
+"POT-Creation-Date: 2022-12-02 10:59+0000\n"
+"PO-Revision-Date: 2022-12-21 20:12+0100\n"
+"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
+"Language-Team: Galician <proxecto@trasno.gal>\n"
 "Language: gl\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.0.1\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"X-Generator: Gtranslator 42.0\n"
+"X-DL-Team: gl\n"
+"X-DL-Module: calls\n"
+"X-DL-Branch: gnome-43\n"
+"X-DL-Domain: po\n"
+"X-DL-State: None\n"
 
-#: data/org.gnome.Calls.desktop.in:3 src/calls-application.c:381
-#: src/ui/call-window.ui:9 src/ui/main-window.ui:7
+#: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
+#: src/calls-application.c:436 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "Chamadas"
 
@@ -32,7 +37,7 @@ msgstr "Teléfono"
 msgid "A phone dialer and call handler"
 msgstr "Un marcador telefónico e xestor de chamadas"
 
-#. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon.
+#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
 #: data/org.gnome.Calls.desktop.in:7 data/org.gnome.Calls-daemon.desktop.in:7
 msgid "Telephone;Call;Phone;Dial;Dialer;PSTN;"
 msgstr "Teléfono;Chamada;Chamar;Marcador;PSTN;"
@@ -45,101 +50,202 @@ msgstr "Chamadas (daemon)"
 msgid "A phone dialer and call handler (daemon mode)"
 msgstr "Un marcador telefónico e xestor de chamadas (modo daemon)"
 
-#: plugins/sip/sip-account-widget.ui:11
-msgid "Add Account"
-msgstr "Engadir conta"
-
-#: plugins/sip/sip-account-widget.ui:17
-msgid "_Log In"
-msgstr "_Inicio de sesión"
-
-#: plugins/sip/sip-account-widget.ui:42
-msgid "Manage Account"
-msgstr "Xestionar conta"
-
-#: plugins/sip/sip-account-widget.ui:47
-msgid "_Apply"
-msgstr "_Aplicar"
+#: data/org.gnome.Calls.metainfo.xml:7
+msgid "Make phone and SIP calls"
+msgstr "Faga chamadas de teléfono e SIP"
 
-#: plugins/sip/sip-account-widget.ui:61
-msgid "_Delete"
-msgstr "_Eliminar"
-
-#: plugins/sip/sip-account-widget.ui:91
-msgid "Server"
-msgstr "Servidor"
-
-#: plugins/sip/sip-account-widget.ui:109
-msgid "Display Name"
-msgstr "Nome en pantalla"
+#: data/org.gnome.Calls.metainfo.xml:10
+msgid ""
+"Calls is a simple, elegant phone dialer and call handler for GNOME. It can "
+"be used with a cellular modem for plain old telephone calls as well as VoIP "
+"calls using the SIP protocol."
+msgstr ""
+"Chamadas é un marcador de teléfono e xestor de chamadas sinxelo e elegante "
+"para GNOME. Pode usarse con un módem móbil para chamadas de teléfono antigas "
+"así como chamadas VoIP usando o protocolo SIP."
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:26
+msgid "Placing a call"
+msgstr "Realizando unha chamada"
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:31
+msgid "The call history"
+msgstr "O historial de chamadas"
 
-#: plugins/sip/sip-account-widget.ui:110
-msgid "Optional"
-msgstr "Opcional"
+#: data/org.gnome.Calls.gschema.xml:7 data/org.gnome.Calls.gschema.xml:8
+msgid "Whether calls should automatically use the default origin"
+msgstr ""
+"Indica se as chamadas deberían usar o orixe predeterminado automaticamente"
 
-#: plugins/sip/sip-account-widget.ui:128
-msgid "User ID"
-msgstr "ID de usuario"
+#: data/org.gnome.Calls.gschema.xml:13
+msgid "The country code as reported by the modem"
+msgstr "O código de país como informa o módem"
+
+#: data/org.gnome.Calls.gschema.xml:14
+msgid "The country code is used for contact name lookup"
+msgstr "O código de país úsase para buscar o nome do contacto"
+
+#: data/org.gnome.Calls.gschema.xml:19
+msgid "The plugins to load automatically"
+msgstr "Os engadidos a cargar automaticamente"
+
+#: data/org.gnome.Calls.gschema.xml:20
+msgid "These plugins will be automatically loaded on application startup."
+msgstr "Estos engadidos cargaranse automaticametne ao iniciar a aplicación."
+
+#: data/org.gnome.Calls.gschema.xml:25
+msgid "Audio codecs to use for VoIP calls in order of preference"
+msgstr "Os códecs de son a usar para as chamadas VoIP en orde de preferencia"
 
-#: plugins/sip/sip-account-widget.ui:141
-msgid "Password"
-msgstr "Contrasinal"
+#: data/org.gnome.Calls.gschema.xml:26
+msgid "The preferred audio codecs to use for VoIP calls (if available)"
+msgstr ""
+"Os códecs de son preferidos para usar nas chamadas VoIP (se están "
+"dispoñíbeis)"
 
-#: plugins/sip/sip-account-widget.ui:161
-msgid "Port"
-msgstr "Porto"
+#: data/org.gnome.Calls.gschema.xml:31
+msgid "Whether to allow using SDES for SRTP without TLS as the transport"
+msgstr "Indica se permitir usar SDES para SRTP sen TSL como trasnporte"
 
-#: plugins/sip/sip-account-widget.ui:177
-msgid "Transport"
-msgstr "Transporte"
+#: data/org.gnome.Calls.gschema.xml:32
+msgid "Set to true if you want to allow with keys exchanged in cleartext."
+msgstr ""
+"Estabelecer a verdadeiro se quere permitir o intercambio de chaves en texto "
+"plano."
 
-#: plugins/sip/sip-account-widget.ui:189
-msgid "Use for Phone Calls"
-msgstr "Usar para as chamadas de teléfono"
+#: src/calls-account.c:163
+msgid "Default (uninitialized) state"
+msgstr "Estado (non inicializado) predeterminado"
+
+#: src/calls-account.c:166
+msgid "Initializing account…"
+msgstr "Iniciando conta…"
+
+#: src/calls-account.c:169
+msgid "Uninitializing account…"
+msgstr "Desiniciando conta…"
+
+#: src/calls-account.c:172
+msgid "Connecting to server…"
+msgstr "Conectándose ao servidor…"
+
+#: src/calls-account.c:175
+msgid "Account is online"
+msgstr "Conta en liña"
+
+#: src/calls-account.c:178
+msgid "Disconnecting from server…"
+msgstr "Desconectándose do servidor…"
+
+#: src/calls-account.c:181
+msgid "Account is offline"
+msgstr "Conta fóra de liña"
+
+#: src/calls-account.c:184
+msgid "Account encountered an error"
+msgstr "A conta atopou un erro"
+
+#: src/calls-account.c:202
+msgid "No reason given"
+msgstr "Non se forneceu ningunha razón"
+
+#: src/calls-account.c:205
+msgid "Initialization started"
+msgstr "Comezou a inicialización"
+
+#: src/calls-account.c:208
+msgid "Initialization complete"
+msgstr "Inicialización completa"
+
+#: src/calls-account.c:211
+msgid "Uninitialization started"
+msgstr "Desinicialización comezada"
+
+#: src/calls-account.c:214
+msgid "Uninitialization complete"
+msgstr "Desinicialización completa"
+
+#: src/calls-account.c:217
+msgid "No credentials set"
+msgstr "Non se estabeleceron credenciais"
+
+#: src/calls-account.c:220
+msgid "Starting to connect"
+msgstr "Comezando a conexión"
+
+#: src/calls-account.c:223
+msgid "Connection timed out"
+msgstr "Tempo de espera para a conexión superado "
+
+#: src/calls-account.c:226
+msgid "Domain name could not be resolved"
+msgstr "Non se puido resolver o nome de dominio"
+
+#: src/calls-account.c:229
+msgid "Server did not accept username or password"
+msgstr "O servidor non acepta o nome de usuario ou contrasinal"
+
+#: src/calls-account.c:232
+msgid "Connecting complete"
+msgstr "Conexión completa"
+
+#: src/calls-account.c:235
+msgid "Starting to disconnect"
+msgstr "Comezando a desconexión"
+
+#: src/calls-account.c:238
+msgid "Disconnecting complete"
+msgstr "Desconexión completada"
+
+#: src/calls-account.c:241
+msgid "Internal error occurred"
+msgstr "Produciuse un erro interno"
 
-#: src/calls-application.c:546
+#: src/calls-application.c:315
 #, c-format
-msgid "Tried invalid tel URI `%s'"
-msgstr "Tentouse una URI tel \"%s\" non válido"
+msgid "Tried dialing invalid tel URI `%s'"
+msgstr "Tentouse chamar a un URI de tel «%s» non válido"
 
-#: src/calls-application.c:623
+#: src/calls-application.c:627
 #, c-format
 msgid "Don't know how to open `%s'"
 msgstr "Non se sabe como abrir \"%s\""
 
-#: src/calls-application.c:676
+#: src/calls-application.c:681
 msgid "The name of the plugin to use as a call provider"
 msgstr "O nome do engadido a usar para o fornecedor de chamadas"
 
-#: src/calls-application.c:677
+#: src/calls-application.c:682
 msgid "PLUGIN"
 msgstr "ENGADIDO"
 
-#: src/calls-application.c:682
+#: src/calls-application.c:687
 msgid "Whether to present the main window on startup"
 msgstr "Indica se mostrar a xanela principal ao arrinque"
 
-#: src/calls-application.c:688
+#: src/calls-application.c:693
 msgid "Dial a telephone number"
 msgstr "Marcar un número de teléfono"
 
-#: src/calls-application.c:689
+#: src/calls-application.c:694
 msgid "NUMBER"
 msgstr "NÚMERO"
 
-#: src/calls-application.c:694
+#: src/calls-application.c:699
 msgid "Enable verbose debug messages"
 msgstr "Activar as mensaxes de depuración detalladas"
 
-#: src/calls-application.c:700
+#: src/calls-application.c:705
 msgid "Print current version"
 msgstr "Mostrar a versión actual"
 
-#: src/calls-best-match.c:357
+#: src/calls-best-match.c:435
 msgid "Anonymous caller"
 msgstr "Chamada anónima"
 
-#: src/calls-call-record-row.c:110
+#: src/calls-call-record-row.c:97
 #, c-format
 msgid ""
 "%s\n"
@@ -148,64 +254,54 @@ msgstr ""
 "%s\n"
 "onte"
 
-#: src/calls-main-window.c:124
+#: src/calls-main-window.c:123
 msgid "translator-credits"
 msgstr "Fran Diéguez <frandieguez@gnome.org>, 2020, 2021."
 
-#: src/calls-main-window.c:322
-msgid "Can't place calls: No voice-capable modem available"
-msgstr ""
-"Non se poden realizar chamadas: Non está dispoñíbel un modem con "
-"capacidade de voz"
-
-#: src/calls-main-window.c:326
+#: src/calls-main-window.c:316
 msgid "Can't place calls: No modem or VoIP account available"
 msgstr ""
 "Non se poden realizar chamadas: Non está dispoñíbel un modem ou unha conta "
 "VoIP"
 
-#: src/calls-main-window.c:331
-msgid "Can't place calls: No backend service"
-msgstr "Non se poden realizar chamadas: Non hai servizo de infraestrutura"
-
-#: src/calls-main-window.c:335
-msgid "Can't place calls: No plugin"
-msgstr "Non se poden realizar chamadas: Non hai engadido"
+#: src/calls-main-window.c:318
+msgid "Can't place calls: No plugin loaded"
+msgstr "Non se poden realizar chamadas: Non se cargou o engadido"
 
-#: src/calls-main-window.c:375
+#: src/calls-main-window.c:353
 msgid "Contacts"
 msgstr "Contactos"
 
-#: src/calls-main-window.c:385
+#: src/calls-main-window.c:363
 msgid "Dial Pad"
 msgstr "Teclado telefónico"
 
 #. Recent as in "Recent calls" (the call history)
-#: src/calls-main-window.c:394
+#: src/calls-main-window.c:372
 msgid "Recent"
 msgstr "Recentes"
 
-#: src/calls-notifier.c:48
+#: src/calls-notifier.c:52
 msgid "Missed call"
 msgstr "Chamada perdida"
 
 #. %s is a name here
-#: src/calls-notifier.c:69
+#: src/calls-notifier.c:76
 #, c-format
 msgid "Missed call from <b>%s</b>"
 msgstr "Chamada perdida por <b>%s</b>"
 
 #. %s is a id here
-#: src/calls-notifier.c:72
+#: src/calls-notifier.c:79
 #, c-format
 msgid "Missed call from %s"
 msgstr "Chamada perdida de %s"
 
-#: src/calls-notifier.c:74
+#: src/calls-notifier.c:81
 msgid "Missed call from unknown caller"
 msgstr "Chamada perdida de número descoñecido"
 
-#: src/calls-notifier.c:80
+#: src/calls-notifier.c:87
 msgid "Call back"
 msgstr "Chamar de volta"
 
@@ -213,11 +309,11 @@ msgstr "Chamar de volta"
 msgid "VoIP Accounts"
 msgstr "Contas VoIP"
 
-#: src/ui/account-overview.ui:41
+#: src/ui/account-overview.ui:49
 msgid "Add VoIP Accounts"
 msgstr "Engadir contas VoIP"
 
-#: src/ui/account-overview.ui:43
+#: src/ui/account-overview.ui:51
 msgid ""
 "You can add VoIP account here. It will allow you to place and receive VoIP "
 "calls using the SIP protocol. This feature is still relatively new and not "
@@ -225,27 +321,35 @@ msgid ""
 msgstr ""
 "Pode engadir unha conta VoIP aquí. Isto permitiralle facer e recibir "
 "chamadas VoIP usando o protocolo SIP. Esta característica é aínda "
-"relativamente nova e non conta con todas as funcionalidades (p.ex. non "
-"conta con multimedia cifrado)"
+"relativamente nova e non conta con todas as funcionalidades (p.ex. non conta "
+"con multimedia cifrado)"
 
-#: src/ui/account-overview.ui:50 src/ui/account-overview.ui:88
+#: src/ui/account-overview.ui:58 src/ui/account-overview.ui:106
 msgid "_Add Account"
 msgstr "_Engadir conta"
 
 #. Translators: This is a verb, not a noun. Call the number of the currently selected row.
-#: src/ui/call-record-row.ui:63
+#: src/ui/call-record-row.ui:62
 msgid "Call"
 msgstr "Chamar"
 
-#: src/ui/call-record-row.ui:103
+#: src/ui/call-record-row.ui:102
 msgid "_Delete Call"
 msgstr "_Elminar chamada"
 
 #. Translators: This is a phone number
-#: src/ui/call-record-row.ui:108
+#: src/ui/call-record-row.ui:107
 msgid "_Copy number"
 msgstr "_Copiar número"
 
+#: src/ui/call-record-row.ui:112
+msgid "_Add contact"
+msgstr "_Engadir contacto"
+
+#: src/ui/call-record-row.ui:117
+msgid "_Send SMS"
+msgstr "_Enviar SMS"
+
 #: src/ui/call-selector-item.ui:38
 msgid "On hold"
 msgstr "En espera"
@@ -286,6 +390,7 @@ msgstr "_Atallos de teclado"
 msgid "_Help"
 msgstr "_Axuda"
 
+#. "Calls" is the application name, do not translate
 #: src/ui/main-window.ui:239
 msgid "_About Calls"
 msgstr "_Sobre Chamadas"
@@ -318,15 +423,158 @@ msgstr "Nova chamada"
 msgid "Back"
 msgstr "Atrás"
 
+#: plugins/provider/mm/calls-mm-call.c:73
+msgid "Unknown reason"
+msgstr "Sen razón"
+
+#: plugins/provider/mm/calls-mm-call.c:74
+msgid "Outgoing call started"
+msgstr "Chamada saínte comezada"
+
+#: plugins/provider/mm/calls-mm-call.c:75
+msgid "New incoming call"
+msgstr "Nova chamada entrante"
+
+#: plugins/provider/mm/calls-mm-call.c:76
+msgid "Call accepted"
+msgstr "Chamada aceptada"
+
+#: plugins/provider/mm/calls-mm-call.c:77
+msgid "Call ended"
+msgstr "Chamada finalizada"
+
+#: plugins/provider/mm/calls-mm-call.c:78
+msgid "Call disconnected (busy or call refused)"
+msgstr "Chamada desconectada (ocupado ou chamada rexeitada)"
+
+#: plugins/provider/mm/calls-mm-call.c:79
+msgid "Call disconnected (wrong id or network problem)"
+msgstr "Chamada desconectada (id incorrecto ou problema de rede)"
+
+#: plugins/provider/mm/calls-mm-call.c:80
+msgid "Call disconnected (error setting up audio channel)"
+msgstr "Chamada desconectada (erro ao configurar a canle de son)"
+
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
+msgid "Call transferred"
+msgstr "Chamada transferida"
+
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
+msgid "Call deflected"
+msgstr "Chamada desviada"
+
+#: plugins/provider/mm/calls-mm-call.c:109
+#, c-format
+msgid "Call disconnected (unknown reason code %i)"
+msgstr "Chamada desconectada (código %i de razón descoñecido)"
+
+#: plugins/provider/mm/calls-mm-provider.c:82
+msgid "ModemManager unavailable"
+msgstr "ModemManager non dispoñíbel"
+
+#: plugins/provider/mm/calls-mm-provider.c:84
+#: plugins/provider/ofono/calls-ofono-provider.c:96
+msgid "No voice-capable modem available"
+msgstr "Non está dispoñíbel un módem con capacidade de voz"
+
+#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/ofono/calls-ofono-provider.c:98
+msgid "Normal"
+msgstr "Normal"
+
+#: plugins/provider/mm/calls-mm-provider.c:447
+#: plugins/provider/ofono/calls-ofono-provider.c:546
+msgid "Initialized"
+msgstr "Inicializada"
+
+#: plugins/provider/ofono/calls-ofono-provider.c:94
+msgid "DBus unavailable"
+msgstr "DBus non dispoñíbel"
+
+#: plugins/provider/sip/calls-sip-account-widget.c:668
+msgid "No encryption"
+msgstr "Sen cifrado"
+
+#. TODO Optional encryption
+#: plugins/provider/sip/calls-sip-account-widget.c:675
+msgid "Force encryption"
+msgstr "Forzar cifrado"
+
+#: plugins/provider/sip/calls-sip-call.c:123
+msgid "Cryptographic key exchange unsuccessful"
+msgstr "Intercambio de chave criptográfica non exitosa"
+
+#: plugins/provider/sip/sip-account-widget.ui:11
+msgid "Add Account"
+msgstr "Engadir conta"
+
+#: plugins/provider/sip/sip-account-widget.ui:17
+msgid "_Log In"
+msgstr "_Inicio de sesión"
+
+#: plugins/provider/sip/sip-account-widget.ui:42
+msgid "Manage Account"
+msgstr "Xestionar conta"
+
+#: plugins/provider/sip/sip-account-widget.ui:47
+msgid "_Apply"
+msgstr "_Aplicar"
+
+#: plugins/provider/sip/sip-account-widget.ui:61
+msgid "_Delete"
+msgstr "_Eliminar"
+
+#: plugins/provider/sip/sip-account-widget.ui:91
+msgid "Server"
+msgstr "Servidor"
+
+#: plugins/provider/sip/sip-account-widget.ui:109
+msgid "Display Name"
+msgstr "Nome en pantalla"
+
+#: plugins/provider/sip/sip-account-widget.ui:110
+msgid "Optional"
+msgstr "Opcional"
+
+#: plugins/provider/sip/sip-account-widget.ui:128
+msgid "User ID"
+msgstr "ID de usuario"
+
+#: plugins/provider/sip/sip-account-widget.ui:141
+msgid "Password"
+msgstr "Contrasinal"
+
+#: plugins/provider/sip/sip-account-widget.ui:166
+msgid "Port"
+msgstr "Porto"
+
+#: plugins/provider/sip/sip-account-widget.ui:182
+msgid "Transport"
+msgstr "Transporte"
+
+#: plugins/provider/sip/sip-account-widget.ui:189
+msgid "Media Encryption"
+msgstr "Cifrado de medio"
+
+#: plugins/provider/sip/sip-account-widget.ui:201
+msgid "Use for Phone Calls"
+msgstr "Usar para as chamadas de teléfono"
+
+#: plugins/provider/sip/sip-account-widget.ui:214
+msgid "Automatically Connect"
+msgstr "Conectar automaticamente"
+
+#~ msgid "Can't place calls: No backend service"
+#~ msgstr "Non se poden realizar chamadas: Non hai servizo de infraestrutura"
+
 #~ msgid "Calling…"
 #~ msgstr "Chamando…"
 
 #~ msgid "Can't place calls: No SIM card"
 #~ msgstr "Non se poden realizar chamadas: Non hai tarxeta SIM"
 
-#~ msgid "Incoming phone call"
-#~ msgstr "Chamada de teléfono entrante"
-
 #~ msgid "Mute"
 #~ msgstr "Silenciar"
 
@@ -351,9 +599,6 @@ msgstr "Atrás"
 #~ msgid "This call is not encrypted"
 #~ msgstr "Esta chamada non está cifrada"
 
-#~ msgid "This call is encrypted"
-#~ msgstr "Esta chamada está cifrada"
-
 #~ msgid "Recent Calls"
 #~ msgstr "Chamadas recentes"
 
diff -pruN 43.0-1/po/he.po 44~alpha.1-1/po/he.po
--- 43.0-1/po/he.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/he.po	2023-01-12 09:50:29.000000000 +0000
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: calls master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
-"POT-Creation-Date: 2022-08-05 08:41+0000\n"
-"PO-Revision-Date: 2022-08-18 19:39+0300\n"
+"POT-Creation-Date: 2022-11-18 15:34+0000\n"
+"PO-Revision-Date: 2022-11-24 11:05+0200\n"
 "Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
 "Language-Team: Hebrew <>\n"
 "Language: he\n"
@@ -17,10 +17,10 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n>10 && n%10==0 ? "
 "2 : 3)\n"
-"X-Generator: Gtranslator 40.0\n"
+"X-Generator: Gtranslator 42.0\n"
 
 #: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
-#: src/calls-application.c:438 src/ui/call-window.ui:9 src/ui/main-window.ui:7
+#: src/calls-application.c:457 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "שיחות"
 
@@ -193,41 +193,54 @@ msgstr "התנתקות הושלמה"
 msgid "Internal error occurred"
 msgstr "אירעה שגיאה פנימית"
 
-#: src/calls-application.c:319
+#: src/calls-account-overview.c:177
+#, c-format
+msgid "Edit account: %s"
+msgstr "ערכית חשבון: %s"
+
+#: src/calls-account-overview.c:184
+msgid "Add new account"
+msgstr "הוספת חשבון חדש"
+
+#: src/calls-account-overview.c:376
+msgid "Account overview"
+msgstr "סקירת חשבון"
+
+#: src/calls-application.c:327
 #, c-format
 msgid "Tried dialing invalid tel URI `%s'"
 msgstr "ניסיון חיוג למספר טלפון לא תקין „%s”"
 
-#: src/calls-application.c:636
+#: src/calls-application.c:660
 #, c-format
 msgid "Don't know how to open `%s'"
 msgstr "לא יודע איך לפתוח את „%s”"
 
-#: src/calls-application.c:690
+#: src/calls-application.c:717
 msgid "The name of the plugin to use as a call provider"
 msgstr "The name of the plugin to use as a call provider"
 
-#: src/calls-application.c:691
+#: src/calls-application.c:718
 msgid "PLUGIN"
 msgstr "PLUGIN"
 
-#: src/calls-application.c:696
+#: src/calls-application.c:723
 msgid "Whether to present the main window on startup"
 msgstr "Whether to present the main window on startup"
 
-#: src/calls-application.c:702
+#: src/calls-application.c:729
 msgid "Dial a telephone number"
 msgstr "Dial a telephone number"
 
-#: src/calls-application.c:703
+#: src/calls-application.c:730
 msgid "NUMBER"
 msgstr "NUMBER"
 
-#: src/calls-application.c:708
+#: src/calls-application.c:735
 msgid "Enable verbose debug messages"
 msgstr "Enable verbose debug messages"
 
-#: src/calls-application.c:714
+#: src/calls-application.c:741
 msgid "Print current version"
 msgstr "Print current version"
 
@@ -336,7 +349,6 @@ msgid "_Add contact"
 msgstr "_הוספת איש קשר"
 
 #: src/ui/call-record-row.ui:117
-#| msgid "_Send"
 msgid "_Send SMS"
 msgstr "_שליחת מסרון"
 
@@ -380,27 +392,16 @@ msgstr "צירופי _מקשים"
 msgid "_Help"
 msgstr "_עזרה"
 
+#. "Calls" is the application name, do not translate
 #: src/ui/main-window.ui:239
 msgid "_About Calls"
 msgstr "_על אודות שיחות"
 
-#: src/ui/new-call-box.ui:45
+#: src/ui/new-call-box.ui:38
 msgid "Enter a VoIP address"
 msgstr "הזנת כתובת VoIP"
 
-#: src/ui/new-call-box.ui:58
-msgid "Enter a number"
-msgstr "הזנת מספר"
-
-#: src/ui/new-call-box.ui:97
-msgid "Dial"
-msgstr "חיוג"
-
-#: src/ui/new-call-box.ui:120
-msgid "Delete character in front of cursor"
-msgstr "מחיקת תו שתחת הסמן"
-
-#: src/ui/new-call-box.ui:149
+#: src/ui/new-call-box.ui:62
 msgid "SIP Account"
 msgstr "חשבון SIP"
 
@@ -412,144 +413,158 @@ msgstr "שיחה חדשה"
 msgid "Back"
 msgstr "חזרה"
 
-#: plugins/mm/calls-mm-call.c:73
+#: plugins/provider/mm/calls-mm-call.c:73
 msgid "Unknown reason"
 msgstr "סיבה לא ידועה"
 
-#: plugins/mm/calls-mm-call.c:74
+#: plugins/provider/mm/calls-mm-call.c:74
 msgid "Outgoing call started"
 msgstr "החלה שיחה"
 
-#: plugins/mm/calls-mm-call.c:75
+#: plugins/provider/mm/calls-mm-call.c:75
 msgid "New incoming call"
 msgstr "שיחה נכנסת חדשה"
 
-#: plugins/mm/calls-mm-call.c:76
+#: plugins/provider/mm/calls-mm-call.c:76
 msgid "Call accepted"
 msgstr "שיחה נענתה"
 
-#: plugins/mm/calls-mm-call.c:77
+#: plugins/provider/mm/calls-mm-call.c:77
 msgid "Call ended"
 msgstr "שיחה הסתיימה"
 
-#: plugins/mm/calls-mm-call.c:78
+#: plugins/provider/mm/calls-mm-call.c:78
 msgid "Call disconnected (busy or call refused)"
 msgstr "שיחה התנתקה (קו תפוס או שיחה נדחתה)"
 
-#: plugins/mm/calls-mm-call.c:79
+#: plugins/provider/mm/calls-mm-call.c:79
 msgid "Call disconnected (wrong id or network problem)"
 msgstr "שיחה התנתקה (מזהה שגוי או תקלת רשת)"
 
-#: plugins/mm/calls-mm-call.c:80
+#: plugins/provider/mm/calls-mm-call.c:80
 msgid "Call disconnected (error setting up audio channel)"
 msgstr "שיחה התנתקה (שגיאה בהגדרת ערוץ שמע)"
 
-#: plugins/mm/calls-mm-call.c:81
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
 msgid "Call transferred"
 msgstr "שיחה הועברה"
 
-#: plugins/mm/calls-mm-call.c:82
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
 msgid "Call deflected"
 msgstr "שיחה שורשרה"
 
-#: plugins/mm/calls-mm-call.c:107
+#: plugins/provider/mm/calls-mm-call.c:109
 #, c-format
 msgid "Call disconnected (unknown reason code %i)"
 msgstr "שיחה התנתקה (סיבה לא ידועה בקוד %i)"
 
-#: plugins/mm/calls-mm-provider.c:82
+#: plugins/provider/mm/calls-mm-provider.c:84
 msgid "ModemManager unavailable"
 msgstr "‏ModemManager לא זמין"
 
-#: plugins/mm/calls-mm-provider.c:84 plugins/ofono/calls-ofono-provider.c:96
+#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/ofono/calls-ofono-provider.c:96
 msgid "No voice-capable modem available"
 msgstr "אין מודם זמין בעל יכולת שמע"
 
-#: plugins/mm/calls-mm-provider.c:86 plugins/ofono/calls-ofono-provider.c:98
+#: plugins/provider/mm/calls-mm-provider.c:88
+#: plugins/provider/ofono/calls-ofono-provider.c:98
 msgid "Normal"
 msgstr "רגיל"
 
-#: plugins/mm/calls-mm-provider.c:445 plugins/ofono/calls-ofono-provider.c:543
+#: plugins/provider/mm/calls-mm-provider.c:456
+#: plugins/provider/ofono/calls-ofono-provider.c:546
 msgid "Initialized"
 msgstr "אותחל"
 
-#: plugins/ofono/calls-ofono-provider.c:94
+#: plugins/provider/ofono/calls-ofono-provider.c:94
 msgid "DBus unavailable"
 msgstr "‏DBus לא זמין"
 
-#: plugins/sip/calls-sip-account-widget.c:668
+#: plugins/provider/sip/calls-sip-account-widget.c:668
 msgid "No encryption"
 msgstr "ללא הצפנה"
 
 #. TODO Optional encryption
-#: plugins/sip/calls-sip-account-widget.c:675
+#: plugins/provider/sip/calls-sip-account-widget.c:675
 msgid "Force encryption"
 msgstr "לכפות הצפנה"
 
-#: plugins/sip/calls-sip-call.c:123
+#: plugins/provider/sip/calls-sip-call.c:123
 msgid "Cryptographic key exchange unsuccessful"
 msgstr "חילוף מפתח ההצפנה לא צלח"
 
-#: plugins/sip/sip-account-widget.ui:11
+#: plugins/provider/sip/sip-account-widget.ui:11
 msgid "Add Account"
 msgstr "הוספת חשבון"
 
-#: plugins/sip/sip-account-widget.ui:17
+#: plugins/provider/sip/sip-account-widget.ui:17
 msgid "_Log In"
 msgstr "_כניסה"
 
-#: plugins/sip/sip-account-widget.ui:42
+#: plugins/provider/sip/sip-account-widget.ui:42
 msgid "Manage Account"
 msgstr "ניהול חשבון"
 
-#: plugins/sip/sip-account-widget.ui:47
+#: plugins/provider/sip/sip-account-widget.ui:47
 msgid "_Apply"
 msgstr "ה_חלה"
 
-#: plugins/sip/sip-account-widget.ui:61
+#: plugins/provider/sip/sip-account-widget.ui:61
 msgid "_Delete"
 msgstr "_מחיקה"
 
-#: plugins/sip/sip-account-widget.ui:91
+#: plugins/provider/sip/sip-account-widget.ui:91
 msgid "Server"
 msgstr "שרת"
 
-#: plugins/sip/sip-account-widget.ui:109
+#: plugins/provider/sip/sip-account-widget.ui:109
 msgid "Display Name"
 msgstr "שם התצוגה"
 
-#: plugins/sip/sip-account-widget.ui:110
+#: plugins/provider/sip/sip-account-widget.ui:110
 msgid "Optional"
 msgstr "אפשרי"
 
-#: plugins/sip/sip-account-widget.ui:128
+#: plugins/provider/sip/sip-account-widget.ui:128
 msgid "User ID"
 msgstr "מזהה משתמש"
 
-#: plugins/sip/sip-account-widget.ui:141
+#: plugins/provider/sip/sip-account-widget.ui:141
 msgid "Password"
 msgstr "ססמה"
 
-#: plugins/sip/sip-account-widget.ui:166
+#: plugins/provider/sip/sip-account-widget.ui:166
 msgid "Port"
 msgstr "פתחה"
 
-#: plugins/sip/sip-account-widget.ui:182
+#: plugins/provider/sip/sip-account-widget.ui:182
 msgid "Transport"
 msgstr "תעבורה"
 
-#: plugins/sip/sip-account-widget.ui:189
+#: plugins/provider/sip/sip-account-widget.ui:189
 msgid "Media Encryption"
 msgstr "הצפנת מדיה"
 
-#: plugins/sip/sip-account-widget.ui:201
+#: plugins/provider/sip/sip-account-widget.ui:201
 msgid "Use for Phone Calls"
 msgstr "שימוש עבור שיחות טלפון"
 
-#: plugins/sip/sip-account-widget.ui:214
+#: plugins/provider/sip/sip-account-widget.ui:214
 msgid "Automatically Connect"
 msgstr "התחברות אוטומטית"
 
+#~ msgid "Enter a number"
+#~ msgstr "הזנת מספר"
+
+#~ msgid "Dial"
+#~ msgstr "חיוג"
+
+#~ msgid "Delete character in front of cursor"
+#~ msgstr "מחיקת תו שתחת הסמן"
+
 #~ msgid "Call disconnected (unknown reason)"
 #~ msgstr "שיחה התנתקה (סיבה לא ידועה)"
 
diff -pruN 43.0-1/po/hu.po 44~alpha.1-1/po/hu.po
--- 43.0-1/po/hu.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/hu.po	2023-01-12 09:50:29.000000000 +0000
@@ -1,88 +1,262 @@
 # Hungarian translation for calls.
-# Copyright (C) 2020 calls's COPYRIGHT HOLDER
+# Copyright (C) 2020, 2022 Free Software Foundation, Inc.
 # This file is distributed under the same license as the calls package.
-# Balázs Meskó <mesko.balazs@fsf.hu>, 2020.
 #
+# Balázs Meskó <mesko.balazs at fsf dot hu>, 2020.
+# Balázs Úr <ur.balazs at fsf dot hu>, 2022.
 msgid ""
 msgstr ""
 "Project-Id-Version: calls master\n"
-"Report-Msgid-Bugs-To: https://source.puri.sm/Librem5/calls/issues\n"
-"POT-Creation-Date: 2021-03-19 03:25+0000\n"
-"PO-Revision-Date: 2021-03-19 09:53+0100\n"
-"Last-Translator: Meskó Balázs <mesko.balazs@fsf.hu>\n"
-"Language-Team: Hungarian <gnome-hu-list@gnome.org>\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
+"POT-Creation-Date: 2022-11-18 15:34+0000\n"
+"PO-Revision-Date: 2022-11-23 00:46+0100\n"
+"Last-Translator: Balázs Úr <ur.balazs at fsf dot hu>\n"
+"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"
 "Language: hu\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 2.4.2\n"
+"X-Generator: Lokalize 22.08.2\n"
 
-#: data/sm.puri.Calls.desktop.in:3 src/calls-application.c:312
-#: src/ui/call-window.ui:10 src/ui/main-window.ui:8
+#: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
+#: src/calls-application.c:457 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "Hívások"
 
-#: data/sm.puri.Calls.desktop.in:4 data/sm.puri.Calls-daemon.desktop.in:4
+#: data/org.gnome.Calls.desktop.in:4 data/org.gnome.Calls-daemon.desktop.in:4
 msgid "Phone"
 msgstr "Telefon"
 
-#: data/sm.puri.Calls.desktop.in:5
+#: data/org.gnome.Calls.desktop.in:5
 msgid "A phone dialer and call handler"
-msgstr "Tárcsázó és híváskezelő"
+msgstr "Telefontárcsázó és híváskezelő"
 
-#. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon.
-#: data/sm.puri.Calls.desktop.in:7 data/sm.puri.Calls-daemon.desktop.in:7
+#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
+#: data/org.gnome.Calls.desktop.in:7 data/org.gnome.Calls-daemon.desktop.in:7
 msgid "Telephone;Call;Phone;Dial;Dialer;PSTN;"
 msgstr "Telefon;Hívás;Tárcsázás;Tárcsázó;PSTN;"
 
-#: data/sm.puri.Calls-daemon.desktop.in:3
+#: data/org.gnome.Calls-daemon.desktop.in:3
 msgid "Calls (daemon)"
 msgstr "Hívások (démon)"
 
-#: data/sm.puri.Calls-daemon.desktop.in:5
+#: data/org.gnome.Calls-daemon.desktop.in:5
 msgid "A phone dialer and call handler (daemon mode)"
-msgstr "Tárcsázó és híváskezelő (démon mód)"
+msgstr "Telefontárcsázó és híváskezelő (démon mód)"
 
-#: src/calls-application.c:401
+#: data/org.gnome.Calls.metainfo.xml:7
+msgid "Make phone and SIP calls"
+msgstr "Telefon- és SIP-hívások lebonyolítása"
+
+#: data/org.gnome.Calls.metainfo.xml:10
+msgid ""
+"Calls is a simple, elegant phone dialer and call handler for GNOME. It can "
+"be used with a cellular modem for plain old telephone calls as well as VoIP "
+"calls using the SIP protocol."
+msgstr ""
+"A Hívások egy egyszerű, elegáns telefontárcsázó és híváskezelő a GNOME-hoz. "
+"Használható mobilmodemmel egyszerű, régi telefonhívásokhoz, valamint a SIP-"
+"protokollt használó VoIP-hívásokhoz."
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:26
+msgid "Placing a call"
+msgstr "Hívás indítása"
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:31
+msgid "The call history"
+msgstr "A hívás előzményei"
+
+#: data/org.gnome.Calls.gschema.xml:7 data/org.gnome.Calls.gschema.xml:8
+msgid "Whether calls should automatically use the default origin"
+msgstr ""
+"A hívásoknak az alapértelmezett eredetet kell-e automatikusan használniuk"
+
+#: data/org.gnome.Calls.gschema.xml:13
+msgid "The country code as reported by the modem"
+msgstr "A modem által jelentett országkód"
+
+#: data/org.gnome.Calls.gschema.xml:14
+msgid "The country code is used for contact name lookup"
+msgstr "Az országkódot a partner névének kereséshez használják"
+
+#: data/org.gnome.Calls.gschema.xml:19
+msgid "The plugins to load automatically"
+msgstr "Az automatikusan betöltendő bővítmények"
+
+#: data/org.gnome.Calls.gschema.xml:20
+msgid "These plugins will be automatically loaded on application startup."
+msgstr ""
+"Ezek a bővítmények automatikusan betöltésre kerülnek az alkalmazás "
+"indításakor."
+
+#: data/org.gnome.Calls.gschema.xml:25
+msgid "Audio codecs to use for VoIP calls in order of preference"
+msgstr ""
+"A VoIP-hívásokhoz használandó hangkodekek az előnyben részesítés sorrendjében"
+
+#: data/org.gnome.Calls.gschema.xml:26
+msgid "The preferred audio codecs to use for VoIP calls (if available)"
+msgstr ""
+"A VoIP-hívásokhoz használandó előnyben részesített hangkodekek (ha elérhető)"
+
+#: data/org.gnome.Calls.gschema.xml:31
+msgid "Whether to allow using SDES for SRTP without TLS as the transport"
+msgstr "Engedélyezze-e az SDES használatát a TLS nélküli SRTP-hez átvitelként"
+
+#: data/org.gnome.Calls.gschema.xml:32
+msgid "Set to true if you want to allow with keys exchanged in cleartext."
+msgstr ""
+"Állítsa igazra, ha engedélyezni szeretné a kulcsok nyílt szöveges cseréjét."
+
+#: src/calls-account.c:163
+msgid "Default (uninitialized) state"
+msgstr "Alapértelmezett (előkészítetlen) állapot"
+
+#: src/calls-account.c:166
+msgid "Initializing account…"
+msgstr "Fiók előkészítése…"
+
+#: src/calls-account.c:169
+msgid "Uninitializing account…"
+msgstr "Fiók előkészítésének megszüntetése…"
+
+#: src/calls-account.c:172
+msgid "Connecting to server…"
+msgstr "Kapcsolódás a kiszolgálóhoz…"
+
+#: src/calls-account.c:175
+msgid "Account is online"
+msgstr "A fiók elérhető"
+
+#: src/calls-account.c:178
+msgid "Disconnecting from server…"
+msgstr "Leválasztás a kiszolgálóról…"
+
+#: src/calls-account.c:181
+msgid "Account is offline"
+msgstr "A fiók nem érhető el"
+
+#: src/calls-account.c:184
+msgid "Account encountered an error"
+msgstr "A fióknál hiba történt"
+
+#: src/calls-account.c:202
+msgid "No reason given"
+msgstr "Nincs ok megadva"
+
+#: src/calls-account.c:205
+msgid "Initialization started"
+msgstr "Az előkészítés elindult"
+
+#: src/calls-account.c:208
+msgid "Initialization complete"
+msgstr "Az előkészítés befejezve"
+
+#: src/calls-account.c:211
+msgid "Uninitialization started"
+msgstr "Az előkészítés megszüntetése elindult"
+
+#: src/calls-account.c:214
+msgid "Uninitialization complete"
+msgstr "Az előkészítés megszüntetése befejezve"
+
+#: src/calls-account.c:217
+msgid "No credentials set"
+msgstr "Nincsenek hitelesítési adatok beállítva"
+
+#: src/calls-account.c:220
+msgid "Starting to connect"
+msgstr "A kapcsolódás megkezdése"
+
+#: src/calls-account.c:223
+msgid "Connection timed out"
+msgstr "A kapcsolat túllépte az időkorlátot"
+
+#: src/calls-account.c:226
+msgid "Domain name could not be resolved"
+msgstr "A tartomány nevét nem sikerült feloldani"
+
+#: src/calls-account.c:229
+msgid "Server did not accept username or password"
+msgstr "A kiszolgáló nem fogadta el a felhasználónevet vagy a jelszót"
+
+#: src/calls-account.c:232
+msgid "Connecting complete"
+msgstr "A kapcsolódás befejezve"
+
+#: src/calls-account.c:235
+msgid "Starting to disconnect"
+msgstr "A leválasztás megkezdése"
+
+#: src/calls-account.c:238
+msgid "Disconnecting complete"
+msgstr "A leválasztás befejezve"
+
+#: src/calls-account.c:241
+msgid "Internal error occurred"
+msgstr "Belső hiba történt"
+
+#: src/calls-account-overview.c:177
 #, c-format
-msgid "Tried dialing unparsable tel URI `%s'"
-msgstr "Nem értelmezhető telefon-URI-t próbált meg tárcsázni: „%s”"
+msgid "Edit account: %s"
+msgstr "Fiók szerkesztése: %s"
+
+#: src/calls-account-overview.c:184
+#| msgid "Add Account"
+msgid "Add new account"
+msgstr "Új fiók hozzáadása"
+
+#: src/calls-account-overview.c:376
+#| msgid "Account is online"
+msgid "Account overview"
+msgstr "Fiók áttekintése"
 
-#: src/calls-application.c:483
+#: src/calls-application.c:327
+#, c-format
+msgid "Tried dialing invalid tel URI `%s'"
+msgstr "Érvénytelen telefon-URI-t próbált meg tárcsázni: „%s”"
+
+#: src/calls-application.c:660
 #, c-format
 msgid "Don't know how to open `%s'"
-msgstr "Nem tudja, hogyan nyissa meg a következőt: „%s”"
+msgstr "Nem tudni, hogyan kell megnyitni a következőt: „%s”"
 
-#: src/calls-application.c:533
-msgid "The name of the plugin to use for the call Provider"
-msgstr "A hívásszolgáltatáshoz használandó bővítmény neve"
+#: src/calls-application.c:717
+msgid "The name of the plugin to use as a call provider"
+msgstr "A hívásszolgáltatóként használandó bővítmény neve"
 
-#: src/calls-application.c:534
+#: src/calls-application.c:718
 msgid "PLUGIN"
 msgstr "BŐVÍTMÉNY"
 
-#: src/calls-application.c:539
+#: src/calls-application.c:723
 msgid "Whether to present the main window on startup"
 msgstr "Megjelenjen-e a főablak indításkor"
 
-#: src/calls-application.c:545
-msgid "Dial a number"
-msgstr "Szám tárcsázása"
+#: src/calls-application.c:729
+msgid "Dial a telephone number"
+msgstr "Telefonszám tárcsázása"
 
-#: src/calls-application.c:546
+#: src/calls-application.c:730
 msgid "NUMBER"
 msgstr "SZÁM"
 
-#: src/calls-best-match.c:331 src/calls-call-record-row.c:40
-msgid "Anonymous caller"
-msgstr "Ismeretlen hívó"
+#: src/calls-application.c:735
+msgid "Enable verbose debug messages"
+msgstr "Részletes hibakeresési üzenetek engedélyezése"
+
+#: src/calls-application.c:741
+msgid "Print current version"
+msgstr "Jelenlegi verzió kiírása"
 
-#: src/calls-call-display.c:292
-msgid "Calling…"
-msgstr "Hívás…"
+#: src/calls-best-match.c:435
+msgid "Anonymous caller"
+msgstr "Névtelen hívó"
 
-#: src/calls-call-record-row.c:113
+#: src/calls-call-record-row.c:97
 #, c-format
 msgid ""
 "%s\n"
@@ -91,173 +265,301 @@ msgstr ""
 "%s\n"
 "tegnap"
 
-#: src/calls-main-window.c:120
+#: src/calls-main-window.c:123
 msgid "translator-credits"
-msgstr "Meskó Balázs <mesko dot balazs at fsf dot hu>"
+msgstr ""
+"Meskó Balázs <mesko dot balazs at fsf dot hu>\n"
+"Úr Balázs <ur dot balazs at fsf dot hu>"
 
-#: src/calls-main-window.c:318
-msgid "Can't place calls: No voice-capable modem available"
-msgstr "Nem lehet hívást indítani: Nem érhető el hangképes modem"
+#: src/calls-main-window.c:316
+msgid "Can't place calls: No modem or VoIP account available"
+msgstr "Nem lehet hívásokat indítani: nincs elérhető modem vagy VoIP-fiók"
 
-#: src/calls-main-window.c:323
-msgid "Can't place calls: No backend service"
-msgstr "Nem lehet hívást indítani: Nincs háttérszolgáltatás"
-
-#: src/calls-main-window.c:327
-msgid "Can't place calls: No plugin"
-msgstr "Nem lehet hívást indítani: Nincs bővítmény"
+#: src/calls-main-window.c:318
+msgid "Can't place calls: No plugin loaded"
+msgstr "Nem lehet hívásokat indítani: nincs betöltött bővítmény"
 
-#: src/calls-main-window.c:364
+#: src/calls-main-window.c:353
 msgid "Contacts"
-msgstr "Névjegyek"
+msgstr "Partnerek"
 
-#: src/calls-main-window.c:374 src/ui/call-display.ui:287
+#: src/calls-main-window.c:363
 msgid "Dial Pad"
 msgstr "Tárcsázó"
 
-#: src/calls-main-window.c:382
+#. Recent as in "Recent calls" (the call history)
+#: src/calls-main-window.c:372
 msgid "Recent"
-msgstr "Előzmények"
+msgstr "Legutóbbi"
 
-#: src/calls-notifier.c:46
+#: src/calls-notifier.c:52
 msgid "Missed call"
 msgstr "Nem fogadott hívás"
 
-#: src/calls-notifier.c:58
+#. %s is a name here
+#: src/calls-notifier.c:76
 #, c-format
 msgid "Missed call from <b>%s</b>"
 msgstr "Nem fogadott hívás innen: <b>%s</b>"
 
-#: src/calls-notifier.c:60
+#. %s is a id here
+#: src/calls-notifier.c:79
 #, c-format
 msgid "Missed call from %s"
 msgstr "Nem fogadott hívás innen: %s"
 
-#: src/calls-notifier.c:66
+#: src/calls-notifier.c:81
+msgid "Missed call from unknown caller"
+msgstr "Nem fogadott hívás ismeretlen hívótól"
+
+#: src/calls-notifier.c:87
 msgid "Call back"
 msgstr "Visszahívás"
 
-#: src/ui/call-display.ui:33
-msgid "Incoming phone call"
-msgstr "Bejövő telefonhívás"
-
-#: src/ui/call-display.ui:133
-msgid "Mute"
-msgstr "Némítás"
-
-#: src/ui/call-display.ui:170
-msgid "Speaker"
-msgstr "Hangszóró"
-
-#: src/ui/call-display.ui:206
-msgid "Add call"
-msgstr "Hívás hozzáadása"
-
-#: src/ui/call-display.ui:251
-msgid "Hold"
-msgstr "Várakoztatás"
-
-#: src/ui/call-display.ui:343
-msgid "Hang up"
-msgstr "Bontás"
-
-#: src/ui/call-display.ui:374
-msgid "Answer"
-msgstr "Felvétel"
-
-#: src/ui/call-display.ui:456
-msgid "Hide the dial pad"
-msgstr "Tárcsázó elrejtése"
-
-#: src/ui/call-record-row.ui:68
-msgid "Call the party"
-msgstr "Fél hívása"
+#: src/ui/account-overview.ui:16
+msgid "VoIP Accounts"
+msgstr "VoIP-fiókok"
+
+#: src/ui/account-overview.ui:49
+msgid "Add VoIP Accounts"
+msgstr "VoIP-fiókok hozzáadása"
 
-#: src/ui/call-record-row.ui:112
+#: src/ui/account-overview.ui:51
+msgid ""
+"You can add VoIP account here. It will allow you to place and receive VoIP "
+"calls using the SIP protocol. This feature is still relatively new and not "
+"yet feature complete (i.e. no encrypted media)."
+msgstr ""
+"Itt adhat hozzá VoIP-fiókot. Ez lehetővé teszi, hogy VoIP-hívásokat indítson "
+"és fogadjon a SIP-protokoll használatával. Ez a funkció még viszonylag új, "
+"és még nem teljesen kész (azaz nincs titkosított média)."
+
+#: src/ui/account-overview.ui:58 src/ui/account-overview.ui:106
+msgid "_Add Account"
+msgstr "Fiók _hozzáadása"
+
+#. Translators: This is a verb, not a noun. Call the number of the currently selected row.
+#: src/ui/call-record-row.ui:62
+msgid "Call"
+msgstr "Hívás"
+
+#: src/ui/call-record-row.ui:102
 msgid "_Delete Call"
 msgstr "Hívás _törlése"
 
 #. Translators: This is a phone number
-#: src/ui/call-record-row.ui:117
+#: src/ui/call-record-row.ui:107
 msgid "_Copy number"
 msgstr "Szám _másolása"
 
-#: src/ui/call-selector-item.ui:31
-msgid "+441234567890"
-msgstr "+36123456789"
+#: src/ui/call-record-row.ui:112
+msgid "_Add contact"
+msgstr "Partner _hozzáadása"
 
-#: src/ui/call-selector-item.ui:44
+#: src/ui/call-record-row.ui:117
+msgid "_Send SMS"
+msgstr "SMS _küldése"
+
+#: src/ui/call-selector-item.ui:38
 msgid "On hold"
 msgstr "Várakoztatva"
 
-#: src/ui/contacts-box.ui:66
-msgid "No contacts found"
-msgstr "Nem található névjegy"
-
-#: src/ui/encryption-indicator.ui:23
-msgid "This call is not encrypted"
-msgstr "A hívás nem titkosított"
-
-#: src/ui/encryption-indicator.ui:45
-msgid "This call is encrypted"
-msgstr "A hívás titkosított"
+#: src/ui/contacts-box.ui:60
+msgid "No Contacts Found"
+msgstr "Nem találhatók partnerek"
 
-#: src/ui/history-box.ui:23
+#: src/ui/history-box.ui:10
 msgid "No Recent Calls"
-msgstr "Nem volt hívás a közelmúltban"
-
-#: src/ui/history-header-bar.ui:7
-msgid "Recent Calls"
-msgstr "Közelmúltbeli hívások"
-
-#: src/ui/history-header-bar.ui:20
-msgid "New call…"
-msgstr "Új hívás…"
-
-#. Translators: tooltip for the application menu button
-#: src/ui/history-header-bar.ui:39
-msgid "Menu"
-msgstr "Menü"
-
-#: src/ui/history-header-bar.ui:70
-msgid "About Calls"
-msgstr "Hívások névjegye"
-
-#: src/ui/main-window.ui:38
-msgid "No modem found"
-msgstr "Nem található modem"
+msgstr "Nincsenek legutóbbi hívások"
 
-#: src/ui/main-window.ui:95
+#: src/ui/main-window.ui:105
 msgid "USSD"
 msgstr "USSD"
 
-#: src/ui/main-window.ui:104
+#: src/ui/main-window.ui:114
 msgid "_Cancel"
-msgstr "Mé_gse"
+msgstr "_Mégse"
 
-#: src/ui/main-window.ui:121
+#: src/ui/main-window.ui:131
 msgid "_Close"
 msgstr "_Bezárás"
 
-#: src/ui/main-window.ui:131
+#: src/ui/main-window.ui:141
 msgid "_Send"
 msgstr "_Küldés"
 
-#: src/ui/new-call-box.ui:94
-msgid "Dial"
-msgstr "Tárcsázás"
-
-#: src/ui/new-call-box.ui:122
-msgid "Backspace through number"
-msgstr "Törléstől a számokig"
+#: src/ui/main-window.ui:214
+msgid "_VoIP Accounts"
+msgstr "_VoIP-fiókok"
+
+#: src/ui/main-window.ui:227
+msgid "_Keyboard shortcuts"
+msgstr "_Gyorsbillentyűk"
+
+#: src/ui/main-window.ui:233
+msgid "_Help"
+msgstr "_Súgó"
+
+#. "Calls" is the application name, do not translate
+#: src/ui/main-window.ui:239
+msgid "_About Calls"
+msgstr "A Hívások _névjegye"
+
+#: src/ui/new-call-box.ui:38
+msgid "Enter a VoIP address"
+msgstr "VoIP-cím megadása"
+
+#: src/ui/new-call-box.ui:62
+msgid "SIP Account"
+msgstr "SIP-fiók"
 
-#: src/ui/new-call-header-bar.ui:7
+#: src/ui/new-call-header-bar.ui:6
 msgid "New Call"
 msgstr "Új hívás"
 
-#: src/ui/new-call-header-bar.ui:20
+#: src/ui/new-call-header-bar.ui:19
 msgid "Back"
 msgstr "Vissza"
 
-#~ msgid "Can't place calls: No SIM card"
-#~ msgstr "Nem lehet hívást indítani: Nincs SIM-kártya"
+#: plugins/provider/mm/calls-mm-call.c:73
+msgid "Unknown reason"
+msgstr "Ismeretlen ok"
+
+#: plugins/provider/mm/calls-mm-call.c:74
+msgid "Outgoing call started"
+msgstr "Kimenő hívás elindítva"
+
+#: plugins/provider/mm/calls-mm-call.c:75
+msgid "New incoming call"
+msgstr "Új bejövő hívás"
+
+#: plugins/provider/mm/calls-mm-call.c:76
+msgid "Call accepted"
+msgstr "Hívás elfogadva"
+
+#: plugins/provider/mm/calls-mm-call.c:77
+msgid "Call ended"
+msgstr "Hívás befejezve"
+
+#: plugins/provider/mm/calls-mm-call.c:78
+msgid "Call disconnected (busy or call refused)"
+msgstr "Hívás szétkapcsolva (foglalt vagy hívás elutasítva)"
+
+#: plugins/provider/mm/calls-mm-call.c:79
+msgid "Call disconnected (wrong id or network problem)"
+msgstr "Hívás szétkapcsolva (hibás azonosító vagy hálózati probléma)"
+
+#: plugins/provider/mm/calls-mm-call.c:80
+msgid "Call disconnected (error setting up audio channel)"
+msgstr "Hívás szétkapcsolva (hiba a hangcsatorna beállításakor)"
+
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
+msgid "Call transferred"
+msgstr "Hívás átirányítva"
+
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
+msgid "Call deflected"
+msgstr "Hívás elutasítva"
+
+#: plugins/provider/mm/calls-mm-call.c:109
+#, c-format
+msgid "Call disconnected (unknown reason code %i)"
+msgstr "Hívás szétkapcsolva (ismeretlen okkód: %i)"
+
+#: plugins/provider/mm/calls-mm-provider.c:84
+msgid "ModemManager unavailable"
+msgstr "A ModemManager nem érhető el"
+
+#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/ofono/calls-ofono-provider.c:96
+msgid "No voice-capable modem available"
+msgstr "Nem érhető el hangképes modem"
+
+#: plugins/provider/mm/calls-mm-provider.c:88
+#: plugins/provider/ofono/calls-ofono-provider.c:98
+msgid "Normal"
+msgstr "Normál"
+
+#: plugins/provider/mm/calls-mm-provider.c:456
+#: plugins/provider/ofono/calls-ofono-provider.c:546
+msgid "Initialized"
+msgstr "Előkészítve"
+
+#: plugins/provider/ofono/calls-ofono-provider.c:94
+msgid "DBus unavailable"
+msgstr "A D-Bus nem érhető el"
+
+#: plugins/provider/sip/calls-sip-account-widget.c:668
+msgid "No encryption"
+msgstr "Nincs titkosítás"
+
+#. TODO Optional encryption
+#: plugins/provider/sip/calls-sip-account-widget.c:675
+msgid "Force encryption"
+msgstr "Titkosítás kényszerítése"
+
+#: plugins/provider/sip/calls-sip-call.c:123
+msgid "Cryptographic key exchange unsuccessful"
+msgstr "A kriptográfiai kulcs cseréje sikertelen"
+
+#: plugins/provider/sip/sip-account-widget.ui:11
+msgid "Add Account"
+msgstr "Fiók hozzáadása"
+
+#: plugins/provider/sip/sip-account-widget.ui:17
+msgid "_Log In"
+msgstr "_Bejelentkezés"
+
+#: plugins/provider/sip/sip-account-widget.ui:42
+msgid "Manage Account"
+msgstr "Fiók kezelése"
+
+#: plugins/provider/sip/sip-account-widget.ui:47
+msgid "_Apply"
+msgstr "_Alkalmaz"
+
+#: plugins/provider/sip/sip-account-widget.ui:61
+msgid "_Delete"
+msgstr "_Törlés"
+
+#: plugins/provider/sip/sip-account-widget.ui:91
+msgid "Server"
+msgstr "Kiszolgáló"
+
+#: plugins/provider/sip/sip-account-widget.ui:109
+msgid "Display Name"
+msgstr "Megjelenített név"
+
+#: plugins/provider/sip/sip-account-widget.ui:110
+msgid "Optional"
+msgstr "Elhagyható"
+
+#: plugins/provider/sip/sip-account-widget.ui:128
+msgid "User ID"
+msgstr "Felhasználóazonosító"
+
+#: plugins/provider/sip/sip-account-widget.ui:141
+msgid "Password"
+msgstr "Jelszó"
+
+#: plugins/provider/sip/sip-account-widget.ui:166
+msgid "Port"
+msgstr "Port"
+
+#: plugins/provider/sip/sip-account-widget.ui:182
+msgid "Transport"
+msgstr "Átvitel"
+
+#: plugins/provider/sip/sip-account-widget.ui:189
+msgid "Media Encryption"
+msgstr "Médiatitkosítás"
+
+#: plugins/provider/sip/sip-account-widget.ui:201
+msgid "Use for Phone Calls"
+msgstr "Használat telefonhívásokhoz"
+
+#: plugins/provider/sip/sip-account-widget.ui:214
+msgid "Automatically Connect"
+msgstr "Automatikus kapcsolódás"
diff -pruN 43.0-1/po/id.po 44~alpha.1-1/po/id.po
--- 43.0-1/po/id.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/id.po	2023-01-12 09:50:29.000000000 +0000
@@ -2,24 +2,24 @@
 # Copyright (C) 2020 calls's COPYRIGHT HOLDER
 # This file is distributed under the same license as the calls package.
 # Andika Triwidada <atriwidada@gnome.org>, 2020.
-#
+# Kukuh Syafaat <kukuhsyafaat@gnome.org>, 2022.
 msgid ""
 msgstr ""
 "Project-Id-Version: calls master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
-"POT-Creation-Date: 2021-08-14 19:22+0000\n"
-"PO-Revision-Date: 2021-08-28 09:13+0700\n"
-"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
+"POT-Creation-Date: 2022-11-18 15:34+0000\n"
+"PO-Revision-Date: 2022-11-29 11:41+0700\n"
+"Last-Translator: Kukuh Syafaat <kukuhsyafaat@gnome.org>\n"
 "Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
 "Language: id\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural= n!=1;\n"
-"X-Generator: Poedit 2.4.2\n"
+"X-Generator: Poedit 3.2.1\n"
 
-#: data/org.gnome.Calls.desktop.in:3 src/calls-application.c:374
-#: src/ui/call-window.ui:10 src/ui/main-window.ui:8
+#: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
+#: src/calls-application.c:457 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "Panggilan"
 
@@ -31,7 +31,7 @@ msgstr "Telepon"
 msgid "A phone dialer and call handler"
 msgstr "Pemutar-nomor telepon dan penanganan panggilan"
 
-#. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon.
+#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
 #: data/org.gnome.Calls.desktop.in:7 data/org.gnome.Calls-daemon.desktop.in:7
 msgid "Telephone;Call;Phone;Dial;Dialer;PSTN;"
 msgstr "Telepon;Panggil;Dial;Pemanggil;PSTN;"
@@ -44,53 +44,216 @@ msgstr "Panggilan (daemon)"
 msgid "A phone dialer and call handler (daemon mode)"
 msgstr "Pemutar-nomor telepon dan penangan panggilan (mode daemon)"
 
-#: src/calls-application.c:544
+#: data/org.gnome.Calls.metainfo.xml:7
+msgid "Make phone and SIP calls"
+msgstr "Lakukan panggilan telepon dan SIP"
+
+#: data/org.gnome.Calls.metainfo.xml:10
+msgid ""
+"Calls is a simple, elegant phone dialer and call handler for GNOME. It can "
+"be used with a cellular modem for plain old telephone calls as well as VoIP "
+"calls using the SIP protocol."
+msgstr ""
+"Panggilan adalah dialer telepon dan penangan panggilan yang sederhana dan "
+"elegan untuk GNOME. Ini dapat digunakan dengan modem seluler untuk panggilan "
+"telepon lama biasa serta panggilan VoIP menggunakan protokol SIP."
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:26
+msgid "Placing a call"
+msgstr "Melakukan panggilan"
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:31
+msgid "The call history"
+msgstr "Riwayat panggilan"
+
+#: data/org.gnome.Calls.gschema.xml:7 data/org.gnome.Calls.gschema.xml:8
+msgid "Whether calls should automatically use the default origin"
+msgstr "Apakah panggilan harus secara otomatis menggunakan asal bawaan"
+
+#: data/org.gnome.Calls.gschema.xml:13
+msgid "The country code as reported by the modem"
+msgstr "Kode negara seperti yang dilaporkan oleh modem"
+
+#: data/org.gnome.Calls.gschema.xml:14
+msgid "The country code is used for contact name lookup"
+msgstr "Kode negara digunakan untuk pencarian nama kontak"
+
+#: data/org.gnome.Calls.gschema.xml:19
+msgid "The plugins to load automatically"
+msgstr "Pengaya untuk dimuat secara otomatis"
+
+#: data/org.gnome.Calls.gschema.xml:20
+msgid "These plugins will be automatically loaded on application startup."
+msgstr "Pengaya ini akan dimuat secara otomatis pada awal mula aplikasi."
+
+#: data/org.gnome.Calls.gschema.xml:25
+msgid "Audio codecs to use for VoIP calls in order of preference"
+msgstr ""
+"Kodek audio yang digunakan untuk panggilan VoIP dalam urutan preferensi"
+
+#: data/org.gnome.Calls.gschema.xml:26
+msgid "The preferred audio codecs to use for VoIP calls (if available)"
+msgstr ""
+"Kodek audio pilihan untuk digunakan untuk panggilan VoIP (jika tersedia)"
+
+#: data/org.gnome.Calls.gschema.xml:31
+msgid "Whether to allow using SDES for SRTP without TLS as the transport"
+msgstr ""
+"Apakah akan mengizinkan penggunaan SDES untuk SRTP tanpa TLS sebagai "
+"transportasi"
+
+#: data/org.gnome.Calls.gschema.xml:32
+msgid "Set to true if you want to allow with keys exchanged in cleartext."
+msgstr ""
+"Atur ke true jika Anda ingin mengizinkan dengan kunci yang dipertukarkan "
+"dalam teks jelas (cleartext)."
+
+#: src/calls-account.c:163
+msgid "Default (uninitialized) state"
+msgstr "Status bawan (tidak diinisialisasi)"
+
+#: src/calls-account.c:166
+msgid "Initializing account…"
+msgstr "Menginisialisasi akun…"
+
+#: src/calls-account.c:169
+msgid "Uninitializing account…"
+msgstr "Menonaktifkan akun…"
+
+#: src/calls-account.c:172
+msgid "Connecting to server…"
+msgstr "Menghubungkan ke peladen…"
+
+#: src/calls-account.c:175
+msgid "Account is online"
+msgstr "Akun sedang daring"
+
+#: src/calls-account.c:178
+msgid "Disconnecting from server…"
+msgstr "Memutuskan sambungan dari peladen…"
+
+#: src/calls-account.c:181
+msgid "Account is offline"
+msgstr "Akun sedang luring"
+
+#: src/calls-account.c:184
+msgid "Account encountered an error"
+msgstr "Akun mengalami kesalahan"
+
+#: src/calls-account.c:202
+msgid "No reason given"
+msgstr "Tidak ada alasan yang diberikan"
+
+#: src/calls-account.c:205
+msgid "Initialization started"
+msgstr "Inisialisasi dimulai"
+
+#: src/calls-account.c:208
+msgid "Initialization complete"
+msgstr "Inisialisasi selesai"
+
+#: src/calls-account.c:211
+msgid "Uninitialization started"
+msgstr "Penonaktifan dimulai"
+
+#: src/calls-account.c:214
+msgid "Uninitialization complete"
+msgstr "Penonaktifan selesai"
+
+#: src/calls-account.c:217
+msgid "No credentials set"
+msgstr "Tidak ada kredensial yang ditetapkan"
+
+#: src/calls-account.c:220
+msgid "Starting to connect"
+msgstr "Mulai terhubung"
+
+#: src/calls-account.c:223
+msgid "Connection timed out"
+msgstr "Sambungan habis waktu"
+
+#: src/calls-account.c:226
+msgid "Domain name could not be resolved"
+msgstr "Nama domain tidak dapat diselesaikan"
+
+#: src/calls-account.c:229
+msgid "Server did not accept username or password"
+msgstr "Peladen tidak menerima nama pengguna atau kata sandi"
+
+#: src/calls-account.c:232
+msgid "Connecting complete"
+msgstr "Menyambungkan selesai"
+
+#: src/calls-account.c:235
+msgid "Starting to disconnect"
+msgstr "Mulai memutuskan sambungan"
+
+#: src/calls-account.c:238
+msgid "Disconnecting complete"
+msgstr "Memutuskan sambungan selesai"
+
+#: src/calls-account.c:241
+msgid "Internal error occurred"
+msgstr "Terjadi kesalahan internal"
+
+#: src/calls-account-overview.c:177
 #, c-format
-msgid "Tried dialing unparsable tel URI `%s'"
-msgstr "Mencoba memanggil URI tel yang tak bisa diurai '%s'"
+msgid "Edit account: %s"
+msgstr "Sunting akun: %s"
 
-#: src/calls-application.c:626
+#: src/calls-account-overview.c:184
+msgid "Add new account"
+msgstr "Tambah akun baru"
+
+#: src/calls-account-overview.c:376
+msgid "Account overview"
+msgstr "Gambaran umum akun"
+
+#: src/calls-application.c:327
+#, c-format
+msgid "Tried dialing invalid tel URI `%s'"
+msgstr "Mencoba menekan URI tel tidak valid '%s'"
+
+#: src/calls-application.c:660
 #, c-format
 msgid "Don't know how to open `%s'"
 msgstr "Tidak tahu bagaimana membuka '%s'"
 
-#: src/calls-application.c:680
-msgid "The name of the plugin to use for the call Provider"
-msgstr "Nama plugin yang digunakan untuk Penyedia panggilan"
+#: src/calls-application.c:717
+msgid "The name of the plugin to use as a call provider"
+msgstr "Nama pengaya untuk digunakan sebagai penyedia panggilan"
 
-#: src/calls-application.c:681
+#: src/calls-application.c:718
 msgid "PLUGIN"
 msgstr "PLUGIN"
 
-#: src/calls-application.c:686
+#: src/calls-application.c:723
 msgid "Whether to present the main window on startup"
 msgstr "Apakah menyajikan jendela utama pada saat mulai"
 
-#: src/calls-application.c:692
-msgid "Dial a number"
-msgstr "Putar suatu nomor"
+#: src/calls-application.c:729
+msgid "Dial a telephone number"
+msgstr "Hubungi nomor telepon"
 
-#: src/calls-application.c:693
+#: src/calls-application.c:730
 msgid "NUMBER"
 msgstr "NOMOR"
 
-#: src/calls-application.c:698
+#: src/calls-application.c:735
 msgid "Enable verbose debug messages"
 msgstr "Fungsikan pesan awakutu cerewet"
 
-#: src/calls-application.c:704
+#: src/calls-application.c:741
 msgid "Print current version"
 msgstr "Cetak versi saat ini"
 
-#: src/calls-best-match.c:375 src/calls-call-record-row.c:40
+#: src/calls-best-match.c:435
 msgid "Anonymous caller"
 msgstr "Penelepon anonim"
 
-#: src/calls-call-display.c:278
-msgid "Calling…"
-msgstr "Memanggil…"
-
-#: src/calls-call-record-row.c:113
+#: src/calls-call-record-row.c:97
 #, c-format
 msgid ""
 "%s\n"
@@ -99,209 +262,362 @@ msgstr ""
 "%s\n"
 "kemarin"
 
-#: src/calls-main-window.c:125
+#: src/calls-main-window.c:123
 msgid "translator-credits"
-msgstr "Andika Triwidada <andika@gmail.com>, 2020, 2021."
-
-#: src/calls-main-window.c:323
-msgid "Can't place calls: No voice-capable modem available"
 msgstr ""
-"Tidak dapat melakukan panggilan: Tidak ada modem berkemampuan suara yang "
-"tersedia"
+"Andika Triwidada <andika@gmail.com>, 2020, 2021.\n"
+"Kukuh Syafaat <kukuhsyafaat@gnome.org>, 2022."
 
-#: src/calls-main-window.c:327
+#: src/calls-main-window.c:316
 msgid "Can't place calls: No modem or VoIP account available"
 msgstr ""
 "Tidak dapat melakukan panggilan: Tidak ada modem atau akun VoIP yang tersedia"
 
-#: src/calls-main-window.c:332
-msgid "Can't place calls: No backend service"
-msgstr "Tidak dapat melakukan panggilan: Tidak ada layanan backend"
-
-#: src/calls-main-window.c:336
-msgid "Can't place calls: No plugin"
-msgstr "Tidak dapat melakukan panggilan: Tidak ada plugin"
+#: src/calls-main-window.c:318
+msgid "Can't place calls: No plugin loaded"
+msgstr "Tidak dapat melakukan panggilan: Tidak ada pengaya yang dimuat"
 
-#: src/calls-main-window.c:376
+#: src/calls-main-window.c:353
 msgid "Contacts"
 msgstr "Kontak"
 
-#: src/calls-main-window.c:386 src/ui/call-display.ui:289
+#: src/calls-main-window.c:363
 msgid "Dial Pad"
 msgstr "Tombol Angka"
 
-#: src/calls-main-window.c:394
+#. Recent as in "Recent calls" (the call history)
+#: src/calls-main-window.c:372
 msgid "Recent"
 msgstr "Baru-baru Ini"
 
-#: src/calls-notifier.c:48
+#: src/calls-notifier.c:52
 msgid "Missed call"
 msgstr "Panggilan tak terjawab"
 
-#: src/calls-notifier.c:68
+#. %s is a name here
+#: src/calls-notifier.c:76
 #, c-format
 msgid "Missed call from <b>%s</b>"
 msgstr "Panggilan tak terjawab dari <b>%s</b>"
 
-#: src/calls-notifier.c:70
+#. %s is a id here
+#: src/calls-notifier.c:79
 #, c-format
 msgid "Missed call from %s"
 msgstr "Panggilan tak terjawab dari %s"
 
-#: src/calls-notifier.c:72
+#: src/calls-notifier.c:81
 msgid "Missed call from unknown caller"
 msgstr "Panggilan tak terjawab dari pemanggil yang tidak dikenal"
 
-#: src/calls-notifier.c:78
+#: src/calls-notifier.c:87
 msgid "Call back"
 msgstr "Telepon balik"
 
-#: src/ui/call-display.ui:33
-msgid "Incoming phone call"
-msgstr "Panggilan telepon masuk"
-
-#: src/ui/call-display.ui:135
-msgid "Mute"
-msgstr "Bisukan"
-
-#: src/ui/call-display.ui:172
-msgid "Speaker"
-msgstr "Speaker"
-
-#: src/ui/call-display.ui:208
-msgid "Add call"
-msgstr "Menambahkan panggilan"
-
-#: src/ui/call-display.ui:253
-msgid "Hold"
-msgstr "Tahan"
-
-#: src/ui/call-display.ui:345
-msgid "Hang up"
-msgstr "Tutup"
-
-#: src/ui/call-display.ui:376
-msgid "Answer"
-msgstr "Jawab"
-
-#: src/ui/call-display.ui:458
-msgid "Hide the dial pad"
-msgstr "Menyembunyikan tombol angka"
-
-#: src/ui/call-record-row.ui:68
-msgid "Call the party"
-msgstr "Hubungi mereka"
+#: src/ui/account-overview.ui:16
+msgid "VoIP Accounts"
+msgstr "Akun VoIP"
+
+#: src/ui/account-overview.ui:49
+msgid "Add VoIP Accounts"
+msgstr "Tambah Akun VoIP"
 
-#: src/ui/call-record-row.ui:112
+#: src/ui/account-overview.ui:51
+msgid ""
+"You can add VoIP account here. It will allow you to place and receive VoIP "
+"calls using the SIP protocol. This feature is still relatively new and not "
+"yet feature complete (i.e. no encrypted media)."
+msgstr ""
+"Anda dapat menambahkan akun VoIP di sini. Ini akan memungkinkan Anda untuk "
+"menempatkan dan menerima panggilan VoIP menggunakan protokol SIP. Fitur ini "
+"masih tergolong baru dan belum lengkap (yaitu tidak ada media terenkripsi)."
+
+#: src/ui/account-overview.ui:58 src/ui/account-overview.ui:106
+msgid "_Add Account"
+msgstr "Tambah _Akun"
+
+#. Translators: This is a verb, not a noun. Call the number of the currently selected row.
+#: src/ui/call-record-row.ui:62
+msgid "Call"
+msgstr "Panggilan"
+
+#: src/ui/call-record-row.ui:102
 msgid "_Delete Call"
 msgstr "_Hapus Panggilan"
 
 #. Translators: This is a phone number
-#: src/ui/call-record-row.ui:117
+#: src/ui/call-record-row.ui:107
 msgid "_Copy number"
 msgstr "_Salin nomor"
 
-#: src/ui/call-selector-item.ui:31
-msgid "+441234567890"
-msgstr "+441234567890"
+#: src/ui/call-record-row.ui:112
+msgid "_Add contact"
+msgstr "T_ambah Kontak"
+
+#: src/ui/call-record-row.ui:117
+msgid "_Send SMS"
+msgstr "_Kirim SMS"
 
-#: src/ui/call-selector-item.ui:44
+#: src/ui/call-selector-item.ui:38
 msgid "On hold"
 msgstr "Ditahan"
 
-#: src/ui/contacts-box.ui:66
-msgid "No contacts found"
-msgstr "Tidak ada kontak yang ditemukan"
-
-#: src/ui/encryption-indicator.ui:23
-msgid "This call is not encrypted"
-msgstr "Panggilan ini tidak dienkripsi"
-
-#: src/ui/encryption-indicator.ui:45
-msgid "This call is encrypted"
-msgstr "Panggilan ini dienkripsi"
+#: src/ui/contacts-box.ui:60
+msgid "No Contacts Found"
+msgstr "Tidak Ada Kontak yang Ditemukan"
 
-#: src/ui/history-box.ui:23
+#: src/ui/history-box.ui:10
 msgid "No Recent Calls"
 msgstr "Tidak Ada Panggilan Terbaru"
 
-#: src/ui/history-header-bar.ui:7
-msgid "Recent Calls"
-msgstr "Panggilan Baru-baru Ini"
-
-#: src/ui/history-header-bar.ui:20
-msgid "New call…"
-msgstr "Panggilan baru…"
-
-#. Translators: tooltip for the application menu button
-#: src/ui/history-header-bar.ui:39
-msgid "Menu"
-msgstr "Menu"
-
-#: src/ui/history-header-bar.ui:70
-msgid "About Calls"
-msgstr "Tentang Panggilan"
-
-#: src/ui/main-window.ui:76
-msgid "No modem found"
-msgstr "Modem tak ditemukan"
-
-#: src/ui/main-window.ui:118
+#: src/ui/main-window.ui:105
 msgid "USSD"
 msgstr "USSD"
 
-#: src/ui/main-window.ui:127
+#: src/ui/main-window.ui:114
 msgid "_Cancel"
 msgstr "_Batal"
 
-#: src/ui/main-window.ui:144
+#: src/ui/main-window.ui:131
 msgid "_Close"
 msgstr "_Tutup"
 
-#: src/ui/main-window.ui:154
+#: src/ui/main-window.ui:141
 msgid "_Send"
 msgstr "_Kirim"
 
-#: src/ui/main-window.ui:228
+#: src/ui/main-window.ui:214
 msgid "_VoIP Accounts"
 msgstr "Akun _VoIP"
 
-#: src/ui/main-window.ui:241
+#: src/ui/main-window.ui:227
 msgid "_Keyboard shortcuts"
 msgstr "Pintasan papan _ketik"
 
-#: src/ui/main-window.ui:247
+#: src/ui/main-window.ui:233
 msgid "_Help"
 msgstr "_Bantuan"
 
-#: src/ui/main-window.ui:253
+#. "Calls" is the application name, do not translate
+#: src/ui/main-window.ui:239
 msgid "_About Calls"
 msgstr "Tent_ang Panggilan"
 
-#: src/ui/new-call-box.ui:34
+#: src/ui/new-call-box.ui:38
 msgid "Enter a VoIP address"
 msgstr "Masukkan suatu alamat VoIP"
 
-#: src/ui/new-call-box.ui:46
-msgid "Enter a number"
-msgstr "Masukkan suatu nomor"
-
-#: src/ui/new-call-box.ui:90
-msgid "Dial"
-msgstr "Dial"
-
-#: src/ui/new-call-box.ui:113
-msgid "Backspace through number"
-msgstr "Backspace melalui angka"
-
-#: src/ui/new-call-box.ui:145
+#: src/ui/new-call-box.ui:62
 msgid "SIP Account"
 msgstr "Akun SIP"
 
-#: src/ui/new-call-header-bar.ui:7
+#: src/ui/new-call-header-bar.ui:6
 msgid "New Call"
 msgstr "Panggilan Baru"
 
-#: src/ui/new-call-header-bar.ui:20
+#: src/ui/new-call-header-bar.ui:19
 msgid "Back"
 msgstr "Mundur"
+
+#: plugins/provider/mm/calls-mm-call.c:73
+msgid "Unknown reason"
+msgstr "Alasan tidak dikenal"
+
+#: plugins/provider/mm/calls-mm-call.c:74
+msgid "Outgoing call started"
+msgstr "Panggilan keluar dimulai"
+
+#: plugins/provider/mm/calls-mm-call.c:75
+msgid "New incoming call"
+msgstr "Panggilan masuk baru"
+
+#: plugins/provider/mm/calls-mm-call.c:76
+msgid "Call accepted"
+msgstr "Panggilan diterima"
+
+#: plugins/provider/mm/calls-mm-call.c:77
+msgid "Call ended"
+msgstr "Panggilan berakhir"
+
+#: plugins/provider/mm/calls-mm-call.c:78
+msgid "Call disconnected (busy or call refused)"
+msgstr "Panggilan terputus (sibuk atau panggilan ditolak)"
+
+#: plugins/provider/mm/calls-mm-call.c:79
+msgid "Call disconnected (wrong id or network problem)"
+msgstr "Panggilan terputus (id salah atau masalah jaringan)"
+
+#: plugins/provider/mm/calls-mm-call.c:80
+msgid "Call disconnected (error setting up audio channel)"
+msgstr "Panggilan terputus (kesalahan pengaturan saluran audio)"
+
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
+msgid "Call transferred"
+msgstr "Panggilan ditransfer"
+
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
+msgid "Call deflected"
+msgstr "Panggilan dibelokkan"
+
+#: plugins/provider/mm/calls-mm-call.c:109
+#, c-format
+msgid "Call disconnected (unknown reason code %i)"
+msgstr "Panggilan terputus (kode alasan tidak diketahui %i)"
+
+#: plugins/provider/mm/calls-mm-provider.c:84
+msgid "ModemManager unavailable"
+msgstr "ModemManager tidak tersedia"
+
+#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/ofono/calls-ofono-provider.c:96
+msgid "No voice-capable modem available"
+msgstr "Tidak ada modem berkemampuan suara yang tersedia"
+
+#: plugins/provider/mm/calls-mm-provider.c:88
+#: plugins/provider/ofono/calls-ofono-provider.c:98
+msgid "Normal"
+msgstr "Normal"
+
+#: plugins/provider/mm/calls-mm-provider.c:456
+#: plugins/provider/ofono/calls-ofono-provider.c:546
+msgid "Initialized"
+msgstr "Diinisialisasi"
+
+#: plugins/provider/ofono/calls-ofono-provider.c:94
+msgid "DBus unavailable"
+msgstr "DBus tidak tersedia"
+
+#: plugins/provider/sip/calls-sip-account-widget.c:668
+msgid "No encryption"
+msgstr "Tidak ada enkripsi"
+
+#. TODO Optional encryption
+#: plugins/provider/sip/calls-sip-account-widget.c:675
+msgid "Force encryption"
+msgstr "Enkripsi paksa"
+
+#: plugins/provider/sip/calls-sip-call.c:123
+msgid "Cryptographic key exchange unsuccessful"
+msgstr "Pertukaran kunci kriptografi tidak berhasil"
+
+#: plugins/provider/sip/sip-account-widget.ui:11
+msgid "Add Account"
+msgstr "Tambah Akun"
+
+#: plugins/provider/sip/sip-account-widget.ui:17
+msgid "_Log In"
+msgstr "_Log masuk"
+
+#: plugins/provider/sip/sip-account-widget.ui:42
+msgid "Manage Account"
+msgstr "Kelola Akun"
+
+#: plugins/provider/sip/sip-account-widget.ui:47
+msgid "_Apply"
+msgstr "Ter_apkan"
+
+#: plugins/provider/sip/sip-account-widget.ui:61
+msgid "_Delete"
+msgstr "_Hapus"
+
+#: plugins/provider/sip/sip-account-widget.ui:91
+msgid "Server"
+msgstr "Peladen"
+
+#: plugins/provider/sip/sip-account-widget.ui:109
+msgid "Display Name"
+msgstr "Nama Tampilan"
+
+#: plugins/provider/sip/sip-account-widget.ui:110
+msgid "Optional"
+msgstr "Pilihan"
+
+#: plugins/provider/sip/sip-account-widget.ui:128
+msgid "User ID"
+msgstr "ID Pengguna"
+
+#: plugins/provider/sip/sip-account-widget.ui:141
+msgid "Password"
+msgstr "Kata Sandi"
+
+#: plugins/provider/sip/sip-account-widget.ui:166
+msgid "Port"
+msgstr "Port"
+
+#: plugins/provider/sip/sip-account-widget.ui:182
+msgid "Transport"
+msgstr "Transportasi"
+
+#: plugins/provider/sip/sip-account-widget.ui:189
+msgid "Media Encryption"
+msgstr "Enkripsi Media"
+
+#: plugins/provider/sip/sip-account-widget.ui:201
+msgid "Use for Phone Calls"
+msgstr "Gunakan untuk Panggilan Telepon"
+
+#: plugins/provider/sip/sip-account-widget.ui:214
+msgid "Automatically Connect"
+msgstr "Terhubung Secara Otomatis"
+
+#~ msgid "Calling…"
+#~ msgstr "Memanggil…"
+
+#~ msgid "Can't place calls: No backend service"
+#~ msgstr "Tidak dapat melakukan panggilan: Tidak ada layanan backend"
+
+#~ msgid "Mute"
+#~ msgstr "Bisukan"
+
+#~ msgid "Speaker"
+#~ msgstr "Speaker"
+
+#~ msgid "Add call"
+#~ msgstr "Menambahkan panggilan"
+
+#~ msgid "Hold"
+#~ msgstr "Tahan"
+
+#~ msgid "Hang up"
+#~ msgstr "Tutup"
+
+#~ msgid "Answer"
+#~ msgstr "Jawab"
+
+#~ msgid "Hide the dial pad"
+#~ msgstr "Menyembunyikan tombol angka"
+
+#~ msgid "Call the party"
+#~ msgstr "Hubungi mereka"
+
+#~ msgid "+441234567890"
+#~ msgstr "+441234567890"
+
+#~ msgid "This call is not encrypted"
+#~ msgstr "Panggilan ini tidak dienkripsi"
+
+#~ msgid "Recent Calls"
+#~ msgstr "Panggilan Baru-baru Ini"
+
+#~ msgid "New call…"
+#~ msgstr "Panggilan baru…"
+
+#~ msgid "Menu"
+#~ msgstr "Menu"
+
+#~ msgid "About Calls"
+#~ msgstr "Tentang Panggilan"
+
+#~ msgid "No modem found"
+#~ msgstr "Modem tak ditemukan"
+
+#~ msgid "Enter a number"
+#~ msgstr "Masukkan suatu nomor"
+
+#~ msgid "Dial"
+#~ msgstr "Dial"
+
+#~ msgid "Backspace through number"
+#~ msgstr "Backspace melalui angka"
diff -pruN 43.0-1/po/it.po 44~alpha.1-1/po/it.po
--- 43.0-1/po/it.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/it.po	2023-01-12 09:50:29.000000000 +0000
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: calls master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
-"POT-Creation-Date: 2022-09-02 16:32+0000\n"
-"PO-Revision-Date: 2022-09-03 15:49+0200\n"
+"POT-Creation-Date: 2022-11-18 15:34+0000\n"
+"PO-Revision-Date: 2022-11-20 16:16+0100\n"
 "Last-Translator: antonio <ant.pandolfo@gmail.com>\n"
 "Language-Team: Italiano <ant.pandolfo@gmail.com>\n"
 "Language: it\n"
@@ -19,7 +19,7 @@ msgstr ""
 "X-Generator: Gtranslator 3.38.0\n"
 
 #: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
-#: src/calls-application.c:440 src/ui/call-window.ui:9 src/ui/main-window.ui:7
+#: src/calls-application.c:457 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "Chiamate"
 
@@ -199,41 +199,56 @@ msgstr "Disconnessione effettuata"
 msgid "Internal error occurred"
 msgstr "Si è verificato un errore interno"
 
-#: src/calls-application.c:319
+#: src/calls-account-overview.c:177
+#, c-format
+msgid "Edit account: %s"
+msgstr "Modifica account: %s"
+
+#: src/calls-account-overview.c:184
+#| msgid "Add Account"
+msgid "Add new account"
+msgstr "Nuovo account"
+
+#: src/calls-account-overview.c:376
+#| msgid "Account is online"
+msgid "Account overview"
+msgstr "Informazioni account"
+
+#: src/calls-application.c:327
 #, c-format
 msgid "Tried dialing invalid tel URI `%s'"
 msgstr "Ho provato a comporre un URI telefonico non valido `%s'"
 
-#: src/calls-application.c:638
+#: src/calls-application.c:660
 #, c-format
 msgid "Don't know how to open `%s'"
 msgstr "Non so come aprire `%s'"
 
-#: src/calls-application.c:692
+#: src/calls-application.c:717
 msgid "The name of the plugin to use as a call provider"
 msgstr "Il nome del plugin da usare come fornitore di chiamate"
 
-#: src/calls-application.c:693
+#: src/calls-application.c:718
 msgid "PLUGIN"
 msgstr "PLUGIN"
 
-#: src/calls-application.c:698
+#: src/calls-application.c:723
 msgid "Whether to present the main window on startup"
 msgstr "Se presentare la finestra principale all'avvio"
 
-#: src/calls-application.c:704
+#: src/calls-application.c:729
 msgid "Dial a telephone number"
 msgstr "Componi un numero di telefono"
 
-#: src/calls-application.c:705
+#: src/calls-application.c:730
 msgid "NUMBER"
 msgstr "NUMERO"
 
-#: src/calls-application.c:710
+#: src/calls-application.c:735
 msgid "Enable verbose debug messages"
 msgstr "Abilita i messaggi dettagliati di debug"
 
-#: src/calls-application.c:716
+#: src/calls-application.c:741
 msgid "Print current version"
 msgstr "Stampa la versione attuale"
 
@@ -343,7 +358,6 @@ msgid "_Add contact"
 msgstr "_Aggiungi contatto"
 
 #: src/ui/call-record-row.ui:117
-#| msgid "_Send"
 msgid "_Send SMS"
 msgstr "_Invia SMS"
 
@@ -392,23 +406,11 @@ msgstr "_Guida"
 msgid "_About Calls"
 msgstr "Informazioni _su Chiamate"
 
-#: src/ui/new-call-box.ui:45
+#: src/ui/new-call-box.ui:38
 msgid "Enter a VoIP address"
 msgstr "Inserire un indirizzo VoIP"
 
-#: src/ui/new-call-box.ui:58
-msgid "Enter a number"
-msgstr "Inserire un numero"
-
-#: src/ui/new-call-box.ui:97
-msgid "Dial"
-msgstr "Componi"
-
-#: src/ui/new-call-box.ui:120
-msgid "Delete character in front of cursor"
-msgstr "Cancella il carattere davanti al cursore"
-
-#: src/ui/new-call-box.ui:149
+#: src/ui/new-call-box.ui:62
 msgid "SIP Account"
 msgstr "Account SIP"
 
@@ -452,35 +454,37 @@ msgstr "Chiamata interrotta (ID errato o
 msgid "Call disconnected (error setting up audio channel)"
 msgstr "Chiamata interrotta (errore di impostazione del canale audio)"
 
-#: plugins/provider/mm/calls-mm-call.c:81
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
 msgid "Call transferred"
 msgstr "Chiamata trasferita"
 
-#: plugins/provider/mm/calls-mm-call.c:82
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
 msgid "Call deflected"
 msgstr "Chiamata deviata"
 
-#: plugins/provider/mm/calls-mm-call.c:107
+#: plugins/provider/mm/calls-mm-call.c:109
 #, c-format
 msgid "Call disconnected (unknown reason code %i)"
 msgstr "Chiamata interrotta (codice motivo sconosciuto %i)"
 
-#: plugins/provider/mm/calls-mm-provider.c:82
+#: plugins/provider/mm/calls-mm-provider.c:84
 msgid "ModemManager unavailable"
 msgstr "ModemManager non disponibile"
 
-#: plugins/provider/mm/calls-mm-provider.c:84
+#: plugins/provider/mm/calls-mm-provider.c:86
 #: plugins/provider/ofono/calls-ofono-provider.c:96
 msgid "No voice-capable modem available"
 msgstr "Nessun modem vocale disponibile"
 
-#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/mm/calls-mm-provider.c:88
 #: plugins/provider/ofono/calls-ofono-provider.c:98
 msgid "Normal"
 msgstr "Normale"
 
-#: plugins/provider/mm/calls-mm-provider.c:445
-#: plugins/provider/ofono/calls-ofono-provider.c:543
+#: plugins/provider/mm/calls-mm-provider.c:456
+#: plugins/provider/ofono/calls-ofono-provider.c:546
 msgid "Initialized"
 msgstr "Inizializzato"
 
diff -pruN 43.0-1/po/ka.po 44~alpha.1-1/po/ka.po
--- 43.0-1/po/ka.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/ka.po	2023-01-12 09:50:29.000000000 +0000
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
-"POT-Creation-Date: 2022-08-11 20:00+0000\n"
-"PO-Revision-Date: 2022-08-12 07:42+0200\n"
+"POT-Creation-Date: 2022-11-18 15:34+0000\n"
+"PO-Revision-Date: 2022-11-19 06:28+0100\n"
 "Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
 "Language-Team: \n"
 "Language: ka\n"
@@ -16,10 +16,10 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 3.1.1\n"
+"X-Generator: Poedit 3.2\n"
 
 #: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
-#: src/calls-application.c:438 src/ui/call-window.ui:9 src/ui/main-window.ui:7
+#: src/calls-application.c:457 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "ზარები"
 
@@ -194,41 +194,54 @@ msgstr "გათიშვა დას
 msgid "Internal error occurred"
 msgstr "შიდა შეცდომა"
 
-#: src/calls-application.c:319
+#: src/calls-account-overview.c:177
+#, c-format
+msgid "Edit account: %s"
+msgstr "ანგარიშის ჩასწორება: %s"
+
+#: src/calls-account-overview.c:184
+msgid "Add new account"
+msgstr "ახალი ანგარიშის დამატება"
+
+#: src/calls-account-overview.c:376
+msgid "Account overview"
+msgstr "ანგარიშის მიმოხილვა"
+
+#: src/calls-application.c:327
 #, c-format
 msgid "Tried dialing invalid tel URI `%s'"
 msgstr "ვცადე დამერეკა არასწორ ტელეფონის URL-ზე '%s'"
 
-#: src/calls-application.c:636
+#: src/calls-application.c:660
 #, c-format
 msgid "Don't know how to open `%s'"
 msgstr "არ ვიცი, როგორ გავხსნა '%s'"
 
-#: src/calls-application.c:690
+#: src/calls-application.c:717
 msgid "The name of the plugin to use as a call provider"
 msgstr "დამატების სახელი, რომელიც მოგცემთ დარეკვის საშუალებას"
 
-#: src/calls-application.c:691
+#: src/calls-application.c:718
 msgid "PLUGIN"
 msgstr "დამატება"
 
-#: src/calls-application.c:696
+#: src/calls-application.c:723
 msgid "Whether to present the main window on startup"
 msgstr "გაშვებისას მთავარი ფანჯრის ჩვენება"
 
-#: src/calls-application.c:702
+#: src/calls-application.c:729
 msgid "Dial a telephone number"
 msgstr "ტელეფონის ნომერზე დარეკვა"
 
-#: src/calls-application.c:703
+#: src/calls-application.c:730
 msgid "NUMBER"
 msgstr "ნომერი"
 
-#: src/calls-application.c:708
+#: src/calls-application.c:735
 msgid "Enable verbose debug messages"
 msgstr "გამართვის გაფართებული შეტყობინებების ჩართვა"
 
-#: src/calls-application.c:714
+#: src/calls-application.c:741
 msgid "Print current version"
 msgstr "მიმდინარე ვერსიის დაბეჭდვა"
 
@@ -380,27 +393,16 @@ msgstr "_კლავიატური
 msgid "_Help"
 msgstr "_დახმარება"
 
+#. "Calls" is the application name, do not translate
 #: src/ui/main-window.ui:239
 msgid "_About Calls"
 msgstr "_ზარების შესახებ"
 
-#: src/ui/new-call-box.ui:45
+#: src/ui/new-call-box.ui:38
 msgid "Enter a VoIP address"
 msgstr "შეიყვანეთ VoIP მისამართი"
 
-#: src/ui/new-call-box.ui:58
-msgid "Enter a number"
-msgstr "შეიყვანეთ ნომერი"
-
-#: src/ui/new-call-box.ui:97
-msgid "Dial"
-msgstr "დარეკვა"
-
-#: src/ui/new-call-box.ui:120
-msgid "Delete character in front of cursor"
-msgstr "კურსორამდე მყოფი სიმბოლოს წაშლა"
-
-#: src/ui/new-call-box.ui:149
+#: src/ui/new-call-box.ui:62
 msgid "SIP Account"
 msgstr "SIP ანგარიში"
 
@@ -412,144 +414,158 @@ msgstr "ახალი ზარი"
 msgid "Back"
 msgstr "უკან"
 
-#: plugins/mm/calls-mm-call.c:73
+#: plugins/provider/mm/calls-mm-call.c:73
 msgid "Unknown reason"
 msgstr "უცნობი მიზეზი"
 
-#: plugins/mm/calls-mm-call.c:74
+#: plugins/provider/mm/calls-mm-call.c:74
 msgid "Outgoing call started"
 msgstr "გამავალი ზარის დასაწყისი"
 
-#: plugins/mm/calls-mm-call.c:75
+#: plugins/provider/mm/calls-mm-call.c:75
 msgid "New incoming call"
 msgstr "ახალი შემომავალი ზარი"
 
-#: plugins/mm/calls-mm-call.c:76
+#: plugins/provider/mm/calls-mm-call.c:76
 msgid "Call accepted"
 msgstr "ზარი მიღებულია"
 
-#: plugins/mm/calls-mm-call.c:77
+#: plugins/provider/mm/calls-mm-call.c:77
 msgid "Call ended"
 msgstr "ზარი დასრულდა"
 
-#: plugins/mm/calls-mm-call.c:78
+#: plugins/provider/mm/calls-mm-call.c:78
 msgid "Call disconnected (busy or call refused)"
 msgstr "ზარი გაითიშა (დაკავება ან უარყოფა)"
 
-#: plugins/mm/calls-mm-call.c:79
+#: plugins/provider/mm/calls-mm-call.c:79
 msgid "Call disconnected (wrong id or network problem)"
 msgstr "ზარი გაითიშა (არასწორი ნომერი ან ქსელის პრობლემა)"
 
-#: plugins/mm/calls-mm-call.c:80
+#: plugins/provider/mm/calls-mm-call.c:80
 msgid "Call disconnected (error setting up audio channel)"
 msgstr "ზარი გაითიშა (შეცდომა აუდიო არხის აწყობისას)"
 
-#: plugins/mm/calls-mm-call.c:81
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
 msgid "Call transferred"
 msgstr "ზარი გადამისამართებულია"
 
-#: plugins/mm/calls-mm-call.c:82
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
 msgid "Call deflected"
 msgstr "ზარი აცილებულია"
 
-#: plugins/mm/calls-mm-call.c:107
+#: plugins/provider/mm/calls-mm-call.c:109
 #, c-format
 msgid "Call disconnected (unknown reason code %i)"
 msgstr "ზარი გაითიშა (მიზეზის უცნობი კოდი %i)"
 
-#: plugins/mm/calls-mm-provider.c:82
+#: plugins/provider/mm/calls-mm-provider.c:84
 msgid "ModemManager unavailable"
 msgstr "ModemManager-ი მიუწვდომელია"
 
-#: plugins/mm/calls-mm-provider.c:84 plugins/ofono/calls-ofono-provider.c:96
+#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/ofono/calls-ofono-provider.c:96
 msgid "No voice-capable modem available"
 msgstr "მოდემი ზარის მხარდაჭერით ხელმიუწვდომელია"
 
-#: plugins/mm/calls-mm-provider.c:86 plugins/ofono/calls-ofono-provider.c:98
+#: plugins/provider/mm/calls-mm-provider.c:88
+#: plugins/provider/ofono/calls-ofono-provider.c:98
 msgid "Normal"
 msgstr "ნორმალური"
 
-#: plugins/mm/calls-mm-provider.c:445 plugins/ofono/calls-ofono-provider.c:543
+#: plugins/provider/mm/calls-mm-provider.c:456
+#: plugins/provider/ofono/calls-ofono-provider.c:546
 msgid "Initialized"
 msgstr "ინიციალიზაცია დასრულდა"
 
-#: plugins/ofono/calls-ofono-provider.c:94
+#: plugins/provider/ofono/calls-ofono-provider.c:94
 msgid "DBus unavailable"
 msgstr "DBus-ი მიუწვდომელია"
 
-#: plugins/sip/calls-sip-account-widget.c:668
+#: plugins/provider/sip/calls-sip-account-widget.c:668
 msgid "No encryption"
 msgstr "დაშიფვრის გარეშე"
 
 #. TODO Optional encryption
-#: plugins/sip/calls-sip-account-widget.c:675
+#: plugins/provider/sip/calls-sip-account-widget.c:675
 msgid "Force encryption"
 msgstr "ძალით დაშიფვრა"
 
-#: plugins/sip/calls-sip-call.c:123
+#: plugins/provider/sip/calls-sip-call.c:123
 msgid "Cryptographic key exchange unsuccessful"
 msgstr "კრიპტოგრაფიული გასაღების მიმოცვლის შეცდომა"
 
-#: plugins/sip/sip-account-widget.ui:11
+#: plugins/provider/sip/sip-account-widget.ui:11
 msgid "Add Account"
 msgstr "ანგარიშის დამატება"
 
-#: plugins/sip/sip-account-widget.ui:17
+#: plugins/provider/sip/sip-account-widget.ui:17
 msgid "_Log In"
 msgstr "_შესვლა"
 
-#: plugins/sip/sip-account-widget.ui:42
+#: plugins/provider/sip/sip-account-widget.ui:42
 msgid "Manage Account"
 msgstr "ანგარიშის მართვა"
 
-#: plugins/sip/sip-account-widget.ui:47
+#: plugins/provider/sip/sip-account-widget.ui:47
 msgid "_Apply"
 msgstr "_გადატარება"
 
-#: plugins/sip/sip-account-widget.ui:61
+#: plugins/provider/sip/sip-account-widget.ui:61
 msgid "_Delete"
 msgstr "_წაშლა"
 
-#: plugins/sip/sip-account-widget.ui:91
+#: plugins/provider/sip/sip-account-widget.ui:91
 msgid "Server"
 msgstr "სერვერი"
 
-#: plugins/sip/sip-account-widget.ui:109
+#: plugins/provider/sip/sip-account-widget.ui:109
 msgid "Display Name"
 msgstr "საჩვენებელი სახელი"
 
-#: plugins/sip/sip-account-widget.ui:110
+#: plugins/provider/sip/sip-account-widget.ui:110
 msgid "Optional"
 msgstr "არასავალდებულო"
 
-#: plugins/sip/sip-account-widget.ui:128
+#: plugins/provider/sip/sip-account-widget.ui:128
 msgid "User ID"
 msgstr "მომხმარებლის ID"
 
-#: plugins/sip/sip-account-widget.ui:141
+#: plugins/provider/sip/sip-account-widget.ui:141
 msgid "Password"
 msgstr "პაროლი"
 
-#: plugins/sip/sip-account-widget.ui:166
+#: plugins/provider/sip/sip-account-widget.ui:166
 msgid "Port"
 msgstr "პორტი"
 
-#: plugins/sip/sip-account-widget.ui:182
+#: plugins/provider/sip/sip-account-widget.ui:182
 msgid "Transport"
 msgstr "ტრანსპორტი"
 
-#: plugins/sip/sip-account-widget.ui:189
+#: plugins/provider/sip/sip-account-widget.ui:189
 msgid "Media Encryption"
 msgstr "მედიის დაშიფვრა"
 
-#: plugins/sip/sip-account-widget.ui:201
+#: plugins/provider/sip/sip-account-widget.ui:201
 msgid "Use for Phone Calls"
 msgstr "ზარებისთვის გამოყენება"
 
-#: plugins/sip/sip-account-widget.ui:214
+#: plugins/provider/sip/sip-account-widget.ui:214
 msgid "Automatically Connect"
 msgstr "ავტომატური მიერთება"
 
+#~ msgid "Enter a number"
+#~ msgstr "შეიყვანეთ ნომერი"
+
+#~ msgid "Dial"
+#~ msgstr "დარეკვა"
+
+#~ msgid "Delete character in front of cursor"
+#~ msgstr "კურსორამდე მყოფი სიმბოლოს წაშლა"
+
 #~ msgid "Call disconnected (unknown reason)"
 #~ msgstr "ზარი გაითიშა (მიზეზი უცნობია)"
 
diff -pruN 43.0-1/po/LINGUAS 44~alpha.1-1/po/LINGUAS
--- 43.0-1/po/LINGUAS	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/LINGUAS	2023-01-12 09:50:29.000000000 +0000
@@ -1,3 +1,4 @@
+be
 ca
 cs
 da
@@ -6,6 +7,7 @@ el
 en_GB
 eo
 es
+eu
 fa
 fi
 fr
@@ -33,3 +35,5 @@ sr
 sv
 tr
 uk
+zh_CN
+zh_TW
diff -pruN 43.0-1/po/pl.po 44~alpha.1-1/po/pl.po
--- 43.0-1/po/pl.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/pl.po	2023-01-12 09:50:29.000000000 +0000
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: calls\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
-"POT-Creation-Date: 2022-08-05 08:41+0000\n"
-"PO-Revision-Date: 2022-08-07 15:02+0200\n"
+"POT-Creation-Date: 2022-11-18 15:34+0000\n"
+"PO-Revision-Date: 2022-11-20 14:54+0100\n"
 "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
 "Language-Team: Polish <community-poland@mozilla.org>\n"
 "Language: pl\n"
@@ -20,7 +20,7 @@ msgstr ""
 "|| n%100>=20) ? 1 : 2);\n"
 
 #: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
-#: src/calls-application.c:438 src/ui/call-window.ui:9 src/ui/main-window.ui:7
+#: src/calls-application.c:457 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "Rozmowy"
 
@@ -198,41 +198,54 @@ msgstr "Ukończono rozłączanie"
 msgid "Internal error occurred"
 msgstr "Wystąpił wewnętrzny błąd"
 
-#: src/calls-application.c:319
+#: src/calls-account-overview.c:177
+#, c-format
+msgid "Edit account: %s"
+msgstr "Modyfikacja konta: %s"
+
+#: src/calls-account-overview.c:184
+msgid "Add new account"
+msgstr "Dodanie nowego konta"
+
+#: src/calls-account-overview.c:376
+msgid "Account overview"
+msgstr "Przegląd konta"
+
+#: src/calls-application.c:327
 #, c-format
 msgid "Tried dialing invalid tel URI `%s'"
 msgstr "Próbowano zadzwonić na nieprawidłowy adres URI tel: „%s”"
 
-#: src/calls-application.c:636
+#: src/calls-application.c:660
 #, c-format
 msgid "Don't know how to open `%s'"
 msgstr "Nie wiadomo, jak otwierać „%s”"
 
-#: src/calls-application.c:690
+#: src/calls-application.c:717
 msgid "The name of the plugin to use as a call provider"
 msgstr "Nazwa wtyczki używanej jako dostawca połączeń"
 
-#: src/calls-application.c:691
+#: src/calls-application.c:718
 msgid "PLUGIN"
 msgstr "WTYCZKA"
 
-#: src/calls-application.c:696
+#: src/calls-application.c:723
 msgid "Whether to present the main window on startup"
 msgstr "Czy wyświetlać główne okno po uruchomieniu"
 
-#: src/calls-application.c:702
+#: src/calls-application.c:729
 msgid "Dial a telephone number"
 msgstr "Dzwoni na numer telefonu"
 
-#: src/calls-application.c:703
+#: src/calls-application.c:730
 msgid "NUMBER"
 msgstr "NUMER"
 
-#: src/calls-application.c:708
+#: src/calls-application.c:735
 msgid "Enable verbose debug messages"
 msgstr "Włącza obszerne komunikaty debugowania"
 
-#: src/calls-application.c:714
+#: src/calls-application.c:741
 msgid "Print current version"
 msgstr "Wyświetla obecną wersję"
 
@@ -384,27 +397,16 @@ msgstr "_Skróty klawiszowe"
 msgid "_Help"
 msgstr "Pomo_c"
 
+#. "Calls" is the application name, do not translate
 #: src/ui/main-window.ui:239
 msgid "_About Calls"
 msgstr "_O programie"
 
-#: src/ui/new-call-box.ui:45
+#: src/ui/new-call-box.ui:38
 msgid "Enter a VoIP address"
 msgstr "Wpisz adres VoIP"
 
-#: src/ui/new-call-box.ui:58
-msgid "Enter a number"
-msgstr "Wpisz numer"
-
-#: src/ui/new-call-box.ui:97
-msgid "Dial"
-msgstr "Zadzwoń"
-
-#: src/ui/new-call-box.ui:120
-msgid "Delete character in front of cursor"
-msgstr "Usuń znak przed kursorem"
-
-#: src/ui/new-call-box.ui:149
+#: src/ui/new-call-box.ui:62
 msgid "SIP Account"
 msgstr "Konto SIP"
 
@@ -416,143 +418,148 @@ msgstr "Nowe połączenie"
 msgid "Back"
 msgstr "Wstecz"
 
-#: plugins/mm/calls-mm-call.c:73
+#: plugins/provider/mm/calls-mm-call.c:73
 msgid "Unknown reason"
 msgstr "Nieznany powód"
 
-#: plugins/mm/calls-mm-call.c:74
+#: plugins/provider/mm/calls-mm-call.c:74
 msgid "Outgoing call started"
 msgstr "Rozpoczęto połączenie wychodzące"
 
-#: plugins/mm/calls-mm-call.c:75
+#: plugins/provider/mm/calls-mm-call.c:75
 msgid "New incoming call"
 msgstr "Nowe połączenie przychodzące"
 
-#: plugins/mm/calls-mm-call.c:76
+#: plugins/provider/mm/calls-mm-call.c:76
 msgid "Call accepted"
 msgstr "Odebrano połączenie"
 
-#: plugins/mm/calls-mm-call.c:77
+#: plugins/provider/mm/calls-mm-call.c:77
 msgid "Call ended"
 msgstr "Zakończono połączenie"
 
-#: plugins/mm/calls-mm-call.c:78
+#: plugins/provider/mm/calls-mm-call.c:78
 msgid "Call disconnected (busy or call refused)"
 msgstr ""
 "Połączenie został rozłączone (numer jest zajęty lub odrzucił połączenie)"
 
-#: plugins/mm/calls-mm-call.c:79
+#: plugins/provider/mm/calls-mm-call.c:79
 msgid "Call disconnected (wrong id or network problem)"
 msgstr "Połączenie został rozłączone (błędny identyfikator lub problem sieci)"
 
-#: plugins/mm/calls-mm-call.c:80
+#: plugins/provider/mm/calls-mm-call.c:80
 msgid "Call disconnected (error setting up audio channel)"
 msgstr ""
 "Połączenie został rozłączone (błąd podczas konfigurowania kanału dźwięku)"
 
-#: plugins/mm/calls-mm-call.c:81
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
 msgid "Call transferred"
 msgstr "Połączenie zostało przekazane"
 
 # FIXME not sure about this
-#: plugins/mm/calls-mm-call.c:82
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
 msgid "Call deflected"
 msgstr "Połączenie zostało odbite"
 
-#: plugins/mm/calls-mm-call.c:107
+#: plugins/provider/mm/calls-mm-call.c:109
 #, c-format
 msgid "Call disconnected (unknown reason code %i)"
 msgstr "Połączenie został rozłączone (nieznany kod powodu %i)"
 
-#: plugins/mm/calls-mm-provider.c:82
+#: plugins/provider/mm/calls-mm-provider.c:84
 msgid "ModemManager unavailable"
 msgstr "Usługa ModemManager jest niedostępna"
 
-#: plugins/mm/calls-mm-provider.c:84 plugins/ofono/calls-ofono-provider.c:96
+#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/ofono/calls-ofono-provider.c:96
 msgid "No voice-capable modem available"
 msgstr "Brak dostępnych modemów z obsługą głosu"
 
-#: plugins/mm/calls-mm-provider.c:86 plugins/ofono/calls-ofono-provider.c:98
+#: plugins/provider/mm/calls-mm-provider.c:88
+#: plugins/provider/ofono/calls-ofono-provider.c:98
 msgid "Normal"
 msgstr "Zwykły"
 
-#: plugins/mm/calls-mm-provider.c:445 plugins/ofono/calls-ofono-provider.c:543
+#: plugins/provider/mm/calls-mm-provider.c:456
+#: plugins/provider/ofono/calls-ofono-provider.c:546
 msgid "Initialized"
 msgstr "Zainicjowano"
 
-#: plugins/ofono/calls-ofono-provider.c:94
+#: plugins/provider/ofono/calls-ofono-provider.c:94
 msgid "DBus unavailable"
 msgstr "Usługa D-Bus jest niedostępna"
 
-#: plugins/sip/calls-sip-account-widget.c:668
+#: plugins/provider/sip/calls-sip-account-widget.c:668
 msgid "No encryption"
 msgstr "Bez szyfrowania"
 
 #. TODO Optional encryption
-#: plugins/sip/calls-sip-account-widget.c:675
+#: plugins/provider/sip/calls-sip-account-widget.c:675
 msgid "Force encryption"
 msgstr "Wymuszenie szyfrowania"
 
-#: plugins/sip/calls-sip-call.c:123
+#: plugins/provider/sip/calls-sip-call.c:123
 msgid "Cryptographic key exchange unsuccessful"
 msgstr "Wymiana klucza kryptograficznego się nie powiodła"
 
-#: plugins/sip/sip-account-widget.ui:11
+#: plugins/provider/sip/sip-account-widget.ui:11
 msgid "Add Account"
 msgstr "Dodanie konta"
 
-#: plugins/sip/sip-account-widget.ui:17
+#: plugins/provider/sip/sip-account-widget.ui:17
 msgid "_Log In"
 msgstr "_Zaloguj się"
 
-#: plugins/sip/sip-account-widget.ui:42
+#: plugins/provider/sip/sip-account-widget.ui:42
 msgid "Manage Account"
 msgstr "Zarządzanie kontem"
 
-#: plugins/sip/sip-account-widget.ui:47
+#: plugins/provider/sip/sip-account-widget.ui:47
 msgid "_Apply"
 msgstr "_Zastosuj"
 
-#: plugins/sip/sip-account-widget.ui:61
+#: plugins/provider/sip/sip-account-widget.ui:61
 msgid "_Delete"
 msgstr "_Usuń"
 
-#: plugins/sip/sip-account-widget.ui:91
+#: plugins/provider/sip/sip-account-widget.ui:91
 msgid "Server"
 msgstr "Serwer"
 
-#: plugins/sip/sip-account-widget.ui:109
+#: plugins/provider/sip/sip-account-widget.ui:109
 msgid "Display Name"
 msgstr "Wyświetlana nazwa"
 
-#: plugins/sip/sip-account-widget.ui:110
+#: plugins/provider/sip/sip-account-widget.ui:110
 msgid "Optional"
 msgstr "Opcjonalne"
 
-#: plugins/sip/sip-account-widget.ui:128
+#: plugins/provider/sip/sip-account-widget.ui:128
 msgid "User ID"
 msgstr "Identyfikator użytkownika"
 
-#: plugins/sip/sip-account-widget.ui:141
+#: plugins/provider/sip/sip-account-widget.ui:141
 msgid "Password"
 msgstr "Hasło"
 
-#: plugins/sip/sip-account-widget.ui:166
+#: plugins/provider/sip/sip-account-widget.ui:166
 msgid "Port"
 msgstr "Port"
 
-#: plugins/sip/sip-account-widget.ui:182
+#: plugins/provider/sip/sip-account-widget.ui:182
 msgid "Transport"
 msgstr "Protokół"
 
-#: plugins/sip/sip-account-widget.ui:189
+#: plugins/provider/sip/sip-account-widget.ui:189
 msgid "Media Encryption"
 msgstr "Szyfrowanie multimediów"
 
-#: plugins/sip/sip-account-widget.ui:201
+#: plugins/provider/sip/sip-account-widget.ui:201
 msgid "Use for Phone Calls"
 msgstr "Używanie do połączeń telefonicznych"
 
-#: plugins/sip/sip-account-widget.ui:214
+#: plugins/provider/sip/sip-account-widget.ui:214
 msgid "Automatically Connect"
 msgstr "Łączenie automatyczne"
diff -pruN 43.0-1/po/POTFILES.in 44~alpha.1-1/po/POTFILES.in
--- 43.0-1/po/POTFILES.in	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/POTFILES.in	2023-01-12 09:50:29.000000000 +0000
@@ -4,6 +4,7 @@ data/org.gnome.Calls-daemon.desktop.in
 data/org.gnome.Calls.metainfo.xml
 data/org.gnome.Calls.gschema.xml
 src/calls-account.c
+src/calls-account-overview.c
 src/calls-application.c
 src/calls-best-match.c
 src/calls-call-record-row.c
diff -pruN 43.0-1/po/pt_BR.po 44~alpha.1-1/po/pt_BR.po
--- 43.0-1/po/pt_BR.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/pt_BR.po	2023-01-12 09:50:29.000000000 +0000
@@ -9,8 +9,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: calls master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
-"POT-Creation-Date: 2022-01-18 02:44+0000\n"
-"PO-Revision-Date: 2022-01-24 19:35-0300\n"
+"POT-Creation-Date: 2022-11-18 15:34+0000\n"
+"PO-Revision-Date: 2022-05-08 22:28-0300\n"
 "Last-Translator: Matheus Barbosa <mdpb.matheus@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
 "Language: pt_BR\n"
@@ -20,8 +20,8 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n > 1)\n"
 "X-Generator: Gtranslator 40.0\n"
 
-#: data/org.gnome.Calls.desktop.in:3 src/calls-application.c:383
-#: src/ui/call-window.ui:9 src/ui/main-window.ui:7
+#: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
+#: src/calls-application.c:457 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "Chamadas"
 
@@ -33,7 +33,7 @@ msgstr "Telefone"
 msgid "A phone dialer and call handler"
 msgstr "Discador de telefone e identificador de chamadas"
 
-#. Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon.
+#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
 #: data/org.gnome.Calls.desktop.in:7 data/org.gnome.Calls-daemon.desktop.in:7
 msgid "Telephone;Call;Phone;Dial;Dialer;PSTN;"
 msgstr "Telefone;Chamada;Fone;Discagem;Discador;RPTC;"
@@ -47,102 +47,213 @@ msgstr "Chamadas (daemon)"
 msgid "A phone dialer and call handler (daemon mode)"
 msgstr "Discador de telefone e identificador de chamadas (modo daemon)"
 
-#: plugins/sip/sip-account-widget.ui:11
-msgid "Add Account"
-msgstr "Adicionar conta"
-
-#: plugins/sip/sip-account-widget.ui:17
-msgid "_Log In"
-msgstr "_Conectar"
-
-#: plugins/sip/sip-account-widget.ui:42
-msgid "Manage Account"
-msgstr "Gerenciar conta"
-
-#: plugins/sip/sip-account-widget.ui:47
-msgid "_Apply"
-msgstr "_Aplicar"
-
-#: plugins/sip/sip-account-widget.ui:61
-msgid "_Delete"
-msgstr "_Excluir"
-
-#: plugins/sip/sip-account-widget.ui:91
-msgid "Server"
-msgstr "Servidor"
-
-#: plugins/sip/sip-account-widget.ui:109
-msgid "Display Name"
-msgstr "Nome de exibição"
-
-#: plugins/sip/sip-account-widget.ui:110
-msgid "Optional"
-msgstr "Opcional"
+#: data/org.gnome.Calls.metainfo.xml:7
+msgid "Make phone and SIP calls"
+msgstr "Faça chamadas por telefone e SIP"
 
-#: plugins/sip/sip-account-widget.ui:128
-msgid "User ID"
-msgstr "ID do usuário"
+#: data/org.gnome.Calls.metainfo.xml:10
+msgid ""
+"Calls is a simple, elegant phone dialer and call handler for GNOME. It can "
+"be used with a cellular modem for plain old telephone calls as well as VoIP "
+"calls using the SIP protocol."
+msgstr ""
+"Chamadas é um simples, e elegante discador e manipulador de chamadas para "
+"GNOME. Ele pode ser utilizado com um modem celular para as antigas chamadas "
+"telefonicas, assim como chamadas VoIP utilizando o protocolo SIP."
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:26
+msgid "Placing a call"
+msgstr "Fazendo uma chamada"
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:31
+msgid "The call history"
+msgstr "O histórico de chamada"
+
+#: data/org.gnome.Calls.gschema.xml:7 data/org.gnome.Calls.gschema.xml:8
+msgid "Whether calls should automatically use the default origin"
+msgstr "Se as chamadas devem automaticamente usar a origem padrão"
+
+#: data/org.gnome.Calls.gschema.xml:13
+msgid "The country code as reported by the modem"
+msgstr "O código do país como reportado pelo modem"
+
+#: data/org.gnome.Calls.gschema.xml:14
+msgid "The country code is used for contact name lookup"
+msgstr "O código do país é utilizado para observar o nome do contato"
+
+#: data/org.gnome.Calls.gschema.xml:19
+msgid "The plugins to load automatically"
+msgstr "Os plugins para carregar automaticamente"
+
+#: data/org.gnome.Calls.gschema.xml:20
+msgid "These plugins will be automatically loaded on application startup."
+msgstr "Estes plugins serão automaticamente carregados no início do aplicativo."
+
+#: data/org.gnome.Calls.gschema.xml:25
+msgid "Audio codecs to use for VoIP calls in order of preference"
+msgstr "Codecs de áudio para utilizar em chamadas VoIP na ordem de preferência"
 
-#: plugins/sip/sip-account-widget.ui:141
-msgid "Password"
-msgstr "Senha"
+#: data/org.gnome.Calls.gschema.xml:26
+msgid "The preferred audio codecs to use for VoIP calls (if available)"
+msgstr ""
+"Os codecs de áudio preferidos para utilizar em chamadas VoIP (caso "
+"disponível)"
 
-#: plugins/sip/sip-account-widget.ui:161
-msgid "Port"
-msgstr "Porta"
+#: data/org.gnome.Calls.gschema.xml:31
+msgid "Whether to allow using SDES for SRTP without TLS as the transport"
+msgstr "Se deve permitir o uso de SDES para SRTP sem TLS como o transporte"
+
+#: data/org.gnome.Calls.gschema.xml:32
+msgid "Set to true if you want to allow with keys exchanged in cleartext."
+msgstr "Defina como verdadeiro se você quiser permitir com chaves trocadas em texto simples."
+
+#: src/calls-account.c:163
+msgid "Default (uninitialized) state"
+msgstr "Estado (não inicializado) padrão"
+
+#: src/calls-account.c:166
+msgid "Initializing account…"
+msgstr "Inicializando conta…"
+
+#: src/calls-account.c:169
+msgid "Uninitializing account…"
+msgstr "Desinicializando conta…"
+
+#: src/calls-account.c:172
+msgid "Connecting to server…"
+msgstr "Conectando ao servidor…"
+
+#: src/calls-account.c:175
+msgid "Account is online"
+msgstr "A conta está online"
+
+#: src/calls-account.c:178
+msgid "Disconnecting from server…"
+msgstr "Desconectando do servidor…"
+
+#: src/calls-account.c:181
+msgid "Account is offline"
+msgstr "A conta está offline"
+
+#: src/calls-account.c:184
+msgid "Account encountered an error"
+msgstr "A conta encontrou um erro"
+
+#: src/calls-account.c:202
+msgid "No reason given"
+msgstr "Razão não informada"
+
+#: src/calls-account.c:205
+msgid "Initialization started"
+msgstr "Inicialização iniciada"
+
+#: src/calls-account.c:208
+msgid "Initialization complete"
+msgstr "Inicialização concluída"
+
+#: src/calls-account.c:211
+msgid "Uninitialization started"
+msgstr "Desinicialização iniciada"
+
+#: src/calls-account.c:214
+msgid "Uninitialization complete"
+msgstr "Desinicialização concluída"
+
+#: src/calls-account.c:217
+msgid "No credentials set"
+msgstr "Credenciais não definidas"
+
+#: src/calls-account.c:220
+msgid "Starting to connect"
+msgstr "Iniciando a conexão"
+
+#: src/calls-account.c:223
+msgid "Connection timed out"
+msgstr "Conexão excedeu o tempo"
+
+#: src/calls-account.c:226
+msgid "Domain name could not be resolved"
+msgstr "O nome de domínio não pôde ser resolvido"
+
+#: src/calls-account.c:229
+msgid "Server did not accept username or password"
+msgstr "O servidor não aceitou o nome de usuário e a senha"
+
+#: src/calls-account.c:232
+msgid "Connecting complete"
+msgstr "Conexão concluída"
+
+#: src/calls-account.c:235
+msgid "Starting to disconnect"
+msgstr "Iniciando a desconexão"
+
+#: src/calls-account.c:238
+msgid "Disconnecting complete"
+msgstr "Desconexão concluída"
+
+#: src/calls-account.c:241
+msgid "Internal error occurred"
+msgstr "Erro interno ocorreu"
 
-#: plugins/sip/sip-account-widget.ui:177
-msgid "Transport"
-msgstr "Transporte"
+#: src/calls-account-overview.c:177
+#, c-format
+msgid "Edit account: %s"
+msgstr "Editar conta: %s"
 
-#: plugins/sip/sip-account-widget.ui:189
-msgid "Use for Phone Calls"
-msgstr "Usar para ligações telefônicas"
+#: src/calls-account-overview.c:184
+msgid "Add new account"
+msgstr "Adicionar nova conta"
+
+#: src/calls-account-overview.c:376
+msgid "Account overview"
+msgstr "Visão geral da conta"
 
-#: src/calls-application.c:548
+#: src/calls-application.c:327
 #, c-format
 msgid "Tried dialing invalid tel URI `%s'"
 msgstr "Tentou discar para um telefone URI “%s” inválido"
 
-#: src/calls-application.c:625
+#: src/calls-application.c:660
 #, c-format
 msgid "Don't know how to open `%s'"
 msgstr "Não foi possível abrir “%s”"
 
-#: src/calls-application.c:679
+#: src/calls-application.c:717
 msgid "The name of the plugin to use as a call provider"
 msgstr "O nome do plugin para usar como o provedor de chamada"
 
-#: src/calls-application.c:680
+#: src/calls-application.c:718
 msgid "PLUGIN"
 msgstr "PLUGIN"
 
-#: src/calls-application.c:685
+#: src/calls-application.c:723
 msgid "Whether to present the main window on startup"
 msgstr "Se deve-se apresentar a janela principal na inicialização"
 
-#: src/calls-application.c:691
+#: src/calls-application.c:729
 msgid "Dial a telephone number"
 msgstr "Disca um número de telefone"
 
-#: src/calls-application.c:692
+#: src/calls-application.c:730
 msgid "NUMBER"
 msgstr "NÚMERO"
 
-#: src/calls-application.c:697
+#: src/calls-application.c:735
 msgid "Enable verbose debug messages"
 msgstr "Habilita mensagens de depuração detalhadas"
 
-#: src/calls-application.c:703
+#: src/calls-application.c:741
 msgid "Print current version"
 msgstr "Exibe a versão atual"
 
 # Troquei o sujeito pela indetificação (o número) porque é mais inteligível do que "chamador desconhecido" ou "pessoa desconhecida"
-#: src/calls-best-match.c:357
+#: src/calls-best-match.c:435
 msgid "Anonymous caller"
 msgstr "Número desconhecido"
 
-#: src/calls-call-record-row.c:110
+#: src/calls-call-record-row.c:97
 #, c-format
 msgid ""
 "%s\n"
@@ -151,64 +262,55 @@ msgstr ""
 "%s\n"
 "ontem"
 
-#: src/calls-main-window.c:124
+#: src/calls-main-window.c:123
 msgid "translator-credits"
 msgstr ""
 "Rafael Fontenelle <rafaelff@gnome.org>\n"
 "Bruno Lopes <brunolopesdsilv@gmail.com>\n"
 "Matheus Barbosa <mdpb.matheus@gmail.com>"
 
-#: src/calls-main-window.c:322
-msgid "Can't place calls: No voice-capable modem available"
-msgstr ""
-"Não é possível fazer chamadas: Nenhum modem com capacidade de voz disponível"
-
-#: src/calls-main-window.c:326
+#: src/calls-main-window.c:316
 msgid "Can't place calls: No modem or VoIP account available"
 msgstr "Não é possível fazer chamadas: Nenhum modem ou conta VoIP disponível"
 
-#: src/calls-main-window.c:331
-msgid "Can't place calls: No backend service"
-msgstr "Não é possível fazer chamadas: Nenhuma serviço de backend"
-
-#: src/calls-main-window.c:335
-msgid "Can't place calls: No plugin"
-msgstr "Não é possível fazer chamadas: Nenhum plugin"
+#: src/calls-main-window.c:318
+msgid "Can't place calls: No plugin loaded"
+msgstr "Não é possível realizar chamadas: Nenhum plugin carregado"
 
-#: src/calls-main-window.c:375
+#: src/calls-main-window.c:353
 msgid "Contacts"
 msgstr "Contatos"
 
-#: src/calls-main-window.c:385
+#: src/calls-main-window.c:363
 msgid "Dial Pad"
 msgstr "Teclado de discagem"
 
 #. Recent as in "Recent calls" (the call history)
-#: src/calls-main-window.c:394
+#: src/calls-main-window.c:372
 msgid "Recent"
 msgstr "Recentes"
 
-#: src/calls-notifier.c:48
+#: src/calls-notifier.c:52
 msgid "Missed call"
 msgstr "Chamada perdida"
 
 #. %s is a name here
-#: src/calls-notifier.c:69
+#: src/calls-notifier.c:76
 #, c-format
 msgid "Missed call from <b>%s</b>"
 msgstr "Chamada perdida de <b>%s</b>"
 
 #. %s is a id here
-#: src/calls-notifier.c:72
+#: src/calls-notifier.c:79
 #, c-format
 msgid "Missed call from %s"
 msgstr "Chamada perdida de %s"
 
-#: src/calls-notifier.c:74
+#: src/calls-notifier.c:81
 msgid "Missed call from unknown caller"
 msgstr "Chamada perdida de número desconhecido"
 
-#: src/calls-notifier.c:80
+#: src/calls-notifier.c:87
 msgid "Call back"
 msgstr "Chamar de volta"
 
@@ -231,28 +333,32 @@ msgstr ""
 "relativamente novo e ainda não está completo (por exemplo, sem mídia "
 "criptografada)."
 
-#: src/ui/account-overview.ui:58 src/ui/account-overview.ui:97
+#: src/ui/account-overview.ui:58 src/ui/account-overview.ui:106
 msgid "_Add Account"
 msgstr "_Adicionar conta"
 
 #. Translators: This is a verb, not a noun. Call the number of the currently selected row.
-#: src/ui/call-record-row.ui:63
+#: src/ui/call-record-row.ui:62
 msgid "Call"
 msgstr "Chamada"
 
-#: src/ui/call-record-row.ui:103
+#: src/ui/call-record-row.ui:102
 msgid "_Delete Call"
 msgstr "Apagar chama_da"
 
 #. Translators: This is a phone number
-#: src/ui/call-record-row.ui:108
+#: src/ui/call-record-row.ui:107
 msgid "_Copy number"
 msgstr "_Copiar número"
 
-#: src/ui/call-record-row.ui:113
+#: src/ui/call-record-row.ui:112
 msgid "_Add contact"
 msgstr "_Adicionar contato"
 
+#: src/ui/call-record-row.ui:117
+msgid "_Send SMS"
+msgstr "_Enviar SMS"
+
 #: src/ui/call-selector-item.ui:38
 msgid "On hold"
 msgstr "Em espera"
@@ -293,27 +399,16 @@ msgstr "Atalhos de _teclado"
 msgid "_Help"
 msgstr "Aj_uda"
 
+#. "Calls" is the application name, do not translate
 #: src/ui/main-window.ui:239
 msgid "_About Calls"
 msgstr "_Sobre o Chamadas"
 
-#: src/ui/new-call-box.ui:45
+#: src/ui/new-call-box.ui:38
 msgid "Enter a VoIP address"
 msgstr "Insira um endereço VoIP"
 
-#: src/ui/new-call-box.ui:58
-msgid "Enter a number"
-msgstr "Insira um número"
-
-#: src/ui/new-call-box.ui:97
-msgid "Dial"
-msgstr "Discar"
-
-#: src/ui/new-call-box.ui:120
-msgid "Delete character in front of cursor"
-msgstr "Excluir caractere na frente do cursor"
-
-#: src/ui/new-call-box.ui:149
+#: src/ui/new-call-box.ui:62
 msgid "SIP Account"
 msgstr "Contas SIP"
 
@@ -325,6 +420,164 @@ msgstr "Nova chamada"
 msgid "Back"
 msgstr "Voltar"
 
+#: plugins/provider/mm/calls-mm-call.c:73
+msgid "Unknown reason"
+msgstr "Razão desconhecida"
+
+#: plugins/provider/mm/calls-mm-call.c:74
+msgid "Outgoing call started"
+msgstr "Chamada de saída iniciada"
+
+#: plugins/provider/mm/calls-mm-call.c:75
+msgid "New incoming call"
+msgstr "Recebendo nova chamada"
+
+#: plugins/provider/mm/calls-mm-call.c:76
+msgid "Call accepted"
+msgstr "Chamar aceita"
+
+#: plugins/provider/mm/calls-mm-call.c:77
+msgid "Call ended"
+msgstr "Chamada encerrada"
+
+#: plugins/provider/mm/calls-mm-call.c:78
+msgid "Call disconnected (busy or call refused)"
+msgstr "Chamada desconectada (ocupado ou ligação recusada)"
+
+#: plugins/provider/mm/calls-mm-call.c:79
+msgid "Call disconnected (wrong id or network problem)"
+msgstr "Chamada desconectada (ID errado ou problema de rede)"
+
+#: plugins/provider/mm/calls-mm-call.c:80
+msgid "Call disconnected (error setting up audio channel)"
+msgstr "Chamada desconectada (erro ao configurar canal de áudio)"
+
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
+msgid "Call transferred"
+msgstr "Chamada transferida"
+
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
+msgid "Call deflected"
+msgstr "Chamada desviada"
+
+#: plugins/provider/mm/calls-mm-call.c:109
+#, c-format
+msgid "Call disconnected (unknown reason code %i)"
+msgstr "Chamada desconectada (código de razão desconhecida %i)"
+
+#: plugins/provider/mm/calls-mm-provider.c:84
+msgid "ModemManager unavailable"
+msgstr "ModemManager não disponível"
+
+#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/ofono/calls-ofono-provider.c:96
+msgid "No voice-capable modem available"
+msgstr "Nenhum modem com capacidade de voz disponível"
+
+#: plugins/provider/mm/calls-mm-provider.c:88
+#: plugins/provider/ofono/calls-ofono-provider.c:98
+msgid "Normal"
+msgstr "Normal"
+
+#: plugins/provider/mm/calls-mm-provider.c:456
+#: plugins/provider/ofono/calls-ofono-provider.c:546
+msgid "Initialized"
+msgstr "Inicializado"
+
+#: plugins/provider/ofono/calls-ofono-provider.c:94
+msgid "DBus unavailable"
+msgstr "DBus não disponível"
+
+#: plugins/provider/sip/calls-sip-account-widget.c:668
+msgid "No encryption"
+msgstr "Sem criptografia"
+
+#. TODO Optional encryption
+#: plugins/provider/sip/calls-sip-account-widget.c:675
+msgid "Force encryption"
+msgstr "Forçar criptografia"
+
+#: plugins/provider/sip/calls-sip-call.c:123
+msgid "Cryptographic key exchange unsuccessful"
+msgstr "Troca de chave criptográfica mal-sucedida"
+
+#: plugins/provider/sip/sip-account-widget.ui:11
+msgid "Add Account"
+msgstr "Adicionar conta"
+
+#: plugins/provider/sip/sip-account-widget.ui:17
+msgid "_Log In"
+msgstr "_Conectar"
+
+#: plugins/provider/sip/sip-account-widget.ui:42
+msgid "Manage Account"
+msgstr "Gerenciar conta"
+
+#: plugins/provider/sip/sip-account-widget.ui:47
+msgid "_Apply"
+msgstr "_Aplicar"
+
+#: plugins/provider/sip/sip-account-widget.ui:61
+msgid "_Delete"
+msgstr "_Excluir"
+
+#: plugins/provider/sip/sip-account-widget.ui:91
+msgid "Server"
+msgstr "Servidor"
+
+#: plugins/provider/sip/sip-account-widget.ui:109
+msgid "Display Name"
+msgstr "Nome de exibição"
+
+#: plugins/provider/sip/sip-account-widget.ui:110
+msgid "Optional"
+msgstr "Opcional"
+
+#: plugins/provider/sip/sip-account-widget.ui:128
+msgid "User ID"
+msgstr "ID do usuário"
+
+#: plugins/provider/sip/sip-account-widget.ui:141
+msgid "Password"
+msgstr "Senha"
+
+#: plugins/provider/sip/sip-account-widget.ui:166
+msgid "Port"
+msgstr "Porta"
+
+#: plugins/provider/sip/sip-account-widget.ui:182
+msgid "Transport"
+msgstr "Transporte"
+
+#: plugins/provider/sip/sip-account-widget.ui:189
+msgid "Media Encryption"
+msgstr "Criptografia da mídia"
+
+#: plugins/provider/sip/sip-account-widget.ui:201
+msgid "Use for Phone Calls"
+msgstr "Usar para ligações telefônicas"
+
+#: plugins/provider/sip/sip-account-widget.ui:214
+msgid "Automatically Connect"
+msgstr "Conectar automaticamente"
+
+#~ msgid "Enter a number"
+#~ msgstr "Insira um número"
+
+#~ msgid "Dial"
+#~ msgstr "Discar"
+
+#~ msgid "Delete character in front of cursor"
+#~ msgstr "Excluir caractere na frente do cursor"
+
+#~ msgid "Call disconnected (unknown reason)"
+#~ msgstr "Ligação desconectada (razão desconhecida)"
+
+#~ msgid "Can't place calls: No backend service"
+#~ msgstr "Não é possível fazer chamadas: Nenhuma serviço de backend"
+
 #~ msgid "Dial a number"
 #~ msgstr "Disca um número"
 
@@ -388,9 +641,6 @@ msgstr "Voltar"
 #~ msgid "Can't place calls: No SIM card"
 #~ msgstr "Não é possível fazer chamadas: Nenhum cartão SIM"
 
-#~ msgid "Incoming call"
-#~ msgstr "Chamada recebida"
-
 #~ msgid "View"
 #~ msgstr "Visão"
 
@@ -438,9 +688,6 @@ msgstr "Voltar"
 #~ msgid "Data for the call this display will be associated with"
 #~ msgstr "Dados para a chamada com a qual esta exibição estará associdada"
 
-#~ msgid "The call to hold"
-#~ msgstr "A chamada a colocar em espera"
-
 #~ msgid "ID"
 #~ msgstr "ID"
 
diff -pruN 43.0-1/po/pt.po 44~alpha.1-1/po/pt.po
--- 43.0-1/po/pt.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/pt.po	2023-01-12 09:50:29.000000000 +0000
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: calls\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
-"POT-Creation-Date: 2022-09-02 16:32+0000\n"
-"PO-Revision-Date: 2022-09-07 14:54+0100\n"
+"POT-Creation-Date: 2022-11-18 15:34+0000\n"
+"PO-Revision-Date: 2022-11-24 14:03+0000\n"
 "Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n"
 "Language-Team: Portuguese < https://l10n.gnome.org/teams/pt/>\n"
 "Language: pt\n"
@@ -17,7 +17,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.0.1\n"
+"X-Generator: Poedit 3.2\n"
 "X-DL-Team: pt\n"
 "X-DL-Module: calls\n"
 "X-DL-Branch: master\n"
@@ -25,7 +25,7 @@ msgstr ""
 "X-DL-State: None\n"
 
 #: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
-#: src/calls-application.c:440 src/ui/call-window.ui:9 src/ui/main-window.ui:7
+#: src/calls-application.c:457 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "Chamadas"
 
@@ -204,41 +204,54 @@ msgstr "Desligar concluído"
 msgid "Internal error occurred"
 msgstr "Ocorreu um erro interno"
 
-#: src/calls-application.c:319
+#: src/calls-account-overview.c:177
+#, c-format
+msgid "Edit account: %s"
+msgstr "Editar conta: %s"
+
+#: src/calls-account-overview.c:184
+msgid "Add new account"
+msgstr "Adicionar nova conta"
+
+#: src/calls-account-overview.c:376
+msgid "Account overview"
+msgstr "Resumo da conta"
+
+#: src/calls-application.c:327
 #, c-format
 msgid "Tried dialing invalid tel URI `%s'"
 msgstr "Tentar marcar URI de tel `%s' inválido"
 
-#: src/calls-application.c:638
+#: src/calls-application.c:660
 #, c-format
 msgid "Don't know how to open `%s'"
 msgstr "Não foi possível abrir '%s'"
 
-#: src/calls-application.c:692
+#: src/calls-application.c:717
 msgid "The name of the plugin to use as a call provider"
 msgstr "O nome da extensão a utilizar para a operadora"
 
-#: src/calls-application.c:693
+#: src/calls-application.c:718
 msgid "PLUGIN"
 msgstr "EXTENSÃO"
 
-#: src/calls-application.c:698
+#: src/calls-application.c:723
 msgid "Whether to present the main window on startup"
 msgstr "Se a janela principal deve ser apresentada no arranque"
 
-#: src/calls-application.c:704
+#: src/calls-application.c:729
 msgid "Dial a telephone number"
 msgstr "Marque um número de telefone"
 
-#: src/calls-application.c:705
+#: src/calls-application.c:730
 msgid "NUMBER"
 msgstr "NÚMERO"
 
-#: src/calls-application.c:710
+#: src/calls-application.c:735
 msgid "Enable verbose debug messages"
 msgstr "Ativar mensagens de depuração detalhadas"
 
-#: src/calls-application.c:716
+#: src/calls-application.c:741
 msgid "Print current version"
 msgstr "Mostrar a versão atual"
 
@@ -396,23 +409,11 @@ msgstr "A_juda"
 msgid "_About Calls"
 msgstr "Acerca do Chamadas"
 
-#: src/ui/new-call-box.ui:45
+#: src/ui/new-call-box.ui:38
 msgid "Enter a VoIP address"
 msgstr "Insira um endereço VoIP"
 
-#: src/ui/new-call-box.ui:58
-msgid "Enter a number"
-msgstr "Insira um número"
-
-#: src/ui/new-call-box.ui:97
-msgid "Dial"
-msgstr "Marcar"
-
-#: src/ui/new-call-box.ui:120
-msgid "Delete character in front of cursor"
-msgstr "Eliminar o carácter à frente do cursor"
-
-#: src/ui/new-call-box.ui:149
+#: src/ui/new-call-box.ui:62
 msgid "SIP Account"
 msgstr "Conta SIP"
 
@@ -456,35 +457,37 @@ msgstr "Chamada desligada ((id errado ou
 msgid "Call disconnected (error setting up audio channel)"
 msgstr "Chamada desligada (erro ao configurar canal de áudio)"
 
-#: plugins/provider/mm/calls-mm-call.c:81
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
 msgid "Call transferred"
 msgstr "Chamada transferida"
 
-#: plugins/provider/mm/calls-mm-call.c:82
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
 msgid "Call deflected"
 msgstr "Chamada desviada"
 
-#: plugins/provider/mm/calls-mm-call.c:107
+#: plugins/provider/mm/calls-mm-call.c:109
 #, c-format
 msgid "Call disconnected (unknown reason code %i)"
 msgstr "Chamada desligada (código do motivo desconhecido %i)"
 
-#: plugins/provider/mm/calls-mm-provider.c:82
+#: plugins/provider/mm/calls-mm-provider.c:84
 msgid "ModemManager unavailable"
 msgstr "ModemManager indisponível"
 
-#: plugins/provider/mm/calls-mm-provider.c:84
+#: plugins/provider/mm/calls-mm-provider.c:86
 #: plugins/provider/ofono/calls-ofono-provider.c:96
 msgid "No voice-capable modem available"
 msgstr "Não há modem com capacidade de voz disponível"
 
-#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/mm/calls-mm-provider.c:88
 #: plugins/provider/ofono/calls-ofono-provider.c:98
 msgid "Normal"
 msgstr "Normal"
 
-#: plugins/provider/mm/calls-mm-provider.c:445
-#: plugins/provider/ofono/calls-ofono-provider.c:543
+#: plugins/provider/mm/calls-mm-provider.c:456
+#: plugins/provider/ofono/calls-ofono-provider.c:546
 msgid "Initialized"
 msgstr "Inicializado"
 
@@ -565,6 +568,15 @@ msgstr "Uso para chamadas telefónicas"
 msgid "Automatically Connect"
 msgstr "Ligar automaticamente"
 
+#~ msgid "Enter a number"
+#~ msgstr "Insira um número"
+
+#~ msgid "Dial"
+#~ msgstr "Marcar"
+
+#~ msgid "Delete character in front of cursor"
+#~ msgstr "Eliminar o carácter à frente do cursor"
+
 #~ msgid "Call disconnected (unknown reason)"
 #~ msgstr "Chamada desligada (motivo desconhecido)"
 
diff -pruN 43.0-1/po/ro.po 44~alpha.1-1/po/ro.po
--- 43.0-1/po/ro.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/ro.po	2023-01-12 09:50:29.000000000 +0000
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: calls master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
-"POT-Creation-Date: 2022-08-05 08:41+0000\n"
-"PO-Revision-Date: 2022-08-15 17:06+0200\n"
+"POT-Creation-Date: 2022-11-18 15:34+0000\n"
+"PO-Revision-Date: 2022-11-20 16:43+0100\n"
 "Last-Translator: Florentina Mușat <florentina.musat.28@gmail.com>\n"
 "Language-Team: Romanian <gnomero-list@lists.sourceforge.net>\n"
 "Language: ro\n"
@@ -20,7 +20,7 @@ msgstr ""
 "X-Generator: Gtranslator 3.38.0\n"
 
 #: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
-#: src/calls-application.c:438 src/ui/call-window.ui:9 src/ui/main-window.ui:7
+#: src/calls-application.c:457 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "Apeluri"
 
@@ -201,41 +201,56 @@ msgstr "Deconectare efectuată"
 msgid "Internal error occurred"
 msgstr "S-a produs o eroare internă"
 
-#: src/calls-application.c:319
+#: src/calls-account-overview.c:177
+#, c-format
+msgid "Edit account: %s"
+msgstr "Modifică contul: %s"
+
+#: src/calls-account-overview.c:184
+#| msgid "Add Account"
+msgid "Add new account"
+msgstr "Adaugă un cont nou"
+
+#: src/calls-account-overview.c:376
+#| msgid "Account is online"
+msgid "Account overview"
+msgstr "Detaliile contului"
+
+#: src/calls-application.c:327
 #, c-format
 msgid "Tried dialing invalid tel URI `%s'"
 msgstr "S-a încercat apelarea un URI telefonic greșit „%s”"
 
-#: src/calls-application.c:636
+#: src/calls-application.c:660
 #, c-format
 msgid "Don't know how to open `%s'"
 msgstr "Nu știu cum să deschid „%s”"
 
-#: src/calls-application.c:690
+#: src/calls-application.c:717
 msgid "The name of the plugin to use as a call provider"
 msgstr "Numele modulului de utilizat ca furnizor de apeluri"
 
-#: src/calls-application.c:691
+#: src/calls-application.c:718
 msgid "PLUGIN"
 msgstr "MODUL"
 
-#: src/calls-application.c:696
+#: src/calls-application.c:723
 msgid "Whether to present the main window on startup"
 msgstr "Dacă să se prezinte fereastra principală la pornire"
 
-#: src/calls-application.c:702
+#: src/calls-application.c:729
 msgid "Dial a telephone number"
 msgstr "Apelează un număr de telefon"
 
-#: src/calls-application.c:703
+#: src/calls-application.c:730
 msgid "NUMBER"
 msgstr "NUMĂR"
 
-#: src/calls-application.c:708
+#: src/calls-application.c:735
 msgid "Enable verbose debug messages"
 msgstr "Permite mesaje detaliate de depanare"
 
-#: src/calls-application.c:714
+#: src/calls-application.c:741
 msgid "Print current version"
 msgstr "Tipărește versiunea actuală"
 
@@ -350,7 +365,6 @@ msgid "_Add contact"
 msgstr "_Adaugă un contact"
 
 #: src/ui/call-record-row.ui:117
-#| msgid "_Send"
 msgid "_Send SMS"
 msgstr "_Trimite SMS"
 
@@ -394,27 +408,16 @@ msgstr "Taste _rapide"
 msgid "_Help"
 msgstr "_Ajutor"
 
+#. "Calls" is the application name, do not translate
 #: src/ui/main-window.ui:239
 msgid "_About Calls"
 msgstr "_Despre Apeluri"
 
-#: src/ui/new-call-box.ui:45
+#: src/ui/new-call-box.ui:38
 msgid "Enter a VoIP address"
 msgstr "Introdu o adresă VoIP"
 
-#: src/ui/new-call-box.ui:58
-msgid "Enter a number"
-msgstr "Introdu un număr"
-
-#: src/ui/new-call-box.ui:97
-msgid "Dial"
-msgstr "Apelează"
-
-#: src/ui/new-call-box.ui:120
-msgid "Delete character in front of cursor"
-msgstr "Șterge caracterul din fața cursorului"
-
-#: src/ui/new-call-box.ui:149
+#: src/ui/new-call-box.ui:62
 msgid "SIP Account"
 msgstr "Cont SIP"
 
@@ -426,140 +429,145 @@ msgstr "Apel nou"
 msgid "Back"
 msgstr "Înapoi"
 
-#: plugins/mm/calls-mm-call.c:73
+#: plugins/provider/mm/calls-mm-call.c:73
 msgid "Unknown reason"
 msgstr "Motiv necunoscut"
 
-#: plugins/mm/calls-mm-call.c:74
+#: plugins/provider/mm/calls-mm-call.c:74
 msgid "Outgoing call started"
 msgstr "Se efectuează apel"
 
-#: plugins/mm/calls-mm-call.c:75
+#: plugins/provider/mm/calls-mm-call.c:75
 msgid "New incoming call"
 msgstr "Se primește apel"
 
-#: plugins/mm/calls-mm-call.c:76
+#: plugins/provider/mm/calls-mm-call.c:76
 msgid "Call accepted"
 msgstr "Apel acceptat"
 
-#: plugins/mm/calls-mm-call.c:77
+#: plugins/provider/mm/calls-mm-call.c:77
 msgid "Call ended"
 msgstr "Apel terminat"
 
-#: plugins/mm/calls-mm-call.c:78
+#: plugins/provider/mm/calls-mm-call.c:78
 msgid "Call disconnected (busy or call refused)"
 msgstr "Apel întrerupt (ocupat sau apel refuzat)"
 
-#: plugins/mm/calls-mm-call.c:79
+#: plugins/provider/mm/calls-mm-call.c:79
 msgid "Call disconnected (wrong id or network problem)"
 msgstr "Apel întrerupt (ID greșit sau problemă de rețea)"
 
-#: plugins/mm/calls-mm-call.c:80
+#: plugins/provider/mm/calls-mm-call.c:80
 msgid "Call disconnected (error setting up audio channel)"
 msgstr "Apel întrerupt (eroare de stabilire a canalului audio)"
 
-#: plugins/mm/calls-mm-call.c:81
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
 msgid "Call transferred"
 msgstr "Apel transferat"
 
-#: plugins/mm/calls-mm-call.c:82
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
 msgid "Call deflected"
 msgstr "Apel deviat"
 
-#: plugins/mm/calls-mm-call.c:107
+#: plugins/provider/mm/calls-mm-call.c:109
 #, c-format
 msgid "Call disconnected (unknown reason code %i)"
 msgstr "Apel întrerupt (codul motivului necunoscut %i)"
 
-#: plugins/mm/calls-mm-provider.c:82
+#: plugins/provider/mm/calls-mm-provider.c:84
 msgid "ModemManager unavailable"
 msgstr "ModemManager indisponibil"
 
-#: plugins/mm/calls-mm-provider.c:84 plugins/ofono/calls-ofono-provider.c:96
+#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/ofono/calls-ofono-provider.c:96
 msgid "No voice-capable modem available"
 msgstr "Nu s-a găsit niciun modem de voce"
 
-#: plugins/mm/calls-mm-provider.c:86 plugins/ofono/calls-ofono-provider.c:98
+#: plugins/provider/mm/calls-mm-provider.c:88
+#: plugins/provider/ofono/calls-ofono-provider.c:98
 msgid "Normal"
 msgstr "Normal"
 
-#: plugins/mm/calls-mm-provider.c:445 plugins/ofono/calls-ofono-provider.c:543
+#: plugins/provider/mm/calls-mm-provider.c:456
+#: plugins/provider/ofono/calls-ofono-provider.c:546
 msgid "Initialized"
 msgstr "Inițializat"
 
-#: plugins/ofono/calls-ofono-provider.c:94
+#: plugins/provider/ofono/calls-ofono-provider.c:94
 msgid "DBus unavailable"
 msgstr "DBus indisponibil"
 
-#: plugins/sip/calls-sip-account-widget.c:668
+#: plugins/provider/sip/calls-sip-account-widget.c:668
 msgid "No encryption"
 msgstr "Fără cifrare"
 
 #. TODO Optional encryption
-#: plugins/sip/calls-sip-account-widget.c:675
+#: plugins/provider/sip/calls-sip-account-widget.c:675
 msgid "Force encryption"
 msgstr "Forțează cifrarea"
 
-#: plugins/sip/calls-sip-call.c:123
+#: plugins/provider/sip/calls-sip-call.c:123
 msgid "Cryptographic key exchange unsuccessful"
 msgstr "Schimbul de chei criptografice nu a reușit"
 
-#: plugins/sip/sip-account-widget.ui:11
+#: plugins/provider/sip/sip-account-widget.ui:11
 msgid "Add Account"
 msgstr "Adaugă un cont"
 
-#: plugins/sip/sip-account-widget.ui:17
+#: plugins/provider/sip/sip-account-widget.ui:17
 msgid "_Log In"
 msgstr "_Conectare"
 
-#: plugins/sip/sip-account-widget.ui:42
+#: plugins/provider/sip/sip-account-widget.ui:42
 msgid "Manage Account"
 msgstr "Gestionare cont"
 
-#: plugins/sip/sip-account-widget.ui:47
+#: plugins/provider/sip/sip-account-widget.ui:47
 msgid "_Apply"
 msgstr "_Aplică"
 
-#: plugins/sip/sip-account-widget.ui:61
+#: plugins/provider/sip/sip-account-widget.ui:61
 msgid "_Delete"
 msgstr "Șt_erge"
 
-#: plugins/sip/sip-account-widget.ui:91
+#: plugins/provider/sip/sip-account-widget.ui:91
 msgid "Server"
 msgstr "Server"
 
-#: plugins/sip/sip-account-widget.ui:109
+#: plugins/provider/sip/sip-account-widget.ui:109
 msgid "Display Name"
 msgstr "Nume afișat"
 
-#: plugins/sip/sip-account-widget.ui:110
+#: plugins/provider/sip/sip-account-widget.ui:110
 msgid "Optional"
 msgstr "Opțional"
 
-#: plugins/sip/sip-account-widget.ui:128
+#: plugins/provider/sip/sip-account-widget.ui:128
 msgid "User ID"
 msgstr "ID utilizator"
 
-#: plugins/sip/sip-account-widget.ui:141
+#: plugins/provider/sip/sip-account-widget.ui:141
 msgid "Password"
 msgstr "Parola"
 
-#: plugins/sip/sip-account-widget.ui:166
+#: plugins/provider/sip/sip-account-widget.ui:166
 msgid "Port"
 msgstr "Port"
 
-#: plugins/sip/sip-account-widget.ui:182
+#: plugins/provider/sip/sip-account-widget.ui:182
 msgid "Transport"
 msgstr "Transport"
 
-#: plugins/sip/sip-account-widget.ui:189
+#: plugins/provider/sip/sip-account-widget.ui:189
 msgid "Media Encryption"
 msgstr "Cifrare conținut media"
 
-#: plugins/sip/sip-account-widget.ui:201
+#: plugins/provider/sip/sip-account-widget.ui:201
 msgid "Use for Phone Calls"
 msgstr "Folosește pentru apeluri"
 
-#: plugins/sip/sip-account-widget.ui:214
+#: plugins/provider/sip/sip-account-widget.ui:214
 msgid "Automatically Connect"
 msgstr "Conectare automată"
diff -pruN 43.0-1/po/ru.po 44~alpha.1-1/po/ru.po
--- 43.0-1/po/ru.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/ru.po	2023-01-12 09:50:29.000000000 +0000
@@ -6,8 +6,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: calls master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
-"POT-Creation-Date: 2022-08-05 08:41+0000\n"
-"PO-Revision-Date: 2022-08-06 14:29+0300\n"
+"POT-Creation-Date: 2022-11-18 15:34+0000\n"
+"PO-Revision-Date: 2022-11-19 00:29+0300\n"
 "Last-Translator: Aleksandr Melman <Alexmelman88@gmail.com>\n"
 "Language-Team: Russian <gnome-cyr@gnome.org>\n"
 "Language: ru\n"
@@ -16,10 +16,10 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Poedit 3.1\n"
+"X-Generator: Poedit 3.2.1\n"
 
 #: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
-#: src/calls-application.c:438 src/ui/call-window.ui:9 src/ui/main-window.ui:7
+#: src/calls-application.c:457 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "Вызовы"
 
@@ -195,41 +195,54 @@ msgstr "Отключение завер
 msgid "Internal error occurred"
 msgstr "Произошла внутренняя ошибка"
 
-#: src/calls-application.c:319
+#: src/calls-account-overview.c:177
+#, c-format
+msgid "Edit account: %s"
+msgstr "Редактировать учетную запись: %s"
+
+#: src/calls-account-overview.c:184
+msgid "Add new account"
+msgstr "Добавить новую учетную запись"
+
+#: src/calls-account-overview.c:376
+msgid "Account overview"
+msgstr "Обзор учетной записи"
+
+#: src/calls-application.c:327
 #, c-format
 msgid "Tried dialing invalid tel URI `%s'"
 msgstr "Попытка набрать недопустимый телефонный URI `%s'"
 
-#: src/calls-application.c:636
+#: src/calls-application.c:660
 #, c-format
 msgid "Don't know how to open `%s'"
 msgstr "Неизвестно как открыть `%s'"
 
-#: src/calls-application.c:690
+#: src/calls-application.c:717
 msgid "The name of the plugin to use as a call provider"
 msgstr "Имя плагина для использования в качестве поставщика вызовов"
 
-#: src/calls-application.c:691
+#: src/calls-application.c:718
 msgid "PLUGIN"
 msgstr "ПЛАГИН"
 
-#: src/calls-application.c:696
+#: src/calls-application.c:723
 msgid "Whether to present the main window on startup"
 msgstr "Показывать ли главное окно при запуске"
 
-#: src/calls-application.c:702
+#: src/calls-application.c:729
 msgid "Dial a telephone number"
 msgstr "Набрать телефонный номер"
 
-#: src/calls-application.c:703
+#: src/calls-application.c:730
 msgid "NUMBER"
 msgstr "НОМЕР"
 
-#: src/calls-application.c:708
+#: src/calls-application.c:735
 msgid "Enable verbose debug messages"
 msgstr "Включить подробные отладочные сообщения"
 
-#: src/calls-application.c:714
+#: src/calls-application.c:741
 msgid "Print current version"
 msgstr "Вывести текущую версию"
 
@@ -379,27 +392,16 @@ msgstr "_Сочетания клавиш
 msgid "_Help"
 msgstr "_Справка"
 
+#. "Calls" is the application name, do not translate
 #: src/ui/main-window.ui:239
 msgid "_About Calls"
 msgstr "_О Программе"
 
-#: src/ui/new-call-box.ui:45
+#: src/ui/new-call-box.ui:38
 msgid "Enter a VoIP address"
 msgstr "Ввести VoIP-адрес"
 
-#: src/ui/new-call-box.ui:58
-msgid "Enter a number"
-msgstr "Ввести номер"
-
-#: src/ui/new-call-box.ui:97
-msgid "Dial"
-msgstr "Набрать"
-
-#: src/ui/new-call-box.ui:120
-msgid "Delete character in front of cursor"
-msgstr "Удалить символ перед курсором"
-
-#: src/ui/new-call-box.ui:149
+#: src/ui/new-call-box.ui:62
 msgid "SIP Account"
 msgstr "Учетная запись SIP"
 
@@ -411,143 +413,157 @@ msgstr "Новый вызов"
 msgid "Back"
 msgstr "Назад"
 
-#: plugins/mm/calls-mm-call.c:73
+#: plugins/provider/mm/calls-mm-call.c:73
 msgid "Unknown reason"
 msgstr "Неизвестная причина"
 
-#: plugins/mm/calls-mm-call.c:74
+#: plugins/provider/mm/calls-mm-call.c:74
 msgid "Outgoing call started"
 msgstr "Начался исходящий вызов"
 
-#: plugins/mm/calls-mm-call.c:75
+#: plugins/provider/mm/calls-mm-call.c:75
 msgid "New incoming call"
 msgstr "Новый входящий вызов"
 
-#: plugins/mm/calls-mm-call.c:76
+#: plugins/provider/mm/calls-mm-call.c:76
 msgid "Call accepted"
 msgstr "Вызов принят"
 
-#: plugins/mm/calls-mm-call.c:77
+#: plugins/provider/mm/calls-mm-call.c:77
 msgid "Call ended"
 msgstr "Вызов завершен"
 
-#: plugins/mm/calls-mm-call.c:78
+#: plugins/provider/mm/calls-mm-call.c:78
 msgid "Call disconnected (busy or call refused)"
 msgstr "Вызов отключен (занят или вызов отклонен)"
 
-#: plugins/mm/calls-mm-call.c:79
+#: plugins/provider/mm/calls-mm-call.c:79
 msgid "Call disconnected (wrong id or network problem)"
 msgstr "Вызов отключен (неправильный id или проблема с сетью)"
 
-#: plugins/mm/calls-mm-call.c:80
+#: plugins/provider/mm/calls-mm-call.c:80
 msgid "Call disconnected (error setting up audio channel)"
 msgstr "Вызов отключен (ошибка настройки аудиоканала)"
 
-#: plugins/mm/calls-mm-call.c:81
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
 msgid "Call transferred"
 msgstr "Вызов перенесен"
 
-#: plugins/mm/calls-mm-call.c:82
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
 msgid "Call deflected"
 msgstr "Вызов отклонен"
 
-#: plugins/mm/calls-mm-call.c:107
+#: plugins/provider/mm/calls-mm-call.c:109
 #, c-format
 msgid "Call disconnected (unknown reason code %i)"
 msgstr "Вызов отключен (код неизвестной причины %i)"
 
-#: plugins/mm/calls-mm-provider.c:82
+#: plugins/provider/mm/calls-mm-provider.c:84
 msgid "ModemManager unavailable"
 msgstr "ModemManager недоступен"
 
-#: plugins/mm/calls-mm-provider.c:84 plugins/ofono/calls-ofono-provider.c:96
+#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/ofono/calls-ofono-provider.c:96
 msgid "No voice-capable modem available"
 msgstr "Нет доступного модема с поддержкой голосовой связи"
 
-#: plugins/mm/calls-mm-provider.c:86 plugins/ofono/calls-ofono-provider.c:98
+#: plugins/provider/mm/calls-mm-provider.c:88
+#: plugins/provider/ofono/calls-ofono-provider.c:98
 msgid "Normal"
 msgstr "Нормальный"
 
-#: plugins/mm/calls-mm-provider.c:445 plugins/ofono/calls-ofono-provider.c:543
+#: plugins/provider/mm/calls-mm-provider.c:456
+#: plugins/provider/ofono/calls-ofono-provider.c:546
 msgid "Initialized"
 msgstr "Инициализированный"
 
-#: plugins/ofono/calls-ofono-provider.c:94
+#: plugins/provider/ofono/calls-ofono-provider.c:94
 msgid "DBus unavailable"
 msgstr "DBus недоступен"
 
-#: plugins/sip/calls-sip-account-widget.c:668
+#: plugins/provider/sip/calls-sip-account-widget.c:668
 msgid "No encryption"
 msgstr "Без шифрования"
 
 #. TODO Optional encryption
-#: plugins/sip/calls-sip-account-widget.c:675
+#: plugins/provider/sip/calls-sip-account-widget.c:675
 msgid "Force encryption"
 msgstr "Принудительное шифрование"
 
-#: plugins/sip/calls-sip-call.c:123
+#: plugins/provider/sip/calls-sip-call.c:123
 msgid "Cryptographic key exchange unsuccessful"
 msgstr "Неудачный обмен криптографическими ключами"
 
-#: plugins/sip/sip-account-widget.ui:11
+#: plugins/provider/sip/sip-account-widget.ui:11
 msgid "Add Account"
 msgstr "Добавить учетную запись"
 
-#: plugins/sip/sip-account-widget.ui:17
+#: plugins/provider/sip/sip-account-widget.ui:17
 msgid "_Log In"
 msgstr "_Войти"
 
-#: plugins/sip/sip-account-widget.ui:42
+#: plugins/provider/sip/sip-account-widget.ui:42
 msgid "Manage Account"
 msgstr "Управление учетной записью"
 
-#: plugins/sip/sip-account-widget.ui:47
+#: plugins/provider/sip/sip-account-widget.ui:47
 msgid "_Apply"
 msgstr "_Применить"
 
-#: plugins/sip/sip-account-widget.ui:61
+#: plugins/provider/sip/sip-account-widget.ui:61
 msgid "_Delete"
 msgstr "_Удалить"
 
-#: plugins/sip/sip-account-widget.ui:91
+#: plugins/provider/sip/sip-account-widget.ui:91
 msgid "Server"
 msgstr "Сервер"
 
-#: plugins/sip/sip-account-widget.ui:109
+#: plugins/provider/sip/sip-account-widget.ui:109
 msgid "Display Name"
 msgstr "Отображаемое имя"
 
-#: plugins/sip/sip-account-widget.ui:110
+#: plugins/provider/sip/sip-account-widget.ui:110
 msgid "Optional"
 msgstr "Дополнительно"
 
-#: plugins/sip/sip-account-widget.ui:128
+#: plugins/provider/sip/sip-account-widget.ui:128
 msgid "User ID"
 msgstr "ID пользователя"
 
-#: plugins/sip/sip-account-widget.ui:141
+#: plugins/provider/sip/sip-account-widget.ui:141
 msgid "Password"
 msgstr "Пароль"
 
-#: plugins/sip/sip-account-widget.ui:166
+#: plugins/provider/sip/sip-account-widget.ui:166
 msgid "Port"
 msgstr "Порт"
 
-#: plugins/sip/sip-account-widget.ui:182
+#: plugins/provider/sip/sip-account-widget.ui:182
 msgid "Transport"
 msgstr "Транспорт"
 
-#: plugins/sip/sip-account-widget.ui:189
+#: plugins/provider/sip/sip-account-widget.ui:189
 msgid "Media Encryption"
 msgstr "Шифрование информации"
 
-#: plugins/sip/sip-account-widget.ui:201
+#: plugins/provider/sip/sip-account-widget.ui:201
 msgid "Use for Phone Calls"
 msgstr "Использовать для телефонных вызовов"
 
-#: plugins/sip/sip-account-widget.ui:214
+#: plugins/provider/sip/sip-account-widget.ui:214
 msgid "Automatically Connect"
 msgstr "Автоматическое подключение"
 
+#~ msgid "Enter a number"
+#~ msgstr "Ввести номер"
+
+#~ msgid "Dial"
+#~ msgstr "Набрать"
+
+#~ msgid "Delete character in front of cursor"
+#~ msgstr "Удалить символ перед курсором"
+
 #~ msgid "Call disconnected (unknown reason)"
 #~ msgstr "Вызов отключен (причина неизвестна)"
diff -pruN 43.0-1/po/sv.po 44~alpha.1-1/po/sv.po
--- 43.0-1/po/sv.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/sv.po	2023-01-12 09:50:29.000000000 +0000
@@ -9,19 +9,19 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
-"POT-Creation-Date: 2022-08-05 08:41+0000\n"
-"PO-Revision-Date: 2022-08-07 12:41+0200\n"
-"Last-Translator: Luna Jernberg <droidbittin@gmail.com>\n"
+"POT-Creation-Date: 2022-11-18 15:34+0000\n"
+"PO-Revision-Date: 2022-11-18 18:46+0100\n"
+"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "Language: sv\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.1\n"
+"X-Generator: Poedit 3.2\n"
 
 #: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
-#: src/calls-application.c:438 src/ui/call-window.ui:9 src/ui/main-window.ui:7
+#: src/calls-application.c:457 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "Samtal"
 
@@ -51,14 +51,8 @@ msgid "Make phone and SIP calls"
 msgstr "Ring telefon- och SIP-samtal"
 
 #: data/org.gnome.Calls.metainfo.xml:10
-msgid ""
-"Calls is a simple, elegant phone dialer and call handler for GNOME. It can "
-"be used with a cellular modem for plain old telephone calls as well as VoIP "
-"calls using the SIP protocol."
-msgstr ""
-"Samtal är en enkel, elegant telefonuppringare och samtalshanterare för "
-"GNOME. Den kan användas med ett mobilmodem för vanliga telefonsamtal såväl "
-"som VoIP-samtal med SIP-protokollet."
+msgid "Calls is a simple, elegant phone dialer and call handler for GNOME. It can be used with a cellular modem for plain old telephone calls as well as VoIP calls using the SIP protocol."
+msgstr "Samtal är en enkel, elegant telefonuppringare och samtalshanterare för GNOME. Den kan användas med ett mobilmodem för vanliga telefonsamtal såväl som VoIP-samtal med SIP-protokollet."
 
 #. Translators: A screenshot description.
 #: data/org.gnome.Calls.metainfo.xml:26
@@ -88,8 +82,7 @@ msgstr "Insticksmodulerna att läsa in a
 
 #: data/org.gnome.Calls.gschema.xml:20
 msgid "These plugins will be automatically loaded on application startup."
-msgstr ""
-"Dessa insticksmoduler kommer automatiskt läsas in vid programmets uppstart."
+msgstr "Dessa insticksmoduler kommer automatiskt läsas in vid programmets uppstart."
 
 #: data/org.gnome.Calls.gschema.xml:25
 msgid "Audio codecs to use for VoIP calls in order of preference"
@@ -195,41 +188,54 @@ msgstr "Frånkoppling slutförd"
 msgid "Internal error occurred"
 msgstr "Ett internt fel inträffade"
 
-#: src/calls-application.c:319
+#: src/calls-account-overview.c:177
+#, c-format
+msgid "Edit account: %s"
+msgstr "Redigera konto: %s"
+
+#: src/calls-account-overview.c:184
+msgid "Add new account"
+msgstr "Lägg till nytt konto"
+
+#: src/calls-account-overview.c:376
+msgid "Account overview"
+msgstr "Kontoöversikt"
+
+#: src/calls-application.c:327
 #, c-format
 msgid "Tried dialing invalid tel URI `%s'"
 msgstr "Försökte ringa ogiltig tel-URI ”%s”"
 
-#: src/calls-application.c:636
+#: src/calls-application.c:660
 #, c-format
 msgid "Don't know how to open `%s'"
 msgstr "Vet inte hur ”%s” ska öppnas"
 
-#: src/calls-application.c:690
+#: src/calls-application.c:717
 msgid "The name of the plugin to use as a call provider"
 msgstr "Namnet på insticket som ska användas som samtalsleverantör"
 
-#: src/calls-application.c:691
+#: src/calls-application.c:718
 msgid "PLUGIN"
 msgstr "INSTICK"
 
-#: src/calls-application.c:696
+#: src/calls-application.c:723
 msgid "Whether to present the main window on startup"
 msgstr "Huruvida huvudfönstret ska visas vid uppstart"
 
-#: src/calls-application.c:702
+#: src/calls-application.c:729
 msgid "Dial a telephone number"
 msgstr "Slå ett telefonnummer"
 
-#: src/calls-application.c:703
+#: src/calls-application.c:730
 msgid "NUMBER"
 msgstr "NUMMER"
 
-#: src/calls-application.c:708
+#: src/calls-application.c:735
 msgid "Enable verbose debug messages"
 msgstr "Aktivera utförliga felsökningsmeddelanden"
 
-#: src/calls-application.c:714
+#: src/calls-application.c:741
 msgid "Print current version"
 msgstr "Skriv ut aktuell version"
 
@@ -239,17 +245,14 @@ msgstr "Anonym uppringare"
 
 #: src/calls-call-record-row.c:97
 #, c-format
-msgid ""
-"%s\n"
+msgid "%s\n"
 "yesterday"
-msgstr ""
-"%s\n"
+msgstr "%s\n"
 "i går"
 
 #: src/calls-main-window.c:123
 msgid "translator-credits"
-msgstr ""
-"Sebastian Rasmussen <sebras@gmail.com>\n"
+msgstr "Sebastian Rasmussen <sebras@gmail.com>\n"
 "Luna Jernberg <droidbittin@gmail.com>\n"
 "Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
 "\n"
@@ -310,14 +313,8 @@ msgid "Add VoIP Accounts"
 msgstr "Lägg till VoIP-konton"
 
 #: src/ui/account-overview.ui:51
-msgid ""
-"You can add VoIP account here. It will allow you to place and receive VoIP "
-"calls using the SIP protocol. This feature is still relatively new and not "
-"yet feature complete (i.e. no encrypted media)."
-msgstr ""
-"Du kan lägga till ett VoIP-konto här. Det kommer låta dig ringa och ta emot "
-"VoIP-samtal med SIP-protokollet. Denna funktion är relativt ny och inte "
-"fullt funktionell ännu (d.v.s. inga krypterade media)."
+msgid "You can add VoIP account here. It will allow you to place and receive VoIP calls using the SIP protocol. This feature is still relatively new and not yet feature complete (i.e. no encrypted media)."
+msgstr "Du kan lägga till ett VoIP-konto här. Det kommer låta dig ringa och ta emot VoIP-samtal med SIP-protokollet. Denna funktion är relativt ny och inte fullt funktionell ännu (d.v.s. inga krypterade media)."
 
 #: src/ui/account-overview.ui:58 src/ui/account-overview.ui:106
 msgid "_Add Account"
@@ -385,27 +382,16 @@ msgstr "_Tangentbordsgenvägar"
 msgid "_Help"
 msgstr "_Hjälp"
 
+#. "Calls" is the application name, do not translate
 #: src/ui/main-window.ui:239
 msgid "_About Calls"
 msgstr "_Om Samtal"
 
-#: src/ui/new-call-box.ui:45
+#: src/ui/new-call-box.ui:38
 msgid "Enter a VoIP address"
 msgstr "Ange en VoIP-adress"
 
-#: src/ui/new-call-box.ui:58
-msgid "Enter a number"
-msgstr "Ange ett nummer"
-
-#: src/ui/new-call-box.ui:97
-msgid "Dial"
-msgstr "Ring"
-
-#: src/ui/new-call-box.ui:120
-msgid "Delete character in front of cursor"
-msgstr "Radera tecken framför markören"
-
-#: src/ui/new-call-box.ui:149
+#: src/ui/new-call-box.ui:62
 msgid "SIP Account"
 msgstr "SIP-konto"
 
@@ -417,144 +403,158 @@ msgstr "Nytt samtal"
 msgid "Back"
 msgstr "Tillbaka"
 
-#: plugins/mm/calls-mm-call.c:73
+#: plugins/provider/mm/calls-mm-call.c:73
 msgid "Unknown reason"
 msgstr "Okänd anledning"
 
-#: plugins/mm/calls-mm-call.c:74
+#: plugins/provider/mm/calls-mm-call.c:74
 msgid "Outgoing call started"
 msgstr "Utgående samtal startat"
 
-#: plugins/mm/calls-mm-call.c:75
+#: plugins/provider/mm/calls-mm-call.c:75
 msgid "New incoming call"
 msgstr "Nytt inkommande samtal"
 
-#: plugins/mm/calls-mm-call.c:76
+#: plugins/provider/mm/calls-mm-call.c:76
 msgid "Call accepted"
 msgstr "Samtal accepterat"
 
-#: plugins/mm/calls-mm-call.c:77
+#: plugins/provider/mm/calls-mm-call.c:77
 msgid "Call ended"
 msgstr "Samtal avslutat"
 
-#: plugins/mm/calls-mm-call.c:78
+#: plugins/provider/mm/calls-mm-call.c:78
 msgid "Call disconnected (busy or call refused)"
 msgstr "Samtal frånkopplat (upptaget eller samtal vägrat)"
 
-#: plugins/mm/calls-mm-call.c:79
+#: plugins/provider/mm/calls-mm-call.c:79
 msgid "Call disconnected (wrong id or network problem)"
 msgstr "Samtal frånkopplat (felaktigt ID eller nätverksproblem)"
 
-#: plugins/mm/calls-mm-call.c:80
+#: plugins/provider/mm/calls-mm-call.c:80
 msgid "Call disconnected (error setting up audio channel)"
 msgstr "Samtal frånkopplat (fel vid konfiguration av ljudkanal)"
 
-#: plugins/mm/calls-mm-call.c:81
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
 msgid "Call transferred"
 msgstr "Samtal överfört"
 
-#: plugins/mm/calls-mm-call.c:82
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
 msgid "Call deflected"
 msgstr "Samtal avvisat"
 
-#: plugins/mm/calls-mm-call.c:107
+#: plugins/provider/mm/calls-mm-call.c:109
 #, c-format
 msgid "Call disconnected (unknown reason code %i)"
 msgstr "Samtal frånkopplat (okänd orsakskod %i)"
 
-#: plugins/mm/calls-mm-provider.c:82
+#: plugins/provider/mm/calls-mm-provider.c:84
 msgid "ModemManager unavailable"
 msgstr "ModemManager ej tillgängligt"
 
-#: plugins/mm/calls-mm-provider.c:84 plugins/ofono/calls-ofono-provider.c:96
+#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/ofono/calls-ofono-provider.c:96
 msgid "No voice-capable modem available"
 msgstr "Inget röstkapabelt modem tillgängligt"
 
-#: plugins/mm/calls-mm-provider.c:86 plugins/ofono/calls-ofono-provider.c:98
+#: plugins/provider/mm/calls-mm-provider.c:88
+#: plugins/provider/ofono/calls-ofono-provider.c:98
 msgid "Normal"
 msgstr "Normal"
 
-#: plugins/mm/calls-mm-provider.c:445 plugins/ofono/calls-ofono-provider.c:543
+#: plugins/provider/mm/calls-mm-provider.c:456
+#: plugins/provider/ofono/calls-ofono-provider.c:546
 msgid "Initialized"
 msgstr "Initierad"
 
-#: plugins/ofono/calls-ofono-provider.c:94
+#: plugins/provider/ofono/calls-ofono-provider.c:94
 msgid "DBus unavailable"
 msgstr "DBus ej tillgängligt"
 
-#: plugins/sip/calls-sip-account-widget.c:668
+#: plugins/provider/sip/calls-sip-account-widget.c:668
 msgid "No encryption"
 msgstr "Ingen kryptering"
 
 #. TODO Optional encryption
-#: plugins/sip/calls-sip-account-widget.c:675
+#: plugins/provider/sip/calls-sip-account-widget.c:675
 msgid "Force encryption"
 msgstr "Tvinga kryptering"
 
-#: plugins/sip/calls-sip-call.c:123
+#: plugins/provider/sip/calls-sip-call.c:123
 msgid "Cryptographic key exchange unsuccessful"
 msgstr "Kryptografisk nyckelutväxling misslyckades"
 
-#: plugins/sip/sip-account-widget.ui:11
+#: plugins/provider/sip/sip-account-widget.ui:11
 msgid "Add Account"
 msgstr "Lägg till konto"
 
-#: plugins/sip/sip-account-widget.ui:17
+#: plugins/provider/sip/sip-account-widget.ui:17
 msgid "_Log In"
 msgstr "_Logga in"
 
-#: plugins/sip/sip-account-widget.ui:42
+#: plugins/provider/sip/sip-account-widget.ui:42
 msgid "Manage Account"
 msgstr "Hantera konto"
 
-#: plugins/sip/sip-account-widget.ui:47
+#: plugins/provider/sip/sip-account-widget.ui:47
 msgid "_Apply"
 msgstr "_Verkställ"
 
-#: plugins/sip/sip-account-widget.ui:61
+#: plugins/provider/sip/sip-account-widget.ui:61
 msgid "_Delete"
 msgstr "_Ta bort"
 
-#: plugins/sip/sip-account-widget.ui:91
+#: plugins/provider/sip/sip-account-widget.ui:91
 msgid "Server"
 msgstr "Server"
 
-#: plugins/sip/sip-account-widget.ui:109
+#: plugins/provider/sip/sip-account-widget.ui:109
 msgid "Display Name"
 msgstr "Visningsnamn"
 
-#: plugins/sip/sip-account-widget.ui:110
+#: plugins/provider/sip/sip-account-widget.ui:110
 msgid "Optional"
 msgstr "Valfritt"
 
-#: plugins/sip/sip-account-widget.ui:128
+#: plugins/provider/sip/sip-account-widget.ui:128
 msgid "User ID"
 msgstr "Användar-ID"
 
-#: plugins/sip/sip-account-widget.ui:141
+#: plugins/provider/sip/sip-account-widget.ui:141
 msgid "Password"
 msgstr "Lösenord"
 
-#: plugins/sip/sip-account-widget.ui:166
+#: plugins/provider/sip/sip-account-widget.ui:166
 msgid "Port"
 msgstr "Port"
 
-#: plugins/sip/sip-account-widget.ui:182
+#: plugins/provider/sip/sip-account-widget.ui:182
 msgid "Transport"
 msgstr "Transport"
 
-#: plugins/sip/sip-account-widget.ui:189
+#: plugins/provider/sip/sip-account-widget.ui:189
 msgid "Media Encryption"
 msgstr "Mediakryptering"
 
-#: plugins/sip/sip-account-widget.ui:201
+#: plugins/provider/sip/sip-account-widget.ui:201
 msgid "Use for Phone Calls"
 msgstr "Använd för telefonsamtal"
 
-#: plugins/sip/sip-account-widget.ui:214
+#: plugins/provider/sip/sip-account-widget.ui:214
 msgid "Automatically Connect"
 msgstr "Anslut automatiskt"
 
+#~ msgid "Enter a number"
+#~ msgstr "Ange ett nummer"
+
+#~ msgid "Dial"
+#~ msgstr "Ring"
+
+#~ msgid "Delete character in front of cursor"
+#~ msgstr "Radera tecken framför markören"
+
 #~ msgid "Call disconnected (unknown reason)"
 #~ msgstr "Samtal frånkopplat (okänd orsak)"
 
diff -pruN 43.0-1/po/tr.po 44~alpha.1-1/po/tr.po
--- 43.0-1/po/tr.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/tr.po	2023-01-12 09:50:29.000000000 +0000
@@ -1,5 +1,5 @@
 # Turkish translation for calls.
-# Copyright (C) 2020 calls's COPYRIGHT HOLDER
+# Copyright (C) 2020-2023 calls's COPYRIGHT HOLDER
 # This file is distributed under the same license as the calls package.
 # Emin Tufan Çetin <etcetin@gmail.com>, 2020, 2021, 2022.
 #
@@ -7,19 +7,19 @@ msgid ""
 msgstr ""
 "Project-Id-Version: calls master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
-"POT-Creation-Date: 2022-09-02 16:32+0000\n"
-"PO-Revision-Date: 2022-09-04 13:16+0300\n"
-"Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>\n"
+"POT-Creation-Date: 2022-12-08 22:45+0000\n"
+"PO-Revision-Date: 2022-12-21 10:39+0300\n"
+"Last-Translator: Sabri Ünal <libreajans@gmail.com>\n"
 "Language-Team: Türkçe <gnome-turk@gnome.org>\n"
 "Language: tr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 3.0.1\n"
+"X-Generator: Poedit 3.1.1\n"
 
 #: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
-#: src/calls-application.c:440 src/ui/call-window.ui:9 src/ui/main-window.ui:7
+#: src/calls-application.c:457 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "Aramalar"
 
@@ -195,41 +195,54 @@ msgstr "Kesilme tamamlandı"
 msgid "Internal error occurred"
 msgstr "İç hata oluştu"
 
-#: src/calls-application.c:319
+#: src/calls-account-overview.c:177
+#, c-format
+msgid "Edit account: %s"
+msgstr "Hesabı düzenle: %s"
+
+#: src/calls-account-overview.c:184
+msgid "Add new account"
+msgstr "Yeni hesap ekle"
+
+#: src/calls-account-overview.c:376
+msgid "Account overview"
+msgstr "Hesap genel görünümü"
+
+#: src/calls-application.c:327
 #, c-format
 msgid "Tried dialing invalid tel URI `%s'"
 msgstr "`%s' geçersiz tel URIʼsini arama denendi"
 
-#: src/calls-application.c:638
+#: src/calls-application.c:660
 #, c-format
 msgid "Don't know how to open `%s'"
 msgstr "`%s' nasıl açılır bilinmiyor"
 
-#: src/calls-application.c:692
+#: src/calls-application.c:717
 msgid "The name of the plugin to use as a call provider"
 msgstr "Arama sağlayıcı olarak kullanılacak eklentinin adı"
 
-#: src/calls-application.c:693
+#: src/calls-application.c:718
 msgid "PLUGIN"
 msgstr "EKLENTİ"
 
-#: src/calls-application.c:698
+#: src/calls-application.c:723
 msgid "Whether to present the main window on startup"
 msgstr "Ana ekranın başlangıçta sunulup sunulmayacağı"
 
-#: src/calls-application.c:704
+#: src/calls-application.c:729
 msgid "Dial a telephone number"
 msgstr "Telefon numarası çevir"
 
-#: src/calls-application.c:705
+#: src/calls-application.c:730
 msgid "NUMBER"
 msgstr "NUMARA"
 
-#: src/calls-application.c:710
+#: src/calls-application.c:735
 msgid "Enable verbose debug messages"
 msgstr "Ayrıntılı hata ayıklama iletilerini etkinleştir"
 
-#: src/calls-application.c:716
+#: src/calls-application.c:741
 msgid "Print current version"
 msgstr "Geçerli sürümü yazdır"
 
@@ -384,23 +397,11 @@ msgstr "_Yardım"
 msgid "_About Calls"
 msgstr "Aramalar _Hakkında"
 
-#: src/ui/new-call-box.ui:45
+#: src/ui/new-call-box.ui:38
 msgid "Enter a VoIP address"
 msgstr "VoIP hesabı gir"
 
-#: src/ui/new-call-box.ui:58
-msgid "Enter a number"
-msgstr "Numara gir"
-
-#: src/ui/new-call-box.ui:97
-msgid "Dial"
-msgstr "Tuşla"
-
-#: src/ui/new-call-box.ui:120
-msgid "Delete character in front of cursor"
-msgstr "İmlecin önündeki karakteri sil"
-
-#: src/ui/new-call-box.ui:149
+#: src/ui/new-call-box.ui:62
 msgid "SIP Account"
 msgstr "SIP Hesabı"
 
@@ -444,35 +445,37 @@ msgstr "Arama kesildi (yanlış kimlik v
 msgid "Call disconnected (error setting up audio channel)"
 msgstr "Arama kesildi (ses kanalı ayarlama hatası)"
 
-#: plugins/provider/mm/calls-mm-call.c:81
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
 msgid "Call transferred"
 msgstr "Arama aktarıldı"
 
-#: plugins/provider/mm/calls-mm-call.c:82
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
 msgid "Call deflected"
 msgstr "Arama yönü değiştirildi"
 
-#: plugins/provider/mm/calls-mm-call.c:107
+#: plugins/provider/mm/calls-mm-call.c:109
 #, c-format
 msgid "Call disconnected (unknown reason code %i)"
 msgstr "Arama kesildi (bilinmeyen neden kodu %i)"
 
-#: plugins/provider/mm/calls-mm-provider.c:82
+#: plugins/provider/mm/calls-mm-provider.c:84
 msgid "ModemManager unavailable"
 msgstr "ModemManager uygun değil"
 
-#: plugins/provider/mm/calls-mm-provider.c:84
+#: plugins/provider/mm/calls-mm-provider.c:86
 #: plugins/provider/ofono/calls-ofono-provider.c:96
 msgid "No voice-capable modem available"
 msgstr "Ses yetili modem yok"
 
-#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/mm/calls-mm-provider.c:88
 #: plugins/provider/ofono/calls-ofono-provider.c:98
 msgid "Normal"
 msgstr "Olağan"
 
-#: plugins/provider/mm/calls-mm-provider.c:445
-#: plugins/provider/ofono/calls-ofono-provider.c:543
+#: plugins/provider/mm/calls-mm-provider.c:456
+#: plugins/provider/ofono/calls-ofono-provider.c:546
 msgid "Initialized"
 msgstr "Çalıştı"
 
@@ -553,6 +556,15 @@ msgstr "Telefon Aramalarında Kullan"
 msgid "Automatically Connect"
 msgstr "Kendiliğinden Bağlan"
 
+#~ msgid "Enter a number"
+#~ msgstr "Numara gir"
+
+#~ msgid "Dial"
+#~ msgstr "Tuşla"
+
+#~ msgid "Delete character in front of cursor"
+#~ msgstr "İmlecin önündeki karakteri sil"
+
 #~ msgid "Call disconnected (unknown reason)"
 #~ msgstr "Arama kesildi (bilinmeyen neden)"
 
diff -pruN 43.0-1/po/uk.po 44~alpha.1-1/po/uk.po
--- 43.0-1/po/uk.po	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/po/uk.po	2023-01-12 09:50:29.000000000 +0000
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: calls master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
-"POT-Creation-Date: 2022-08-05 08:41+0000\n"
-"PO-Revision-Date: 2022-08-05 17:17+0300\n"
+"POT-Creation-Date: 2022-11-18 15:34+0000\n"
+"PO-Revision-Date: 2022-11-19 06:49+0200\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
 "Language: uk\n"
@@ -20,7 +20,7 @@ msgstr ""
 "X-Generator: Lokalize 20.12.0\n"
 
 #: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
-#: src/calls-application.c:438 src/ui/call-window.ui:9 src/ui/main-window.ui:7
+#: src/calls-application.c:457 src/ui/call-window.ui:9 src/ui/main-window.ui:7
 msgid "Calls"
 msgstr "Дзвінки"
 
@@ -202,41 +202,56 @@ msgstr "Розірвання з'єдна
 msgid "Internal error occurred"
 msgstr "Сталася внутрішня помилка"
 
-#: src/calls-application.c:319
+#: src/calls-account-overview.c:177
+#, c-format
+msgid "Edit account: %s"
+msgstr "Редагувати запис: %s"
+
+#: src/calls-account-overview.c:184
+#| msgid "Add Account"
+msgid "Add new account"
+msgstr "Додати обліковий запис"
+
+#: src/calls-account-overview.c:376
+#| msgid "Account is online"
+msgid "Account overview"
+msgstr "Огляд облікових записів"
+
+#: src/calls-application.c:327
 #, c-format
 msgid "Tried dialing invalid tel URI `%s'"
 msgstr "Спроба набору номера з некоректною адресою телефону «%s»"
 
-#: src/calls-application.c:636
+#: src/calls-application.c:660
 #, c-format
 msgid "Don't know how to open `%s'"
 msgstr "Невідомо як відкрити «%s»"
 
-#: src/calls-application.c:690
+#: src/calls-application.c:717
 msgid "The name of the plugin to use as a call provider"
 msgstr "Назва додатка, який слід використовувати як надавача послуг дзвінка"
 
-#: src/calls-application.c:691
+#: src/calls-application.c:718
 msgid "PLUGIN"
 msgstr "ДОДАТОК"
 
-#: src/calls-application.c:696
+#: src/calls-application.c:723
 msgid "Whether to present the main window on startup"
 msgstr "Чи слід відкривати головне вікно після запуску"
 
-#: src/calls-application.c:702
+#: src/calls-application.c:729
 msgid "Dial a telephone number"
 msgstr "Набрати телефонний номер"
 
-#: src/calls-application.c:703
+#: src/calls-application.c:730
 msgid "NUMBER"
 msgstr "НОМЕР"
 
-#: src/calls-application.c:708
+#: src/calls-application.c:735
 msgid "Enable verbose debug messages"
 msgstr "Увімкнути докладні діагностичні повідомлення"
 
-#: src/calls-application.c:714
+#: src/calls-application.c:741
 msgid "Print current version"
 msgstr "Вивести поточну версію"
 
@@ -346,7 +361,6 @@ msgid "_Add contact"
 msgstr "_Додати контакт"
 
 #: src/ui/call-record-row.ui:117
-#| msgid "_Send"
 msgid "_Send SMS"
 msgstr "_Надіслати SMS"
 
@@ -390,27 +404,16 @@ msgstr "_Клавіатурні скор
 msgid "_Help"
 msgstr "_Довідка"
 
+#. "Calls" is the application name, do not translate
 #: src/ui/main-window.ui:239
 msgid "_About Calls"
 msgstr "_Про «Дзвінки»"
 
-#: src/ui/new-call-box.ui:45
+#: src/ui/new-call-box.ui:38
 msgid "Enter a VoIP address"
 msgstr "Введіть адресу VoIP"
 
-#: src/ui/new-call-box.ui:58
-msgid "Enter a number"
-msgstr "Введіть номер"
-
-#: src/ui/new-call-box.ui:97
-msgid "Dial"
-msgstr "Набір номера"
-
-#: src/ui/new-call-box.ui:120
-msgid "Delete character in front of cursor"
-msgstr "Вилучити символ перед курсором"
-
-#: src/ui/new-call-box.ui:149
+#: src/ui/new-call-box.ui:62
 msgid "SIP Account"
 msgstr "Обліковий запис SIP"
 
@@ -422,144 +425,158 @@ msgstr "Новий дзвінок"
 msgid "Back"
 msgstr "Назад"
 
-#: plugins/mm/calls-mm-call.c:73
+#: plugins/provider/mm/calls-mm-call.c:73
 msgid "Unknown reason"
 msgstr "Невідома причина"
 
-#: plugins/mm/calls-mm-call.c:74
+#: plugins/provider/mm/calls-mm-call.c:74
 msgid "Outgoing call started"
 msgstr "Розпочато зовнішній виклик"
 
-#: plugins/mm/calls-mm-call.c:75
+#: plugins/provider/mm/calls-mm-call.c:75
 msgid "New incoming call"
 msgstr "Новий вхідний дзвінок"
 
-#: plugins/mm/calls-mm-call.c:76
+#: plugins/provider/mm/calls-mm-call.c:76
 msgid "Call accepted"
 msgstr "Виклик прийнято"
 
-#: plugins/mm/calls-mm-call.c:77
+#: plugins/provider/mm/calls-mm-call.c:77
 msgid "Call ended"
 msgstr "Виклик завершено"
 
-#: plugins/mm/calls-mm-call.c:78
+#: plugins/provider/mm/calls-mm-call.c:78
 msgid "Call disconnected (busy or call refused)"
 msgstr "Виклик від'єднано (зайнято або відмовлено у виклику)"
 
-#: plugins/mm/calls-mm-call.c:79
+#: plugins/provider/mm/calls-mm-call.c:79
 msgid "Call disconnected (wrong id or network problem)"
 msgstr "Виклик від'єднано (помилковий ідентифікатор або проблем із мережею)"
 
-#: plugins/mm/calls-mm-call.c:80
+#: plugins/provider/mm/calls-mm-call.c:80
 msgid "Call disconnected (error setting up audio channel)"
 msgstr "Виклик від'єднано (помилка під час налаштовування звукового каналу)"
 
-#: plugins/mm/calls-mm-call.c:81
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
 msgid "Call transferred"
 msgstr "Виклик передано"
 
-#: plugins/mm/calls-mm-call.c:82
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
 msgid "Call deflected"
 msgstr "Виклик відхилено"
 
-#: plugins/mm/calls-mm-call.c:107
+#: plugins/provider/mm/calls-mm-call.c:109
 #, c-format
 msgid "Call disconnected (unknown reason code %i)"
 msgstr "Виклик від'єднано (невідома причина, код %i)"
 
-#: plugins/mm/calls-mm-provider.c:82
+#: plugins/provider/mm/calls-mm-provider.c:84
 msgid "ModemManager unavailable"
 msgstr "ModemManager недоступний"
 
-#: plugins/mm/calls-mm-provider.c:84 plugins/ofono/calls-ofono-provider.c:96
+#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/ofono/calls-ofono-provider.c:96
 msgid "No voice-capable modem available"
 msgstr "Немає модема із голосовими можливостями"
 
-#: plugins/mm/calls-mm-provider.c:86 plugins/ofono/calls-ofono-provider.c:98
+#: plugins/provider/mm/calls-mm-provider.c:88
+#: plugins/provider/ofono/calls-ofono-provider.c:98
 msgid "Normal"
 msgstr "Звичайний"
 
-#: plugins/mm/calls-mm-provider.c:445 plugins/ofono/calls-ofono-provider.c:543
+#: plugins/provider/mm/calls-mm-provider.c:456
+#: plugins/provider/ofono/calls-ofono-provider.c:546
 msgid "Initialized"
 msgstr "Ініціалізовано"
 
-#: plugins/ofono/calls-ofono-provider.c:94
+#: plugins/provider/ofono/calls-ofono-provider.c:94
 msgid "DBus unavailable"
 msgstr "DBus є недоступним"
 
-#: plugins/sip/calls-sip-account-widget.c:668
+#: plugins/provider/sip/calls-sip-account-widget.c:668
 msgid "No encryption"
 msgstr "Без шифрування"
 
 #. TODO Optional encryption
-#: plugins/sip/calls-sip-account-widget.c:675
+#: plugins/provider/sip/calls-sip-account-widget.c:675
 msgid "Force encryption"
 msgstr "Примусове шифрування"
 
-#: plugins/sip/calls-sip-call.c:123
+#: plugins/provider/sip/calls-sip-call.c:123
 msgid "Cryptographic key exchange unsuccessful"
 msgstr "Помилка під час обміну криптографічними ключами"
 
-#: plugins/sip/sip-account-widget.ui:11
+#: plugins/provider/sip/sip-account-widget.ui:11
 msgid "Add Account"
 msgstr "Додати обліковий запис"
 
-#: plugins/sip/sip-account-widget.ui:17
+#: plugins/provider/sip/sip-account-widget.ui:17
 msgid "_Log In"
 msgstr "_Увійти"
 
-#: plugins/sip/sip-account-widget.ui:42
+#: plugins/provider/sip/sip-account-widget.ui:42
 msgid "Manage Account"
 msgstr "Керування обліковим записом"
 
-#: plugins/sip/sip-account-widget.ui:47
+#: plugins/provider/sip/sip-account-widget.ui:47
 msgid "_Apply"
 msgstr "_Застосувати"
 
-#: plugins/sip/sip-account-widget.ui:61
+#: plugins/provider/sip/sip-account-widget.ui:61
 msgid "_Delete"
 msgstr "В_илучити"
 
-#: plugins/sip/sip-account-widget.ui:91
+#: plugins/provider/sip/sip-account-widget.ui:91
 msgid "Server"
 msgstr "Сервер"
 
-#: plugins/sip/sip-account-widget.ui:109
+#: plugins/provider/sip/sip-account-widget.ui:109
 msgid "Display Name"
 msgstr "Екранне ім'я"
 
-#: plugins/sip/sip-account-widget.ui:110
+#: plugins/provider/sip/sip-account-widget.ui:110
 msgid "Optional"
 msgstr "Необов'язково"
 
-#: plugins/sip/sip-account-widget.ui:128
+#: plugins/provider/sip/sip-account-widget.ui:128
 msgid "User ID"
 msgstr "Ід. користувача"
 
-#: plugins/sip/sip-account-widget.ui:141
+#: plugins/provider/sip/sip-account-widget.ui:141
 msgid "Password"
 msgstr "Пароль"
 
-#: plugins/sip/sip-account-widget.ui:166
+#: plugins/provider/sip/sip-account-widget.ui:166
 msgid "Port"
 msgstr "Порт"
 
-#: plugins/sip/sip-account-widget.ui:182
+#: plugins/provider/sip/sip-account-widget.ui:182
 msgid "Transport"
 msgstr "Спосіб передавання"
 
-#: plugins/sip/sip-account-widget.ui:189
+#: plugins/provider/sip/sip-account-widget.ui:189
 msgid "Media Encryption"
 msgstr "Шифрування мультимедіа"
 
-#: plugins/sip/sip-account-widget.ui:201
+#: plugins/provider/sip/sip-account-widget.ui:201
 msgid "Use for Phone Calls"
 msgstr "Використовувати для дзвінків"
 
-#: plugins/sip/sip-account-widget.ui:214
+#: plugins/provider/sip/sip-account-widget.ui:214
 msgid "Automatically Connect"
 msgstr "З'єднуватись автоматично"
 
+#~ msgid "Enter a number"
+#~ msgstr "Введіть номер"
+
+#~ msgid "Dial"
+#~ msgstr "Набір номера"
+
+#~ msgid "Delete character in front of cursor"
+#~ msgstr "Вилучити символ перед курсором"
+
 #~ msgid "Call disconnected (unknown reason)"
 #~ msgstr "Виклик від'єднано (невідома причина)"
 
diff -pruN 43.0-1/po/zh_CN.po 44~alpha.1-1/po/zh_CN.po
--- 43.0-1/po/zh_CN.po	1970-01-01 00:00:00.000000000 +0000
+++ 44~alpha.1-1/po/zh_CN.po	2023-01-12 09:50:29.000000000 +0000
@@ -0,0 +1,539 @@
+# Chinese (China) translation for calls.
+# Copyright (C) 2022 calls's COPYRIGHT HOLDER
+# This file is distributed under the same license as the calls package.
+# Boyuan Yang <073plan@gmail.com>, 2022.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: calls main\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
+"POT-Creation-Date: 2022-11-29 18:19+0000\n"
+"PO-Revision-Date: 2022-11-29 16:41-0500\n"
+"Last-Translator: Boyuan Yang <073plan@gmail.com>\n"
+"Language-Team: Chinese (China) <i18n-zh@googlegroups.com>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 3.2\n"
+
+#: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
+#: src/calls-application.c:457 src/ui/call-window.ui:9 src/ui/main-window.ui:7
+msgid "Calls"
+msgstr "通话"
+
+#: data/org.gnome.Calls.desktop.in:4 data/org.gnome.Calls-daemon.desktop.in:4
+msgid "Phone"
+msgstr "电话"
+
+#: data/org.gnome.Calls.desktop.in:5
+msgid "A phone dialer and call handler"
+msgstr "一款电话拨号器和通话管理软件"
+
+#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
+#: data/org.gnome.Calls.desktop.in:7 data/org.gnome.Calls-daemon.desktop.in:7
+msgid "Telephone;Call;Phone;Dial;Dialer;PSTN;"
+msgstr "Telephone;Call;Phone;Dial;Dialer;PSTN;电话;呼叫;通话;拨号;"
+
+#: data/org.gnome.Calls-daemon.desktop.in:3
+msgid "Calls (daemon)"
+msgstr "通话（守护程序）"
+
+#: data/org.gnome.Calls-daemon.desktop.in:5
+msgid "A phone dialer and call handler (daemon mode)"
+msgstr "一款电话拨号器和通话管理软件（守护程序模式）"
+
+#: data/org.gnome.Calls.metainfo.xml:7
+msgid "Make phone and SIP calls"
+msgstr "拨打电话和 SIP 通话"
+
+#: data/org.gnome.Calls.metainfo.xml:10
+msgid "Calls is a simple, elegant phone dialer and call handler for GNOME. It can be used with a cellular modem for plain old telephone calls as well as VoIP calls using the SIP protocol."
+msgstr "通话是 GNOME 的一款简单而优雅的电话拨号器和通话管理软件。它可与蜂窝网络调制解调器一起使用以进行传统的拨号通话，或使用 SIP 协议进行 VoIP 通话。"
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:26
+msgid "Placing a call"
+msgstr "进行通话"
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:31
+msgid "The call history"
+msgstr "通话历史"
+
+#: data/org.gnome.Calls.gschema.xml:7 data/org.gnome.Calls.gschema.xml:8
+msgid "Whether calls should automatically use the default origin"
+msgstr "通话是否应自动使用默认来源"
+
+#: data/org.gnome.Calls.gschema.xml:13
+msgid "The country code as reported by the modem"
+msgstr "调制解调器报告的国家地区代码"
+
+#: data/org.gnome.Calls.gschema.xml:14
+msgid "The country code is used for contact name lookup"
+msgstr ""
+
+#: data/org.gnome.Calls.gschema.xml:19
+msgid "The plugins to load automatically"
+msgstr ""
+
+#: data/org.gnome.Calls.gschema.xml:20
+msgid "These plugins will be automatically loaded on application startup."
+msgstr ""
+
+#: data/org.gnome.Calls.gschema.xml:25
+msgid "Audio codecs to use for VoIP calls in order of preference"
+msgstr ""
+
+#: data/org.gnome.Calls.gschema.xml:26
+msgid "The preferred audio codecs to use for VoIP calls (if available)"
+msgstr ""
+
+#: data/org.gnome.Calls.gschema.xml:31
+msgid "Whether to allow using SDES for SRTP without TLS as the transport"
+msgstr ""
+
+#: data/org.gnome.Calls.gschema.xml:32
+msgid "Set to true if you want to allow with keys exchanged in cleartext."
+msgstr ""
+
+#: src/calls-account.c:163
+msgid "Default (uninitialized) state"
+msgstr "默认（未初始化）状态"
+
+#: src/calls-account.c:166
+msgid "Initializing account…"
+msgstr "正在初始化帐号……"
+
+#: src/calls-account.c:169
+msgid "Uninitializing account…"
+msgstr ""
+
+#: src/calls-account.c:172
+msgid "Connecting to server…"
+msgstr "正在连接到服务器……"
+
+#: src/calls-account.c:175
+msgid "Account is online"
+msgstr "帐号在线"
+
+#: src/calls-account.c:178
+msgid "Disconnecting from server…"
+msgstr ""
+
+#: src/calls-account.c:181
+msgid "Account is offline"
+msgstr ""
+
+#: src/calls-account.c:184
+msgid "Account encountered an error"
+msgstr ""
+
+#: src/calls-account.c:202
+msgid "No reason given"
+msgstr ""
+
+#: src/calls-account.c:205
+msgid "Initialization started"
+msgstr ""
+
+#: src/calls-account.c:208
+msgid "Initialization complete"
+msgstr ""
+
+#: src/calls-account.c:211
+msgid "Uninitialization started"
+msgstr ""
+
+#: src/calls-account.c:214
+msgid "Uninitialization complete"
+msgstr ""
+
+#: src/calls-account.c:217
+msgid "No credentials set"
+msgstr ""
+
+#: src/calls-account.c:220
+msgid "Starting to connect"
+msgstr ""
+
+#: src/calls-account.c:223
+msgid "Connection timed out"
+msgstr ""
+
+#: src/calls-account.c:226
+msgid "Domain name could not be resolved"
+msgstr ""
+
+#: src/calls-account.c:229
+msgid "Server did not accept username or password"
+msgstr ""
+
+#: src/calls-account.c:232
+msgid "Connecting complete"
+msgstr ""
+
+#: src/calls-account.c:235
+msgid "Starting to disconnect"
+msgstr ""
+
+#: src/calls-account.c:238
+msgid "Disconnecting complete"
+msgstr ""
+
+#: src/calls-account.c:241
+msgid "Internal error occurred"
+msgstr ""
+
+#: src/calls-account-overview.c:177
+#, c-format
+msgid "Edit account: %s"
+msgstr ""
+
+#: src/calls-account-overview.c:184
+msgid "Add new account"
+msgstr ""
+
+#: src/calls-account-overview.c:376
+msgid "Account overview"
+msgstr ""
+
+#: src/calls-application.c:327
+#, c-format
+msgid "Tried dialing invalid tel URI `%s'"
+msgstr ""
+
+#: src/calls-application.c:660
+#, c-format
+msgid "Don't know how to open `%s'"
+msgstr ""
+
+#: src/calls-application.c:717
+msgid "The name of the plugin to use as a call provider"
+msgstr ""
+
+#: src/calls-application.c:718
+msgid "PLUGIN"
+msgstr "插件"
+
+#: src/calls-application.c:723
+msgid "Whether to present the main window on startup"
+msgstr ""
+
+#: src/calls-application.c:729
+msgid "Dial a telephone number"
+msgstr ""
+
+#: src/calls-application.c:730
+msgid "NUMBER"
+msgstr "号码"
+
+#: src/calls-application.c:735
+msgid "Enable verbose debug messages"
+msgstr "启用详细调试信息"
+
+#: src/calls-application.c:741
+msgid "Print current version"
+msgstr "输出当前版本"
+
+#: src/calls-best-match.c:435
+msgid "Anonymous caller"
+msgstr ""
+
+#: src/calls-call-record-row.c:97
+#, c-format
+msgid "%s\n"
+"yesterday"
+msgstr ""
+
+#: src/calls-main-window.c:123
+msgid "translator-credits"
+msgstr ""
+
+#: src/calls-main-window.c:316
+msgid "Can't place calls: No modem or VoIP account available"
+msgstr ""
+
+#: src/calls-main-window.c:318
+msgid "Can't place calls: No plugin loaded"
+msgstr ""
+
+#: src/calls-main-window.c:353
+msgid "Contacts"
+msgstr "联系人"
+
+#: src/calls-main-window.c:363
+msgid "Dial Pad"
+msgstr "拨号盘"
+
+#. Recent as in "Recent calls" (the call history)
+#: src/calls-main-window.c:372
+msgid "Recent"
+msgstr ""
+
+#: src/calls-notifier.c:52
+msgid "Missed call"
+msgstr ""
+
+#. %s is a name here
+#: src/calls-notifier.c:76
+#, c-format
+msgid "Missed call from <b>%s</b>"
+msgstr ""
+
+#. %s is a id here
+#: src/calls-notifier.c:79
+#, c-format
+msgid "Missed call from %s"
+msgstr ""
+
+#: src/calls-notifier.c:81
+msgid "Missed call from unknown caller"
+msgstr ""
+
+#: src/calls-notifier.c:87
+msgid "Call back"
+msgstr "回拨"
+
+#: src/ui/account-overview.ui:16
+msgid "VoIP Accounts"
+msgstr "VoIP 帐号"
+
+#: src/ui/account-overview.ui:49
+msgid "Add VoIP Accounts"
+msgstr "添加 VoIP 帐号"
+
+#: src/ui/account-overview.ui:51
+msgid "You can add VoIP account here. It will allow you to place and receive VoIP calls using the SIP protocol. This feature is still relatively new and not yet feature complete (i.e. no encrypted media)."
+msgstr ""
+
+#: src/ui/account-overview.ui:58 src/ui/account-overview.ui:106
+msgid "_Add Account"
+msgstr "添加账号(_A)"
+
+#. Translators: This is a verb, not a noun. Call the number of the currently selected row.
+#: src/ui/call-record-row.ui:62
+msgid "Call"
+msgstr ""
+
+#: src/ui/call-record-row.ui:102
+msgid "_Delete Call"
+msgstr "删除通话(_D)"
+
+#. Translators: This is a phone number
+#: src/ui/call-record-row.ui:107
+msgid "_Copy number"
+msgstr "复制号码(_C)"
+
+#: src/ui/call-record-row.ui:112
+msgid "_Add contact"
+msgstr "添加联系人(_A)"
+
+#: src/ui/call-record-row.ui:117
+msgid "_Send SMS"
+msgstr ""
+
+#: src/ui/call-selector-item.ui:38
+msgid "On hold"
+msgstr ""
+
+#: src/ui/contacts-box.ui:60
+msgid "No Contacts Found"
+msgstr ""
+
+#: src/ui/history-box.ui:10
+msgid "No Recent Calls"
+msgstr ""
+
+#: src/ui/main-window.ui:105
+msgid "USSD"
+msgstr ""
+
+#: src/ui/main-window.ui:114
+msgid "_Cancel"
+msgstr "取消(_C)"
+
+#: src/ui/main-window.ui:131
+msgid "_Close"
+msgstr "关闭(_C)"
+
+#: src/ui/main-window.ui:141
+msgid "_Send"
+msgstr "发送(_S)"
+
+#: src/ui/main-window.ui:214
+msgid "_VoIP Accounts"
+msgstr "_VoIP 帐号"
+
+#: src/ui/main-window.ui:227
+msgid "_Keyboard shortcuts"
+msgstr "快捷键(_K)"
+
+#: src/ui/main-window.ui:233
+msgid "_Help"
+msgstr "帮助(_H)"
+
+#. "Calls" is the application name, do not translate
+#: src/ui/main-window.ui:239
+msgid "_About Calls"
+msgstr "关于通话(_A)"
+
+#: src/ui/new-call-box.ui:38
+msgid "Enter a VoIP address"
+msgstr ""
+
+#: src/ui/new-call-box.ui:62
+msgid "SIP Account"
+msgstr ""
+
+#: src/ui/new-call-header-bar.ui:6
+msgid "New Call"
+msgstr ""
+
+#: src/ui/new-call-header-bar.ui:19
+msgid "Back"
+msgstr "后退"
+
+#: plugins/provider/mm/calls-mm-call.c:73
+msgid "Unknown reason"
+msgstr "未知原因"
+
+#: plugins/provider/mm/calls-mm-call.c:74
+msgid "Outgoing call started"
+msgstr ""
+
+#: plugins/provider/mm/calls-mm-call.c:75
+msgid "New incoming call"
+msgstr ""
+
+#: plugins/provider/mm/calls-mm-call.c:76
+msgid "Call accepted"
+msgstr ""
+
+#: plugins/provider/mm/calls-mm-call.c:77
+msgid "Call ended"
+msgstr ""
+
+#: plugins/provider/mm/calls-mm-call.c:78
+msgid "Call disconnected (busy or call refused)"
+msgstr ""
+
+#: plugins/provider/mm/calls-mm-call.c:79
+msgid "Call disconnected (wrong id or network problem)"
+msgstr ""
+
+#: plugins/provider/mm/calls-mm-call.c:80
+msgid "Call disconnected (error setting up audio channel)"
+msgstr ""
+
+#. Translators: Transfer is for active or held calls
+#: plugins/provider/mm/calls-mm-call.c:82
+msgid "Call transferred"
+msgstr ""
+
+#. Translators: Deflecting is for incoming or waiting calls
+#: plugins/provider/mm/calls-mm-call.c:84
+msgid "Call deflected"
+msgstr ""
+
+#: plugins/provider/mm/calls-mm-call.c:109
+#, c-format
+msgid "Call disconnected (unknown reason code %i)"
+msgstr ""
+
+#: plugins/provider/mm/calls-mm-provider.c:84
+msgid "ModemManager unavailable"
+msgstr "ModemManager 不可用"
+
+#: plugins/provider/mm/calls-mm-provider.c:86
+#: plugins/provider/ofono/calls-ofono-provider.c:96
+msgid "No voice-capable modem available"
+msgstr ""
+
+#: plugins/provider/mm/calls-mm-provider.c:88
+#: plugins/provider/ofono/calls-ofono-provider.c:98
+msgid "Normal"
+msgstr ""
+
+#: plugins/provider/mm/calls-mm-provider.c:456
+#: plugins/provider/ofono/calls-ofono-provider.c:546
+msgid "Initialized"
+msgstr ""
+
+#: plugins/provider/ofono/calls-ofono-provider.c:94
+msgid "DBus unavailable"
+msgstr "DBus 不可用"
+
+#: plugins/provider/sip/calls-sip-account-widget.c:668
+msgid "No encryption"
+msgstr "不加密"
+
+#. TODO Optional encryption
+#: plugins/provider/sip/calls-sip-account-widget.c:675
+msgid "Force encryption"
+msgstr "强制加密"
+
+#: plugins/provider/sip/calls-sip-call.c:123
+msgid "Cryptographic key exchange unsuccessful"
+msgstr "加密密钥交换未成功"
+
+#: plugins/provider/sip/sip-account-widget.ui:11
+msgid "Add Account"
+msgstr "添加账号"
+
+#: plugins/provider/sip/sip-account-widget.ui:17
+msgid "_Log In"
+msgstr "登录(_L)"
+
+#: plugins/provider/sip/sip-account-widget.ui:42
+msgid "Manage Account"
+msgstr "管理帐号"
+
+#: plugins/provider/sip/sip-account-widget.ui:47
+msgid "_Apply"
+msgstr "应用(_A)"
+
+#: plugins/provider/sip/sip-account-widget.ui:61
+msgid "_Delete"
+msgstr "删除(_D)"
+
+#: plugins/provider/sip/sip-account-widget.ui:91
+msgid "Server"
+msgstr "服务器"
+
+#: plugins/provider/sip/sip-account-widget.ui:109
+msgid "Display Name"
+msgstr "显示名称"
+
+#: plugins/provider/sip/sip-account-widget.ui:110
+msgid "Optional"
+msgstr "可选"
+
+#: plugins/provider/sip/sip-account-widget.ui:128
+msgid "User ID"
+msgstr "用户标识"
+
+#: plugins/provider/sip/sip-account-widget.ui:141
+msgid "Password"
+msgstr "密码"
+
+#: plugins/provider/sip/sip-account-widget.ui:166
+msgid "Port"
+msgstr "端口"
+
+#: plugins/provider/sip/sip-account-widget.ui:182
+msgid "Transport"
+msgstr ""
+
+#: plugins/provider/sip/sip-account-widget.ui:189
+msgid "Media Encryption"
+msgstr ""
+
+#: plugins/provider/sip/sip-account-widget.ui:201
+msgid "Use for Phone Calls"
+msgstr ""
+
+#: plugins/provider/sip/sip-account-widget.ui:214
+msgid "Automatically Connect"
+msgstr "自动连接"
+
diff -pruN 43.0-1/po/zh_TW.po 44~alpha.1-1/po/zh_TW.po
--- 43.0-1/po/zh_TW.po	1970-01-01 00:00:00.000000000 +0000
+++ 44~alpha.1-1/po/zh_TW.po	2023-01-12 09:50:29.000000000 +0000
@@ -0,0 +1,514 @@
+# Chinese (Taiwan) translation for calls.
+# Copyright (C) 2022 calls's COPYRIGHT HOLDER
+# This file is distributed under the same license as the calls package.
+# Freddy <freddy4212@gmail.com>, 2022.
+# Freddy Cheng <freddy4212@gmail.com>, 2022.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: calls master\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/calls/-/issues\n"
+"POT-Creation-Date: 2022-05-09 23:02+0000\n"
+"PO-Revision-Date: 2022-05-28 03:46+0800\n"
+"Last-Translator: Freddy Cheng <freddy4212@gmail.com>\n"
+"Language-Team: Chinese - Taiwan <chinese-l10n@googlegroups.com>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"X-Generator: Gtranslator 41.0\n"
+
+#: data/org.gnome.Calls.desktop.in:3 data/org.gnome.Calls.metainfo.xml:6
+#: src/calls-application.c:437 src/ui/call-window.ui:9 src/ui/main-window.ui:7
+msgid "Calls"
+msgstr "通話"
+
+#: data/org.gnome.Calls.desktop.in:4 data/org.gnome.Calls-daemon.desktop.in:4
+msgid "Phone"
+msgstr "電話"
+
+#: data/org.gnome.Calls.desktop.in:5
+msgid "A phone dialer and call handler"
+msgstr "用於撥打及接聽電話"
+
+#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
+#: data/org.gnome.Calls.desktop.in:7 data/org.gnome.Calls-daemon.desktop.in:7
+msgid "Telephone;Call;Phone;Dial;Dialer;PSTN;"
+msgstr "Telephone;Call;Phone;Dial;Dialer;PSTN;電話;手機;撥號;打電話;"
+
+#: data/org.gnome.Calls-daemon.desktop.in:3
+msgid "Calls (daemon)"
+msgstr "通話 (常駐程式)"
+
+#: data/org.gnome.Calls-daemon.desktop.in:5
+msgid "A phone dialer and call handler (daemon mode)"
+msgstr "用於撥打及接聽電話 (常駐程式)"
+
+#: data/org.gnome.Calls.metainfo.xml:7
+msgid "Make phone and SIP calls"
+msgstr "撥打電話與 SIP 電話"
+
+#: data/org.gnome.Calls.metainfo.xml:10
+msgid ""
+"Calls is a simple, elegant phone dialer and call handler for GNOME. It can "
+"be used with a cellular modem for plain old telephone calls as well as VoIP "
+"calls using the SIP protocol."
+msgstr ""
+"通話是 GNOME 桌面簡單優雅的撥號及接聽來電應用程式。支援透過數據機撥打一般的電"
+"話，亦能透過 SIP 通訊協定使用 VoIP 電話功能。"
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:26
+msgid "Placing a call"
+msgstr "撥打電話"
+
+#. Translators: A screenshot description.
+#: data/org.gnome.Calls.metainfo.xml:31
+msgid "The call history"
+msgstr "通話紀錄"
+
+#: data/org.gnome.Calls.gschema.xml:7 data/org.gnome.Calls.gschema.xml:8
+msgid "Whether calls should automatically use the default origin"
+msgstr "通話是否自動使用預設來源"
+
+#: data/org.gnome.Calls.gschema.xml:13
+msgid "The country code as reported by the modem"
+msgstr "由數據機回報的國家代碼"
+
+#: data/org.gnome.Calls.gschema.xml:14
+msgid "The country code is used for contact name lookup"
+msgstr "國家代碼用來尋找聯絡人名稱"
+
+#: data/org.gnome.Calls.gschema.xml:19
+msgid "The plugins to load automatically"
+msgstr "自動載入擴充套件"
+
+#: data/org.gnome.Calls.gschema.xml:20
+msgid "These plugins will be automatically loaded on application startup."
+msgstr "擴充套件會在應用程式啟動時自動載入。"
+
+#: data/org.gnome.Calls.gschema.xml:25
+msgid "Audio codecs to use for VoIP calls in order of preference"
+msgstr "VoIP 通話偏好使用的音訊編碼"
+
+#: data/org.gnome.Calls.gschema.xml:26
+msgid "The preferred audio codecs to use for VoIP calls (if available)"
+msgstr "VoIP 通話偏好使用的音訊編碼（如果可用）"
+
+#: src/calls-account.c:205
+msgid "Default (uninitialized) state"
+msgstr "預設狀態（未初始化）"
+
+#: src/calls-account.c:208
+msgid "Initializing account…"
+msgstr "正在初始化帳號…"
+
+#: src/calls-account.c:211
+msgid "Uninitializing account…"
+msgstr "正在取消初始化帳號…"
+
+#: src/calls-account.c:214
+msgid "Connecting to server…"
+msgstr "正在與伺服器連線…"
+
+#: src/calls-account.c:217
+msgid "Account is online"
+msgstr "帳號在線上"
+
+#: src/calls-account.c:220
+msgid "Disconnecting from server…"
+msgstr "正在與伺服器中斷連線…"
+
+#: src/calls-account.c:223
+msgid "Account is offline"
+msgstr "帳號離線"
+
+#: src/calls-account.c:226
+msgid "Account encountered an error"
+msgstr "帳號遇到錯誤"
+
+#: src/calls-account.c:244
+msgid "No reason given"
+msgstr "沒有原因"
+
+#: src/calls-account.c:247
+msgid "Initialization started"
+msgstr "開始初始化"
+
+#: src/calls-account.c:250
+msgid "Initialization complete"
+msgstr "初始化完成"
+
+#: src/calls-account.c:253
+msgid "Uninitialization started"
+msgstr "開始取消初始化"
+
+#: src/calls-account.c:256
+msgid "Uninitialization complete"
+msgstr "取消初始化完成"
+
+#: src/calls-account.c:259
+msgid "No credentials set"
+msgstr "沒有設定憑證"
+
+#: src/calls-account.c:262
+msgid "Starting to connect"
+msgstr "開始連線"
+
+#: src/calls-account.c:265
+msgid "Connection timed out"
+msgstr "連線逾時"
+
+#: src/calls-account.c:268
+msgid "Domain name could not be resolved"
+msgstr "無法解析網域名稱"
+
+#: src/calls-account.c:271
+msgid "Server did not accept username or password"
+msgstr "伺服器不接受使用者名稱或密碼"
+
+#: src/calls-account.c:274
+msgid "Connecting complete"
+msgstr "連線完成"
+
+#: src/calls-account.c:277
+msgid "Starting to disconnect"
+msgstr "開始中斷連線"
+
+#: src/calls-account.c:280
+msgid "Disconnecting complete"
+msgstr "中斷連線完成"
+
+#: src/calls-account.c:283
+msgid "Internal error occurred"
+msgstr "發生網路錯誤"
+
+#: src/calls-application.c:318
+#, c-format
+msgid "Tried dialing invalid tel URI `%s'"
+msgstr "嘗試撥打無效的電話 URI「%s」"
+
+#: src/calls-application.c:635
+#, c-format
+msgid "Don't know how to open `%s'"
+msgstr "不知道如何開啟「%s」"
+
+#: src/calls-application.c:689
+msgid "The name of the plugin to use as a call provider"
+msgstr "提供通話功能的擴充套件名稱"
+
+#: src/calls-application.c:690
+msgid "PLUGIN"
+msgstr "擴充套件"
+
+#: src/calls-application.c:695
+msgid "Whether to present the main window on startup"
+msgstr "是否要在啟動時顯示視窗"
+
+#: src/calls-application.c:701
+msgid "Dial a telephone number"
+msgstr "撥打電話號碼"
+
+#: src/calls-application.c:702
+msgid "NUMBER"
+msgstr "電話號碼"
+
+#: src/calls-application.c:707
+msgid "Enable verbose debug messages"
+msgstr "啟用詳細偵錯訊息"
+
+#: src/calls-application.c:713
+msgid "Print current version"
+msgstr "輸出版本資訊"
+
+#: src/calls-best-match.c:435
+msgid "Anonymous caller"
+msgstr "匿名號碼"
+
+#: src/calls-call-record-row.c:97
+#, c-format
+msgid ""
+"%s\n"
+"yesterday"
+msgstr ""
+"%s\n"
+"昨天"
+
+#: src/calls-main-window.c:123
+msgid "translator-credits"
+msgstr "Freddy Cheng <freddy4212@gmail.com>, 2022."
+
+#: src/calls-main-window.c:316
+msgid "Can't place calls: No modem or VoIP account available"
+msgstr "無法撥打電話：沒有數據機或 VoIP 帳號"
+
+#: src/calls-main-window.c:318
+msgid "Can't place calls: No plugin loaded"
+msgstr "無法撥打電話：沒有載入擴充套件"
+
+#: src/calls-main-window.c:353
+msgid "Contacts"
+msgstr "聯絡人"
+
+#: src/calls-main-window.c:363
+msgid "Dial Pad"
+msgstr "撥號鍵盤"
+
+#. Recent as in "Recent calls" (the call history)
+#: src/calls-main-window.c:372
+msgid "Recent"
+msgstr "近期紀錄"
+
+#: src/calls-notifier.c:52
+msgid "Missed call"
+msgstr "未接來電"
+
+#. %s is a name here
+#: src/calls-notifier.c:76
+#, c-format
+msgid "Missed call from <b>%s</b>"
+msgstr "「%s」的未接來電"
+
+#. %s is a id here
+#: src/calls-notifier.c:79
+#, c-format
+msgid "Missed call from %s"
+msgstr "%s 的未接來電"
+
+#: src/calls-notifier.c:81
+msgid "Missed call from unknown caller"
+msgstr "不明號碼的未接來電"
+
+#: src/calls-notifier.c:87
+msgid "Call back"
+msgstr "回撥"
+
+#: src/ui/account-overview.ui:16
+msgid "VoIP Accounts"
+msgstr "VoIP 帳號"
+
+#: src/ui/account-overview.ui:49
+msgid "Add VoIP Accounts"
+msgstr "新增 VoIP 帳號"
+
+#: src/ui/account-overview.ui:51
+msgid ""
+"You can add VoIP account here. It will allow you to place and receive VoIP "
+"calls using the SIP protocol. This feature is still relatively new and not "
+"yet feature complete (i.e. no encrypted media)."
+msgstr ""
+"加入 VoIP 帳號，透過 SIP 通訊協定撥打和接聽 VoIP 電話。\n"
+"此功能相對新且尚未完善（目前僅能使用未加密媒體）。"
+
+#: src/ui/account-overview.ui:58 src/ui/account-overview.ui:97
+msgid "_Add Account"
+msgstr "新增帳號(_A)"
+
+#. Translators: This is a verb, not a noun. Call the number of the currently selected row.
+#: src/ui/call-record-row.ui:62
+msgid "Call"
+msgstr "撥打電話"
+
+#: src/ui/call-record-row.ui:102
+msgid "_Delete Call"
+msgstr "刪除電話"
+
+#. Translators: This is a phone number
+#: src/ui/call-record-row.ui:107
+msgid "_Copy number"
+msgstr "複製電話號碼(_C)"
+
+#: src/ui/call-record-row.ui:112
+msgid "_Add contact"
+msgstr "新增聯絡人(_A)"
+
+#: src/ui/call-selector-item.ui:38
+#, fuzzy
+msgid "On hold"
+msgstr "等候接聽"
+
+#: src/ui/contacts-box.ui:60
+msgid "No Contacts Found"
+msgstr "沒有聯絡人"
+
+#: src/ui/history-box.ui:10
+msgid "No Recent Calls"
+msgstr "沒有近期紀錄"
+
+#: src/ui/main-window.ui:105
+msgid "USSD"
+msgstr "USSD"
+
+#: src/ui/main-window.ui:114
+msgid "_Cancel"
+msgstr "取消(_C)"
+
+#: src/ui/main-window.ui:131
+msgid "_Close"
+msgstr "關閉(_C)"
+
+#: src/ui/main-window.ui:141
+msgid "_Send"
+msgstr "傳送(_S)"
+
+#: src/ui/main-window.ui:214
+msgid "_VoIP Accounts"
+msgstr "VoIP 帳號(_V)"
+
+#: src/ui/main-window.ui:227
+msgid "_Keyboard shortcuts"
+msgstr "鍵盤捷徑鍵(_K)"
+
+#: src/ui/main-window.ui:233
+msgid "_Help"
+msgstr "求助(_H)"
+
+#: src/ui/main-window.ui:239
+msgid "_About Calls"
+msgstr "關於通話(_A)"
+
+#: src/ui/new-call-box.ui:45
+msgid "Enter a VoIP address"
+msgstr "輸入 VoIP 位址"
+
+#: src/ui/new-call-box.ui:58
+msgid "Enter a number"
+msgstr "輸入電話號碼"
+
+#: src/ui/new-call-box.ui:97
+msgid "Dial"
+msgstr "撥號"
+
+#: src/ui/new-call-box.ui:120
+msgid "Delete character in front of cursor"
+msgstr "刪除游標前的字元"
+
+#: src/ui/new-call-box.ui:149
+msgid "SIP Account"
+msgstr "SIP 帳號"
+
+#: src/ui/new-call-header-bar.ui:6
+msgid "New Call"
+msgstr "新通話"
+
+#: src/ui/new-call-header-bar.ui:19
+msgid "Back"
+msgstr "返回"
+
+#: plugins/mm/calls-mm-call.c:73
+msgid "Call disconnected (unknown reason)"
+msgstr "通話中斷（原因不明）"
+
+#: plugins/mm/calls-mm-call.c:74
+msgid "Outgoing call started"
+msgstr "已撥出電話"
+
+#: plugins/mm/calls-mm-call.c:75
+msgid "New incoming call"
+msgstr "新來電"
+
+#: plugins/mm/calls-mm-call.c:76
+msgid "Call accepted"
+msgstr "接聽通話"
+
+#: plugins/mm/calls-mm-call.c:77
+msgid "Call ended"
+msgstr "通話結束"
+
+#: plugins/mm/calls-mm-call.c:78
+msgid "Call disconnected (busy or call refused)"
+msgstr "通話中斷（忙線或拒接）"
+
+#: plugins/mm/calls-mm-call.c:79
+msgid "Call disconnected (wrong id or network problem)"
+msgstr "通話中斷（ID 不正確或網路問題）"
+
+#: plugins/mm/calls-mm-call.c:80
+msgid "Call disconnected (error setting up audio channel)"
+msgstr "通話中斷（無法設定音訊）"
+
+#: plugins/mm/calls-mm-call.c:81
+msgid "Call transferred"
+msgstr "來電轉接"
+
+#: plugins/mm/calls-mm-call.c:82
+msgid "Call deflected"
+msgstr "呼叫偏轉"
+
+#: plugins/mm/calls-mm-call.c:107
+#, c-format
+msgid "Call disconnected (unknown reason code %i)"
+msgstr "通話中斷（不明原因代碼 %i）"
+
+#: plugins/mm/calls-mm-provider.c:82
+msgid "ModemManager unavailable"
+msgstr "找不到 ModemManager"
+
+#: plugins/mm/calls-mm-provider.c:84 plugins/ofono/calls-ofono-provider.c:96
+msgid "No voice-capable modem available"
+msgstr "沒有具備語音能力的數據機"
+
+#: plugins/mm/calls-mm-provider.c:86 plugins/ofono/calls-ofono-provider.c:98
+msgid "Normal"
+msgstr "正常"
+
+#: plugins/mm/calls-mm-provider.c:445 plugins/ofono/calls-ofono-provider.c:543
+msgid "Initialized"
+msgstr "已初始化"
+
+#: plugins/ofono/calls-ofono-provider.c:94
+msgid "DBus unavailable"
+msgstr "找不到 DBus"
+
+#: plugins/sip/sip-account-widget.ui:11
+msgid "Add Account"
+msgstr "新增帳號"
+
+#: plugins/sip/sip-account-widget.ui:17
+msgid "_Log In"
+msgstr "登入(_L)"
+
+#: plugins/sip/sip-account-widget.ui:42
+msgid "Manage Account"
+msgstr "管理帳號"
+
+#: plugins/sip/sip-account-widget.ui:47
+msgid "_Apply"
+msgstr "套用(_A)"
+
+#: plugins/sip/sip-account-widget.ui:61
+msgid "_Delete"
+msgstr "刪除(_D)"
+
+#: plugins/sip/sip-account-widget.ui:91
+msgid "Server"
+msgstr "伺服器"
+
+#: plugins/sip/sip-account-widget.ui:109
+msgid "Display Name"
+msgstr "顯示名稱"
+
+#: plugins/sip/sip-account-widget.ui:110
+msgid "Optional"
+msgstr "選填"
+
+#: plugins/sip/sip-account-widget.ui:128
+msgid "User ID"
+msgstr "使用者 ID"
+
+#: plugins/sip/sip-account-widget.ui:141
+msgid "Password"
+msgstr "密碼"
+
+#: plugins/sip/sip-account-widget.ui:166
+msgid "Port"
+msgstr "通訊埠"
+
+#: plugins/sip/sip-account-widget.ui:182
+msgid "Transport"
+msgstr "傳輸層協定"
+
+#: plugins/sip/sip-account-widget.ui:194
+msgid "Use for Phone Calls"
+msgstr "用於撥打電話"
diff -pruN 43.0-1/src/calls-account-overview.c 44~alpha.1-1/src/calls-account-overview.c
--- 43.0-1/src/calls-account-overview.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/calls-account-overview.c	2023-01-12 09:50:29.000000000 +0000
@@ -24,6 +24,8 @@
 
 #define G_LOG_DOMAIN "CallsAccountOverview"
 
+#include "calls-config.h"
+
 #include "calls-account.h"
 #include "calls-account-overview.h"
 #include "calls-account-row.h"
@@ -31,6 +33,8 @@
 #include "calls-manager.h"
 #include "calls-in-app-notification.h"
 
+#include <glib/gi18n-lib.h>
+
 
 /**
  * Section:calls-account-overview
@@ -63,6 +67,8 @@ struct _CallsAccountOverview {
   GtkWidget                *current_account_widget;
 
   /* misc */
+  GtkEventController       *key_controller;
+  GtkEventController       *key_controller_account;
   CallsAccountOverviewState state;
   GList                    *providers;
   CallsInAppNotification   *in_app_notification;
@@ -167,10 +173,17 @@ on_account_row_activated (GtkListBox
 
   attach_account_widget (self, widget);
 
-  if (account)
+  if (account) {
+    g_autofree char *title = g_strdup_printf (_("Edit account: %s"),
+                                              calls_account_get_address (account));
+
     calls_account_provider_edit_account (provider, account);
-  else
+    gtk_window_set_title (self->account_window, title);
+  } else {
     calls_account_provider_add_new_account (provider);
+    gtk_window_set_title (self->account_window, _("Add new account"));
+
+  }
 
   gtk_window_present (self->account_window);
 }
@@ -277,11 +290,41 @@ on_providers_changed (CallsAccountOvervi
   gtk_widget_set_sensitive (self->add_btn, !!self->providers);
 }
 
+
+static gboolean
+on_key_pressed (GtkEventControllerKey *controller,
+                guint                  keyval,
+                guint                  keycode,
+                GdkModifierType        modifiers,
+                GtkWidget             *widget)
+{
+  if (keyval == GDK_KEY_Escape) {
+    gtk_widget_hide (widget);
+    return GDK_EVENT_STOP;
+  }
+
+  return GDK_EVENT_PROPAGATE;
+}
+
+static void
+calls_account_overview_dispose (GObject *object)
+{
+  CallsAccountOverview *self = CALLS_ACCOUNT_OVERVIEW (object);
+
+  g_clear_object (&self->key_controller);
+  g_clear_object (&self->key_controller_account);
+
+  G_OBJECT_CLASS (calls_account_overview_parent_class)->dispose (object);
+}
+
 static void
 calls_account_overview_class_init (CallsAccountOverviewClass *klass)
 {
+  GObjectClass *object_class = G_OBJECT_CLASS (klass);
   GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
 
+  object_class->dispose = calls_account_overview_dispose;
+
   gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/Calls/ui/account-overview.ui");
 
   gtk_widget_class_bind_template_child (widget_class, CallsAccountOverview, add_btn);
@@ -317,6 +360,20 @@ calls_account_overview_init (CallsAccoun
   gtk_window_set_transient_for (self->account_window, GTK_WINDOW (self));
 
   update_state (self);
+
+  self->key_controller = gtk_event_controller_key_new (GTK_WIDGET (self));
+  g_signal_connect (self->key_controller,
+                    "key-pressed",
+                    G_CALLBACK (on_key_pressed),
+                    self);
+
+  self->key_controller_account = gtk_event_controller_key_new (GTK_WIDGET (self->account_window));
+  g_signal_connect (self->key_controller_account,
+                    "key-pressed",
+                    G_CALLBACK (on_key_pressed),
+                    self->account_window);
+
+  gtk_window_set_title (GTK_WINDOW (self), _("Account overview"));
 }
 
 
diff -pruN 43.0-1/src/calls-application.c 44~alpha.1-1/src/calls-application.c
--- 43.0-1/src/calls-application.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/calls-application.c	2023-01-12 09:50:29.000000000 +0000
@@ -27,7 +27,7 @@
 
 #define G_LOG_DOMAIN "CallsApplication"
 
-#include "config.h"
+#include "calls-config.h"
 
 #include "calls-application.h"
 #include "calls-call-window.h"
@@ -45,6 +45,7 @@
 
 #include <call-ui.h>
 #include <glib/gi18n.h>
+#include <glib-unix.h>
 #include <handy.h>
 #include <libcallaudio.h>
 
@@ -69,14 +70,37 @@ struct _CallsApplication {
   CallsDBusManager *dbus_manager;
 
   char             *uri;
+  guint             id_sigterm;
+  guint             id_sigint;
 };
 
 G_DEFINE_TYPE (CallsApplication, calls_application, GTK_TYPE_APPLICATION);
 
 
-static gboolean start_proper (CallsApplication *self);
+static void start_proper (CallsApplication *self);
 
 
+static void
+quit_calls (CallsApplication *self)
+{
+  gtk_application_remove_window (GTK_APPLICATION (self), GTK_WINDOW (self->main_window));
+  gtk_application_remove_window (GTK_APPLICATION (self), GTK_WINDOW (self->call_window));
+}
+
+
+static gboolean
+on_int_or_term_signal (CallsApplication *self)
+{
+  g_debug ("Received SIGTERM/SIGINT, shutting down gracefully");
+
+  self->id_sigint = 0;
+  self->id_sigterm = 0;
+
+  quit_calls (self);
+
+  return G_SOURCE_REMOVE;
+}
+
 static gboolean
 cmd_verbose_cb (const char *option_name,
                 const char *value,
@@ -186,16 +210,12 @@ set_daemon_action (GSimpleAction *action
                    gpointer       user_data)
 {
   CallsApplication *self = CALLS_APPLICATION (user_data);
+  gboolean daemon = g_variant_get_boolean (parameter);
 
-  if (self->main_window) {
-    g_warning ("Cannot set application as a daemon"
-               " because application is already started");
-    return;
-  }
-
-  self->daemon = TRUE;
+  self->daemon = daemon;
 
-  g_debug ("Application marked as daemon");
+  g_debug ("Application %smarked as daemon",
+           daemon ? "" : "not ");
 }
 
 
@@ -390,7 +410,7 @@ static const GActionEntry actions[] =
 {
   { "set-provider-names", set_provider_names_action, "as" },
   { "set-default-providers", set_default_providers_action, NULL },
-  { "set-daemon", set_daemon_action, NULL },
+  { "set-daemon", set_daemon_action, "b" },
   { "dial", dial_action, "s" },
   { "copy-number", copy_number, "s" },
   /* TODO About dialog { "about", show_about, NULL}, */
@@ -402,12 +422,21 @@ static int
 calls_application_handle_local_options (GApplication *application,
                                         GVariantDict *options)
 {
+  guint verbosity = calls_log_get_verbosity ();
+
   if (g_variant_dict_contains (options, "version")) {
     g_print ("%s %s\n", APP_DATA_NAME, *VCS_TAG ? VCS_TAG : PACKAGE_VERSION);
 
     return 0;
   }
 
+  /* Propagate verbosity changes to the main instance */
+  if (verbosity > 0) {
+    g_variant_dict_insert_value (options, "verbosity", g_variant_new_uint32 (verbosity));
+    g_print ("Increasing verbosity to %u\n", verbosity);
+  }
+
+
   return -1;
 }
 
@@ -470,6 +499,7 @@ calls_application_command_line (GApplica
   g_autoptr (GVariant) providers = NULL;
   g_auto (GStrv) arguments = NULL;
   gint argc;
+  guint verbosity;
 
   options = g_application_command_line_get_options_dict (command_line);
 
@@ -484,14 +514,25 @@ calls_application_command_line (GApplica
                                     NULL);
   }
 
-  if (g_variant_dict_contains (options, "daemon"))
-    g_action_group_activate_action (G_ACTION_GROUP (application),
-                                    "set-daemon", NULL);
+  g_action_group_activate_action (G_ACTION_GROUP (application),
+                                  "set-daemon",
+                                  g_variant_new_boolean (g_variant_dict_contains (options, "daemon")));
 
   if (g_variant_dict_lookup (options, "dial", "&s", &arg))
     g_action_group_activate_action (G_ACTION_GROUP (application),
                                     "dial", g_variant_new_string (arg));
 
+  /* TODO make this a comma separated string of "CATEGORY:level" pairs */
+  if (g_variant_dict_lookup (options, "verbosity", "u", &verbosity)) {
+    gint delta = calls_log_set_verbosity (verbosity);
+    guint level = calls_log_get_verbosity ();
+    if (delta != 0)
+      g_print ("%s verbosity by %d to %u\n",
+               delta > 0 ? "Increased" : "Decreased",
+               delta < 0 ? -1 * delta : delta,
+               level);
+  }
+
   arguments = g_application_command_line_get_arguments (command_line, &argc);
 
   /* Keep only the first URI, if there are many */
@@ -534,13 +575,13 @@ notify_window_visible_cb (GtkWidget
 }
 
 
-static gboolean
+static void
 start_proper (CallsApplication *self)
 {
   GtkApplication *gtk_app;
 
   if (self->main_window) {
-    return TRUE;
+    return;
   }
 
   gtk_app = GTK_APPLICATION (self);
@@ -566,10 +607,9 @@ start_proper (CallsApplication *self)
                     "notify::visible",
                     G_CALLBACK (notify_window_visible_cb),
                     self);
-
-  return TRUE;
 }
 
+
 static void
 activate (GApplication *application)
 {
@@ -578,15 +618,8 @@ activate (GApplication *application)
 
   g_debug ("Activated");
 
-  if (self->main_window) {
-    present = TRUE;
-  } else {
-    gboolean ok = start_proper (self);
-    if (!ok)
-      return;
-
-    present = !self->daemon;
-  }
+  start_proper (self);
+  present = !self->daemon;
 
   if (present || self->uri) {
     gtk_window_present (GTK_WINDOW (self->main_window));
@@ -604,6 +637,7 @@ activate (GApplication *application)
   g_clear_pointer (&self->uri, g_free);
 }
 
+
 static void
 app_open (GApplication *application,
           GFile       **files,
@@ -649,8 +683,12 @@ finalize (GObject *object)
 {
   CallsApplication *self = (CallsApplication *) object;
 
-  g_clear_object (&self->call_window);
-  g_clear_object (&self->main_window);
+  g_clear_handle_id (&self->id_sigterm, g_source_remove);
+  g_clear_handle_id (&self->id_sigint, g_source_remove);
+
+  gtk_widget_destroy (GTK_WIDGET (self->main_window));
+  gtk_widget_destroy (GTK_WIDGET (self->call_window));
+
   g_clear_object (&self->record_store);
   g_clear_object (&self->ringer);
   g_clear_object (&self->notifier);
@@ -721,6 +759,12 @@ calls_application_init (CallsApplication
     }
   };
 
+  self->id_sigterm = g_unix_signal_add (SIGTERM, G_SOURCE_FUNC (on_int_or_term_signal), self);
+  g_source_set_name_by_id (self->id_sigterm, "signal: SIGTERM handler");
+
+  self->id_sigint = g_unix_signal_add (SIGINT, G_SOURCE_FUNC (on_int_or_term_signal), self);
+  g_source_set_name_by_id (self->id_sigint, "signal: SIGINT handler");
+
   g_application_add_main_option_entries (G_APPLICATION (self), options);
 }
 
diff -pruN 43.0-1/src/calls-call-record-row.c 44~alpha.1-1/src/calls-call-record-row.c
--- 43.0-1/src/calls-call-record-row.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/calls-call-record-row.c	2023-01-12 09:50:29.000000000 +0000
@@ -284,10 +284,35 @@ setup_time (CallsCallRecordRow *self,
 
 
 static void
-on_notify_can_add_contacts (CallsCallRecordRow *self)
+setup_popover_actions (CallsCallRecordRow *self)
 {
   CallsContactsProvider *contacts_provider;
   GAction *action_new_contact = g_action_map_lookup_action (self->action_map, "new-contact");
+  GAction *action_copy = g_action_map_lookup_action (self->action_map, "copy-number");
+  GAction *action_sms = g_action_map_lookup_action (self->action_map, "new-sms");
+  g_autofree gchar *target = NULL;
+  g_autofree gchar *protocol = NULL;
+  gboolean enable_copy = FALSE;
+  gboolean enable_sms = FALSE;
+
+  g_object_get (self->record,
+                "target", &target,
+                "protocol", &protocol,
+                NULL);
+
+  if (!STR_IS_NULL_OR_EMPTY (target)) {
+    enable_copy = TRUE;
+
+    if (g_strcmp0 (protocol, "tel") == 0) {
+      g_autoptr (GAppInfo) app_info_sms =
+        g_app_info_get_default_for_uri_scheme ("sms");
+
+      enable_sms = !!app_info_sms;
+    }
+  }
+
+  g_simple_action_set_enabled (G_SIMPLE_ACTION (action_sms), enable_sms);
+  g_simple_action_set_enabled (G_SIMPLE_ACTION (action_copy), enable_copy);
 
   contacts_provider = calls_manager_get_contacts_provider (calls_manager_get_default ());
 
@@ -306,32 +331,17 @@ on_notify_can_add_contacts (CallsCallRec
 static void
 setup_contact (CallsCallRecordRow *self)
 {
-  GAction *action_copy = g_action_map_lookup_action (self->action_map, "copy-number");
   g_autofree gchar *target = NULL;
   CallsContactsProvider *contacts_provider;
 
-  contacts_provider = calls_manager_get_contacts_provider (calls_manager_get_default ());
-
-  g_signal_connect_swapped (contacts_provider,
-                            "notify::can-add-contacts",
-                            G_CALLBACK (on_notify_can_add_contacts),
-                            self);
-
-  on_notify_can_add_contacts (self);
 
   // Get the target number
   g_object_get (G_OBJECT (self->record),
                 "target", &target,
                 NULL);
 
-  if (STR_IS_NULL_OR_EMPTY (target)) {
-    gtk_actionable_set_action_name (GTK_ACTIONABLE (self->button), NULL);
-    g_simple_action_set_enabled (G_SIMPLE_ACTION (action_copy), FALSE);
-  } else {
-    g_simple_action_set_enabled (G_SIMPLE_ACTION (action_copy), TRUE);
-  }
-
   // Look up the best match object
+  contacts_provider = calls_manager_get_contacts_provider (calls_manager_get_default ());
   self->contact = calls_contacts_provider_lookup_id (contacts_provider, target);
 
   if (!self->contact) {
@@ -371,6 +381,7 @@ context_menu (GtkWidget *widget,
                             "row-history");
   }
 
+  setup_popover_actions (self);
   gtk_popover_popup (self->popover);
 }
 
@@ -434,11 +445,9 @@ constructed (GObject *object)
   gboolean inbound;
   GDateTime *answered;
   GDateTime *end;
-  GAction *sms_action;
   g_autofree char *protocol = NULL;
   g_autofree char *action_name = NULL;
   g_autofree char *target = NULL;
-  gboolean sms_enabled = FALSE;
 
   G_OBJECT_CLASS (calls_call_record_row_parent_class)->constructed (object);
 
@@ -458,20 +467,12 @@ constructed (GObject *object)
 
   gtk_actionable_set_action_name (GTK_ACTIONABLE (self->button), action_name);
 
-  sms_action = g_action_map_lookup_action (self->action_map, "new-sms");
-  /* TODO add origin ID to action target */
-  if (!STR_IS_NULL_OR_EMPTY (target)) {
+  if (STR_IS_NULL_OR_EMPTY (target))
+    gtk_actionable_set_action_name (GTK_ACTIONABLE (self->button), NULL);
+  else
+    /* TODO add origin ID to action target */
     gtk_actionable_set_action_target (GTK_ACTIONABLE (self->button),
                                       "(ss)", target, "");
-    if (g_strcmp0 (protocol, "tel") == 0) {
-      g_autoptr (GAppInfo) app_info_sms =
-        g_app_info_get_default_for_uri_scheme ("sms");
-
-      sms_enabled = !!app_info_sms;
-    }
-  }
-
-  g_simple_action_set_enabled (G_SIMPLE_ACTION (sms_action), sms_enabled);
 
   setup_time (self, inbound, answered, end);
   calls_date_time_unref (answered);
diff -pruN 43.0-1/src/calls-contacts-provider.c 44~alpha.1-1/src/calls-contacts-provider.c
--- 43.0-1/src/calls-contacts-provider.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/calls-contacts-provider.c	2023-01-12 09:50:29.000000000 +0000
@@ -191,24 +191,38 @@ folks_prepare_cb (GObject      *obj,
 
 
 static void
+set_can_add_contacts (CallsContactsProvider *self,
+                      gboolean               can_add)
+{
+  g_assert (CALLS_IS_CONTACTS_PROVIDER (self));
+
+  g_info ("Can%s add contacts", can_add ? "" : "not");
+
+  if (self->can_add_contacts == can_add)
+    return;
+
+  self->can_add_contacts = can_add;
+  g_object_notify_by_pspec(G_OBJECT (self), props[PROP_CAN_ADD_CONTACTS]);
+}
+
+
+static void
 on_contacts_actions_updated (CallsContactsProvider *self)
 {
+  gboolean has_action;
+  gboolean action_enabled;
   const char *contact_action_name = "new-contact-data";
 
   g_assert (CALLS_IS_CONTACTS_PROVIDER (self));
 
-  if (self->can_add_contacts)
-    return;
+  has_action =
+    g_action_group_has_action (G_ACTION_GROUP (self->contacts_action_group),
+                               contact_action_name);
+  action_enabled =
+    g_action_group_get_action_enabled (G_ACTION_GROUP (self->contacts_action_group),
+                                       contact_action_name);
 
-  if (g_action_group_has_action (G_ACTION_GROUP (self->contacts_action_group),
-                                 contact_action_name) &&
-      g_action_group_get_action_enabled (G_ACTION_GROUP (self->contacts_action_group),
-                                         contact_action_name)) {
-    g_debug ("Can add contacts");
-
-    self->can_add_contacts = TRUE;
-    g_object_notify_by_pspec (G_OBJECT (self), props[PROP_CAN_ADD_CONTACTS]);
-  }
+  set_can_add_contacts (self, has_action && action_enabled);
 }
 
 
@@ -220,8 +234,6 @@ on_contacts_appeared (GDBusConnection *c
 {
   CallsContactsProvider *self;
 
-  g_autoptr (GError) error = NULL;
-
   g_assert (CALLS_IS_CONTACTS_PROVIDER (user_data));
 
   self = user_data;
diff -pruN 43.0-1/src/calls-contacts-provider.h 44~alpha.1-1/src/calls-contacts-provider.h
--- 43.0-1/src/calls-contacts-provider.h	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/calls-contacts-provider.h	2023-01-12 09:50:29.000000000 +0000
@@ -39,7 +39,9 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMap, g
 G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeSet, g_object_unref)
 G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeSortedSet, g_object_unref)
 G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeCollection, g_object_unref)
+#if !EDS_CHECK_VERSION(3, 47, 1)
 G_DEFINE_AUTOPTR_CLEANUP_FUNC (EPhoneNumber, e_phone_number_free)
+#endif
 
 typedef void (*IdleCallback) (gpointer         user_data,
                               FolksIndividual *individual);
diff -pruN 43.0-1/src/calls-dbus-manager.c 44~alpha.1-1/src/calls-dbus-manager.c
--- 43.0-1/src/calls-dbus-manager.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/calls-dbus-manager.c	2023-01-12 09:50:29.000000000 +0000
@@ -8,7 +8,7 @@
 
 #define G_LOG_DOMAIN "CallsDBusManager"
 
-#include "config.h"
+#include "calls-config.h"
 #include "calls-call.h"
 #include "calls-call-dbus.h"
 #include "calls-dbus-manager.h"
diff -pruN 43.0-1/src/calls-history-box.c 44~alpha.1-1/src/calls-history-box.c
--- 43.0-1/src/calls-history-box.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/calls-history-box.c	2023-01-12 09:50:29.000000000 +0000
@@ -94,7 +94,7 @@ delete_call_cb (CallsCallRecord *record,
 
   g_return_if_fail (CALLS_IS_CALL_RECORD (record));
 
-  ok = calls_find_in_store (self->model,
+  ok = calls_find_in_model (self->model,
                             record,
                             &position);
 
@@ -227,9 +227,9 @@ dispose (GObject *object)
 {
   CallsHistoryBox *self = CALLS_HISTORY_BOX (object);
 
+  g_clear_signal_handler (&self->model_changed_handler_id, self->model);
   g_clear_object (&self->slice_model);
   g_clear_object (&self->model);
-  g_clear_signal_handler (&self->model_changed_handler_id, self->model);
 
   G_OBJECT_CLASS (calls_history_box_parent_class)->dispose (object);
 }
diff -pruN 43.0-1/src/calls-log.c 44~alpha.1-1/src/calls-log.c
--- 43.0-1/src/calls-log.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/calls-log.c	2023-01-12 09:50:29.000000000 +0000
@@ -9,9 +9,10 @@
  * SPDX-License-Identifier: GPL-3.0-or-later
  */
 
+#define _GNU_SOURCE
+
 #include "calls-log.h"
 
-#define _GNU_SOURCE
 #include <string.h>
 #include <glib.h>
 #include <stdio.h>
@@ -20,7 +21,7 @@
 #define DEFAULT_DOMAIN_PREFIX "Calls"
 
 static char *domains;
-static int verbosity;
+static guint verbosity;
 static gboolean any_domain;
 static gboolean stderr_is_journal;
 
@@ -273,8 +274,22 @@ calls_log_increase_verbosity (void)
   verbosity++;
 }
 
-int
+guint
 calls_log_get_verbosity (void)
 {
   return verbosity;
 }
+
+
+int
+calls_log_set_verbosity (guint new_verbosity)
+{
+  int diff = new_verbosity - verbosity;
+
+  if (new_verbosity == verbosity)
+    return 0;
+
+  verbosity = new_verbosity;
+
+  return diff;
+}
diff -pruN 43.0-1/src/calls-log.h 44~alpha.1-1/src/calls-log.h
--- 43.0-1/src/calls-log.h	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/calls-log.h	2023-01-12 09:50:29.000000000 +0000
@@ -11,6 +11,8 @@
 
 #pragma once
 
+#include <glib.h>
+
 #ifndef CALLS_LOG_LEVEL_TRACE
 # define CALLS_LOG_LEVEL_TRACE ((GLogLevelFlags)(1 << G_LOG_LEVEL_USER_SHIFT))
 # define CALLS_LOG_DETAILED ((GLogLevelFlags)(8 << G_LOG_LEVEL_USER_SHIFT))
@@ -34,6 +36,7 @@
                              __FILE__, G_STRINGIFY (__LINE__),          \
                              G_STRFUNC, __VA_ARGS__)
 
-void calls_log_init               (void);
-void calls_log_increase_verbosity (void);
-int  calls_log_get_verbosity      (void);
+void  calls_log_init               (void);
+void  calls_log_increase_verbosity (void);
+guint calls_log_get_verbosity      (void);
+int   calls_log_set_verbosity      (guint new_verbosity);
diff -pruN 43.0-1/src/calls-main-window.c 44~alpha.1-1/src/calls-main-window.c
--- 43.0-1/src/calls-main-window.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/calls-main-window.c	2023-01-12 09:50:29.000000000 +0000
@@ -31,7 +31,7 @@
 #include "calls-history-box.h"
 #include "calls-in-app-notification.h"
 #include "calls-manager.h"
-#include "config.h"
+#include "calls-config.h"
 #include "util.h"
 #include "version.h"
 
diff -pruN 43.0-1/src/calls-manager.c 44~alpha.1-1/src/calls-manager.c
--- 43.0-1/src/calls-manager.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/calls-manager.c	2023-01-12 09:50:29.000000000 +0000
@@ -25,10 +25,9 @@
 
 #define G_LOG_DOMAIN "CallsManager"
 
-#include "config.h"
+#include "calls-config.h"
 
 #include "calls-account.h"
-#include "calls-application.h"
 #include "calls-contacts-provider.h"
 #include "calls-manager.h"
 #include "calls-message-source.h"
@@ -519,7 +518,7 @@ origin_found_in_any_provider (CallsManag
     CallsProvider *provider = CALLS_PROVIDER (value);
     GListModel *origins = calls_provider_get_origins (provider);
 
-    if (origins && calls_find_in_store (origins,
+    if (origins && calls_find_in_model (origins,
                                         origin,
                                         &position))
       return TRUE;
@@ -804,18 +803,22 @@ calls_manager_init (CallsManager *self)
   dir = g_getenv ("CALLS_PLUGIN_DIR");
   if (dir && dir[0] != '\0') {
     g_autofree char *plugin_dir_provider = NULL;
-    /** Add the directory to the search path. prepend_search_path() does not work
-     * as expected. see https://gitlab.gnome.org/GNOME/libpeas/-/issues/19
-     */
 
     plugin_dir_provider = g_build_filename (dir, "provider", NULL);
-    g_debug ("Adding %s to plugin search path", plugin_dir_provider);
-    peas_engine_add_search_path (peas, plugin_dir_provider, NULL);
+
+    if (g_file_test (plugin_dir_provider, G_FILE_TEST_EXISTS)) {
+      g_debug ("Adding %s to plugin search path", plugin_dir_provider);
+      peas_engine_prepend_search_path (peas, plugin_dir_provider, NULL);
+    } else {
+      g_warning ("Not adding %s to plugin search path, because the directory doesn't exist. Check if env CALLS_PLUGIN_DIR is set correctly", plugin_dir_provider);
+    }
   }
 
   default_plugin_dir_provider = g_build_filename(PLUGIN_LIBDIR, "provider", NULL);
   peas_engine_add_search_path (peas, default_plugin_dir_provider, NULL);
   g_debug ("Scanning for plugins in `%s'", default_plugin_dir_provider);
+
+  peas_engine_rescan_plugins (peas);
 }
 
 
diff -pruN 43.0-1/src/calls-new-call-box.c 44~alpha.1-1/src/calls-new-call-box.c
--- 43.0-1/src/calls-new-call-box.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/calls-new-call-box.c	2023-01-12 09:50:29.000000000 +0000
@@ -31,6 +31,7 @@
 #include "calls-settings.h"
 #include "calls-ussd.h"
 
+#include <call-ui.h>
 #include <glib/gi18n.h>
 #include <handy.h>
 
@@ -46,13 +47,10 @@ struct _CallsNewCallBox {
 
   GtkListBox          *origin_list_box;
   HdyComboRow         *origin_list;
-  GtkButton           *backspace;
-  HdyKeypad           *keypad;
-  GtkButton           *dial;
+  CuiDialpad          *dialpad;
   GtkEntry            *address_entry;
   HdyActionRow        *result;
   GtkButton           *dial_result;
-  GtkGestureLongPress *long_press_back_gesture;
 
   GList               *dial_queue;
 
@@ -170,23 +168,6 @@ notify_selected_index_cb (CallsNewCallBo
 }
 
 
-
-static void
-long_press_back_cb (CallsNewCallBox *self)
-{
-  GtkEntry *entry = hdy_keypad_get_entry (self->keypad);
-
-  gtk_editable_delete_text (GTK_EDITABLE (entry), 0, -1);
-}
-
-static void
-backspace_clicked_cb (CallsNewCallBox *self)
-{
-  GtkEntry *entry = hdy_keypad_get_entry (self->keypad);
-
-  g_signal_emit_by_name (entry, "backspace", NULL);
-}
-
 static void
 ussd_send_cb (GObject      *object,
               GAsyncResult *result,
@@ -215,21 +196,23 @@ ussd_send_cb (GObject      *object,
 }
 
 static void
-dial_clicked_cb (CallsNewCallBox *self)
+dialpad_dialed_cb (CuiDialpad      *dialpad,
+                   const char      *number,
+                   CallsNewCallBox *self)
 {
-  GtkEntry *entry = hdy_keypad_get_entry (self->keypad);
   GtkWidget *window;
-  const char *text;
+
+  g_assert (CALLS_IS_NEW_CALL_BOX (self));
 
   window = gtk_widget_get_toplevel (GTK_WIDGET (self));
-  text = gtk_entry_get_text (entry);
 
   if (CALLS_IS_MAIN_WINDOW (window))
-    calls_main_window_dial (CALLS_MAIN_WINDOW (window), text);
+    calls_main_window_dial (CALLS_MAIN_WINDOW (window), number);
   else
-    calls_new_call_box_dial (self, text);
+    calls_new_call_box_dial (self, number);
 }
 
+
 static void
 dial_result_clicked_cb (CallsNewCallBox *self)
 {
@@ -306,7 +289,7 @@ origin_count_changed_cb (CallsNewCallBox
   n_items = g_list_model_get_n_items (origins);
 
   gtk_widget_set_visible (GTK_WIDGET (self->origin_list_box), n_items > 1);
-  gtk_widget_set_sensitive (GTK_WIDGET (self->dial), n_items > 0);
+  gtk_widget_set_sensitive (GTK_WIDGET (self->dialpad), n_items > 0);
 
   if (n_items)
     dial_queued (self);
@@ -358,9 +341,6 @@ calls_new_call_box_dispose (GObject *obj
 
   clear_dial_queue (self);
 
-  if (self->long_press_back_gesture != NULL)
-    g_object_unref (self->long_press_back_gesture);
-
   G_OBJECT_CLASS (calls_new_call_box_parent_class)->dispose (object);
 }
 
@@ -377,18 +357,13 @@ calls_new_call_box_class_init (CallsNewC
   gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/Calls/ui/new-call-box.ui");
   gtk_widget_class_bind_template_child (widget_class, CallsNewCallBox, origin_list_box);
   gtk_widget_class_bind_template_child (widget_class, CallsNewCallBox, origin_list);
-  gtk_widget_class_bind_template_child (widget_class, CallsNewCallBox, backspace);
-  gtk_widget_class_bind_template_child (widget_class, CallsNewCallBox, long_press_back_gesture);
-  gtk_widget_class_bind_template_child (widget_class, CallsNewCallBox, keypad);
-  gtk_widget_class_bind_template_child (widget_class, CallsNewCallBox, dial);
+  gtk_widget_class_bind_template_child (widget_class, CallsNewCallBox, dialpad);
   gtk_widget_class_bind_template_child (widget_class, CallsNewCallBox, address_entry);
   gtk_widget_class_bind_template_callback (widget_class, address_activate_cb);
   gtk_widget_class_bind_template_callback (widget_class, address_changed_cb);
   gtk_widget_class_bind_template_child (widget_class, CallsNewCallBox, result);
-  gtk_widget_class_bind_template_callback (widget_class, dial_clicked_cb);
+  gtk_widget_class_bind_template_callback (widget_class, dialpad_dialed_cb);
   gtk_widget_class_bind_template_callback (widget_class, dial_result_clicked_cb);
-  gtk_widget_class_bind_template_callback (widget_class, backspace_clicked_cb);
-  gtk_widget_class_bind_template_callback (widget_class, long_press_back_cb);
   gtk_widget_class_bind_template_callback (widget_class, notify_selected_index_cb);
 
   props[PROP_NUMERIC_INPUT_ONLY] =
@@ -409,6 +384,7 @@ calls_new_call_box_new (void)
 }
 
 
+
 void
 calls_new_call_box_dial (CallsNewCallBox *self,
                          const gchar     *target)
@@ -439,7 +415,6 @@ calls_new_call_box_send_ussd_async (Call
 {
   g_autoptr (CallsOrigin) origin = NULL;
   g_autoptr (GTask) task = NULL;
-  GtkEntry *entry;
 
   g_return_if_fail (CALLS_IS_NEW_CALL_BOX (self));
   g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable));
@@ -463,9 +438,6 @@ calls_new_call_box_send_ussd_async (Call
 
   calls_ussd_initiate_async (CALLS_USSD (origin), target, cancellable,
                              ussd_send_cb, g_steal_pointer (&task));
-
-  entry = hdy_keypad_get_entry (self->keypad);
-  gtk_editable_delete_text (GTK_EDITABLE (entry), 0, -1);
 }
 
 char *
diff -pruN 43.0-1/src/calls-notifier.c 44~alpha.1-1/src/calls-notifier.c
--- 43.0-1/src/calls-notifier.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/calls-notifier.c	2023-01-12 09:50:29.000000000 +0000
@@ -24,7 +24,7 @@
 
 #define G_LOG_DOMAIN "CallsNotifier"
 
-#include "config.h"
+#include "calls-config.h"
 
 #include "calls-manager.h"
 #include "calls-notifier.h"
diff -pruN 43.0-1/src/calls-provider.c 44~alpha.1-1/src/calls-provider.c
--- 43.0-1/src/calls-provider.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/calls-provider.c	2023-01-12 09:50:29.000000000 +0000
@@ -27,7 +27,7 @@
 #include "calls-provider.h"
 #include "calls-origin.h"
 #include "calls-message-source.h"
-#include "config.h"
+#include "calls-config.h"
 #include "util.h"
 
 #include <glib/gi18n.h>
diff -pruN 43.0-1/src/calls-record-store.c 44~alpha.1-1/src/calls-record-store.c
--- 43.0-1/src/calls-record-store.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/calls-record-store.c	2023-01-12 09:50:29.000000000 +0000
@@ -24,7 +24,7 @@
 
 #define G_LOG_DOMAIN "CallsRecordStore"
 
-#include "config.h"
+#include "calls-config.h"
 
 #include "calls-call-record.h"
 #include "calls-manager.h"
@@ -53,12 +53,9 @@ typedef enum
 static CallsCallRecordState
 state_to_record_state (CuiCallState call_state)
 {
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
   switch (call_state) {
   case CUI_CALL_STATE_CALLING:
-  case CUI_CALL_STATE_ALERTING:
   case CUI_CALL_STATE_INCOMING:
-  case CUI_CALL_STATE_WAITING:
     return STARTED;
 
   case CUI_CALL_STATE_ACTIVE:
@@ -71,7 +68,6 @@ state_to_record_state (CuiCallState call
   default:
     g_assert_not_reached ();
   }
-#pragma GCC diagnostic warning "-Wdeprecated-declarations"
 }
 
 
@@ -670,7 +666,6 @@ dispose (GObject *object)
   g_list_store_remove_all (G_LIST_STORE (self));
 
   g_clear_object (&self->repository);
-  close_adapter (self);
 
   G_OBJECT_CLASS (calls_record_store_parent_class)->dispose (object);
 }
@@ -682,6 +677,7 @@ finalize (GObject *object)
   CallsRecordStore *self = CALLS_RECORD_STORE (object);
 
   g_free (self->filename);
+  close_adapter (self);
 
   G_OBJECT_CLASS (calls_record_store_parent_class)->finalize (object);
 }
diff -pruN 43.0-1/src/calls-ringer.c 44~alpha.1-1/src/calls-ringer.c
--- 43.0-1/src/calls-ringer.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/calls-ringer.c	2023-01-12 09:50:29.000000000 +0000
@@ -23,12 +23,14 @@
  */
 #define G_LOG_DOMAIN "CallsRinger"
 
-#include "config.h"
+#include "calls-config.h"
 
 #include "calls-manager.h"
 #include "calls-ringer.h"
 #include "calls-ui-call-data.h"
 
+#include "enum-types.h"
+
 #include <glib/gi18n.h>
 #include <glib-object.h>
 
@@ -38,78 +40,67 @@
 
 enum {
   PROP_0,
-  PROP_IS_RINGING,
-  PROP_RING_IS_QUIET,
+  PROP_RING_STATE,
   PROP_LAST_PROP
 };
 static GParamSpec *props[PROP_LAST_PROP];
 
 
-typedef enum {
-  CALLS_RING_STATE_INACTIVE,
-  CALLS_RING_STATE_REQUEST_PLAY,
-  CALLS_RING_STATE_PLAYING,
-  CALLS_RING_STATE_REQUEST_STOP
-} CallsRingState;
-
-
 struct _CallsRinger {
   GObject        parent_instance;
 
   GList         *calls;
-  LfbEvent      *event;
-  GCancellable  *cancel_ring;
+  LfbEvent      *ringing_event;
+  LfbEvent      *ringing_soft_event;
+
+  GCancellable  *cancel;
+
   CallsRingState state;
+  CallsRingState target_state;
 
-  guint          restart_id;
-  gboolean       is_quiet;
+  gboolean       freeze_state_notify;
 };
 
 
 G_DEFINE_TYPE (CallsRinger, calls_ringer, G_TYPE_OBJECT)
 
 
+static void target_state_step (CallsRinger *self);
+
+
 static const char *
 ring_state_to_string (CallsRingState state)
 {
-  switch (state) {
-  case CALLS_RING_STATE_INACTIVE:
-    return "inactive";
-  case CALLS_RING_STATE_REQUEST_PLAY:
-    return "request-play";
-  case CALLS_RING_STATE_PLAYING:
-    return "playing";
-  case CALLS_RING_STATE_REQUEST_STOP:
-    return "request-stop";
-  default:
-    return "unknown";
-  }
+  g_autoptr (GEnumClass) enum_class = NULL;
+  GEnumValue *enum_val;
+
+  enum_class = g_type_class_ref (CALLS_TYPE_RING_STATE);
+  enum_val = g_enum_get_value (enum_class, state);
+
+  return enum_val ? enum_val->value_nick : "invalid-state";
 }
 
 
 static void
-change_ring_state (CallsRinger   *self,
-                   CallsRingState state)
+set_ring_state (CallsRinger   *self,
+                CallsRingState state)
 {
-  g_debug ("%s: old: %s; new: %s",
-           __func__, ring_state_to_string (self->state), ring_state_to_string (state));
+  g_assert (CALLS_IS_RINGER (self));
+  g_assert (state >= CALLS_RING_STATE_INACTIVE && state <= CALLS_RING_STATE_ERROR);
+
   if (self->state == state)
     return;
 
+  g_debug ("Setting ring state to '%s'", ring_state_to_string (state));
   self->state = state;
 
-  /* Currently restarting, so don't notify */
-  if (self->restart_id)
-    return;
-
-  /* Ringing has not yet started/stopped */
-  if (state == CALLS_RING_STATE_REQUEST_PLAY ||
-      state == CALLS_RING_STATE_REQUEST_STOP)
-    return;
-
-  g_debug ("%s: notify ring", __func__);
+  if (state == self->target_state)
+    self->freeze_state_notify = FALSE;
+  else
+    target_state_step (self);
 
-  g_object_notify_by_pspec (G_OBJECT (self), props[PROP_IS_RINGING]);
+  if (!self->freeze_state_notify)
+    g_object_notify_by_pspec (G_OBJECT (self), props[PROP_RING_STATE]);
 }
 
 
@@ -119,54 +110,39 @@ on_event_triggered (LfbEvent     *event,
                     CallsRinger  *self)
 {
   g_autoptr (GError) err = NULL;
+  CallsRingState state;
+  gboolean ok;
 
   g_return_if_fail (LFB_IS_EVENT (event));
-  g_return_if_fail (CALLS_IS_RINGER (self));
-
-  g_debug ("%s", __func__);
-  if (lfb_event_trigger_feedback_finish (event, res, &err)) {
-    change_ring_state (self, CALLS_RING_STATE_PLAYING);
-  } else {
-    if (!g_error_matches (err, G_IO_ERROR, G_IO_ERROR_CANCELLED))
-      g_warning ("Failed to trigger feedback for '%s': %s",
-                 lfb_event_get_event (event), err->message);
-    change_ring_state (self, CALLS_RING_STATE_INACTIVE);
-  }
 
-  g_object_unref (self);
-}
+  ok = lfb_event_trigger_feedback_finish (event, res, &err);
+  g_debug ("Feedback '%s' triggered %ssuccessfully",
+           lfb_event_get_event (event),
+           ok ? "" : "un");
 
+  if (!CALLS_IS_RINGER (self)) {
+    g_warning ("Event feedback triggered, but ringer is gone");
+    return;
+  }
 
-static void restart (CallsRinger *self, gboolean quiet);
-
-static void
-start (CallsRinger *self,
-       gboolean     quiet)
-{
-  g_debug ("%s: state: %s", __func__, ring_state_to_string (self->state));
-  if (self->event)
-    lfb_event_set_feedback_profile (self->event, quiet ? "quiet" : NULL);
-
-  if (self->state == CALLS_RING_STATE_PLAYING ||
-      self->state == CALLS_RING_STATE_REQUEST_PLAY) {
-    if (self->is_quiet != quiet)
-      restart (self, quiet);
+  if (!ok) {
+    if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+      g_debug ("Feedback has been cancelled");
+    else
+      g_warning ("Failed to trigger feedback for '%s': %s",
+                 lfb_event_get_event (event), err->message);
 
+    set_ring_state (self, CALLS_RING_STATE_ERROR);
     return;
   }
 
-  if (self->event) {
-    g_clear_object (&self->cancel_ring);
-    self->cancel_ring = g_cancellable_new ();
-
-    self->is_quiet = quiet;
-    g_object_ref (self);
-    lfb_event_trigger_feedback_async (self->event,
-                                      self->cancel_ring,
-                                      (GAsyncReadyCallback) on_event_triggered,
-                                      self);
-    change_ring_state (self, CALLS_RING_STATE_REQUEST_PLAY);
-  }
+
+  if (event == self->ringing_event)
+    state = CALLS_RING_STATE_RINGING;
+  else
+    state = CALLS_RING_STATE_RINGING_SOFT;
+
+  set_ring_state (self, state);
 }
 
 
@@ -176,21 +152,29 @@ on_event_feedback_ended (LfbEvent     *e
                          CallsRinger  *self)
 {
   g_autoptr (GError) err = NULL;
+  gboolean ok;
 
-  g_return_if_fail (LFB_IS_EVENT (event));
-  g_return_if_fail (CALLS_IS_RINGER (self));
+  g_assert (LFB_IS_EVENT (event));
 
-  g_debug ("%s: state: %s", __func__, ring_state_to_string (self->state));
+  ok = lfb_event_end_feedback_finish (event, res, &err);
+  g_debug ("Ended feedback '%s' %ssuccessfully",
+           lfb_event_get_event (event),
+           ok ? "" : "un");
 
-  if (self->state == CALLS_RING_STATE_REQUEST_PLAY ||
-      self->state == CALLS_RING_STATE_PLAYING)
-    g_warning ("Feedback ended although it should be playing");
+  if (!CALLS_IS_RINGER (self)) {
+    g_warning ("Event feedback ended, but ringer is gone");
+    return;
+  }
 
-  if (!lfb_event_end_feedback_finish (event, res, &err))
-    g_warning ("Failed to end feedback for '%s': %s",
-               lfb_event_get_event (event), err->message);
+  if (!ok) {
+    if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+      g_debug ("Ending feedback has been cancelled");
+    else
+      g_warning ("Failed to end feedback for '%s': %s",
+                 lfb_event_get_event (event), err->message);
 
-  change_ring_state (self, CALLS_RING_STATE_INACTIVE);
+    set_ring_state (self, CALLS_RING_STATE_ERROR);
+  }
 }
 
 
@@ -198,110 +182,101 @@ static void
 on_feedback_ended (LfbEvent    *event,
                    CallsRinger *self)
 {
-  g_debug ("Feedback ended");
-  g_debug ("%s: state: %s", __func__, ring_state_to_string (self->state));
-  change_ring_state (self, CALLS_RING_STATE_INACTIVE);
-}
+  g_assert (LFB_IS_EVENT (event));
 
+  g_debug ("Feedback ended");
 
-static void
-stop (CallsRinger *self)
-{
-  g_debug ("%s: state: %s", __func__, ring_state_to_string (self->state));
-  if (self->state == CALLS_RING_STATE_INACTIVE ||
-      self->state == CALLS_RING_STATE_REQUEST_STOP)
+  if (!CALLS_IS_RINGER (self)) {
+    g_warning ("Feedback stopped, but ringer is gone");
     return;
-
-  g_debug ("Stopping ringtone");
-  if (self->state == CALLS_RING_STATE_PLAYING) {
-    g_debug ("ending event feedback");
-    lfb_event_end_feedback_async (self->event,
-                                  NULL,
-                                  (GAsyncReadyCallback) on_event_feedback_ended,
-                                  self);
-    change_ring_state (self, CALLS_RING_STATE_REQUEST_STOP);
-  } else if (self->state == CALLS_RING_STATE_REQUEST_PLAY) {
-    g_debug ("cancelling event feedback");
-    g_cancellable_cancel (self->cancel_ring);
   }
-}
 
+  /* When no feedback is available on the system (e.g. no vibration motor or LEDs)
+   * it will get ended immediately on triggering. Changing the target state will
+   * break loop that would otherwise occur. */
+  if (lfb_event_get_end_reason (event) == LFB_EVENT_END_REASON_NOT_FOUND)
+    self->target_state = CALLS_RING_STATE_INACTIVE;
 
-typedef struct {
-  CallsRinger *ringer;
-  gboolean     quiet;
-} RestartRingerData;
+  set_ring_state (self, CALLS_RING_STATE_INACTIVE);
+}
 
 
-static gboolean
-on_ringer_restart (gpointer user_data)
+static LfbEvent *
+get_event_for_state (CallsRinger   *self,
+                     CallsRingState state)
 {
-  RestartRingerData *data = user_data;
+  switch (state) {
+  case CALLS_RING_STATE_RINGING:
+    return self->ringing_event;
+  case CALLS_RING_STATE_RINGING_SOFT:
+    return self->ringing_soft_event;
+  default:
+    g_assert_not_reached ();
+  }
+}
 
-  if (data->ringer->state == CALLS_RING_STATE_PLAYING) {
-    stop (data->ringer);
 
-    return G_SOURCE_CONTINUE;
-  }
+static void
+target_state_step (CallsRinger *self)
+{
+  LfbEvent *event;
 
-  /* wait until requests have been fulfilled */
-  if (data->ringer->state == CALLS_RING_STATE_REQUEST_PLAY ||
-      data->ringer->state == CALLS_RING_STATE_REQUEST_STOP) {
-    return G_SOURCE_CONTINUE;
-  }
+  g_assert (CALLS_IS_RINGER (self));
 
-  if (data->ringer->state == CALLS_RING_STATE_INACTIVE) {
-    start (data->ringer, data->quiet);
+  if (self->state == self->target_state ||
+      self->state == CALLS_RING_STATE_ERROR)
+    return;
 
-    return G_SOURCE_REMOVE;
-  }
+  g_clear_object (&self->cancel);
+  self->cancel = g_cancellable_new ();
 
-  g_return_val_if_reached (G_SOURCE_CONTINUE);
-}
+  if (self->state == CALLS_RING_STATE_INACTIVE) {
+    event = get_event_for_state (self, self->target_state);
+
+    lfb_event_trigger_feedback_async (event,
+                                      self->cancel,
+                                      (GAsyncReadyCallback) on_event_triggered,
+                                      self);
+  } else {
+    gboolean needs_restart =
+      self->target_state == CALLS_RING_STATE_RINGING ||
+      self->target_state == CALLS_RING_STATE_RINGING_SOFT;
 
+    if (needs_restart)
+      self->freeze_state_notify = TRUE;
 
-static void
-clean_up_restart_data (gpointer user_data)
-{
-  RestartRingerData *data = user_data;
+    event = get_event_for_state (self, self->state);
 
-  data->ringer->restart_id = 0;
+    lfb_event_end_feedback_async (event,
+                                  self->cancel,
+                                  (GAsyncReadyCallback) on_event_feedback_ended,
+                                  self);
+  }
 
-  g_free (data);
 }
 
 
 static void
-restart (CallsRinger *self,
-         gboolean     quiet)
+set_target_state (CallsRinger   *self,
+                  CallsRingState state)
 {
-  RestartRingerData *data = g_new0 (RestartRingerData, 1);
+  g_assert (CALLS_IS_RINGER (self));
+  g_assert (state >= CALLS_RING_STATE_INACTIVE &&
+            state <= CALLS_RING_STATE_RINGING_SOFT);
 
-  data->ringer = self;
-  data->quiet = quiet;
+  if (self->target_state == state)
+    return;
 
-  if (self->restart_id)
-    g_source_remove (self->restart_id);
+  self->target_state = state;
 
-  self->restart_id = g_idle_add_full (G_PRIORITY_DEFAULT_IDLE,
-                                      G_SOURCE_FUNC (on_ringer_restart),
-                                      data,
-                                      clean_up_restart_data);
+  target_state_step (self);
 }
 
 
 static inline gboolean
 is_ring_state (CuiCallState state)
 {
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-
-  switch (state) {
-  case CUI_CALL_STATE_INCOMING:
-  case CUI_CALL_STATE_WAITING:
-    return TRUE;
-  default:
-    return FALSE;
-  }
+  return state == CUI_CALL_STATE_INCOMING;
 }
 
 
@@ -311,18 +286,16 @@ is_active_state (CuiCallState state)
   switch (state) {
   case CUI_CALL_STATE_ACTIVE:
   case CUI_CALL_STATE_CALLING:
-  case CUI_CALL_STATE_ALERTING:
   case CUI_CALL_STATE_HELD:
     return TRUE;
   default:
     return FALSE;
   }
 }
-#pragma GCC diagnostic warning "-Wdeprecated-declarations"
 
 
 static gboolean
-has_active_call (CallsRinger *self)
+have_active_call (CallsRinger *self)
 {
   g_assert (CALLS_IS_RINGER (self));
 
@@ -337,7 +310,7 @@ has_active_call (CallsRinger *self)
 
 
 static gboolean
-has_incoming_call (CallsRinger *self)
+have_incoming_call (CallsRinger *self)
 {
   g_assert (CALLS_IS_RINGER (self));
 
@@ -356,17 +329,21 @@ has_incoming_call (CallsRinger *self)
 static void
 update_ring (CallsRinger *self)
 {
+  CallsRingState target_state;
+
   g_assert (CALLS_IS_RINGER (self));
 
-  if (!self->event) {
-    g_debug ("Can't ring because libfeedback is not initialized");
+  if (self->state == CALLS_RING_STATE_ERROR) {
+    g_debug ("Can't ring because we're in an error state");
     return;
   }
 
-  if (has_incoming_call (self))
-    start (self, has_active_call (self));
+  if (have_incoming_call (self))
+    target_state = !have_active_call (self) ? CALLS_RING_STATE_RINGING : CALLS_RING_STATE_RINGING_SOFT;
   else
-    stop (self);
+    target_state = CALLS_RING_STATE_INACTIVE;
+
+  set_target_state (self, target_state);
 }
 
 
@@ -407,15 +384,27 @@ calls_ringer_init (CallsRinger *self)
   g_autoptr (GError) err = NULL;
 
   if (lfb_init (APP_ID, &err)) {
-    self->event = lfb_event_new ("phone-incoming-call");
+    self->ringing_event = lfb_event_new ("phone-incoming-call");
     /* Let feedbackd do the loop */
-    lfb_event_set_timeout (self->event, 0);
-    g_signal_connect (self->event,
+    lfb_event_set_timeout (self->ringing_event, 0);
+    g_signal_connect (self->ringing_event,
+                      "feedback-ended",
+                      G_CALLBACK (on_feedback_ended),
+                      self);
+
+    /* FIXME change event once it's available in feedbackd,
+     * see https://source.puri.sm/Librem5/feedbackd/-/issues/37
+     */
+    self->ringing_soft_event = lfb_event_new ("phone-incoming-call");
+    lfb_event_set_timeout (self->ringing_soft_event, 15);
+    lfb_event_set_feedback_profile (self->ringing_soft_event, "quiet");
+    g_signal_connect (self->ringing_soft_event,
                       "feedback-ended",
                       G_CALLBACK (on_feedback_ended),
                       self);
   } else {
     g_warning ("Failed to init libfeedback: %s", err->message);
+    set_ring_state (self, CALLS_RING_STATE_ERROR);
   }
 }
 
@@ -427,12 +416,8 @@ get_property (GObject    *object,
               GParamSpec *pspec)
 {
   switch (property_id) {
-  case PROP_IS_RINGING:
-    g_value_set_boolean (value, calls_ringer_get_is_ringing (CALLS_RINGER (object)));
-    break;
-
-  case PROP_RING_IS_QUIET:
-    g_value_set_boolean (value, calls_ringer_get_ring_is_quiet (CALLS_RINGER (object)));
+  case PROP_RING_STATE:
+    g_value_set_enum (value, calls_ringer_get_state (CALLS_RINGER (object)));
     break;
 
   default:
@@ -473,40 +458,47 @@ dispose (GObject *object)
 {
   CallsRinger *self = CALLS_RINGER (object);
 
-  if (self->event) {
-    g_clear_object (&self->event);
-    lfb_uninit ();
-  }
   g_signal_handlers_disconnect_by_data (calls_manager_get_default (), self);
 
-  g_clear_handle_id (&self->restart_id, g_source_remove);
+  g_cancellable_cancel (self->cancel);
+  g_clear_object (&self->cancel);
 
   G_OBJECT_CLASS (calls_ringer_parent_class)->dispose (object);
 }
 
 
 static void
+finalize (GObject *object)
+{
+  CallsRinger *self = CALLS_RINGER (object);
+
+  if (lfb_is_initted ())
+    lfb_uninit ();
+
+  g_clear_object (&self->ringing_event);
+  g_clear_object (&self->ringing_soft_event);
+
+  G_OBJECT_CLASS (calls_ringer_parent_class)->finalize (object);
+}
+
+
+static void
 calls_ringer_class_init (CallsRingerClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
   object_class->constructed = constructed;
   object_class->dispose = dispose;
+  object_class->finalize = finalize;
   object_class->get_property = get_property;
 
-  props[PROP_IS_RINGING] =
-    g_param_spec_boolean ("ringing",
-                          "Ringing",
-                          "Whether we're currently ringing",
-                          FALSE,
-                          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
-
-  props[PROP_RING_IS_QUIET] =
-    g_param_spec_boolean ("is-quiet",
-                          "is quiet",
-                          "Whether the ringing is of the quiet persuasion",
-                          FALSE,
-                          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+  props[PROP_RING_STATE] =
+    g_param_spec_enum ("state",
+                       "",
+                       "",
+                       CALLS_TYPE_RING_STATE,
+                       CALLS_RING_STATE_INACTIVE,
+                       G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class,
                                      PROP_LAST_PROP,
@@ -521,30 +513,15 @@ calls_ringer_new (void)
 
 
 /**
- * calls_ringer_get_ring_is_ringing:
- * @self: A #CallsRinger
- *
- * Returns: %TRUE if currently ringing, %FALSE otherwise.
- */
-gboolean
-calls_ringer_get_is_ringing (CallsRinger *self)
-{
-  g_return_val_if_fail (CALLS_IS_RINGER (self), FALSE);
-
-  return self->state == CALLS_RING_STATE_PLAYING ||
-         self->state == CALLS_RING_STATE_REQUEST_STOP;
-}
-
-/**
- * calls_ringer_get_ring_is_quiet:
+ * calls_ringer_get_state
  * @self: A #CallsRinger
  *
- * Returns: %TRUE if currently ringing quietly, %FALSE otherwise.
+ * Returns: The #CallsRingerState
  */
-gboolean
-calls_ringer_get_ring_is_quiet (CallsRinger *self)
+CallsRingState
+calls_ringer_get_state (CallsRinger *self)
 {
-  g_return_val_if_fail (CALLS_IS_RINGER (self), FALSE);
+  g_return_val_if_fail (CALLS_IS_RINGER (self), CALLS_RING_STATE_INACTIVE);
 
-  return calls_ringer_get_is_ringing (self) && self->is_quiet;
+  return self->state;
 }
diff -pruN 43.0-1/src/calls-ringer.h 44~alpha.1-1/src/calls-ringer.h
--- 43.0-1/src/calls-ringer.h	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/calls-ringer.h	2023-01-12 09:50:29.000000000 +0000
@@ -28,13 +28,24 @@
 
 G_BEGIN_DECLS
 
+/* TODO docstring */
+typedef enum {
+  CALLS_RING_STATE_INACTIVE,
+  CALLS_RING_STATE_RINGING,
+  CALLS_RING_STATE_RINGING_SOFT,
+  CALLS_RING_STATE_ERROR
+} CallsRingState;
+
+
 #define CALLS_TYPE_RINGER (calls_ringer_get_type ())
 
 G_DECLARE_FINAL_TYPE (CallsRinger, calls_ringer, CALLS, RINGER, GObject)
 
 
 CallsRinger *calls_ringer_new                 (void);
-gboolean     calls_ringer_get_is_ringing      (CallsRinger *self);
-gboolean     calls_ringer_get_ring_is_quiet   (CallsRinger *self);
+CallsRingState calls_ringer_get_state         (CallsRinger *self);
+void         calls_ringer_start_ringing       (CallsRinger *self,
+                                               gboolean quiet);
+void         calls_ringer_stop_ringing        (CallsRinger *self);
 
 G_END_DECLS
diff -pruN 43.0-1/src/calls-ui-call-data.c 44~alpha.1-1/src/calls-ui-call-data.c
--- 43.0-1/src/calls-ui-call-data.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/calls-ui-call-data.c	2023-01-12 09:50:29.000000000 +0000
@@ -260,12 +260,26 @@ set_state (CallsUiCallData *self,
   old_state = self->state;
   self->state = new_state;
 
-  if (new_state == CUI_CALL_STATE_ACTIVE) {
+  g_debug ("Setting UI call state from %s to %s",
+           cui_call_state_to_string (old_state),
+           cui_call_state_to_string (new_state));
+
+  /* Check for started timer, because state could have changed like this:
+   * ACTIVE -> HELD -> ACTIVE
+   * and we don't want to start the timer multiple times
+   */
+  if (new_state == CUI_CALL_STATE_ACTIVE && !self->timer) {
+
     self->timer = g_timer_new ();
     self->timer_id = g_timeout_add (500,
                                     G_SOURCE_FUNC (on_timer_ticked),
                                     self);
+    g_source_set_name_by_id (self->timer_id, "ui-call: active_time_timer");
+
+    g_debug ("Start tracking active time; source id %u", self->timer_id);
   } else if (new_state == CUI_CALL_STATE_DISCONNECTED) {
+    g_debug ("Stop tracking active time; source id %u", self->timer_id);
+
     g_clear_handle_id (&self->timer_id, g_source_remove);
     g_clear_pointer (&self->timer, g_timer_destroy);
     g_clear_handle_id (&self->set_active_id, g_source_remove);
diff -pruN 43.0-1/src/gtklistmodels/gtkcustomfilter.c 44~alpha.1-1/src/gtklistmodels/gtkcustomfilter.c
--- 43.0-1/src/gtklistmodels/gtkcustomfilter.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/gtklistmodels/gtkcustomfilter.c	2023-01-12 09:50:29.000000000 +0000
@@ -17,7 +17,7 @@
  * Authors: Benjamin Otte <otte@gnome.org>
  */
 
-/* #include "config.h" */
+/* #include "calls-config.h" */
 
 #include "gtkcustomfilter.h"
 
diff -pruN 43.0-1/src/gtklistmodels/gtkcustomsorter.c 44~alpha.1-1/src/gtklistmodels/gtkcustomsorter.c
--- 43.0-1/src/gtklistmodels/gtkcustomsorter.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/gtklistmodels/gtkcustomsorter.c	2023-01-12 09:50:29.000000000 +0000
@@ -17,7 +17,7 @@
  * Authors: Matthias Clasen <mclasen@redhat.com>
  */
 
-/* #include "config.h" */
+/* #include "calls-config.h" */
 
 #include "gtkcustomsorter.h"
 
diff -pruN 43.0-1/src/gtklistmodels/gtkfilter.c 44~alpha.1-1/src/gtklistmodels/gtkfilter.c
--- 43.0-1/src/gtklistmodels/gtkfilter.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/gtklistmodels/gtkfilter.c	2023-01-12 09:50:29.000000000 +0000
@@ -17,7 +17,7 @@
  * Authors: Benjamin Otte <otte@gnome.org>
  */
 
-/* #include "config.h" */
+/* #include "calls-config.h" */
 
 #include "gtkfilter.h"
 
diff -pruN 43.0-1/src/gtklistmodels/gtkfilterlistmodel.c 44~alpha.1-1/src/gtklistmodels/gtkfilterlistmodel.c
--- 43.0-1/src/gtklistmodels/gtkfilterlistmodel.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/gtklistmodels/gtkfilterlistmodel.c	2023-01-12 09:50:29.000000000 +0000
@@ -17,7 +17,7 @@
  * Authors: Benjamin Otte <otte@gnome.org>
  */
 
-/* #include "config.h" */
+/* #include "calls-config.h" */
 
 #include "gtkfilterlistmodel.h"
 
diff -pruN 43.0-1/src/gtklistmodels/gtkflattenlistmodel.c 44~alpha.1-1/src/gtklistmodels/gtkflattenlistmodel.c
--- 43.0-1/src/gtklistmodels/gtkflattenlistmodel.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/gtklistmodels/gtkflattenlistmodel.c	2023-01-12 09:50:29.000000000 +0000
@@ -17,7 +17,7 @@
  * Authors: Benjamin Otte <otte@gnome.org>
  */
 
-/* #include "config.h" */
+/* #include "calls-config.h" */
 
 #include "gtkflattenlistmodel.h"
 
diff -pruN 43.0-1/src/gtklistmodels/gtkrbtree.c 44~alpha.1-1/src/gtklistmodels/gtkrbtree.c
--- 43.0-1/src/gtklistmodels/gtkrbtree.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/gtklistmodels/gtkrbtree.c	2023-01-12 09:50:29.000000000 +0000
@@ -15,7 +15,7 @@
  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
-/* #include "config.h" */
+/* #include "calls-config.h" */
 
 #include "gtkrbtreeprivate.h"
 
diff -pruN 43.0-1/src/gtklistmodels/gtkslicelistmodel.c 44~alpha.1-1/src/gtklistmodels/gtkslicelistmodel.c
--- 43.0-1/src/gtklistmodels/gtkslicelistmodel.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/gtklistmodels/gtkslicelistmodel.c	2023-01-12 09:50:29.000000000 +0000
@@ -17,7 +17,7 @@
  * Authors: Benjamin Otte <otte@gnome.org>
  */
 
-/* #include "config.h" */
+/* #include "calls-config.h" */
 
 #include "gtkslicelistmodel.h"
 
diff -pruN 43.0-1/src/gtklistmodels/gtksorter.c 44~alpha.1-1/src/gtklistmodels/gtksorter.c
--- 43.0-1/src/gtklistmodels/gtksorter.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/gtklistmodels/gtksorter.c	2023-01-12 09:50:29.000000000 +0000
@@ -17,7 +17,7 @@
  * Authors: Matthias Clasen <mclasen@redhat.com>
  */
 
-/* #include "config.h" */
+/* #include "calls-config.h" */
 
 #include "gtksorter.h"
 
diff -pruN 43.0-1/src/gtklistmodels/gtksortlistmodel.c 44~alpha.1-1/src/gtklistmodels/gtksortlistmodel.c
--- 43.0-1/src/gtklistmodels/gtksortlistmodel.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/gtklistmodels/gtksortlistmodel.c	2023-01-12 09:50:29.000000000 +0000
@@ -17,7 +17,7 @@
  * Authors: Benjamin Otte <otte@gnome.org>
  */
 
-/* #include "config.h" */
+/* #include "calls-config.h" */
 
 #include "gtksortlistmodel.h"
 
diff -pruN 43.0-1/src/main.c 44~alpha.1-1/src/main.c
--- 43.0-1/src/main.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/main.c	2023-01-12 09:50:29.000000000 +0000
@@ -27,7 +27,7 @@
 
 #include "calls-application.h"
 #include "calls-log.h"
-#include "config.h"
+#include "calls-config.h"
 
 int
 main (int    argc,
diff -pruN 43.0-1/src/meson.build 44~alpha.1-1/src/meson.build
--- 43.0-1/src/meson.build	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/meson.build	2023-01-12 09:50:29.000000000 +0000
@@ -65,6 +65,7 @@ calls_enum_headers = files(['calls-call.
                             'calls-ussd.h',
                             'calls-manager.h',
                             'calls-account.h',
+                            'calls-ringer.h',
                             ])
 calls_enum_sources = gnome.mkenums_simple('enum-types',
                                           sources : calls_enum_headers)
@@ -84,45 +85,46 @@ calls_generated_sources = [
 
 subdir('gtklistmodels')
 
-calls_sources = files(['calls-message-source.c', 'calls-message-source.h',
-                       'calls-call.c',
-                       'calls-dbus-manager.c',
-                       'calls-ussd.c',
-                       'calls-origin.c', 'calls-origin.h',
-                       'calls-provider.c', 'calls-provider.h',
-                       'calls-call-selector-item.c', 'calls-call-selector-item.h',
-                       'calls-call-window.c', 'calls-call-window.h',
-                       'calls-history-box.c', 'calls-history-box.h',
-                       'calls-new-call-box.c', 'calls-new-call-box.h',
-                       'calls-main-window.c', 'calls-main-window.h',
-                       'calls-ringer.c', 'calls-ringer.h',
-                       'calls-application.c', 'calls-application.h',
-                       'util.c', 'util.h',
-                       'calls-call-record.c', 'calls-call-record.h',
-                       'calls-record-store.c', 'calls-record-store.h',
-                       'calls-call-record-row.c', 'calls-call-record-row.h',
-                       'calls-contacts-provider.c', 'calls-contacts-provider.h',
-                       'calls-best-match.c', 'calls-best-match.h',
-                       'calls-in-app-notification.c', 'calls-in-app-notification.h',
-                       'calls-log.c', 'calls-log.h',
-                       'calls-manager.c', 'calls-manager.h',
-                       'calls-notifier.c', 'calls-notifier.h',
-                       'calls-contacts-box.c', 'calls-contacts-box.h',
-                       'calls-contacts-row.c', 'calls-contacts-row.h',
-                       'calls-account.c', 'calls-account.h',
-                       'calls-account-provider.c', 'calls-account-provider.h',
-                       'calls-account-overview.c', 'calls-account-overview.h',
-                       'calls-account-row.c', 'calls-account-row.h',
-                       'calls-settings.c', 'calls-settings.h',
-                       'calls-secret-store.c', 'calls-secret-store.h',
-                       'calls-network-watch.c', 'calls-network-watch.h',
-                       'calls-ui-call-data.c', 'calls-ui-call-data.h',
-                      ]) + calls_generated_sources + gtklistmodel_sources
+calls_sources = files([
+  'calls-account.c', 'calls-account.h',
+  'calls-account-overview.c', 'calls-account-overview.h',
+  'calls-account-provider.c', 'calls-account-provider.h',
+  'calls-account-row.c', 'calls-account-row.h',
+  'calls-application.c', 'calls-application.h',
+  'calls-best-match.c', 'calls-best-match.h',
+  'calls-call.c', 'calls-call.h',
+  'calls-call-record.c', 'calls-call-record.h',
+  'calls-call-record-row.c', 'calls-call-record-row.h',
+  'calls-call-selector-item.c', 'calls-call-selector-item.h',
+  'calls-call-window.c', 'calls-call-window.h',
+  'calls-contacts-box.c', 'calls-contacts-box.h',
+  'calls-contacts-provider.c', 'calls-contacts-provider.h',
+  'calls-contacts-row.c', 'calls-contacts-row.h',
+  'calls-dbus-manager.c', 'calls-dbus-manager.h',
+  'calls-history-box.c', 'calls-history-box.h',
+  'calls-in-app-notification.c', 'calls-in-app-notification.h',
+  'calls-log.c', 'calls-log.h',
+  'calls-main-window.c', 'calls-main-window.h',
+  'calls-manager.c', 'calls-manager.h',
+  'calls-message-source.c', 'calls-message-source.h',
+  'calls-network-watch.c', 'calls-network-watch.h',
+  'calls-new-call-box.c', 'calls-new-call-box.h',
+  'calls-notifier.c', 'calls-notifier.h',
+  'calls-origin.c', 'calls-origin.h',
+  'calls-provider.c', 'calls-provider.h',
+  'calls-record-store.c', 'calls-record-store.h',
+  'calls-ringer.c', 'calls-ringer.h',
+  'calls-secret-store.c', 'calls-secret-store.h',
+  'calls-settings.c', 'calls-settings.h',
+  'calls-ui-call-data.c', 'calls-ui-call-data.h',
+  'calls-ussd.c', 'calls-ussd.h',
+  'util.c', 'util.h',
+]) + calls_generated_sources + gtklistmodel_sources
 
 calls_config_data = config_data
 
 config_h = configure_file(
-  output: 'config.h',
+  output: 'calls-config.h',
   configuration: calls_config_data
 )
 
diff -pruN 43.0-1/src/ui/new-call-box.ui 44~alpha.1-1/src/ui/new-call-box.ui
--- 43.0-1/src/ui/new-call-box.ui	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/ui/new-call-box.ui	2023-01-12 09:50:29.000000000 +0000
@@ -4,170 +4,81 @@
   <requires lib="gtk+" version="3.22"/>
   <requires lib="libhandy" version="1.0"/>
   <template class="CallsNewCallBox" parent="GtkBox">
-    <property name="margin_bottom">16</property>
     <property name="margin_left">24</property>
     <property name="margin_right">24</property>
-    <property name="margin_top">16</property>
+    <property name="margin_top">6</property>
     <property name="orientation">vertical</property>
     <property name="visible">True</property>
 
     <child>
       <object class="HdyClamp">
         <property name="visible">True</property>
-        <property name="vexpand">True</property>
-        <property name="maximum-size">300</property>
+        <property name="orientation">vertical</property>
         <child>
-          <object class="HdyClamp">
+          <object class="GtkBox">
             <property name="visible">True</property>
             <property name="orientation">vertical</property>
             <child>
-              <object class="GtkBox">
+              <object class="GtkListBox" id="origin_list_box">
                 <property name="visible">True</property>
-                <property name="orientation">vertical</property>
+                <property name="selection-mode">none</property>
+                <property name="halign">center</property>
                 <child>
-                  <object class="GtkListBox" id="origin_list_box">
+                  <object class="HdyComboRow" id="origin_list">
                     <property name="visible">True</property>
-                    <property name="selection-mode">none</property>
-                    <property name="margin-bottom">6</property>
-                    <property name="halign">center</property>
-                    <child>
-                      <object class="HdyComboRow" id="origin_list">
-                        <property name="visible">True</property>
-                        <signal name="notify::selected-index" handler="notify_selected_index_cb" swapped="yes"/>
-                      </object>
-                    </child>
-                  </object>
-                </child>
-                <child>
-                  <object class="GtkEntry" id="address_entry">
-                    <property name="visible" bind-source="CallsNewCallBox" bind-property="numeric-input-only" bind-flags="sync-create|invert-boolean"/>
-                    <property name="xalign">0.5</property>
-                    <property name="placeholder-text" translatable="yes">Enter a VoIP address</property>
-                    <signal name="activate" handler="address_activate_cb" swapped="yes"/>
-                    <signal name="changed" handler="address_changed_cb" swapped="yes"/>
-                    <style>
-                      <class name="address-entry"/>
-                    </style>
-                  </object>
-                </child>
-                <child>
-                  <object class="GtkEntry" id="keypad_entry">
-                    <property name="visible" bind-source="CallsNewCallBox" bind-property="numeric-input-only" bind-flags="sync-create"/>
-                    <property name="hexpand">True</property>
-                    <property name="xalign">0.5</property>
-                    <property name="placeholder-text" translatable="yes">Enter a number</property>
-                    <signal name="activate" handler="dial_clicked_cb" swapped="yes"/>
-                    <style>
-                      <class name="phone-number-entry"/>
-                    </style>
-                  </object>
-                </child>
-                <child>
-                  <object class="HdyKeypad" id="keypad">
-                    <property name="visible" bind-source="CallsNewCallBox" bind-property="numeric-input-only" bind-flags="sync-create"/>
-                    <property name="column_spacing">16</property>
-                    <property name="row_spacing">10</property>
-                    <property name="halign">center</property>
-                    <property name="margin_top">18</property>
-                    <property name="margin_bottom">18</property>
-                    <property name="entry">keypad_entry</property>
+                    <signal name="notify::selected-index" handler="notify_selected_index_cb" swapped="yes"/>
                   </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                  </packing>
                 </child>
-                <child>
-                  <object class="GtkBox">
-                    <property name="visible" bind-source="CallsNewCallBox" bind-property="numeric-input-only" bind-flags="sync-create"/>
-                    <property name="orientation">horizontal</property>
-                    <child type="center">
-                      <object class="GtkButton" id="dial">
-                        <property name="always_show_image">True</property>
-                        <property name="receives_default">True</property>
+              </object>
+            </child>
+            <child>
+              <object class="GtkEntry" id="address_entry">
+                <property name="visible" bind-source="CallsNewCallBox" bind-property="numeric-input-only" bind-flags="sync-create|invert-boolean"/>
+                <property name="xalign">0.5</property>
+                <property name="placeholder-text" translatable="yes">Enter a VoIP address</property>
+                <signal name="activate" handler="address_activate_cb" swapped="yes"/>
+                <signal name="changed" handler="address_changed_cb" swapped="yes"/>
+                <style>
+                  <class name="address-entry"/>
+                </style>
+              </object>
+            </child>
+            <child>
+              <object class="CuiDialpad" id="dialpad">
+                <property name="visible" bind-source="CallsNewCallBox" bind-property="numeric-input-only" bind-flags="sync-create"/>
+                <signal name="dialed" handler="dialpad_dialed_cb"/>
+              </object>
+            </child>
+            <child>
+              <object class="GtkListBox" id="result_list">
+                <property name="visible" bind-source="CallsNewCallBox" bind-property="numeric-input-only" bind-flags="sync-create|invert-boolean"/>
+                <property name="margin-top">16</property>
+                <property name="selection-mode">none</property>
+                <child>
+                  <object class="HdyActionRow" id="result">
+                    <property name="visible">False</property>
+                    <property name="title" bind-source="address_entry" bind-property="text"/>
+                    <property name="width-request">300</property>
+                    <property name="subtitle" translatable="yes">SIP Account</property>
+                    <child type="prefix">
+                      <object class="HdyAvatar">
                         <property name="visible">True</property>
-                        <signal name="clicked" handler="dial_clicked_cb" swapped="yes"/>
-                        <style>
-                          <class name="suggested-action"/>
-                          <class name="image-button"/>
-                          <class name="dial-button"/>
-                        </style>
-                        <child internal-child="accessible">
-                          <object class="AtkObject" id="a11y-dial">
-                            <property name="accessible-name" translatable="yes">Dial</property>
-                          </object>
-                        </child>
-                        <child>
-                          <object class="GtkImage" id="back_image">
-                            <property name="visible">True</property>
-                            <property name="icon-name">call-start-symbolic</property>
-                            <property name="icon-size">5</property>
-                          </object>
-                        </child>
+                        <property name="show-initials">True</property>
+                        <property name="size">36</property>
                       </object>
                     </child>
                     <child>
-                      <object class="GtkButton" id="backspace">
-                        <property name="always_show_image">True</property>
+                      <object class="GtkButton" id="dial_result_btn">
                         <property name="visible">True</property>
-                        <property name="focus-on-click">False</property>
-                        <property name="margin_right">15</property>
-                        <property name="valign">center</property>
-                        <property name="halign">center</property>
-                        <signal name="clicked" handler="backspace_clicked_cb" swapped="yes"/>
-                        <child internal-child="accessible">
-                          <object class="AtkObject" id="a11y-backspace">
-                            <property name="accessible-name" translatable="yes">Delete character in front of cursor</property>
-                          </object>
-                        </child>
+                        <property name="always_show_image">True</property>
+                        <signal name="clicked" handler="dial_result_clicked_cb" swapped="yes"/>
                         <style>
-                          <class name="delete-button"/>
+                          <class name="rounded-button"/>
                         </style>
                         <child>
                           <object class="GtkImage">
                             <property name="visible">True</property>
-                            <property name="icon-name">edit-clear-symbolic</property>
-                          </object>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="pack_type">end</property>
-                      </packing>
-                    </child>
-                  </object>
-                </child>
-                <child>
-                  <object class="GtkListBox" id="result_list">
-                    <property name="visible" bind-source="CallsNewCallBox" bind-property="numeric-input-only" bind-flags="sync-create|invert-boolean"/>
-                    <property name="margin-top">16</property>
-                    <property name="selection-mode">none</property>
-                    <child>
-                      <object class="HdyActionRow" id="result">
-                        <property name="visible">False</property>
-                        <property name="title" bind-source="address_entry" bind-property="text"/>
-                        <property name="width-request">300</property>
-                        <property name="subtitle" translatable="yes">SIP Account</property>
-                        <child type="prefix">
-                          <object class="HdyAvatar">
-                            <property name="visible">True</property>
-                            <property name="show-initials">True</property>
-                            <property name="size">36</property>
-                          </object>
-                        </child>
-                        <child>
-                          <object class="GtkButton" id="dial_result_btn">
-                            <property name="visible">True</property>
-                            <property name="always_show_image">True</property>
-                            <signal name="clicked" handler="dial_result_clicked_cb" swapped="yes"/>
-                            <style>
-                              <class name="rounded-button"/>
-                            </style>
-                            <child>
-                              <object class="GtkImage">
-                                <property name="visible">True</property>
-                                <property name="icon-name">call-start-symbolic</property>
-                              </object>
-                            </child>
+                            <property name="icon-name">call-start-symbolic</property>
                           </object>
                         </child>
                       </object>
@@ -181,8 +92,4 @@
       </object>
     </child>
   </template>
-  <object class="GtkGestureLongPress" id="long_press_back_gesture">
-    <property name="widget">backspace</property>
-    <signal name="pressed" handler="long_press_back_cb" object="CallsNewCallBox" swapped="true"/>
-  </object>
 </interface>
diff -pruN 43.0-1/src/util.c 44~alpha.1-1/src/util.c
--- 43.0-1/src/util.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/util.c	2023-01-12 09:50:29.000000000 +0000
@@ -24,75 +24,8 @@
 
 #include "util.h"
 
-
-void
-calls_object_unref (gpointer object)
-{
-  if (object) {
-    g_object_unref (object);
-  }
-}
-
-
-typedef struct {
-  gpointer     needle;
-  guint        needle_column;
-  GtkTreeIter *iter;
-  gboolean     found;
-} ListStoreFindData;
-
-static gboolean
-list_store_find_foreach_cb (GtkTreeModel *model,
-                            GtkTreePath  *path,
-                            GtkTreeIter  *iter,
-                            gpointer      data)
-{
-  ListStoreFindData *find_data = data;
-  gpointer value;
-
-  gtk_tree_model_get (model, iter, find_data->needle_column,
-                      &value, -1);
-
-  if (value == find_data->needle) {
-    *find_data->iter = *iter;
-    return (find_data->found = TRUE);
-  }
-
-  return FALSE;
-}
-
-gboolean
-calls_list_store_find (GtkListStore *store,
-                       gpointer      needle,
-                       gint          needle_column,
-                       GtkTreeIter  *iter)
-{
-  ListStoreFindData find_data
-    = { needle, needle_column, iter, FALSE };
-
-  gtk_tree_model_foreach (GTK_TREE_MODEL (store),
-                          list_store_find_foreach_cb,
-                          &find_data);
-
-  return find_data.found;
-}
-
-
-void
-calls_entry_append (GtkEntry *entry,
-                    gchar     character)
-{
-  const gchar str[] = {character, '\0'};
-  GtkEntryBuffer *buf;
-  guint len;
-
-  g_return_if_fail (GTK_IS_ENTRY (entry));
-
-  buf = gtk_entry_get_buffer (entry);
-  len = gtk_entry_buffer_get_length (buf);
-
-  gtk_entry_buffer_insert_text (buf, len, str, 1);
-}
+#include <sys/socket.h>
+#include <netdb.h>
 
 
 gboolean
@@ -164,16 +97,15 @@ calls_number_is_ussd (const char *number
 }
 
 /**
- * calls_find_in_store:
+ * calls_find_in_model:
  * @list: A #GListModel
  * @item: The #gpointer to find
  * @position: (out) (optional): The first position of @item, if it was found.
  *
- * Returns: Whether @list contains @item. This is mainly a convenience function
- * until we no longer support older glib versions.
+ * Returns: %TRUE if @list contains @item, %FALSE otherwise.
  */
 gboolean
-calls_find_in_store (GListModel *list,
+calls_find_in_model (GListModel *list,
                      gpointer    item,
                      guint      *position)
 {
@@ -295,3 +227,52 @@ get_call_icon_symbolic_name (gboolean in
 
   return type_icon_name[index];
 }
+
+/**
+ * get_address_family_for_ip:
+ * @ip: The IP address to check
+ * @only_configured_interfaces: Only consider address families of configured
+ * network interfaces
+ *
+ * Returns: #AF_INET for IPv4, #AF_INET6 for IPv6 and #AF_UNSPEC otherwise.
+ * If @only_configured_interfaces is #TRUE and the resulting address family of @ip
+ * is not configured on any network interface, it will also return #AF_UNSPEC
+ */
+int
+get_address_family_for_ip (const char *ip,
+                           gboolean    only_configured_interfaces)
+{
+  struct addrinfo hints = { 0 };
+  struct addrinfo *result;
+  int family = AF_UNSPEC;
+  int res_gai;
+
+  g_return_val_if_fail (!STR_IS_NULL_OR_EMPTY (ip), AF_UNSPEC);
+
+  hints.ai_flags = AI_V4MAPPED | AI_NUMERICHOST;
+  if (only_configured_interfaces)
+    hints.ai_flags |= AI_ADDRCONFIG;
+  hints.ai_family = AF_UNSPEC;
+
+
+  res_gai = getaddrinfo (ip, NULL, &hints, &result);
+  if (res_gai != 0) {
+    g_info ("Cannot get address information for host %s: %s",
+            ip,
+            gai_strerror (res_gai));
+
+    return AF_UNSPEC;
+  }
+
+  family = result->ai_family;
+
+  freeaddrinfo (result);
+
+  if (family != AF_INET && family != AF_INET6) {
+    g_warning ("Address information for host %s indicates non internet host", ip);
+
+    return AF_UNSPEC;
+  }
+
+  return family;
+}
diff -pruN 43.0-1/src/util.h 44~alpha.1-1/src/util.h
--- 43.0-1/src/util.h	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/src/util.h	2023-01-12 09:50:29.000000000 +0000
@@ -110,22 +110,6 @@ G_BEGIN_DECLS
     }
 
 
-/** If the GObject object is non-NULL, unref it */
-void        calls_object_unref (gpointer object);
-
-
-/** Find a particular pointer value in a GtkListStore */
-gboolean
-            calls_list_store_find (GtkListStore *store,
-                       gpointer                  needle,
-                       gint                      needle_column,
-                       GtkTreeIter              *iter);
-
-/** Append a single character to a GtkEntry's contents */
-void
-            calls_entry_append (GtkEntry *entry,
-                    gchar                 character);
-
 
 gboolean    calls_date_time_is_same_day  (GDateTime  *a,
                                            GDateTime *b);
@@ -135,7 +119,7 @@ gboolean    calls_date_time_is_same_year
                                            GDateTime *b);
 gboolean    calls_number_is_ussd         (const char *number);
 
-gboolean    calls_find_in_store (GListModel *list,
+gboolean    calls_find_in_model (GListModel *list,
                                   gpointer   item,
                                   guint     *position);
 
@@ -145,5 +129,7 @@ const char *get_protocol_from_address_wi
 gboolean    dtmf_tone_key_is_valid (char key);
 const char *get_call_icon_symbolic_name (gboolean  inbound,
                                           gboolean missed);
+int         get_address_family_for_ip (const char *ip,
+                                        gboolean only_configured_interfaces);
 
 G_END_DECLS
diff -pruN 43.0-1/tests/meson.build 44~alpha.1-1/tests/meson.build
--- 43.0-1/tests/meson.build	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/tests/meson.build	2023-01-12 09:50:29.000000000 +0000
@@ -1,20 +1,20 @@
 if get_option('tests')
 
+subdir('mock')
+
 test_env = [
-  'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
-  'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()),
   'G_DEBUG=gc-friendly,fatal-warnings',
   'GSETTINGS_BACKEND=memory',
   'PYTHONDONTWRITEBYTECODE=yes',
   'MALLOC_CHECK_=2',
   'NO_AT_BRIDGE=1',
   'GSETTINGS_SCHEMA_DIR=@0@/data'.format(meson.project_build_root()),
+  'CALLS_PLUGIN_DIR=@0@/plugins'.format(meson.project_build_root()),
 ]
 
 test_cflags = [
   '-DFOR_TESTING',
   '-Wno-error=deprecated-declarations',
-  '-DPLUGIN_BUILDDIR="@0@"'.format(full_calls_plugin_builddir),
 ]
 
 test_link_args = [
@@ -38,7 +38,7 @@ t = executable('manager', test_sources,
                    calls_includes
                  ]
                 )
-test('manager', t, env: test_env)
+test('manager', t, env: test_env, depends: calls_plugins)
 
 test_sources = [ 'test-plugins.c' ]
 
@@ -53,7 +53,7 @@ t = executable('plugins', test_sources,
                    calls_includes
                  ]
                 )
-test('plugins', t, env: test_env)
+test('plugins', t, env: test_env, depends: calls_plugins)
 
 test_sources = [ 'test-util.c' ]
 t = executable('util', test_sources,
@@ -81,36 +81,22 @@ t = executable('ui-call', test_sources,
                )
 test('ui-call', t, env: test_env)
 
-mock_link_args = [ test_link_args,
-                   '-Wl,--wrap=lfb_init',
-                   '-Wl,--wrap=lfb_uninit',
-                   '-Wl,--wrap=lfb_event_set_feedback_profile',
-                   '-Wl,--wrap=lfb_event_trigger_feedback_async',
-                   '-Wl,--wrap=lfb_event_trigger_feedback_finish',
-                   '-Wl,--wrap=lfb_event_end_feedback_async',
-                   '-Wl,--wrap=lfb_event_end_feedback_finish',
-                   '-Wl,--wrap=calls_contacts_provider_new',
-                 ]
-cmocka = dependency ('cmocka', required: false)
+test_sources = [
+               'mock-call.c', 'mock-call.h', 'mock-libfeedback.h',
+               'test-ringer.c'
+]
 
-if cmocka.found ()
-    test_sources = [
-                    'mock-call.c', 'mock-call.h', 'mock-libfeedback.h',
-                    'test-ringer.c'
-                   ]
-
-    t = executable('ringer', test_sources,
-                   c_args : test_cflags,
-                   link_args: mock_link_args,
-                   pie: true,
-                   link_with : [calls_vala, libcalls],
-                   dependencies: [calls_deps, cmocka],
-                   include_directories : [
-                       calls_includes,
-                     ]
-                   )
-    test('ringer', t, env: test_env)
-endif
+t = executable('ringer', test_sources,
+               c_args : test_cflags,
+               link_args: mock_link_args,
+               pie: true,
+               link_with : [calls_vala, libcalls, libfeedback],
+               dependencies: calls_deps,
+               include_directories : [
+                   calls_includes,
+                 ]
+               )
+test('ringer', t, env: test_env)
 
 test_sources = [ 'test-contacts.c' ]
 t = executable('contacts', test_sources,
diff -pruN 43.0-1/tests/mock/lfb/lfb-enums.c 44~alpha.1-1/tests/mock/lfb/lfb-enums.c
--- 43.0-1/tests/mock/lfb/lfb-enums.c	1970-01-01 00:00:00.000000000 +0000
+++ 44~alpha.1-1/tests/mock/lfb/lfb-enums.c	2023-01-12 09:50:29.000000000 +0000
@@ -0,0 +1,49 @@
+
+/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */
+
+#include "lfb-enums.h"
+#include "lfb-event.h"
+
+#define C_ENUM(v) ((gint) v)
+#define C_FLAGS(v) ((guint) v)
+
+/* enumerations from "lfb-event.h" */
+
+GType
+lfb_event_state_get_type (void)
+{
+static gsize gtype_id = 0;
+static const GEnumValue values[] = {
+    { C_ENUM(LFB_EVENT_STATE_ERRORED), "LFB_EVENT_STATE_ERRORED", "errored" },
+    { C_ENUM(LFB_EVENT_STATE_NONE), "LFB_EVENT_STATE_NONE", "none" },
+    { C_ENUM(LFB_EVENT_STATE_RUNNING), "LFB_EVENT_STATE_RUNNING", "running" },
+    { C_ENUM(LFB_EVENT_STATE_ENDED), "LFB_EVENT_STATE_ENDED", "ended" },
+{ 0, NULL, NULL }
+        };
+        if (g_once_init_enter (&gtype_id)) {
+            GType new_type = g_enum_register_static (g_intern_static_string ("LfbEventState"), values);
+            g_once_init_leave (&gtype_id, new_type);
+        }
+        return (GType) gtype_id;
+        }
+
+GType
+lfb_event_end_reason_get_type (void)
+{
+static gsize gtype_id = 0;
+static const GEnumValue values[] = {
+    { C_ENUM(LFB_EVENT_END_REASON_NOT_FOUND), "LFB_EVENT_END_REASON_NOT_FOUND", "not-found" },
+    { C_ENUM(LFB_EVENT_END_REASON_NATURAL), "LFB_EVENT_END_REASON_NATURAL", "natural" },
+    { C_ENUM(LFB_EVENT_END_REASON_EXPIRED), "LFB_EVENT_END_REASON_EXPIRED", "expired" },
+    { C_ENUM(LFB_EVENT_END_REASON_EXPLICIT), "LFB_EVENT_END_REASON_EXPLICIT", "explicit" },
+{ 0, NULL, NULL }
+        };
+        if (g_once_init_enter (&gtype_id)) {
+            GType new_type = g_enum_register_static (g_intern_static_string ("LfbEventEndReason"), values);
+            g_once_init_leave (&gtype_id, new_type);
+        }
+        return (GType) gtype_id;
+        }
+
+/* Generated data ends here */
+
diff -pruN 43.0-1/tests/mock/lfb/lfb-enums.h 44~alpha.1-1/tests/mock/lfb/lfb-enums.h
--- 43.0-1/tests/mock/lfb/lfb-enums.h	1970-01-01 00:00:00.000000000 +0000
+++ 44~alpha.1-1/tests/mock/lfb/lfb-enums.h	2023-01-12 09:50:29.000000000 +0000
@@ -0,0 +1,24 @@
+
+/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */
+
+#pragma once
+
+            #include <glib-object.h>
+
+
+            G_BEGIN_DECLS
+
+/* enumerations from "lfb-event.h" */
+
+
+GType lfb_event_state_get_type (void);
+#define LFB_TYPE_EVENT_STATE (lfb_event_state_get_type())
+
+
+GType lfb_event_end_reason_get_type (void);
+#define LFB_TYPE_EVENT_END_REASON (lfb_event_end_reason_get_type())
+
+G_END_DECLS
+
+/* Generated data ends here */
+
diff -pruN 43.0-1/tests/mock/lfb/lfb-event.c 44~alpha.1-1/tests/mock/lfb/lfb-event.c
--- 43.0-1/tests/mock/lfb/lfb-event.c	1970-01-01 00:00:00.000000000 +0000
+++ 44~alpha.1-1/tests/mock/lfb/lfb-event.c	2023-01-12 09:50:29.000000000 +0000
@@ -0,0 +1,368 @@
+/*
+ * Copyright (C) 2020 Purism SPC
+ * SPDX-License-Identifier: LGPL-2.1+
+ * Author: Guido Günther <agx@sigxcpu.org>
+ */
+
+#include "lfb-event.h"
+#include "lfb-enums.h"
+
+#include <gio/gio.h>
+
+gboolean success = TRUE;
+guint interval_timeout_ms = 50;
+
+
+enum {
+  PROP_0,
+  PROP_EVENT,
+  PROP_TIMEOUT,
+  PROP_STATE,
+  PROP_END_REASON,
+  PROP_FEEDBACK_PROFILE,
+  PROP_LAST_PROP,
+};
+static GParamSpec *props[PROP_LAST_PROP];
+
+enum {
+  SIGNAL_FEEDBACK_ENDED,
+  N_SIGNALS,
+};
+static guint signals[N_SIGNALS];
+
+typedef struct _LfbEvent {
+  GObject       parent;
+
+  char         *event;
+  gint          timeout;
+  gchar        *profile;
+
+  guint         id;
+  LfbEventState state;
+  gint          end_reason;
+  gulong        handler_id;
+} LfbEvent;
+
+G_DEFINE_TYPE (LfbEvent, lfb_event, G_TYPE_OBJECT);
+
+typedef struct _LpfAsyncData {
+  LfbEvent *event;
+  GTask    *task;
+} LpfAsyncData;
+
+static void
+lfb_event_set_state (LfbEvent *self, LfbEventState state)
+{
+  if (self->state == state)
+    return;
+
+  self->state = state;
+  g_object_notify_by_pspec (G_OBJECT (self), props[PROP_STATE]);
+}
+
+
+
+static void
+lfb_event_set_property (GObject      *object,
+                        guint         property_id,
+                        const GValue *value,
+                        GParamSpec   *pspec)
+{
+  LfbEvent *self = LFB_EVENT (object);
+
+  switch (property_id) {
+  case PROP_EVENT:
+    g_free (self->event);
+    self->event = g_value_dup_string (value);
+    g_object_notify_by_pspec (G_OBJECT (self), props[PROP_EVENT]);
+    break;
+  case PROP_TIMEOUT:
+    lfb_event_set_timeout (self, g_value_get_int (value));
+    break;
+  case PROP_FEEDBACK_PROFILE:
+    lfb_event_set_feedback_profile (self, g_value_get_string (value));
+    break;
+  default:
+    G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+    break;
+  }
+}
+
+
+static void
+lfb_event_get_property (GObject    *object,
+                        guint       property_id,
+                        GValue     *value,
+                        GParamSpec *pspec)
+{
+  LfbEvent *self = LFB_EVENT (object);
+
+  switch (property_id) {
+  case PROP_EVENT:
+    g_value_set_string (value, self->event);
+    break;
+  case PROP_TIMEOUT:
+    g_value_set_int (value, self->timeout);
+    break;
+  case PROP_FEEDBACK_PROFILE:
+    g_value_set_string (value, self->profile);
+    break;
+  default:
+    G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+    break;
+  }
+}
+
+static void
+lfb_event_finalize (GObject *object)
+{
+  LfbEvent *self = LFB_EVENT (object);
+
+  /* Signal handler is disconnected automatically due to g_signal_connect_object */
+  self->handler_id = 0;
+
+  g_clear_pointer (&self->event, g_free);
+  g_clear_pointer (&self->profile, g_free);
+
+  G_OBJECT_CLASS (lfb_event_parent_class)->finalize (object);
+}
+
+static void
+lfb_event_class_init (LfbEventClass *klass)
+{
+  GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+  object_class->set_property = lfb_event_set_property;
+  object_class->get_property = lfb_event_get_property;
+
+  object_class->finalize = lfb_event_finalize;
+
+  props[PROP_EVENT] =
+    g_param_spec_string (
+      "event",
+      "Event",
+      "The name of the event triggering the feedback",
+      NULL,
+      G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+  props[PROP_TIMEOUT] =
+    g_param_spec_int (
+      "timeout",
+      "Timeout",
+      "When the event should timeout",
+      -1, G_MAXINT, -1,
+      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+  props[PROP_STATE] =
+    g_param_spec_enum (
+      "state",
+      "State",
+      "The event's state",
+      LFB_TYPE_EVENT_STATE,
+      LFB_EVENT_END_REASON_NATURAL,
+      G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
+
+  props[PROP_END_REASON] =
+    g_param_spec_enum (
+      "end-reason",
+      "End reason",
+      "The reason why the feedbacks ended",
+      LFB_TYPE_EVENT_END_REASON,
+      LFB_EVENT_END_REASON_NATURAL,
+      G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
+
+  props[PROP_FEEDBACK_PROFILE] =
+    g_param_spec_string (
+      "feedback-profile",
+      "Feedback profile",
+      "Feedback profile to use for this event",
+      NULL,
+      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
+
+  g_object_class_install_properties (object_class, PROP_LAST_PROP, props);
+
+  signals[SIGNAL_FEEDBACK_ENDED] = g_signal_new ("feedback-ended",
+                                                 G_TYPE_FROM_CLASS (klass),
+                                                 G_SIGNAL_RUN_LAST, 0, NULL, NULL,
+                                                 NULL,
+                                                 G_TYPE_NONE,
+                                                 0);
+}
+
+static void
+lfb_event_init (LfbEvent *self)
+{
+  self->timeout = -1;
+  self->state = LFB_EVENT_STATE_NONE;
+  self->end_reason = LFB_EVENT_END_REASON_NATURAL;
+}
+
+LfbEvent *
+lfb_event_new (const char *event)
+{
+  return g_object_new (LFB_TYPE_EVENT, "event", event, NULL);
+}
+
+/* mock libfeedback functions */
+
+static gboolean
+emit_ended (LfbEvent *self)
+{
+  g_assert (LFB_IS_EVENT (self));
+
+  g_signal_emit (self, signals[SIGNAL_FEEDBACK_ENDED], 0);
+
+  return G_SOURCE_REMOVE;
+}
+
+static gboolean
+on_mock_timeout (gpointer user_data)
+{
+  GTask *task;
+  GCancellable *cancellable;
+
+  if (!G_IS_TASK (user_data))
+    return G_SOURCE_REMOVE;
+
+  task = G_TASK (user_data);
+  cancellable = g_task_get_cancellable (task);
+
+  if (!g_cancellable_is_cancelled (cancellable)) {
+    LfbEvent *event = g_task_get_source_object (task);
+    LfbEventState state = GPOINTER_TO_INT (g_task_get_task_data (task));
+
+    g_task_return_boolean (task, TRUE);
+
+    if (state == LFB_EVENT_STATE_ENDED)
+      g_idle_add (G_SOURCE_FUNC (emit_ended), event);
+  }
+
+  return G_SOURCE_REMOVE;
+}
+
+static gboolean
+on_check_task_cancelled (gpointer user_data)
+{
+  GTask *task;
+  LfbEvent *event;
+  LfbEventState state;
+
+  if (!G_IS_TASK (user_data))
+    return G_SOURCE_REMOVE;
+
+  task = G_TASK (user_data);
+  event = g_task_get_source_object (task);
+  state = GPOINTER_TO_INT (g_task_get_task_data (task));
+
+  lfb_event_set_state (event, success ? state : LFB_EVENT_STATE_ERRORED);
+
+  if (g_task_get_completed (task) || g_task_return_error_if_cancelled (task)) {
+    g_object_unref (task);
+
+    return G_SOURCE_REMOVE;
+  }
+
+  return G_SOURCE_CONTINUE;
+}
+
+void
+lfb_event_trigger_feedback_async (LfbEvent           *self,
+                                  GCancellable       *cancellable,
+                                  GAsyncReadyCallback callback,
+                                  gpointer            user_data)
+{
+  GTask *task;
+  g_return_if_fail (LFB_IS_EVENT (self));
+
+  task = g_task_new (self, cancellable, callback, user_data);
+  g_task_set_task_data (task, GINT_TO_POINTER (LFB_EVENT_STATE_RUNNING), NULL);
+
+  g_timeout_add (interval_timeout_ms, on_mock_timeout, task);
+  g_idle_add (G_SOURCE_FUNC (on_check_task_cancelled), task);
+}
+
+gboolean
+lfb_event_trigger_feedback_finish (LfbEvent     *self,
+                                   GAsyncResult *res,
+                                   GError      **error)
+{
+  g_return_val_if_fail (g_task_is_valid (res, self), FALSE);
+
+  return success;
+}
+
+gboolean
+lfb_event_end_feedback_finish (LfbEvent     *self,
+                               GAsyncResult *res,
+                               GError      **error)
+{
+  g_return_val_if_fail (g_task_is_valid (res, self), FALSE);
+
+  if (success)
+    g_idle_add (G_SOURCE_FUNC (emit_ended), self);
+
+  return success;
+}
+
+void
+lfb_event_end_feedback_async (LfbEvent           *self,
+                              GCancellable       *cancellable,
+                              GAsyncReadyCallback callback,
+                              gpointer            user_data)
+{
+  GTask *task;
+  g_return_if_fail (LFB_IS_EVENT (self));
+
+  task = g_task_new (self, cancellable, callback, user_data);
+  g_task_set_task_data (task, GINT_TO_POINTER (LFB_EVENT_STATE_ENDED), NULL);
+
+  g_timeout_add (interval_timeout_ms, on_mock_timeout, task);
+  g_idle_add (G_SOURCE_FUNC (on_check_task_cancelled), task);
+}
+
+void
+lfb_event_set_timeout (LfbEvent *self, gint timeout)
+{
+  g_return_if_fail (LFB_IS_EVENT (self));
+
+  if (self->timeout == timeout)
+    return;
+
+  self->timeout = timeout;
+  g_object_notify_by_pspec (G_OBJECT (self), props[PROP_TIMEOUT]);
+}
+
+gint
+lfb_event_get_timeout (LfbEvent *self)
+{
+  g_return_val_if_fail (LFB_IS_EVENT (self), -1);
+  return self->timeout;
+}
+
+LfbEventState
+lfb_event_get_state (LfbEvent *self)
+{
+  g_return_val_if_fail (LFB_IS_EVENT (self), LFB_EVENT_STATE_NONE);
+  return self->state;
+}
+
+void
+lfb_event_set_feedback_profile (LfbEvent *self, const gchar *profile)
+{
+  g_return_if_fail (LFB_IS_EVENT (self));
+
+  if (!g_strcmp0 (self->profile, profile))
+    return;
+
+  g_free (self->profile);
+  self->profile = g_strdup (profile);
+  g_object_notify_by_pspec (G_OBJECT (self), props[PROP_FEEDBACK_PROFILE]);
+}
+
+char *
+lfb_event_get_feedback_profile (LfbEvent *self)
+{
+  g_return_val_if_fail (LFB_IS_EVENT (self), NULL);
+
+  return g_strdup (self->profile);
+}
diff -pruN 43.0-1/tests/mock/lfb/lfb-event.h 44~alpha.1-1/tests/mock/lfb/lfb-event.h
--- 43.0-1/tests/mock/lfb/lfb-event.h	1970-01-01 00:00:00.000000000 +0000
+++ 44~alpha.1-1/tests/mock/lfb/lfb-event.h	2023-01-12 09:50:29.000000000 +0000
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2020 Purism SPC
+ *
+ * SPDX-License-Identifier: LGPL-2.1+
+ */
+#pragma once
+
+#include <gio/gio.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* values used for mocking */
+extern gboolean success;
+extern guint interval_timeout_ms;
+
+
+typedef enum _LfbEventState {
+  LFB_EVENT_STATE_ERRORED = -1,
+  LFB_EVENT_STATE_NONE    = 0,
+  LFB_EVENT_STATE_RUNNING = 1,
+  LFB_EVENT_STATE_ENDED   = 2,
+} LfbEventState;
+
+typedef enum _LfbEventEndReason {
+  LFB_EVENT_END_REASON_NOT_FOUND = -1,
+  LFB_EVENT_END_REASON_NATURAL   = 0,
+  LFB_EVENT_END_REASON_EXPIRED   = 1,
+  LFB_EVENT_END_REASON_EXPLICIT  = 2,
+} LfbEventEndReason;
+
+#define LFB_TYPE_EVENT (lfb_event_get_type())
+
+G_DECLARE_FINAL_TYPE (LfbEvent, lfb_event, LFB, EVENT, GObject)
+
+LfbEvent*   lfb_event_new (const char *event);
+void        lfb_event_trigger_feedback_async (LfbEvent            *self,
+                                              GCancellable        *cancellable,
+                                              GAsyncReadyCallback  callback,
+                                              gpointer             user_data);
+gboolean    lfb_event_trigger_feedback_finish (LfbEvent            *self,
+                                               GAsyncResult        *res,
+                                               GError             **error);
+void        lfb_event_end_feedback_async (LfbEvent            *self,
+                                          GCancellable        *cancellable,
+                                          GAsyncReadyCallback  callback,
+                                          gpointer             user_data);
+gboolean    lfb_event_end_feedback_finish (LfbEvent            *self,
+                                           GAsyncResult        *res,
+                                           GError             **error);
+void        lfb_event_set_timeout (LfbEvent *self, gint timeout);
+gint        lfb_event_get_timeout (LfbEvent *self);
+void        lfb_event_set_feedback_profile (LfbEvent *self, const char *profile);
+char       *lfb_event_get_feedback_profile (LfbEvent *self);
+LfbEventState     lfb_event_get_state (LfbEvent *self);
+
+G_END_DECLS
diff -pruN 43.0-1/tests/mock/lfb/libfeedback.c 44~alpha.1-1/tests/mock/lfb/libfeedback.c
--- 43.0-1/tests/mock/lfb/libfeedback.c	1970-01-01 00:00:00.000000000 +0000
+++ 44~alpha.1-1/tests/mock/lfb/libfeedback.c	2023-01-12 09:50:29.000000000 +0000
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2020 Purism SPC
+ * SPDX-License-Identifier: LGPL-2.1+
+ * Author: Guido Günther <agx@sigxcpu.org>
+ */
+#include "libfeedback.h"
+
+static gboolean          _initted;
+
+
+gboolean
+lfb_init (const gchar *app_id, GError **error)
+{
+  _initted = TRUE;
+  g_debug ("libfeedback mock library initialized");
+  return TRUE;
+}
+
+void
+lfb_uninit (void)
+{
+  _initted = FALSE;
+}
+
+gboolean
+lfb_is_initted (void)
+{
+  return _initted;
+}
diff -pruN 43.0-1/tests/mock/lfb/libfeedback.h 44~alpha.1-1/tests/mock/lfb/libfeedback.h
--- 43.0-1/tests/mock/lfb/libfeedback.h	1970-01-01 00:00:00.000000000 +0000
+++ 44~alpha.1-1/tests/mock/lfb/libfeedback.h	2023-01-12 09:50:29.000000000 +0000
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2020 Purism SPC
+ *
+ * SPDX-License-Identifier: LGPL-2.1+
+ */
+#pragma once
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+#include "lfb-enums.h"
+#include "lfb-event.h"
+
+gboolean    lfb_init (const gchar *app_id, GError **error);
+void        lfb_uninit (void);
+gboolean    lfb_is_initted (void);
+
+G_END_DECLS
diff -pruN 43.0-1/tests/mock/lfb/meson.build 44~alpha.1-1/tests/mock/lfb/meson.build
--- 43.0-1/tests/mock/lfb/meson.build	1970-01-01 00:00:00.000000000 +0000
+++ 44~alpha.1-1/tests/mock/lfb/meson.build	2023-01-12 09:50:29.000000000 +0000
@@ -0,0 +1,52 @@
+libfeedback_libdir = get_option('libdir')
+libfeedback_link_args = []
+libfeedback_symbols_file = 'libfeedback.syms'
+
+lfb_enum_headers = files([
+  'lfb-event.h',
+])
+
+libfeedback_headers = [
+  'libfeedback.h',
+  'lfb-event.h',
+]
+
+libfeedback_sources = [
+  'lfb-enums.c',
+  libfeedback_headers,
+  'libfeedback.c',
+  'lfb-event.c',
+]
+
+gio            = dependency('gio-2.0', version: '>=2.50.0')
+glib           = dependency('glib-2.0', version: '>=2.50.0')
+gobject        = dependency('gobject-2.0', version: '>=2.50.0')
+
+libfeedback_deps = [
+  gio,
+  glib,
+  gobject,
+]
+
+libfeedback_c_args = [
+  '-DG_LOG_DOMAIN="libfeedback"',
+]
+
+libtype = 'shared_library'
+libfeedback = build_target(
+  'feedback-0',
+  libfeedback_sources,
+            soversion : 0,
+               c_args : libfeedback_c_args,
+         dependencies : libfeedback_deps,
+            link_args : [],
+              install : false,
+          target_type : libtype,
+)
+
+libfeedback_inc = include_directories('.')
+libfeedback_dep = declare_dependency(
+  link_with : libfeedback,
+  dependencies: libfeedback_deps,
+  include_directories : libfeedback_inc,
+)
diff -pruN 43.0-1/tests/mock/meson.build 44~alpha.1-1/tests/mock/meson.build
--- 43.0-1/tests/mock/meson.build	1970-01-01 00:00:00.000000000 +0000
+++ 44~alpha.1-1/tests/mock/meson.build	2023-01-12 09:50:29.000000000 +0000
@@ -0,0 +1 @@
+subdir('lfb')
diff -pruN 43.0-1/tests/test-manager.c 44~alpha.1-1/tests/test-manager.c
--- 43.0-1/tests/test-manager.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/tests/test-manager.c	2023-01-12 09:50:29.000000000 +0000
@@ -262,12 +262,6 @@ main (gint   argc,
 
   gtk_test_init (&argc, &argv, NULL);
 
-  /* Add builddir as search path */
-#ifdef PLUGIN_BUILDDIR
-  plugin_dir_provider = g_build_filename (PLUGIN_BUILDDIR, "provider", NULL);
-  peas_engine_add_search_path (peas_engine_get_default (), plugin_dir_provider, NULL);
-#endif
-
   g_test_add_func("/Calls/Manager/without_provider", test_calls_manager_without_provider);
   g_test_add_func("/Calls/Manager/dummy_provider", test_calls_manager_dummy_provider);
   g_test_add_func("/Calls/Manager/mm_provider", test_calls_manager_mm_provider);
diff -pruN 43.0-1/tests/test-plugins.c 44~alpha.1-1/tests/test-plugins.c
--- 43.0-1/tests/test-plugins.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/tests/test-plugins.c	2023-01-12 09:50:29.000000000 +0000
@@ -6,6 +6,8 @@
  * Author: Evangelos Ribeiro Tzaras <evangelos.tzaras@puri.sm>
  */
 
+#include "calls-config.h"
+
 #include "calls-provider.h"
 
 #include <gtk/gtk.h>
@@ -46,15 +48,43 @@ gint
 main (gint   argc,
       gchar *argv[])
 {
-  g_autofree char *plugin_dir_provider = NULL;
+  PeasEngine *peas;
+  const gchar *dir;
+  g_autofree char *default_plugin_dir_provider = NULL;
 
   gtk_test_init (&argc, &argv, NULL);
 
-  /* Add builddir as search path */
-#ifdef PLUGIN_BUILDDIR
-  plugin_dir_provider = g_build_filename (PLUGIN_BUILDDIR, "provider", NULL);
-  peas_engine_add_search_path (peas_engine_get_default (), plugin_dir_provider, NULL);
-#endif
+  peas = peas_engine_get_default ();
+
+  dir = g_getenv ("CALLS_PLUGIN_DIR");
+  if (dir && dir[0] != '\0') {
+    g_autofree char *plugin_dir_provider = NULL;
+    plugin_dir_provider = g_build_filename (dir, "provider", NULL);
+    if (g_file_test (plugin_dir_provider, G_FILE_TEST_EXISTS)) {
+      g_debug ("Adding %s to plugin search path", plugin_dir_provider);
+      peas_engine_prepend_search_path (peas, plugin_dir_provider, NULL);
+    } else {
+      g_warning ("Not adding %s to plugin search path, because the directory doesn't exist. Check if env CALLS_PLUGIN_DIR is set correctly", plugin_dir_provider);
+    }
+  }
+
+  default_plugin_dir_provider = g_build_filename (PLUGIN_LIBDIR, "provider", NULL);
+  g_debug ("Adding %s to plugin search path", default_plugin_dir_provider);
+  peas_engine_add_search_path (peas, default_plugin_dir_provider, NULL);
+  peas_engine_rescan_plugins (peas);
+
+  dir = g_getenv ("CALLS_PLUGIN_DIR");
+  if (dir && dir[0] != '\0') {
+    g_autofree char *plugin_dir_provider = NULL;
+    plugin_dir_provider = g_build_filename (dir, "provider", NULL);
+    g_debug ("Adding %s to plugin search path", plugin_dir_provider);
+    peas_engine_prepend_search_path (peas, plugin_dir_provider, NULL);
+  }
+
+  default_plugin_dir_provider = g_build_filename (PLUGIN_LIBDIR, "provider", NULL);
+  g_debug ("Adding %s to plugin search path", default_plugin_dir_provider);
+  peas_engine_add_search_path (peas, default_plugin_dir_provider, NULL);
+  peas_engine_rescan_plugins (peas);
 
   g_test_add_func("/Calls/Plugins/load_plugins", test_calls_plugin_loading);
 
diff -pruN 43.0-1/tests/test-ringer.c 44~alpha.1-1/tests/test-ringer.c
--- 43.0-1/tests/test-ringer.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/tests/test-ringer.c	2023-01-12 09:50:29.000000000 +0000
@@ -14,129 +14,8 @@
 #include "mock-libfeedback.h"
 #include "mock-contacts-provider.h"
 
-#include <cmocka.h>
-#include <setjmp.h>
-
-
-/* mock libfeedback functions */
-
-static gboolean
-on_mock_timeout (gpointer user_data)
-{
-  GTask *task;
-  GCancellable *cancellable;
-
-  if (!G_IS_TASK (user_data))
-    return G_SOURCE_REMOVE;
-
-  task = G_TASK (user_data);
-  cancellable = g_task_get_cancellable (task);
-
-  if (!g_cancellable_is_cancelled (cancellable))
-    g_task_return_boolean (task, TRUE);
-
-  return G_SOURCE_REMOVE;
-}
-
-static gboolean
-on_check_task_cancelled (gpointer user_data)
-{
-  GTask *task;
-
-  if (!G_IS_TASK (user_data))
-    return G_SOURCE_REMOVE;
-
-  task = G_TASK (user_data);
-
-  if (g_task_get_completed (task) || g_task_return_error_if_cancelled (task))
-    return G_SOURCE_REMOVE;
-
-  return G_SOURCE_CONTINUE;
-}
-
-
-gboolean
-__wrap_lfb_init (const char *app_id,
-                 GError    **error)
-{
-  return TRUE;
-}
-
-
-void
-__wrap_lfb_uninit (void)
-{
-  return;
-}
-
-
-void
-__wrap_lfb_event_set_feedback_profile (LfbEvent   *self,
-                                       const char *profile)
-{
-  return;
-}
-
-
-void
-__wrap_lfb_event_trigger_feedback_async (LfbEvent           *self,
-                                         GCancellable       *cancellable,
-                                         GAsyncReadyCallback callback,
-                                         gpointer            user_data)
-{
-  GTask *trigger_task = g_task_new (self, cancellable, callback, user_data);
-  int mock_time_ms = mock_type (int);
-
-  g_timeout_add (mock_time_ms, on_mock_timeout, trigger_task);
-  g_idle_add (G_SOURCE_FUNC (on_check_task_cancelled), trigger_task);
-}
-
-
-gboolean
-__wrap_lfb_event_trigger_feedback_finish (LfbEvent     *self,
-                                          GAsyncResult *res,
-                                          GError      **error)
-{
-  GTask *task = G_TASK (res);
-  gboolean ret;
-
-  ret = g_task_propagate_boolean (task, error);
-
-  g_object_unref (task);
-
-  return ret;
-}
-
-
-void
-__wrap_lfb_event_end_feedback_async (LfbEvent           *self,
-                                     GCancellable       *cancellable,
-                                     GAsyncReadyCallback callback,
-                                     gpointer            user_data)
-{
-  GTask *trigger_task = g_task_new (self, cancellable, callback, user_data);
-  int mock_time_ms = mock_type (int);
-
-  g_timeout_add (mock_time_ms, on_mock_timeout, trigger_task);
-}
-
-
-gboolean
-__wrap_lfb_event_end_feedback_finish (LfbEvent     *self,
-                                      GAsyncResult *res,
-                                      GError      **error)
-{
-  GTask *task = G_TASK (res);
-  gboolean ret;
-
-  ret = g_task_propagate_boolean (G_TASK (res), error);
-
-  g_object_unref (task);
-
-  return ret;
-}
-
 
+/* mock calls_contacts_provider_new() */
 CallsContactsProvider *
 __wrap_calls_contacts_provider_new (void)
 {
@@ -167,7 +46,7 @@ remove_call (CallsManager    *manager,
   g_signal_emit_by_name (manager, "ui-call-removed", call, NULL);
 }
 
-/* TestData setup and tear down */
+/* RingerFixture setup and tear down */
 typedef struct {
   CallsManager    *manager;
   CallsRinger     *ringer;
@@ -176,45 +55,34 @@ typedef struct {
   CallsMockCall   *call_two;
   CallsUiCallData *ui_call_two;
   GMainLoop       *loop;
-} TestData;
+} RingerFixture;
 
 
-static int
-setup_test_data (void **state)
+static void
+setup_ringer (RingerFixture *fixture,
+              gconstpointer  user_data)
 {
-  TestData *data = g_new0 (TestData, 1);
 
-  if (data == NULL)
-    return -1;
-
-  data->manager = calls_manager_get_default ();
-  data->ringer = calls_ringer_new ();
-  data->call_one = calls_mock_call_new ();
-  data->ui_call_one = calls_ui_call_data_new (CALLS_CALL (data->call_one), NULL);
-  data->call_two = calls_mock_call_new ();
-  data->ui_call_two = calls_ui_call_data_new (CALLS_CALL (data->call_two), NULL);
-  data->loop = g_main_loop_new (NULL, FALSE);
-
-  *state = data;
-
-  return 0;
+  fixture->manager = calls_manager_get_default ();
+  fixture->ringer = calls_ringer_new ();
+  fixture->call_one = calls_mock_call_new ();
+  fixture->ui_call_one = calls_ui_call_data_new (CALLS_CALL (fixture->call_one), NULL);
+  fixture->call_two = calls_mock_call_new ();
+  fixture->ui_call_two = calls_ui_call_data_new (CALLS_CALL (fixture->call_two), NULL);
+  fixture->loop = g_main_loop_new (NULL, FALSE);
 }
 
 
-static int
-tear_down_test_data (void **state)
+static void
+tear_down_ringer (RingerFixture *fixture,
+                  gconstpointer  user_data)
 {
-  TestData *data = *state;
-
-  g_object_unref (data->call_one);
-  g_object_unref (data->ui_call_one);
-  g_object_unref (data->call_two);
-  g_object_unref (data->ui_call_two);
-  g_object_unref (data->ringer);
-  g_main_loop_unref (data->loop);
-
-  g_free (data);
-  return 0;
+  g_assert_finalize_object (fixture->ui_call_one);
+  g_assert_finalize_object (fixture->call_one);
+  g_assert_finalize_object (fixture->ui_call_two);
+  g_assert_finalize_object (fixture->call_two);
+  g_assert_finalize_object (fixture->ringer);
+  g_main_loop_unref (fixture->loop);
 }
 
 /* t1: test_ringing_incoming_call */
@@ -224,16 +92,16 @@ t1_on_ringer_call_accepted (CallsRinger
                             gpointer     user_data)
 {
   static guint test_phase = 0;
-  TestData *data = user_data;
+  RingerFixture *fixture = user_data;
 
   switch (test_phase++) {
   case 0: /* incoming call */
-    assert_true (calls_ringer_get_is_ringing (ringer));
-    calls_call_answer (CALLS_CALL (data->call_one));
+    g_assert_cmpint (calls_ringer_get_state (ringer), ==, CALLS_RING_STATE_RINGING);
+    calls_call_answer (CALLS_CALL (fixture->call_one));
     break;
   case 1: /* incoming call accepted */
-    assert_false (calls_ringer_get_is_ringing (ringer));
-    g_main_loop_quit ((GMainLoop *) data->loop);
+    g_assert_cmpint (calls_ringer_get_state (ringer), ==, CALLS_RING_STATE_INACTIVE);
+    g_main_loop_quit ((GMainLoop *) fixture->loop);
     break;
   default:
     g_assert_not_reached (); /* did not find equivalent cmocka assertion */
@@ -242,30 +110,24 @@ t1_on_ringer_call_accepted (CallsRinger
 
 
 static void
-test_ringing_accept_call (void **state)
+test_ringing_accept_call (RingerFixture *fixture,
+                          gconstpointer  user_data)
 {
-  TestData *data = *state;
+  g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_INACTIVE);
 
-  assert_false (calls_ringer_get_is_ringing (data->ringer));
-
-  g_signal_connect (data->ringer,
-                    "notify::ringing",
+  g_signal_connect (fixture->ringer,
+                    "notify::state",
                     G_CALLBACK (t1_on_ringer_call_accepted),
-                    data);
-
-  /* delay before completion of __wrap_lfb_event_trigger_feedback_async() */
-  will_return (__wrap_lfb_event_trigger_feedback_async, 10);
-  /* delay before completion of __wrap_lfb_event_end_feedback_async() */
-  will_return (__wrap_lfb_event_end_feedback_async, 10);
+                    fixture);
 
-  calls_call_set_state (CALLS_CALL (data->call_one), CALLS_CALL_STATE_INCOMING);
-  add_call (data->manager, data->ui_call_one);
+  calls_call_set_state (CALLS_CALL (fixture->call_one), CALLS_CALL_STATE_INCOMING);
+  add_call (fixture->manager, fixture->ui_call_one);
 
-  /* main loop will quit in callback of notify::ring */
-  g_main_loop_run (data->loop);
+  /* main loop will quit in callback of notify::state */
+  g_main_loop_run (fixture->loop);
 
-  remove_call (data->manager, data->ui_call_one);
-  assert_false (calls_ringer_get_is_ringing (data->ringer));
+  remove_call (fixture->manager, fixture->ui_call_one);
+  g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_INACTIVE);
 }
 
 /* t2: test_ringing_hang_up_call */
@@ -275,16 +137,16 @@ t2_on_ringer_call_hang_up (CallsRinger *
                            gpointer     user_data)
 {
   static guint test_phase = 0;
-  TestData *data = user_data;
+  RingerFixture *fixture = user_data;
 
   switch (test_phase++) {
   case 0: /* incoming call */
-    assert_true (calls_ringer_get_is_ringing (ringer));
-    calls_call_hang_up (CALLS_CALL (data->call_one));
+    g_assert_cmpint (calls_ringer_get_state (ringer), ==, CALLS_RING_STATE_RINGING);
+    calls_call_hang_up (CALLS_CALL (fixture->call_one));
     break;
   case 1: /* incoming call hung up */
-    assert_false (calls_ringer_get_is_ringing (ringer));
-    g_main_loop_quit ((GMainLoop *) data->loop);
+    g_assert_cmpint (calls_ringer_get_state (ringer), ==, CALLS_RING_STATE_INACTIVE);
+    g_main_loop_quit ((GMainLoop *) fixture->loop);
     break;
   default:
     g_assert_not_reached (); /* did not find equivalent cmocka assertion */
@@ -293,99 +155,45 @@ t2_on_ringer_call_hang_up (CallsRinger *
 
 
 static void
-test_ringing_hang_up_call (void **state)
+test_ringing_hang_up_call (RingerFixture *fixture,
+                           gconstpointer  user_data)
 {
-  TestData *data = *state;
-
-  assert_false (calls_ringer_get_is_ringing (data->ringer));
+  g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_INACTIVE);
 
-  g_signal_connect (data->ringer,
-                    "notify::ringing",
+  g_signal_connect (fixture->ringer,
+                    "notify::state",
                     G_CALLBACK (t2_on_ringer_call_hang_up),
-                    data);
-
-  /* delay before completion of __wrap_lfb_event_trigger_feedback_async() */
-  will_return (__wrap_lfb_event_trigger_feedback_async, 10);
-  /* delay before completion of __wrap_lfb_event_end_feedback_async() */
-  will_return (__wrap_lfb_event_end_feedback_async, 10);
-
-  calls_call_set_state (CALLS_CALL (data->call_one), CALLS_CALL_STATE_INCOMING);
-  add_call (data->manager, data->ui_call_one);
-
-  /* main loop will quit in callback of notify::ring */
-  g_main_loop_run (data->loop);
-
-  remove_call (data->manager, data->ui_call_one);
-  assert_false (calls_ringer_get_is_ringing (data->ringer));
-}
-
-
-/* t3: test_ringing_hang_up_call_ringer_cancelled */
-static gboolean
-t3_on_ringer_timeout (gpointer user_data)
-{
-  TestData *data = user_data;
-  static guint test_phase = 0;
+                    fixture);
 
-  assert_false (calls_ringer_get_is_ringing (data->ringer));
-  if (test_phase == 0) {
-    calls_call_hang_up (CALLS_CALL (data->call_one));
-    test_phase++;
-    return G_SOURCE_CONTINUE;
-  }
+  calls_call_set_state (CALLS_CALL (fixture->call_one), CALLS_CALL_STATE_INCOMING);
+  add_call (fixture->manager, fixture->ui_call_one);
 
-  g_main_loop_quit ((GMainLoop *) data->loop);
+  /* main loop will quit in callback of notify::state */
+  g_main_loop_run (fixture->loop);
 
-  return G_SOURCE_REMOVE;
+  remove_call (fixture->manager, fixture->ui_call_one);
+  g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_INACTIVE);
 }
 
 
-/** this test should use cancellable code path by hanging up before
- *  event triggering completes
- */
+/* t3: test_ringing_silence_call */
 static void
-test_ringing_hang_up_call_ringer_cancelled (void **state)
-{
-  TestData *data = *state;
-
-  assert_false (calls_ringer_get_is_ringing (data->ringer));
-
-  /* delay before completion of __wrap_lfb_event_trigger_feedback_async() */
-  will_return (__wrap_lfb_event_trigger_feedback_async, 50);
-
-  calls_call_set_state (CALLS_CALL (data->call_one), CALLS_CALL_STATE_INCOMING);
-  add_call (data->manager, data->ui_call_one);
-
-  /** this timeout needs to be longer than the delay for activating the UI/ringer,
-   * see DELAY_UI_MS in calls-ui-call-data.c
-   */
-  g_timeout_add (105, G_SOURCE_FUNC (t3_on_ringer_timeout), data);
-
-  /* main loop will quit in t3_on_ringer_timeout() */
-  g_main_loop_run (data->loop);
-
-  remove_call (data->manager, data->ui_call_one);
-  assert_false (calls_ringer_get_is_ringing (data->ringer));
-}
-
-/* t4: test_ringing_silence_call */
-static void
-t4_on_ringer_call_silence (CallsRinger *ringer,
+t3_on_ringer_call_silence (CallsRinger *ringer,
                            GParamSpec  *pspec,
                            gpointer     user_data)
 {
   static guint test_phase = 0;
-  TestData *data = user_data;
+  RingerFixture *fixture = user_data;
 
   switch (test_phase++) {
   case 0: /* incoming call */
-    assert_true (calls_ringer_get_is_ringing (ringer));
-    calls_ui_call_data_silence_ring (data->ui_call_one);
-    assert_true (calls_ui_call_data_get_silenced (data->ui_call_one));
+    g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_RINGING);
+    calls_ui_call_data_silence_ring (fixture->ui_call_one);
+    g_assert_true (calls_ui_call_data_get_silenced (fixture->ui_call_one));
     break;
   case 1: /* incoming call hung up */
-    assert_false (calls_ringer_get_is_ringing (ringer));
-    g_main_loop_quit ((GMainLoop *) data->loop);
+    g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_INACTIVE);
+    g_main_loop_quit ((GMainLoop *) fixture->loop);
     break;
   default:
     g_assert_not_reached (); /* did not find equivalent cmocka assertion */
@@ -394,70 +202,64 @@ t4_on_ringer_call_silence (CallsRinger *
 
 
 static void
-test_ringing_silence_call (void **state)
+test_ringing_silence_call (RingerFixture *fixture,
+                           gconstpointer  user_data)
 {
-  TestData *data = *state;
+  g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_INACTIVE);
 
-  assert_false (calls_ringer_get_is_ringing (data->ringer));
+  g_signal_connect (fixture->ringer,
+                    "notify::state",
+                    G_CALLBACK (t3_on_ringer_call_silence),
+                    fixture);
 
-  g_signal_connect (data->ringer,
-                    "notify::ringing",
-                    G_CALLBACK (t4_on_ringer_call_silence),
-                    data);
+  calls_call_set_state (CALLS_CALL (fixture->call_one), CALLS_CALL_STATE_INCOMING);
+  add_call (fixture->manager, fixture->ui_call_one);
 
-  /* delay before completion of __wrap_lfb_event_trigger_feedback_async() */
-  will_return (__wrap_lfb_event_trigger_feedback_async, 10);
-  /* delay before completion of __wrap_lfb_event_end_feedback_async() */
-  will_return (__wrap_lfb_event_end_feedback_async, 10);
+  /* main loop will quit in callback of notify::state */
+  g_main_loop_run (fixture->loop);
 
-  calls_call_set_state (CALLS_CALL (data->call_one), CALLS_CALL_STATE_INCOMING);
-  add_call (data->manager, data->ui_call_one);
-
-  /* main loop will quit in callback of notify::ring */
-  g_main_loop_run (data->loop);
-
-  remove_call (data->manager, data->ui_call_one);
-  assert_false (calls_ringer_get_is_ringing (data->ringer));
+  remove_call (fixture->manager, fixture->ui_call_one);
+  g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_INACTIVE);
 }
 
 
-/* t5: test_ringing_multiple_call */
+/* t4: test_ringing_multiple_call */
 static gboolean
-t5_remove_calls (gpointer user_data)
+t4_remove_calls (gpointer user_data)
 {
   static guint test_phase = 0;
-  TestData *data = user_data;
+  RingerFixture *fixture = user_data;
 
   if (test_phase == 0) {
-    remove_call (data->manager, data->ui_call_one);
+    remove_call (fixture->manager, fixture->ui_call_one);
     test_phase++;
     return G_SOURCE_CONTINUE;
   }
 
-  assert_true (calls_ringer_get_is_ringing (data->ringer));
-  remove_call (data->manager, data->ui_call_two);
+  g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_RINGING);
+  remove_call (fixture->manager, fixture->ui_call_two);
 
   return G_SOURCE_REMOVE;
 }
 
 
 static void
-t5_on_ringer_multiple_calls (CallsRinger *ringer,
+t4_on_ringer_multiple_calls (CallsRinger *ringer,
                              GParamSpec  *pspec,
                              gpointer     user_data)
 {
   static guint test_phase = 0;
-  TestData *data = user_data;
+  RingerFixture *fixture = user_data;
 
   switch (test_phase++) {
   case 0: /* add second call, and schedule call removal */
-    assert_true (calls_ringer_get_is_ringing (ringer));
-    add_call (data->manager, data->ui_call_two);
-    g_timeout_add (25, t5_remove_calls, data);
+    g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_RINGING);
+    add_call (fixture->manager, fixture->ui_call_two);
+    g_timeout_add (25, t4_remove_calls, fixture);
     break;
   case 1: /* both calls should be removed now */
-    assert_false (calls_ringer_get_is_ringing (ringer));
-    g_main_loop_quit ((GMainLoop *) data->loop);
+    g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_INACTIVE);
+    g_main_loop_quit ((GMainLoop *) fixture->loop);
     break;
   default:
     g_assert_not_reached (); /* did not find equivalent cmocka assertion */
@@ -466,123 +268,98 @@ t5_on_ringer_multiple_calls (CallsRinger
 
 
 static void
-test_ringing_multiple_calls (void **state)
+test_ringing_multiple_calls (RingerFixture *fixture,
+                             gconstpointer  user_data)
 {
-  TestData *data = *state;
-
-  assert_false (calls_ringer_get_is_ringing (data->ringer));
+  g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_INACTIVE);
 
-  g_signal_connect (data->ringer,
-                    "notify::ringing",
-                    G_CALLBACK (t5_on_ringer_multiple_calls),
-                    data);
+  g_signal_connect (fixture->ringer,
+                    "notify::state",
+                    G_CALLBACK (t4_on_ringer_multiple_calls),
+                    fixture);
 
-  /* delay before completion of __wrap_lfb_event_trigger_feedback_async() */
-  will_return (__wrap_lfb_event_trigger_feedback_async, 10);
-  /* delay before completion of __wrap_lfb_event_end_feedback_async() */
-  will_return (__wrap_lfb_event_end_feedback_async, 10);
+  calls_call_set_state (CALLS_CALL (fixture->call_one), CALLS_CALL_STATE_INCOMING);
+  add_call (fixture->manager, fixture->ui_call_one);
 
-  calls_call_set_state (CALLS_CALL (data->call_one), CALLS_CALL_STATE_INCOMING);
-  add_call (data->manager, data->ui_call_one);
+  /* main loop will quit in callback of notify::state */
+  g_main_loop_run (fixture->loop);
 
-  /* main loop will quit in callback of notify::ring */
-  g_main_loop_run (data->loop);
-
-  assert_false (calls_ringer_get_is_ringing (data->ringer));
+  g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_INACTIVE);
 }
 
 
 static void
-t6_on_ringer_multiple_calls_with_restart (CallsRinger *ringer,
+t5_on_ringer_multiple_calls_with_restart (CallsRinger *ringer,
                                           GParamSpec  *pspec,
                                           gpointer     user_data)
 {
   static guint test_phase = 0;
-  TestData *data = user_data;
+  RingerFixture *fixture = user_data;
 
   switch (test_phase++) {
   case 0:
-    assert_true (calls_ringer_get_is_ringing (ringer));
-    assert_false (calls_ringer_get_ring_is_quiet (ringer));
+    g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_RINGING);
 
-    calls_call_answer (CALLS_CALL (data->call_one));
+    calls_call_answer (CALLS_CALL (fixture->call_one));
     break;
   case 1:
-    assert_true (calls_ringer_get_is_ringing (ringer));
-    assert_true (calls_ringer_get_ring_is_quiet (ringer));
+    g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_RINGING_SOFT);
 
-    calls_call_hang_up (CALLS_CALL (data->call_one));
+    calls_call_hang_up (CALLS_CALL (fixture->call_one));
     break;
   case 2:
-    assert_true (calls_ringer_get_is_ringing (ringer));
-    assert_false (calls_ringer_get_ring_is_quiet (ringer));
+    g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_RINGING);
 
-    calls_call_hang_up (CALLS_CALL (data->call_two));
+    calls_call_hang_up (CALLS_CALL (fixture->call_two));
     break;
   case 3:
-    assert_false (calls_ringer_get_is_ringing (ringer));
-    assert_false (calls_ringer_get_ring_is_quiet (ringer));
+    g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_INACTIVE);
 
-    g_main_loop_quit (data->loop);
+    g_main_loop_quit (fixture->loop);
     break;
   default:
-    g_assert_not_reached (); /* did not find equivalent cmocka assertion */
+    g_assert_not_reached ();
   }
 }
 
 static void
-test_ringing_multiple_calls_with_restart (void **state)
+test_ringing_multiple_calls_with_restart (RingerFixture *fixture,
+                                          gconstpointer  user_data)
 {
-  TestData *data = *state;
-
-  assert_false (calls_ringer_get_is_ringing (data->ringer));
+  g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_INACTIVE);
 
-  g_signal_connect (data->ringer,
-                    "notify::ringing",
-                    G_CALLBACK (t6_on_ringer_multiple_calls_with_restart),
-                    data);
+  g_signal_connect (fixture->ringer,
+                    "notify::state",
+                    G_CALLBACK (t5_on_ringer_multiple_calls_with_restart),
+                    fixture);
 
-  /* delay before completion of __wrap_lfb_event_trigger_feedback_async() */
-  will_return_always (__wrap_lfb_event_trigger_feedback_async, 10);
-  /* delay before completion of __wrap_lfb_event_end_feedback_async() */
-  will_return_always (__wrap_lfb_event_end_feedback_async, 10);
+  calls_call_set_state (CALLS_CALL (fixture->call_one), CALLS_CALL_STATE_INCOMING);
+  add_call (fixture->manager, fixture->ui_call_one);
+  calls_call_set_state (CALLS_CALL (fixture->call_two), CALLS_CALL_STATE_INCOMING);
+  add_call (fixture->manager, fixture->ui_call_two);
 
-  calls_call_set_state (CALLS_CALL (data->call_one), CALLS_CALL_STATE_INCOMING);
-  add_call (data->manager, data->ui_call_one);
-  calls_call_set_state (CALLS_CALL (data->call_two), CALLS_CALL_STATE_INCOMING);
-  add_call (data->manager, data->ui_call_two);
+  /* main loop will quit in callback of notify::state */
+  g_main_loop_run (fixture->loop);
 
-  /* main loop will quit in callback of notify::ring */
-  g_main_loop_run (data->loop);
-
-  assert_false (calls_ringer_get_is_ringing (data->ringer));
+  g_assert_cmpint (calls_ringer_get_state (fixture->ringer), ==, CALLS_RING_STATE_INACTIVE);
 }
 
 int
 main (int   argc,
       char *argv[])
 {
-  const struct CMUnitTest tests[] = {
-    cmocka_unit_test_setup_teardown (test_ringing_accept_call,
-                                     setup_test_data,
-                                     tear_down_test_data),
-    cmocka_unit_test_setup_teardown (test_ringing_hang_up_call,
-                                     setup_test_data,
-                                     tear_down_test_data),
-    cmocka_unit_test_setup_teardown (test_ringing_hang_up_call_ringer_cancelled,
-                                     setup_test_data,
-                                     tear_down_test_data),
-    cmocka_unit_test_setup_teardown (test_ringing_silence_call,
-                                     setup_test_data,
-                                     tear_down_test_data),
-    cmocka_unit_test_setup_teardown (test_ringing_multiple_calls,
-                                     setup_test_data,
-                                     tear_down_test_data),
-    cmocka_unit_test_setup_teardown (test_ringing_multiple_calls_with_restart,
-                                     setup_test_data,
-                                     tear_down_test_data)
-  };
+  g_test_init (&argc, &argv, NULL);
 
-  return cmocka_run_group_tests (tests, NULL, NULL);
-}
+  g_test_add ("/Calls/Ringer/accept_call", RingerFixture, NULL,
+              setup_ringer, test_ringing_accept_call, tear_down_ringer);
+  g_test_add ("/Calls/Ringer/hang_up_call", RingerFixture, NULL,
+              setup_ringer, test_ringing_hang_up_call, tear_down_ringer);
+  g_test_add ("/Calls/Ringer/silence_call", RingerFixture, NULL,
+              setup_ringer, test_ringing_silence_call, tear_down_ringer);
+  g_test_add ("/Calls/Ringer/multiple_call", RingerFixture, NULL,
+              setup_ringer, test_ringing_multiple_calls, tear_down_ringer);
+  g_test_add ("/Calls/Ringer/multiple_call_restart", RingerFixture, NULL,
+              setup_ringer, test_ringing_multiple_calls_with_restart, tear_down_ringer);
 
+  return g_test_run ();
+}
diff -pruN 43.0-1/tests/test-util.c 44~alpha.1-1/tests/test-util.c
--- 43.0-1/tests/test-util.c	2022-09-19 18:33:53.000000000 +0000
+++ 44~alpha.1-1/tests/test-util.c	2023-01-12 09:50:29.000000000 +0000
@@ -9,7 +9,9 @@
 #include "util.h"
 
 #include <gtk/gtk.h>
-#include <limits.h>
+
+#include <sys/socket.h>
+
 
 static void
 test_protocol_prefix (void)
@@ -70,6 +72,27 @@ test_null_empty_strings (void)
   g_assert_false (STR_IS_NULL_OR_EMPTY ("lorem ipsum"));
 }
 
+
+static void
+test_ip_address_family (void)
+{
+  g_assert_cmpint (get_address_family_for_ip ("10.42.0.1", FALSE), ==, AF_INET);
+  g_assert_cmpint (get_address_family_for_ip ("9.9.9.9", FALSE), ==, AF_INET);
+  g_assert_cmpint (get_address_family_for_ip ("127.0.0.1", FALSE), ==, AF_INET);
+  g_assert_cmpint (get_address_family_for_ip ("0.0.0.0", FALSE), ==, AF_INET);
+
+
+  g_assert_cmpint (get_address_family_for_ip ("FE80:0000:0000:0000:0202:C3DF:FE1E:8329", FALSE), ==, AF_INET6);
+  g_assert_cmpint (get_address_family_for_ip ("FE80::0202:C3DF:FE1E:8329", FALSE), ==, AF_INET6);
+  g_assert_cmpint (get_address_family_for_ip ("fe80::0202:c3df:fe1e:8329", FALSE), ==, AF_INET6);
+  g_assert_cmpint (get_address_family_for_ip ("::", FALSE), ==, AF_INET6);
+  g_assert_cmpint (get_address_family_for_ip ("::1", FALSE), ==, AF_INET6);
+
+  g_assert_cmpint (get_address_family_for_ip ("example.org", FALSE), ==, AF_UNSPEC);
+
+}
+
+
 int
 main (int   argc,
       char *argv[])
@@ -80,6 +103,7 @@ main (int   argc,
   g_test_add_func ("/Calls/util/dtmf_tones", (GTestFunc) test_dtmf_tone_validity);
   g_test_add_func ("/Calls/util/call_icon_names", (GTestFunc) test_call_icon_names);
   g_test_add_func ("/Calls/util/null-or-empty-strings", (GTestFunc) test_null_empty_strings);
+  g_test_add_func ("/Calls/util/ip_address_family", (GTestFunc) test_ip_address_family);
 
   g_test_run ();
 }
