diff --git a/.cproject b/.cproject index 8a879f8a7..07ef2412f 100644 --- a/.cproject +++ b/.cproject @@ -22,12 +22,15 @@ - + + @@ -39,6 +42,7 @@ + diff --git a/.gitignore b/.gitignore index 6157903ce..974e81a75 100644 --- a/.gitignore +++ b/.gitignore @@ -41,6 +41,7 @@ Specfile .anjuta_sym_db.db gtk-glade/version_date.h share/linphone.desktop +share/audio-assistant.desktop Debug/ build/macos/Info-linphone.plist coreapi/help/Doxyfile @@ -72,4 +73,4 @@ share/fresh-rootca.pem tester/liblinphone_tester tools/lp-gen-wrappers tools/lpc2xml_test -tools/xml2lpc_test \ No newline at end of file +tools/xml2lpc_test diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 000000000..ae3952338 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,18 @@ +cmake_minimum_required(VERSION 2.6) +project(LINPHONE C) + +option(LINPHONE_ENABLE_VIDEO "Build linphone with video support." ON) + +include_directories( + include/ + coreapi/ + ${CMAKE_CURRENT_BINARY_DIR}/coreapi/ +) + +include_directories( + ${CMAKE_INSTALL_PREFIX}/include + ${CMAKE_INSTALL_PREFIX}/include/libxml2 +) + +add_subdirectory(coreapi) +add_subdirectory(share) diff --git a/Makefile.am b/Makefile.am index 7de47e2c4..89439c9f1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -201,15 +201,12 @@ Portfile-devel: $(top_srcdir)/scripts/Portfile-devel.tmpl dist MACAPPNAME=Linphone.app MACAPPZIP=$(PACKAGE)-$(VERSION).app.zip +MACAPPDMG=$(PACKAGE)-$(VERSION).dmg BUNDLEPREFIX=./ BUNDLEDIR=$(BUNDLEPREFIX)$(MACAPPNAME) -LIBICONV_HACK=$(top_builddir)/build/macos/libiconv.2.dylib -$(LIBICONV_HACK): - cd $(top_builddir)/build/macos && \ - wget http://download-mirror.savannah.gnu.org/releases/linphone/misc/libiconv.2.dylib -bundle: $(LIBICONV_HACK) +bundle: rm -rf $(INSTALLDIR) $(MKDIR_P) $(INSTALLDIR) make install DESTDIR=$(INSTALLDIR) @@ -222,8 +219,8 @@ bundle: $(LIBICONV_HACK) > $(BUNDLEDIR)/Contents/Resources/etc/pango/pangorc cp -f $(BUNDLEDIR)/Contents/Resources/etc/pango/pango.modules $(BUNDLEDIR)/Contents/Resources/etc/pango/pango.modules.orig sed -e 's:@executable_path.*/::g' $(BUNDLEDIR)/Contents/Resources/etc/pango/pango.modules.orig > $(BUNDLEDIR)/Contents/Resources/etc/pango/pango.modules - cp -f $(LIBICONV_HACK) $(BUNDLEDIR)/Contents/Resources/lib/. cd $(BUNDLEDIR)/.. && rm -f $(MACAPPZIP) && zip -r $(MACAPPZIP) $(MACAPPNAME) && cd - + cd $(BUNDLEDIR)/.. && rm -f $(MAXAPPDMG) && hdiutil create $(MACAPPDMG) -srcfolder $(MACAPPNAME) -ov && cd - ### ### CLEAN diff --git a/NEWS b/NEWS index 8797315b0..6fada612f 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,18 @@ -linphone-3.7...?? - Liblinphone level improvements thanks to belle-sip new SIP stack: - * multiple SIP transports simualtaneously now allowed +linphone-3.7.0 -- February 20th, 2014 + Application level improvements: + * It is now possible to configure multiple proxy accounts with different transports (UDP, TCP, TLS) + * can work with IPv6 and IPv4 simultaneously + * User can choose video rendering method on Linux + * Video HD formats support added, leveraging on multiple cores for encoding if available + * Keyboard can be used for DTMF input + * Faster and higly responsive UI thanks to fully asynchronous operation of the liblinphone. + * Addon of opus codec + * Possibility to specify a remote provisionning http URI for configuration + * LDAP search integration for Linux and MacOSX + * is-composing notification in chat area + + Liblinphone level improvements thanks to new "belle-sip" SIP stack: + * multiple SIP transports simultaneously now allowed * IP dual stack: can use IPv6 and IPv4 simultaneously * fully asynchronous behavior: no more lengthly DNS or connections * +sip.instance parameter (RFC5626) @@ -10,7 +22,13 @@ linphone-3.7...?? * SIP transaction state machines improved (RFC6026) * Privacy API (RFC3323, RFC3325) * Full support of rich presence in (RFC4480) + * Better handling of sips scheme in URIs. + * Messaging: support of is-composing (RFC3994) + * Call transfer fixes in error cases + * Add API for managing SIP SUBSCRIBES/NOTIFY/PUBLISH (linphonecore/event.h) + * bugfixes + Requires: mediastreamer2 = 2.10.0, ortp = 0.23.0, belle-sip = 1.3.0 linphone-3.6.1 -- June 17, 2013 * fix memory leak with some video cameras on windows. diff --git a/README b/README index 8913f1205..a2fe5301e 100644 --- a/README +++ b/README @@ -8,7 +8,7 @@ This is Linphone, a free (GPL) video softphone based on the SIP protocol. - intltool - you need at least: - - belle-sip>=1.0.0 + - belle-sip>=1.3.0 - speex>=1.2.0 (including libspeexdsp part) - libxml2 @@ -19,7 +19,7 @@ This is Linphone, a free (GPL) video softphone based on the SIP protocol. - libavcodec (ffmpeg) - libswscale (part of ffmpeg too) for better scaling performance - libxv (x11 video extension) - - ligl1-mesa (OpenGL API -- GLX development files) + - libgl1-mesa (OpenGL API -- GLX development files) - libglew (OpenGL Extension Wrangler library) - libv4l (Video for linux) - libx11 (x11) @@ -33,7 +33,7 @@ This is Linphone, a free (GPL) video softphone based on the SIP protocol. Here is the command line to get these dependencies installed for Ubuntu && Debian - $ sudo apt-get install libtool intltool libgtk2.0-dev libosip2-dev libexosip2-dev libspeexdsp-dev libavcodec-dev libswscale-dev libx11-dev libxv-dev libgl1-mesa-dev libglew1.6-dev libv4l-dev libxml2-dev + $ sudo apt-get install libtool intltool libgtk2.0-dev libspeexdsp-dev libavcodec-dev libswscale-dev libx11-dev libxv-dev libgl1-mesa-dev libglew1.6-dev libv4l-dev libxml2-dev + for optional library $ sudo apt-get install libreadline-dev libgsm1-dev libtheora-dev libsoup2.4-dev libsqlite3-dev libupnp4-dev @@ -44,11 +44,12 @@ This is Linphone, a free (GPL) video softphone based on the SIP protocol. $ sudo make install + Install zrtpcpp (optional), for unbreakable call encryption - $ sudo apt-get install cmake libssl-dev - $ git clone git://git.linphone.org/zrtpcpp.git - $ cd zrtpcpp && cmake -Denable-ccrtp=false . && make + $ sudo apt-get install cmake + $ git clone https://github.com/wernerd/ZRTPCPP.git + $ cd ZRTPCPP + $ cmake -DCORE_LIB=true -DSDES=false . && make $ sudo make install - + If you get this error: "cc1plus: error: unrecognized command line option ‘-std=c++11’", edit CMakeLists.txt and replace c++11 by c++0x . - Compile linphone diff --git a/README.macos b/README.macos index 1713b7968..05a00e080 100644 --- a/README.macos +++ b/README.macos @@ -14,32 +14,34 @@ You need: +universal - Install build time dependencies - $ sudo port install automake autoconf libtool intltool + $ sudo port install automake autoconf libtool intltool wget cunit - Install some linphone dependencies with macports - $ sudo port install speex + $ sudo port install antlr3 speex libvpx readline sqlite3 libsoup openldap $ sudo port install ffmpeg-devel -gpl2 - $ sudo port install libvpx - $ sudo port install readline - - Install gtk. It is recommended to use the quartz backend for better integration. $ sudo port install gtk2 +quartz +no_x11 $ sudo port install gtk-osx-application -python27 $ sudo port install hicolor-icon-theme -- Install additional librairies required for wizard (linphone.org account creation assistant) - $ sudo port install libsoup - -- Install sqlite3 for message storage - $ sudo port install sqlite3 - -The softwares below need to be compiled manually. To ensure compatibility with multiple mac os version it is recommended to do: +The next pieces need to be compiled manually. To ensure compatibility with multiple mac os version it is recommended to do: $ export MACOSX_DEPLOYMENT_TARGET=10.6 $ export CFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=10.5" $ export OBJCFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=10.5" $ export CXXFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=10.5" - $ export LDFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=10.5" + $ export LDFLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=10.5 -Wl,-headerpad_max_install_names -Wl,-read_only_relocs -Wl,suppress" + +- (Optional) libvpx-1.2 has a bug on macos resulting in ugly video. It is recommended to upgrade it manually to 1.3 from source. + The libvpx build isn't able to produce dual architecture files. To workaround this, configure libvpx twice and use lipo to create a dual architecture + libvpx.a . + +- Install libantlr3c (library used by belle-sip for parsing) + $ git clone -b linphone git://git.linphone.org/antlr3.git + $ cd antlr3/runtime/C + $ ./autogen.sh + $ ./configure --disable-static --prefix=/opt/local && make + $ sudo make install - Install polarssl (encryption library used by belle-sip) $ git clone git://git.linphone.org/polarssl.git -b linphone @@ -54,30 +56,27 @@ The softwares below need to be compiled manually. To ensure compatibility with m $ sudo make install - Install srtp (optional) for call encryption - $ sudo port install srtp - If that fails, get from source: $ git clone git://git.linphone.org/srtp.git $ cd srtp && autoconf && ./configure --prefix=/opt/local && make libsrtp.a $ sudo make install - Install zrtpcpp (optional), for unbreakable call encryption $ sudo port install cmake - $ git clone git://git.linphone.org/zrtpcpp.git - $ cd zrtpcpp && cmake -Denable-ccrtp=false . && make - $ sudo make install + $ git clone https://github.com/wernerd/ZRTPCPP.git + $ cd ZRTPCPP + $ cmake -DCORE_LIB=true -DSDES=false CMAKE_INSTALL_NAME_DIR=/usr/local/lib/ -DCMAKE_C_FLAGS="-arch i386 -arch x86_64 -mmacosx-version-min=10.5" -DCMAKE_CXX_FLAGS="-arch i386 -arch x86_64 --stdlib=libstdc++ -std=c++11 -lstdc++ -mmacosx-version-min=10.5" -DCMAKE_C_COMPILER=`xcrun --find clang` -DCMAKE_CXX_COMPILER=`xcrun --find clang` . +$ sudo make install - ** WARNING 2013-03-06 glib-networking is currently broken in macports - generates crashes or hangs when used in a bundle ** - As a temporary workaround, build a newer version by yourself: - $ wget http://ftp.gnome.org/pub/gnome/sources/glib-networking/2.34/glib-networking-2.34.2.tar.xz - $ tar -xvzf glib-networking-2.34.2.tar.xz - $ cd glib-networking-2.34.2 - $ ./configure --prefix=/opt/local --without-ca-certificates && make - $ sudo make install + +- Install gsm codec (optional) + $ git clone git://git.linphone.org/gsm.git + $ cd gsm + $ make CCFLAGS="$CFLAGS -c -O2 -DNeedFunctionPrototypes=1" + $ sudo make install INSTALL_ROOT=/opt/local GSM_INSTALL_INC=/opt/local/include - Compile and install the tunnel library (optional, proprietary extension only) - If you got the source code from git, run ./autogen.sh first - + If you got the source code from git, run ./autogen.sh first. Then or otherwise, do: $ ./configure --prefix=/opt/local && make && sudo make install @@ -88,7 +87,7 @@ The softwares below need to be compiled manually. To ensure compatibility with m Then or otherwise, do: - $ ./configure --prefix=/opt/local --with-readline=/opt/local --disable-x11 --with-srtp=/opt/local --with-gsm=/opt/local --enable-zrtp --disable-strict && make + $ PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure --prefix=/opt/local --with-readline=/opt/local --disable-x11 --with-srtp=/opt/local --with-gsm=/opt/local --enable-zrtp --disable-strict && make Install to /opt/local @@ -104,6 +103,12 @@ Use git: #make this dummy charset.alias file for the bundler to be happy: $ sudo touch touch /opt/local/lib/charset.alias +The bundler file in build/macos/linphone.bundle expects some plugins to be installed in /opt/local/lib/mediastreamer/plugins . +If you don't need plugins, remove or comment out this line from the bundler file: + + ${prefix:ms2plugins}/lib/mediastreamer/plugins/*.*.so + + Then run, inside linphone source tree: Run configure as told before but with "--enable-relativeprefix" appended. $ make @@ -116,7 +121,7 @@ For a better appearance, you can install the gtk-quartz-engine (a gtk theme) tha $ git clone https://github.com/jralls/gtk-quartz-engine.git $ cd gtk-quartz-engine $ autoreconf -i - $ ./configure --prefix=/opt/local && make + $ ./configure --prefix=/opt/local CFLAGS="$CFLAGS -Wno-error" && make $ sudo make install Generate a new bundle to have it included. diff --git a/README.mingw b/README.mingw index cb1f60c01..79e8ce547 100644 --- a/README.mingw +++ b/README.mingw @@ -1,15 +1,18 @@ Software to install ******************* -Download lastest mingw-get-inst.exe from http://www.mingw.org -Run mingw-get-inst.exe. Choose "download lastest catalogues". -In the feature list, select: -* C compiler -* C++ compiler -* Mingw developer toolkit -Let the installer fetch and install everything. +Download lastest mingw-get-setup.exe from http://www.mingw.org +Run mingw-get-setup.exe. +In the package list, select and install: +* mingw32-developer-tool +* mingw32-base +* mingw32-gcc-g++ +* msys-base -In mingw shell, run +For more information: +http://www.mingw.org/wiki/Getting_Started + +In mingw shell (also refered as msys), run mingw-get install msys-zip mingw-get install msys-unzip @@ -37,7 +40,7 @@ unzip #Install GTK+ Outcrop theme, the one used by linphone for distribution. cd /share/themes -wget http://art.gnome.org/download/themes/gtk2/1122/GTK2-Outcrop.tar.gz +wget ftp://ftp.gnome.org/mirror/gnome.org/teams/art.gnome.org/themes/gtk2/GTK2-Outcrop.tar.gz tar -xvzf GTK2-Outcrop.tar.gz #To get the translations working, remove from C:/MinGW/lib : @@ -45,70 +48,63 @@ libintl.a libintl.la libintl.dll.a * Download and install Inno Setup Compiler (required only if you run 'make setup.exe'). Add it to your windows Path environment variable. -Get Linphone source code -************************ +* Install msys-git from (http://code.google.com/p/msysgit/). During installation you are asked to make a choice about how line endings are treated by git. Choose "Checkout line endings as they are, commit as they are". THIS CHOICE IS VERY IMPORTANT. OTHERS BREAK AUTOMAKE. -Install msys-git from (http://code.google.com/p/msysgit/). During installation you are asked to make a choice about how line endings are treated by git. -Choose "Checkout line endings as they are, commit as they are". THIS CHOICE IS VERY IMPORTANT. OTHERS BREAK AUTOMAKE. -It is recommended that you create a directory somewhere with a path without any spaces or ~ characters, for example -c:\sources\ -Within msys-git bash, do +General rules for compilation +***************************** + +- It is recommended that you create a directory somewhere with a path without any spaces or ~ characters, for example c:\sources\. + This is the place where source code must be compiled. +- git commands (to retrieve source code) must be performed within msys-git terminal. +- all other commands (configure, autogen.sh, make) must be done within the mingw shell (msys). +In both msys and msys-git windows, change into the directory you created for sources: cd /c/sources -git clone git://git.linphone.org/linphone.git --recursive +Building belle-sip +****************** + * download the sources with msys-git shell using the following command: + $ git clone git://git.linphone.org/belle-sip.git + * compile and install + $ ./autogen.sh + $ ./configure --prefix=/usr --enable-shared --disable-static + $ make && make install -Building -******** +Building Linphone +***************** -WARNING: During the build, windows might slow down suddenly. Using ctl+alt+del to start the windows system monitor, - you might see a process 'LVpSRV.exe' or something like this that eats 90% of cpu. -Kill it. Don't know what it is, but once killed, windows runs normally. + * download the sources using the following command: + $ git clone git://git.linphone.org/linphone.git --recursive -#Build linphone itself: -#run autogen.sh after a git checkout or update + * compile + #always run autogen.sh after a git checkout or update + $ ./autogen.sh -./autogen.sh + $ ./configure --prefix=/usr --enable-shared --disable-static + #note: in order to use the tunnel (commercial extension), append --enable-tunnel to the configure line above. -./configure --prefix=/usr --enable-shared --disable-static -#note: in order to use the tunnel, append --enable-tunnel to the configure line above. + $ make + $ make install -#compile: + #Option: make a portable binary zip of linphone + $ make zip -make + #additionally you can make binary installer if you have Inno Setup 5 installed in its default path -#now install to /usr, required for compilation of plugins. + $ make setup.exe + #now you're done, you have a fresh linphone windows installer in the current directory. -make install +Building plugins (optional) +*************************** -#make a binary zip of linphone - -make zip - -#additionally you can make binary installer if you have Inno Setup 5 installed in its default path - -make setup.exe - -#now you're done, you have a fresh linphone windows installer in the current directory. - - - -#build plugins -cd mediastreamer2/plugins/msx264 -./autogen.sh -PKG_CONFIG_PATH=/usr/lib/pkgconfig ./configure --prefix=/usr --enable-shared --disable-static -#make a binary zip of this plugin -make zip -#or make an installer -make setup.exe - -#the buddylookup plugin enables lookup of buddies in a remote database using xml-rpc over http/https. -cd coreapi/plugins/buddylookup -./autogen.sh -PKG_CONFIG_PATH=/usr/lib/pkgconfig ./configure --prefix=/usr --enable-shared --disable-static -make -#make a binary zip of this plugin -make zip + This the example for msx264 (H264 plugin), the same applies for other linphone plugins. + $ cd mediastreamer2/plugins/msx264 + $ ./autogen.sh + $ PKG_CONFIG_PATH=/usr/lib/pkgconfig ./configure --prefix=/usr --enable-shared --disable-static + #make a binary zip of this plugin + $ make zip + #or make an installer + $ make setup.exe ****************************************************** @@ -122,8 +118,8 @@ linphone-deps packages. List of software included in linphone-deps: antlr3c (compiled) +bzrtp (compiled) polarssl (compiled -belle-sip (compiled) libsrtp (compiled) libavcodec, libavutil, libavformat, libavdevice, libswscale (compiled, all these from ffmpeg) libtheora (from the web) @@ -161,14 +157,6 @@ When running "make install DESTDIR=", somepath must be absolute and sh $ make install DESTDIR=/usr $ make install DESTDIR=/home//polarssl-install -- building belle-sip - * download the sources with: - $ git clone git://git.linphone.org/belle-sip.git - * compile and install, assuming you have already compiled polarssl and antlr3c and installed in /. - $ ./autogen.sh - $ ./configure --prefix=/usr --enable-shared --disable-static - $ make && make install && make install DESTDIR=/home//belle-sip-install - - building libsrtp * download the sources with $ git clone git://git.linphone.org/srtp.git @@ -179,6 +167,14 @@ When running "make install DESTDIR=", somepath must be absolute and sh $ make install $ make install DESTDIR=/home//libsrtp-install +- building bzrtp + * download the sources with msys-git shell using the following command: + $ git clone git://git.linphone.org/bzrtp.git + * compile and install + $ ./autogen.sh + $ ./configure --prefix=/usr --enable-shared --disable-static + $ make && make install + - building sqlite3 * download the sources on the following website: http://www.sqlite.org/download.html (choose the sqlite-autoconf-3XXX.tar.gz) diff --git a/README.zrtp b/README.zrtp deleted file mode 100644 index c71c8d2d7..000000000 --- a/README.zrtp +++ /dev/null @@ -1,94 +0,0 @@ -ZRTP guide - -== Downloads == -- SRTP -http://sourceforge.net/projects/srtp/ -or "apt-get source libsrtp0" on Debian - -- ZRTP (libzrtpcpp-2.0) -http://www.gnutelephony.org/index.php/GNU_ZRTP - - -== Patch libzrtpcpp == -Index: src/ZIDFile.cpp -=================================================================== ---- src/ZIDFile.cpp (révision 754) -+++ src/ZIDFile.cpp (copie de travail) -@@ -78,10 +78,11 @@ - - // create save file name, rename and re-open - // if rename fails, just unlink old ZID file and create a brand new file -- // just a little inconnvenience for the user, need to verify new SAS -+ // just a little inconvenience for the user, need to verify new SAS - std::string fn = std::string(name) + std::string(".save"); - if (rename(name, fn.c_str()) < 0) { -- unlink(name); -+ // unlink(name); - createZIDFile(name); - return; - } -Index: src/libzrtpcpp/ZrtpCallback.h -=================================================================== ---- src/libzrtpcpp/ZrtpCallback.h (révision 754) -+++ src/libzrtpcpp/ZrtpCallback.h (copie de travail) -@@ -27,7 +27,7 @@ - - #include - #include --#include -+//#include - #include - - /** -Index: src/libzrtpcpp/ZIDRecord.h -=================================================================== ---- src/libzrtpcpp/ZIDRecord.h (révision 754) -+++ src/libzrtpcpp/ZIDRecord.h (copie de travail) -@@ -33,7 +33,7 @@ - - #include - #include --#include -+//#include - - #define IDENTIFIER_LEN 12 - #define RS_LENGTH 32 -Index: CMakeLists.txt -=================================================================== ---- CMakeLists.txt (révision 754) -+++ CMakeLists.txt (copie de travail) -@@ -124,11 +124,15 @@ - if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions(-Wno-long-long -Wno-char-subscripts) - add_definitions(-Wall -ansi -pedantic) -+ add_definitions(-DNEW_STDCPP) - endif() - - add_subdirectory(src) --add_subdirectory(demo) - -+if (enable_ccrtp) -+ add_subdirectory(demo) -+endif() -+ - if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/package/) - MESSAGE(STATUS "package dir not found") - file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/package/) - - - -== Create simlinks or move folders == -submodules/external/srtp -> path_to_your_srtp_source -submodules/external/libzrtpcpp -> path_to_your_patched_zrtpcpp_source - - - -== Compilation for Android == -ndk-build BUILD_GPLV3_ZRTP=1 -j5 - - -== Compilation for Desktop version == -First ortp: ./autogen.sh && ./configure --enable-zrtp && make -j5 && sudo make install -Then mediastreamer2: ./autogen.sh && ./configure && make -j5 && sudo make install -Finally linphone: ./autogen.sh && ./configure --enable-external-ortp && make -j5 && sudo make install - diff --git a/autogen.sh b/autogen.sh index 3bb716755..cf357cd66 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,5 +1,11 @@ #!/bin/sh +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +THEDIR=`pwd` +cd $srcdir + #AM_VERSION="1.10" if ! type aclocal-$AM_VERSION 1>/dev/null 2>&1; then # automake-1.10 (recommended) is not available on Fedora 8 @@ -42,12 +48,17 @@ autoheader $AUTOMAKE --force-missing --add-missing --copy autoconf -if [ -x oRTP/autogen.sh ]; then - echo "Generating build scripts in oRTP..." - ( cd oRTP && ./autogen.sh ) +set +x +if [ "$srcdir" = "." ]; then + if [ -x oRTP/autogen.sh ]; then + echo "Generating build scripts in oRTP..." + ( cd oRTP && ./autogen.sh ) + fi + + if [ -x mediastreamer2/autogen.sh ]; then + echo "Generating build scripts in mediastreamer2..." + ( cd mediastreamer2 && ./autogen.sh ) + fi fi -if [ -x mediastreamer2/autogen.sh ]; then - echo "Generating build scripts in mediastreamer2..." - ( cd mediastreamer2 && ./autogen.sh ) -fi +cd $THEDIR diff --git a/build/android/Android.mk b/build/android/Android.mk index e9c9fa1f6..18fbbdbfd 100755 --- a/build/android/Android.mk +++ b/build/android/Android.mk @@ -60,7 +60,11 @@ LOCAL_SRC_FILES := \ linphone_tunnel_config.c \ message_storage.c \ info.c \ - event.c + event.c \ + xml.c \ + xml2lpc.c \ + lpc2xml.c \ + remote_provisioning.c ifndef LINPHONE_VERSION LINPHONE_VERSION = "Devel" @@ -83,6 +87,9 @@ LOCAL_CFLAGS += -DVIDEO_ENABLED ifeq ($(BUILD_X264),1) LOCAL_CFLAGS += -DHAVE_X264 endif +ifeq ($(BUILD_OPENH264),1) +LOCAL_CFLAGS += -DHAVE_OPENH264 +endif endif ifeq ($(BUILD_CONTACT_HEADER),1) @@ -171,6 +178,11 @@ LOCAL_STATIC_LIBRARIES += \ libmsx264 \ libx264 endif +ifeq ($(BUILD_OPENH264),1) +LOCAL_STATIC_LIBRARIES += \ + libmsopenh264 \ + libwels +endif endif ifeq ($(BUILD_UPNP),1) @@ -184,30 +196,23 @@ ifeq ($(BUILD_SRTP), 1) LOCAL_C_INCLUDES += $(SRTP_C_INCLUDE) endif -ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) +ifneq ($(TARGET_ARCH_ABI),armeabi) LOCAL_CFLAGS += -DHAVE_ILBC=1 LOCAL_STATIC_LIBRARIES += libmsilbc endif -LOCAL_C_INCLUDES += $(LIBLINPHONE_EXTENDED_C_INCLUDES) +LOCAL_C_INCLUDES += $(LIBLINPHONE_EXTENDED_C_INCLUDES) LOCAL_WHOLE_STATIC_LIBRARIES += $(LIBLINPHONE_EXTENDED_STATIC_LIBS) LOCAL_SRC_FILES += $(LIBLINPHONE_EXTENDED_SRC_FILES) +LOCAL_CFLAGS += $(LIBLINPHONE_EXTENDED_CFLAGS) -ifeq ($(BUILD_GPLV3_ZRTP),1) - LOCAL_SHARED_LIBRARIES += libssl-linphone libcrypto-linphone - LOCAL_SHARED_LIBRARIES += libzrtpcpp + +ifeq ($(BUILD_ZRTP),1) + LOCAL_STATIC_LIBRARIES += libbzrtp endif ifeq ($(BUILD_SRTP),1) - LOCAL_SHARED_LIBRARIES += libsrtp -endif - -ifeq ($(BUILD_REMOTE_PROVISIONING),1) -LOCAL_SRC_FILES += ../tools/xml2lpc.c \ - ../tools/xml2lpc_jni.cc \ - ../tools/lpc2xml.c \ - ../tools/lpc2xml_jni.cc - + LOCAL_STATIC_LIBRARIES += libsrtp endif ifeq ($(BUILD_SQLITE),1) diff --git a/build/android/liblinphone_tester.mk b/build/android/liblinphone_tester.mk index 5d9c7a469..8e5221e20 100644 --- a/build/android/liblinphone_tester.mk +++ b/build/android/liblinphone_tester.mk @@ -8,7 +8,11 @@ common_SRC_FILES := \ register_tester.c \ setup_tester.c \ upnp_tester.c \ - eventapi_tester.c + eventapi_tester.c \ + stun_tester.c \ + flexisip_tester.c \ + tester.c \ + remote_provisioning_tester.c common_C_INCLUDES += \ $(LOCAL_PATH) \ diff --git a/build/macos/environment.sh b/build/macos/environment.sh index c2c672973..3b9ff16af 100644 --- a/build/macos/environment.sh +++ b/build/macos/environment.sh @@ -2,4 +2,5 @@ export EXTRA_ARGS="--workdir $bundle_res" export GIO_EXTRA_MODULES="$bundle_lib/gio/modules" export PANGO_LIBDIR="$bundle_lib" export PANGO_SYSCONFDIR="$bundle_etc" +export DYLD_LIBRARY_PATH= diff --git a/build/macos/linphone.bundle b/build/macos/linphone.bundle index 780b73e1c..8896fa7d3 100644 --- a/build/macos/linphone.bundle +++ b/build/macos/linphone.bundle @@ -92,6 +92,9 @@ ${prefix}/lib/${gtkdir}/${pkg:${gtk}:gtk_binary_version}/engines/*.so + + ${prefix}/lib/${gtkdir}/${pkg:${gtk}:gtk_binary_version}/immodules/*.so + ${prefix}/lib/gio/modules/libgiognutls.so @@ -101,6 +104,15 @@ want to copy in to the bundle. The "dest" attribute is optional, as usual. Bundler will find all translations of that library/program under the indicated directory and copy them.--> + + ${prefix}/share/locale + + + ${prefix}/share/locale + + + ${prefix}/share/locale + ${prefix}/share/locale @@ -120,6 +132,11 @@ ${prefix:linphone}/share/pixmaps/linphone + + ${prefix:linphone}/share/images + + + @@ -154,6 +171,10 @@ ${prefix:linphone}/share/sounds/linphone/ringback.wav + + + ${prefix:linphone}/share/sounds/linphone/incoming_chat.wav + + + False + 12 + + + + + + + + + + + + + + diff --git a/gtk/call_statistics.ui b/gtk/call_statistics.ui index c6f71deb6..2412d9793 100644 --- a/gtk/call_statistics.ui +++ b/gtk/call_statistics.ui @@ -1,6 +1,6 @@ - + False @@ -59,7 +59,7 @@ True False - 7 + 9 2 True @@ -224,6 +224,52 @@ 7 + + + True + False + Video resolution received + + + 7 + 8 + + + + + True + False + + + 1 + 2 + 7 + 8 + + + + + True + False + Video resolution sent + + + 8 + 9 + + + + + True + False + + + 1 + 2 + 8 + 9 + + diff --git a/gtk/calllogs.c b/gtk/calllogs.c index e9b460636..7a4840aa8 100644 --- a/gtk/calllogs.c +++ b/gtk/calllogs.c @@ -56,11 +56,13 @@ void linphone_gtk_call_log_chat_selected(GtkWidget *w){ if (select!=NULL){ GtkTreeModel *model=NULL; if (gtk_tree_selection_get_selected (select,&model,&iter)){ - gpointer pla; + gpointer pcl; LinphoneAddress *la; - gtk_tree_model_get(model,&iter,2,&pla,-1); - la=(LinphoneAddress*)pla; - if (la!=NULL){ + LinphoneCallLog *cl; + gtk_tree_model_get(model,&iter,2,&pcl,-1); + cl = (LinphoneCallLog *)pcl; + la = linphone_call_log_get_dir(cl)==LinphoneCallIncoming ? linphone_call_log_get_from(cl) : linphone_call_log_get_to(cl); + if (la != NULL){ linphone_gtk_friend_list_set_chat_conversation(la); } } @@ -75,12 +77,14 @@ void linphone_gtk_call_log_add_contact(GtkWidget *w){ if (select!=NULL){ GtkTreeModel *model=NULL; if (gtk_tree_selection_get_selected (select,&model,&iter)){ - gpointer pla; + gpointer pcl; LinphoneAddress *la; + LinphoneCallLog *cl; LinphoneFriend *lf; - gtk_tree_model_get(model,&iter,2,&pla,-1); - la=(LinphoneAddress*)pla; - if (la!=NULL){ + gtk_tree_model_get(model,&iter,2,&pcl,-1); + cl = (LinphoneCallLog *)pcl; + la = linphone_call_log_get_dir(cl)==LinphoneCallIncoming ? linphone_call_log_get_from(cl) : linphone_call_log_get_to(cl); + if (la != NULL){ char *uri=linphone_address_as_string(la); lf=linphone_friend_new_with_address(uri); linphone_gtk_show_contact(lf); @@ -92,16 +96,19 @@ void linphone_gtk_call_log_add_contact(GtkWidget *w){ static bool_t put_selection_to_uribar(GtkWidget *treeview){ GtkTreeSelection *sel; - sel=gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); if (sel!=NULL){ GtkTreeModel *model=NULL; GtkTreeIter iter; if (gtk_tree_selection_get_selected (sel,&model,&iter)){ char *tmp; + gpointer pcl; LinphoneAddress *la; - gtk_tree_model_get(model,&iter,2,&la,-1); - tmp=linphone_address_as_string(la); + LinphoneCallLog *cl; + gtk_tree_model_get(model,&iter,2,&pcl,-1); + cl = (LinphoneCallLog *)pcl; + la = linphone_call_log_get_dir(cl)==LinphoneCallIncoming ? linphone_call_log_get_from(cl) : linphone_call_log_get_to(cl); + tmp = linphone_address_as_string(la); if(tmp!=NULL) gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(linphone_gtk_get_main_window(),"uribar")),tmp); ms_free(tmp); @@ -131,10 +138,12 @@ static GtkWidget *linphone_gtk_create_call_log_menu(GtkWidget *call_log){ if (select!=NULL){ GtkTreeModel *model=NULL; if (gtk_tree_selection_get_selected (select,&model,&iter)){ - gpointer pla; + gpointer pcl; LinphoneAddress *la; - gtk_tree_model_get(model,&iter,2,&pla,-1); - la=(LinphoneAddress*)pla; + LinphoneCallLog *cl; + gtk_tree_model_get(model,&iter,2,&pcl,-1); + cl = (LinphoneCallLog *)pcl; + la = linphone_call_log_get_dir(cl)==LinphoneCallIncoming ? linphone_call_log_get_from(cl) : linphone_call_log_get_to(cl); name=linphone_address_as_string(la); call_label=g_strdup_printf(_("Call %s"),name); text_label=g_strdup_printf(_("Send text to %s"),name); @@ -262,7 +271,7 @@ void linphone_gtk_call_log_update(GtkWidget *w){ for (logs=linphone_core_get_call_logs(linphone_gtk_get_core());logs!=NULL;logs=logs->next){ LinphoneCallLog *cl=(LinphoneCallLog*)logs->data; GtkTreeIter iter, iter2; - const LinphoneAddress *la=linphone_call_log_get_dir(cl)==LinphoneCallIncoming ? linphone_call_log_get_from(cl) : linphone_call_log_get_to(cl); + LinphoneAddress *la=linphone_call_log_get_dir(cl)==LinphoneCallIncoming ? linphone_call_log_get_from(cl) : linphone_call_log_get_to(cl); char *addr= linphone_address_as_string(la); const char *display; gchar *logtxt, *headtxt, *minutes, *seconds; @@ -284,8 +293,10 @@ void linphone_gtk_call_log_update(GtkWidget *w){ #endif lf=linphone_core_get_friend_by_address(linphone_gtk_get_core(),addr); if(lf != NULL){ - la=linphone_friend_get_address(lf); - display=linphone_address_get_display_name(la); + if ((display=linphone_address_get_display_name(linphone_friend_get_address(lf)))) { + /*update display name from friend*/ + linphone_address_set_display_name(la,display); + } } else { display=linphone_address_get_display_name(la); } @@ -295,6 +306,7 @@ void linphone_gtk_call_log_update(GtkWidget *w){ display=linphone_address_get_domain (la); } } + if (linphone_call_log_get_quality(cl)!=-1){ snprintf(quality,sizeof(quality),"%.1f",linphone_call_log_get_quality(cl)); }else snprintf(quality,sizeof(quality)-1,"%s",_("n/a")); @@ -338,9 +350,9 @@ void linphone_gtk_call_log_update(GtkWidget *w){ GdkPixbuf *outgoing = create_pixbuf("call_status_outgoing.png"); gtk_tree_store_set (store,&iter, 0, linphone_call_log_get_dir(cl)==LinphoneCallOutgoing ? outgoing : incoming, - 1, headtxt,2,la,-1); + 1, headtxt,2,cl,-1); gtk_tree_store_append (store,&iter2,&iter); - gtk_tree_store_set (store,&iter2,1,logtxt,2,la,-1); + gtk_tree_store_set (store,&iter2,1,logtxt,-1); ms_free(addr); g_free(logtxt); g_free(headtxt); @@ -398,4 +410,4 @@ GtkWidget * linphone_gtk_show_call_logs(void){ linphone_gtk_call_log_update(w); }else gtk_window_present(GTK_WINDOW(w)); return w; -} \ No newline at end of file +} diff --git a/gtk/chat.c b/gtk/chat.c index bfb6529e8..9f6e21943 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -279,6 +279,16 @@ static void on_chat_state_changed(LinphoneChatMessage *msg, LinphoneChatMessageS update_chat_state_message(state,msg); } +void linphone_gtk_compose_text(void) { + GtkWidget *main_window=linphone_gtk_get_main_window(); + GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list"); + GtkWidget *w=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); + LinphoneChatRoom *cr=g_object_get_data(G_OBJECT(w),"cr"); + if (cr) { + linphone_chat_room_compose(cr); + } +} + void linphone_gtk_send_text(){ GtkWidget *main_window=linphone_gtk_get_main_window(); GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list"); @@ -293,7 +303,11 @@ void linphone_gtk_send_text(){ linphone_chat_room_send_message2(cr,msg,on_chat_state_changed,NULL); linphone_gtk_push_text(w,linphone_chat_message_get_from(msg), TRUE,cr,msg,FALSE); + + // Disconnect and reconnect the "changed" signal to prevent triggering it when clearing the text entry. + g_signal_handlers_disconnect_by_func(G_OBJECT(entry),(GCallback)linphone_gtk_compose_text,NULL); gtk_entry_set_text(GTK_ENTRY(entry),""); + g_signal_connect_swapped(G_OBJECT(entry),"changed",(GCallback)linphone_gtk_compose_text,NULL); } } @@ -357,7 +371,7 @@ void linphone_gtk_chat_add_contact(const LinphoneAddress *addr){ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddress *with){ GtkWidget *chat_view=linphone_gtk_create_widget("main","chatroom_frame"); - GtkWidget *main_window=linphone_gtk_get_main_window (); + GtkWidget *main_window=linphone_gtk_get_main_window(); GtkNotebook *notebook=(GtkNotebook *)linphone_gtk_get_widget(main_window,"viewswitch"); GtkWidget *text=linphone_gtk_get_widget(chat_view,"textview"); GdkColor color; @@ -375,7 +389,7 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres colorb.red = 56832; colorb.green = 60928; colorb.blue = 61952; - + with_str=linphone_address_as_string_uri_only(with); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text),GTK_WRAP_WORD_CHAR); gtk_text_view_set_editable(GTK_TEXT_VIEW(text),FALSE); @@ -410,6 +424,7 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres g_signal_connect_swapped(G_OBJECT(button),"clicked",(GCallback)linphone_gtk_send_text,NULL); entry = linphone_gtk_get_widget(chat_view,"text_entry"); g_signal_connect_swapped(G_OBJECT(entry),"activate",(GCallback)linphone_gtk_send_text,NULL); + g_signal_connect_swapped(G_OBJECT(entry),"changed",(GCallback)linphone_gtk_compose_text,NULL); g_signal_connect(G_OBJECT(notebook),"switch_page",(GCallback)linphone_gtk_notebook_tab_select,NULL); ms_free(with_str); return chat_view; @@ -417,7 +432,7 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres LinphoneChatRoom * linphone_gtk_create_chatroom(const LinphoneAddress *with){ char *tmp=linphone_address_as_string(with); - LinphoneChatRoom *cr=linphone_core_create_chat_room(linphone_gtk_get_core(),tmp); + LinphoneChatRoom *cr=linphone_core_get_or_create_chat_room(linphone_gtk_get_core(),tmp); ms_free(tmp); return cr; } @@ -468,9 +483,10 @@ void linphone_gtk_text_received ( LinphoneCore *lc, LinphoneChatRoom *room, gboolean send=TRUE; /*GtkNotebook *notebook= ( GtkNotebook * ) linphone_gtk_get_widget ( main_window,"viewswitch" );*/ const LinphoneAddress *from= linphone_chat_message_get_from ( msg ); - + w= ( GtkWidget* ) g_object_get_data ( G_OBJECT ( friendlist ),"chatview" ); if ( w!=NULL ) { + /* Chat window opened */ const LinphoneAddress *from_chatview=linphone_gtk_friend_list_get_active_address(); if (linphone_address_weak_equal(from,from_chatview)) { send=TRUE; @@ -480,8 +496,13 @@ void linphone_gtk_text_received ( LinphoneCore *lc, LinphoneChatRoom *room, } send=FALSE; } - } else { + } else { + /* Chat window closed */ +#ifdef MSG_STORAGE_ENABLED send=FALSE; +#else + send=TRUE; +#endif if ( !linphone_gtk_friend_list_is_contact ( linphone_chat_message_get_from ( msg ) ) ) { linphone_gtk_chat_add_contact ( linphone_chat_message_get_from ( msg ) ); } @@ -507,6 +528,11 @@ void linphone_gtk_text_received ( LinphoneCore *lc, LinphoneChatRoom *room, linphone_gtk_push_text ( w,linphone_chat_message_get_from ( msg ), FALSE,room,msg,FALSE ); } + linphone_core_play_local(lc,linphone_gtk_get_sound_path("incoming_chat.wav")); linphone_gtk_show_friends(); } + +void linphone_gtk_is_composing_received(LinphoneCore *lc, LinphoneChatRoom *room) { + linphone_gtk_friend_list_update_chat_picture(); +} diff --git a/gtk/config-fetching.c b/gtk/config-fetching.c new file mode 100644 index 000000000..e275662e1 --- /dev/null +++ b/gtk/config-fetching.c @@ -0,0 +1,79 @@ +/* +linphone, gtk-glade interface. +Copyright (C) 2008 Simon MORLAT (simon.morlat@linphone.org) + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#include "linphone.h" +#include "lpconfig.h" + + +void linphone_gtk_set_configuration_uri(void){ + GtkWidget *w=linphone_gtk_create_window("config-uri"); + GtkWidget *entry=linphone_gtk_get_widget(w,"uri_entry"); + const char *uri=linphone_core_get_provisioning_uri(linphone_gtk_get_core()); + if (uri) gtk_entry_set_text(GTK_ENTRY(entry),uri); + gtk_widget_show(w); +} + +void linphone_gtk_config_uri_changed(GtkWidget *button){ + GtkWidget *w=gtk_widget_get_toplevel(button); + GtkWidget *entry=linphone_gtk_get_widget(w,"uri_entry"); + const char *uri=gtk_entry_get_text(GTK_ENTRY(entry)); + + if (uri && (strlen(uri)==0 || strcmp(uri,"https://")==0)) uri=NULL; + + linphone_core_set_provisioning_uri(linphone_gtk_get_core(),uri); + gtk_widget_destroy(w); + + if (uri){ + linphone_gtk_schedule_restart(); + gtk_main_quit(); + } +} + +void linphone_gtk_config_uri_cancel(GtkWidget *button){ + GtkWidget *w=gtk_widget_get_toplevel(button); + gtk_widget_destroy(w); +} + +GtkWidget * linphone_gtk_show_config_fetching(void){ + LinphoneCore *lc=linphone_gtk_get_core(); + GtkWidget *w=linphone_gtk_create_window("provisioning-fetch"); + g_message("Fetching started"); + gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(w),_("fetching from %s"),linphone_core_get_provisioning_uri(lc)); +#if GTK_CHECK_VERSION(2,20,0) + { + GtkWidget *spinner=gtk_spinner_new(); + gtk_message_dialog_set_image(GTK_MESSAGE_DIALOG(w),spinner); + } +#endif + gtk_widget_show(w); + return w; +} + +void linphone_gtk_close_config_fetching(GtkWidget *w, LinphoneConfiguringState state){ + LinphoneCore *lc=linphone_gtk_get_core(); + gtk_widget_destroy(w); + g_message("Fetching finished"); + if (state==LinphoneConfiguringFailed){ + GtkWidget *msg=gtk_message_dialog_new(NULL,0,GTK_MESSAGE_ERROR,GTK_BUTTONS_CLOSE,_("Downloading of remote configuration from %s failed."), + linphone_core_get_provisioning_uri(lc)); + g_signal_connect(G_OBJECT(msg),"response",(GCallback)gtk_widget_destroy,NULL); + gtk_widget_show(msg); + } +} + diff --git a/gtk/config-uri.ui b/gtk/config-uri.ui new file mode 100644 index 000000000..5e864743e --- /dev/null +++ b/gtk/config-uri.ui @@ -0,0 +1,99 @@ + + + + + + False + 5 + Specifying a remote configuration URI + dialog + + + True + False + 2 + + + True + False + end + + + gtk-undo + True + True + True + False + True + + + + False + False + 0 + + + + + gtk-ok + True + True + True + False + True + + + + False + False + 1 + + + + + False + True + end + 0 + + + + + True + False + This dialog allows to set an http or https address when configuration is to be fetched at startup. +Please enter or modify the configuration URI below. After clicking OK, Linphone will restart automatically in order to fetch and take into account the new configuration. + True + 80 + + + True + True + 1 + + + + + True + True + + https:// + False + False + True + True + + + True + True + 2 + + + + + + button2 + button1 + + + diff --git a/gtk/friendlist.c b/gtk/friendlist.c index 523cf13b3..f86f8b4c6 100644 --- a/gtk/friendlist.c +++ b/gtk/friendlist.c @@ -87,6 +87,18 @@ static GdkPixbuf *create_chat_picture(){ return pixbuf; } +static GdkPixbuf *create_composing_unread_msg(){ + GdkPixbuf *pixbuf; + pixbuf = create_pixbuf("composing_active_chat.png"); + return pixbuf; +} + +static GdkPixbuf *create_composing_chat_picture(){ + GdkPixbuf *pixbuf; + pixbuf = create_pixbuf("composing_chat.png"); + return pixbuf; +} + /* void linphone_gtk_set_friend_status(GtkWidget *friendlist , LinphoneFriend * fid, const gchar *url, const gchar *status, const gchar *img){ GtkTreeIter iter; @@ -227,15 +239,23 @@ void linphone_gtk_friend_list_update_chat_picture(){ GtkWidget *friendlist=linphone_gtk_get_widget(w,"contact_list"); GtkTreeModel *model=gtk_tree_view_get_model(GTK_TREE_VIEW(friendlist)); LinphoneChatRoom *cr=NULL; + bool_t is_composing; int nbmsg=0; if (gtk_tree_model_get_iter_first(model,&iter)) { do{ gtk_tree_model_get (model, &iter,FRIEND_CHATROOM , &cr, -1); nbmsg=linphone_chat_room_get_unread_messages_count(cr); + is_composing=linphone_chat_room_is_remote_composing(cr); if(nbmsg != 0){ - gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_CHAT,create_unread_msg(),-1); + if (is_composing == TRUE) + gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_CHAT,create_composing_unread_msg(),-1); + else + gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_CHAT,create_unread_msg(),-1); } else { - gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_CHAT,create_chat_picture(),-1); + if (is_composing == TRUE) + gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_CHAT,create_composing_chat_picture(),-1); + else + gtk_list_store_set(GTK_LIST_STORE(model),&iter,FRIEND_CHAT,create_chat_picture(),-1); } }while(gtk_tree_model_iter_next(model,&iter)); } @@ -890,7 +910,11 @@ void linphone_gtk_contact_ok(GtkWidget *button){ linphone_friend_set_inc_subscribe_policy(lf,allow_presence ? LinphoneSPAccept : LinphoneSPDeny); linphone_friend_send_subscribe(lf,show_presence); } - name=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"name"))); + + name = NULL; + if(gtk_entry_get_text_length(GTK_ENTRY(linphone_gtk_get_widget(w,"name"))) != 0){ + name=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"name"))); + } uri=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"sip_address"))); show_presence=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"show_presence"))); allow_presence=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"allow_presence"))); @@ -899,9 +923,10 @@ void linphone_gtk_contact_ok(GtkWidget *button){ linphone_gtk_display_something(GTK_MESSAGE_WARNING,_("Invalid sip contact !")); return ; } - linphone_address_set_display_name(friend_address,name); - linphone_friend_set_address(lf,friend_address); + linphone_address_set_display_name(friend_address,name); + linphone_friend_set_name(lf,name); + linphone_friend_set_address(lf,friend_address); linphone_friend_send_subscribe(lf,show_presence); linphone_friend_set_inc_subscribe_policy(lf,allow_presence==TRUE ? LinphoneSPAccept : LinphoneSPDeny); if (linphone_friend_in_list(lf)) { @@ -911,7 +936,6 @@ void linphone_gtk_contact_ok(GtkWidget *button){ lf2=linphone_core_get_friend_by_address(linphone_gtk_get_core(),uri); ms_free(uri); if(lf2==NULL){ - linphone_friend_set_name(lf,name); linphone_core_add_friend(linphone_gtk_get_core(),lf); } } @@ -1092,4 +1116,4 @@ gboolean linphone_gtk_contact_list_button_pressed(GtkWidget *widget, GdkEventBut void linphone_gtk_buddy_info_updated(LinphoneCore *lc, LinphoneFriend *lf){ /*refresh the entire list*/ linphone_gtk_show_friends(); -} \ No newline at end of file +} diff --git a/gtk/incall_view.c b/gtk/incall_view.c index da954a45b..8ab6309f6 100644 --- a/gtk/incall_view.c +++ b/gtk/incall_view.c @@ -256,14 +256,25 @@ static void _refresh_call_stats(GtkWidget *callstats, LinphoneCall *call){ const char *audio_media_connectivity = _("Direct or through server"); const char *video_media_connectivity = _("Direct or through server"); gboolean has_video=linphone_call_params_video_enabled(linphone_call_get_current_params(call)); + MSVideoSize size_received = linphone_call_params_get_received_video_size(linphone_call_get_current_params(call)); + MSVideoSize size_sent = linphone_call_params_get_sent_video_size(linphone_call_get_current_params(call)); gchar *tmp=g_strdup_printf(_("download: %f\nupload: %f (kbit/s)"), as->download_bandwidth,as->upload_bandwidth); gtk_label_set_markup(GTK_LABEL(linphone_gtk_get_widget(callstats,"audio_bandwidth_usage")),tmp); g_free(tmp); - if (has_video) + if (has_video){ + gchar *size_r=g_strdup_printf(_("%ix%i"),size_received.width,size_received.height); + gchar *size_s=g_strdup_printf(_("%ix%i"),size_sent.width,size_sent.height); + gtk_label_set_markup(GTK_LABEL(linphone_gtk_get_widget(callstats,"video_size_recv")),size_r); + gtk_label_set_markup(GTK_LABEL(linphone_gtk_get_widget(callstats,"video_size_sent")),size_s); + tmp=g_strdup_printf(_("download: %f\nupload: %f (kbit/s)"),vs->download_bandwidth,vs->upload_bandwidth); - else tmp=NULL; + g_free(size_r); + g_free(size_s); + } else { + tmp=NULL; + } gtk_label_set_markup(GTK_LABEL(linphone_gtk_get_widget(callstats,"video_bandwidth_usage")),tmp); if (tmp) g_free(tmp); if(as->upnp_state != LinphoneUpnpStateNotAvailable && as->upnp_state != LinphoneUpnpStateIdle) { @@ -556,19 +567,12 @@ static gboolean linphone_gtk_in_call_view_refresh(LinphoneCall *call){ return TRUE; } -typedef struct _volume_ctx{ - GtkWidget *widget; - get_volume_t get_volume; - void *data; - float last_value; -}volume_ctx_t; - -#define UNSIGNIFICANT_VOLUME (-26) +#define UNSIGNIFICANT_VOLUME (-23) #define SMOOTH 0.15 static gboolean update_audio_meter(volume_ctx_t *ctx){ float volume_db=ctx->get_volume(ctx->data); - float frac=(volume_db-UNSIGNIFICANT_VOLUME)/(float)(-UNSIGNIFICANT_VOLUME+3.0); + float frac=(volume_db-UNSIGNIFICANT_VOLUME)/(float)(-UNSIGNIFICANT_VOLUME-3.0); if (frac<0) frac=0; if (frac>1.0) frac=1.0; if (fraclast_value){ diff --git a/gtk/keypad.ui b/gtk/keypad.ui index 5dfcfc487..2dd62a0f0 100644 --- a/gtk/keypad.ui +++ b/gtk/keypad.ui @@ -1,6 +1,6 @@ - + False diff --git a/gtk/ldap.ui b/gtk/ldap.ui new file mode 100644 index 000000000..a5df241d1 --- /dev/null +++ b/gtk/ldap.ui @@ -0,0 +1,669 @@ + + + + + + False + LDAP Settings + + + True + False + + + True + False + 0 + none + + + True + False + 12 + + + True + False + 5 + 2 + + + True + False + 1 + Server address: + + + + + True + False + Authentication method: + + + 1 + 2 + + + + + True + False + Username: + + + 2 + 3 + + + + + True + False + Password: + + + 3 + 4 + + + + + Use TLS Connection + True + False + True + False + Not yet available + False + True + + + 1 + 2 + 4 + 5 + + + + + True + True + + True + False + False + True + True + + + 1 + 2 + + + + + True + True + + True + False + False + True + True + + + 1 + 2 + 2 + 3 + + + + + True + True + False + False + False + True + True + + + 1 + 2 + 3 + 4 + + + + + True + False + liststore2 + 0 + + + + 0 + + + + + 1 + 2 + 1 + 2 + + + + + + + + + + + + True + False + <b>Connection</b> + True + + + + + True + True + 0 + + + + + True + False + 0 + none + + + True + False + 12 + + + True + False + 3 + 2 + + + True + False + Bind DN + + + + + True + False + Authname + + + 1 + 2 + + + + + True + False + Realm + + + 2 + 3 + + + + + True + True + + False + False + True + True + + + 1 + 2 + + + + + True + True + + True + False + False + True + True + + + 1 + 2 + 1 + 2 + + + + + True + True + + True + False + False + True + True + + + 1 + 2 + 2 + 3 + + + + + + + + + True + False + <b>SASL</b> + True + + + + + True + True + 1 + + + + + True + False + 0 + none + + + True + False + 12 + + + True + False + 5 + 2 + + + True + False + Base object: + + + + + True + False + Filter (%s for name): + + + 1 + 2 + + + + + True + False + Name Attribute: + + + 2 + 3 + + + + + True + False + SIP address attribute: + + + 3 + 4 + + + + + True + False + Attributes to query: + + + 4 + 5 + + + + + True + True + + True + False + False + True + True + + + 1 + 2 + + + + + True + True + + True + False + False + True + True + + + 1 + 2 + 1 + 2 + + + + + True + True + + True + False + False + True + True + + + 1 + 2 + 2 + 3 + + + + + True + True + + True + False + False + True + True + + + 1 + 2 + 3 + 4 + + + + + True + True + + True + False + False + True + True + + + 1 + 2 + 4 + 5 + + + + + + + + + True + False + <b>Search</b> + True + + + + + True + True + 2 + + + + + True + False + 0 + none + + + True + False + 12 + + + True + False + 3 + 2 + + + True + False + Timeout for search: + + + + + True + False + Max results: + + + 1 + 2 + + + + + True + True + + True + False + False + True + True + timeout_adjustment + + + 1 + 2 + + + + + True + True + 3 + + True + False + False + True + True + result_adjustment + True + + + 1 + 2 + 1 + 2 + + + + + Follow Aliases + True + True + False + False + True + + + 1 + 2 + 2 + 3 + + + + + + + + + + + + True + False + <b>Miscellaneous</b> + True + + + + + True + True + 3 + + + + + True + False + 2 + + + + + + gtk-apply + True + True + True + False + True + + + + False + False + end + 1 + + + + + gtk-cancel + True + True + True + False + True + + + + False + False + end + 2 + + + + + False + True + 4 + + + + + + + + + + + + + ANONYMOUS + + + SIMPLE + + + DIGEST-MD5 + + + NTLM + + + + + 1 + 100 + 50 + 1 + 10 + + + 1 + 100 + 10 + 1 + 10 + + diff --git a/gtk/linphone.h b/gtk/linphone.h index 67fa27ebf..2a256cab5 100644 --- a/gtk/linphone.h +++ b/gtk/linphone.h @@ -28,10 +28,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #endif #include "linphonecore.h" +#include "ldap/ldapprovider.h" + #ifdef ENABLE_NLS # include # undef _ -# define _(String) gettext (String) +# define _(String) dgettext (GETTEXT_PACKAGE,String) #else # define _(String) (String) # define ngettext(singular,plural,number) ((number>1) ? (plural) : (singular) ) @@ -46,6 +48,32 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define LINPHONE_VERSION LINPHONE_VERSION_DATE #endif +enum { + COMPLETION_HISTORY, + COMPLETION_LDAP +}; + +typedef float (*get_volume_t)(void *data); + +typedef struct _volume_ctx{ + GtkWidget *widget; + get_volume_t get_volume; + void *data; + float last_value; +}volume_ctx_t; + +typedef enum { + CAP_IGNORE, + CAP_PLAYBACK, + CAP_CAPTURE +}DeviceCap; + +enum { + START_LINPHONE, + START_AUDIO_ASSISTANT, + START_LINPHONE_WITH_CALL +}; + GdkPixbuf * create_pixbuf(const gchar *filename); GdkPixbufAnimation *create_pixbuf_animation(const gchar *filename); void add_pixmap_directory(const gchar *directory); @@ -85,6 +113,10 @@ int linphone_gtk_get_ui_config_int(const char *key, int def); void linphone_gtk_set_ui_config_int(const char *key , int val); void linphone_gtk_visibility_set(const char *hiddens, const char *window_name, GtkWidget *w, gboolean show); +LinphoneLDAPContactProvider* linphone_gtk_get_ldap(void); +void linphone_gtk_set_ldap(LinphoneLDAPContactProvider* ldap); +int linphone_gtk_is_ldap_supported(void); + void linphone_gtk_open_browser(const char *url); void linphone_gtk_check_for_new_version(void); const char *linphone_gtk_get_lang(const char *config_file); @@ -104,6 +136,7 @@ void linphone_gtk_send_text(); GtkWidget * linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddress *with); LinphoneChatRoom * linphone_gtk_create_chatroom(const LinphoneAddress *with); void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, LinphoneChatMessage *msg); +void linphone_gtk_is_composing_received(LinphoneCore *lc, LinphoneChatRoom *room); void linphone_gtk_friend_list_update_chat_picture(); void linphone_gtk_friend_list_set_chat_conversation(const LinphoneAddress *la); @@ -137,18 +170,29 @@ void linphone_gtk_unset_from_conference(LinphoneCall *call); void linphone_gtk_terminate_conference_participant(LinphoneCall *call); void linphone_gtk_in_call_view_show_encryption(LinphoneCall *call); void linphone_gtk_update_video_button(LinphoneCall *call); -typedef float (*get_volume_t)(void *data); void linphone_gtk_init_audio_meter(GtkWidget *w, get_volume_t get_volume, void *data); +void linphone_gtk_uninit_audio_meter(GtkWidget *w); -void linphone_gtk_show_login_frame(LinphoneProxyConfig *cfg); +void linphone_gtk_show_login_frame(LinphoneProxyConfig *cfg, gboolean disable_auto_login); void linphone_gtk_exit_login_frame(void); void linphone_gtk_set_ui_config(const char *key, const char *value); void linphone_gtk_log_uninit(); -bool_t linphone_gtk_init_instance(const char *app_name, const char *addr_to_call); +bool_t linphone_gtk_init_instance(const char *app_name, int option, const char *addr_to_call); void linphone_gtk_uninit_instance(void); void linphone_gtk_monitor_usb(void); void linphone_gtk_unmonitor_usb(void); -gchar *linphone_gtk_get_record_path(const LinphoneAddress *address, gboolean is_conference); \ No newline at end of file +void linphone_gtk_fill_combo_box(GtkWidget *combo, const char **devices, const char *selected, DeviceCap cap); +gchar *linphone_gtk_get_record_path(const LinphoneAddress *address, gboolean is_conference); +void linphone_gtk_schedule_restart(void); + +void linphone_gtk_show_audio_assistant(void); +gboolean linphone_gtk_get_audio_assistant_option(void); + +void linphone_gtk_set_configuration_uri(void); +GtkWidget * linphone_gtk_show_config_fetching(void); +void linphone_gtk_close_config_fetching(GtkWidget *w, LinphoneConfiguringState state); +const char *linphone_gtk_get_sound_path(const char *file); + diff --git a/gtk/loginframe.c b/gtk/loginframe.c index 45da5480f..7b6bd0c2b 100644 --- a/gtk/loginframe.c +++ b/gtk/loginframe.c @@ -20,15 +20,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "linphone.h" void linphone_gtk_login_frame_connect_clicked(GtkWidget *button); +void test_button_clicked_cb(GtkWidget *button); void linphone_gtk_exit_login_frame(void); -enum { - NetworkKindAdsl, - NetworkKindOpticalFiber -}; -static void do_login(SipSetupContext *ssctx, const char *identity, const char * passwd){ - if (sip_setup_context_login_account(ssctx,identity,passwd)==0){ +static void do_login(SipSetupContext *ssctx, const char *identity, const char * passwd, const char *userid){ + if (sip_setup_context_login_account(ssctx,identity,passwd,userid)==0){ } } @@ -40,44 +37,38 @@ static gboolean do_login_noprompt(LinphoneProxyConfig *cfg){ if (ssctx==NULL) return TRUE;/*not ready ?*/ username=linphone_gtk_get_ui_config ("login_username",NULL); if (username==NULL) { - linphone_gtk_set_ui_config_int("automatic_login",0); - linphone_gtk_show_login_frame(cfg); + linphone_gtk_show_login_frame(cfg,TRUE); return FALSE; } addr=linphone_address_new(linphone_proxy_config_get_identity(cfg)); linphone_address_set_username(addr,username); tmp=linphone_address_as_string (addr); - do_login(ssctx,tmp,NULL); + do_login(ssctx,tmp,NULL,NULL); linphone_address_destroy(addr); linphone_gtk_load_identities(); return FALSE; } -void linphone_gtk_show_login_frame(LinphoneProxyConfig *cfg){ +void linphone_gtk_show_login_frame(LinphoneProxyConfig *cfg, gboolean disable_auto_login){ GtkWidget *mw=linphone_gtk_get_main_window(); GtkWidget *label=linphone_gtk_get_widget(mw,"login_label"); const LinphoneAuthInfo *ai; gchar *str; LinphoneAddress *from; LinphoneCore *lc=linphone_gtk_get_core(); - int nettype; const char *passwd=NULL; - + const char *userid=NULL; + gboolean auto_login=linphone_gtk_get_ui_config_int("automatic_login",0); - if (linphone_core_get_download_bandwidth(lc)==512 && - linphone_core_get_upload_bandwidth(lc)==512) - nettype=NetworkKindOpticalFiber; - else nettype=NetworkKindAdsl; - gtk_combo_box_set_active(GTK_COMBO_BOX(linphone_gtk_get_widget(mw,"login_internet_kind")),nettype); - //gtk_combo_box_set_active(GTK_COMBO_BOX(linphone_gtk_get_widget(mw,"internet_kind")),nettype); - - if (linphone_gtk_get_ui_config_int("automatic_login",0) ){ + if (auto_login && !disable_auto_login){ g_timeout_add(250,(GSourceFunc)do_login_noprompt,cfg); return; } + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(mw,"automatic_login")),auto_login); + { - const char *login_image=linphone_gtk_get_ui_config("login_image",NULL); + const char *login_image=linphone_gtk_get_ui_config("login_image","linphone-banner.png"); if (login_image){ GdkPixbuf *pbuf=create_pixbuf (login_image); gtk_image_set_from_pixbuf (GTK_IMAGE(linphone_gtk_get_widget(mw,"login_image")), @@ -89,6 +80,10 @@ void linphone_gtk_show_login_frame(LinphoneProxyConfig *cfg){ gtk_widget_hide(linphone_gtk_get_widget(mw,"disconnect_item")); gtk_widget_hide(linphone_gtk_get_widget(mw,"main_frame")); gtk_widget_show(linphone_gtk_get_widget(mw,"login_frame")); + if (linphone_gtk_get_ui_config_int("login_needs_userid",FALSE)){ + gtk_widget_show(linphone_gtk_get_widget(mw,"userid")); + gtk_widget_show(linphone_gtk_get_widget(mw,"login_userid")); + } gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"options_menu"),FALSE); str=g_strdup_printf(_("Please enter login information for %s"),linphone_proxy_config_get_domain(cfg)); gtk_label_set_text(GTK_LABEL(label),str); @@ -107,9 +102,14 @@ void linphone_gtk_show_login_frame(LinphoneProxyConfig *cfg){ if (linphone_address_get_username(from)[0]!='?') gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(mw,"login_username")), linphone_address_get_username(from)); - if (ai) passwd=linphone_auth_info_get_passwd(ai); + if (ai) { + passwd=linphone_auth_info_get_passwd(ai); + userid=linphone_auth_info_get_userid(ai); + } gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(mw,"login_password")), passwd!=NULL ? passwd : ""); + gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(mw,"login_userid")), + userid ? userid : ""); linphone_address_destroy(from); } @@ -130,8 +130,7 @@ void linphone_gtk_logout_clicked(){ SipSetupContext *ss=linphone_proxy_config_get_sip_setup_context(cfg); if (ss){ sip_setup_context_logout(ss); - linphone_gtk_set_ui_config_int("automatic_login",FALSE); - linphone_gtk_show_login_frame(cfg); + linphone_gtk_show_login_frame(cfg,TRUE); } } } @@ -142,6 +141,7 @@ void linphone_gtk_login_frame_connect_clicked(GtkWidget *button){ GtkWidget *mw=gtk_widget_get_toplevel(button); const char *username; const char *password; + const char *userid; char *identity; gboolean autologin; LinphoneProxyConfig *cfg=(LinphoneProxyConfig*)g_object_get_data(G_OBJECT(mw),"login_proxy_config"); @@ -150,7 +150,8 @@ void linphone_gtk_login_frame_connect_clicked(GtkWidget *button){ username=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(mw,"login_username"))); password=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(mw,"login_password"))); - + userid=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(mw,"login_userid"))); + if (username==NULL || username[0]=='\0') return; @@ -161,19 +162,7 @@ void linphone_gtk_login_frame_connect_clicked(GtkWidget *button){ from=linphone_address_new(linphone_proxy_config_get_identity(cfg)); linphone_address_set_username(from,username); identity=linphone_address_as_string(from); - do_login(ssctx,identity,password); + do_login(ssctx,identity,password,userid); /*we need to refresh the identities since the proxy config may have changed.*/ linphone_gtk_load_identities(); } - -void linphone_gtk_internet_kind_changed(GtkWidget *combo){ - int netkind_id=gtk_combo_box_get_active(GTK_COMBO_BOX(combo)); - LinphoneCore *lc=linphone_gtk_get_core(); - if (netkind_id==NetworkKindAdsl){ - linphone_core_set_upload_bandwidth(lc,256); - linphone_core_set_download_bandwidth(lc,512); - }else if (netkind_id==NetworkKindOpticalFiber){ - linphone_core_set_upload_bandwidth(lc,512); - linphone_core_set_download_bandwidth(lc,512); - } -} diff --git a/gtk/main.c b/gtk/main.c index d8a8a2ede..2fd3fd897 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -45,18 +45,24 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include #endif +#ifdef ENABLE_NLS +#include +#endif #define LINPHONE_ICON "linphone.png" const char *this_program_ident_string="linphone_ident_string=" LINPHONE_VERSION; static LinphoneCore *the_core=NULL; static GtkWidget *the_ui=NULL; +static LinphoneLDAPContactProvider* ldap_provider = NULL; +static void linphone_gtk_global_state_changed(LinphoneCore *lc, LinphoneGlobalState state, const char*str); static void linphone_gtk_registration_state_changed(LinphoneCore *lc, LinphoneProxyConfig *cfg, LinphoneRegistrationState rs, const char *msg); static void linphone_gtk_notify_recv(LinphoneCore *lc, LinphoneFriend * fid); static void linphone_gtk_new_unknown_subscriber(LinphoneCore *lc, LinphoneFriend *lf, const char *url); static void linphone_gtk_auth_info_requested(LinphoneCore *lc, const char *realm, const char *username, const char *domain); static void linphone_gtk_display_status(LinphoneCore *lc, const char *status); +static void linphone_gtk_configuring_status(LinphoneCore *lc, LinphoneConfiguringState status, const char *message); static void linphone_gtk_display_message(LinphoneCore *lc, const char *msg); static void linphone_gtk_display_warning(LinphoneCore *lc, const char *warning); static void linphone_gtk_display_url(LinphoneCore *lc, const char *msg, const char *url); @@ -69,22 +75,28 @@ void linphone_gtk_save_main_window_position(GtkWindow* mw, GdkEvent *event, gpoi static gboolean linphone_gtk_auto_answer(LinphoneCall *call); void linphone_gtk_status_icon_set_blinking(gboolean val); void _linphone_gtk_enable_video(gboolean val); - +void linphone_gtk_on_uribar_changed(GtkEditable *uribar, gpointer user_data); +static void linphone_gtk_init_ui(void); #ifndef HAVE_GTK_OSX static gint main_window_x=0; static gint main_window_y=0; #endif static gboolean verbose=0; +static gboolean quit_done=FALSE; static gboolean auto_answer = 0; static gchar * addr_to_call = NULL; +static int start_option = START_LINPHONE; static gboolean no_video=FALSE; static gboolean iconified=FALSE; +static gboolean run_audio_assistant=FALSE; static gchar *workingdir=NULL; static char *progpath=NULL; gchar *linphone_logfile=NULL; static gboolean workaround_gtk_entry_chinese_bug=FALSE; static gchar *custom_config_file=NULL; +static gboolean restart=FALSE; +static GtkWidget *config_fetching_dialog=NULL; static GOptionEntry linphone_options[]={ { @@ -143,6 +155,13 @@ static GOptionEntry linphone_options[]={ .arg_data = (gpointer) &custom_config_file, .description = N_("Configuration file") }, + { + .long_name = "run-audio-assistant", + .short_name = '\0', + .arg = G_OPTION_ARG_NONE, + .arg_data = (gpointer) &run_audio_assistant, + .description = N_("Run the audio assistant") + }, {0} }; @@ -231,11 +250,37 @@ static const char *linphone_gtk_get_factory_config_file(){ return _factory_config_file; } +LinphoneLDAPContactProvider* linphone_gtk_get_ldap(void){ + return ldap_provider; +} + +int linphone_gtk_is_ldap_supported(void){ + return linphone_ldap_contact_provider_available(); +} + +void linphone_gtk_set_ldap(LinphoneLDAPContactProvider* ldap) +{ + if( ldap_provider ) + linphone_contact_provider_unref(ldap_provider); + + ldap_provider = ldap ? linphone_ldap_contact_provider_ref( ldap ) + : NULL; +} + +void linphone_gtk_schedule_restart(void){ + restart=TRUE; +} + +gboolean linphone_gtk_get_audio_assistant_option(void){ + return run_audio_assistant; +} + static void linphone_gtk_init_liblinphone(const char *config_file, const char *factory_config_file, const char *db_file) { LinphoneCoreVTable vtable={0}; gchar *secrets_file=linphone_gtk_get_config_file(SECRETS_FILE); + vtable.global_state_changed=linphone_gtk_global_state_changed; vtable.call_state_changed=linphone_gtk_call_state_changed; vtable.registration_state_changed=linphone_gtk_registration_state_changed; vtable.notify_presence_received=linphone_gtk_notify_recv; @@ -248,15 +293,25 @@ static void linphone_gtk_init_liblinphone(const char *config_file, vtable.call_log_updated=linphone_gtk_call_log_updated; //vtable.text_received=linphone_gtk_text_received; vtable.message_received=linphone_gtk_text_received; + vtable.is_composing_received=linphone_gtk_is_composing_received; vtable.refer_received=linphone_gtk_refer_received; vtable.buddy_info_updated=linphone_gtk_buddy_info_updated; vtable.call_encryption_changed=linphone_gtk_call_encryption_changed; vtable.transfer_state_changed=linphone_gtk_transfer_state_changed; vtable.dtmf_received=linphone_gtk_dtmf_received; + vtable.configuring_status=linphone_gtk_configuring_status; the_core=linphone_core_new(&vtable,config_file,factory_config_file,NULL); + linphone_core_migrate_to_multi_transport(the_core); //lp_config_set_int(linphone_core_get_config(the_core), "sip", "store_auth_info", 0); - + + + if( lp_config_has_section(linphone_core_get_config(the_core),"ldap") ){ + LpConfig* cfg = linphone_core_get_config(the_core); + LinphoneDictionary* ldap_cfg = lp_config_section_to_dict(cfg, "ldap"); + linphone_gtk_set_ldap( linphone_ldap_contact_provider_create(the_core, ldap_cfg) ); + } + linphone_core_set_user_agent(the_core,"Linphone", LINPHONE_VERSION); linphone_core_set_waiting_callback(the_core,linphone_gtk_wait,NULL); linphone_core_set_zrtp_secrets_file(the_core,secrets_file); @@ -279,7 +334,7 @@ GtkWidget *linphone_gtk_get_main_window(){ } void linphone_gtk_destroy_main_window() { - linphone_gtk_destroy_window(the_ui); + linphone_gtk_destroy_window(the_ui); the_ui = NULL; } @@ -335,6 +390,8 @@ GtkWidget *linphone_gtk_create_window(const char *window_name){ if (get_ui_file(window_name,path,sizeof(path))==-1) return NULL; + gtk_builder_set_translation_domain(builder,GETTEXT_PACKAGE); + if (!gtk_builder_add_from_file (builder, path, &error)){ g_error("Couldn't load builder file: %s", error->message); g_error_free (error); @@ -361,6 +418,9 @@ GtkWidget *linphone_gtk_create_widget(const char *filename, const char *widget_n object_ids[1]=NULL; if (get_ui_file(filename,path,sizeof(path))==-1) return NULL; + + gtk_builder_set_translation_domain(builder,GETTEXT_PACKAGE); + if (!gtk_builder_add_objects_from_file(builder,path,object_ids,&error)){ g_error("Couldn't load %s from builder file %s: %s", widget_name,path,error->message); g_error_free (error); @@ -559,23 +619,10 @@ static void update_video_title(){ video_needs_update=TRUE; } -static gboolean linphone_gtk_iterate(LinphoneCore *lc){ - static gboolean first_time=TRUE; +static void update_video_titles(LinphoneCore *lc){ unsigned long id; static unsigned long previd=0; static unsigned long preview_previd=0; - static gboolean in_iterate=FALSE; - - /*avoid reentrancy*/ - if (in_iterate) return TRUE; - in_iterate=TRUE; - linphone_core_iterate(lc); - if (first_time){ - /*after the first call to iterate, SipSetupContexts should be ready, so take actions:*/ - linphone_gtk_show_directory_search(); - first_time=FALSE; - } - id=linphone_core_get_native_video_window_id(lc); if (id!=previd || video_needs_update){ GdkWindow *w; @@ -614,6 +661,23 @@ static gboolean linphone_gtk_iterate(LinphoneCore *lc){ if (video_needs_update) video_needs_update=FALSE; } } +} + +static gboolean linphone_gtk_iterate(LinphoneCore *lc){ + static gboolean first_time=TRUE; + static gboolean in_iterate=FALSE; + + /*avoid reentrancy*/ + if (in_iterate) return TRUE; + in_iterate=TRUE; + linphone_core_iterate(lc); + if (first_time){ + /*after the first call to iterate, SipSetupContexts should be ready, so take actions:*/ + linphone_gtk_show_directory_search(); + first_time=FALSE; + } + + update_video_titles(lc); if (addr_to_call!=NULL){ /*make sure we are not showing the login screen*/ GtkWidget *mw=linphone_gtk_get_main_window(); @@ -629,12 +693,31 @@ static gboolean linphone_gtk_iterate(LinphoneCore *lc){ return TRUE; } +static gboolean uribar_completion_matchfunc(GtkEntryCompletion *completion, const gchar *key, GtkTreeIter *iter, gpointer user_data){ + char* address = NULL; + gboolean ret = FALSE; + gchar *tmp= NULL; + gtk_tree_model_get(gtk_entry_completion_get_model(completion),iter,0,&address,-1); + + tmp = g_utf8_casefold(address,-1); + if (tmp){ + if (strstr(tmp,key)) + ret=TRUE; + g_free(tmp); + } + + if( address) + g_free(address); + + return ret; +} + static void load_uri_history(){ GtkEntry *uribar=GTK_ENTRY(linphone_gtk_get_widget(linphone_gtk_get_main_window(),"uribar")); char key[20]; int i; GtkEntryCompletion *gep=gtk_entry_completion_new(); - GtkListStore *model=gtk_list_store_new(1,G_TYPE_STRING); + GtkListStore *model=gtk_list_store_new(2,G_TYPE_STRING,G_TYPE_INT); for (i=0;;i++){ const char *uri; snprintf(key,sizeof(key),"uri%i",i); @@ -642,14 +725,18 @@ static void load_uri_history(){ if (uri!=NULL) { GtkTreeIter iter; gtk_list_store_append(model,&iter); - gtk_list_store_set(model,&iter,0,uri,-1); + gtk_list_store_set(model,&iter,0,uri,1,COMPLETION_HISTORY,-1); if (i==0) gtk_entry_set_text(uribar,uri); } else break; } gtk_entry_completion_set_model(gep,GTK_TREE_MODEL(model)); gtk_entry_completion_set_text_column(gep,0); + gtk_entry_completion_set_popup_completion(gep, TRUE); + gtk_entry_completion_set_match_func(gep,uribar_completion_matchfunc, NULL, NULL); + gtk_entry_completion_set_minimum_key_length(gep,3); gtk_entry_set_completion(uribar,gep); + g_signal_connect (G_OBJECT (uribar), "changed", G_CALLBACK(linphone_gtk_on_uribar_changed), NULL); } static void save_uri_history(){ @@ -697,10 +784,129 @@ static void completion_add_text(GtkEntry *entry, const char *text){ } /* and prepend it on top of the list */ gtk_list_store_prepend(GTK_LIST_STORE(model),&iter); - gtk_list_store_set(GTK_LIST_STORE(model),&iter,0,text,-1); + gtk_list_store_set(GTK_LIST_STORE(model),&iter,0,text,1,COMPLETION_HISTORY,-1); save_uri_history(); } +void on_contact_provider_search_results( LinphoneContactSearch* req, MSList* friends, void* data ) +{ + GtkTreeIter iter; + GtkEntry* uribar = GTK_ENTRY(data); + GtkEntryCompletion* compl = gtk_entry_get_completion(uribar); + GtkTreeModel* model = gtk_entry_completion_get_model(compl); + GtkListStore* list = GTK_LIST_STORE(model); + LinphoneLDAPContactSearch* search = linphone_ldap_contact_search_cast(req); + gboolean valid; + + // clear completion list from previous non-history entries + valid = gtk_tree_model_get_iter_first(model,&iter); + while(valid) + { + char* url; + int type; + gtk_tree_model_get(model,&iter, 0,&url, 1,&type, -1); + + if (type != COMPLETION_HISTORY) { + valid = gtk_list_store_remove(list, &iter); + } else { + valid = gtk_tree_model_iter_next(model,&iter); + } + + if( url ) g_free(url); + if( !valid ) break; + } + + // add new non-history related matches + while( friends ){ + LinphoneFriend* lf = friends->data; + if( lf ) { + const LinphoneAddress* la = linphone_friend_get_address(lf); + if( la ){ + char *addr = linphone_address_as_string(la); + + if( addr ){ + ms_message("[LDAP]Insert match: %s", addr); + gtk_list_store_insert_with_values(list, &iter, -1, + 0, addr, + 1, COMPLETION_LDAP, -1); + ms_free(addr); + } + } + } + friends = friends->next; + } + gtk_entry_completion_complete(compl); + // save the number of LDAP results to better decide if new results should be fetched when search predicate gets bigger + gtk_object_set_data(GTK_OBJECT(uribar), "ldap_res_cout", + GINT_TO_POINTER( + linphone_ldap_contact_search_result_count(search) + ) + ); + + // Gtk bug? we need to emit a "changed" signal so that the completion appears if + // the list of results was previously empty + g_signal_handlers_block_by_func(uribar, linphone_gtk_on_uribar_changed, NULL); + g_signal_emit_by_name(uribar, "changed"); + g_signal_handlers_unblock_by_func(uribar, linphone_gtk_on_uribar_changed, NULL); +} + +struct CompletionTimeout { + guint timeout_id; +}; + +static gboolean launch_contact_provider_search(void *userdata) +{ + LinphoneLDAPContactProvider* ldap = linphone_gtk_get_ldap(); + GtkWidget* uribar = GTK_WIDGET(userdata); + const gchar* predicate = gtk_entry_get_text(GTK_ENTRY(uribar)); + gchar* previous_search = gtk_object_get_data(GTK_OBJECT(uribar), "previous_search"); + unsigned int prev_res_count = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(uribar), "ldap_res_cout")); + + if( ldap && strlen(predicate) >= 3 ){ // don't search too small predicates + unsigned int max_res_count = linphone_ldap_contact_provider_get_max_result(ldap); + + if( previous_search && + (strstr(predicate, previous_search) == predicate) && // last search contained results from this one + (prev_res_count != max_res_count) ){ // and we didn't reach the max result limit + + ms_message("Don't launch search on already searched data (current: %s, old search: %s), (%d/%d results)", + predicate, previous_search, prev_res_count, max_res_count); + return FALSE; + } + + // save current search + if( previous_search ) ms_free(previous_search); + gtk_object_set_data(GTK_OBJECT(uribar), "previous_search", ms_strdup(predicate)); + + ms_message("launch_contact_provider_search"); + LinphoneContactSearch* search =linphone_contact_provider_begin_search( + linphone_contact_provider_cast(ldap_provider), + predicate, on_contact_provider_search_results, uribar + ); + + if(search) + linphone_contact_search_ref(search); + } + return FALSE; +} + +void linphone_gtk_on_uribar_changed(GtkEditable *uribar, gpointer user_data) +{ + if( linphone_gtk_get_ldap() ) { + gchar* text = gtk_editable_get_chars(uribar, 0,-1); + gint timeout = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(uribar), "complete_timeout")); + if( text ) g_free(text); + + if( timeout != 0 ) { + g_source_remove(timeout); + } + + timeout = g_timeout_add_seconds(1,(GSourceFunc)launch_contact_provider_search, uribar); + + gtk_object_set_data(GTK_OBJECT(uribar),"complete_timeout", GINT_TO_POINTER(timeout) ); + } +} + bool_t linphone_gtk_video_enabled(void){ const LinphoneVideoPolicy *vpol=linphone_core_get_video_policy(linphone_gtk_get_core()); return vpol->automatically_accept && vpol->automatically_initiate; @@ -1064,6 +1270,11 @@ static void linphone_gtk_display_status(LinphoneCore *lc, const char *status){ status); } +static void linphone_gtk_configuring_status(LinphoneCore *lc, LinphoneConfiguringState status, const char *message) { + if (config_fetching_dialog) linphone_gtk_close_config_fetching(config_fetching_dialog, status); + config_fetching_dialog=NULL; +} + static void linphone_gtk_display_message(LinphoneCore *lc, const char *msg){ linphone_gtk_display_something(GTK_MESSAGE_INFO,msg); } @@ -1173,6 +1384,24 @@ void linphone_gtk_notify(LinphoneCall *call, const char *msg){ } } +static void linphone_gtk_global_state_changed(LinphoneCore *lc, LinphoneGlobalState state, const char*str){ + switch(state){ + case LinphoneGlobalStartup: + the_core=lc; + break; + case LinphoneGlobalConfiguring: + if (linphone_core_get_provisioning_uri(lc)){ + config_fetching_dialog=linphone_gtk_show_config_fetching(); + } + break; + case LinphoneGlobalOn: + linphone_gtk_init_ui(); + break; + default: + break; + } +} + static void on_call_updated_response(GtkWidget *dialog, gint responseid, LinphoneCall *call){ if (linphone_call_get_state(call)==LinphoneCallUpdatedByRemote){ LinphoneCore *lc=linphone_call_get_core(call); @@ -1424,7 +1653,7 @@ static void linphone_gtk_init_status_icon(){ const char *title; title=linphone_gtk_get_ui_config("title",_("Linphone - a video internet phone")); icon=gtk_status_icon_new_from_pixbuf(pbuf); -#if GTK_CHECK_VERSION(2,20,0) +#if GTK_CHECK_VERSION(2,20,2) gtk_status_icon_set_name(icon,title); #endif g_signal_connect_swapped(G_OBJECT(icon),"activate",(GCallback)handle_icon_click,NULL); @@ -1666,7 +1895,7 @@ void linphone_gtk_manage_login(void){ if (cfg){ SipSetup *ss=linphone_proxy_config_get_sip_setup(cfg); if (ss && (sip_setup_get_capabilities(ss) & SIP_SETUP_CAP_LOGIN)){ - linphone_gtk_show_login_frame(cfg); + linphone_gtk_show_login_frame(cfg,FALSE); } } } @@ -1865,22 +2094,32 @@ static void linphone_gtk_check_soundcards(){ } } +static void linphone_gtk_quit_core(void){ + linphone_gtk_unmonitor_usb(); + g_source_remove_by_user_data(linphone_gtk_get_core()); +#ifdef BUILD_WIZARD + linphone_gtk_close_assistant(); +#endif + linphone_gtk_set_ldap(NULL); + linphone_gtk_destroy_log_window(); + linphone_core_destroy(the_core); + linphone_gtk_log_uninit(); +} + static void linphone_gtk_quit(void){ - static gboolean quit_done=FALSE; if (!quit_done){ quit_done=TRUE; - linphone_gtk_unmonitor_usb(); - g_source_remove_by_user_data(linphone_gtk_get_core()); -#ifdef BUILD_WIZARD - linphone_gtk_close_assistant(); -#endif + linphone_gtk_quit_core(); linphone_gtk_uninit_instance(); - linphone_gtk_destroy_log_window(); - linphone_core_destroy(the_core); - linphone_gtk_log_uninit(); +#ifndef HAVE_GTK_OSX + g_object_unref(icon); + icon=NULL; +#endif #ifdef HAVE_NOTIFY notify_uninit(); #endif + gtk_widget_destroy(the_ui); + the_ui=NULL; gdk_threads_leave(); } } @@ -1900,14 +2139,39 @@ static gboolean on_block_termination(void){ } #endif -int main(int argc, char *argv[]){ -#ifdef ENABLE_NLS - void *p; +static void linphone_gtk_init_ui(void){ + linphone_gtk_init_main_window(); + +#ifdef BUILD_WIZARD + // Veryfing if at least one sip account is configured. If not, show wizard + if (linphone_core_get_proxy_config_list(linphone_gtk_get_core()) == NULL) { + linphone_gtk_show_assistant(); + } #endif + + if(run_audio_assistant){ + linphone_gtk_show_audio_assistant(); + start_option=START_AUDIO_ASSISTANT; + iconified = TRUE; + } +#ifndef HAVE_GTK_OSX + linphone_gtk_init_status_icon(); +#endif + if (!iconified){ + linphone_gtk_show_main_window(); + linphone_gtk_check_soundcards(); + } + if (linphone_gtk_get_ui_config_int("update_check_menu",0)==0) + linphone_gtk_check_for_new_version(); + linphone_gtk_monitor_usb(); +} + +int main(int argc, char *argv[]){ char *config_file; const char *factory_config_file; const char *lang; GtkSettings *settings; + const char *icon_path=LINPHONE_ICON; GdkPixbuf *pbuf; const char *app_name="Linphone"; LpConfig *factory; @@ -1922,7 +2186,6 @@ int main(int argc, char *argv[]){ config_file=linphone_gtk_get_config_file(NULL); - #ifdef WIN32 /*workaround for windows: sometimes LANG is defined to an integer value, not understood by gtk */ if ((lang=getenv("LANG"))!=NULL){ @@ -1953,10 +2216,11 @@ int main(int argc, char *argv[]){ } #ifdef ENABLE_NLS - p=bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); - if (p==NULL) perror("bindtextdomain failed"); + bindtextdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); - textdomain (GETTEXT_PACKAGE); + setlocale(LC_ALL,""); + /*do not use textdomain(): this sets a global default domain. On Mac OS bundle, it breaks gtk translations (obscure bug somewhere)*/ + /*textdomain (GETTEXT_PACKAGE);*/ #else g_message("NLS disabled.\n"); #endif @@ -1979,6 +2243,9 @@ int main(int argc, char *argv[]){ } config_file=linphone_gtk_get_config_file(custom_config_file); + if(run_audio_assistant) start_option=START_AUDIO_ASSISTANT; + if(addr_to_call != NULL) start_option=START_LINPHONE_WITH_CALL; + settings=gtk_settings_get_default(); g_type_class_unref (g_type_class_ref (GTK_TYPE_IMAGE_MENU_ITEM)); g_type_class_unref (g_type_class_ref (GTK_TYPE_BUTTON)); @@ -1990,7 +2257,18 @@ int main(int argc, char *argv[]){ g_error("Could not change directory to %s : %s",workingdir,strerror(errno)); } } - + +#if defined(__APPLE__) && defined(ENABLE_NLS) + /*workaround for bundles. GTK is unable to find translations in the bundle (obscure bug again). + So we help it:*/ + { + if (g_file_test(PACKAGE_LOCALE_DIR, G_FILE_TEST_IS_DIR)){ + bindtextdomain("gtk20",PACKAGE_LOCALE_DIR); + bindtextdomain("gdk-pixbuf",PACKAGE_LOCALE_DIR); + bindtextdomain("glib20",PACKAGE_LOCALE_DIR); + } + } +#endif /* Now, look for the factory configuration file, we do it this late since we want to have had time to change directory and to parse the options, in case we needed to access the working directory */ @@ -1999,14 +2277,11 @@ int main(int argc, char *argv[]){ factory=lp_config_new(NULL); lp_config_read_file(factory,factory_config_file); app_name=lp_config_get_string(factory,"GtkUi","title","Linphone"); + icon_path=lp_config_get_string(factory,"GtkUi","icon",LINPHONE_ICON); } - - if (linphone_gtk_init_instance(app_name, addr_to_call) == FALSE){ - g_warning("Another running instance of linphone has been detected. It has been woken-up."); - g_warning("This instance is going to exit now."); - gdk_threads_leave(); - return 0; - } + g_set_application_name(app_name); + pbuf=create_pixbuf(icon_path); + if (pbuf!=NULL) gtk_window_set_default_icon(pbuf); add_pixmap_directory("pixmaps"); add_pixmap_directory(PACKAGE_DATA_DIR "/pixmaps/linphone"); @@ -2019,48 +2294,40 @@ int main(int argc, char *argv[]){ g_signal_connect(G_OBJECT(theMacApp),"NSApplicationBlockTermination",(GCallback)on_block_termination,NULL); #endif +core_start: + if (linphone_gtk_init_instance(app_name, start_option, addr_to_call) == FALSE){ + g_warning("Another running instance of linphone has been detected. It has been woken-up."); + g_warning("This instance is going to exit now."); + gdk_threads_leave(); + return 0; + } + the_ui=linphone_gtk_create_window("main"); g_object_set_data(G_OBJECT(the_ui),"is_created",GINT_TO_POINTER(FALSE)); linphone_gtk_create_log_window(); linphone_core_enable_logs_with_cb(linphone_gtk_log_handler); - + db_file=linphone_gtk_message_storage_get_db_file(NULL); + linphone_gtk_init_liblinphone(config_file, factory_config_file, db_file); - - g_set_application_name(app_name); - pbuf=create_pixbuf(linphone_gtk_get_ui_config("icon",LINPHONE_ICON)); - if (pbuf!=NULL) gtk_window_set_default_icon(pbuf); - + /* do not lower timeouts under 30 ms because it exhibits a bug on gtk+/win32, with cpu running 20% all the time...*/ gtk_timeout_add(30,(GtkFunction)linphone_gtk_iterate,(gpointer)linphone_gtk_get_core()); - gtk_timeout_add(30,(GtkFunction)linphone_gtk_check_logs,(gpointer)NULL); - linphone_gtk_init_main_window(); - -#ifdef BUILD_WIZARD - // Veryfing if at least one sip account is configured. If not, show wizard - if (linphone_core_get_proxy_config_list(linphone_gtk_get_core()) == NULL) { - linphone_gtk_show_assistant(); - } -#endif - -#ifndef HAVE_GTK_OSX - linphone_gtk_init_status_icon(); -#endif - if (!iconified){ - linphone_gtk_show_main_window(); - linphone_gtk_check_soundcards(); - } - if (linphone_gtk_get_ui_config_int("update_check_menu",0)==0) - linphone_gtk_check_for_new_version(); - linphone_gtk_monitor_usb(); - + gtk_timeout_add(30,(GtkFunction)linphone_gtk_check_logs,(gpointer)linphone_gtk_get_core()); + gtk_main(); linphone_gtk_quit(); + + if (restart){ + quit_done=FALSE; + restart=FALSE; + goto core_start; + } #ifndef HAVE_GTK_OSX /*workaround a bug on win32 that makes status icon still present in the systray even after program exit.*/ - gtk_status_icon_set_visible(icon,FALSE); + if (icon) gtk_status_icon_set_visible(icon,FALSE); #endif free(progpath); return 0; diff --git a/gtk/main.ui b/gtk/main.ui index ae1335c5d..44750d572 100644 --- a/gtk/main.ui +++ b/gtk/main.ui @@ -786,6 +786,12 @@ False gtk-add + + True + False + 0.49000000953674316 + gtk-properties + True False @@ -821,6 +827,59 @@ False gtk-add + + + + + + + + All users + + + Online users + + + + + + + + + + + ADSL + + + Fiber Channel + + + + + + + + + + + Default + + + + + + + + + + + ADSL + + + Fiber Channel + + + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK @@ -858,6 +917,16 @@ + + + True + False + False + Set configuration URI + True + + + gtk-disconnect @@ -981,6 +1050,17 @@ + + + Audio assistant + True + False + False + image21 + False + + + @@ -1109,6 +1189,12 @@ 3 + + + + + + False @@ -1547,8 +1633,8 @@ - True True + True True False none @@ -1618,7 +1704,7 @@ True False - 4 + 5 2 @@ -1640,13 +1726,12 @@ - True False Internet connection: - 2 - 3 + 3 + 4 @@ -1684,7 +1769,6 @@ - True False model4 0 @@ -1699,8 +1783,8 @@ 1 2 - 2 - 3 + 3 + 4 @@ -1715,8 +1799,34 @@ 1 2 - 3 - 4 + 4 + 5 + + + + + False + UserID + + + 2 + 3 + + + + + True + + False + False + True + True + + + 1 + 2 + 2 + 3 @@ -1762,6 +1872,9 @@ 0 + + + True @@ -1838,59 +1951,6 @@ - - - - - - - - All users - - - Online users - - - - - - - - - - - ADSL - - - Fiber Channel - - - - - - - - - - - Default - - - - - - - - - - - ADSL - - - Fiber Channel - - - True False diff --git a/gtk/parameters.ui b/gtk/parameters.ui index 4cb435eb2..7705e1319 100644 --- a/gtk/parameters.ui +++ b/gtk/parameters.ui @@ -9,6 +9,12 @@ 1 10 + + 500 + 50 + 1 + 10 + 1 65535 @@ -42,7 +48,6 @@ 10 - 1 65535 5060 1 @@ -54,6 +59,12 @@ 1 10 + + 100 + 10 + 1 + 10 + 65535 2 @@ -81,6 +92,23 @@ 10 + + + + + + + + anonymous + + + GSSAPI + + + SASL + + + @@ -2428,6 +2456,188 @@ False + + + True + False + + + True + False + 0 + none + + + True + False + 0 + 0 + + + True + False + 4 + 2 + True + + + True + False + 1 + Server address: + + + GTK_SHRINK + GTK_SHRINK + + + + + True + False + Authentication method: + + + 1 + 2 + GTK_EXPAND | GTK_SHRINK + + + + + True + False + Username: + + + 2 + 3 + GTK_SHRINK + + + + + gtk-edit + True + True + True + False + True + + + + 1 + 2 + 3 + 4 + GTK_SHRINK + GTK_SHRINK + + + + + True + False + label + + + 1 + 2 + GTK_SHRINK + + + + + True + False + label + + + 1 + 2 + 1 + 2 + GTK_SHRINK + + + + + True + False + label + + + 1 + 2 + 2 + 3 + GTK_SHRINK + + + + + + + + + + + + True + False + <b>LDAP Account setup</b> + True + + + + + False + True + 0 + + + + + + + + 5 + + + + + True + False + + + True + False + gtk-disconnect + + + True + True + 0 + + + + + True + False + LDAP + + + True + True + 1 + + + + + 5 + False + + True diff --git a/gtk/propertybox.c b/gtk/propertybox.c index 8579fc2f4..86356a97b 100644 --- a/gtk/propertybox.c +++ b/gtk/propertybox.c @@ -19,14 +19,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "linphone.h" #include "linphone_tunnel.h" +#include "lpconfig.h" -typedef enum { - CAP_IGNORE, - CAP_PLAYBACK, - CAP_CAPTURE -}DeviceCap; - -static void linphone_gtk_fill_combo_box(GtkWidget *combo, const char **devices, const char *selected, DeviceCap cap){ +void linphone_gtk_fill_combo_box(GtkWidget *combo, const char **devices, const char *selected, DeviceCap cap){ const char **p=devices; int i=0,active=-1; GtkTreeModel *model; @@ -59,6 +54,196 @@ static void linphone_gtk_fill_combo_box(GtkWidget *combo, const char **devices, gtk_combo_box_set_active(GTK_COMBO_BOX(combo),active); } +static void linphone_gtk_ldap_display( GtkWidget* param ) +{ + LpConfig* config = linphone_core_get_config(linphone_gtk_get_core()); + LinphoneDictionary* ldap_conf = lp_config_section_to_dict(config,"ldap"); + GtkLabel* label; + + ms_message("linphone_gtk_ldap_display"); + label= GTK_LABEL(linphone_gtk_get_widget(param,"ldap_server")); + gtk_label_set_text(label, linphone_dictionary_get_string(ldap_conf,"server", "ldap://localhost") ); + + label = GTK_LABEL(linphone_gtk_get_widget(param,"ldap_auth_method")); + gtk_label_set_text(label, linphone_dictionary_get_string(ldap_conf,"auth_method", "ANONYMOUS") ); + + label = GTK_LABEL(linphone_gtk_get_widget(param,"ldap_username")); + gtk_label_set_text(label, linphone_dictionary_get_string(ldap_conf,"username", "") ); +} + +static void linphone_gtk_ldap_set_authcombo( GtkComboBox* box, const char* authmethod ) +{ + GtkTreeModel* model = GTK_TREE_MODEL(gtk_combo_box_get_model(box)); + GtkTreeIter iter; + g_return_if_fail(gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter) ); + + do{ + const char* value; + + gtk_tree_model_get(model,&iter,0,&value,-1); + if( value && strcmp(value, authmethod) == 0){ + gtk_combo_box_set_active_iter(box, &iter); + break; + } + + }while(gtk_tree_model_iter_next(model,&iter)); +} + +static void linphone_gtk_ldap_load_settings(GtkWidget* param) +{ + LpConfig* config = linphone_core_get_config(linphone_gtk_get_core()); + LinphoneDictionary* ldap_conf = lp_config_section_to_dict(config,"ldap"); + GtkEntry* entry; + GtkToggleButton* toggle; + GtkSpinButton* spin; + GtkComboBox* cbox; + + + toggle = GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(param,"ldap_use_tls")); + gtk_toggle_button_set_active(toggle, linphone_dictionary_get_int(ldap_conf,"use_tls", 0) ); + + entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_server")); + gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"server", "ldap://localhost") ); + + entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_username")); + gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"username", "") ); + + entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_password")); + gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"password", "") ); + + // SASL + entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_bind_dn")); + gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"bind_dn", "") ); + entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_sasl_authname")); + gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"sasl_authname", "") ); + entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_sasl_realm")); + gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"sasl_realm", "") ); + + cbox = GTK_COMBO_BOX(linphone_gtk_get_widget(param,"ldap_auth_method")); + linphone_gtk_ldap_set_authcombo(cbox, linphone_dictionary_get_string(ldap_conf,"auth_method", "ANONYMOUS")); + + entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_base_object")); + gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"base_object", "dc=example,dc=com") ); + + entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_filter")); + gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"filter", "uid=*%s*") ); + + entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_name_attribute")); + gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"name_attribute", "cn") ); + + entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_sip_attribute")); + gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"sip_attribute", "mobile") ); + + entry = GTK_ENTRY(linphone_gtk_get_widget(param,"ldap_attributes")); + gtk_entry_set_text(entry, linphone_dictionary_get_string(ldap_conf,"attributes", "cn,givenName,sn,mobile,homePhone") ); + + + toggle = GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(param,"ldap_deref_aliases")); + gtk_toggle_button_set_active(toggle, linphone_dictionary_get_int(ldap_conf,"deref_aliases", 0) ); + + spin = GTK_SPIN_BUTTON(linphone_gtk_get_widget(param,"ldap_max_results")); + gtk_spin_button_set_value(spin, linphone_dictionary_get_int(ldap_conf,"max_results", 50) ); + + spin = GTK_SPIN_BUTTON(linphone_gtk_get_widget(param,"ldap_timeout")); + gtk_spin_button_set_value(spin, linphone_dictionary_get_int(ldap_conf,"timeout", 10) ); + +} + + +void linphone_gtk_show_ldap_config(GtkWidget* button) +{ + GtkWidget* param = gtk_widget_get_toplevel(button); + GtkWidget* ldap_config = linphone_gtk_create_window("ldap"); + linphone_gtk_ldap_load_settings(ldap_config); + + // to refresh parameters when the ldap config is destroyed + g_object_weak_ref(G_OBJECT(ldap_config), (GWeakNotify)linphone_gtk_ldap_display, (gpointer)param); + + gtk_widget_show(ldap_config); +} + +void linphone_gtk_ldap_reset(GtkWidget *button) +{ + GtkWidget *w=gtk_widget_get_toplevel(GTK_WIDGET(button)); + ms_message("RESET LDAP"); + gtk_widget_destroy(w); +} + +void linphone_gtk_ldap_save(GtkWidget *button) +{ + LinphoneCore *lc = linphone_gtk_get_core(); + LpConfig* conf = linphone_core_get_config(lc); + LinphoneDictionary* dict = linphone_dictionary_new(); + + GtkWidget *ldap_widget = gtk_widget_get_toplevel(button); + GtkEntry* entry; + GtkToggleButton* toggle; + GtkSpinButton* spin; + + ms_message("SAVE LDAP"); + + toggle = GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(ldap_widget,"ldap_use_tls")); + linphone_dictionary_set_int(dict, "use_tls", gtk_toggle_button_get_active(toggle)); + + + entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_server")); + linphone_dictionary_set_string(dict, "server", gtk_entry_get_text(entry)); + + entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_username")); + linphone_dictionary_set_string(dict, "username", gtk_entry_get_text(entry)); + + entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_password")); + linphone_dictionary_set_string(dict, "password", gtk_entry_get_text(entry)); + + // SASL + entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_bind_dn")); + linphone_dictionary_set_string(dict, "bind_dn", gtk_entry_get_text(entry)); + entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_sasl_authname")); + linphone_dictionary_set_string(dict, "sasl_authname", gtk_entry_get_text(entry)); + entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_sasl_realm")); + linphone_dictionary_set_string(dict, "sasl_realm", gtk_entry_get_text(entry)); + + + GtkComboBox* cbox = GTK_COMBO_BOX(linphone_gtk_get_widget(ldap_widget,"ldap_auth_method")); + linphone_dictionary_set_string(dict, "auth_method", gtk_combo_box_get_active_text(cbox)); + + entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_base_object")); + linphone_dictionary_set_string(dict, "base_object", gtk_entry_get_text(entry)); + + entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_filter")); + linphone_dictionary_set_string(dict, "filter", gtk_entry_get_text(entry)); + + entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_name_attribute")); + linphone_dictionary_set_string(dict, "name_attribute", gtk_entry_get_text(entry)); + + entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_sip_attribute")); + linphone_dictionary_set_string(dict, "sip_attribute", gtk_entry_get_text(entry)); + + entry = GTK_ENTRY(linphone_gtk_get_widget(ldap_widget,"ldap_attributes")); + linphone_dictionary_set_string(dict, "attributes", gtk_entry_get_text(entry)); + + toggle = GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(ldap_widget,"ldap_deref_aliases")); + linphone_dictionary_set_int(dict, "deref_aliases", gtk_toggle_button_get_active(toggle)); + + spin = GTK_SPIN_BUTTON(linphone_gtk_get_widget(ldap_widget,"ldap_max_results")); + linphone_dictionary_set_int(dict, "max_results", gtk_spin_button_get_value(spin) ); + + spin = GTK_SPIN_BUTTON(linphone_gtk_get_widget(ldap_widget,"ldap_timeout")); + linphone_dictionary_set_int(dict, "timeout", gtk_spin_button_get_value(spin) ); + + ms_message("Create LDAP from config"); + // create new LDAP according to the validated config + linphone_gtk_set_ldap( linphone_ldap_contact_provider_create(lc, dict) ); + // save the config to linphonerc: + lp_config_load_dict_to_section(conf, "ldap", dict); + + linphone_dictionary_unref(dict); + + // close widget + gtk_widget_destroy(ldap_widget); + +} + void linphone_gtk_fill_video_sizes(GtkWidget *combo){ const MSVideoSizeDef *def=linphone_core_get_supported_video_sizes(linphone_gtk_get_core());; int i,active=0; @@ -1095,6 +1280,7 @@ void linphone_gtk_fill_webcams(GtkWidget *pb){ } void linphone_gtk_fill_video_renderers(GtkWidget *pb){ +#ifdef VIDEO_ENABLED /* video_stream_get_default_video_renderer requires video enabled */ LinphoneCore *lc=linphone_gtk_get_core(); GtkWidget *combo=linphone_gtk_get_widget(pb,"renderers"); MSList *l=ms_filter_lookup_by_interface(MSFilterVideoDisplayInterface); @@ -1105,6 +1291,8 @@ void linphone_gtk_fill_video_renderers(GtkWidget *pb){ GtkListStore *store; GtkCellRenderer *renderer=gtk_cell_renderer_text_new(); GtkTreeModel *model=GTK_TREE_MODEL(store=gtk_list_store_new(2,G_TYPE_STRING,G_TYPE_STRING)); + + if (current_renderer==NULL) current_renderer=video_stream_get_default_video_renderer(); gtk_combo_box_set_model(GTK_COMBO_BOX(combo),model); gtk_cell_layout_clear(GTK_CELL_LAYOUT(combo)); @@ -1121,6 +1309,7 @@ void linphone_gtk_fill_video_renderers(GtkWidget *pb){ } ms_list_free(l); if (active!=-1) gtk_combo_box_set_active(GTK_COMBO_BOX(combo),active); +#endif } typedef struct { @@ -1273,8 +1462,11 @@ void linphone_gtk_show_parameters(void){ } if (linphone_address_get_username(contact)) gtk_entry_set_text(GTK_ENTRY(linphone_gtk_get_widget(pb,"username")),linphone_address_get_username(contact)); + linphone_address_destroy(contact); } - linphone_address_destroy(contact); +#ifdef BUILD_WIZARD + gtk_widget_show(linphone_gtk_get_widget(pb,"wizard")); +#endif linphone_gtk_show_sip_accounts(pb); /* CODECS CONFIG */ linphone_gtk_init_codec_list(GTK_TREE_VIEW(codec_list)); @@ -1301,6 +1493,15 @@ void linphone_gtk_show_parameters(void){ gtk_widget_set_visible(GTK_WIDGET(linphone_gtk_get_widget(pb,"tunnel_label")), TRUE); } + /* LDAP CONFIG */ + if( linphone_gtk_is_ldap_supported() ) { // if LDAP provider is available + linphone_gtk_ldap_display(pb); + } else { + // hide the LDAP tab + GtkNotebook* notebook = GTK_NOTEBOOK(linphone_gtk_get_widget(pb, "notebook1")); + gtk_notebook_remove_page(notebook,5); + } + gtk_widget_show(pb); } diff --git a/gtk/provisioning-fetch.ui b/gtk/provisioning-fetch.ui new file mode 100644 index 000000000..e2d6a0203 --- /dev/null +++ b/gtk/provisioning-fetch.ui @@ -0,0 +1,53 @@ + + + + + + False + 5 + Configuring... + dialog + True + Please wait while fetching configuration from server... + + + True + False + 2 + + + True + False + end + + + + + + + + + False + True + end + 0 + + + + + True + False + + + + + + True + True + 2 + + + + + + diff --git a/gtk/setupwizard.c b/gtk/setupwizard.c index afb543a85..27f7363b7 100644 --- a/gtk/setupwizard.c +++ b/gtk/setupwizard.c @@ -43,13 +43,17 @@ static GtkWidget *create_setup_signin_choice(){ GtkWidget *t1=gtk_radio_button_new_with_label(NULL,_("Create an account on linphone.org")); GtkWidget *t2=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(t1),_("I have already a linphone.org account and I just want to use it")); GtkWidget *t3=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(t1),_("I have already a sip account and I just want to use it")); + GtkWidget *t4=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(t1),_("I want to specify a remote configuration URI")); + gtk_box_pack_start (GTK_BOX (vbox), t1, TRUE, TRUE, 2); gtk_box_pack_start (GTK_BOX (vbox), t2, TRUE, TRUE, 2); gtk_box_pack_start (GTK_BOX (vbox), t3, TRUE, TRUE, 2); + gtk_box_pack_start (GTK_BOX (vbox), t4, TRUE, TRUE, 2); gtk_widget_show_all(vbox); g_object_set_data(G_OBJECT(vbox),"create_account",t1); g_object_set_data(G_OBJECT(vbox),"setup_linphone_account",t2); g_object_set_data(G_OBJECT(vbox),"setup_account",t3); + g_object_set_data(G_OBJECT(vbox),"config-uri",t4); return vbox; } @@ -77,7 +81,7 @@ static void linphone_account_informations_changed(GtkEntry *entry, GtkWidget *w) GtkEntry* username = GTK_ENTRY(g_object_get_data(G_OBJECT(w),"username")); gtk_assistant_set_page_complete(GTK_ASSISTANT(assistant),w, - gtk_entry_get_text_length(username) >= LOGIN_MIN_SIZE); + gtk_entry_get_text_length(username) > 0); } static GtkWidget *create_linphone_account_informations_page() { @@ -420,40 +424,39 @@ static void linphone_gtk_assistant_prepare(GtkWidget *assistant, GtkWidget *page linphone_proxy_config_enable_publish(cfg, FALSE); linphone_proxy_config_enable_register(cfg, TRUE); - gchar *username = creator->username + 4; - const gchar *needle = "@"; - const gchar *needle_ptr = g_strrstr(username, needle); - if (needle_ptr != NULL) { - username = g_strndup(username, needle_ptr - username); - } else { - username = g_strdup(username); - } - gchar domain[128]; - g_snprintf(domain, sizeof(domain), "\"%s\"", creator->domain + 4); - LinphoneAuthInfo *info=linphone_auth_info_new(username, username, creator->password, NULL, NULL, domain); + LinphoneAddress *identity = linphone_address_new(creator->username); + LinphoneAuthInfo *info=linphone_auth_info_new(linphone_address_get_username(identity), NULL, creator->password, NULL, NULL, linphone_address_get_domain(identity)); linphone_core_add_auth_info(linphone_gtk_get_core(),info); - g_free(username); - + linphone_address_destroy(identity); + + // If account created on sip.linphone.org, we configure linphone to use TLS by default + if (strcmp(creator->domain, "sip:sip.linphone.org") == 0 && linphone_core_sip_transport_supported(linphone_gtk_get_core(),LinphoneTransportTls)) { + LinphoneAddress *addr=linphone_address_new(creator->domain); + char *tmp; + linphone_address_set_transport(addr, LinphoneTransportTls); + tmp=linphone_address_as_string(addr); + linphone_proxy_config_set_server_addr(cfg,tmp); + linphone_proxy_config_set_route(cfg,tmp); + ms_free(tmp); + linphone_address_destroy(addr); + } + if (linphone_core_add_proxy_config(linphone_gtk_get_core(),cfg)==-1) return; linphone_core_set_default_proxy(linphone_gtk_get_core(),cfg); linphone_gtk_load_identities(); - // If account created on sip.linphone.org, we configure linphone to use TLS by default - g_warning("Domain : %s", creator->domain); - if (strcmp(creator->domain, "sip:sip.linphone.org") == 0) { - LCSipTransports tr; - LinphoneCore* lc = linphone_gtk_get_core(); - linphone_core_get_sip_transports(lc,&tr); - tr.tls_port = tr.udp_port + tr.tcp_port + tr.tls_port; - tr.udp_port = 0; - tr.tcp_port = 0; - linphone_core_set_sip_transports(lc,&tr); - } + } } +static gint destroy_assistant(GtkWidget* w){ + gtk_widget_destroy(w); + the_assistant = NULL; + return FALSE; +} + static int linphone_gtk_assistant_forward(int curpage, gpointer data){ GtkWidget *w=(GtkWidget*)data; GtkWidget *box=gtk_assistant_get_nth_page(GTK_ASSISTANT(w),curpage); @@ -461,6 +464,7 @@ static int linphone_gtk_assistant_forward(int curpage, gpointer data){ GtkWidget *create_button=(GtkWidget*)g_object_get_data(G_OBJECT(box),"create_account"); GtkWidget *setup_linphone_account=(GtkWidget*)g_object_get_data(G_OBJECT(box),"setup_linphone_account"); GtkWidget *setup_account=(GtkWidget*)g_object_get_data(G_OBJECT(box),"setup_account"); + GtkWidget *config_uri=(GtkWidget*)g_object_get_data(G_OBJECT(box),"config-uri"); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(create_button))) { curpage += 3; // Going to P33 @@ -471,6 +475,13 @@ static int linphone_gtk_assistant_forward(int curpage, gpointer data){ else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(setup_account))) { curpage += 1; // Going to P31 } + else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(config_uri))) { + /*destroy the assistant and popup config-uri dialog*/ + gtk_widget_hide(w); + linphone_gtk_set_configuration_uri(); + curpage=0; + g_idle_add((GSourceFunc)destroy_assistant,w); + } } else if (curpage == 2) { // Account's informations entered LinphoneAccountCreator *c=linphone_gtk_assistant_get_creator(w); @@ -541,7 +552,7 @@ static LinphoneAccountCreator *linphone_gtk_assistant_get_creator(GtkWidget*w){ void linphone_gtk_close_assistant(void){ if(the_assistant==NULL) return; - gtk_widget_destroy(the_assistant); + gtk_widget_destroy(the_assistant); the_assistant = NULL; } @@ -550,6 +561,7 @@ void linphone_gtk_show_assistant(void){ return; GtkWidget *w=the_assistant=gtk_assistant_new(); gtk_window_set_resizable (GTK_WINDOW(w), FALSE); + gtk_window_set_title(GTK_WINDOW(w),_("SIP account configuration assistant")); ok = create_pixbuf(linphone_gtk_get_ui_config("ok","ok.png")); notok = create_pixbuf(linphone_gtk_get_ui_config("notok","notok.png")); diff --git a/gtk/singleinstance.c b/gtk/singleinstance.c index c9550a09f..e78f6ac6a 100644 --- a/gtk/singleinstance.c +++ b/gtk/singleinstance.c @@ -33,11 +33,26 @@ gchar *make_name(const char *appname){ return g_strdup(appname); } -static gboolean execute_wakeup(char *uri){ - linphone_gtk_show_main_window(); - if (strlen(uri)>0) - linphone_gtk_refer_received(linphone_gtk_get_core(),uri); - g_free(uri); +static gboolean execute_wakeup(char *buf){ + char uri[255]={0}; + int option; + + if (strlen(buf)>1) sscanf(buf,"%i%s",&option,uri); + else sscanf(buf,"%i",&option); + + switch(option){ + case START_LINPHONE: + linphone_gtk_show_main_window(); + break; + case START_AUDIO_ASSISTANT: + linphone_gtk_show_audio_assistant(); + break; + case START_LINPHONE_WITH_CALL: + linphone_gtk_refer_received(linphone_gtk_get_core(),uri); + break; + }; + + g_free(buf); return FALSE; } @@ -65,18 +80,22 @@ static void linphone_gtk_init_pipe(const char *name){ server_pipe=ortp_server_pipe_create(name); if (server_pipe==(ortp_pipe_t)-1){ g_warning("Fail to create server pipe for name %s: %s",name,strerror(errno)); + return; } + server_pipe_running=TRUE; ms_thread_create(&pipe_thread,NULL,server_pipe_thread,NULL); } -bool_t linphone_gtk_init_instance(const char *app_name, const char *addr_to_call){ +bool_t linphone_gtk_init_instance(const char *app_name, int option, const char *addr_to_call){ pipe_name=make_name(app_name); ortp_pipe_t p=ortp_client_pipe_connect(pipe_name); if (p!=(ortp_pipe_t)-1){ uint8_t buf[256]={0}; g_message("There is already a running instance."); if (addr_to_call!=NULL){ - strncpy((char*)buf,addr_to_call,sizeof(buf)-1); + sprintf((char *)buf,"%i%s",option,addr_to_call); + } else { + sprintf((char *)buf,"%i",option); } if (ortp_pipe_write(p,buf,sizeof(buf))==-1){ g_error("Fail to send wakeup command to running instance: %s",strerror(errno)); diff --git a/gtk/support.c b/gtk/support.c index de6c3a910..81754bb45 100644 --- a/gtk/support.c +++ b/gtk/support.c @@ -203,6 +203,27 @@ void linphone_gtk_set_ui_config(const char *key , const char * val){ lp_config_set_string(cfg,"GtkUi",key,val); } +const char *linphone_gtk_get_sound_path(const char *name){ + static char *ret=NULL; + const char *file; + file=linphone_gtk_get_ui_config(name,NULL); + if (file==NULL){ + char *dirname=g_path_get_dirname(name); + if (strcmp(dirname,".")!=0){ + g_free(dirname); + return name; + } + g_free(dirname); + file=name; + } + if (ret){ + g_free(ret); + ret=NULL; + } + ret=g_build_filename(PACKAGE_SOUND_DIR,name,NULL); + return ret; +} + static void parse_item(const char *item, const char *window_name, GtkWidget *w, gboolean show){ char tmp[64]; char *dot; diff --git a/include/sal/sal.h b/include/sal/sal.h index 655613661..d0215c89c 100644 --- a/include/sal/sal.h +++ b/include/sal/sal.h @@ -30,8 +30,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "config.h" #endif -#include "mediastreamer2/mscommon.h" -#include "ortp/ortp_srtp.h" +#include "mediastreamer2/mediastream.h" +#include "ortp/rtpsession.h" +#include "belle-sip/belle-sip.h" #ifndef LINPHONE_PUBLIC #define LINPHONE_PUBLIC MS2_PUBLIC @@ -94,12 +95,7 @@ const char* sal_address_get_transport_name(const SalAddress* addr); void sal_address_set_display_name(SalAddress *addr, const char *display_name); void sal_address_set_username(SalAddress *addr, const char *username); void sal_address_set_domain(SalAddress *addr, const char *host); -#ifdef USE_BELLESIP void sal_address_set_port(SalAddress *uri, int port); -#else -void sal_address_set_port(SalAddress *addr, const char *port); -void sal_address_set_port_int(SalAddress *uri, int port); -#endif void sal_address_clean(SalAddress *addr); char *sal_address_as_string(const SalAddress *u); char *sal_address_as_string_uri_only(const SalAddress *u); @@ -107,6 +103,9 @@ void sal_address_destroy(SalAddress *u); void sal_address_set_param(SalAddress *u,const char* name,const char* value); void sal_address_set_transport(SalAddress* addr,SalTransport transport); void sal_address_set_transport_name(SalAddress* addr,const char* transport); +void sal_address_set_params(SalAddress *addr, const char *params); +void sal_address_set_uri_params(SalAddress *addr, const char *params); +bool_t sal_address_is_ipv6(SalAddress *addr); Sal * sal_init(); void sal_uninit(Sal* sal); @@ -122,9 +121,9 @@ typedef enum { const char* sal_stream_type_to_string(SalStreamType type); typedef enum{ - SalProtoUnknown, SalProtoRtpAvp, - SalProtoRtpSavp + SalProtoRtpSavp, + SalProtoOther }SalMediaProto; const char* sal_media_proto_to_string(SalMediaProto type); @@ -166,21 +165,23 @@ typedef struct SalIceRemoteCandidate { #define SAL_MEDIA_DESCRIPTION_MAX_ICE_UFRAG_LEN 256 #define SAL_MEDIA_DESCRIPTION_MAX_ICE_PWD_LEN 256 -#define SAL_SRTP_KEY_SIZE 41 +/*sufficient for 256bit keys encoded in base 64*/ +#define SAL_SRTP_KEY_SIZE 64 typedef struct SalSrtpCryptoAlgo { unsigned int tag; - enum ortp_srtp_crypto_suite_t algo; - /* 41= 40 max(key_length for all algo) + '\0' */ + MSCryptoSuite algo; char master_key[SAL_SRTP_KEY_SIZE]; } SalSrtpCryptoAlgo; #define SAL_CRYPTO_ALGO_MAX 4 typedef struct SalStreamDescription{ + char name[16]; /*unique name of stream, in order to ease offer/answer model algorithm*/ SalMediaProto proto; SalStreamType type; char typeother[32]; + char proto_other[32]; char rtp_addr[64]; char rtcp_addr[64]; int rtp_port; @@ -192,18 +193,24 @@ typedef struct SalStreamDescription{ SalSrtpCryptoAlgo crypto[SAL_CRYPTO_ALGO_MAX]; unsigned int crypto_local_tag; int max_rate; + OrtpRtcpXrConfiguration rtcp_xr; SalIceCandidate ice_candidates[SAL_MEDIA_DESCRIPTION_MAX_ICE_CANDIDATES]; SalIceRemoteCandidate ice_remote_candidates[SAL_MEDIA_DESCRIPTION_MAX_ICE_REMOTE_CANDIDATES]; char ice_ufrag[SAL_MEDIA_DESCRIPTION_MAX_ICE_UFRAG_LEN]; char ice_pwd[SAL_MEDIA_DESCRIPTION_MAX_ICE_PWD_LEN]; bool_t ice_mismatch; bool_t ice_completed; + bool_t pad[2]; } SalStreamDescription; -#define SAL_MEDIA_DESCRIPTION_MAX_STREAMS 4 +const char *sal_stream_description_get_type_as_string(const SalStreamDescription *desc); +const char *sal_stream_description_get_proto_as_string(const SalStreamDescription *desc); + +#define SAL_MEDIA_DESCRIPTION_MAX_STREAMS 8 typedef struct SalMediaDescription{ int refcount; + char name[64]; char addr[64]; char username[64]; int n_active_streams; @@ -211,11 +218,14 @@ typedef struct SalMediaDescription{ int bandwidth; unsigned int session_ver; unsigned int session_id; + SalStreamDir dir; SalStreamDescription streams[SAL_MEDIA_DESCRIPTION_MAX_STREAMS]; + OrtpRtcpXrConfiguration rtcp_xr; char ice_ufrag[SAL_MEDIA_DESCRIPTION_MAX_ICE_UFRAG_LEN]; char ice_pwd[SAL_MEDIA_DESCRIPTION_MAX_ICE_PWD_LEN]; bool_t ice_lite; bool_t ice_completed; + bool_t pad[2]; } SalMediaDescription; typedef struct SalMessage{ @@ -226,10 +236,15 @@ typedef struct SalMessage{ time_t time; }SalMessage; +typedef struct SalIsComposing { + const char *from; + const char *text; +} SalIsComposing; + #define SAL_MEDIA_DESCRIPTION_MAX_MESSAGE_ATTRIBUTES 5 SalMediaDescription *sal_media_description_new(); -void sal_media_description_ref(SalMediaDescription *md); +SalMediaDescription * sal_media_description_ref(SalMediaDescription *md); void sal_media_description_unref(SalMediaDescription *md); bool_t sal_media_description_empty(const SalMediaDescription *md); int sal_media_description_equals(const SalMediaDescription *md1, const SalMediaDescription *md2); @@ -238,16 +253,13 @@ SalStreamDescription *sal_media_description_find_stream(SalMediaDescription *md, SalMediaProto proto, SalStreamType type); void sal_media_description_set_dir(SalMediaDescription *md, SalStreamDir stream_dir); + /*this structure must be at the first byte of the SalOp structure defined by implementors*/ typedef struct SalOpBase{ Sal *root; char *route; /*or request-uri for REGISTER*/ MSList* route_addresses; /*list of SalAddress* */ -#ifndef USE_BELLESIP - char *contact; -#else SalAddress* contact_address; -#endif char *from; SalAddress* from_address; char *to; @@ -255,43 +267,54 @@ typedef struct SalOpBase{ char *origin; SalAddress* origin_address; char *remote_ua; + SalAddress* remote_contact_address; + char *remote_contact; SalMediaDescription *local_media; SalMediaDescription *remote_media; void *user_pointer; const char* call_id; - char *remote_contact; SalAddress* service_route; /*as defined by rfc3608, might be a list*/ SalCustomHeader *sent_custom_headers; SalCustomHeader *recv_custom_headers; } SalOpBase; -typedef enum SalError{ - SalErrorNone, - SalErrorNoResponse, - SalErrorProtocol, - SalErrorFailure, /* see SalReason for more details */ - SalErrorUnknown -} SalError; - typedef enum SalReason{ + SalReasonNone, /*no error, please leave first so that it takes 0 value*/ SalReasonDeclined, SalReasonBusy, SalReasonRedirect, SalReasonTemporarilyUnavailable, + SalReasonRequestTimeout, SalReasonNotFound, SalReasonDoNotDisturb, - SalReasonMedia, + SalReasonUnsupportedContent, SalReasonForbidden, SalReasonUnknown, SalReasonServiceUnavailable, SalReasonRequestPending, SalReasonUnauthorized, - SalReasonNotAcceptable + SalReasonNotAcceptable, + SalReasonNoMatch, /*equivalent to 481 Transaction/Call leg does not exist*/ + SalReasonMovedPermanently, + SalReasonGone, + SalReasonAddressIncomplete, + SalReasonNotImplemented, + SalReasonBadGateway, + SalReasonServerTimeout, + SalReasonIOError }SalReason; const char* sal_reason_to_string(const SalReason reason); +typedef struct SalErrorInfo{ + SalReason reason; + char *status_string; + int protocol_code; + char *warnings; + char *full_string; /*concatenation of status_string + warnings*/ +}SalErrorInfo; + typedef enum SalPresenceStatus{ SalPresenceOffline, SalPresenceOnline, @@ -377,22 +400,23 @@ typedef void (*SalOnCallReceived)(SalOp *op); typedef void (*SalOnCallRinging)(SalOp *op); typedef void (*SalOnCallAccepted)(SalOp *op); typedef void (*SalOnCallAck)(SalOp *op); -typedef void (*SalOnCallUpdating)(SalOp *op);/*< Called when a reINVITE is received*/ +typedef void (*SalOnCallUpdating)(SalOp *op);/*< Called when a reINVITE/UPDATE is received*/ typedef void (*SalOnCallTerminated)(SalOp *op, const char *from); -typedef void (*SalOnCallFailure)(SalOp *op, SalError error, SalReason reason, const char *details, int code); +typedef void (*SalOnCallFailure)(SalOp *op); typedef void (*SalOnCallReleased)(SalOp *salop); typedef void (*SalOnAuthRequestedLegacy)(SalOp *op, const char *realm, const char *username); typedef bool_t (*SalOnAuthRequested)(Sal *sal,SalAuthInfo* info); typedef void (*SalOnAuthFailure)(SalOp *op, SalAuthInfo* info); typedef void (*SalOnRegisterSuccess)(SalOp *op, bool_t registered); -typedef void (*SalOnRegisterFailure)(SalOp *op, SalError error, SalReason reason, const char *details); +typedef void (*SalOnRegisterFailure)(SalOp *op); typedef void (*SalOnVfuRequest)(SalOp *op); typedef void (*SalOnDtmfReceived)(SalOp *op, char dtmf); typedef void (*SalOnRefer)(Sal *sal, SalOp *op, const char *referto); typedef void (*SalOnTextReceived)(SalOp *op, const SalMessage *msg); -typedef void (*SalOnTextDeliveryUpdate)(SalOp *op, SalTextDeliveryStatus status); +typedef void (*SalOnTextDeliveryUpdate)(SalOp *op, SalTextDeliveryStatus); +typedef void (*SalOnIsComposingReceived)(SalOp *op, const SalIsComposing *is_composing); typedef void (*SalOnNotifyRefer)(SalOp *op, SalReferStatus state); -typedef void (*SalOnSubscribeResponse)(SalOp *op, SalSubscribeStatus status, SalError error, SalReason reason); +typedef void (*SalOnSubscribeResponse)(SalOp *op, SalSubscribeStatus status); typedef void (*SalOnNotify)(SalOp *op, SalSubscribeStatus status, const char *event, const SalBody *body); typedef void (*SalOnSubscribeReceived)(SalOp *salop, const char *event, const SalBody *body); typedef void (*SalOnSubscribeClosed)(SalOp *salop); @@ -403,7 +427,7 @@ typedef void (*SalOnSubscribePresenceReceived)(SalOp *salop, const char *from); typedef void (*SalOnSubscribePresenceClosed)(SalOp *salop, const char *from); typedef void (*SalOnPingReply)(SalOp *salop); typedef void (*SalOnInfoReceived)(SalOp *salop, const SalBody *body); -typedef void (*SalOnPublishResponse)(SalOp *salop, SalError error, SalReason reason); +typedef void (*SalOnPublishResponse)(SalOp *salop); typedef void (*SalOnExpire)(SalOp *salop); /*allows sal implementation to access auth info if available, return TRUE if found*/ @@ -426,6 +450,7 @@ typedef struct SalCallbacks{ SalOnRefer refer_received; SalOnTextReceived text_received; SalOnTextDeliveryUpdate text_delivery_update; + SalOnIsComposingReceived is_composing_received; SalOnNotifyRefer notify_refer; SalOnSubscribeReceived subscribe_received; SalOnSubscribeClosed subscribe_closed; @@ -475,6 +500,7 @@ void sal_signing_key_delete(SalSigningKey *key); void sal_set_callbacks(Sal *ctx, const SalCallbacks *cbs); int sal_listen_port(Sal *ctx, const char *addr, int port, SalTransport tr, int is_secure); +int sal_get_listening_port(Sal *ctx, SalTransport tr); int sal_unlisten_ports(Sal *ctx); int sal_transport_available(Sal *ctx, SalTransport t); void sal_set_dscp(Sal *ctx, int dscp); @@ -513,12 +539,7 @@ SalOp * sal_op_new(Sal *sal); /*generic SalOp API, working for all operations */ Sal *sal_op_get_sal(const SalOp *op); -#ifndef USE_BELLESIP -void sal_op_set_contact(SalOp *op, const char *contact); -#else -#define sal_op_set_contact sal_op_set_contact_address /*for liblinphone compatibility*/ void sal_op_set_contact_address(SalOp *op, const SalAddress* address); -#endif void sal_op_set_route(SalOp *op, const char *route); void sal_op_set_route_address(SalOp *op, const SalAddress* address); void sal_op_add_route_address(SalOp *op, const SalAddress* address); @@ -527,6 +548,7 @@ void sal_op_set_from_address(SalOp *op, const SalAddress *from); void sal_op_set_to(SalOp *op, const char *to); void sal_op_set_to_address(SalOp *op, const SalAddress *to); SalOp *sal_op_ref(SalOp* h); +void sal_op_stop_refreshing(SalOp *op); void sal_op_release(SalOp *h); void sal_op_authenticate(SalOp *h, const SalAuthInfo *info); void sal_op_cancel_authentication(SalOp *h); @@ -536,16 +558,12 @@ const char *sal_op_get_from(const SalOp *op); const SalAddress *sal_op_get_from_address(const SalOp *op); const char *sal_op_get_to(const SalOp *op); const SalAddress *sal_op_get_to_address(const SalOp *op); -#ifndef USE_BELLESIP -const char *sal_op_get_contact(const SalOp *op); -#else const SalAddress *sal_op_get_contact_address(const SalOp *op); -#define sal_op_get_contact sal_op_get_contact_address /*for liblinphone compatibility*/ -#endif const char *sal_op_get_route(const SalOp *op); const MSList* sal_op_get_route_addresses(const SalOp *op); const char *sal_op_get_proxy(const SalOp *op); const char *sal_op_get_remote_contact(const SalOp *op); +const SalAddress* sal_op_get_remote_contact_address(const SalOp *op); /*for incoming requests, returns the origin of the packet as a sip uri*/ const char *sal_op_get_network_origin(const SalOp *op); const SalAddress *sal_op_get_network_origin_address(const SalOp *op); @@ -558,6 +576,14 @@ const SalAddress* sal_op_get_service_route(const SalOp *op); void sal_op_set_service_route(SalOp *op,const SalAddress* service_route); void sal_op_set_manual_refresher_mode(SalOp *op, bool_t enabled); +bool_t sal_op_is_ipv6(SalOp *op); +/*returns TRUE if there is no pending request that may block a future one */ +bool_t sal_op_is_idle(SalOp *op); + +const SalErrorInfo *sal_error_info_none(void); +const SalErrorInfo *sal_op_get_error_info(const SalOp *op); +void sal_error_info_reset(SalErrorInfo *ei); +void sal_error_info_set(SalErrorInfo *ei, SalReason reason, int code, const char *status_string, const char *warning); /*Call API*/ int sal_call_set_local_media_description(SalOp *h, SalMediaDescription *desc); @@ -592,6 +618,7 @@ int sal_unregister(SalOp *h); /*Messaging */ int sal_text_send(SalOp *op, const char *from, const char *to, const char *text); int sal_message_send(SalOp *op, const char *from, const char *to, const char* content_type, const char *msg); +int sal_message_reply(SalOp *op, SalReason reason); /*presence Subscribe/notify*/ int sal_subscribe_presence(SalOp *op, const char *from, const char *to, int expires); @@ -685,14 +712,21 @@ bool_t sal_nat_helper_enabled(Sal *sal); LINPHONE_PUBLIC void sal_set_dns_timeout(Sal* sal,int timeout); LINPHONE_PUBLIC int sal_get_dns_timeout(const Sal* sal); +LINPHONE_PUBLIC void sal_set_transport_timeout(Sal* sal,int timeout); +LINPHONE_PUBLIC int sal_get_transport_timeout(const Sal* sal); LINPHONE_PUBLIC void sal_enable_dns_srv(Sal *sal, bool_t enable); LINPHONE_PUBLIC bool_t sal_dns_srv_enabled(const Sal *sal); LINPHONE_PUBLIC void sal_set_dns_user_hosts_file(Sal *sal, const char *hosts_file); LINPHONE_PUBLIC const char *sal_get_dns_user_hosts_file(const Sal *sal); +unsigned int sal_get_random(void); unsigned char * sal_get_random_bytes(unsigned char *ret, size_t size); +belle_sip_source_t * sal_create_timer(Sal *sal, belle_sip_source_func_t func, void *data, unsigned int timeout_value_ms, const char* timer_name); +void sal_cancel_timer(Sal *sal, belle_sip_source_t *timer); int sal_body_has_type(const SalBody *body, const char *type, const char *subtype); /*this function parses a document with key=value pairs separated by new lines, and extracts the value for a given key*/ int sal_lines_get_value(const char *data, const char *key, char *value, size_t value_size); +belle_sip_stack_t *sal_get_belle_sip_stack(Sal *sal); + #endif diff --git a/java/common/org/linphone/core/ErrorInfo.java b/java/common/org/linphone/core/ErrorInfo.java new file mode 100644 index 000000000..348f7fd61 --- /dev/null +++ b/java/common/org/linphone/core/ErrorInfo.java @@ -0,0 +1,24 @@ +package org.linphone.core; + +public interface ErrorInfo { + /** + * Return the Reason enum corresponding to the error type. + * @return the reason. + */ + Reason getReason(); + /** + * Get the protocol code corresponding to the error (typically a SIP status code). + * @return the code. + */ + int getProtocolCode(); + /** + * Get the reason-phrase provided by the protocol (typically a SIP reason-phrase). + * @return the reason phrase. + */ + String getPhrase(); + /** + * Get details about the error, if provided by the protocol. For SIP it consists of the content of a Warning or Reason header. + * @return details about the error. + */ + String getDetails(); +} diff --git a/java/common/org/linphone/core/LinphoneAddress.java b/java/common/org/linphone/core/LinphoneAddress.java index fe5164b01..f6c271bd6 100644 --- a/java/common/org/linphone/core/LinphoneAddress.java +++ b/java/common/org/linphone/core/LinphoneAddress.java @@ -17,6 +17,9 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.linphone.core; + +import java.util.Vector; + /** * Object that represents a SIP address. * The LinphoneAddress is an opaque object to represents SIP addresses, ie the content of SIP's 'from' and 'to' headers. @@ -28,6 +31,38 @@ package org.linphone.core; * */ public interface LinphoneAddress { + static public class TransportType { + static private Vector values = new Vector(); + static public TransportType LinphoneTransportUdp = new TransportType(0, "LinphoneTransportUdp"); + static public TransportType LinphoneTransportTcp = new TransportType(1, "LinphoneTransportTcp"); + static public TransportType LinphoneTransportTls = new TransportType(2, "LinphoneTransportTls"); + + private final int mValue; + private final String mStringValue; + + private TransportType(int value, String stringValue) { + mValue = value; + values.addElement(this); + mStringValue = stringValue; + } + + public static TransportType fromInt(int value) { + for (int i = 0; i < values.size(); i++) { + TransportType type = (TransportType) values.elementAt(i); + if (type.mValue == value) return type; + } + throw new RuntimeException("state not found ["+value+"]"); + } + + public String toString() { + return mStringValue; + } + + public int toInt() { + return mValue; + } + } + /** * Human display name * @return null if not set @@ -99,4 +134,16 @@ public interface LinphoneAddress { * * */ public String toString(); + + /** + * Gets the transport set in the address + * @return the transport + */ + public TransportType getTransport(); + + /** + * Sets the transport in the address + * @param transport the transport to set + */ + public void setTransport(TransportType transport); } diff --git a/java/common/org/linphone/core/LinphoneCall.java b/java/common/org/linphone/core/LinphoneCall.java index 62be0d638..90fe60ded 100644 --- a/java/common/org/linphone/core/LinphoneCall.java +++ b/java/common/org/linphone/core/LinphoneCall.java @@ -315,4 +315,12 @@ public interface LinphoneCall { **/ LinphoneCall getTransferTargetCall(); + Reason getReason(); + + /** + * Returns last error reported for the call. + * @return an ErrorInfo. + */ + ErrorInfo getErrorInfo(); + } diff --git a/java/common/org/linphone/core/LinphoneCallParams.java b/java/common/org/linphone/core/LinphoneCallParams.java index 530cf63b9..b226077cd 100644 --- a/java/common/org/linphone/core/LinphoneCallParams.java +++ b/java/common/org/linphone/core/LinphoneCallParams.java @@ -105,4 +105,27 @@ public interface LinphoneCallParams { * @return the privacy mask as defined in interface {@link org.linphone.core.Privacy} */ int getPrivacy(); + + /** + * Set the session name of the media session (ie in SDP). Subject from the SIP message can be retrieved using linphone_call_params_get_custom_header(). + * @param name the session name + **/ + void setSessionName(String name); + /** + * Get the session name of the media session (ie in SDP). Subject from the SIP message can be retrieved using linphone_call_params_get_custom_header(). + * @return the session name + **/ + String getSessionName(); + + /** + * Gets the size of the video that is sent. + * @return The sent video size. + */ + VideoSize getSentVideoSize(); + + /** + * Gets the size of the video that is received. + * @return The received video size. + */ + VideoSize getReceivedVideoSize(); } diff --git a/java/common/org/linphone/core/LinphoneChatMessage.java b/java/common/org/linphone/core/LinphoneChatMessage.java index 8345df382..d51a19251 100644 --- a/java/common/org/linphone/core/LinphoneChatMessage.java +++ b/java/common/org/linphone/core/LinphoneChatMessage.java @@ -52,11 +52,6 @@ public interface LinphoneChatMessage { } } - long getNativePtr(); - - Object getUserData(); - - void setUserData(); /** * get text associated to this LinphoneChatMessage @@ -141,4 +136,15 @@ public interface LinphoneChatMessage { * @return the id used to id this message in the database */ int getStorageId(); + + /** + * @return the reason if response received + */ + Reason getReason(); + + /** + * Returns full error in case of failure when sending message. + * @return an ErrorInfo. + */ + ErrorInfo getErrorInfo(); } diff --git a/java/common/org/linphone/core/LinphoneChatRoom.java b/java/common/org/linphone/core/LinphoneChatRoom.java index 5c87f5647..e84538269 100644 --- a/java/common/org/linphone/core/LinphoneChatRoom.java +++ b/java/common/org/linphone/core/LinphoneChatRoom.java @@ -80,6 +80,17 @@ public interface LinphoneChatRoom { * Deletes all the messages associated with the peer of this chat room */ void deleteHistory(); + + /** + * Notify the destination of the chat message being composed that the user is typing a new message. + */ + void compose(); + + /** + * Tells whether the remote is currently composing a message. + * @return true if the remote is currently composing a message, false otherwise. + */ + boolean isRemoteComposing(); /** * Marks all the messages in this conversation as read diff --git a/java/common/org/linphone/core/LinphoneCore.java b/java/common/org/linphone/core/LinphoneCore.java index ef310bc9a..3d22e10ba 100644 --- a/java/common/org/linphone/core/LinphoneCore.java +++ b/java/common/org/linphone/core/LinphoneCore.java @@ -53,6 +53,10 @@ public interface LinphoneCore { * Shutdown */ static public GlobalState GlobalShutdown = new GlobalState(3,"GlobalShutdown"); + /** + * Configuring + */ + static public GlobalState GlobalConfiguring = new GlobalState(4,"GlobalConfiguring"); private final int mValue; private final String mStringValue; @@ -75,6 +79,46 @@ public interface LinphoneCore { return mStringValue; } } + /** + * linphone remote provisioning states + */ + static public class RemoteProvisioningState { + + static private Vector values = new Vector(); + /** + * Off + */ + static public RemoteProvisioningState ConfiguringSuccessful = new RemoteProvisioningState(0,"ConfiguringSuccessful"); + /** + * Startup + */ + static public RemoteProvisioningState ConfiguringFailed = new RemoteProvisioningState(1,"ConfiguringFailed"); + /** + * On + */ + static public RemoteProvisioningState ConfiguringSkipped = new RemoteProvisioningState(2,"ConfiguringSkipped"); + + private final int mValue; + private final String mStringValue; + + + private RemoteProvisioningState(int value,String stringValue) { + mValue = value; + values.addElement(this); + mStringValue=stringValue; + } + public static RemoteProvisioningState fromInt(int value) { + + for (int i=0; i * This default proxy must be part of the list of already entered {@link LinphoneProxyConfig}. - * Toggling it as default will make LinphoneCore use the identity associated with the proxy configuration in all incoming and outgoing calls. + * Toggling it as default will make LinphoneCore favor the identity associated with the proxy configuration in all incoming and outgoing calls. + * Better proxy configuration match may override this choice. Pass null to unset the default proxy. * @param proxyCfg */ public void setDefaultProxyConfig(LinphoneProxyConfig proxyCfg); @@ -1088,6 +1133,16 @@ public interface LinphoneCore { * @param dest a running call whose remote person will receive the transfer **/ void transferCallToAnother(LinphoneCall callToTransfer, LinphoneCall destination); + + /** + * Start a new call as a consequence of a transfer request received from a call. + * This function is for advanced usage: the execution of transfers is automatically managed by the LinphoneCore. However if an application + * wants to have control over the call parameters for the new call, it should call this function immediately during the LinphoneCallRefered notification. + * @param call a call that has just been notified about LinphoneCallRefered state event. + * @param params the call parameters to be applied to the new call. + * @return a LinphoneCall corresponding to the new call that is attempted to the transfer destination. + **/ + LinphoneCall startReferedCall(LinphoneCall call, LinphoneCallParams params); /** * Search from the list of current calls if a remote address match uri * @param uri which should match call remote uri @@ -1379,7 +1434,30 @@ public interface LinphoneCore { * @param content optional content of the subscription. * @return a LinphoneEvent representing the subscription context. */ - public LinphoneEvent subscribe(LinphoneAddress resource, String event, int expires, LinphoneContent content ); + public LinphoneEvent subscribe(LinphoneAddress resource, String event, int expires, LinphoneContent content); + + /** + * Create an outgoing subscription, specifying the destination resource, the event name, and an optional content body. + * If accepted, the subscription runs for a finite period, but is automatically renewed if not terminated before. + * Unlike linphone_core_subscribe() the subscription isn't sent immediately. It will be send when calling linphone_event_send_subscribe(). + * @param resource the destination resource + * @param event the event name + * @param expires the whished duration of the subscription + * @param body an optional body, may be NULL. + * @return a LinphoneEvent holding the context of the created subcription. + */ + public LinphoneEvent createSubscribe(LinphoneAddress resource, String event, int expires); + + /** + * Create a publish context for an event state. + * After being created, the publish must be sent using linphone_event_send_publish(). + * After expiry, the publication is refreshed unless it is terminated before. + * @param resource the resource uri for the event + * @param event the event name + * @param expires the lifetime of the publication + * @return the LinphoneEvent holding the context of the publish. + */ + public LinphoneEvent createPublish(LinphoneAddress resource, String event, int expires); /** * Publish an event. @@ -1403,4 +1481,113 @@ public interface LinphoneCore { * @return an array of LinphoneChatRoom */ public LinphoneChatRoom[] getChatRooms(); + + /** + * Gets the linphonecore supported resolutions for video + * @return an array of String + */ + public String[] getSupportedVideoSizes(); + + /** + * Migrate configuration so that all SIP transports are enabled. + * Versions of linphone < 3.7 did not support using multiple SIP transport simultaneously. + * This function helps application to migrate the configuration so that all transports are enabled. + * Existing proxy configuration are added a transport parameter so that they continue using the unique transport that was set previously. + * This function must be used just after creating the core, before any call to linphone_core_iterate() + * @returns 1 if migration was done, 0 if not done because unnecessary or already done, -1 in case of error. + */ + public int migrateToMultiTransport(); + + /** + * When receiving an incoming, accept to start a media session as early-media. + * This means the call is not accepted but audio & video streams can be established if the remote party supports early media. + * However, unlike after call acceptance, mic and camera input are not sent during early-media, though received audio & video are played normally. + * The call can then later be fully accepted using linphone_core_accept_call() or linphone_core_accept_call_with_params(). + * @param lc the linphonecore + * @param call the call + * @param params the call params, can be NULL. + * @return true if successful, false otherwise. + */ + public boolean acceptEarlyMedia(LinphoneCall call); + + /** + * Accept an early media session for an incoming call. + * This is identical as calling linphone_core_accept_early_media_with_params() with NULL call parameters. + * @see linphone_core_accept_early_media_with_params() + * @param lc the core + * @param call the incoming call + * @return true if successful, false otherwise. + */ + public boolean acceptEarlyMediaWithParams(LinphoneCall call, LinphoneCallParams params); + + /** + * Creates a proxy config using the default values if they exists + * @return a default proxy config + */ + public LinphoneProxyConfig createProxyConfig(); + + /** + * Assign an audio file to played locally upon call failure, for a given reason. + * @param reason the #LinphoneReason representing the failure error code. + * @param path a wav file to be played when such call failure happens. + */ + public void setCallErrorTone(Reason reason, String path); + + /** + * Assign an audio file to be played locally in replacement of common telephony tone. + * This is typically used to internationalize tones. + * @param id a tone id + * @param wav a path to a 16 bit PCM linear wav file. + */ + public void setTone(ToneID id, String wavfile); + + /** + * Inform the core about the maximum transmission unit of the network. + * This is used for fragmenting video RTP packets to a size compatible with the network. + * @param mtu the MTU in bytes. + */ + public void setMtu(int mtu); + /** + * Returns the mtu value previously set by setMtu(). + * + * @return the MTU in bytes. + */ + public int getMtu(); + /** + Control when media offer is sent in SIP INVITE. + * @param enable true if INVITE has to be sent whitout SDP. + * */ + public void enableSdp200Ack(boolean enable); + /** + * Media offer control param for SIP INVITE. + * @return true if INVITE has to be sent whitout SDP. + */ + public boolean isSdp200AckEnabled(); + + /** + * Inconditionnaly disable incoming chat messages. + * @param lc the core + * @param deny_reason the deny reason (using ReasonNone has no effect). + **/ + public void disableChat(Reason denycode); + + /** + * Enable reception of incoming chat messages. + * By default it is enabled but it can be disabled with linphone_core_disable_chat(). + * @param lc the core + **/ + public void enableChat(); + + + /** + * Returns whether chat is enabled. + * @return true if chat is enabled, false otherwise. + **/ + public boolean chatEnabled(); + + /** + * Whenever the liblinphone is playing a ring to advertise an incoming call or ringback of an outgoing call, this function stops the ringing. + * Typical use is to stop ringing when the user requests to ignore the call. + **/ + public void stopRinging(); } diff --git a/java/common/org/linphone/core/LinphoneCoreFactory.java b/java/common/org/linphone/core/LinphoneCoreFactory.java index 95cfdeaf0..0a6efc305 100644 --- a/java/common/org/linphone/core/LinphoneCoreFactory.java +++ b/java/common/org/linphone/core/LinphoneCoreFactory.java @@ -22,6 +22,7 @@ package org.linphone.core; + abstract public class LinphoneCoreFactory { private static String factoryName = "org.linphone.core.LinphoneCoreFactoryImpl"; @@ -65,8 +66,8 @@ abstract public class LinphoneCoreFactory { * */ abstract public LinphoneAuthInfo createAuthInfo(String username, String userid, String passwd, String ha1, String realm, String domain); - abstract public LinphoneCore createLinphoneCore(LinphoneCoreListener listener, String userConfig,String factoryConfig,Object userdata) throws LinphoneCoreException; - abstract public LinphoneCore createLinphoneCore(LinphoneCoreListener listener) throws LinphoneCoreException; + abstract public LinphoneCore createLinphoneCore(LinphoneCoreListener listener, String userConfig,String factoryConfig,Object userdata, Object context) throws LinphoneCoreException; + abstract public LinphoneCore createLinphoneCore(LinphoneCoreListener listener, Object context) throws LinphoneCoreException; /** @@ -86,7 +87,8 @@ abstract public class LinphoneCoreFactory { abstract public LinphoneAddress createLinphoneAddress(String address) throws LinphoneCoreException; abstract public LpConfig createLpConfig(String file); - abstract public LinphoneProxyConfig createProxyConfig(String identity, String proxy,String route,boolean enableRegister) throws LinphoneCoreException; + abstract public LinphoneProxyConfig createProxyConfig(String identity, String proxy,String route,boolean enableRegister) throws LinphoneCoreException; + /** * Enable verbose traces * @param enable @@ -95,12 +97,14 @@ abstract public class LinphoneCoreFactory { abstract public void setDebugMode(boolean enable, String tag); abstract public void setLogHandler(LinphoneLogHandler handler); + /** * Create a LinphoneFriend, similar to {@link #createLinphoneFriend()} + {@link LinphoneFriend#setAddress(LinphoneAddress)} * @param friendUri a buddy address, must be a sip uri like sip:joe@sip.linphone.org * @return a new LinphoneFriend with address initialized */ abstract public LinphoneFriend createLinphoneFriend(String friendUri); + /** * Create a new LinphoneFriend * @return diff --git a/java/common/org/linphone/core/LinphoneCoreListener.java b/java/common/org/linphone/core/LinphoneCoreListener.java index 60e9e3d59..bd83172a9 100644 --- a/java/common/org/linphone/core/LinphoneCoreListener.java +++ b/java/common/org/linphone/core/LinphoneCoreListener.java @@ -18,6 +18,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.linphone.core; +import org.linphone.core.LinphoneCore.RemoteProvisioningState; + /** * @@ -26,7 +28,7 @@ package org.linphone.core; public interface LinphoneCoreListener { /**< Ask the application some authentication information * @return */ - void authInfoRequested(LinphoneCore lc,String realm,String username); + void authInfoRequested(LinphoneCore lc, String realm, String username, String Domain); /** General State notification * @param state LinphoneCore.State @@ -91,6 +93,13 @@ public interface LinphoneCoreListener { */ void messageReceived(LinphoneCore lc, LinphoneChatRoom cr, LinphoneChatMessage message); + /** + * invoked when a composing notification is received + * @param lc LinphoneCore + * @param room LinphoneChatRoom involved in the conversation. + */ + void isComposingReceived(LinphoneCore lc, LinphoneChatRoom cr); + /** * invoked when a new dtmf is received * @param lc LinphoneCore @@ -156,6 +165,15 @@ public interface LinphoneCoreListener { */ void publishStateChanged(LinphoneCore lc, LinphoneEvent ev, PublishState state); + /** + * Notifies the changes about the remote provisioning step + * @param lc the LinphoneCore + * @param state the RemoteProvisioningState + * @param message the error message if state == Failed + */ + void configuringStatus(LinphoneCore lc, RemoteProvisioningState state, + String message); + /**< @Deprecated Notifies the application that it should show up * @return */ void show(LinphoneCore lc); diff --git a/java/common/org/linphone/core/LinphoneEvent.java b/java/common/org/linphone/core/LinphoneEvent.java index 865200dfd..dcdfcfc48 100644 --- a/java/common/org/linphone/core/LinphoneEvent.java +++ b/java/common/org/linphone/core/LinphoneEvent.java @@ -58,6 +58,12 @@ public interface LinphoneEvent { */ Reason getReason(); + /** + * In case of error notified, returns the full error details. + * @return an ErrorInfo. + */ + ErrorInfo getErrorInfo(); + /** * Assign an application context to the LinphoneEvent, for later use. * @param obj @@ -68,4 +74,30 @@ public interface LinphoneEvent { * @return */ Object getUserContext(); + + /** + * Add a custom header to an outgoing susbscription or publish. + * @param name header's name + * @param value the header's value. + */ + void addCustomHeader(String name, String value); + + /** + * Obtain the value of a given header for an incoming subscription. + * @param name header's name + * @return the header's value or NULL if such header doesn't exist. + */ + String getCustomHeader(String name); + + /** + * Send a subscription previously created by linphone_core_create_subscribe(). + * @param body optional content to attach with the subscription. + */ + void sendSubscribe(LinphoneContent body); + + /** + * Send a publish created by linphone_core_create_publish(). + * @param body the new data to be published + */ + void sendPublish(LinphoneContent body); } diff --git a/java/common/org/linphone/core/LinphoneProxyConfig.java b/java/common/org/linphone/core/LinphoneProxyConfig.java index 8a5da47a8..0ff1900a3 100644 --- a/java/common/org/linphone/core/LinphoneProxyConfig.java +++ b/java/common/org/linphone/core/LinphoneProxyConfig.java @@ -30,7 +30,7 @@ public interface LinphoneProxyConfig { *Because proxy configuration must be consistent, applications MUST call {@link #edit()} before doing any attempts to modify proxy configuration (such as identity, proxy address and so on). *Once the modifications are done, then the application must call {@link #done()} to commit the changes. */ - public void edit(); + public LinphoneProxyConfig edit(); /** * Commits modification made to the proxy configuration. */ @@ -65,9 +65,8 @@ public interface LinphoneProxyConfig { * Enable register for this proxy config. * Register message is issued after call to {@link #done()} * @param value - * @throws LinphoneCoreException */ - public void enableRegister(boolean value) throws LinphoneCoreException; + public LinphoneProxyConfig enableRegister(boolean value); /** * @return true if registration to the proxy is enabled. */ @@ -166,10 +165,34 @@ public interface LinphoneProxyConfig { /** - * Sets parameters for the contact - * @param parameters to add + * Set optional contact parameters that will be added to the contact information sent in the registration. + * @param contact_params a string contaning the additional parameters in text form, like "myparam=something;myparam2=something_else" + * + * The main use case for this function is provide the proxy additional information regarding the user agent, like for example unique identifier or android push id. + * As an example, the contact address in the SIP register sent will look like ;android-push-id=43143-DFE23F-2323-FA2232. + **/ + public void setContactParameters(String contact_params); + + /** + * Get the contact's parameters. + * @return */ - public void setContactParameters(String params); + public String getContactParameters(); + + /** + * Set optional contact parameters that will be added to the contact information sent in the registration, inside the URI. + * @param params a string contaning the additional parameters in text form, like "myparam=something;myparam2=something_else" + * + * The main use case for this function is provide the proxy additional information regarding the user agent, like for example unique identifier or apple push id. + * As an example, the contact address in the SIP register sent will look like . + **/ + public void setContactUriParameters(String params); + + /** + * Get the contact's uri parameters. + * @return + */ + public String getContactUriParameters(); /** * Return the international prefix for the given country @@ -188,4 +211,10 @@ public interface LinphoneProxyConfig { * @return reason code. */ public Reason getError(); + + /** + * Get full error information about last error occured on the proxy config. + * @return an ErrorInfo. + */ + public ErrorInfo getErrorInfo(); } diff --git a/java/common/org/linphone/core/PublishState.java b/java/common/org/linphone/core/PublishState.java index 7dfe86e3e..b89c831eb 100644 --- a/java/common/org/linphone/core/PublishState.java +++ b/java/common/org/linphone/core/PublishState.java @@ -19,6 +19,7 @@ public enum PublishState { Error(3), /** * Publish is about to expire. Application can trigger a refresh by calling {@link LinphoneCore.updatePublish()} + * [sip]->refresh_generic_subscribe property is set to 0. */ Expiring(4), /** diff --git a/java/common/org/linphone/core/Reason.java b/java/common/org/linphone/core/Reason.java index 8c954ab58..0d7625a36 100644 --- a/java/common/org/linphone/core/Reason.java +++ b/java/common/org/linphone/core/Reason.java @@ -48,7 +48,47 @@ public class Reason { * Operation not authorized because no credentials found * */ static public Reason Unauthorized = new Reason(10,"Unauthorized"); - + /** + * Operation was rejected by remote, for example a LinphoneCore.updateCall() + */ + static public Reason NotAcceptable = new Reason(11,"NotAcceptable"); + /** + * Operation was rejected by remote due to request unmatched to any context. + */ + static public Reason NoMatch = new Reason(12,"NoMatch"); + /** + * Resource moved permanently + */ + static public Reason MovedPermanently = new Reason(13,"MovedPermanently"); + /** + * Resource no longer exists + */ + static public Reason Gone = new Reason(14,"Gone"); + /** + * Temporarily unavailable + */ + static public Reason TemporarilyUnavailable = new Reason(15,"TemporarilyUnavailable"); + /** + * Address incomplete + */ + static public Reason AddressIncomplete = new Reason(16,"AddressIncomplete"); + /** + * Not implemented + */ + static public Reason NotImplemented = new Reason(17,"NotImplemented"); + /** + * Bad gateway + */ + static public Reason BadGateway = new Reason(18,"BadGateway"); + /** + * Server timeout + */ + static public Reason ServerTimeout = new Reason(19,"ServerTimeout"); + /** + * Unknown + */ + static public Reason Unknown = new Reason(20,"Unknown"); + protected final int mValue; private final String mStringValue; diff --git a/java/common/org/linphone/core/SubscriptionState.java b/java/common/org/linphone/core/SubscriptionState.java index a6e84ec6a..0a278556e 100644 --- a/java/common/org/linphone/core/SubscriptionState.java +++ b/java/common/org/linphone/core/SubscriptionState.java @@ -8,7 +8,7 @@ public enum SubscriptionState { /** * An outgoing subcription was created. */ - OutoingInit(1), + OutoingProgress(1), /** * An incoming subcription is received. */ @@ -28,8 +28,12 @@ public enum SubscriptionState { /** * Subscription encountered an error, indicated by { @link LinphoneEvent.getReason() } */ - Error(6); + Error(6), + /** + * Subscription is about to expire, only notified if [sip]->refresh_generic_subscribe property is set to 0 + */ + Expiring(7); protected final int mValue; private SubscriptionState(int value){ mValue=value; @@ -37,12 +41,13 @@ public enum SubscriptionState { static protected SubscriptionState fromInt(int value) throws LinphoneCoreException{ switch(value){ case 0: return None; - case 1: return OutoingInit; + case 1: return OutoingProgress; case 2: return IncomingReceived; case 3: return Pending; case 4: return Active; case 5: return Terminated; case 6: return Error; + case 7: return Expiring; default: throw new LinphoneCoreException("Unhandled enum value "+value+" for SubscriptionState"); } diff --git a/java/common/org/linphone/core/ToneID.java b/java/common/org/linphone/core/ToneID.java new file mode 100644 index 000000000..6ef8be1ab --- /dev/null +++ b/java/common/org/linphone/core/ToneID.java @@ -0,0 +1,24 @@ +package org.linphone.core; + +public enum ToneID { + Undefined(0), + Busy(1), + CallWaiting(2), + CallOnHold(3), + CallLost(4); + protected final int mValue; + private ToneID(int value){ + mValue=value; + } + static protected ToneID fromInt(int value) throws LinphoneCoreException{ + switch(value){ + case 0: return Undefined; + case 1: return Busy; + case 2: return CallWaiting; + case 3: return CallOnHold; + case 4: return CallLost; + default: + throw new LinphoneCoreException("Unhandled enum value "+value+" for LinphoneToneID"); + } + } +} diff --git a/java/common/org/linphone/core/VideoSize.java b/java/common/org/linphone/core/VideoSize.java index b9b3e0710..6bba95e74 100644 --- a/java/common/org/linphone/core/VideoSize.java +++ b/java/common/org/linphone/core/VideoSize.java @@ -78,7 +78,9 @@ public final class VideoSize { return true; } - + public String toDisplayableString() { + return width + "x" + height; + } public String toString() { return "width = "+width + " height = " + height; } diff --git a/java/impl/org/linphone/core/ErrorInfoImpl.java b/java/impl/org/linphone/core/ErrorInfoImpl.java new file mode 100644 index 000000000..e9b6bd5f3 --- /dev/null +++ b/java/impl/org/linphone/core/ErrorInfoImpl.java @@ -0,0 +1,41 @@ +package org.linphone.core; + +public class ErrorInfoImpl implements ErrorInfo { + private Reason mReason; + private int mCode; + private String mPhrase; + private String mDetails; + + private native int getReason(long nativePtr); + private native int getProtocolCode(long nativePtr); + private native String getPhrase(long nativePtr); + private native String getDetails(long nativePtr); + + public ErrorInfoImpl(long nativePtr){ + mReason=Reason.fromInt(getReason(nativePtr)); + mCode=getProtocolCode(nativePtr); + mPhrase=getPhrase(nativePtr); + mDetails=getDetails(nativePtr); + } + + @Override + public Reason getReason() { + return mReason; + } + + @Override + public int getProtocolCode() { + return mCode; + } + + @Override + public String getPhrase() { + return mPhrase; + } + + @Override + public String getDetails() { + return mDetails; + } + +} diff --git a/java/impl/org/linphone/core/LinphoneAddressImpl.java b/java/impl/org/linphone/core/LinphoneAddressImpl.java index 9eee7ff4f..2d05c720b 100644 --- a/java/impl/org/linphone/core/LinphoneAddressImpl.java +++ b/java/impl/org/linphone/core/LinphoneAddressImpl.java @@ -34,10 +34,12 @@ public class LinphoneAddressImpl implements LinphoneAddress { private native String getDisplayName(long ptr); private native String getUserName(long ptr); private native String getDomain(long ptr); + private native int getTransport(long ptr); private native String toUri(long ptr); private native void setDisplayName(long ptr,String name); private native void setDomain(long ptr,String domain); private native void setUserName(long ptr,String username); + private native void setTransport(long ptr, int transport); private native String toString(long ptr); protected LinphoneAddressImpl(String identity) throws LinphoneCoreException{ @@ -84,6 +86,9 @@ public class LinphoneAddressImpl implements LinphoneAddress { public String getUserName() { return getUserName(nativePtr); } + public TransportType getTransport() { + return TransportType.fromInt(getTransport(nativePtr)); + } public String toString() { return toString(nativePtr); @@ -121,5 +126,7 @@ public class LinphoneAddressImpl implements LinphoneAddress { public void setUserName(String username) { setUserName(nativePtr,username); } - + public void setTransport(TransportType transport) { + setTransport(nativePtr, transport.toInt()); + } } diff --git a/java/impl/org/linphone/core/LinphoneCallImpl.java b/java/impl/org/linphone/core/LinphoneCallImpl.java index af79eb725..66a9bf1d9 100644 --- a/java/impl/org/linphone/core/LinphoneCallImpl.java +++ b/java/impl/org/linphone/core/LinphoneCallImpl.java @@ -226,4 +226,14 @@ class LinphoneCallImpl implements LinphoneCall { public LinphoneCall getTransferTargetCall() { return (LinphoneCall)getTransferTargetCall(nativePtr); } + @Override + public Reason getReason() { + // TODO Auto-generated method stub + return null; + } + private native long getErrorInfo(long nativePtr); + @Override + public ErrorInfo getErrorInfo() { + return new ErrorInfoImpl(getErrorInfo(nativePtr)); + } } diff --git a/java/impl/org/linphone/core/LinphoneCallParamsImpl.java b/java/impl/org/linphone/core/LinphoneCallParamsImpl.java index aaafe9186..a3c6425b8 100644 --- a/java/impl/org/linphone/core/LinphoneCallParamsImpl.java +++ b/java/impl/org/linphone/core/LinphoneCallParamsImpl.java @@ -118,5 +118,36 @@ public class LinphoneCallParamsImpl implements LinphoneCallParams { public int getPrivacy() { return getPrivacy(nativePtr); } - + + private native void setSessionName(long nativePtr, String name); + @Override + public void setSessionName(String name) { + setSessionName(nativePtr,name); + } + + private native String getSessionName(long nativePtr); + @Override + public String getSessionName() { + return getSessionName(nativePtr); + } + + private native int[] getSentVideoSize(long nativePtr); + @Override + public VideoSize getSentVideoSize() { + int[] nativeSize = getSentVideoSize(nativePtr); + VideoSize vSize = new VideoSize(); + vSize.width = nativeSize[0]; + vSize.height = nativeSize[1]; + return vSize; + } + + private native int[] getReceivedVideoSize(long nativePtr); + @Override + public VideoSize getReceivedVideoSize() { + int[] nativeSize = getReceivedVideoSize(nativePtr); + VideoSize vSize = new VideoSize(); + vSize.width = nativeSize[0]; + vSize.height = nativeSize[1]; + return vSize; + } } diff --git a/java/impl/org/linphone/core/LinphoneChatMessageImpl.java b/java/impl/org/linphone/core/LinphoneChatMessageImpl.java index 8ce49c747..c48c8a5cc 100644 --- a/java/impl/org/linphone/core/LinphoneChatMessageImpl.java +++ b/java/impl/org/linphone/core/LinphoneChatMessageImpl.java @@ -2,7 +2,6 @@ package org.linphone.core; public class LinphoneChatMessageImpl implements LinphoneChatMessage { protected final long nativePtr; - private native void setUserData(long ptr); private native String getText(long ptr); private native long getPeerAddress(long ptr); private native String getExternalBodyUrl(long ptr); @@ -14,27 +13,16 @@ public class LinphoneChatMessageImpl implements LinphoneChatMessage { private native boolean isOutgoing(long ptr); private native void store(long ptr); private native int getStorageId(long ptr); + private native void unref(long ptr); protected LinphoneChatMessageImpl(long aNativePtr) { nativePtr = aNativePtr; - setUserData(); } public long getNativePtr() { return nativePtr; } - @Override - public Object getUserData() { - // TODO Auto-generated method stub - return null; - } - - @Override - public void setUserData() { - setUserData(nativePtr); - } - @Override public String getText() { return getText(nativePtr); @@ -94,4 +82,18 @@ public class LinphoneChatMessageImpl implements LinphoneChatMessage { public int getStorageId() { return getStorageId(nativePtr); } + + private native int getReason(long ptr); + + public Reason getReason() { + return Reason.fromInt(getReason(nativePtr)); + } + private native long getErrorInfo(long nativePtr); + @Override + public ErrorInfo getErrorInfo() { + return new ErrorInfoImpl(getErrorInfo(nativePtr)); + } + protected void finalize(){ + unref(nativePtr); + } } diff --git a/java/impl/org/linphone/core/LinphoneChatRoomImpl.java b/java/impl/org/linphone/core/LinphoneChatRoomImpl.java index 7f4d684ee..7901272c9 100644 --- a/java/impl/org/linphone/core/LinphoneChatRoomImpl.java +++ b/java/impl/org/linphone/core/LinphoneChatRoomImpl.java @@ -26,11 +26,13 @@ class LinphoneChatRoomImpl implements LinphoneChatRoom { private native long createLinphoneChatMessage(long ptr, String message); private native long getPeerAddress(long ptr); private native void sendMessage(long ptr, String message); - private native void sendMessage2(long ptr, long message, StateListener listener); + private native void sendMessage2(long ptr, Object msg, long messagePtr, StateListener listener); private native long[] getHistory(long ptr, int limit); private native void destroy(long ptr); private native int getUnreadMessagesCount(long ptr); private native void deleteHistory(long ptr); + private native void compose(long ptr); + private native boolean isRemoteComposing(long ptr); private native void markAsRead(long ptr); private native void deleteMessage(long room, long message); private native void updateUrl(long room, long message); @@ -52,7 +54,7 @@ class LinphoneChatRoomImpl implements LinphoneChatRoom { @Override public void sendMessage(LinphoneChatMessage message, StateListener listener) { - sendMessage2(nativePtr, message.getNativePtr(), listener); + sendMessage2(nativePtr, message, ((LinphoneChatMessageImpl)message).getNativePtr(), listener); } @Override @@ -87,6 +89,14 @@ class LinphoneChatRoomImpl implements LinphoneChatRoom { public void deleteHistory() { deleteHistory(nativePtr); } + + public void compose() { + compose(nativePtr); + } + + public boolean isRemoteComposing() { + return isRemoteComposing(nativePtr); + } public void markAsRead() { markAsRead(nativePtr); @@ -94,12 +104,12 @@ class LinphoneChatRoomImpl implements LinphoneChatRoom { public void deleteMessage(LinphoneChatMessage message) { if (message != null) - deleteMessage(nativePtr, message.getNativePtr()); + deleteMessage(nativePtr, ((LinphoneChatMessageImpl)message).getNativePtr()); } public void updateUrl(LinphoneChatMessage message) { if (message != null) - updateUrl(nativePtr, message.getNativePtr()); + updateUrl(nativePtr, ((LinphoneChatMessageImpl)message).getNativePtr()); } @Override diff --git a/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java b/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java index e526b47b5..85bff8ffa 100644 --- a/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java +++ b/java/impl/org/linphone/core/LinphoneCoreFactoryImpl.java @@ -21,6 +21,7 @@ package org.linphone.core; import java.io.File; import java.io.IOException; +import org.linphone.mediastream.MediastreamerAndroidContext; import org.linphone.mediastream.Version; import android.util.Log; @@ -56,15 +57,6 @@ public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory { loadOptionalLibrary("avcodec-linphone-arm"); } - // OPENSSL (cryptography) - // linphone suffix avoids collision with libs in /system/lib - loadOptionalLibrary("crypto-linphone-" + eabi); - loadOptionalLibrary("ssl-linphone-" + eabi); - - // Secure RTP and key negotiation - loadOptionalLibrary("srtp-" + eabi); - loadOptionalLibrary("zrtpcpp-" + eabi); // GPLv3+ - //Main library System.loadLibrary("linphone-" + eabi); @@ -94,9 +86,10 @@ public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory { @Override public LinphoneCore createLinphoneCore(LinphoneCoreListener listener, - String userConfig, String factoryConfig, Object userdata) + String userConfig, String factoryConfig, Object userdata, Object context) throws LinphoneCoreException { try { + MediastreamerAndroidContext.setContext(context); File user = userConfig == null ? null : new File(userConfig); File factory = factoryConfig == null ? null : new File(factoryConfig); return new LinphoneCoreImpl(listener, user, factory, userdata); @@ -106,8 +99,9 @@ public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory { } @Override - public LinphoneCore createLinphoneCore(LinphoneCoreListener listener) throws LinphoneCoreException { + public LinphoneCore createLinphoneCore(LinphoneCoreListener listener, Object context) throws LinphoneCoreException { try { + MediastreamerAndroidContext.setContext(context); return new LinphoneCoreImpl(listener); } catch (IOException e) { throw new LinphoneCoreException("Cannot create LinphoneCore",e); diff --git a/java/impl/org/linphone/core/LinphoneCoreImpl.java b/java/impl/org/linphone/core/LinphoneCoreImpl.java index 420547e57..66597ca81 100644 --- a/java/impl/org/linphone/core/LinphoneCoreImpl.java +++ b/java/impl/org/linphone/core/LinphoneCoreImpl.java @@ -144,6 +144,12 @@ class LinphoneCoreImpl implements LinphoneCore { private native String getPrimaryContactDisplayName(long nativePtr); private native void setChatDatabasePath(long nativePtr, String path); private native long[] getChatRooms(long nativePtr); + private native int migrateToMultiTransport(long nativePtr); + private native long createProxyConfig(long nativePtr); + private native void setCallErrorTone(long nativePtr, int reason, String path); + private native void enableSdp200Ack(long nativePtr,boolean enable); + private native boolean isSdp200AckEnabled(long nativePtr); + private native void stopRinging(long nativePtr); LinphoneCoreImpl(LinphoneCoreListener listener, File userConfig, File factoryConfig, Object userdata) throws IOException { mListener = listener; @@ -186,7 +192,7 @@ class LinphoneCoreImpl implements LinphoneCore { isValid(); long lNativePtr = getDefaultProxyConfig(nativePtr); if (lNativePtr!=0) { - return new LinphoneProxyConfigImpl(lNativePtr); + return new LinphoneProxyConfigImpl(this,lNativePtr); } else { return null; } @@ -204,17 +210,20 @@ class LinphoneCoreImpl implements LinphoneCore { public synchronized void setDefaultProxyConfig(LinphoneProxyConfig proxyCfg) { isValid(); - setDefaultProxyConfig(nativePtr,((LinphoneProxyConfigImpl)proxyCfg).nativePtr); + long proxyPtr=proxyCfg != null ? ((LinphoneProxyConfigImpl)proxyCfg).nativePtr : 0; + setDefaultProxyConfig(nativePtr, proxyPtr); } public synchronized void addProxyConfig(LinphoneProxyConfig proxyCfg) throws LinphoneCoreException{ isValid(); if (addProxyConfig(proxyCfg,nativePtr,((LinphoneProxyConfigImpl)proxyCfg).nativePtr) !=0) { throw new LinphoneCoreException("bad proxy config"); } + ((LinphoneProxyConfigImpl)proxyCfg).mCore=this; } public synchronized void removeProxyConfig(LinphoneProxyConfig proxyCfg) { isValid(); removeProxyConfig(nativePtr, ((LinphoneProxyConfigImpl)proxyCfg).nativePtr); + ((LinphoneProxyConfigImpl)proxyCfg).mCore=null; } public synchronized void clearAuthInfos() { isValid(); @@ -396,10 +405,12 @@ class LinphoneCoreImpl implements LinphoneCore { addFriend(nativePtr,((LinphoneFriendImpl)lf).nativePtr); } + @SuppressWarnings("deprecation") public synchronized void setPresenceInfo(int minutes_away, String alternative_contact, OnlineStatus status) { setPresenceInfo(nativePtr,minutes_away,alternative_contact,status.mValue); } + @SuppressWarnings("deprecation") public synchronized OnlineStatus getPresenceInfo() { return OnlineStatus.fromInt(getPresenceInfo(nativePtr)); } @@ -508,7 +519,7 @@ class LinphoneCoreImpl implements LinphoneCore { LinphoneProxyConfig[] proxies = new LinphoneProxyConfig[typesPtr.length]; for (int i=0; i < proxies.length; i++) { - proxies[i] = new LinphoneProxyConfigImpl(typesPtr[i]); + proxies[i] = new LinphoneProxyConfigImpl(this,typesPtr[i]); } return proxies; @@ -958,79 +969,79 @@ class LinphoneCoreImpl implements LinphoneCore { } private native boolean upnpAvailable(long ptr); - public boolean upnpAvailable() { + public synchronized boolean upnpAvailable() { return upnpAvailable(nativePtr); } private native int getUpnpState(long ptr); - public UpnpState getUpnpState() { + public synchronized UpnpState getUpnpState() { return UpnpState.fromInt(getUpnpState(nativePtr)); } private native String getUpnpExternalIpaddress(long ptr); - public String getUpnpExternalIpaddress() { + public synchronized String getUpnpExternalIpaddress() { return getUpnpExternalIpaddress(nativePtr); } private native int startConferenceRecording(long nativePtr, String path); @Override - public void startConferenceRecording(String path) { + public synchronized void startConferenceRecording(String path) { startConferenceRecording(nativePtr,path); } private native int stopConferenceRecording(long nativePtr); @Override - public void stopConferenceRecording() { + public synchronized void stopConferenceRecording() { stopConferenceRecording(nativePtr); } @Override - public PayloadType findPayloadType(String mime) { + public synchronized PayloadType findPayloadType(String mime) { return findPayloadType(mime, FIND_PAYLOAD_IGNORE_RATE); } private native void setSipDscp(long nativePtr, int dscp); @Override - public void setSipDscp(int dscp) { + public synchronized void setSipDscp(int dscp) { setSipDscp(nativePtr,dscp); } private native int getSipDscp(long nativePtr); @Override - public int getSipDscp() { + public synchronized int getSipDscp() { return getSipDscp(nativePtr); } private native void setAudioDscp(long nativePtr, int dscp); @Override - public void setAudioDscp(int dscp) { + public synchronized void setAudioDscp(int dscp) { setAudioDscp(nativePtr, dscp); } private native int getAudioDscp(long nativePtr); @Override - public int getAudioDscp() { + public synchronized int getAudioDscp() { return getAudioDscp(nativePtr); } private native void setVideoDscp(long nativePtr, int dscp); @Override - public void setVideoDscp(int dscp) { + public synchronized void setVideoDscp(int dscp) { setVideoDscp(nativePtr,dscp); } private native int getVideoDscp(long nativePtr); @Override - public int getVideoDscp() { + public synchronized int getVideoDscp() { return getVideoDscp(nativePtr); } private native long createInfoMessage(long nativeptr); @Override - public LinphoneInfoMessage createInfoMessage() { + public synchronized LinphoneInfoMessage createInfoMessage() { return new LinphoneInfoMessageImpl(createInfoMessage(nativePtr)); } private native Object subscribe(long coreptr, long addrptr, String eventname, int expires, String type, String subtype, byte data [], String encoding); @Override - public LinphoneEvent subscribe(LinphoneAddress resource, String eventname, + public synchronized LinphoneEvent subscribe(LinphoneAddress resource, String eventname, int expires, LinphoneContent content) { return (LinphoneEvent)subscribe(nativePtr, ((LinphoneAddressImpl)resource).nativePtr, eventname, expires, content!=null ? content.getType() : null, content!=null ? content.getSubtype() : null, content!=null ? content.getData() : null, @@ -1038,14 +1049,27 @@ class LinphoneCoreImpl implements LinphoneCore { } private native Object publish(long coreptr, long addrptr, String eventname, int expires, String type, String subtype, byte data [], String encoding); @Override - public LinphoneEvent publish(LinphoneAddress resource, String eventname, + public synchronized LinphoneEvent publish(LinphoneAddress resource, String eventname, int expires, LinphoneContent content) { return (LinphoneEvent)publish(nativePtr, ((LinphoneAddressImpl)resource).nativePtr, eventname, expires, content!=null ? content.getType() : null, content!=null ? content.getSubtype() : null, content!=null ? content.getData() : null, content!=null ? content.getEncoding() : null); } + + private native Object createSubscribe(long core, long addr, String event, int expires); + @Override + public synchronized LinphoneEvent createSubscribe(LinphoneAddress resource, + String event, int expires) { + return (LinphoneEvent)createSubscribe(nativePtr, ((LinphoneAddressImpl)resource).nativePtr, event, expires); + } + private native Object createPublish(long core, long addr, String event, int expires); + @Override + public synchronized LinphoneEvent createPublish(LinphoneAddress resource, + String event, int expires) { + return (LinphoneEvent)createPublish(nativePtr, ((LinphoneAddressImpl)resource).nativePtr, event, expires); + } - public void setChatDatabasePath(String path) { + public synchronized void setChatDatabasePath(String path) { setChatDatabasePath(nativePtr, path); } @@ -1061,7 +1085,7 @@ class LinphoneCoreImpl implements LinphoneCore { return proxies; } - public LinphoneAuthInfo[] getAuthInfosList() { + public synchronized LinphoneAuthInfo[] getAuthInfosList() { long[] typesPtr = getAuthInfosList(nativePtr); if (typesPtr == null) return null; @@ -1074,11 +1098,95 @@ class LinphoneCoreImpl implements LinphoneCore { return authInfos; } - public LinphoneAuthInfo findAuthInfo(String username, String realm, String domain) { + public synchronized LinphoneAuthInfo findAuthInfo(String username, String realm, String domain) { long ptr = findAuthInfos(nativePtr, username, realm, domain); if (ptr == 0) return null; return new LinphoneAuthInfoImpl(ptr); } + private native LinphoneCall startReferedCall(long corePtr, long callptr, long paramsPtr); + @Override + public synchronized LinphoneCall startReferedCall(LinphoneCall call, + LinphoneCallParams params) { + long ptrParams =((LinphoneCallParamsImpl)params).nativePtr; + return startReferedCall(nativePtr, getCallPtr(call), ptrParams); + } + + private native String[] listSupportedVideoResolutions(long ptr); + @Override + public synchronized String[] getSupportedVideoSizes() { + return listSupportedVideoResolutions(nativePtr); + } + + @Override + public synchronized int migrateToMultiTransport() { + return migrateToMultiTransport(nativePtr); + } + + private native boolean acceptEarlyMedia(long lc, long call); + @Override + public synchronized boolean acceptEarlyMedia(LinphoneCall call) { + return acceptEarlyMedia(nativePtr, getCallPtr(call)); + } + + private native boolean acceptEarlyMediaWithParams(long lc, long call, long params); + @Override + public synchronized boolean acceptEarlyMediaWithParams(LinphoneCall call, + LinphoneCallParams params) { + long ptrParams = params != null ? ((LinphoneCallParamsImpl) params).nativePtr : 0; + return acceptEarlyMediaWithParams(nativePtr, getCallPtr(call), ptrParams); + } + @Override + public synchronized LinphoneProxyConfig createProxyConfig() { + return new LinphoneProxyConfigImpl(this,createProxyConfig(nativePtr)); + } + @Override + public synchronized void setCallErrorTone(Reason reason, String path) { + setCallErrorTone(nativePtr, reason.mValue, path); + } + private native void setMtu(long nativePtr, int mtu); + @Override + public synchronized void setMtu(int mtu) { + setMtu(nativePtr,mtu); + } + private native int getMtu(long nativePtr); + @Override + public synchronized int getMtu() { + return getMtu(nativePtr); + } + @Override + public synchronized void enableSdp200Ack(boolean enable) { + enableSdp200Ack(nativePtr,enable); + } + @Override + public synchronized boolean isSdp200AckEnabled() { + return isSdp200AckEnabled(nativePtr); + } + private native void setTone(long nativePtr, int id, String wavfile); + @Override + public synchronized void setTone(ToneID id, String wavfile) { + setTone(nativePtr, id.mValue, wavfile); + } + private native void disableChat(long ptr, int denycode); + @Override + public synchronized void disableChat(Reason denycode) { + disableChat(nativePtr,denycode.mValue); + } + private native void enableChat(long ptr); + @Override + public synchronized void enableChat() { + enableChat(nativePtr); + } + private native boolean chatEnabled(long ptr); + @Override + public synchronized boolean chatEnabled() { + return chatEnabled(nativePtr); + } + + @Override + public void stopRinging() { + stopRinging(nativePtr); + } + } diff --git a/java/impl/org/linphone/core/LinphoneEventImpl.java b/java/impl/org/linphone/core/LinphoneEventImpl.java index 9890f7cdf..2b4c1a71b 100644 --- a/java/impl/org/linphone/core/LinphoneEventImpl.java +++ b/java/impl/org/linphone/core/LinphoneEventImpl.java @@ -1,5 +1,6 @@ package org.linphone.core; + public class LinphoneEventImpl implements LinphoneEvent { private Object mUserContext; private long mNativePtr; @@ -88,4 +89,39 @@ public class LinphoneEventImpl implements LinphoneEvent { unref(mNativePtr); } + private native void addCustomHeader(long ptr, String name, String value); + @Override + public void addCustomHeader(String name, String value) { + addCustomHeader(mNativePtr, name, value); + } + + private native String getCustomHeader(long ptr, String name); + @Override + public String getCustomHeader(String name) { + return getCustomHeader(mNativePtr, name); + } + + private native void sendSubscribe(long ptr, String type, String subtype, byte data [], String encoding); + @Override + public void sendSubscribe(LinphoneContent body) { + if (body != null) + sendSubscribe(mNativePtr, body.getType(), body.getSubtype(), body.getData(), body.getEncoding()); + else + sendSubscribe(mNativePtr, null, null, null, null); + } + + private native void sendPublish(long ptr, String type, String subtype, byte data [], String encoding); + @Override + public void sendPublish(LinphoneContent body) { + if (body != null) + sendPublish(mNativePtr, body.getType(), body.getSubtype(), body.getData(), body.getEncoding()); + else + sendPublish(mNativePtr, null, null, null, null); + } + private native long getErrorInfo(long nativePtr); + @Override + public ErrorInfo getErrorInfo() { + return new ErrorInfoImpl(getErrorInfo(mNativePtr)); + } + } diff --git a/java/impl/org/linphone/core/LinphoneFriendImpl.java b/java/impl/org/linphone/core/LinphoneFriendImpl.java index 843170ce2..986f0a6b7 100644 --- a/java/impl/org/linphone/core/LinphoneFriendImpl.java +++ b/java/impl/org/linphone/core/LinphoneFriendImpl.java @@ -34,8 +34,9 @@ class LinphoneFriendImpl implements LinphoneFriend, Serializable { private native void setPresenceModel(long nativePtr, long presencePtr); private native void edit(long nativePtr); private native void done(long nativePtr); - private native void delete(long ptr); + private native Object getCore(long ptr); + boolean ownPtr = false; protected LinphoneFriendImpl() { nativePtr = newLinphoneFriend(null); @@ -57,13 +58,17 @@ class LinphoneFriendImpl implements LinphoneFriend, Serializable { return new LinphoneAddressImpl(getAddress(nativePtr),LinphoneAddressImpl.WrapMode.FromConst); } public void setIncSubscribePolicy(SubscribePolicy policy) { - setIncSubscribePolicy(nativePtr,policy.mValue); + synchronized(getSyncObject()){ + setIncSubscribePolicy(nativePtr,policy.mValue); + } } public SubscribePolicy getIncSubscribePolicy() { return SubscribePolicy.fromInt(getIncSubscribePolicy(nativePtr)) ; } public void enableSubscribes(boolean enable) { - enableSubscribes(nativePtr, enable); + synchronized(getSyncObject()){ + enableSubscribes(nativePtr, enable); + } } public boolean isSubscribesEnabled() { return isSubscribesEnabled(nativePtr); @@ -75,12 +80,27 @@ class LinphoneFriendImpl implements LinphoneFriend, Serializable { return (PresenceModel)getPresenceModel(nativePtr); } public void edit() { - edit(nativePtr); + synchronized(getSyncObject()){ + edit(nativePtr); + } } public void done() { - done(nativePtr); + synchronized(getSyncObject()){ + done(nativePtr); + } } public long getNativePtr() { return nativePtr; } + + /* + * Returns a java object to synchronize this friend with. + * Indeed some operation must be synchronized with the LinphoneCore object. + * If the friend is not associated with a LinphoneCore object, it returns itself in order to avoid writing code for case where no synchronization is necessary. + */ + private Object getSyncObject(){ + Object core=getCore(nativePtr); + if (core!=null) return core; + else return this; + } } diff --git a/java/impl/org/linphone/core/LinphoneProxyConfigImpl.java b/java/impl/org/linphone/core/LinphoneProxyConfigImpl.java index dfa9c5170..a78819075 100644 --- a/java/impl/org/linphone/core/LinphoneProxyConfigImpl.java +++ b/java/impl/org/linphone/core/LinphoneProxyConfigImpl.java @@ -27,6 +27,7 @@ import org.linphone.core.LinphoneCore.RegistrationState; class LinphoneProxyConfigImpl implements LinphoneProxyConfig { protected final long nativePtr; + protected LinphoneCoreImpl mCore; private native int getState(long nativePtr); private native void setExpires(long nativePtr, int delay); @@ -41,9 +42,10 @@ class LinphoneProxyConfigImpl implements LinphoneProxyConfig { enableRegister(enableRegister); ownPtr=true; } - protected LinphoneProxyConfigImpl(long aNativePtr) { + protected LinphoneProxyConfigImpl(LinphoneCoreImpl core, long aNativePtr) { nativePtr = aNativePtr; ownPtr=false; + mCore=core; } protected void finalize() throws Throwable { //Log.e(LinphoneService.TAG,"fixme, should release underlying proxy config"); @@ -84,16 +86,24 @@ class LinphoneProxyConfigImpl implements LinphoneProxyConfig { private native int lookupCCCFromIso(long nativePtr, String iso); private native int lookupCCCFromE164(long nativePtr, String e164); - public void enableRegister(boolean value) { + public LinphoneProxyConfig enableRegister(boolean value) { enableRegister(nativePtr,value); + return this; } public void done() { - done(nativePtr); + Object mutex=mCore!=null ? mCore : this; + synchronized(mutex){ + done(nativePtr); + } } - public void edit() { - edit(nativePtr); + public LinphoneProxyConfig edit() { + Object mutex=mCore!=null ? mCore : this; + synchronized(mutex){ + edit(nativePtr); + } + return this; } public void setIdentity(String identity) throws LinphoneCoreException { @@ -171,10 +181,10 @@ class LinphoneProxyConfigImpl implements LinphoneProxyConfig { public int lookupCCCFromE164(String e164) { return lookupCCCFromE164(nativePtr, e164); } - private native int getReason(long nativeptr); + private native int getError(long nativeptr); @Override public Reason getError() { - return Reason.fromInt(getReason(nativePtr)); + return Reason.fromInt(getError(nativePtr)); } private native void setPrivacy(long nativePtr, int mask); @Override @@ -187,4 +197,27 @@ class LinphoneProxyConfigImpl implements LinphoneProxyConfig { public int getPrivacy() { return getPrivacy(nativePtr); } + + private native String getContactParameters(long ptr); + @Override + public String getContactParameters() { + return getContactParameters(nativePtr); + } + + private native void setContactUriParameters(long ptr, String params); + @Override + public void setContactUriParameters(String params) { + setContactUriParameters(nativePtr,params); + } + + private native String getContactUriParameters(long ptr); + @Override + public String getContactUriParameters() { + return getContactUriParameters(nativePtr); + } + private native long getErrorInfo(long nativePtr); + @Override + public ErrorInfo getErrorInfo() { + return new ErrorInfoImpl(getErrorInfo(nativePtr)); + } } diff --git a/linphone-deps.filelist b/linphone-deps.filelist index 53bab22af..53cde44a9 100755 --- a/linphone-deps.filelist +++ b/linphone-deps.filelist @@ -2,8 +2,6 @@ ./bin/libspeex-1.dll ./bin/libspeexdsp-1.dll ./bin/avutil-51.dll -./bin/libeay32.dll -./bin/ssleay32.dll ./bin/libbellesip-0.dll ./bin/libantlr3c.dll ./lib/libpolarssl.dll @@ -17,5 +15,5 @@ ./bin/libgnutls-26.dll ./bin/libtasn1-3.dll ./bin/libsqlite3-0.dll -./bin/libzrtpcpp.dll ./bin/libopus-0.dll +./bin/libbzrtp-0.dll diff --git a/linphone.spec.in b/linphone.spec.in index e8e7b68a6..eb8c65b51 100644 --- a/linphone.spec.in +++ b/linphone.spec.in @@ -53,7 +53,7 @@ Libraries and headers required to develop software with linphone. %if !%{video} --disable-video \ %endif - --disable-tests --docdir=%{_docdir} --enable-ipv6 --enable-static --enable-external-mediastreamer --enable-external-ortp + --disable-tests --docdir=%{_docdir} --enable-ipv6 --enable-static --enable-external-mediastreamer --enable-external-ortp --enable-ldap %__make %{?_smp_mflags} @@ -85,6 +85,7 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/*.so.* %{_mandir}/* %{_datadir}/applications/%{name}.desktop +%{_datadir}/applications/audio-assistant.desktop %{_datadir}/pixmaps/linphone %{_datadir}/linphone %{_datadir}/pixmaps/linphone.png diff --git a/mediastreamer2 b/mediastreamer2 index 6920f363d..a66959cdc 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 6920f363d8f6db7c98f6dc471a045f43e4f26200 +Subproject commit a66959cdc9ffa2eb2736c465dfe942ce8a74dbda diff --git a/oRTP b/oRTP index fcc51caa1..c09e63ddb 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit fcc51caa15def815189a388e878877a5354850e6 +Subproject commit c09e63ddba599a7f7da149edf6f7b290f4cfa787 diff --git a/pixmaps/Makefile.am b/pixmaps/Makefile.am index 2386d68cf..5e9b7a177 100644 --- a/pixmaps/Makefile.am +++ b/pixmaps/Makefile.am @@ -11,7 +11,7 @@ status-orange.png \ status-red.png \ status-offline.png \ call.png \ -chat.png active_chat.png\ +chat.png active_chat.png composing_chat.png composing_active_chat.png\ chat_message_inprogress.png chat_message_delivered.png chat_message_not_delivered.png\ contact-orange.png dialer-orange.png history-orange.png\ startcall-green.png startcall-small.png stopcall-red.png stopcall-small.png addcall-green.png linphone.icns \ diff --git a/pixmaps/active_chat.png b/pixmaps/active_chat.png index d82b7c595..ef3cedd1d 100644 Binary files a/pixmaps/active_chat.png and b/pixmaps/active_chat.png differ diff --git a/pixmaps/composing_active_chat.png b/pixmaps/composing_active_chat.png new file mode 100644 index 000000000..77da9e37f Binary files /dev/null and b/pixmaps/composing_active_chat.png differ diff --git a/pixmaps/composing_chat.png b/pixmaps/composing_chat.png new file mode 100644 index 000000000..2d329ed21 Binary files /dev/null and b/pixmaps/composing_chat.png differ diff --git a/po/POTFILES.in b/po/POTFILES.in index 8f1c5d3a6..5d2aabf39 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -12,6 +12,8 @@ gtk/buddylookup.c gtk/setupwizard.c gtk/incall_view.c gtk/loginframe.c +gtk/config-fetching.c +gtk/audio_assistant.c [type: gettext/glade]gtk/main.ui [type: gettext/glade]gtk/about.ui [type: gettext/glade]gtk/contact.ui @@ -27,6 +29,9 @@ gtk/loginframe.c [type: gettext/glade]gtk/call_statistics.ui [type: gettext/glade]gtk/tunnel_config.ui [type: gettext/glade]gtk/keypad.ui +[type: gettext/glade]gtk/ldap.ui +[type: gettext/glade]gtk/config-uri.ui +[type: gettext/glade]gtk/provisioning-fetch.ui coreapi/linphonecore.c coreapi/misc.c coreapi/presence.c diff --git a/po/cs.po b/po/cs.po index 4c1cb6503..bfbfe77b8 100644 --- a/po/cs.po +++ b/po/cs.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-3.5.99.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"POT-Creation-Date: 2014-02-14 14:57+0100\n" "PO-Revision-Date: 2013-05-01 09:55+0200\n" "Last-Translator: Petr Pisar \n" "Language-Team: Czech \n" @@ -28,12 +28,12 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:969 #, c-format msgid "Call %s" msgstr "Volat komu: %s" -#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:970 #, c-format msgid "Send text to %s" msgstr "Poslat text komu: %s" @@ -111,35 +111,35 @@ msgstr "Já" msgid "Couldn't find pixmap file: %s" msgstr "Nelze najít soubor s obrázkem: %s" -#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:363 ../gtk/friendlist.c:919 msgid "Invalid sip contact !" msgstr "Neplatný sipový kontakt!" -#: ../gtk/main.c:92 +#: ../gtk/main.c:102 msgid "log to stdout some debug information while running." msgstr "Za běhu vypisuje některé ladicí informace na standardní výstup." -#: ../gtk/main.c:99 +#: ../gtk/main.c:109 msgid "path to a file to write logs into." msgstr "Soubor, kam zapisovat protokol." -#: ../gtk/main.c:106 +#: ../gtk/main.c:116 msgid "Start linphone with video disabled." msgstr "Spustí linphone se zakázaným obrazem." -#: ../gtk/main.c:113 +#: ../gtk/main.c:123 msgid "Start only in the system tray, do not show the main interface." msgstr "Spustí se pouze do systémové oblasti, nezobrazí hlavní okno." -#: ../gtk/main.c:120 +#: ../gtk/main.c:130 msgid "address to call right now" msgstr "Zavolá právě teď na tuto adresu" -#: ../gtk/main.c:127 +#: ../gtk/main.c:137 msgid "if set automatically answer incoming calls" msgstr "je-li nastaveno, automaticky zvedne příchozí hovor" -#: ../gtk/main.c:134 +#: ../gtk/main.c:144 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -147,12 +147,17 @@ msgstr "" "Zadejte pracovní adresář (měl by být základní instalační adresář, například " "c:\\Program Files\\Linphone)" -#: ../gtk/main.c:515 +#: ../gtk/main.c:151 +#, fuzzy +msgid "Configuration file" +msgstr "Potvrzení" + +#: ../gtk/main.c:573 #, c-format msgid "Call with %s" msgstr "Hovor s %s" -#: ../gtk/main.c:946 +#: ../gtk/main.c:1150 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -165,68 +170,68 @@ msgstr "" "do svého adresáře?\n" "Odpovíte-li ne, tato osobo bude dočasně blokována." -#: ../gtk/main.c:1023 -#, c-format +#: ../gtk/main.c:1227 +#, fuzzy, c-format msgid "" "Please enter your password for username %s\n" -" at domain %s:" +" at realm %s:" msgstr "" "Prosím, zadejte heslo pro uživatele %s\n" "v doméně %s:" -#: ../gtk/main.c:1126 +#: ../gtk/main.c:1339 msgid "Call error" msgstr "Chyba hovoru" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1342 ../coreapi/linphonecore.c:3408 msgid "Call ended" msgstr "Hovor ukončen" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1345 ../coreapi/linphonecore.c:250 msgid "Incoming call" msgstr "Příchozí hovor" -#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 +#: ../gtk/main.c:1347 ../gtk/incall_view.c:508 ../gtk/main.ui.h:5 msgid "Answer" msgstr "Odpovědět" -#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1349 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Odmítnout" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 msgid "Call paused" msgstr "Hovor odložen" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, c-format msgid "by %s" msgstr "kým: %s" -#: ../gtk/main.c:1191 +#: ../gtk/main.c:1422 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s navrhuje začít videohovor. Přijímáte?" -#: ../gtk/main.c:1353 +#: ../gtk/main.c:1584 msgid "Website link" msgstr "Odkaz na webovou stránku" -#: ../gtk/main.c:1402 +#: ../gtk/main.c:1633 msgid "Linphone - a video internet phone" msgstr "Lipnhone – internetový videofon" -#: ../gtk/main.c:1494 +#: ../gtk/main.c:1725 #, c-format msgid "%s (Default)" msgstr "%s (Výchozí)" -#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 +#: ../gtk/main.c:2061 ../coreapi/callbacks.c:827 #, c-format msgid "We are transferred to %s" msgstr "Byly jsme přepojeni na %s" -#: ../gtk/main.c:1806 +#: ../gtk/main.c:2071 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -234,170 +239,171 @@ msgstr "" "Na tomto počítači nebyla objevena žádná zvuková karta.\n" "Nebudete moci vytáčet a přijímat a zvukové hovory." -#: ../gtk/main.c:1911 +#: ../gtk/main.c:2207 msgid "A free SIP video-phone" msgstr "Volný SIP videofon" -#: ../gtk/friendlist.c:469 +#: ../gtk/friendlist.c:505 msgid "Add to addressbook" msgstr "Přidat do adresáře" -#: ../gtk/friendlist.c:643 +#: ../gtk/friendlist.c:691 msgid "Presence status" msgstr "Stav" -#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:709 ../gtk/propertybox.c:556 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Jméno" -#: ../gtk/friendlist.c:673 +#: ../gtk/friendlist.c:721 msgid "Call" msgstr "Zavolat" -#: ../gtk/friendlist.c:678 +#: ../gtk/friendlist.c:726 msgid "Chat" msgstr "Diskuze" -#: ../gtk/friendlist.c:708 +#: ../gtk/friendlist.c:756 #, c-format msgid "Search in %s directory" msgstr "Hledat v adresáři %s" -#: ../gtk/friendlist.c:924 +#: ../gtk/friendlist.c:971 #, c-format msgid "Edit contact '%s'" msgstr "Upravit kontakt „%s“" -#: ../gtk/friendlist.c:925 +#: ../gtk/friendlist.c:972 #, c-format msgid "Delete contact '%s'" msgstr "Odstranit kontakt „%s“" -#: ../gtk/friendlist.c:926 +#: ../gtk/friendlist.c:973 #, c-format msgid "Delete chat history of '%s'" msgstr "Odstranit historii diskuze u kontaktu „%s“" -#: ../gtk/friendlist.c:977 +#: ../gtk/friendlist.c:1024 #, c-format msgid "Add new contact from %s directory" msgstr "Přidat nový kontakt z adresáře %s" -#: ../gtk/propertybox.c:373 +#: ../gtk/propertybox.c:562 msgid "Rate (Hz)" msgstr "Kmitočet (Hz)" -#: ../gtk/propertybox.c:379 +#: ../gtk/propertybox.c:568 msgid "Status" msgstr "Stav" -#: ../gtk/propertybox.c:385 -msgid "Min bitrate (kbit/s)" +#: ../gtk/propertybox.c:574 +#, fuzzy +msgid "Bitrate (kbit/s)" msgstr "Min. rychlost (kb/s)" -#: ../gtk/propertybox.c:392 +#: ../gtk/propertybox.c:581 msgid "Parameters" msgstr "Parametry" -#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:624 ../gtk/propertybox.c:767 msgid "Enabled" msgstr "Povoleno" -#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:626 ../gtk/propertybox.c:767 msgid "Disabled" msgstr "Zakázáno" -#: ../gtk/propertybox.c:624 +#: ../gtk/propertybox.c:813 msgid "Account" msgstr "Účet" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:1057 msgid "English" msgstr "angličtina" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:1058 msgid "French" msgstr "francouzština" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:1059 msgid "Swedish" msgstr "švédština" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:1060 msgid "Italian" msgstr "italština" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:1061 msgid "Spanish" msgstr "španělština" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:1062 msgid "Brazilian Portugese" msgstr "brazilská portugalština" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:1063 msgid "Polish" msgstr "polština" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:1064 msgid "German" msgstr "němčina" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:1065 msgid "Russian" msgstr "ruština" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:1066 msgid "Japanese" msgstr "japonština" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:1067 msgid "Dutch" msgstr "dánština" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:1068 msgid "Hungarian" msgstr "maďarština" -#: ../gtk/propertybox.c:776 +#: ../gtk/propertybox.c:1069 msgid "Czech" msgstr "čeština" -#: ../gtk/propertybox.c:777 +#: ../gtk/propertybox.c:1070 msgid "Chinese" msgstr "čínština" -#: ../gtk/propertybox.c:778 +#: ../gtk/propertybox.c:1071 msgid "Traditional Chinese" msgstr "tradiční čínština" -#: ../gtk/propertybox.c:779 +#: ../gtk/propertybox.c:1072 msgid "Norwegian" msgstr "norština" -#: ../gtk/propertybox.c:780 +#: ../gtk/propertybox.c:1073 msgid "Hebrew" msgstr "hebrejština" -#: ../gtk/propertybox.c:781 +#: ../gtk/propertybox.c:1074 msgid "Serbian" msgstr "srbština" -#: ../gtk/propertybox.c:848 +#: ../gtk/propertybox.c:1141 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "Aby se projevil výběr nového jazyka, je nutné znovu spustit linphone." # Media encryption type: -#: ../gtk/propertybox.c:934 +#: ../gtk/propertybox.c:1219 msgid "None" msgstr "Žádné" -#: ../gtk/propertybox.c:938 +#: ../gtk/propertybox.c:1223 msgid "SRTP" msgstr "SRTP" -#: ../gtk/propertybox.c:944 +#: ../gtk/propertybox.c:1229 msgid "ZRTP" msgstr "ZRTP" @@ -462,59 +468,63 @@ msgstr "Účet na linphone.org již mám a chci jej použít" msgid "I have already a sip account and I just want to use it" msgstr "SIP účet již mám a chci jej použít" -#: ../gtk/setupwizard.c:85 +#: ../gtk/setupwizard.c:46 +msgid "I want to specify a remote configuration URI" +msgstr "" + +#: ../gtk/setupwizard.c:89 msgid "Enter your linphone.org username" msgstr "Zadejte uživatelské jméno na linphone.org" -#: ../gtk/setupwizard.c:92 +#: ../gtk/setupwizard.c:96 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4 msgid "Username:" msgstr "Uživatelské jméno:" -#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:98 ../gtk/password.ui.h:4 ../gtk/ldap.ui.h:5 msgid "Password:" msgstr "Heslo:" -#: ../gtk/setupwizard.c:114 +#: ../gtk/setupwizard.c:118 msgid "Enter your account informations" msgstr "Zadejte údaje o vašem účtu" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:125 msgid "Username*" msgstr "Uživatelské jméno*" -#: ../gtk/setupwizard.c:122 +#: ../gtk/setupwizard.c:126 msgid "Password*" msgstr "Heslo*" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:129 msgid "Domain*" msgstr "Doména*" -#: ../gtk/setupwizard.c:126 +#: ../gtk/setupwizard.c:130 msgid "Proxy" msgstr "Proxy" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:302 msgid "(*) Required fields" msgstr "(*) Povinné položky" -#: ../gtk/setupwizard.c:299 +#: ../gtk/setupwizard.c:303 msgid "Username: (*)" msgstr "Uživatelské jméno: (*)" -#: ../gtk/setupwizard.c:301 +#: ../gtk/setupwizard.c:305 msgid "Password: (*)" msgstr "Heslo: (*)" -#: ../gtk/setupwizard.c:303 +#: ../gtk/setupwizard.c:307 msgid "Email: (*)" msgstr "E-mail: (*)" -#: ../gtk/setupwizard.c:305 +#: ../gtk/setupwizard.c:309 msgid "Confirm your password: (*)" msgstr "Potvrďte heslo: (*)" -#: ../gtk/setupwizard.c:369 +#: ../gtk/setupwizard.c:373 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." @@ -523,11 +533,11 @@ msgstr "" "není dostupný).\n" "Prosím, vraťte se a zkoste to znovu." -#: ../gtk/setupwizard.c:380 +#: ../gtk/setupwizard.c:384 msgid "Thank you. Your account is now configured and ready for use." msgstr "Děkujeme vám. Váš účet je nyní nastaven a připraven k použití." -#: ../gtk/setupwizard.c:388 +#: ../gtk/setupwizard.c:392 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" @@ -537,35 +547,40 @@ msgstr "" "zaslali e-mailem.\n" "Pak se sem vraťte a stiskněte tlačítko Další." -#: ../gtk/setupwizard.c:564 +#: ../gtk/setupwizard.c:572 +#, fuzzy +msgid "SIP account configuration assistant" +msgstr "Průvodce nastavením účtu" + +#: ../gtk/setupwizard.c:590 msgid "Welcome to the account setup assistant" msgstr "Vítejte v průvodci nastavení účtu" -#: ../gtk/setupwizard.c:569 +#: ../gtk/setupwizard.c:595 msgid "Account setup assistant" msgstr "Průvodce nastavením účtu" -#: ../gtk/setupwizard.c:575 +#: ../gtk/setupwizard.c:601 msgid "Configure your account (step 1/1)" msgstr "Nastavit účet (krok 1/1)" -#: ../gtk/setupwizard.c:580 +#: ../gtk/setupwizard.c:606 msgid "Enter your sip username (step 1/1)" msgstr "Zadejte vaše sipové uživatelské jméno (krok 1/1)" -#: ../gtk/setupwizard.c:584 +#: ../gtk/setupwizard.c:610 msgid "Enter account information (step 1/2)" msgstr "Zadejte údaje o účtu (krok 1/2)" -#: ../gtk/setupwizard.c:593 +#: ../gtk/setupwizard.c:619 msgid "Validation (step 2/2)" msgstr "Ověření (krok 2/2)" -#: ../gtk/setupwizard.c:598 +#: ../gtk/setupwizard.c:624 msgid "Error" msgstr "Chyba" -#: ../gtk/setupwizard.c:602 +#: ../gtk/setupwizard.c:628 msgid "Terminating" msgstr "Ukončuje se" @@ -631,7 +646,7 @@ msgstr "UPnP selhalo" msgid "Direct or through server" msgstr "Přímé nebo skrze server" -#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:261 ../gtk/incall_view.c:272 #, c-format msgid "" "download: %f\n" @@ -640,110 +655,115 @@ msgstr "" "příchozí: %f\n" "odchozí: %f (kb/s)" -#: ../gtk/incall_view.c:286 +#: ../gtk/incall_view.c:267 ../gtk/incall_view.c:268 +#, c-format +msgid "%ix%i" +msgstr "" + +#: ../gtk/incall_view.c:297 #, c-format msgid "%.3f seconds" msgstr "%.3f sekund" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:395 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "Zavěsit" -#: ../gtk/incall_view.c:476 +#: ../gtk/incall_view.c:487 msgid "Calling..." msgstr "Volá se…" -#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:700 msgid "00::00::00" msgstr "00:00:00" -#: ../gtk/incall_view.c:490 +#: ../gtk/incall_view.c:501 msgid "Incoming call" msgstr "Příchozí hovor" -#: ../gtk/incall_view.c:527 +#: ../gtk/incall_view.c:538 msgid "good" msgstr "dobrá" -#: ../gtk/incall_view.c:529 +#: ../gtk/incall_view.c:540 msgid "average" msgstr "průměrná" -#: ../gtk/incall_view.c:531 +#: ../gtk/incall_view.c:542 msgid "poor" msgstr "slabá" -#: ../gtk/incall_view.c:533 +#: ../gtk/incall_view.c:544 msgid "very poor" msgstr "velmi slabá" -#: ../gtk/incall_view.c:535 +#: ../gtk/incall_view.c:546 msgid "too bad" msgstr "příliš špatná" -#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:547 ../gtk/incall_view.c:563 msgid "unavailable" msgstr "nedostupná" -#: ../gtk/incall_view.c:651 +#: ../gtk/incall_view.c:662 msgid "Secured by SRTP" msgstr "Zabezpečeno pomocí SRTP" -#: ../gtk/incall_view.c:657 +#: ../gtk/incall_view.c:668 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "Zabezpečeno pomocí ZRTP – [ověřovací klíč: %s]" -#: ../gtk/incall_view.c:663 +#: ../gtk/incall_view.c:674 msgid "Set unverified" msgstr "Nastavit na neověřeno" -#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:674 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "Nastavit na ověřeno" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In conference" msgstr "Probíhá konference" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In call" msgstr "Probíhá hovor" -#: ../gtk/incall_view.c:718 +#: ../gtk/incall_view.c:731 msgid "Paused call" msgstr "Odložený hovor" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:744 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i:%02i:%02i" -#: ../gtk/incall_view.c:748 +#: ../gtk/incall_view.c:762 msgid "Call ended." msgstr "Hovor skončil." -#: ../gtk/incall_view.c:778 +#: ../gtk/incall_view.c:793 msgid "Transfer in progress" msgstr "Probíhá přepojení" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:796 msgid "Transfer done." msgstr "Přepojení dokončeno." -#: ../gtk/incall_view.c:784 +#: ../gtk/incall_view.c:799 msgid "Transfer failed." msgstr "Přepojení selhalo." -#: ../gtk/incall_view.c:828 +#: ../gtk/incall_view.c:843 msgid "Resume" msgstr "Obnovit" -#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:850 ../gtk/main.ui.h:9 msgid "Pause" msgstr "Odložit" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, c-format msgid "" "Recording into\n" @@ -752,15 +772,25 @@ msgstr "" "Nahrává se do\n" "%s %s" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 msgid "(Paused)" msgstr "(Odloženo)" -#: ../gtk/loginframe.c:93 +#: ../gtk/loginframe.c:88 #, c-format msgid "Please enter login information for %s" msgstr "Prosím, zadejte své přihlašovací jméno pro %s:" +#: ../gtk/config-fetching.c:57 +#, fuzzy, c-format +msgid "fetching from %s" +msgstr "Příchozí hovor od %s" + +#: ../gtk/config-fetching.c:73 +#, c-format +msgid "Downloading of remote configuration from %s failed." +msgstr "" + #: ../gtk/main.ui.h:1 msgid "Callee name" msgstr "Jméno volaného" @@ -806,89 +836,90 @@ msgid "_Options" msgstr "V_olby" #: ../gtk/main.ui.h:18 +#, fuzzy +msgid "Set configuration URI" +msgstr "Konfigurace proxy a registrace" + +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "Vždy spustit obraz" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "Zobrazovat sám sebe" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "Nápo_věda" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "Zobrazit ladicí okno" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "_Domovská stránka" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "Vyhledat akt_ualizace" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "Průvodce účtem" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "SIP adresa nebo telefonní číslo:" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "Zahájit nový hovor" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:28 msgid "Contacts" msgstr "Kontakty" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 -msgid "Add" -msgstr "Přidat" - -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 -msgid "Edit" -msgstr "Upravit" - -#: ../gtk/main.ui.h:30 +#: ../gtk/main.ui.h:29 msgid "Search" msgstr "Hledat" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Add contacts from directory" msgstr "Přidat kontakty z adresáře" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contact" msgstr "Přidat kontakt" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 msgid "Recent calls" msgstr "Nedávné hovory" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "My current identity:" msgstr "Moje současná totožnost:" -#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:34 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Uživatelské jméno" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Heslo" -#: ../gtk/main.ui.h:37 +#: ../gtk/main.ui.h:36 msgid "Internet connection:" msgstr "Připojení k Internetu:" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Automatically log me in" msgstr "Přihlašovat mě automaticky" +#: ../gtk/main.ui.h:38 ../gtk/password.ui.h:3 +msgid "UserID" +msgstr "Identifikátor uživatele" + #: ../gtk/main.ui.h:39 msgid "Login information" msgstr "Informace o přihlášení" @@ -934,6 +965,7 @@ msgid "An internet video phone using the standard SIP (rfc3261) protocol." msgstr "Internetový videofon používající standardní protokol SIP (RFC 3261)." #: ../gtk/about.ui.h:5 +#, fuzzy msgid "" "fr: Simon Morlat\n" "en: Simon Morlat and Delphine Perreau\n" @@ -946,6 +978,7 @@ msgid "" "pl: Robert Nasiadek \n" "cs: Petr Pisar \n" "hu: anonymous\n" +"he: Eli Zaretskii \n" msgstr "" "fr: Simon Morlat\n" "en: Simon Morlat a Delphine Perreau\n" @@ -991,10 +1024,6 @@ msgstr "Linphone – Ověření totožnosti vyžadováno" msgid "Please enter the domain password" msgstr "Prosím, zadejte heslo pro doménu" -#: ../gtk/password.ui.h:3 -msgid "UserID" -msgstr "Identifikátor uživatele" - #: ../gtk/call_logs.ui.h:1 msgid "Call history" msgstr "Historie volání" @@ -1032,271 +1061,317 @@ msgid "Looks like sip:" msgstr "Vypadá jako sip:" #: ../gtk/sip_account.ui.h:7 -msgid "Route (optional):" -msgstr "Směrování (volitelné):" - -#: ../gtk/sip_account.ui.h:8 msgid "Registration duration (sec):" msgstr "Registrační období (s):" +#: ../gtk/sip_account.ui.h:8 +#, fuzzy +msgid "Contact params (optional):" +msgstr "Směrování (volitelné):" + #: ../gtk/sip_account.ui.h:9 +msgid "Route (optional):" +msgstr "Směrování (volitelné):" + +#: ../gtk/sip_account.ui.h:10 +#, fuzzy +msgid "Transport" +msgstr "Přenos" + +#: ../gtk/sip_account.ui.h:11 msgid "Register" msgstr "Zaregistrovat se" -#: ../gtk/sip_account.ui.h:10 +#: ../gtk/sip_account.ui.h:12 msgid "Publish presence information" msgstr "Zveřejnit stav přítomnosti" -#: ../gtk/sip_account.ui.h:11 +#: ../gtk/sip_account.ui.h:13 msgid "Configure a SIP account" msgstr "Nastavit SIP účet" #: ../gtk/parameters.ui.h:1 +msgid "anonymous" +msgstr "" + +#: ../gtk/parameters.ui.h:2 +msgid "GSSAPI" +msgstr "" + +#: ../gtk/parameters.ui.h:3 +msgid "SASL" +msgstr "" + +#: ../gtk/parameters.ui.h:4 msgid "default soundcard" msgstr "implicitní zvuková karta" -#: ../gtk/parameters.ui.h:2 +#: ../gtk/parameters.ui.h:5 msgid "a sound card" msgstr "zvuková karta" -#: ../gtk/parameters.ui.h:3 +#: ../gtk/parameters.ui.h:6 msgid "default camera" msgstr "implicitní kamera" -#: ../gtk/parameters.ui.h:4 +#: ../gtk/parameters.ui.h:7 msgid "CIF" msgstr "CIF" -#: ../gtk/parameters.ui.h:5 +#: ../gtk/parameters.ui.h:8 msgid "Audio codecs" msgstr "Kodeky zvuku" -#: ../gtk/parameters.ui.h:6 +#: ../gtk/parameters.ui.h:9 msgid "Video codecs" msgstr "Kodeky obrazu" -#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:10 ../gtk/keypad.ui.h:5 msgid "C" msgstr "C" -#: ../gtk/parameters.ui.h:8 +#: ../gtk/parameters.ui.h:11 msgid "SIP (UDP)" msgstr "SIP (UDP)" -#: ../gtk/parameters.ui.h:9 +#: ../gtk/parameters.ui.h:12 msgid "SIP (TCP)" msgstr "SIP (TCP)" -#: ../gtk/parameters.ui.h:10 +#: ../gtk/parameters.ui.h:13 msgid "SIP (TLS)" msgstr "SIP (TLS)" -#: ../gtk/parameters.ui.h:11 +#: ../gtk/parameters.ui.h:14 msgid "Settings" msgstr "Nastavení" -#: ../gtk/parameters.ui.h:12 +#: ../gtk/parameters.ui.h:15 msgid "Set Maximum Transmission Unit:" msgstr "Nastavit MTU (největší přenositelná zpráva):" -#: ../gtk/parameters.ui.h:13 +#: ../gtk/parameters.ui.h:16 msgid "Send DTMFs as SIP info" msgstr "Odesílat tóny DTMF jako SIP INFO zprávy" -#: ../gtk/parameters.ui.h:14 +#: ../gtk/parameters.ui.h:17 msgid "Use IPv6 instead of IPv4" msgstr "Používat IPv6 místo IPv4" -#: ../gtk/parameters.ui.h:15 +#: ../gtk/parameters.ui.h:18 msgid "Transport" msgstr "Přenos" -#: ../gtk/parameters.ui.h:16 +#: ../gtk/parameters.ui.h:19 msgid "Media encryption type" msgstr "Druh šifrování médií" -#: ../gtk/parameters.ui.h:17 +#: ../gtk/parameters.ui.h:20 msgid "Video RTP/UDP:" msgstr "Obrazový RTP/UDP:" -#: ../gtk/parameters.ui.h:18 +#: ../gtk/parameters.ui.h:21 msgid "Audio RTP/UDP:" msgstr "Zvukový RTP/UDP:" -#: ../gtk/parameters.ui.h:19 -msgid "DSCP fields" -msgstr "Položky DSCP" - # Port number -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:22 msgid "Fixed" msgstr "Stálý" -#: ../gtk/parameters.ui.h:21 -msgid "Tunnel" -msgstr "Tunel" - -#: ../gtk/parameters.ui.h:22 +#: ../gtk/parameters.ui.h:23 msgid "Media encryption is mandatory" msgstr "Šifrování médií je povinné" -#: ../gtk/parameters.ui.h:23 +#: ../gtk/parameters.ui.h:24 +msgid "Tunnel" +msgstr "Tunel" + +#: ../gtk/parameters.ui.h:25 +msgid "DSCP fields" +msgstr "Položky DSCP" + +#: ../gtk/parameters.ui.h:26 +#, fuzzy +msgid "SIP/TCP port" +msgstr "SIP port" + +#: ../gtk/parameters.ui.h:27 +#, fuzzy +msgid "SIP/UDP port" +msgstr "SIP port" + +#: ../gtk/parameters.ui.h:28 msgid "Network protocol and ports" msgstr "Síťové protokoly a porty" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:29 msgid "Direct connection to the Internet" msgstr "Přímé připojení do Internetu" -#: ../gtk/parameters.ui.h:25 -msgid "Behind NAT / Firewall (specify gateway IP below)" +#: ../gtk/parameters.ui.h:30 +#, fuzzy +msgid "Behind NAT / Firewall (specify gateway IP )" msgstr "Za NAT/firewallem (adresu brány zadejte níže)" -#: ../gtk/parameters.ui.h:26 -msgid "Public IP address:" -msgstr "Veřejná IP adresa:" - -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:31 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "Za NAT/firewallem (adresu určí STUN)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:32 msgid "Behind NAT / Firewall (use ICE)" msgstr "Za NAT/firewallem (adresu určí ICE)" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:33 msgid "Behind NAT / Firewall (use uPnP)" msgstr "Za NAT/firewallem (adresu určí UPnP)" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:34 +msgid "Public IP address:" +msgstr "Veřejná IP adresa:" + +#: ../gtk/parameters.ui.h:35 msgid "Stun server:" msgstr "STUN server:" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:36 msgid "NAT and Firewall" msgstr "NAT a firewall" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:37 msgid "Network settings" msgstr "Nastavení sítě" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:38 msgid "Ring sound:" msgstr "Vyzvánění:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:39 msgid "ALSA special device (optional):" msgstr "Zvláštní ALSA zařízení (volitelné):" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:40 msgid "Capture device:" msgstr "Zařízení pro nahrávání:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:41 msgid "Ring device:" msgstr "Zařízení pro vyzvánění:" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:42 msgid "Playback device:" msgstr "Zařízení pro přehrávání:" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:43 msgid "Enable echo cancellation" msgstr "Zapnout potlačení ozvěny" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:44 msgid "Audio" msgstr "Zvuk" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:45 msgid "Video input device:" msgstr "Vstupní zařízení obrazu:" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:46 msgid "Prefered video resolution:" msgstr "Upřednostňované rozlišení obrazu:" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:47 +#, fuzzy +msgid "Video output method:" +msgstr "Vstupní zařízení obrazu:" + +#: ../gtk/parameters.ui.h:48 msgid "Video" msgstr "Obraz" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:49 msgid "Multimedia settings" msgstr "Nastavení multimédií" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:50 msgid "This section defines your SIP address when not using a SIP account" msgstr "Tento oddíl určuje vaši SIP adresu, když se nepoužívá žádný účet" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:51 msgid "Your display name (eg: John Doe):" msgstr "Vaše zobrazované jméno (např. Jan Novák):" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:52 msgid "Your username:" msgstr "Vaše uživatelské jméno:" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:53 msgid "Your resulting SIP address:" msgstr "Vaše výsledná SIP adresa:" -#: ../gtk/parameters.ui.h:48 +#: ../gtk/parameters.ui.h:54 msgid "Default identity" msgstr "Implicitní totožnost" -#: ../gtk/parameters.ui.h:49 +#: ../gtk/parameters.ui.h:55 msgid "Wizard" msgstr "Průvodce" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:56 +msgid "Add" +msgstr "Přidat" + +#: ../gtk/parameters.ui.h:57 +msgid "Edit" +msgstr "Upravit" + +#: ../gtk/parameters.ui.h:58 msgid "Remove" msgstr "Odstranit" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:59 msgid "Proxy accounts" msgstr "Proxy účty" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:60 msgid "Erase all passwords" msgstr "Vymazat všechna hesla" -#: ../gtk/parameters.ui.h:55 +#: ../gtk/parameters.ui.h:61 msgid "Privacy" msgstr "Soukromí" -#: ../gtk/parameters.ui.h:56 +#: ../gtk/parameters.ui.h:62 msgid "Manage SIP Accounts" msgstr "Nastavení SIP účtů" -#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Povolit" -#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Zakázat" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:65 msgid "Codecs" msgstr "Kodeky" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:66 msgid "0 stands for \"unlimited\"" msgstr "0 znamená „neomezeno“" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:67 msgid "Upload speed limit in Kbit/sec:" msgstr "Omezení odchozí rychlosti (kb/s):" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:68 msgid "Download speed limit in Kbit/sec:" msgstr "Omezení příchozí rychlosti (kb/s):" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:69 msgid "Enable adaptive rate control" msgstr "Zapnout přizpůsobující se řízení rychlosti" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:70 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." @@ -1304,31 +1379,54 @@ msgstr "" "Přizpůsobující se řízení rychlosti je technika dynamického odhadu " "dostupného pásma během hovoru." -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:71 msgid "Bandwidth control" msgstr "Využití šířky pásma" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:72 msgid "Codecs" msgstr "Kodeky" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:73 msgid "Language" msgstr "Jazyk" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:74 msgid "Show advanced settings" msgstr "Zobrazit podrobnější nastavení" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:75 msgid "Level" msgstr "Úroveň" -#: ../gtk/parameters.ui.h:70 +#: ../gtk/parameters.ui.h:76 msgid "User interface" msgstr "Uživatelské rozhraní" -#: ../gtk/parameters.ui.h:71 +#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2 +#, fuzzy +msgid "Server address:" +msgstr "Adresa serveru:" + +#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3 +#, fuzzy +msgid "Authentication method:" +msgstr "Selhání ověření totožnosti" + +#: ../gtk/parameters.ui.h:80 +msgid "label" +msgstr "" + +#: ../gtk/parameters.ui.h:81 +#, fuzzy +msgid "LDAP Account setup" +msgstr "Proxy účty" + +#: ../gtk/parameters.ui.h:82 +msgid "LDAP" +msgstr "" + +#: ../gtk/parameters.ui.h:83 msgid "Done" msgstr "Hotovo" @@ -1353,7 +1451,8 @@ msgid "Please wait" msgstr "Prosím, čekejte" #: ../gtk/dscp_settings.ui.h:1 -msgid "Dscp settings" +#, fuzzy +msgid "DSCP settings" msgstr "Nastavení DSCP" #: ../gtk/dscp_settings.ui.h:2 @@ -1405,6 +1504,15 @@ msgid "Round trip time" msgstr "Odezva" #: ../gtk/call_statistics.ui.h:9 +msgid "Video resolution received" +msgstr "" + +#: ../gtk/call_statistics.ui.h:10 +#, fuzzy +msgid "Video resolution sent" +msgstr "Upřednostňované rozlišení obrazu:" + +#: ../gtk/call_statistics.ui.h:11 msgid "Call statistics and information" msgstr "Statistické a ostatní údaje o hovoru" @@ -1488,19 +1596,142 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:227 +#: ../gtk/ldap.ui.h:1 +#, fuzzy +msgid "LDAP Settings" +msgstr "Nastavení" + +#: ../gtk/ldap.ui.h:6 +msgid "Use TLS Connection" +msgstr "" + +#: ../gtk/ldap.ui.h:7 +#, fuzzy +msgid "Not yet available" +msgstr "UPnP není nedostupné" + +#: ../gtk/ldap.ui.h:8 +#, fuzzy +msgid "Connection" +msgstr "Kodeky" + +#: ../gtk/ldap.ui.h:9 +msgid "Bind DN" +msgstr "" + +#: ../gtk/ldap.ui.h:10 +msgid "Authname" +msgstr "" + +#: ../gtk/ldap.ui.h:11 +#, fuzzy +msgid "Realm" +msgstr "doména:" + +#: ../gtk/ldap.ui.h:12 +#, fuzzy +msgid "SASL" +msgstr "Zvuk" + +#: ../gtk/ldap.ui.h:13 +msgid "Base object:" +msgstr "" + +#: ../gtk/ldap.ui.h:15 +#, no-c-format +msgid "Filter (%s for name):" +msgstr "" + +#: ../gtk/ldap.ui.h:16 +msgid "Name Attribute:" +msgstr "" + +#: ../gtk/ldap.ui.h:17 +#, fuzzy +msgid "SIP address attribute:" +msgstr "SIP adresa" + +#: ../gtk/ldap.ui.h:18 +msgid "Attributes to query:" +msgstr "" + +#: ../gtk/ldap.ui.h:19 +#, fuzzy +msgid "Search" +msgstr "Hledat někoho" + +#: ../gtk/ldap.ui.h:20 +msgid "Timeout for search:" +msgstr "" + +#: ../gtk/ldap.ui.h:21 +msgid "Max results:" +msgstr "" + +#: ../gtk/ldap.ui.h:22 +msgid "Follow Aliases" +msgstr "" + +#: ../gtk/ldap.ui.h:23 +#, fuzzy +msgid "Miscellaneous" +msgstr "Různé" + +#: ../gtk/ldap.ui.h:24 +msgid "ANONYMOUS" +msgstr "" + +#: ../gtk/ldap.ui.h:25 +msgid "SIMPLE" +msgstr "" + +#: ../gtk/ldap.ui.h:26 +msgid "DIGEST-MD5" +msgstr "" + +#: ../gtk/ldap.ui.h:27 +msgid "NTLM" +msgstr "" + +#: ../gtk/config-uri.ui.h:1 +msgid "Specifying a remote configuration URI" +msgstr "" + +#: ../gtk/config-uri.ui.h:2 +msgid "" +"This dialog allows to set an http or https address when configuration is to " +"be fetched at startup.\n" +"Please enter or modify the configuration URI below. After clicking OK, " +"Linphone will restart automatically in order to fetch and take into account " +"the new configuration. " +msgstr "" + +#: ../gtk/config-uri.ui.h:4 +msgid "https://" +msgstr "" + +#: ../gtk/provisioning-fetch.ui.h:1 +#, fuzzy +msgid "Configuring..." +msgstr "Připojuje se…" + +#: ../gtk/provisioning-fetch.ui.h:2 +msgid "Please wait while fetching configuration from server..." +msgstr "" + +#: ../coreapi/linphonecore.c:238 msgid "aborted" msgstr "přerušen" -#: ../coreapi/linphonecore.c:230 +#: ../coreapi/linphonecore.c:241 msgid "completed" msgstr "dokončen" -#: ../coreapi/linphonecore.c:233 +#: ../coreapi/linphonecore.c:244 msgid "missed" msgstr "promeškán" -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:249 #, c-format msgid "" "%s at %s\n" @@ -1515,102 +1746,77 @@ msgstr "" "Stav: %s\n" "Délka: %i min %i s\n" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:250 msgid "Outgoing call" msgstr "Odchozí hovor" -#: ../coreapi/linphonecore.c:1312 +#: ../coreapi/linphonecore.c:1264 msgid "Ready" msgstr "Připraven." -#: ../coreapi/linphonecore.c:2184 +#: ../coreapi/linphonecore.c:1372 +#, fuzzy +msgid "Configuring" +msgstr "Potvrzení" + +#: ../coreapi/linphonecore.c:2331 msgid "Looking for telephone number destination..." msgstr "Vyhledává se umístění čísla…" -#: ../coreapi/linphonecore.c:2187 +#: ../coreapi/linphonecore.c:2334 msgid "Could not resolve this number." msgstr "Toto číslo nelze vyhledat." -#: ../coreapi/linphonecore.c:2231 -msgid "" -"Could not parse given sip address. A sip url usually looks like sip:" -"user@domain" -msgstr "" -"Špatně zadaná SIP adresa. Adresa má mít tento formát " - -#: ../coreapi/linphonecore.c:2432 +#. must be known at that time +#: ../coreapi/linphonecore.c:2609 msgid "Contacting" msgstr "Navazuje se spojení" -#: ../coreapi/linphonecore.c:2439 +#: ../coreapi/linphonecore.c:2616 msgid "Could not call" msgstr "Nelze volat" -#: ../coreapi/linphonecore.c:2549 +#: ../coreapi/linphonecore.c:2765 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Je nám líto, ale byl dosažen maximální počet současných hovorů." -#: ../coreapi/linphonecore.c:2731 +#: ../coreapi/linphonecore.c:2952 msgid "is contacting you" msgstr "vás volá" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2953 msgid " and asked autoanswer." msgstr " a požaduje automatickou zvednutí." -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2953 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2799 +#: ../coreapi/linphonecore.c:3020 msgid "Modifying call parameters..." msgstr "Upravují se parametry hovoru…" -#: ../coreapi/linphonecore.c:3138 +#: ../coreapi/linphonecore.c:3362 msgid "Connected." msgstr "Připojeno." -#: ../coreapi/linphonecore.c:3166 +#: ../coreapi/linphonecore.c:3388 msgid "Call aborted" msgstr "Hovor přerušen" -#: ../coreapi/linphonecore.c:3357 +#: ../coreapi/linphonecore.c:3581 msgid "Could not pause the call" msgstr "Hovor nebylo možné odložit" -#: ../coreapi/linphonecore.c:3362 +#: ../coreapi/linphonecore.c:3586 msgid "Pausing the current call..." msgstr "Současný hovor se odkládá…" -#: ../coreapi/misc.c:148 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the pcm oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -"'modprobe snd-pcm-oss' as root to load it." -msgstr "" -"Váš počítač používá zvukový ovladač ALSA. Jde o nejlepší\n" -"volbu. Linphone však potřebuje ke své práci modul emulace\n" -"oss, který chybí. Prosím zadejte jako uživatel root příkaz\n" -"'modprobe snd-pcm-oss', kterým modul zavede." - -#: ../coreapi/misc.c:151 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the mixer oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -" 'modprobe snd-mixer-oss' as root to load it." -msgstr "" -"Váš počítač používá zvukový ovladač ALSA. Jde o nejlepší\n" -"volbu. Linphone však potřebuje ke své práci modul mixer emulace\n" -"oss, který chybí. Prosím zadejte jako uživatel root příkaz\n" -"'modprobe snd-mixer-oss', kterým modul zavede." - -#: ../coreapi/misc.c:496 +#: ../coreapi/misc.c:394 msgid "Stun lookup in progress..." msgstr "Hledá se adresa pomocí STUN…" -#: ../coreapi/misc.c:630 +#: ../coreapi/misc.c:576 msgid "ICE local candidates gathering in progress..." msgstr "Shromažďují se místní kandidáti ICE…" @@ -1659,10 +1865,15 @@ msgid "Pending" msgstr "Čekám" #: ../coreapi/friend.c:66 +#, fuzzy +msgid "Vacation" +msgstr "Délka" + +#: ../coreapi/friend.c:68 msgid "Unknown-bug" msgstr "Neznámá chyba" -#: ../coreapi/proxy.c:204 +#: ../coreapi/proxy.c:209 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." @@ -1670,7 +1881,7 @@ msgstr "" "Adresa SIP proxy, kterou jste zadali, není platná. Musí začínat na „sip:“ a " "pak musí následovat jméno stroje." -#: ../coreapi/proxy.c:210 +#: ../coreapi/proxy.c:215 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" @@ -1678,124 +1889,128 @@ msgstr "" "SIP identita, kterou jste zadali, není platná.\n" "Měla by mít tvar sip:uživatel@proxydoména, například sip:alice@example.net" -#: ../coreapi/proxy.c:1069 +#: ../coreapi/proxy.c:1125 #, c-format msgid "Could not login as %s" msgstr "Nelze se přihlásit jako %s" -#: ../coreapi/callbacks.c:286 +#: ../coreapi/callbacks.c:289 msgid "Remote ringing." msgstr "Vyzvání na druhé straně." -#: ../coreapi/callbacks.c:306 +#: ../coreapi/callbacks.c:305 msgid "Remote ringing..." msgstr "Vyzvání na druhé straně…" -#: ../coreapi/callbacks.c:317 +#: ../coreapi/callbacks.c:316 msgid "Early media." msgstr "Časná média." -#: ../coreapi/callbacks.c:368 +#: ../coreapi/callbacks.c:367 #, c-format msgid "Call with %s is paused." msgstr "Hovor s %s je odložen." -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:380 #, c-format msgid "Call answered by %s - on hold." msgstr "Hovor přijat kým: %s – odložen." -#: ../coreapi/callbacks.c:392 +#: ../coreapi/callbacks.c:391 msgid "Call resumed." msgstr "Hovor obnoven." -#: ../coreapi/callbacks.c:397 +#: ../coreapi/callbacks.c:396 #, c-format msgid "Call answered by %s." msgstr "Hovor přijat kým: %s." -#: ../coreapi/callbacks.c:412 +#: ../coreapi/callbacks.c:414 msgid "Incompatible, check codecs or security settings..." msgstr "Není slučitelné. Zkontrolujte nastavení kodeků a zabezpečení…" -#: ../coreapi/callbacks.c:460 +#: ../coreapi/callbacks.c:463 msgid "We have been resumed." msgstr "Byli jsme obnoveni." -#: ../coreapi/callbacks.c:469 +#: ../coreapi/callbacks.c:471 msgid "We are paused by other party." msgstr "Byli jsme odloženi protistranou." -#: ../coreapi/callbacks.c:475 +#: ../coreapi/callbacks.c:487 msgid "Call is updated by remote." msgstr "Hovor byl aktualizován protistranou." -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:558 msgid "Call terminated." msgstr "Hovor ukončen." -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:586 msgid "User is busy." msgstr "Uživatel je zaneprázdněn." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:587 msgid "User is temporarily unavailable." msgstr "Uživatel je dočasně nedostupný." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:558 +#: ../coreapi/callbacks.c:589 msgid "User does not want to be disturbed." msgstr "Uživatel si nepřeje být rušen." -#: ../coreapi/callbacks.c:559 +#: ../coreapi/callbacks.c:590 msgid "Call declined." msgstr "Volání odmítnuto." -#: ../coreapi/callbacks.c:571 +#: ../coreapi/callbacks.c:603 msgid "No response." msgstr "Žádná odpověď." -#: ../coreapi/callbacks.c:575 +#: ../coreapi/callbacks.c:607 msgid "Protocol error." msgstr "Chyba protokolu." -#: ../coreapi/callbacks.c:591 +#: ../coreapi/callbacks.c:623 msgid "Redirected" msgstr "Přesměrováno" -#: ../coreapi/callbacks.c:627 +#: ../coreapi/callbacks.c:665 msgid "Incompatible media parameters." msgstr "Neslučitelné parametry médií." -#: ../coreapi/callbacks.c:633 +#: ../coreapi/callbacks.c:677 msgid "Call failed." msgstr "Volání se nezdařilo." -#: ../coreapi/callbacks.c:737 +#: ../coreapi/callbacks.c:751 #, c-format msgid "Registration on %s successful." msgstr "Registrace na %s byla úspěšná." -#: ../coreapi/callbacks.c:738 +#: ../coreapi/callbacks.c:752 #, c-format msgid "Unregistration on %s done." msgstr "Odregistrování z %s hotovo." -#: ../coreapi/callbacks.c:758 +#: ../coreapi/callbacks.c:772 msgid "no response timeout" msgstr "odpověď nedorazila včas" -#: ../coreapi/callbacks.c:761 +#: ../coreapi/callbacks.c:775 #, c-format msgid "Registration on %s failed: %s" msgstr "Registrace na %s selhala: %s" -#: ../coreapi/linphonecall.c:129 +#: ../coreapi/callbacks.c:785 +msgid "Service unavailable, retrying" +msgstr "" + +#: ../coreapi/linphonecall.c:142 #, c-format msgid "Authentication token is %s" msgstr "Klíč k ověření totožnosti je %s" -#: ../coreapi/linphonecall.c:2319 +#: ../coreapi/linphonecall.c:2678 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -1803,6 +2018,34 @@ msgstr[0] "Máte %i zmeškaný hovor." msgstr[1] "Máte %i zmeškané hovory." msgstr[2] "Máte %i zmeškaných hovorů." +#~ msgid "" +#~ "Could not parse given sip address. A sip url usually looks like sip:" +#~ "user@domain" +#~ msgstr "" +#~ "Špatně zadaná SIP adresa. Adresa má mít tento formát " + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the pcm oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ "'modprobe snd-pcm-oss' as root to load it." +#~ msgstr "" +#~ "Váš počítač používá zvukový ovladač ALSA. Jde o nejlepší\n" +#~ "volbu. Linphone však potřebuje ke své práci modul emulace\n" +#~ "oss, který chybí. Prosím zadejte jako uživatel root příkaz\n" +#~ "'modprobe snd-pcm-oss', kterým modul zavede." + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the mixer oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ " 'modprobe snd-mixer-oss' as root to load it." +#~ msgstr "" +#~ "Váš počítač používá zvukový ovladač ALSA. Jde o nejlepší\n" +#~ "volbu. Linphone však potřebuje ke své práci modul mixer emulace\n" +#~ "oss, který chybí. Prosím zadejte jako uživatel root příkaz\n" +#~ "'modprobe snd-mixer-oss', kterým modul zavede." + #~ msgid "by %s" #~ msgstr "kým: %s" @@ -1836,9 +2079,6 @@ msgstr[2] "Máte %i zmeškaných hovorů." #~ msgid "Verifying" #~ msgstr "Ověřování" -#~ msgid "Confirmation" -#~ msgstr "Potvrzení" - #~ msgid "Creating your account" #~ msgstr "Vytváření účtu" @@ -1871,9 +2111,6 @@ msgstr[2] "Máte %i zmeškaných hovorů." #~ msgid "No common codecs" #~ msgstr "Žádný společný formát" -#~ msgid "Authentication failure" -#~ msgstr "Selhání ověření totožnosti" - #~ msgid "Register at startup" #~ msgstr "Zaregistrovat při spuštění" @@ -2136,9 +2373,6 @@ msgstr[2] "Máte %i zmeškaných hovorů." #~ msgid "Call answered - connected." #~ msgstr "Hovoř přijat – spojen." -#~ msgid "Incoming call from %s" -#~ msgstr "Příchozí hovor od %s" - #~ msgid "Assistant" #~ msgstr "Průvodce" @@ -2241,9 +2475,6 @@ msgstr[2] "Máte %i zmeškaných hovorů." #~ msgid "Unknown" #~ msgstr "Stav není znám" -#~ msgid "SIP address" -#~ msgstr "SIP adresa" - #~ msgid "Bresilian" #~ msgstr "brazilská portugalština" @@ -2272,9 +2503,6 @@ msgstr[2] "Máte %i zmeškaných hovorů." #~ msgid "Use the supplied stun server above and do as best as possible" #~ msgstr "Použij výše zadaný STUN server a snaž se, jak nejlépe umíš" -#~ msgid "Miscelaneous" -#~ msgstr "Různé" - #~ msgid "Go" #~ msgstr "Soubor" @@ -2498,9 +2726,6 @@ msgstr[2] "Máte %i zmeškaných hovorů." #~ msgid "It is strongly recommended to use port 5060." #~ msgstr "Je doporučeno používat port 5060." -#~ msgid "SIP port" -#~ msgstr "SIP port" - #~ msgid "@" #~ msgstr "@" @@ -2544,9 +2769,6 @@ msgstr[2] "Máte %i zmeškaných hovorů." #~ msgid "None." #~ msgstr "Žádné." -#~ msgid "Proxy/Registrar configuration box" -#~ msgstr "Konfigurace proxy a registrace" - #~ msgid "Send registration:" #~ msgstr "Odeslat registraci:" @@ -2574,9 +2796,6 @@ msgstr[2] "Máte %i zmeškaných hovorů." #~ msgid "userid:" #~ msgstr "ID uživatele:" -#~ msgid "realm:" -#~ msgstr "doména:" - #~ msgid "Text:" #~ msgstr "Text:" @@ -2653,9 +2872,6 @@ msgstr[2] "Máte %i zmeškaných hovorů." #~ msgid "Connection type:" #~ msgstr "Typ připojení:" -#~ msgid "Server address" -#~ msgstr "Adresa serveru:" - #~ msgid "" #~ "Linphone could not open audio device %s. Check if your sound card is " #~ "fully configured and working." diff --git a/po/de.po b/po/de.po index 855048c94..95a385def 100644 --- a/po/de.po +++ b/po/de.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.7.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-24 14:04+0200\n" +"POT-Creation-Date: 2014-02-14 14:57+0100\n" "PO-Revision-Date: 2012-11-07 19:27+0100\n" "Last-Translator: Gerhard Stengel \n" "Language-Team: German \n" @@ -17,12 +17,12 @@ msgstr "" "X-Generator: Lokalize 1.5\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:969 #, c-format msgid "Call %s" msgstr "„%s“ anrufen" -#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:970 #, c-format msgid "Send text to %s" msgstr "Text zu „%s“ schicken" @@ -96,37 +96,37 @@ msgstr "Eigenes Telefon" msgid "Couldn't find pixmap file: %s" msgstr "Pixmapdatei %s kann nicht gefunden werden." -#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:363 ../gtk/friendlist.c:919 msgid "Invalid sip contact !" msgstr "Ungültiger SIP-Kontakt!" -#: ../gtk/main.c:92 +#: ../gtk/main.c:102 msgid "log to stdout some debug information while running." msgstr "Ausgabe von Debug-Informationen auf stdout während der Laufzeit" -#: ../gtk/main.c:99 +#: ../gtk/main.c:109 msgid "path to a file to write logs into." msgstr "Pfad zu einer Datei, in die Protokolle geschrieben werden." -#: ../gtk/main.c:106 +#: ../gtk/main.c:116 msgid "Start linphone with video disabled." msgstr "Linphone mit ausgeschaltetem Video starten." -#: ../gtk/main.c:113 +#: ../gtk/main.c:123 msgid "Start only in the system tray, do not show the main interface." msgstr "" "Nur im Systemabschnitt der Kontrollleiste starten, aber das Hauptfenster " "nicht zeigen." -#: ../gtk/main.c:120 +#: ../gtk/main.c:130 msgid "address to call right now" msgstr "Im Moment anzurufende Adresse" -#: ../gtk/main.c:127 +#: ../gtk/main.c:137 msgid "if set automatically answer incoming calls" msgstr "Falls aktiviert, werden eingehende Anrufe automatisch beantwortet" -#: ../gtk/main.c:134 +#: ../gtk/main.c:144 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -134,12 +134,17 @@ msgstr "" "Geben Sie einen Arbeitsordner an (sollte der Installationsordner sein, z. B. " "C:\\Programme\\Linphone)" -#: ../gtk/main.c:515 +#: ../gtk/main.c:151 +#, fuzzy +msgid "Configuration file" +msgstr "Bestätigung" + +#: ../gtk/main.c:573 #, c-format msgid "Call with %s" msgstr "Im Gespräch mit %s" -#: ../gtk/main.c:946 +#: ../gtk/main.c:1150 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -152,68 +157,68 @@ msgstr "" "Ihrer Kontaktliste hinzufügen?\n" "Wenn Sie mit Nein antworten, wird diese Person vorläufig blockiert." -#: ../gtk/main.c:1023 -#, c-format +#: ../gtk/main.c:1227 +#, fuzzy, c-format msgid "" "Please enter your password for username %s\n" -" at domain %s:" +" at realm %s:" msgstr "" "Geben Sie bitte Ihr Passwort für den Benutzernamen %s\n" " auf der Domäne %s ein:" -#: ../gtk/main.c:1126 +#: ../gtk/main.c:1339 msgid "Call error" msgstr "Anruf fehlgeschlagen" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 +#: ../gtk/main.c:1342 ../coreapi/linphonecore.c:3408 msgid "Call ended" msgstr "Anruf beendet" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 +#: ../gtk/main.c:1345 ../coreapi/linphonecore.c:250 msgid "Incoming call" msgstr "Eingehender Anruf" -#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 +#: ../gtk/main.c:1347 ../gtk/incall_view.c:508 ../gtk/main.ui.h:5 msgid "Answer" msgstr "Annehmen" -#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1349 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Abweisen" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 msgid "Call paused" msgstr "Anruf wird gehalten" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, c-format msgid "by %s" msgstr "von %s" -#: ../gtk/main.c:1191 +#: ../gtk/main.c:1422 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s schlägt vor, eine Videoübertragung zu starten. Nehmen Sie an?" -#: ../gtk/main.c:1353 +#: ../gtk/main.c:1584 msgid "Website link" msgstr "Website-Verknüpfung" -#: ../gtk/main.c:1402 +#: ../gtk/main.c:1633 msgid "Linphone - a video internet phone" msgstr "Linphone - ein Internet-Video-Telefon" -#: ../gtk/main.c:1494 +#: ../gtk/main.c:1725 #, c-format msgid "%s (Default)" msgstr "%s (Vorgabe)" -#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 +#: ../gtk/main.c:2061 ../coreapi/callbacks.c:827 #, c-format msgid "We are transferred to %s" msgstr "Vermittlung nach %s" -#: ../gtk/main.c:1806 +#: ../gtk/main.c:2071 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -221,172 +226,173 @@ msgstr "" "Auf diesem Rechner können keine Soundkarten gefunden werden.\n" "Sie können keine Audio-Anrufe tätigen oder entgegennehmen." -#: ../gtk/main.c:1911 +#: ../gtk/main.c:2207 msgid "A free SIP video-phone" msgstr "Ein freies SIP-Video-Telefon" -#: ../gtk/friendlist.c:469 +#: ../gtk/friendlist.c:505 msgid "Add to addressbook" msgstr "Zum Adressbuch hinzufügen" -#: ../gtk/friendlist.c:643 +#: ../gtk/friendlist.c:691 msgid "Presence status" msgstr "Anwesenheitsstatus" -#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:709 ../gtk/propertybox.c:556 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Name" -#: ../gtk/friendlist.c:673 +#: ../gtk/friendlist.c:721 msgid "Call" msgstr "Anrufen" -#: ../gtk/friendlist.c:678 +#: ../gtk/friendlist.c:726 #, fuzzy msgid "Chat" msgstr "Chat Raum" -#: ../gtk/friendlist.c:708 +#: ../gtk/friendlist.c:756 #, c-format msgid "Search in %s directory" msgstr "Im %s-Verzeichnis suchen" -#: ../gtk/friendlist.c:924 +#: ../gtk/friendlist.c:971 #, c-format msgid "Edit contact '%s'" msgstr "Kontakt „%s“ bearbeiten" -#: ../gtk/friendlist.c:925 +#: ../gtk/friendlist.c:972 #, c-format msgid "Delete contact '%s'" msgstr "Kontakt „%s“ löschen" -#: ../gtk/friendlist.c:926 +#: ../gtk/friendlist.c:973 #, fuzzy, c-format msgid "Delete chat history of '%s'" msgstr "Kontakt „%s“ löschen" -#: ../gtk/friendlist.c:977 +#: ../gtk/friendlist.c:1024 #, c-format msgid "Add new contact from %s directory" msgstr "Einen neuen Kontakt aus dem %s-Verzeichnis hinzufügen" -#: ../gtk/propertybox.c:373 +#: ../gtk/propertybox.c:562 msgid "Rate (Hz)" msgstr "Rate (Hz)" -#: ../gtk/propertybox.c:379 +#: ../gtk/propertybox.c:568 msgid "Status" msgstr "Status" -#: ../gtk/propertybox.c:385 -msgid "Min bitrate (kbit/s)" +#: ../gtk/propertybox.c:574 +#, fuzzy +msgid "Bitrate (kbit/s)" msgstr "Min. Bitrate (kbit/s)" -#: ../gtk/propertybox.c:392 +#: ../gtk/propertybox.c:581 msgid "Parameters" msgstr "Parameter" -#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:624 ../gtk/propertybox.c:767 msgid "Enabled" msgstr "Freigegeben" -#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:626 ../gtk/propertybox.c:767 msgid "Disabled" msgstr "Gesperrt" -#: ../gtk/propertybox.c:624 +#: ../gtk/propertybox.c:813 msgid "Account" msgstr "Konto" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:1057 msgid "English" msgstr "Englisch" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:1058 msgid "French" msgstr "Französisch" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:1059 msgid "Swedish" msgstr "Schwedisch" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:1060 msgid "Italian" msgstr "Italienisch" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:1061 msgid "Spanish" msgstr "Spanisch" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:1062 msgid "Brazilian Portugese" msgstr "Brasilianisches Portugiesisch" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:1063 msgid "Polish" msgstr "Polnisch" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:1064 msgid "German" msgstr "Deutsch" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:1065 msgid "Russian" msgstr "Russisch" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:1066 msgid "Japanese" msgstr "Japanisch" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:1067 msgid "Dutch" msgstr "Niederländisch" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:1068 msgid "Hungarian" msgstr "Ungarisch" -#: ../gtk/propertybox.c:776 +#: ../gtk/propertybox.c:1069 msgid "Czech" msgstr "Tschechisch" -#: ../gtk/propertybox.c:777 +#: ../gtk/propertybox.c:1070 msgid "Chinese" msgstr "Chinesisch" -#: ../gtk/propertybox.c:778 +#: ../gtk/propertybox.c:1071 msgid "Traditional Chinese" msgstr "Traditionelles Chinesisch" -#: ../gtk/propertybox.c:779 +#: ../gtk/propertybox.c:1072 msgid "Norwegian" msgstr "Norwegisch" -#: ../gtk/propertybox.c:780 +#: ../gtk/propertybox.c:1073 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:781 +#: ../gtk/propertybox.c:1074 msgid "Serbian" msgstr "" -#: ../gtk/propertybox.c:848 +#: ../gtk/propertybox.c:1141 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" "Linphone muss neu gestartet werden, damit die neue Spracheinstellung wirksam " "wird." -#: ../gtk/propertybox.c:934 +#: ../gtk/propertybox.c:1219 msgid "None" msgstr "Keinen" -#: ../gtk/propertybox.c:938 +#: ../gtk/propertybox.c:1223 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:944 +#: ../gtk/propertybox.c:1229 msgid "ZRTP" msgstr "" @@ -452,59 +458,63 @@ msgstr "" msgid "I have already a sip account and I just want to use it" msgstr "Ich habe bereits ein SIP-Konto und möchte es jetzt benutzen." -#: ../gtk/setupwizard.c:85 +#: ../gtk/setupwizard.c:46 +msgid "I want to specify a remote configuration URI" +msgstr "" + +#: ../gtk/setupwizard.c:89 msgid "Enter your linphone.org username" msgstr "Geben Sie Ihren Benutzernamen bei linphone.org ein." -#: ../gtk/setupwizard.c:92 +#: ../gtk/setupwizard.c:96 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4 msgid "Username:" msgstr "Benutzername:" -#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:98 ../gtk/password.ui.h:4 ../gtk/ldap.ui.h:5 msgid "Password:" msgstr "Passwort:" -#: ../gtk/setupwizard.c:114 +#: ../gtk/setupwizard.c:118 msgid "Enter your account informations" msgstr "Geben Sie Ihre Zugangsdaten ein." -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:125 msgid "Username*" msgstr "Benutzername*" -#: ../gtk/setupwizard.c:122 +#: ../gtk/setupwizard.c:126 msgid "Password*" msgstr "Passwort*" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:129 msgid "Domain*" msgstr "Domäne*" -#: ../gtk/setupwizard.c:126 +#: ../gtk/setupwizard.c:130 msgid "Proxy" msgstr "Proxy" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:302 msgid "(*) Required fields" msgstr "(*) erforderliche Felder" -#: ../gtk/setupwizard.c:299 +#: ../gtk/setupwizard.c:303 msgid "Username: (*)" msgstr "Benutzername: (*)" -#: ../gtk/setupwizard.c:301 +#: ../gtk/setupwizard.c:305 msgid "Password: (*)" msgstr "Passwort: (*)" -#: ../gtk/setupwizard.c:303 +#: ../gtk/setupwizard.c:307 msgid "Email: (*)" msgstr "E-Mail: (*)" -#: ../gtk/setupwizard.c:305 +#: ../gtk/setupwizard.c:309 msgid "Confirm your password: (*)" msgstr "Bestätigen Sie Ihr Passwort: (*)" -#: ../gtk/setupwizard.c:369 +#: ../gtk/setupwizard.c:373 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." @@ -513,12 +523,12 @@ msgstr "" "verwendet oder der Server ist unerreichbar.\n" "Bitte gehen Sie zurück und versuchen Sie es noch einmal." -#: ../gtk/setupwizard.c:380 +#: ../gtk/setupwizard.c:384 msgid "Thank you. Your account is now configured and ready for use." msgstr "" "Danke. Ihr Konto ist nun fertig eingerichtet und kann verwendet werden." -#: ../gtk/setupwizard.c:388 +#: ../gtk/setupwizard.c:392 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" @@ -528,35 +538,40 @@ msgstr "" "wir Ihnen soeben per E-Mail geschickt haben.\n" "Danach gehen Sie hierher zurück und drücken auf „Vor“." -#: ../gtk/setupwizard.c:564 +#: ../gtk/setupwizard.c:572 +#, fuzzy +msgid "SIP account configuration assistant" +msgstr "Konto-Einrichtungsassistent" + +#: ../gtk/setupwizard.c:590 msgid "Welcome to the account setup assistant" msgstr "Willkommen zum Konto-Einrichtungsassistenten" -#: ../gtk/setupwizard.c:569 +#: ../gtk/setupwizard.c:595 msgid "Account setup assistant" msgstr "Konto-Einrichtungsassistent" -#: ../gtk/setupwizard.c:575 +#: ../gtk/setupwizard.c:601 msgid "Configure your account (step 1/1)" msgstr "Konto einrichten (Schritt 1/1)" -#: ../gtk/setupwizard.c:580 +#: ../gtk/setupwizard.c:606 msgid "Enter your sip username (step 1/1)" msgstr "Geben Sie Ihren SIP-Benutzernamen ein (Schritt 1/1)" -#: ../gtk/setupwizard.c:584 +#: ../gtk/setupwizard.c:610 msgid "Enter account information (step 1/2)" msgstr "Geben Sie Ihre Zugangsdaten ein (Schritt 1/2)" -#: ../gtk/setupwizard.c:593 +#: ../gtk/setupwizard.c:619 msgid "Validation (step 2/2)" msgstr "Bestätigung (Schritt 2/2)" -#: ../gtk/setupwizard.c:598 +#: ../gtk/setupwizard.c:624 msgid "Error" msgstr "Fehler" -#: ../gtk/setupwizard.c:602 +#: ../gtk/setupwizard.c:628 msgid "Terminating" msgstr "Fertigstellen" @@ -626,7 +641,7 @@ msgstr "ICE fehlgeschlagen" msgid "Direct or through server" msgstr "" -#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:261 ../gtk/incall_view.c:272 #, c-format msgid "" "download: %f\n" @@ -635,126 +650,141 @@ msgstr "" "Herunterladen: %f\n" "Hochladen: %f (kbit/s)" -#: ../gtk/incall_view.c:286 +#: ../gtk/incall_view.c:267 ../gtk/incall_view.c:268 +#, c-format +msgid "%ix%i" +msgstr "" + +#: ../gtk/incall_view.c:297 #, fuzzy, c-format msgid "%.3f seconds" msgstr "%i Sekunde" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:395 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:476 +#: ../gtk/incall_view.c:487 msgid "Calling..." msgstr "Verbindungsaufbau..." -#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:700 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:490 +#: ../gtk/incall_view.c:501 msgid "Incoming call" msgstr "Eingehender Anruf" -#: ../gtk/incall_view.c:527 +#: ../gtk/incall_view.c:538 msgid "good" msgstr "gut" -#: ../gtk/incall_view.c:529 +#: ../gtk/incall_view.c:540 msgid "average" msgstr "durchschnittlich" -#: ../gtk/incall_view.c:531 +#: ../gtk/incall_view.c:542 msgid "poor" msgstr "schlecht" -#: ../gtk/incall_view.c:533 +#: ../gtk/incall_view.c:544 msgid "very poor" msgstr "sehr schlecht" -#: ../gtk/incall_view.c:535 +#: ../gtk/incall_view.c:546 msgid "too bad" msgstr "zu schlecht" -#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:547 ../gtk/incall_view.c:563 msgid "unavailable" msgstr "nicht verfügbar" -#: ../gtk/incall_view.c:651 +#: ../gtk/incall_view.c:662 msgid "Secured by SRTP" msgstr "Gesichert durch SRTP" -#: ../gtk/incall_view.c:657 +#: ../gtk/incall_view.c:668 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "Gesichert durch ZRTP - [Auth.-Token: %s]" -#: ../gtk/incall_view.c:663 +#: ../gtk/incall_view.c:674 msgid "Set unverified" msgstr "Auf „Ungeprüft“ setzen" -#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:674 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "Auf „Geprüft“ setzen" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In conference" msgstr "In Konferenz" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In call" msgstr "Im Gespräch" -#: ../gtk/incall_view.c:718 +#: ../gtk/incall_view.c:731 msgid "Paused call" msgstr "Gehaltener Anruf" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:744 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:748 +#: ../gtk/incall_view.c:762 msgid "Call ended." msgstr "Anruf beendet." -#: ../gtk/incall_view.c:778 +#: ../gtk/incall_view.c:793 msgid "Transfer in progress" msgstr "Vermittlung läuft" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:796 msgid "Transfer done." msgstr "Vermittlung abgeschlossen." -#: ../gtk/incall_view.c:784 +#: ../gtk/incall_view.c:799 msgid "Transfer failed." msgstr "Vermittlung fehlgeschlagen." -#: ../gtk/incall_view.c:828 +#: ../gtk/incall_view.c:843 msgid "Resume" msgstr "Fortsetzen" -#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:850 ../gtk/main.ui.h:9 msgid "Pause" msgstr "Halten" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, fuzzy msgid "(Paused)" msgstr "Halten" -#: ../gtk/loginframe.c:93 +#: ../gtk/loginframe.c:88 #, c-format msgid "Please enter login information for %s" msgstr "Bitte geben Sie die Anmeldeinformationen für %s ein." +#: ../gtk/config-fetching.c:57 +#, fuzzy, c-format +msgid "fetching from %s" +msgstr "Eingehendes Gespr�h" + +#: ../gtk/config-fetching.c:73 +#, c-format +msgid "Downloading of remote configuration from %s failed." +msgstr "" + #: ../gtk/main.ui.h:1 msgid "Callee name" msgstr "Name des Angerufenen" @@ -801,89 +831,90 @@ msgid "_Options" msgstr "_Optionen" #: ../gtk/main.ui.h:18 +#, fuzzy +msgid "Set configuration URI" +msgstr "Proxy/Registrator Konfigurationsbox" + +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "Video immer starten" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "Selbstansicht ein" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "_Hilfe" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "Debug-Fenster anzeigen" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "Auf _Aktualisierungen überprüfen" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "Konto-Einrichtungsassistent" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "SIP-Adresse oder Telefonnummer:" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "Einen neuen Anruf beginnen" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:28 msgid "Contacts" msgstr "Kontakte" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 -msgid "Add" -msgstr "Hinzufügen" - -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 -msgid "Edit" -msgstr "Bearbeiten" - -#: ../gtk/main.ui.h:30 +#: ../gtk/main.ui.h:29 msgid "Search" msgstr "Suchen" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Add contacts from directory" msgstr "Kontakte aus einem Verzeichnis hinzufügen" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contact" msgstr "Kontakt hinzufügen" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 msgid "Recent calls" msgstr "Letzte Gespräche" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "My current identity:" msgstr "Aktuelle Identität:" -#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:34 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Benutzername" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Passwort" -#: ../gtk/main.ui.h:37 +#: ../gtk/main.ui.h:36 msgid "Internet connection:" msgstr "Internetverbindung:" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Automatically log me in" msgstr "Automatisch anmelden" +#: ../gtk/main.ui.h:38 ../gtk/password.ui.h:3 +msgid "UserID" +msgstr "Benutzer-ID" + #: ../gtk/main.ui.h:39 msgid "Login information" msgstr "Anmeldeinformationen" @@ -931,6 +962,7 @@ msgstr "" "verwendet." #: ../gtk/about.ui.h:5 +#, fuzzy msgid "" "fr: Simon Morlat\n" "en: Simon Morlat and Delphine Perreau\n" @@ -943,6 +975,7 @@ msgid "" "pl: Robert Nasiadek \n" "cs: Petr Pisar \n" "hu: anonymous\n" +"he: Eli Zaretskii \n" msgstr "" "fr: Simon Morlat\n" "en: Simon Morlat and Delphine Perreau\n" @@ -989,10 +1022,6 @@ msgstr "Linphone - Authentifikation erforderlich" msgid "Please enter the domain password" msgstr "Bitte das Passwort der Domäne eingeben" -#: ../gtk/password.ui.h:3 -msgid "UserID" -msgstr "Benutzer-ID" - #: ../gtk/call_logs.ui.h:1 msgid "Call history" msgstr "Anrufchronik" @@ -1030,274 +1059,320 @@ msgid "Looks like sip:" msgstr "Sieht aus wie sip:" #: ../gtk/sip_account.ui.h:7 -msgid "Route (optional):" -msgstr "Route (optional):" - -#: ../gtk/sip_account.ui.h:8 msgid "Registration duration (sec):" msgstr "Registrierungsdauer (sec):" +#: ../gtk/sip_account.ui.h:8 +#, fuzzy +msgid "Contact params (optional):" +msgstr "Route (optional):" + #: ../gtk/sip_account.ui.h:9 +msgid "Route (optional):" +msgstr "Route (optional):" + +#: ../gtk/sip_account.ui.h:10 +#, fuzzy +msgid "Transport" +msgstr "Übertragung" + +#: ../gtk/sip_account.ui.h:11 msgid "Register" msgstr "Registrieren" -#: ../gtk/sip_account.ui.h:10 +#: ../gtk/sip_account.ui.h:12 msgid "Publish presence information" msgstr "Anwesenheitsstatus veröffentlichen" -#: ../gtk/sip_account.ui.h:11 +#: ../gtk/sip_account.ui.h:13 msgid "Configure a SIP account" msgstr "SIP-Konto einrichten" #: ../gtk/parameters.ui.h:1 +msgid "anonymous" +msgstr "" + +#: ../gtk/parameters.ui.h:2 +msgid "GSSAPI" +msgstr "" + +#: ../gtk/parameters.ui.h:3 +msgid "SASL" +msgstr "" + +#: ../gtk/parameters.ui.h:4 msgid "default soundcard" msgstr "Standard-Soundkarte" -#: ../gtk/parameters.ui.h:2 +#: ../gtk/parameters.ui.h:5 msgid "a sound card" msgstr "eine Soundkarte" -#: ../gtk/parameters.ui.h:3 +#: ../gtk/parameters.ui.h:6 msgid "default camera" msgstr "Standard-Kamera" -#: ../gtk/parameters.ui.h:4 +#: ../gtk/parameters.ui.h:7 msgid "CIF" msgstr "" -#: ../gtk/parameters.ui.h:5 +#: ../gtk/parameters.ui.h:8 msgid "Audio codecs" msgstr "Audio-Codecs" -#: ../gtk/parameters.ui.h:6 +#: ../gtk/parameters.ui.h:9 msgid "Video codecs" msgstr "Video-Codecs" -#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:10 ../gtk/keypad.ui.h:5 msgid "C" msgstr "" -#: ../gtk/parameters.ui.h:8 +#: ../gtk/parameters.ui.h:11 msgid "SIP (UDP)" msgstr "" -#: ../gtk/parameters.ui.h:9 +#: ../gtk/parameters.ui.h:12 msgid "SIP (TCP)" msgstr "" -#: ../gtk/parameters.ui.h:10 +#: ../gtk/parameters.ui.h:13 msgid "SIP (TLS)" msgstr "" -#: ../gtk/parameters.ui.h:11 +#: ../gtk/parameters.ui.h:14 msgid "Settings" msgstr "Einstellungen" -#: ../gtk/parameters.ui.h:12 +#: ../gtk/parameters.ui.h:15 msgid "Set Maximum Transmission Unit:" msgstr "Maximum Transmission Unit setzen:" -#: ../gtk/parameters.ui.h:13 +#: ../gtk/parameters.ui.h:16 msgid "Send DTMFs as SIP info" msgstr "DTMFs als SIP-Info senden" -#: ../gtk/parameters.ui.h:14 +#: ../gtk/parameters.ui.h:17 msgid "Use IPv6 instead of IPv4" msgstr "IPv6 statt IPv4 verwenden" -#: ../gtk/parameters.ui.h:15 +#: ../gtk/parameters.ui.h:18 msgid "Transport" msgstr "Übertragung" -#: ../gtk/parameters.ui.h:16 +#: ../gtk/parameters.ui.h:19 msgid "Media encryption type" msgstr "Verschlüsselungstyp der Medien" -#: ../gtk/parameters.ui.h:17 +#: ../gtk/parameters.ui.h:20 msgid "Video RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:18 +#: ../gtk/parameters.ui.h:21 msgid "Audio RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:19 -msgid "DSCP fields" -msgstr "DSCP-Felder" - -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:22 msgid "Fixed" msgstr "Fest" -#: ../gtk/parameters.ui.h:21 -msgid "Tunnel" -msgstr "Tunnel" - -#: ../gtk/parameters.ui.h:22 +#: ../gtk/parameters.ui.h:23 #, fuzzy msgid "Media encryption is mandatory" msgstr "Verschlüsselungstyp der Medien" -#: ../gtk/parameters.ui.h:23 +#: ../gtk/parameters.ui.h:24 +msgid "Tunnel" +msgstr "Tunnel" + +#: ../gtk/parameters.ui.h:25 +msgid "DSCP fields" +msgstr "DSCP-Felder" + +#: ../gtk/parameters.ui.h:26 +#, fuzzy +msgid "SIP/TCP port" +msgstr "SIP-Port" + +#: ../gtk/parameters.ui.h:27 +#, fuzzy +msgid "SIP/UDP port" +msgstr "SIP-Port" + +#: ../gtk/parameters.ui.h:28 msgid "Network protocol and ports" msgstr "Netzwerkprotokoll und Ports" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:29 msgid "Direct connection to the Internet" msgstr "Direkte Verbindung ins Internet" -#: ../gtk/parameters.ui.h:25 -msgid "Behind NAT / Firewall (specify gateway IP below)" +#: ../gtk/parameters.ui.h:30 +#, fuzzy +msgid "Behind NAT / Firewall (specify gateway IP )" msgstr "Hinter NAT / Firewall (IP-Gateway darunter angeben)" -#: ../gtk/parameters.ui.h:26 -msgid "Public IP address:" -msgstr "Öffentliche IP-Adresse:" - -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:31 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "Hinter NAT / Firewall (STUN verwenden)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:32 msgid "Behind NAT / Firewall (use ICE)" msgstr "Hinter NAT / Firewall (ICE verwenden)" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:33 #, fuzzy msgid "Behind NAT / Firewall (use uPnP)" msgstr "Hinter NAT / Firewall (ICE verwenden)" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:34 +msgid "Public IP address:" +msgstr "Öffentliche IP-Adresse:" + +#: ../gtk/parameters.ui.h:35 msgid "Stun server:" msgstr "STUN-Server:" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:36 msgid "NAT and Firewall" msgstr "NAT und Firewall" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:37 msgid "Network settings" msgstr "Netzwerkeinstellungen" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:38 msgid "Ring sound:" msgstr "Klingelton:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:39 msgid "ALSA special device (optional):" msgstr "Spezielles ALSA-Gerät (optional):" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:40 msgid "Capture device:" msgstr "Aufnahmegerät:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:41 msgid "Ring device:" msgstr "Gerät für Klingelton:" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:42 msgid "Playback device:" msgstr "Wiedergabegerät:" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:43 msgid "Enable echo cancellation" msgstr "Echounterdrückung ein" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:44 msgid "Audio" msgstr "Audio" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:45 msgid "Video input device:" msgstr "Video-Aufnahmegerät:" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:46 msgid "Prefered video resolution:" msgstr "Bevorzugte Video-Auflösung:" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:47 +#, fuzzy +msgid "Video output method:" +msgstr "Video-Aufnahmegerät:" + +#: ../gtk/parameters.ui.h:48 msgid "Video" msgstr "Video" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:49 msgid "Multimedia settings" msgstr "Multimedia-Einstellungen" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:50 msgid "This section defines your SIP address when not using a SIP account" msgstr "" "In diesem Bereich legen Sie Ihre SIP-Adresse fest, wenn Sie kein SIP-Konto " "verwenden." -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:51 msgid "Your display name (eg: John Doe):" msgstr "Ihr angezeigter Name (z. B. Heinz Müller):" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:52 msgid "Your username:" msgstr "Ihr Benutzername:" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:53 msgid "Your resulting SIP address:" msgstr "Sich ergebende SIP-Adresse:" -#: ../gtk/parameters.ui.h:48 +#: ../gtk/parameters.ui.h:54 msgid "Default identity" msgstr "Standard-Identität" -#: ../gtk/parameters.ui.h:49 +#: ../gtk/parameters.ui.h:55 msgid "Wizard" msgstr "Assistent" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:56 +msgid "Add" +msgstr "Hinzufügen" + +#: ../gtk/parameters.ui.h:57 +msgid "Edit" +msgstr "Bearbeiten" + +#: ../gtk/parameters.ui.h:58 msgid "Remove" msgstr "Entfernen" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:59 msgid "Proxy accounts" msgstr "Proxy-Konten" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:60 msgid "Erase all passwords" msgstr "Alle Passwörter löschen" -#: ../gtk/parameters.ui.h:55 +#: ../gtk/parameters.ui.h:61 msgid "Privacy" msgstr "Privatsphäre" -#: ../gtk/parameters.ui.h:56 +#: ../gtk/parameters.ui.h:62 msgid "Manage SIP Accounts" msgstr "SIP-Konten verwalten" -#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Freigeben" -#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Sperren" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:65 msgid "Codecs" msgstr "Codecs" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:66 msgid "0 stands for \"unlimited\"" msgstr "0 bedeutet „unbegrenzt“" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:67 msgid "Upload speed limit in Kbit/sec:" msgstr "Upload-Bandbreite (kbit/sec):" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:68 msgid "Download speed limit in Kbit/sec:" msgstr "Download-Bandbreite (kbit/sec):" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:69 msgid "Enable adaptive rate control" msgstr "Adaptive Ratenregelung ein" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:70 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." @@ -1305,31 +1380,54 @@ msgstr "" "Adaptive Ratenregelung ist eine Technik zur dynamischen Abschätzung der " "zur Verfügung stehenden Bandbreite während eines Anrufs." -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:71 msgid "Bandwidth control" msgstr "Bandbreiten-Einstellungen" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:72 msgid "Codecs" msgstr "Codecs" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:73 msgid "Language" msgstr "Sprache" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:74 msgid "Show advanced settings" msgstr "Fortgeschrittene Einstellungen anzeigen" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:75 msgid "Level" msgstr "Detaillierung" -#: ../gtk/parameters.ui.h:70 +#: ../gtk/parameters.ui.h:76 msgid "User interface" msgstr "Benutzeroberfläche" -#: ../gtk/parameters.ui.h:71 +#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2 +#, fuzzy +msgid "Server address:" +msgstr "Server-Adresse:" + +#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3 +#, fuzzy +msgid "Authentication method:" +msgstr "Authentifikation fehlgeschlagen" + +#: ../gtk/parameters.ui.h:80 +msgid "label" +msgstr "" + +#: ../gtk/parameters.ui.h:81 +#, fuzzy +msgid "LDAP Account setup" +msgstr "Proxy-Konten" + +#: ../gtk/parameters.ui.h:82 +msgid "LDAP" +msgstr "" + +#: ../gtk/parameters.ui.h:83 msgid "Done" msgstr "Fertig" @@ -1354,7 +1452,8 @@ msgid "Please wait" msgstr "Bitte warten" #: ../gtk/dscp_settings.ui.h:1 -msgid "Dscp settings" +#, fuzzy +msgid "DSCP settings" msgstr "DSCP-Einstellungen" #: ../gtk/dscp_settings.ui.h:2 @@ -1409,6 +1508,15 @@ msgid "Round trip time" msgstr "Audio Eigenschaften" #: ../gtk/call_statistics.ui.h:9 +msgid "Video resolution received" +msgstr "" + +#: ../gtk/call_statistics.ui.h:10 +#, fuzzy +msgid "Video resolution sent" +msgstr "Bevorzugte Video-Auflösung:" + +#: ../gtk/call_statistics.ui.h:11 msgid "Call statistics and information" msgstr "Anrufstatistik und -informationen" @@ -1492,19 +1600,142 @@ msgstr "" msgid "1" msgstr "" -#: ../coreapi/linphonecore.c:228 +#: ../gtk/ldap.ui.h:1 +#, fuzzy +msgid "LDAP Settings" +msgstr "Einstellungen" + +#: ../gtk/ldap.ui.h:6 +msgid "Use TLS Connection" +msgstr "" + +#: ../gtk/ldap.ui.h:7 +#, fuzzy +msgid "Not yet available" +msgstr "nicht verfügbar" + +#: ../gtk/ldap.ui.h:8 +#, fuzzy +msgid "Connection" +msgstr "Codecs" + +#: ../gtk/ldap.ui.h:9 +msgid "Bind DN" +msgstr "" + +#: ../gtk/ldap.ui.h:10 +msgid "Authname" +msgstr "" + +#: ../gtk/ldap.ui.h:11 +#, fuzzy +msgid "Realm" +msgstr "Bereich:" + +#: ../gtk/ldap.ui.h:12 +#, fuzzy +msgid "SASL" +msgstr "Audio" + +#: ../gtk/ldap.ui.h:13 +msgid "Base object:" +msgstr "" + +#: ../gtk/ldap.ui.h:15 +#, no-c-format +msgid "Filter (%s for name):" +msgstr "" + +#: ../gtk/ldap.ui.h:16 +msgid "Name Attribute:" +msgstr "" + +#: ../gtk/ldap.ui.h:17 +#, fuzzy +msgid "SIP address attribute:" +msgstr "Adresse" + +#: ../gtk/ldap.ui.h:18 +msgid "Attributes to query:" +msgstr "" + +#: ../gtk/ldap.ui.h:19 +#, fuzzy +msgid "Search" +msgstr "Kontaktsuche" + +#: ../gtk/ldap.ui.h:20 +msgid "Timeout for search:" +msgstr "" + +#: ../gtk/ldap.ui.h:21 +msgid "Max results:" +msgstr "" + +#: ../gtk/ldap.ui.h:22 +msgid "Follow Aliases" +msgstr "" + +#: ../gtk/ldap.ui.h:23 +#, fuzzy +msgid "Miscellaneous" +msgstr "Video" + +#: ../gtk/ldap.ui.h:24 +msgid "ANONYMOUS" +msgstr "" + +#: ../gtk/ldap.ui.h:25 +msgid "SIMPLE" +msgstr "" + +#: ../gtk/ldap.ui.h:26 +msgid "DIGEST-MD5" +msgstr "" + +#: ../gtk/ldap.ui.h:27 +msgid "NTLM" +msgstr "" + +#: ../gtk/config-uri.ui.h:1 +msgid "Specifying a remote configuration URI" +msgstr "" + +#: ../gtk/config-uri.ui.h:2 +msgid "" +"This dialog allows to set an http or https address when configuration is to " +"be fetched at startup.\n" +"Please enter or modify the configuration URI below. After clicking OK, " +"Linphone will restart automatically in order to fetch and take into account " +"the new configuration. " +msgstr "" + +#: ../gtk/config-uri.ui.h:4 +msgid "https://" +msgstr "" + +#: ../gtk/provisioning-fetch.ui.h:1 +#, fuzzy +msgid "Configuring..." +msgstr "Verbinden..." + +#: ../gtk/provisioning-fetch.ui.h:2 +msgid "Please wait while fetching configuration from server..." +msgstr "" + +#: ../coreapi/linphonecore.c:238 msgid "aborted" msgstr "abgebrochen" -#: ../coreapi/linphonecore.c:231 +#: ../coreapi/linphonecore.c:241 msgid "completed" msgstr "beendet" -#: ../coreapi/linphonecore.c:234 +#: ../coreapi/linphonecore.c:244 msgid "missed" msgstr "entgangen" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:249 #, c-format msgid "" "%s at %s\n" @@ -1519,103 +1750,77 @@ msgstr "" "Status: %s\n" "Dauer: %i min %i sec\n" -#: ../coreapi/linphonecore.c:240 +#: ../coreapi/linphonecore.c:250 msgid "Outgoing call" msgstr "Abgehender Anruf" -#: ../coreapi/linphonecore.c:1321 +#: ../coreapi/linphonecore.c:1264 msgid "Ready" msgstr "Bereit" -#: ../coreapi/linphonecore.c:2205 +#: ../coreapi/linphonecore.c:1372 +#, fuzzy +msgid "Configuring" +msgstr "Bestätigung" + +#: ../coreapi/linphonecore.c:2331 msgid "Looking for telephone number destination..." msgstr "Telefonnummernziel wird gesucht..." -#: ../coreapi/linphonecore.c:2208 +#: ../coreapi/linphonecore.c:2334 msgid "Could not resolve this number." msgstr "Diese Nummer kann nicht aufgelöst werden." -#: ../coreapi/linphonecore.c:2252 -msgid "" -"Could not parse given sip address. A sip url usually looks like sip:" -"user@domain" -msgstr "" -"SIP-Adresse kann nicht eingelesen werden. Eine SIP-Adresse hat folgenden " -"Aufbau " - -#: ../coreapi/linphonecore.c:2453 +#. must be known at that time +#: ../coreapi/linphonecore.c:2609 msgid "Contacting" msgstr "Verbindungsaufbau" -#: ../coreapi/linphonecore.c:2460 +#: ../coreapi/linphonecore.c:2616 msgid "Could not call" msgstr "Anruf kann nicht getätigt werden." -#: ../coreapi/linphonecore.c:2570 +#: ../coreapi/linphonecore.c:2765 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Die maximale Anzahl der gleichzeitigen Anrufe ist erreicht." -#: ../coreapi/linphonecore.c:2752 +#: ../coreapi/linphonecore.c:2952 msgid "is contacting you" msgstr "ruft Sie an" -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid " and asked autoanswer." msgstr " und fragt nach automatischer Antwort." -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2820 +#: ../coreapi/linphonecore.c:3020 msgid "Modifying call parameters..." msgstr "Die Anrufparameter werden verändert..." -#: ../coreapi/linphonecore.c:3159 +#: ../coreapi/linphonecore.c:3362 msgid "Connected." msgstr "Verbunden." -#: ../coreapi/linphonecore.c:3187 +#: ../coreapi/linphonecore.c:3388 msgid "Call aborted" msgstr "Anruf abgebrochen" -#: ../coreapi/linphonecore.c:3378 +#: ../coreapi/linphonecore.c:3581 msgid "Could not pause the call" msgstr "Anruf kann nicht gehalten werden" -#: ../coreapi/linphonecore.c:3383 +#: ../coreapi/linphonecore.c:3586 msgid "Pausing the current call..." msgstr "Aktueller Anruf wird gehalten..." -#: ../coreapi/misc.c:148 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the pcm oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -"'modprobe snd-pcm-oss' as root to load it." -msgstr "" -"Ihre Rechner verwendet anscheinend einen ALSA-Soundtreiber.\n" -"Dies ist die beste Lösung; allerdings ist das von Linphone benötigte Modul\n" -"zur PCM-OSS-Emulation nicht vorhanden. Bitte führen Sie als\n" -"Systemverwalter den Befehl „modprobe snd-pcm-oss“ aus, um es zu laden." - -#: ../coreapi/misc.c:151 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the mixer oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -" 'modprobe snd-mixer-oss' as root to load it." -msgstr "" -"Ihre Rechner verwendet anscheinend einen ALSA-Soundtreiber.\n" -"Dies ist die beste Lösung; allerdings ist das von Linphone benötigte Modul\n" -"zur Mixer-OSS-Emulation nicht vorhanden. Bitte führen Sie als\n" -"Systemverwalter den Befehl „modprobe snd-mixer-oss“ aus, um es zu laden." - -#: ../coreapi/misc.c:496 +#: ../coreapi/misc.c:394 msgid "Stun lookup in progress..." msgstr "STUN-Ermittlung läuft..." -#: ../coreapi/misc.c:630 +#: ../coreapi/misc.c:576 msgid "ICE local candidates gathering in progress..." msgstr "Lokale Kandidaten für ICE werden zusammengestellt..." @@ -1664,10 +1869,15 @@ msgid "Pending" msgstr "Ausstehend" #: ../coreapi/friend.c:66 +#, fuzzy +msgid "Vacation" +msgstr "Dauer" + +#: ../coreapi/friend.c:68 msgid "Unknown-bug" msgstr "Unbekannter Fehler" -#: ../coreapi/proxy.c:204 +#: ../coreapi/proxy.c:209 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." @@ -1675,7 +1885,7 @@ msgstr "" "Die von Ihnen eingegebene SIP-Proxy-Adresse ist ungültig, sie muss mit " "„sip:“ gefolgt vom Hostnamen beginnen." -#: ../coreapi/proxy.c:210 +#: ../coreapi/proxy.c:215 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" @@ -1684,131 +1894,166 @@ msgstr "" "Sie sollte wie sip:benutzername@proxydomain aussehen, also z.B. sip:" "alice@beispiel.net" -#: ../coreapi/proxy.c:1069 +#: ../coreapi/proxy.c:1125 #, c-format msgid "Could not login as %s" msgstr "Anmeldung als %s fehlgeschlagen" -#: ../coreapi/callbacks.c:286 +#: ../coreapi/callbacks.c:289 msgid "Remote ringing." msgstr "Klingeln bei der Gegenseite." -#: ../coreapi/callbacks.c:306 +#: ../coreapi/callbacks.c:305 msgid "Remote ringing..." msgstr "Klingeln bei der Gegenseite..." -#: ../coreapi/callbacks.c:317 +#: ../coreapi/callbacks.c:316 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:368 +#: ../coreapi/callbacks.c:367 #, c-format msgid "Call with %s is paused." msgstr "Anruf mit %s wird gehalten." -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:380 #, c-format msgid "Call answered by %s - on hold." msgstr "Der von %s entgegengenommene Anruf wird gehalten." -#: ../coreapi/callbacks.c:392 +#: ../coreapi/callbacks.c:391 msgid "Call resumed." msgstr "Anruf fortgesetzt." -#: ../coreapi/callbacks.c:397 +#: ../coreapi/callbacks.c:396 #, c-format msgid "Call answered by %s." msgstr "Anruf wird von %s entgegengenommen." -#: ../coreapi/callbacks.c:412 +#: ../coreapi/callbacks.c:414 #, fuzzy msgid "Incompatible, check codecs or security settings..." msgstr "Inkompatibel, überprüfen Sie die Codecs..." -#: ../coreapi/callbacks.c:460 +#: ../coreapi/callbacks.c:463 msgid "We have been resumed." msgstr "Anruf wird fortgesetzt." -#: ../coreapi/callbacks.c:469 +#: ../coreapi/callbacks.c:471 msgid "We are paused by other party." msgstr "Anruf wird von der Gegenseite gehalten." -#: ../coreapi/callbacks.c:475 +#: ../coreapi/callbacks.c:487 msgid "Call is updated by remote." msgstr "Anruf ist von der Gegenseite aktualisiert worden." -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:558 msgid "Call terminated." msgstr "Anruf beendet." -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:586 msgid "User is busy." msgstr "Teilnehmer ist besetzt." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:587 msgid "User is temporarily unavailable." msgstr "Teilnehmer zur Zeit nicht verfügbar." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:558 +#: ../coreapi/callbacks.c:589 msgid "User does not want to be disturbed." msgstr "Teilnehmer möchte nicht gestört werden." -#: ../coreapi/callbacks.c:559 +#: ../coreapi/callbacks.c:590 msgid "Call declined." msgstr "Anruf abgewiesen" -#: ../coreapi/callbacks.c:571 +#: ../coreapi/callbacks.c:603 msgid "No response." msgstr "Keine Antwort." -#: ../coreapi/callbacks.c:575 +#: ../coreapi/callbacks.c:607 msgid "Protocol error." msgstr "Protokollfehler" -#: ../coreapi/callbacks.c:591 +#: ../coreapi/callbacks.c:623 msgid "Redirected" msgstr "Umgeleitet" -#: ../coreapi/callbacks.c:627 +#: ../coreapi/callbacks.c:665 msgid "Incompatible media parameters." msgstr "Inkompatible Medienparameter." -#: ../coreapi/callbacks.c:633 +#: ../coreapi/callbacks.c:677 msgid "Call failed." msgstr "Anruf fehlgeschlagen." -#: ../coreapi/callbacks.c:737 +#: ../coreapi/callbacks.c:751 #, c-format msgid "Registration on %s successful." msgstr "Registrierung auf %s erfolgreich." -#: ../coreapi/callbacks.c:738 +#: ../coreapi/callbacks.c:752 #, c-format msgid "Unregistration on %s done." msgstr "Abmeldung von %s ist erfolgt." -#: ../coreapi/callbacks.c:758 +#: ../coreapi/callbacks.c:772 msgid "no response timeout" msgstr "Zeitüberschreitung bei der Antwort" -#: ../coreapi/callbacks.c:761 +#: ../coreapi/callbacks.c:775 #, c-format msgid "Registration on %s failed: %s" msgstr "Registrierung auf %s fehlgeschlagen: %s" -#: ../coreapi/linphonecall.c:129 +#: ../coreapi/callbacks.c:785 +msgid "Service unavailable, retrying" +msgstr "" + +#: ../coreapi/linphonecall.c:142 #, c-format msgid "Authentication token is %s" msgstr "Authentifizierungs-Token ist %s" -#: ../coreapi/linphonecall.c:2355 +#: ../coreapi/linphonecall.c:2678 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "Sie haben %i Anruf in Abwesenheit." msgstr[1] "Sie haben %i Anrufe in Abwesenheit." +#~ msgid "" +#~ "Could not parse given sip address. A sip url usually looks like sip:" +#~ "user@domain" +#~ msgstr "" +#~ "SIP-Adresse kann nicht eingelesen werden. Eine SIP-Adresse hat folgenden " +#~ "Aufbau " + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the pcm oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ "'modprobe snd-pcm-oss' as root to load it." +#~ msgstr "" +#~ "Ihre Rechner verwendet anscheinend einen ALSA-Soundtreiber.\n" +#~ "Dies ist die beste Lösung; allerdings ist das von Linphone benötigte " +#~ "Modul\n" +#~ "zur PCM-OSS-Emulation nicht vorhanden. Bitte führen Sie als\n" +#~ "Systemverwalter den Befehl „modprobe snd-pcm-oss“ aus, um es zu laden." + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the mixer oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ " 'modprobe snd-mixer-oss' as root to load it." +#~ msgstr "" +#~ "Ihre Rechner verwendet anscheinend einen ALSA-Soundtreiber.\n" +#~ "Dies ist die beste Lösung; allerdings ist das von Linphone benötigte " +#~ "Modul\n" +#~ "zur Mixer-OSS-Emulation nicht vorhanden. Bitte führen Sie als\n" +#~ "Systemverwalter den Befehl „modprobe snd-mixer-oss“ aus, um es zu laden." + #~ msgid "Keypad" #~ msgstr "Wähltastatur" @@ -1840,9 +2085,6 @@ msgstr[1] "Sie haben %i Anrufe in Abwesenheit." #~ msgid "No common codecs" #~ msgstr "Keine gemeinsamen Codecs" -#~ msgid "Authentication failure" -#~ msgstr "Authentifikation fehlgeschlagen" - #~ msgid "We are being paused..." #~ msgstr "Anruf wird gehalten..." @@ -1872,9 +2114,6 @@ msgstr[1] "Sie haben %i Anrufe in Abwesenheit." #~ msgid "Verifying" #~ msgstr "Überprüfen" -#~ msgid "Confirmation" -#~ msgstr "Bestätigung" - #~ msgid "Creating your account" #~ msgstr "Erstellen Ihres Kontos" @@ -2143,10 +2382,6 @@ msgstr[1] "Sie haben %i Anrufe in Abwesenheit." #~ "Linphoneverwendet normalerweise IPv4. Bitte Konfiguration anpassen wenn " #~ "sie IPv6 verwenden wollen" -#, fuzzy -#~ msgid "Incoming call from %s" -#~ msgstr "Eingehendes Gespr�h" - #, fuzzy #~ msgid "_Modes" #~ msgstr "Codecs" @@ -2220,10 +2455,6 @@ msgstr[1] "Sie haben %i Anrufe in Abwesenheit." #~ msgid "Out To Lunch" #~ msgstr "Beim Essen" -#, fuzzy -#~ msgid "SIP address" -#~ msgstr "Adresse" - #, fuzzy #~ msgid "_View" #~ msgstr "Video" @@ -2409,9 +2640,6 @@ msgstr[1] "Sie haben %i Anrufe in Abwesenheit." #~ msgid "It is strongly recommended to use port 5060." #~ msgstr "Wir empfehlen, Port 5060 zu verwenden" -#~ msgid "SIP port" -#~ msgstr "SIP-Port" - #~ msgid "@" #~ msgstr "@" @@ -2461,9 +2689,6 @@ msgstr[1] "Sie haben %i Anrufe in Abwesenheit." #~ msgid "None." #~ msgstr "Nichts." -#~ msgid "Proxy/Registrar configuration box" -#~ msgstr "Proxy/Registrator Konfigurationsbox" - #~ msgid "Send registration:" #~ msgstr "Sende Registrierung:" @@ -2491,9 +2716,6 @@ msgstr[1] "Sie haben %i Anrufe in Abwesenheit." #~ msgid "userid:" #~ msgstr "Benutzer ID:" -#~ msgid "realm:" -#~ msgstr "Bereich:" - #~ msgid "Text:" #~ msgstr "Text" @@ -2554,10 +2776,6 @@ msgstr[1] "Sie haben %i Anrufe in Abwesenheit." #~ msgid "Firewall 's external ip address (in dot notations):" #~ msgstr "IP-Adresse des Firewall (in Punktnotation)" -#, fuzzy -#~ msgid "Server address" -#~ msgstr "Server-Adresse:" - #~ msgid "28k modem" #~ msgstr "28K Modem" diff --git a/po/es.po b/po/es.po index 474f630f4..92bfad869 100644 --- a/po/es.po +++ b/po/es.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Linphone 0.9.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-24 14:04+0200\n" +"POT-Creation-Date: 2014-02-14 14:57+0100\n" "PO-Revision-Date: 2012-12-06 15:54+0100\n" "Last-Translator: BERAUDO Guillaume \n" "Language-Team: es \n" @@ -15,12 +15,12 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:969 #, c-format msgid "Call %s" msgstr "Llamar a %s" -#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:970 #, c-format msgid "Send text to %s" msgstr "Enviar mensaje a %s" @@ -101,36 +101,36 @@ msgstr "Yo" msgid "Couldn't find pixmap file: %s" msgstr "No se pudo encontrar el archivo pixmap: %s" -#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:363 ../gtk/friendlist.c:919 msgid "Invalid sip contact !" msgstr "¡Contacto SIP no válido!" -#: ../gtk/main.c:92 +#: ../gtk/main.c:102 msgid "log to stdout some debug information while running." msgstr "" "registra a stdout cierta información de depuración durante la ejecución." -#: ../gtk/main.c:99 +#: ../gtk/main.c:109 msgid "path to a file to write logs into." msgstr "ruta a un fichero donde escribir logs." -#: ../gtk/main.c:106 +#: ../gtk/main.c:116 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:113 +#: ../gtk/main.c:123 msgid "Start only in the system tray, do not show the main interface." msgstr "Iniciar sólo en la barra de tareas, no mostrar la interfaz principal." -#: ../gtk/main.c:120 +#: ../gtk/main.c:130 msgid "address to call right now" msgstr "dirección a la que llamar inmediatamente" -#: ../gtk/main.c:127 +#: ../gtk/main.c:137 msgid "if set automatically answer incoming calls" msgstr "si está activo, responder a llamadas entrantes automáticamente" -#: ../gtk/main.c:134 +#: ../gtk/main.c:144 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -138,12 +138,17 @@ msgstr "" "Especifique un directorio de trabajo (debería ser la raíz de la instalación, " "ej: c:\\Archivos de Programa\\Linphone)" -#: ../gtk/main.c:515 +#: ../gtk/main.c:151 +#, fuzzy +msgid "Configuration file" +msgstr "Confirmación" + +#: ../gtk/main.c:573 #, c-format msgid "Call with %s" msgstr "Llamar con %s" -#: ../gtk/main.c:946 +#: ../gtk/main.c:1150 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -156,72 +161,72 @@ msgstr "" "contactos?\n" "Si responde no, esta persona será bloqueada temporalmente." -#: ../gtk/main.c:1023 -#, c-format +#: ../gtk/main.c:1227 +#, fuzzy, c-format msgid "" "Please enter your password for username %s\n" -" at domain %s:" +" at realm %s:" msgstr "" "Por favor, introduzca la contraseña para el usuario %s\n" " en el dominio %s:" -#: ../gtk/main.c:1126 +#: ../gtk/main.c:1339 #, fuzzy msgid "Call error" msgstr "Error en la llamada." -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 +#: ../gtk/main.c:1342 ../coreapi/linphonecore.c:3408 #, fuzzy msgid "Call ended" msgstr "Llamada terminada" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 +#: ../gtk/main.c:1345 ../coreapi/linphonecore.c:250 msgid "Incoming call" msgstr "Llamada entrante" -#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 +#: ../gtk/main.c:1347 ../gtk/incall_view.c:508 ../gtk/main.ui.h:5 msgid "Answer" msgstr "Contestar" -#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1349 ../gtk/main.ui.h:6 #, fuzzy msgid "Decline" msgstr "Rechazar" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy msgid "Call paused" msgstr "Llamada en pausa" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy, c-format msgid "by %s" msgstr "Puertos" -#: ../gtk/main.c:1191 +#: ../gtk/main.c:1422 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1353 +#: ../gtk/main.c:1584 msgid "Website link" msgstr "Enlace a la Web" -#: ../gtk/main.c:1402 +#: ../gtk/main.c:1633 msgid "Linphone - a video internet phone" msgstr "Linphone - un video-teléfono a través de Internet" -#: ../gtk/main.c:1494 +#: ../gtk/main.c:1725 #, c-format msgid "%s (Default)" msgstr "%s (Opción predeterminada)" -#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 +#: ../gtk/main.c:2061 ../coreapi/callbacks.c:827 #, c-format msgid "We are transferred to %s" msgstr "Somos transferidos a %s" -#: ../gtk/main.c:1806 +#: ../gtk/main.c:2071 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -229,173 +234,174 @@ msgstr "" "No se ha encontrado una tarjeta de sonido en este equipo.\n" "No será posible realizar o recibir llamadas de audio." -#: ../gtk/main.c:1911 +#: ../gtk/main.c:2207 msgid "A free SIP video-phone" msgstr "Un video-teléfono SIP gratuito" -#: ../gtk/friendlist.c:469 +#: ../gtk/friendlist.c:505 #, fuzzy msgid "Add to addressbook" msgstr "Añadir a la agenda" -#: ../gtk/friendlist.c:643 +#: ../gtk/friendlist.c:691 #, fuzzy msgid "Presence status" msgstr "Estado de Presencia" -#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:709 ../gtk/propertybox.c:556 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Nombre" -#: ../gtk/friendlist.c:673 +#: ../gtk/friendlist.c:721 #, fuzzy msgid "Call" msgstr "Llamada" -#: ../gtk/friendlist.c:678 +#: ../gtk/friendlist.c:726 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:708 +#: ../gtk/friendlist.c:756 #, c-format msgid "Search in %s directory" msgstr "Buscar en el directorio %s" -#: ../gtk/friendlist.c:924 +#: ../gtk/friendlist.c:971 #, fuzzy, c-format msgid "Edit contact '%s'" msgstr "Editar contacto '%s'" -#: ../gtk/friendlist.c:925 +#: ../gtk/friendlist.c:972 #, c-format msgid "Delete contact '%s'" msgstr "Eliminar contacto '%s'" -#: ../gtk/friendlist.c:926 +#: ../gtk/friendlist.c:973 #, fuzzy, c-format msgid "Delete chat history of '%s'" msgstr "Eliminar contacto '%s'" -#: ../gtk/friendlist.c:977 +#: ../gtk/friendlist.c:1024 #, c-format msgid "Add new contact from %s directory" msgstr "Añadir nuevo contacto desde el directorio %s" -#: ../gtk/propertybox.c:373 +#: ../gtk/propertybox.c:562 msgid "Rate (Hz)" msgstr "Frecuencia (Hz)" -#: ../gtk/propertybox.c:379 +#: ../gtk/propertybox.c:568 msgid "Status" msgstr "Estado" -#: ../gtk/propertybox.c:385 -msgid "Min bitrate (kbit/s)" +#: ../gtk/propertybox.c:574 +#, fuzzy +msgid "Bitrate (kbit/s)" msgstr "Bitrate mínimo (kbit/s)" -#: ../gtk/propertybox.c:392 +#: ../gtk/propertybox.c:581 msgid "Parameters" msgstr "Parámetros" -#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:624 ../gtk/propertybox.c:767 msgid "Enabled" msgstr "Activado" -#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:626 ../gtk/propertybox.c:767 msgid "Disabled" msgstr "Desactivado" -#: ../gtk/propertybox.c:624 +#: ../gtk/propertybox.c:813 msgid "Account" msgstr "Cuenta" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:1057 msgid "English" msgstr "Inglés" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:1058 msgid "French" msgstr "Francés" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:1059 msgid "Swedish" msgstr "Sueco" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:1060 msgid "Italian" msgstr "Italiano" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:1061 msgid "Spanish" msgstr "Español" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:1062 msgid "Brazilian Portugese" msgstr "Portugués de Brasil" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:1063 msgid "Polish" msgstr "Polaco" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:1064 msgid "German" msgstr "Alemán" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:1065 msgid "Russian" msgstr "Ruso" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:1066 msgid "Japanese" msgstr "Japonés" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:1067 msgid "Dutch" msgstr "Holandés" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:1068 msgid "Hungarian" msgstr "Húngaro" -#: ../gtk/propertybox.c:776 +#: ../gtk/propertybox.c:1069 msgid "Czech" msgstr "Checo" -#: ../gtk/propertybox.c:777 +#: ../gtk/propertybox.c:1070 msgid "Chinese" msgstr "Chino" -#: ../gtk/propertybox.c:778 +#: ../gtk/propertybox.c:1071 msgid "Traditional Chinese" msgstr "Chino Tradicional" -#: ../gtk/propertybox.c:779 +#: ../gtk/propertybox.c:1072 msgid "Norwegian" msgstr "Noruego" -#: ../gtk/propertybox.c:780 +#: ../gtk/propertybox.c:1073 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:781 +#: ../gtk/propertybox.c:1074 msgid "Serbian" msgstr "" -#: ../gtk/propertybox.c:848 +#: ../gtk/propertybox.c:1141 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "Deberá reiniciar linphone para aplicar la nueva selección de lenguaje" -#: ../gtk/propertybox.c:934 +#: ../gtk/propertybox.c:1219 #, fuzzy msgid "None" msgstr "Ninguno." -#: ../gtk/propertybox.c:938 +#: ../gtk/propertybox.c:1223 msgid "SRTP" msgstr "SRTP" -#: ../gtk/propertybox.c:944 +#: ../gtk/propertybox.c:1229 msgid "ZRTP" msgstr "ZRTP" @@ -465,111 +471,120 @@ msgstr "Ya tengo una cuenta y quiero utilizarla" msgid "I have already a sip account and I just want to use it" msgstr "Ya tengo una cuenta y quiero utilizarla" -#: ../gtk/setupwizard.c:85 +#: ../gtk/setupwizard.c:46 +msgid "I want to specify a remote configuration URI" +msgstr "" + +#: ../gtk/setupwizard.c:89 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:92 +#: ../gtk/setupwizard.c:96 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4 #, fuzzy msgid "Username:" msgstr "Nombre de usuario:" -#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:98 ../gtk/password.ui.h:4 ../gtk/ldap.ui.h:5 #, fuzzy msgid "Password:" msgstr "Contraseña:" -#: ../gtk/setupwizard.c:114 +#: ../gtk/setupwizard.c:118 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:125 #, fuzzy msgid "Username*" msgstr "Nombre de usuario" -#: ../gtk/setupwizard.c:122 +#: ../gtk/setupwizard.c:126 #, fuzzy msgid "Password*" msgstr "Contraseña:" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:129 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:126 +#: ../gtk/setupwizard.c:130 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:302 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:299 +#: ../gtk/setupwizard.c:303 #, fuzzy msgid "Username: (*)" msgstr "Nombre de usuario:" -#: ../gtk/setupwizard.c:301 +#: ../gtk/setupwizard.c:305 #, fuzzy msgid "Password: (*)" msgstr "Contraseña:" -#: ../gtk/setupwizard.c:303 +#: ../gtk/setupwizard.c:307 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:305 +#: ../gtk/setupwizard.c:309 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:369 +#: ../gtk/setupwizard.c:373 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:380 +#: ../gtk/setupwizard.c:384 msgid "Thank you. Your account is now configured and ready for use." msgstr "Gracias. Su cuenta está configurada y lista para su utilización." -#: ../gtk/setupwizard.c:388 +#: ../gtk/setupwizard.c:392 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:564 +#: ../gtk/setupwizard.c:572 +#, fuzzy +msgid "SIP account configuration assistant" +msgstr "Asistente de configuración de cuenta" + +#: ../gtk/setupwizard.c:590 msgid "Welcome to the account setup assistant" msgstr "Bienvenido al asistente de configuración de cuenta" -#: ../gtk/setupwizard.c:569 +#: ../gtk/setupwizard.c:595 msgid "Account setup assistant" msgstr "Asistente de configuración de cuenta" -#: ../gtk/setupwizard.c:575 +#: ../gtk/setupwizard.c:601 #, fuzzy msgid "Configure your account (step 1/1)" msgstr "Configurar una cuenta SIP" -#: ../gtk/setupwizard.c:580 +#: ../gtk/setupwizard.c:606 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:584 +#: ../gtk/setupwizard.c:610 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:593 +#: ../gtk/setupwizard.c:619 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:598 +#: ../gtk/setupwizard.c:624 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:602 +#: ../gtk/setupwizard.c:628 msgid "Terminating" msgstr "" @@ -641,140 +656,155 @@ msgstr "La llamada ha fallado." msgid "Direct or through server" msgstr "" -#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:261 ../gtk/incall_view.c:272 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:286 +#: ../gtk/incall_view.c:267 ../gtk/incall_view.c:268 +#, c-format +msgid "%ix%i" +msgstr "" + +#: ../gtk/incall_view.c:297 #, fuzzy, c-format msgid "%.3f seconds" msgstr "%i segundo" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:395 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:476 +#: ../gtk/incall_view.c:487 #, fuzzy msgid "Calling..." msgstr " Llamando..." -#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:700 msgid "00::00::00" msgstr "00::00::00" -#: ../gtk/incall_view.c:490 +#: ../gtk/incall_view.c:501 #, fuzzy msgid "Incoming call" msgstr "Llamada entrante" -#: ../gtk/incall_view.c:527 +#: ../gtk/incall_view.c:538 msgid "good" msgstr "buena" -#: ../gtk/incall_view.c:529 +#: ../gtk/incall_view.c:540 msgid "average" msgstr "media" -#: ../gtk/incall_view.c:531 +#: ../gtk/incall_view.c:542 msgid "poor" msgstr "mala" -#: ../gtk/incall_view.c:533 +#: ../gtk/incall_view.c:544 msgid "very poor" msgstr "muy mala" -#: ../gtk/incall_view.c:535 +#: ../gtk/incall_view.c:546 msgid "too bad" msgstr "demasiado mala" -#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:547 ../gtk/incall_view.c:563 msgid "unavailable" msgstr "no disponible" -#: ../gtk/incall_view.c:651 +#: ../gtk/incall_view.c:662 msgid "Secured by SRTP" msgstr "Cifrada con SRTP" -#: ../gtk/incall_view.c:657 +#: ../gtk/incall_view.c:668 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "Cifrada con ZRTP - [token de autenticación: %s]" -#: ../gtk/incall_view.c:663 +#: ../gtk/incall_view.c:674 msgid "Set unverified" msgstr "Set sin verificar" -#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:674 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "Set verificado" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In conference" msgstr "En conferencia" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 #, fuzzy msgid "In call" msgstr "En llamada " -#: ../gtk/incall_view.c:718 +#: ../gtk/incall_view.c:731 #, fuzzy msgid "Paused call" msgstr "Llamada en pausa" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:744 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i::%02i::%02i" -#: ../gtk/incall_view.c:748 +#: ../gtk/incall_view.c:762 #, fuzzy msgid "Call ended." msgstr "Llamada finalizada." -#: ../gtk/incall_view.c:778 +#: ../gtk/incall_view.c:793 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:796 #, fuzzy msgid "Transfer done." msgstr "Transferir" -#: ../gtk/incall_view.c:784 +#: ../gtk/incall_view.c:799 #, fuzzy msgid "Transfer failed." msgstr "Transferir" -#: ../gtk/incall_view.c:828 +#: ../gtk/incall_view.c:843 msgid "Resume" msgstr "Reanudar" -#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:850 ../gtk/main.ui.h:9 msgid "Pause" msgstr "Pausar" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, fuzzy msgid "(Paused)" msgstr "Pausar" -#: ../gtk/loginframe.c:93 +#: ../gtk/loginframe.c:88 #, c-format msgid "Please enter login information for %s" msgstr "Por favor, introduzca los datos de inicio de sesión para %s" +#: ../gtk/config-fetching.c:57 +#, c-format +msgid "fetching from %s" +msgstr "" + +#: ../gtk/config-fetching.c:73 +#, c-format +msgid "Downloading of remote configuration from %s failed." +msgstr "" + #: ../gtk/main.ui.h:1 #, fuzzy msgid "Callee name" @@ -825,100 +855,101 @@ msgid "_Options" msgstr "_Opciones" #: ../gtk/main.ui.h:18 +#, fuzzy +msgid "Set configuration URI" +msgstr "Confirmación" + +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 #, fuzzy msgid "Enable self-view" msgstr "Activar vista propia" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "_Ayuda" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 #, fuzzy msgid "Show debug window" msgstr "Mostrar ventana de depuración" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "_Pagina_de_Inicio" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "Buscar_Actualizaciones" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 #, fuzzy msgid "Account assistant" msgstr "Asistente de configuración de cuenta" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 #, fuzzy msgid "SIP address or phone number:" msgstr "Dirección SIP o número de teléfono" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "Iniciar nueva llamada" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:28 #, fuzzy msgid "Contacts" msgstr "Contactos" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 -msgid "Add" -msgstr "Añadir" - -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 -msgid "Edit" -msgstr "Editar" - -#: ../gtk/main.ui.h:30 +#: ../gtk/main.ui.h:29 msgid "Search" msgstr "Buscar" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 #, fuzzy msgid "Add contacts from directory" msgstr "Añadir contactos desde un directorio" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 #, fuzzy msgid "Add contact" msgstr "Añadir contacto" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Recent calls" msgstr "Llamadas recientes " -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "My current identity:" msgstr "Mi identidad actual:" -#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:34 ../gtk/tunnel_config.ui.h:7 #, fuzzy msgid "Username" msgstr "Nombre de usuario" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:8 #, fuzzy msgid "Password" msgstr "Contraseña:" -#: ../gtk/main.ui.h:37 +#: ../gtk/main.ui.h:36 msgid "Internet connection:" msgstr "Conexión a Internet" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Automatically log me in" msgstr "Iniciar sesión automáticamente" +#: ../gtk/main.ui.h:38 ../gtk/password.ui.h:3 +msgid "UserID" +msgstr "UserID" + #: ../gtk/main.ui.h:39 #, fuzzy msgid "Login information" @@ -972,6 +1003,7 @@ msgstr "" "(rfc3261)" #: ../gtk/about.ui.h:5 +#, fuzzy msgid "" "fr: Simon Morlat\n" "en: Simon Morlat and Delphine Perreau\n" @@ -984,6 +1016,7 @@ msgid "" "pl: Robert Nasiadek \n" "cs: Petr Pisar \n" "hu: anonymous\n" +"he: Eli Zaretskii \n" msgstr "" "fr: Simon Morlat\n" "en: Simon Morlat and Delphine Perreau\n" @@ -1033,10 +1066,6 @@ msgstr "Linphone - Autenticación necesaria" msgid "Please enter the domain password" msgstr "Por favor introduzca la contraseña del dominio" -#: ../gtk/password.ui.h:3 -msgid "UserID" -msgstr "UserID" - #: ../gtk/call_logs.ui.h:1 msgid "Call history" msgstr "Registro de llamadas" @@ -1076,295 +1105,341 @@ msgid "Looks like sip:" msgstr "Del tipo sip:" #: ../gtk/sip_account.ui.h:7 -msgid "Route (optional):" -msgstr "Ruta (opcional):" - -#: ../gtk/sip_account.ui.h:8 #, fuzzy msgid "Registration duration (sec):" msgstr "Duración del registro (seg):" +#: ../gtk/sip_account.ui.h:8 +#, fuzzy +msgid "Contact params (optional):" +msgstr "Ruta (opcional):" + #: ../gtk/sip_account.ui.h:9 +msgid "Route (optional):" +msgstr "Ruta (opcional):" + +#: ../gtk/sip_account.ui.h:10 +#, fuzzy +msgid "Transport" +msgstr "Transporte " + +#: ../gtk/sip_account.ui.h:11 msgid "Register" msgstr "Registrarse" -#: ../gtk/sip_account.ui.h:10 +#: ../gtk/sip_account.ui.h:12 #, fuzzy msgid "Publish presence information" msgstr "Publicar información de presencia" -#: ../gtk/sip_account.ui.h:11 +#: ../gtk/sip_account.ui.h:13 msgid "Configure a SIP account" msgstr "Configurar una cuenta SIP" #: ../gtk/parameters.ui.h:1 +msgid "anonymous" +msgstr "" + +#: ../gtk/parameters.ui.h:2 +msgid "GSSAPI" +msgstr "" + +#: ../gtk/parameters.ui.h:3 +msgid "SASL" +msgstr "" + +#: ../gtk/parameters.ui.h:4 msgid "default soundcard" msgstr "tarjeta de sonido predeterminada" -#: ../gtk/parameters.ui.h:2 +#: ../gtk/parameters.ui.h:5 msgid "a sound card" msgstr "una tarjeta de sonido" -#: ../gtk/parameters.ui.h:3 +#: ../gtk/parameters.ui.h:6 msgid "default camera" msgstr "cámara predeterminada" -#: ../gtk/parameters.ui.h:4 +#: ../gtk/parameters.ui.h:7 msgid "CIF" msgstr "CIF" -#: ../gtk/parameters.ui.h:5 +#: ../gtk/parameters.ui.h:8 #, fuzzy msgid "Audio codecs" msgstr "Códecs de Audio" -#: ../gtk/parameters.ui.h:6 +#: ../gtk/parameters.ui.h:9 #, fuzzy msgid "Video codecs" msgstr "Códecs de Vídeo" -#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:10 ../gtk/keypad.ui.h:5 msgid "C" msgstr "C" -#: ../gtk/parameters.ui.h:8 +#: ../gtk/parameters.ui.h:11 msgid "SIP (UDP)" msgstr "SIP (UDP)" -#: ../gtk/parameters.ui.h:9 +#: ../gtk/parameters.ui.h:12 msgid "SIP (TCP)" msgstr "SIP (TCP)" -#: ../gtk/parameters.ui.h:10 +#: ../gtk/parameters.ui.h:13 msgid "SIP (TLS)" msgstr "SIP (TLS)" -#: ../gtk/parameters.ui.h:11 +#: ../gtk/parameters.ui.h:14 msgid "Settings" msgstr "Configuración" -#: ../gtk/parameters.ui.h:12 +#: ../gtk/parameters.ui.h:15 msgid "Set Maximum Transmission Unit:" msgstr "Fijar Unidad de Transmisión Máxima:" -#: ../gtk/parameters.ui.h:13 +#: ../gtk/parameters.ui.h:16 msgid "Send DTMFs as SIP info" msgstr "Enviar DTMFs como información SIP" -#: ../gtk/parameters.ui.h:14 +#: ../gtk/parameters.ui.h:17 msgid "Use IPv6 instead of IPv4" msgstr "Utilizar IPv6 en lugar de IPv4" -#: ../gtk/parameters.ui.h:15 +#: ../gtk/parameters.ui.h:18 #, fuzzy msgid "Transport" msgstr "Transporte " -#: ../gtk/parameters.ui.h:16 +#: ../gtk/parameters.ui.h:19 msgid "Media encryption type" msgstr "Tipo de cifrado de medios" -#: ../gtk/parameters.ui.h:17 +#: ../gtk/parameters.ui.h:20 msgid "Video RTP/UDP:" msgstr "Vídeo RTP/UDP" -#: ../gtk/parameters.ui.h:18 +#: ../gtk/parameters.ui.h:21 msgid "Audio RTP/UDP:" msgstr "Audio RTP/UDP:" -#: ../gtk/parameters.ui.h:19 -msgid "DSCP fields" -msgstr "" - -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:22 msgid "Fixed" msgstr "" -#: ../gtk/parameters.ui.h:21 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:22 +#: ../gtk/parameters.ui.h:23 #, fuzzy msgid "Media encryption is mandatory" msgstr "Tipo de cifrado de medios" -#: ../gtk/parameters.ui.h:23 -msgid "Network protocol and ports" -msgstr "Protocolo de red y puertos" - #: ../gtk/parameters.ui.h:24 -msgid "Direct connection to the Internet" -msgstr "Conexión directa a Internet" +msgid "Tunnel" +msgstr "" #: ../gtk/parameters.ui.h:25 -msgid "Behind NAT / Firewall (specify gateway IP below)" -msgstr "Tras un NAT/Firewall (especificar la IP de la puerta de enlace debajo)" +msgid "DSCP fields" +msgstr "" #: ../gtk/parameters.ui.h:26 #, fuzzy -msgid "Public IP address:" -msgstr "Dirección IP pública:" +msgid "SIP/TCP port" +msgstr "Puerto SIP" #: ../gtk/parameters.ui.h:27 +#, fuzzy +msgid "SIP/UDP port" +msgstr "Puerto SIP" + +#: ../gtk/parameters.ui.h:28 +msgid "Network protocol and ports" +msgstr "Protocolo de red y puertos" + +#: ../gtk/parameters.ui.h:29 +msgid "Direct connection to the Internet" +msgstr "Conexión directa a Internet" + +#: ../gtk/parameters.ui.h:30 +#, fuzzy +msgid "Behind NAT / Firewall (specify gateway IP )" +msgstr "Tras un NAT/Firewall (especificar la IP de la puerta de enlace debajo)" + +#: ../gtk/parameters.ui.h:31 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "Tras un NAT/Firewall (utilizar STUN para resolver)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:32 #, fuzzy msgid "Behind NAT / Firewall (use ICE)" msgstr "Tras un NAT/Firewall (utilizar STUN para resolver)" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:33 #, fuzzy msgid "Behind NAT / Firewall (use uPnP)" msgstr "Tras un NAT/Firewall (utilizar STUN para resolver)" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:34 +#, fuzzy +msgid "Public IP address:" +msgstr "Dirección IP pública:" + +#: ../gtk/parameters.ui.h:35 #, fuzzy msgid "Stun server:" msgstr "Servidor STUN" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:36 #, fuzzy msgid "NAT and Firewall" msgstr "NAT y Firewall" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:37 #, fuzzy msgid "Network settings" msgstr "Configuración de red" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:38 #, fuzzy msgid "Ring sound:" msgstr "Tono de llamada:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:39 msgid "ALSA special device (optional):" msgstr "Dispositivo especial ALSA (opcional):" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:40 #, fuzzy msgid "Capture device:" msgstr "Dispositivo de captura:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:41 #, fuzzy msgid "Ring device:" msgstr "Dispositivo de sonido:" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:42 #, fuzzy msgid "Playback device:" msgstr "Dispositivo de reproducción:" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:43 msgid "Enable echo cancellation" msgstr "Activar cancelación de eco" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:44 #, fuzzy msgid "Audio" msgstr "Audio" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:45 #, fuzzy msgid "Video input device:" msgstr "Dispositivo de entrada de vídeo:" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:46 msgid "Prefered video resolution:" msgstr "Resolución de vídeo preferida:" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:47 +#, fuzzy +msgid "Video output method:" +msgstr "Dispositivo de entrada de vídeo:" + +#: ../gtk/parameters.ui.h:48 #, fuzzy msgid "Video" msgstr "Vídeo " -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:49 msgid "Multimedia settings" msgstr "Configuración multimedia" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:50 msgid "This section defines your SIP address when not using a SIP account" msgstr "Esta sección define su dirección SIP cuando no utiliza una cuenta SIP" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:51 msgid "Your display name (eg: John Doe):" msgstr "Su nombre a mostrar (x ej: Pepito Pérez):" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:52 #, fuzzy msgid "Your username:" msgstr "Su nombre de usuario:" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:53 #, fuzzy msgid "Your resulting SIP address:" msgstr "Su dirección SIP resultante:" -#: ../gtk/parameters.ui.h:48 +#: ../gtk/parameters.ui.h:54 #, fuzzy msgid "Default identity" msgstr "Identidad predeterminada" -#: ../gtk/parameters.ui.h:49 +#: ../gtk/parameters.ui.h:55 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:56 +msgid "Add" +msgstr "Añadir" + +#: ../gtk/parameters.ui.h:57 +msgid "Edit" +msgstr "Editar" + +#: ../gtk/parameters.ui.h:58 msgid "Remove" msgstr "Eliminar" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:59 #, fuzzy msgid "Proxy accounts" msgstr "Cuentas Proxy" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:60 msgid "Erase all passwords" msgstr "Borrar todas las contraseñas" -#: ../gtk/parameters.ui.h:55 +#: ../gtk/parameters.ui.h:61 #, fuzzy msgid "Privacy" msgstr "Privacidad" -#: ../gtk/parameters.ui.h:56 +#: ../gtk/parameters.ui.h:62 msgid "Manage SIP Accounts" msgstr "Gestionar cuentas SIP" -#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Activar" -#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Desactivar" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:65 #, fuzzy msgid "Codecs" msgstr "Códecs" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:66 msgid "0 stands for \"unlimited\"" msgstr "0 significa \"ilimitado\"" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:67 msgid "Upload speed limit in Kbit/sec:" msgstr "Velocidad límite de subida en Kbit/seg" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:68 msgid "Download speed limit in Kbit/sec:" msgstr "Velocidad límite de descarga en Kbit/seg:" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:69 msgid "Enable adaptive rate control" msgstr "Activar control de frecuencia adaptativo" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:70 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." @@ -1372,35 +1447,58 @@ msgstr "" "Control de frecuencia adaptativo es una técnica que estima dinámicamente " "el ancho de banda disponible durante la llamada." -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:71 msgid "Bandwidth control" msgstr "Control de ancho de banda" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:72 #, fuzzy msgid "Codecs" msgstr "Códecs" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:73 #, fuzzy msgid "Language" msgstr "Idioma" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:74 msgid "Show advanced settings" msgstr "Mostrar opciones avanzadas" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:75 #, fuzzy msgid "Level" msgstr "Nivel" -#: ../gtk/parameters.ui.h:70 +#: ../gtk/parameters.ui.h:76 #, fuzzy msgid "User interface" msgstr "Interfaz de Usuario" -#: ../gtk/parameters.ui.h:71 +#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2 +#, fuzzy +msgid "Server address:" +msgstr "Dirección del Servidor:" + +#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3 +#, fuzzy +msgid "Authentication method:" +msgstr "Error de autenticación" + +#: ../gtk/parameters.ui.h:80 +msgid "label" +msgstr "etiqueta" + +#: ../gtk/parameters.ui.h:81 +#, fuzzy +msgid "LDAP Account setup" +msgstr "Cuentas Proxy" + +#: ../gtk/parameters.ui.h:82 +msgid "LDAP" +msgstr "" + +#: ../gtk/parameters.ui.h:83 #, fuzzy msgid "Done" msgstr "Hecho" @@ -1430,7 +1528,7 @@ msgstr "Espere por favor" #: ../gtk/dscp_settings.ui.h:1 #, fuzzy -msgid "Dscp settings" +msgid "DSCP settings" msgstr "Configuración" #: ../gtk/dscp_settings.ui.h:2 @@ -1487,6 +1585,15 @@ msgid "Round trip time" msgstr "Propiedades de sonido" #: ../gtk/call_statistics.ui.h:9 +msgid "Video resolution received" +msgstr "" + +#: ../gtk/call_statistics.ui.h:10 +#, fuzzy +msgid "Video resolution sent" +msgstr "Resolución de vídeo preferida:" + +#: ../gtk/call_statistics.ui.h:11 #, fuzzy msgid "Call statistics and information" msgstr "Información de contacto" @@ -1572,19 +1679,141 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:228 +#: ../gtk/ldap.ui.h:1 +#, fuzzy +msgid "LDAP Settings" +msgstr "Configuración" + +#: ../gtk/ldap.ui.h:6 +msgid "Use TLS Connection" +msgstr "" + +#: ../gtk/ldap.ui.h:7 +#, fuzzy +msgid "Not yet available" +msgstr "no disponible" + +#: ../gtk/ldap.ui.h:8 +#, fuzzy +msgid "Connection" +msgstr "Códecs" + +#: ../gtk/ldap.ui.h:9 +msgid "Bind DN" +msgstr "" + +#: ../gtk/ldap.ui.h:10 +msgid "Authname" +msgstr "" + +#: ../gtk/ldap.ui.h:11 +msgid "Realm" +msgstr "" + +#: ../gtk/ldap.ui.h:12 +#, fuzzy +msgid "SASL" +msgstr "Audio" + +#: ../gtk/ldap.ui.h:13 +msgid "Base object:" +msgstr "" + +#: ../gtk/ldap.ui.h:15 +#, no-c-format +msgid "Filter (%s for name):" +msgstr "" + +#: ../gtk/ldap.ui.h:16 +msgid "Name Attribute:" +msgstr "" + +#: ../gtk/ldap.ui.h:17 +#, fuzzy +msgid "SIP address attribute:" +msgstr "Dirección SIP" + +#: ../gtk/ldap.ui.h:18 +msgid "Attributes to query:" +msgstr "" + +#: ../gtk/ldap.ui.h:19 +#, fuzzy +msgid "Search" +msgstr "Buscar a alguien" + +#: ../gtk/ldap.ui.h:20 +msgid "Timeout for search:" +msgstr "" + +#: ../gtk/ldap.ui.h:21 +msgid "Max results:" +msgstr "" + +#: ../gtk/ldap.ui.h:22 +msgid "Follow Aliases" +msgstr "" + +#: ../gtk/ldap.ui.h:23 +#, fuzzy +msgid "Miscellaneous" +msgstr "Vídeo " + +#: ../gtk/ldap.ui.h:24 +msgid "ANONYMOUS" +msgstr "" + +#: ../gtk/ldap.ui.h:25 +msgid "SIMPLE" +msgstr "" + +#: ../gtk/ldap.ui.h:26 +msgid "DIGEST-MD5" +msgstr "" + +#: ../gtk/ldap.ui.h:27 +msgid "NTLM" +msgstr "" + +#: ../gtk/config-uri.ui.h:1 +msgid "Specifying a remote configuration URI" +msgstr "" + +#: ../gtk/config-uri.ui.h:2 +msgid "" +"This dialog allows to set an http or https address when configuration is to " +"be fetched at startup.\n" +"Please enter or modify the configuration URI below. After clicking OK, " +"Linphone will restart automatically in order to fetch and take into account " +"the new configuration. " +msgstr "" + +#: ../gtk/config-uri.ui.h:4 +msgid "https://" +msgstr "" + +#: ../gtk/provisioning-fetch.ui.h:1 +#, fuzzy +msgid "Configuring..." +msgstr "Conectando..." + +#: ../gtk/provisioning-fetch.ui.h:2 +msgid "Please wait while fetching configuration from server..." +msgstr "" + +#: ../coreapi/linphonecore.c:238 msgid "aborted" msgstr "abortada" -#: ../coreapi/linphonecore.c:231 +#: ../coreapi/linphonecore.c:241 msgid "completed" msgstr "completada" -#: ../coreapi/linphonecore.c:234 +#: ../coreapi/linphonecore.c:244 msgid "missed" msgstr "perdida" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:249 #, c-format msgid "" "%s at %s\n" @@ -1599,109 +1828,82 @@ msgstr "" "Estado: %s\n" "Duración: %i min %i seg\n" -#: ../coreapi/linphonecore.c:240 +#: ../coreapi/linphonecore.c:250 msgid "Outgoing call" msgstr "Llamada saliente" -#: ../coreapi/linphonecore.c:1321 +#: ../coreapi/linphonecore.c:1264 #, fuzzy msgid "Ready" msgstr "Preparado" -#: ../coreapi/linphonecore.c:2205 +#: ../coreapi/linphonecore.c:1372 +#, fuzzy +msgid "Configuring" +msgstr "Confirmación" + +#: ../coreapi/linphonecore.c:2331 msgid "Looking for telephone number destination..." msgstr "Buscando el número de teléfono del destinatario…" -#: ../coreapi/linphonecore.c:2208 +#: ../coreapi/linphonecore.c:2334 msgid "Could not resolve this number." msgstr "No se ha podido resolver este número." -#: ../coreapi/linphonecore.c:2252 -#, fuzzy -msgid "" -"Could not parse given sip address. A sip url usually looks like sip:" -"user@domain" -msgstr "" -"Dirección SIP mal escrita. Una dirección SIP es del tipo " - -#: ../coreapi/linphonecore.c:2453 +#. must be known at that time +#: ../coreapi/linphonecore.c:2609 #, fuzzy msgid "Contacting" msgstr "Contactando" -#: ../coreapi/linphonecore.c:2460 +#: ../coreapi/linphonecore.c:2616 #, fuzzy msgid "Could not call" msgstr "No se pudo llamar" -#: ../coreapi/linphonecore.c:2570 +#: ../coreapi/linphonecore.c:2765 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Disculpe, se ha alcanzado el máximo número de llamadas simultáneas" -#: ../coreapi/linphonecore.c:2752 +#: ../coreapi/linphonecore.c:2952 #, fuzzy msgid "is contacting you" msgstr "le está llamando" -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid " and asked autoanswer." msgstr "y ha solicitado auto respuesta." -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2820 +#: ../coreapi/linphonecore.c:3020 msgid "Modifying call parameters..." msgstr "Modificando parámetros de llamada…" -#: ../coreapi/linphonecore.c:3159 +#: ../coreapi/linphonecore.c:3362 msgid "Connected." msgstr "Conectado." -#: ../coreapi/linphonecore.c:3187 +#: ../coreapi/linphonecore.c:3388 #, fuzzy msgid "Call aborted" msgstr "Llamada abortada" -#: ../coreapi/linphonecore.c:3378 +#: ../coreapi/linphonecore.c:3581 msgid "Could not pause the call" msgstr "No se pudo pausar la llamada" -#: ../coreapi/linphonecore.c:3383 +#: ../coreapi/linphonecore.c:3586 msgid "Pausing the current call..." msgstr "Pausando la llamada actual..." -#: ../coreapi/misc.c:148 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the pcm oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -"'modprobe snd-pcm-oss' as root to load it." -msgstr "" -"Tu ordenador parece estar usando los controladores de sonido de ALSA.\n" -"Ésta es la mejor elección. Sin embargo, el módulo de emulación pcm de OSS\n" -"no se encuentra y linphone lo necesita. Por favor ejecute\n" -"'modprobe snd-pcm-oss' como root para cargarlo." - -#: ../coreapi/misc.c:151 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the mixer oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -" 'modprobe snd-mixer-oss' as root to load it." -msgstr "" -"Tu ordenador parece estar usando los controladores de sonido de ALSA.\n" -"Ésta es la mejor elección. Sin embargo, el módulo de emulación mixer de OSS\n" -"no se encuentra y linphone lo necesita. Por favor ejecute\n" -" 'modprobe snd-mixer-oss' como root para cargarlo." - -#: ../coreapi/misc.c:496 +#: ../coreapi/misc.c:394 msgid "Stun lookup in progress..." msgstr "Búsqueda STUN en proceso…" -#: ../coreapi/misc.c:630 +#: ../coreapi/misc.c:576 msgid "ICE local candidates gathering in progress..." msgstr "" @@ -1754,10 +1956,15 @@ msgid "Pending" msgstr "Pendiente" #: ../coreapi/friend.c:66 +#, fuzzy +msgid "Vacation" +msgstr "Duración" + +#: ../coreapi/friend.c:68 msgid "Unknown-bug" msgstr "Bug-desconocido" -#: ../coreapi/proxy.c:204 +#: ../coreapi/proxy.c:209 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." @@ -1765,7 +1972,7 @@ msgstr "" "La dirección del Proxy SIP que ha introducido no es válida, debe empezar con " "\"sip:\" seguido del hostname." -#: ../coreapi/proxy.c:210 +#: ../coreapi/proxy.c:215 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" @@ -1774,139 +1981,172 @@ msgstr "" "Debe ser del tipo sip:username@proxydomain, como por ejemplo sip:" "alice@example.net" -#: ../coreapi/proxy.c:1069 +#: ../coreapi/proxy.c:1125 #, fuzzy, c-format msgid "Could not login as %s" msgstr "No se pudo iniciar sesión como %s" -#: ../coreapi/callbacks.c:286 +#: ../coreapi/callbacks.c:289 #, fuzzy msgid "Remote ringing." msgstr "El destinatario está sonando..." -#: ../coreapi/callbacks.c:306 +#: ../coreapi/callbacks.c:305 #, fuzzy msgid "Remote ringing..." msgstr "El destinatario está sonando..." -#: ../coreapi/callbacks.c:317 +#: ../coreapi/callbacks.c:316 msgid "Early media." msgstr "Medios iniciales." -#: ../coreapi/callbacks.c:368 +#: ../coreapi/callbacks.c:367 #, c-format msgid "Call with %s is paused." msgstr "La llamada con %s está puesta en pausa." -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:380 #, c-format msgid "Call answered by %s - on hold." msgstr "Llamada respondida por %s - en espera." -#: ../coreapi/callbacks.c:392 +#: ../coreapi/callbacks.c:391 #, fuzzy msgid "Call resumed." msgstr "Llamada reanudada." -#: ../coreapi/callbacks.c:397 +#: ../coreapi/callbacks.c:396 #, fuzzy, c-format msgid "Call answered by %s." msgstr "Llamada respondida por %s." -#: ../coreapi/callbacks.c:412 +#: ../coreapi/callbacks.c:414 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:460 +#: ../coreapi/callbacks.c:463 #, fuzzy msgid "We have been resumed." msgstr "Nos han reanudado..." -#: ../coreapi/callbacks.c:469 +#: ../coreapi/callbacks.c:471 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:475 +#: ../coreapi/callbacks.c:487 #, fuzzy msgid "Call is updated by remote." msgstr "La llamada ha sido actualizada por el destinatario..." -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:558 #, fuzzy msgid "Call terminated." msgstr "Llamada finalizada." -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:586 msgid "User is busy." msgstr "El usuario está ocupado." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:587 msgid "User is temporarily unavailable." msgstr "El usuario no está disponible temporalmente." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:558 +#: ../coreapi/callbacks.c:589 msgid "User does not want to be disturbed." msgstr "El usuario no quiere que le molesten." -#: ../coreapi/callbacks.c:559 +#: ../coreapi/callbacks.c:590 msgid "Call declined." msgstr "Llamada rechazada." -#: ../coreapi/callbacks.c:571 +#: ../coreapi/callbacks.c:603 msgid "No response." msgstr "No hay respuesta." -#: ../coreapi/callbacks.c:575 +#: ../coreapi/callbacks.c:607 msgid "Protocol error." msgstr "Error de protocolo." -#: ../coreapi/callbacks.c:591 +#: ../coreapi/callbacks.c:623 msgid "Redirected" msgstr "Redigirida" -#: ../coreapi/callbacks.c:627 +#: ../coreapi/callbacks.c:665 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:633 +#: ../coreapi/callbacks.c:677 #, fuzzy msgid "Call failed." msgstr "La llamada ha fallado." -#: ../coreapi/callbacks.c:737 +#: ../coreapi/callbacks.c:751 #, fuzzy, c-format msgid "Registration on %s successful." msgstr "Se ha registrado con éxito en %s." -#: ../coreapi/callbacks.c:738 +#: ../coreapi/callbacks.c:752 #, fuzzy, c-format msgid "Unregistration on %s done." msgstr "Cancelación de registro en %s completada." -#: ../coreapi/callbacks.c:758 +#: ../coreapi/callbacks.c:772 msgid "no response timeout" msgstr "timeout sin respuesta" -#: ../coreapi/callbacks.c:761 +#: ../coreapi/callbacks.c:775 #, fuzzy, c-format msgid "Registration on %s failed: %s" msgstr "El registro en %s ha fallado." -#: ../coreapi/linphonecall.c:129 +#: ../coreapi/callbacks.c:785 +msgid "Service unavailable, retrying" +msgstr "" + +#: ../coreapi/linphonecall.c:142 #, fuzzy, c-format msgid "Authentication token is %s" msgstr "El tóken de autenticación es%s" -#: ../coreapi/linphonecall.c:2355 +#: ../coreapi/linphonecall.c:2678 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "Tiene %i llamada perdida." msgstr[1] "Tiene %i llamadas perdidas." -#~ msgid "label" -#~ msgstr "etiqueta" +#, fuzzy +#~ msgid "" +#~ "Could not parse given sip address. A sip url usually looks like sip:" +#~ "user@domain" +#~ msgstr "" +#~ "Dirección SIP mal escrita. Una dirección SIP es del tipo " + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the pcm oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ "'modprobe snd-pcm-oss' as root to load it." +#~ msgstr "" +#~ "Tu ordenador parece estar usando los controladores de sonido de ALSA.\n" +#~ "Ésta es la mejor elección. Sin embargo, el módulo de emulación pcm de " +#~ "OSS\n" +#~ "no se encuentra y linphone lo necesita. Por favor ejecute\n" +#~ "'modprobe snd-pcm-oss' como root para cargarlo." + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the mixer oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ " 'modprobe snd-mixer-oss' as root to load it." +#~ msgstr "" +#~ "Tu ordenador parece estar usando los controladores de sonido de ALSA.\n" +#~ "Ésta es la mejor elección. Sin embargo, el módulo de emulación mixer de " +#~ "OSS\n" +#~ "no se encuentra y linphone lo necesita. Por favor ejecute\n" +#~ " 'modprobe snd-mixer-oss' como root para cargarlo." #~ msgid "Chat with %s" #~ msgstr "Conversación con %s" @@ -1940,10 +2180,6 @@ msgstr[1] "Tiene %i llamadas perdidas." #~ msgid "Verifying" #~ msgstr "Verificando" -#, fuzzy -#~ msgid "Confirmation" -#~ msgstr "Confirmación" - #~ msgid "Creating your account" #~ msgstr "Creando su cuenta" @@ -1979,10 +2215,6 @@ msgstr[1] "Tiene %i llamadas perdidas." #~ msgid "No common codecs" #~ msgstr "No hay códecs comunes" -#, fuzzy -#~ msgid "Authentication failure" -#~ msgstr "Error de autenticación" - #, fuzzy #~ msgid "Contact list" #~ msgstr "Lista de contactos " @@ -2054,10 +2286,6 @@ msgstr[1] "Tiene %i llamadas perdidas." #~ msgid "Gone" #~ msgstr "Ausente" -#, fuzzy -#~ msgid "SIP address" -#~ msgstr "Dirección SIP" - #, fuzzy #~ msgid "Display filters" #~ msgstr "Filtros a mostrar" @@ -2170,9 +2398,6 @@ msgstr[1] "Tiene %i llamadas perdidas." #~ msgid "It is strongly recommended to use port 5060." #~ msgstr "Se recomienda encarecidamente usar el puerto 5060." -#~ msgid "SIP port" -#~ msgstr "Puerto SIP" - #~ msgid "@" #~ msgstr "@" @@ -2239,10 +2464,6 @@ msgstr[1] "Tiene %i llamadas perdidas." #~ msgid "Index" #~ msgstr "Índice" -#, fuzzy -#~ msgid "Server address" -#~ msgstr "Dirección del Servidor:" - #~ msgid "28k modem" #~ msgstr "módem 28k" diff --git a/po/fr.po b/po/fr.po index 02c1f8fca..9f45b8dbc 100644 --- a/po/fr.po +++ b/po/fr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Linphone 0.9.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-24 14:04+0200\n" +"POT-Creation-Date: 2014-02-14 14:57+0100\n" "PO-Revision-Date: 2013-04-09 13:57+0100\n" "Last-Translator: Simon Morlat \n" "Language-Team: french \n" @@ -15,12 +15,12 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:969 #, c-format msgid "Call %s" msgstr "Appeler %s" -#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:970 #, c-format msgid "Send text to %s" msgstr "Chatter avec %s" @@ -57,8 +57,8 @@ msgstr[1] "" #, c-format msgid "%i second" msgid_plural "%i seconds" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%i seconde" +msgstr[1] "%i secondes" #: ../gtk/calllogs.c:321 ../gtk/calllogs.c:327 #, c-format @@ -94,35 +94,35 @@ msgstr "Moi" msgid "Couldn't find pixmap file: %s" msgstr "Icone non trouvée: %s" -#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:363 ../gtk/friendlist.c:919 msgid "Invalid sip contact !" msgstr "Contact sip invalide !" -#: ../gtk/main.c:92 +#: ../gtk/main.c:102 msgid "log to stdout some debug information while running." msgstr "affiche des informations de debogage" -#: ../gtk/main.c:99 +#: ../gtk/main.c:109 msgid "path to a file to write logs into." msgstr "chemin vers le fichier de logs." -#: ../gtk/main.c:106 +#: ../gtk/main.c:116 msgid "Start linphone with video disabled." msgstr "Démarrer linphone avec la vidéo désactivée." -#: ../gtk/main.c:113 +#: ../gtk/main.c:123 msgid "Start only in the system tray, do not show the main interface." msgstr "Démarre iconifié, sans interface principale." -#: ../gtk/main.c:120 +#: ../gtk/main.c:130 msgid "address to call right now" msgstr "adresse à appeler maintenant" -#: ../gtk/main.c:127 +#: ../gtk/main.c:137 msgid "if set automatically answer incoming calls" msgstr "si positionné, répond automatiquement aux appels entrants" -#: ../gtk/main.c:134 +#: ../gtk/main.c:144 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -130,12 +130,16 @@ msgstr "" "Spécifie un répertoire de travail (qui devrait être le répertoire " "d'installation, par exemple c:\\Program Files\\Linphone)" -#: ../gtk/main.c:515 +#: ../gtk/main.c:151 +msgid "Configuration file" +msgstr "Ficher de configuration" + +#: ../gtk/main.c:573 #, c-format msgid "Call with %s" msgstr "Appel avec %s" -#: ../gtk/main.c:946 +#: ../gtk/main.c:1150 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -149,68 +153,67 @@ msgstr "" "Si vous répondez non, cette personne sera mise temporairement sur liste " "noire." -#: ../gtk/main.c:1023 -#, c-format +#: ../gtk/main.c:1227 msgid "" "Please enter your password for username %s\n" -" at domain %s:" +" at realm %s:" msgstr "" "Entrez le mot de passe pour %s\n" " sur le domaine %s:" -#: ../gtk/main.c:1126 +#: ../gtk/main.c:1339 msgid "Call error" msgstr "Erreur lors de l'appel" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 +#: ../gtk/main.c:1342 ../coreapi/linphonecore.c:3408 msgid "Call ended" msgstr "Appel terminé." -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 +#: ../gtk/main.c:1345 ../coreapi/linphonecore.c:250 msgid "Incoming call" msgstr "Appel entrant" -#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 +#: ../gtk/main.c:1347 ../gtk/incall_view.c:508 ../gtk/main.ui.h:5 msgid "Answer" msgstr "Répondre" -#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1349 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Refuser" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 msgid "Call paused" msgstr "Appel en pause" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, c-format msgid "by %s" msgstr "b>par %s" -#: ../gtk/main.c:1191 +#: ../gtk/main.c:1422 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s propose de démarrer la vidéo. Acceptez-vous ?" -#: ../gtk/main.c:1353 +#: ../gtk/main.c:1584 msgid "Website link" msgstr "Lien site web" -#: ../gtk/main.c:1402 +#: ../gtk/main.c:1633 msgid "Linphone - a video internet phone" msgstr "Linphone - un téléphone video pour l'internet" -#: ../gtk/main.c:1494 +#: ../gtk/main.c:1725 #, c-format msgid "%s (Default)" msgstr "%s (par défaut)" -#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 +#: ../gtk/main.c:2061 ../coreapi/callbacks.c:827 #, c-format msgid "We are transferred to %s" msgstr "Transfert vers %s" -#: ../gtk/main.c:1806 +#: ../gtk/main.c:2071 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -218,171 +221,171 @@ msgstr "" "Aucune carte son n'a été détectée sur cet ordinateur.\n" "Vous ne pourrez pas effectuer d'appels audio." -#: ../gtk/main.c:1911 +#: ../gtk/main.c:2207 msgid "A free SIP video-phone" msgstr "Un visiophone libre" -#: ../gtk/friendlist.c:469 +#: ../gtk/friendlist.c:505 msgid "Add to addressbook" msgstr "Ajouter au carnet d'adresse" -#: ../gtk/friendlist.c:643 +#: ../gtk/friendlist.c:691 msgid "Presence status" msgstr "Info de présence" -#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:709 ../gtk/propertybox.c:556 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Nom" -#: ../gtk/friendlist.c:673 +#: ../gtk/friendlist.c:721 msgid "Call" msgstr "Appeler" -#: ../gtk/friendlist.c:678 +#: ../gtk/friendlist.c:726 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:708 +#: ../gtk/friendlist.c:756 #, c-format msgid "Search in %s directory" msgstr "Rechercher dans l'annuaire de %s" -#: ../gtk/friendlist.c:924 +#: ../gtk/friendlist.c:971 #, c-format msgid "Edit contact '%s'" msgstr "Editer le contact '%s'" -#: ../gtk/friendlist.c:925 +#: ../gtk/friendlist.c:972 #, c-format msgid "Delete contact '%s'" msgstr "Supprimer le contact '%s'" -#: ../gtk/friendlist.c:926 +#: ../gtk/friendlist.c:973 #, c-format msgid "Delete chat history of '%s'" msgstr "Supprimer l'historique de chat de '%s'" -#: ../gtk/friendlist.c:977 +#: ../gtk/friendlist.c:1024 #, c-format msgid "Add new contact from %s directory" msgstr "Ajouter un contact depuis l'annuaire %s" -#: ../gtk/propertybox.c:373 +#: ../gtk/propertybox.c:562 msgid "Rate (Hz)" msgstr "Fréquence (Hz)" -#: ../gtk/propertybox.c:379 +#: ../gtk/propertybox.c:568 msgid "Status" msgstr "Etat" -#: ../gtk/propertybox.c:385 -msgid "Min bitrate (kbit/s)" -msgstr "Débit min. (kbit/s)" +#: ../gtk/propertybox.c:574 +msgid "Bitrate (kbit/s)" +msgstr "Débit (kbit/s)" -#: ../gtk/propertybox.c:392 +#: ../gtk/propertybox.c:581 msgid "Parameters" msgstr "Paramètres" -#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:624 ../gtk/propertybox.c:767 msgid "Enabled" msgstr "Activé" -#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:626 ../gtk/propertybox.c:767 msgid "Disabled" msgstr "Désactivé" -#: ../gtk/propertybox.c:624 +#: ../gtk/propertybox.c:813 msgid "Account" msgstr "Compte" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:1057 msgid "English" msgstr "Anglais" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:1058 msgid "French" msgstr "Français" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:1059 msgid "Swedish" msgstr "Suédois" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:1060 msgid "Italian" msgstr "Italien" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:1061 msgid "Spanish" msgstr "Espagnol" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:1062 msgid "Brazilian Portugese" msgstr "Portugais brésilien" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:1063 msgid "Polish" msgstr "Polonais" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:1064 msgid "German" msgstr "Allemand" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:1065 msgid "Russian" msgstr "Russe" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:1066 msgid "Japanese" msgstr "日本語" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:1067 msgid "Dutch" msgstr "Néérlandais" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:1068 msgid "Hungarian" msgstr "Hongrois" -#: ../gtk/propertybox.c:776 +#: ../gtk/propertybox.c:1069 msgid "Czech" msgstr "Tchèque" -#: ../gtk/propertybox.c:777 +#: ../gtk/propertybox.c:1070 msgid "Chinese" msgstr "简体中文" -#: ../gtk/propertybox.c:778 +#: ../gtk/propertybox.c:1071 msgid "Traditional Chinese" msgstr "Chinois traditionnel" -#: ../gtk/propertybox.c:779 +#: ../gtk/propertybox.c:1072 msgid "Norwegian" msgstr "Norvégien" -#: ../gtk/propertybox.c:780 +#: ../gtk/propertybox.c:1073 msgid "Hebrew" msgstr "Hébreu" -#: ../gtk/propertybox.c:781 +#: ../gtk/propertybox.c:1074 msgid "Serbian" msgstr "Serbe" -#: ../gtk/propertybox.c:848 +#: ../gtk/propertybox.c:1141 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" "La nouvelle selection de langue prendra effet au prochain démarrage de " "linphone." -#: ../gtk/propertybox.c:934 +#: ../gtk/propertybox.c:1219 msgid "None" msgstr "Aucun" -#: ../gtk/propertybox.c:938 +#: ../gtk/propertybox.c:1223 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:944 +#: ../gtk/propertybox.c:1229 msgid "ZRTP" msgstr "" @@ -447,59 +450,63 @@ msgstr "J'ai déjà un compte linphone.org et je souhaite l'utiliser" msgid "I have already a sip account and I just want to use it" msgstr "J'ai déjà un compte Sip et je souhaite l'utiliser" -#: ../gtk/setupwizard.c:85 +#: ../gtk/setupwizard.c:46 +msgid "I want to specify a remote configuration URI" +msgstr "Je veux spécifier une URI de configuration" + +#: ../gtk/setupwizard.c:89 msgid "Enter your linphone.org username" msgstr "Entrez votre identifiant linphone.org" -#: ../gtk/setupwizard.c:92 +#: ../gtk/setupwizard.c:96 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4 msgid "Username:" msgstr "Nom d'utilisateur:" -#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:98 ../gtk/password.ui.h:4 ../gtk/ldap.ui.h:5 msgid "Password:" msgstr "Mot de passe:" -#: ../gtk/setupwizard.c:114 +#: ../gtk/setupwizard.c:118 msgid "Enter your account informations" msgstr "Entrez les informations concernant votre compte" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:125 msgid "Username*" msgstr "Nom d'utilisateur*" -#: ../gtk/setupwizard.c:122 +#: ../gtk/setupwizard.c:126 msgid "Password*" msgstr "Mot de passe*" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:129 msgid "Domain*" msgstr "Domaine*" -#: ../gtk/setupwizard.c:126 +#: ../gtk/setupwizard.c:130 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:302 msgid "(*) Required fields" msgstr "(*) Champs requis" -#: ../gtk/setupwizard.c:299 +#: ../gtk/setupwizard.c:303 msgid "Username: (*)" msgstr "Nom d'utilisateur: (*)" -#: ../gtk/setupwizard.c:301 +#: ../gtk/setupwizard.c:305 msgid "Password: (*)" msgstr "Mot de passe: (*)" -#: ../gtk/setupwizard.c:303 +#: ../gtk/setupwizard.c:307 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:305 +#: ../gtk/setupwizard.c:309 msgid "Confirm your password: (*)" msgstr "Confirmez votre mot de passe: (*)" -#: ../gtk/setupwizard.c:369 +#: ../gtk/setupwizard.c:373 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." @@ -508,11 +515,11 @@ msgstr "" "serveur n'est pas accessible.\n" "Merci d'essayer à nouveau." -#: ../gtk/setupwizard.c:380 +#: ../gtk/setupwizard.c:384 msgid "Thank you. Your account is now configured and ready for use." msgstr "Merci. Votre compte est maintenant configuré et prêt à être utilisé." -#: ../gtk/setupwizard.c:388 +#: ../gtk/setupwizard.c:392 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" @@ -522,35 +529,40 @@ msgstr "" "par email.\n" "Puis appuyez sur suivant." -#: ../gtk/setupwizard.c:564 +#: ../gtk/setupwizard.c:572 +#, fuzzy +msgid "SIP account configuration assistant" +msgstr "Assistant de configuration de compte." + +#: ../gtk/setupwizard.c:590 msgid "Welcome to the account setup assistant" msgstr "Bienvenue dans l'assistant de configuration de compte." -#: ../gtk/setupwizard.c:569 +#: ../gtk/setupwizard.c:595 msgid "Account setup assistant" msgstr "Assistant de configuration de compte." -#: ../gtk/setupwizard.c:575 +#: ../gtk/setupwizard.c:601 msgid "Configure your account (step 1/1)" msgstr "Configurez votre compte (étape 1/1)" -#: ../gtk/setupwizard.c:580 +#: ../gtk/setupwizard.c:606 msgid "Enter your sip username (step 1/1)" msgstr "Entrez votre identifiant sip (étape 1/1)" -#: ../gtk/setupwizard.c:584 +#: ../gtk/setupwizard.c:610 msgid "Enter account information (step 1/2)" msgstr "Entrez les informations concernant votre compte (étape 1/2)" -#: ../gtk/setupwizard.c:593 +#: ../gtk/setupwizard.c:619 msgid "Validation (step 2/2)" msgstr "Validation (étape 2/2)" -#: ../gtk/setupwizard.c:598 +#: ../gtk/setupwizard.c:624 msgid "Error" msgstr "Erreur" -#: ../gtk/setupwizard.c:602 +#: ../gtk/setupwizard.c:628 msgid "Terminating" msgstr "En cours d’arrêt." @@ -565,18 +577,16 @@ msgid "Transfer to call #%i with %s" msgstr "Transférer vers l'appel #%i avec %s" #: ../gtk/incall_view.c:210 ../gtk/incall_view.c:213 -#, fuzzy msgid "Not used" -msgstr "Non trouvé" +msgstr "Non utilisé" #: ../gtk/incall_view.c:220 msgid "ICE not activated" msgstr "ICE non activé" #: ../gtk/incall_view.c:222 -#, fuzzy msgid "ICE failed" -msgstr "L'appel a échoué." +msgstr "Erreur ICE" #: ../gtk/incall_view.c:224 msgid "ICE in progress" @@ -587,9 +597,8 @@ msgid "Going through one or more NATs" msgstr "Via un ou plusieurs NATs" #: ../gtk/incall_view.c:228 -#, fuzzy msgid "Direct" -msgstr "Redirection" +msgstr "En direct" #: ../gtk/incall_view.c:230 msgid "Through a relay server" @@ -619,133 +628,147 @@ msgstr "uPnP a échoué." msgid "Direct or through server" msgstr "Directe ou via un serveur" -#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:261 ../gtk/incall_view.c:272 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:286 +#: ../gtk/incall_view.c:267 ../gtk/incall_view.c:268 +#, c-format +msgid "%ix%i" +msgstr "" + +#: ../gtk/incall_view.c:297 #, c-format msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:395 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "Raccrocher" -#: ../gtk/incall_view.c:476 +#: ../gtk/incall_view.c:487 msgid "Calling..." msgstr "Tentative d'appel..." -#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:700 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:490 +#: ../gtk/incall_view.c:501 msgid "Incoming call" msgstr "Appel entrant" -#: ../gtk/incall_view.c:527 +#: ../gtk/incall_view.c:538 msgid "good" msgstr "bon" -#: ../gtk/incall_view.c:529 +#: ../gtk/incall_view.c:540 msgid "average" msgstr "moyen" -#: ../gtk/incall_view.c:531 +#: ../gtk/incall_view.c:542 msgid "poor" msgstr "faible" -#: ../gtk/incall_view.c:533 +#: ../gtk/incall_view.c:544 msgid "very poor" msgstr "très faible" -#: ../gtk/incall_view.c:535 +#: ../gtk/incall_view.c:546 msgid "too bad" msgstr "nulle" -#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:547 ../gtk/incall_view.c:563 msgid "unavailable" msgstr "indisponible" -#: ../gtk/incall_view.c:651 +#: ../gtk/incall_view.c:662 msgid "Secured by SRTP" msgstr "Sécurisé par SRTP" -#: ../gtk/incall_view.c:657 +#: ../gtk/incall_view.c:668 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "Sécurisé par ZRTP- [jeton: %s]" -#: ../gtk/incall_view.c:663 +#: ../gtk/incall_view.c:674 msgid "Set unverified" msgstr "Marquer comme non vérifié" -#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:674 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "Marquer comme vérifié" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In conference" msgstr "En conférence" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In call" msgstr "Appel en cours" -#: ../gtk/incall_view.c:718 +#: ../gtk/incall_view.c:731 msgid "Paused call" msgstr "Appel en attente" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:744 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:748 +#: ../gtk/incall_view.c:762 msgid "Call ended." msgstr "Appel terminé." -#: ../gtk/incall_view.c:778 +#: ../gtk/incall_view.c:793 msgid "Transfer in progress" msgstr "Transfert en cours" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:796 msgid "Transfer done." msgstr "Transfert terminé" -#: ../gtk/incall_view.c:784 +#: ../gtk/incall_view.c:799 msgid "Transfer failed." msgstr "Transfert échoué" -#: ../gtk/incall_view.c:828 +#: ../gtk/incall_view.c:843 msgid "Resume" msgstr "Reprendre" -#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:850 ../gtk/main.ui.h:9 msgid "Pause" msgstr "Pause" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:900 -#, fuzzy +#: ../gtk/incall_view.c:915 msgid "(Paused)" -msgstr "Pause" +msgstr "(en attente)" -#: ../gtk/loginframe.c:93 +#: ../gtk/loginframe.c:88 #, c-format msgid "Please enter login information for %s" msgstr "Entrez vos identifiants pour %s" +#: ../gtk/config-fetching.c:57 +#, c-format +msgid "fetching from %s" +msgstr "chargement depuis %s" + +#: ../gtk/config-fetching.c:73 +#, c-format +msgid "Downloading of remote configuration from %s failed." +msgstr "Le chargement de la configuration depuis %s a échoué." + #: ../gtk/main.ui.h:1 msgid "Callee name" msgstr "Nom du correspondant" @@ -791,89 +814,89 @@ msgid "_Options" msgstr "" #: ../gtk/main.ui.h:18 +msgid "Set configuration URI" +msgstr "URI de configuration" + +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "Toujours démarrer la vidéo" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "Se voir" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "_Aide" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "Fenêtre de débogage" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "_Site web" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "Assistant de compte" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "Adresse SIP ou numéro" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "Démarrer un nouvel appel" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:28 msgid "Contacts" msgstr "Contacts" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 -msgid "Add" -msgstr "Ajouter" - -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 -msgid "Edit" -msgstr "Editer" - -#: ../gtk/main.ui.h:30 +#: ../gtk/main.ui.h:29 msgid "Search" msgstr "Rechercher" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Add contacts from directory" msgstr "Ajouter un contact depuis l'annuaire" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contact" msgstr "Ajouter un contact." -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 msgid "Recent calls" msgstr "Appels récents" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "My current identity:" msgstr "Mon identité sip:" -#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:34 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Nom d'utilisateur" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Mot de passe" -#: ../gtk/main.ui.h:37 +#: ../gtk/main.ui.h:36 msgid "Internet connection:" msgstr "Connexion internet:" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Automatically log me in" msgstr "Me connecter automatiquement" +#: ../gtk/main.ui.h:38 ../gtk/password.ui.h:3 +msgid "UserID" +msgstr "" + #: ../gtk/main.ui.h:39 msgid "Login information" msgstr "Information de login" @@ -931,6 +954,7 @@ msgid "" "pl: Robert Nasiadek \n" "cs: Petr Pisar \n" "hu: anonymous\n" +"he: Eli Zaretskii \n" msgstr "" #: ../gtk/contact.ui.h:2 @@ -965,10 +989,6 @@ msgstr "Linphone - Authentification demandée" msgid "Please enter the domain password" msgstr "Entrez votre mot de passe pour le domaine" -#: ../gtk/password.ui.h:3 -msgid "UserID" -msgstr "" - #: ../gtk/call_logs.ui.h:1 msgid "Call history" msgstr "Historique des appels" @@ -1006,273 +1026,313 @@ msgid "Looks like sip:" msgstr "De la forme sip:" #: ../gtk/sip_account.ui.h:7 -msgid "Route (optional):" -msgstr "Route (optionnel):" - -#: ../gtk/sip_account.ui.h:8 msgid "Registration duration (sec):" msgstr "Période d'enregistrement (secondes):" +#: ../gtk/sip_account.ui.h:8 +msgid "Contact params (optional):" +msgstr "Paramètres de contact (optionnel):" + #: ../gtk/sip_account.ui.h:9 +msgid "Route (optional):" +msgstr "Route (optionnel):" + +#: ../gtk/sip_account.ui.h:10 +msgid "Transport" +msgstr "Transport" + +#: ../gtk/sip_account.ui.h:11 msgid "Register" msgstr "S'enregistrer" -#: ../gtk/sip_account.ui.h:10 +#: ../gtk/sip_account.ui.h:12 msgid "Publish presence information" msgstr "Publier la présence" -#: ../gtk/sip_account.ui.h:11 +#: ../gtk/sip_account.ui.h:13 msgid "Configure a SIP account" msgstr "Configurer un compte SIP" #: ../gtk/parameters.ui.h:1 +msgid "anonymous" +msgstr "" + +#: ../gtk/parameters.ui.h:2 +msgid "GSSAPI" +msgstr "" + +#: ../gtk/parameters.ui.h:3 +msgid "SASL" +msgstr "" + +#: ../gtk/parameters.ui.h:4 msgid "default soundcard" msgstr "Carte son par défaut" -#: ../gtk/parameters.ui.h:2 +#: ../gtk/parameters.ui.h:5 msgid "a sound card" msgstr "une carte son" -#: ../gtk/parameters.ui.h:3 +#: ../gtk/parameters.ui.h:6 msgid "default camera" msgstr "camera par défaut" -#: ../gtk/parameters.ui.h:4 +#: ../gtk/parameters.ui.h:7 msgid "CIF" msgstr "" -#: ../gtk/parameters.ui.h:5 +#: ../gtk/parameters.ui.h:8 msgid "Audio codecs" msgstr "Codecs audio" -#: ../gtk/parameters.ui.h:6 +#: ../gtk/parameters.ui.h:9 msgid "Video codecs" msgstr "Codecs vidéo" -#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:10 ../gtk/keypad.ui.h:5 msgid "C" msgstr "" -#: ../gtk/parameters.ui.h:8 +#: ../gtk/parameters.ui.h:11 msgid "SIP (UDP)" msgstr "" -#: ../gtk/parameters.ui.h:9 +#: ../gtk/parameters.ui.h:12 msgid "SIP (TCP)" msgstr "" -#: ../gtk/parameters.ui.h:10 +#: ../gtk/parameters.ui.h:13 msgid "SIP (TLS)" msgstr "" -#: ../gtk/parameters.ui.h:11 +#: ../gtk/parameters.ui.h:14 msgid "Settings" msgstr "Réglages" -#: ../gtk/parameters.ui.h:12 +#: ../gtk/parameters.ui.h:15 msgid "Set Maximum Transmission Unit:" msgstr "Spécifier la Maximum Transmission Unit" -#: ../gtk/parameters.ui.h:13 +#: ../gtk/parameters.ui.h:16 msgid "Send DTMFs as SIP info" msgstr "Envoyer les digits en tant que SIP INFO" -#: ../gtk/parameters.ui.h:14 +#: ../gtk/parameters.ui.h:17 msgid "Use IPv6 instead of IPv4" msgstr "Utiliser l'IPv6 au lieu d'IPv4" -#: ../gtk/parameters.ui.h:15 +#: ../gtk/parameters.ui.h:18 msgid "Transport" msgstr "Transport" -#: ../gtk/parameters.ui.h:16 +#: ../gtk/parameters.ui.h:19 msgid "Media encryption type" msgstr "Type d'encryption media" -#: ../gtk/parameters.ui.h:17 +#: ../gtk/parameters.ui.h:20 msgid "Video RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:18 +#: ../gtk/parameters.ui.h:21 msgid "Audio RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:19 -msgid "DSCP fields" -msgstr "Champs DSCP" - -#: ../gtk/parameters.ui.h:20 -msgid "Fixed" -msgstr "" - -#: ../gtk/parameters.ui.h:21 -msgid "Tunnel" -msgstr "" - #: ../gtk/parameters.ui.h:22 +msgid "Fixed" +msgstr "Fixe" + +#: ../gtk/parameters.ui.h:23 #, fuzzy msgid "Media encryption is mandatory" msgstr "Type d'encryption media" -#: ../gtk/parameters.ui.h:23 +#: ../gtk/parameters.ui.h:24 +msgid "Tunnel" +msgstr "" + +#: ../gtk/parameters.ui.h:25 +msgid "DSCP fields" +msgstr "Champs DSCP" + +#: ../gtk/parameters.ui.h:26 +msgid "SIP/TCP port" +msgstr "" + +#: ../gtk/parameters.ui.h:27 +msgid "SIP/UDP port" +msgstr "" + +#: ../gtk/parameters.ui.h:28 msgid "Network protocol and ports" msgstr "Protocoles réseaux et ports" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:29 msgid "Direct connection to the Internet" msgstr "Connexion directe à l'Internet" -#: ../gtk/parameters.ui.h:25 -msgid "Behind NAT / Firewall (specify gateway IP below)" +#: ../gtk/parameters.ui.h:30 +msgid "Behind NAT / Firewall (specify gateway IP )" msgstr "Derrière un pare-feu (spécifier la passerelle ci dessous)" -#: ../gtk/parameters.ui.h:26 -msgid "Public IP address:" -msgstr "Adresse IP publique:" - -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:31 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "Derrière un pare-feu (utiliser STUN)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:32 msgid "Behind NAT / Firewall (use ICE)" msgstr "Derrière un pare-feu (utiliser ICE)" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:33 msgid "Behind NAT / Firewall (use uPnP)" msgstr "Derrière un pare-feu (utiliser uPnP)" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:34 +msgid "Public IP address:" +msgstr "Adresse IP publique:" + +#: ../gtk/parameters.ui.h:35 msgid "Stun server:" msgstr "Serveur STUN:" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:36 msgid "NAT and Firewall" msgstr "Paramètres liés au pare-feu" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:37 msgid "Network settings" msgstr "Paramètres réseau" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:38 msgid "Ring sound:" msgstr "Sonnerie:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:39 msgid "ALSA special device (optional):" msgstr "" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:40 msgid "Capture device:" msgstr "Périphérique de capture:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:41 msgid "Ring device:" msgstr "Périphérique de sonnerie:" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:42 msgid "Playback device:" msgstr "Périphérique d'écoute:" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:43 msgid "Enable echo cancellation" msgstr "Activer l'annulation d'écho" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:44 msgid "Audio" msgstr "Son" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:45 msgid "Video input device:" msgstr "Périphérique d'entrée vidéo" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:46 msgid "Prefered video resolution:" msgstr "Résolution de vidéo préférée:" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:47 +msgid "Video output method:" +msgstr "Type de rendu video:" + +#: ../gtk/parameters.ui.h:48 msgid "Video" msgstr "Video" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:49 msgid "Multimedia settings" msgstr "Paramètres multimedia" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:50 msgid "This section defines your SIP address when not using a SIP account" msgstr "" "Cette rubrique permet de définir son adresse SIP lorsqu'on ne possède pas de " "compte SIP" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:51 msgid "Your display name (eg: John Doe):" msgstr "Votre nom d'affichage (ex: John Doe)" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:52 msgid "Your username:" msgstr "Votre nom d'utilisateur:" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:53 msgid "Your resulting SIP address:" msgstr "Votre adresse SIP:" -#: ../gtk/parameters.ui.h:48 +#: ../gtk/parameters.ui.h:54 msgid "Default identity" msgstr "Identité par défaut" -#: ../gtk/parameters.ui.h:49 +#: ../gtk/parameters.ui.h:55 msgid "Wizard" -msgstr "" +msgstr "Assistant" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:56 +msgid "Add" +msgstr "Ajouter" + +#: ../gtk/parameters.ui.h:57 +msgid "Edit" +msgstr "Editer" + +#: ../gtk/parameters.ui.h:58 msgid "Remove" msgstr "Enlever" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:59 msgid "Proxy accounts" msgstr "Comptes SIP via des proxy" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:60 msgid "Erase all passwords" msgstr "Effacer tous les mots de passe" -#: ../gtk/parameters.ui.h:55 +#: ../gtk/parameters.ui.h:61 msgid "Privacy" msgstr "Sécurité" -#: ../gtk/parameters.ui.h:56 +#: ../gtk/parameters.ui.h:62 msgid "Manage SIP Accounts" msgstr "Gérer mes comptes SIP" -#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Activer" -#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Désactiver" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:65 msgid "Codecs" msgstr "Codecs" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:66 msgid "0 stands for \"unlimited\"" msgstr "Indiquez 0 pour ne pas mettre de limite" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:67 msgid "Upload speed limit in Kbit/sec:" msgstr "Limite de débit montant en kbits/sec:" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:68 msgid "Download speed limit in Kbit/sec:" msgstr "Limite de débit descendant en kbits/sec:" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:69 msgid "Enable adaptive rate control" msgstr "Activer le control de débit adaptatif." -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:70 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." @@ -1281,31 +1341,51 @@ msgstr "" "de l'audio et de la video en fonction de la bande passante disponible, " "durant l'appel." -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:71 msgid "Bandwidth control" msgstr "Gestion de la bande passante" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:72 msgid "Codecs" msgstr "" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:73 msgid "Language" msgstr "Langue" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:74 msgid "Show advanced settings" msgstr "Montrer les réglages avancés" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:75 msgid "Level" msgstr "Niveau" -#: ../gtk/parameters.ui.h:70 +#: ../gtk/parameters.ui.h:76 msgid "User interface" msgstr "Interface utilisateur" -#: ../gtk/parameters.ui.h:71 +#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2 +msgid "Server address:" +msgstr "Adresse du serveur:" + +#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3 +msgid "Authentication method:" +msgstr "Méthode d'authentification:" + +#: ../gtk/parameters.ui.h:80 +msgid "label" +msgstr "" + +#: ../gtk/parameters.ui.h:81 +msgid "LDAP Account setup" +msgstr "Configuration LDAP" + +#: ../gtk/parameters.ui.h:82 +msgid "LDAP" +msgstr "" + +#: ../gtk/parameters.ui.h:83 msgid "Done" msgstr "Fermer" @@ -1330,8 +1410,8 @@ msgid "Please wait" msgstr "En attente" #: ../gtk/dscp_settings.ui.h:1 -msgid "Dscp settings" -msgstr "Réglages Dscp" +msgid "DSCP settings" +msgstr "Réglages DSCP" #: ../gtk/dscp_settings.ui.h:2 msgid "SIP" @@ -1347,7 +1427,7 @@ msgstr "" #: ../gtk/dscp_settings.ui.h:5 msgid "Set DSCP values (in hexadecimal)" -msgstr "" +msgstr "Indiquez les valeurs DSCP (en hexacdécimal)" #: ../gtk/call_statistics.ui.h:1 msgid "Call statistics" @@ -1363,7 +1443,7 @@ msgstr "Codecs vidéo" #: ../gtk/call_statistics.ui.h:4 msgid "Audio IP bandwidth usage" -msgstr "" +msgstr "Bande passante audio" #: ../gtk/call_statistics.ui.h:5 #, fuzzy @@ -1372,7 +1452,7 @@ msgstr "Type d'encryption media" #: ../gtk/call_statistics.ui.h:6 msgid "Video IP bandwidth usage" -msgstr "" +msgstr "Bande passante video" #: ../gtk/call_statistics.ui.h:7 #, fuzzy @@ -1381,16 +1461,23 @@ msgstr "Type d'encryption media" #: ../gtk/call_statistics.ui.h:8 msgid "Round trip time" -msgstr "" +msgstr "Temps d'aller retour" #: ../gtk/call_statistics.ui.h:9 +msgid "Video resolution received" +msgstr "Taille de video reçue" + +#: ../gtk/call_statistics.ui.h:10 +msgid "Video resolution sent" +msgstr "Taille de video envoyée" + +#: ../gtk/call_statistics.ui.h:11 msgid "Call statistics and information" msgstr "Statistiques de l'appel et informations" #: ../gtk/tunnel_config.ui.h:1 -#, fuzzy msgid "Configure VoIP tunnel" -msgstr "Configuer un compte SIP" +msgstr "Configuer le mode tunnel" #: ../gtk/tunnel_config.ui.h:2 msgid "Host" @@ -1468,19 +1555,141 @@ msgstr "" msgid "1" msgstr "" -#: ../coreapi/linphonecore.c:228 +#: ../gtk/ldap.ui.h:1 +#, fuzzy +msgid "LDAP Settings" +msgstr "Réglages" + +#: ../gtk/ldap.ui.h:6 +msgid "Use TLS Connection" +msgstr "" + +#: ../gtk/ldap.ui.h:7 +#, fuzzy +msgid "Not yet available" +msgstr "uPnP est indisponible" + +#: ../gtk/ldap.ui.h:8 +#, fuzzy +msgid "Connection" +msgstr "Codecs" + +#: ../gtk/ldap.ui.h:9 +msgid "Bind DN" +msgstr "" + +#: ../gtk/ldap.ui.h:10 +msgid "Authname" +msgstr "" + +#: ../gtk/ldap.ui.h:11 +msgid "Realm" +msgstr "" + +#: ../gtk/ldap.ui.h:12 +#, fuzzy +msgid "SASL" +msgstr "Son" + +#: ../gtk/ldap.ui.h:13 +msgid "Base object:" +msgstr "" + +#: ../gtk/ldap.ui.h:15 +#, no-c-format +msgid "Filter (%s for name):" +msgstr "" + +#: ../gtk/ldap.ui.h:16 +msgid "Name Attribute:" +msgstr "" + +#: ../gtk/ldap.ui.h:17 +#, fuzzy +msgid "SIP address attribute:" +msgstr "Adresse SIP ou numéro" + +#: ../gtk/ldap.ui.h:18 +msgid "Attributes to query:" +msgstr "" + +#: ../gtk/ldap.ui.h:19 +#, fuzzy +msgid "Search" +msgstr "Rechercher une personne" + +#: ../gtk/ldap.ui.h:20 +msgid "Timeout for search:" +msgstr "" + +#: ../gtk/ldap.ui.h:21 +msgid "Max results:" +msgstr "" + +#: ../gtk/ldap.ui.h:22 +msgid "Follow Aliases" +msgstr "" + +#: ../gtk/ldap.ui.h:23 +#, fuzzy +msgid "Miscellaneous" +msgstr "Video" + +#: ../gtk/ldap.ui.h:24 +msgid "ANONYMOUS" +msgstr "" + +#: ../gtk/ldap.ui.h:25 +msgid "SIMPLE" +msgstr "" + +#: ../gtk/ldap.ui.h:26 +msgid "DIGEST-MD5" +msgstr "" + +#: ../gtk/ldap.ui.h:27 +msgid "NTLM" +msgstr "" + +#: ../gtk/config-uri.ui.h:1 +msgid "Specifying a remote configuration URI" +msgstr "" + +#: ../gtk/config-uri.ui.h:2 +msgid "" +"This dialog allows to set an http or https address when configuration is to " +"be fetched at startup.\n" +"Please enter or modify the configuration URI below. After clicking OK, " +"Linphone will restart automatically in order to fetch and take into account " +"the new configuration. " +msgstr "Cette boite de dialogue vous permet de spécifier une address http ou https où la configuration doit être téléchargée au démarrage\n" +"Entry l'URI ci dessous. Après avoir validé, Linphone va redémarrer automatiquement pour charger et prendre en compte la nouvelle configuration." + +#: ../gtk/config-uri.ui.h:4 +msgid "https://" +msgstr "" + +#: ../gtk/provisioning-fetch.ui.h:1 +msgid "Configuring..." +msgstr "Configuration en cours" + +#: ../gtk/provisioning-fetch.ui.h:2 +msgid "Please wait while fetching configuration from server..." +msgstr "Veuillez patenter un instant pendant le chargement de la configuration distante..." + +#: ../coreapi/linphonecore.c:238 msgid "aborted" msgstr "abandonné" -#: ../coreapi/linphonecore.c:231 +#: ../coreapi/linphonecore.c:241 msgid "completed" msgstr "terminé" -#: ../coreapi/linphonecore.c:234 +#: ../coreapi/linphonecore.c:244 msgid "missed" msgstr "manqué" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:249 #, c-format msgid "" "%s at %s\n" @@ -1495,103 +1704,76 @@ msgstr "" "Etat: %s\n" "Durée: %i mn %i sec\n" -#: ../coreapi/linphonecore.c:240 +#: ../coreapi/linphonecore.c:250 msgid "Outgoing call" msgstr "Appel sortant" -#: ../coreapi/linphonecore.c:1321 +#: ../coreapi/linphonecore.c:1264 msgid "Ready" msgstr "Prêt." -#: ../coreapi/linphonecore.c:2205 +#: ../coreapi/linphonecore.c:1372 +msgid "Configuring" +msgstr "Configuration en cours" + +#: ../coreapi/linphonecore.c:2331 msgid "Looking for telephone number destination..." msgstr "Recherche de la destination du numéro de téléphone..." -#: ../coreapi/linphonecore.c:2208 +#: ../coreapi/linphonecore.c:2334 msgid "Could not resolve this number." msgstr "La destination n'a pu être trouvée." -#: ../coreapi/linphonecore.c:2252 -msgid "" -"Could not parse given sip address. A sip url usually looks like sip:" -"user@domain" -msgstr "" -"Adresse SIP mal formulée. Une address sip ressemble à " - -#: ../coreapi/linphonecore.c:2453 +#. must be known at that time +#: ../coreapi/linphonecore.c:2609 msgid "Contacting" msgstr "Appel de" -#: ../coreapi/linphonecore.c:2460 +#: ../coreapi/linphonecore.c:2616 msgid "Could not call" msgstr "Echec de l'appel" -#: ../coreapi/linphonecore.c:2570 +#: ../coreapi/linphonecore.c:2765 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Désolé, le nombre maximum d'appels simultanés est atteint." -#: ../coreapi/linphonecore.c:2752 +#: ../coreapi/linphonecore.c:2952 msgid "is contacting you" msgstr "vous appelle" -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid " and asked autoanswer." msgstr "et sollicite un décrochage automatique." -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2820 +#: ../coreapi/linphonecore.c:3020 msgid "Modifying call parameters..." msgstr "Modifications des paramètres d'appels..." -#: ../coreapi/linphonecore.c:3159 +#: ../coreapi/linphonecore.c:3362 msgid "Connected." msgstr "En ligne." -#: ../coreapi/linphonecore.c:3187 +#: ../coreapi/linphonecore.c:3388 msgid "Call aborted" msgstr "Appel abandonné" -#: ../coreapi/linphonecore.c:3378 +#: ../coreapi/linphonecore.c:3581 msgid "Could not pause the call" msgstr "La mise en attente a échoué" -#: ../coreapi/linphonecore.c:3383 +#: ../coreapi/linphonecore.c:3586 msgid "Pausing the current call..." msgstr "Mise en attente de l'appel..." -#: ../coreapi/misc.c:148 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the pcm oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -"'modprobe snd-pcm-oss' as root to load it." -msgstr "" -"Votre ordinateur semble utiliser les pilotes sons ALSA.\n" -"C'est en g��al le meilleur choix, cependant un module\n" -"d'emulation oss est manquant et linphone en a besoin.\n" -"Veuillez s'il vous plait executer la commande\n" -"'modprobe snd-pcm-oss' en tant que root afin de le charger." - -#: ../coreapi/misc.c:151 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the mixer oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -" 'modprobe snd-mixer-oss' as root to load it." -msgstr "" -"Votre ordinateur semble utiliser les pilotes sons ALSA. C'est en g��al le\n" -"meilleur choix, cependant un module d'emulation est manquant et linphone en\n" -"a besoin. Veuillez s'il vous plait executer la commande\n" -"'modprobe snd-mixer-oss' en tant que root afin de le charger." - -#: ../coreapi/misc.c:496 +#: ../coreapi/misc.c:394 msgid "Stun lookup in progress..." msgstr "Découverte STUN en cours" -#: ../coreapi/misc.c:630 +#: ../coreapi/misc.c:576 msgid "ICE local candidates gathering in progress..." msgstr "" @@ -1640,10 +1822,14 @@ msgid "Pending" msgstr "En attente" #: ../coreapi/friend.c:66 +msgid "Vacation" +msgstr "En congé" + +#: ../coreapi/friend.c:68 msgid "Unknown-bug" msgstr "Bug inconnu" -#: ../coreapi/proxy.c:204 +#: ../coreapi/proxy.c:209 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." @@ -1651,7 +1837,7 @@ msgstr "" "L'adresse SIP du proxy est invalide. Elle doit commencer par \"sip:\" suivie " "par un nom de domaine." -#: ../coreapi/proxy.c:210 +#: ../coreapi/proxy.c:215 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" @@ -1660,132 +1846,166 @@ msgstr "" "Elle doit être de la forme sip:username@domain, comme par example sip:" "alice@example.net" -#: ../coreapi/proxy.c:1069 +#: ../coreapi/proxy.c:1125 #, c-format msgid "Could not login as %s" msgstr "Echec de la connexion en tant que %s" -#: ../coreapi/callbacks.c:286 +#: ../coreapi/callbacks.c:289 msgid "Remote ringing." msgstr "Sonnerie distante." -#: ../coreapi/callbacks.c:306 +#: ../coreapi/callbacks.c:305 msgid "Remote ringing..." msgstr "Sonnerie distante..." -#: ../coreapi/callbacks.c:317 +#: ../coreapi/callbacks.c:316 msgid "Early media." msgstr "Prise d'appel anticipée." -#: ../coreapi/callbacks.c:368 +#: ../coreapi/callbacks.c:367 #, c-format msgid "Call with %s is paused." msgstr "%s est maintenant en attente." -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:380 #, c-format msgid "Call answered by %s - on hold." msgstr "Appel répondu par %s - en attente" -#: ../coreapi/callbacks.c:392 +#: ../coreapi/callbacks.c:391 msgid "Call resumed." msgstr "Appel repris." -#: ../coreapi/callbacks.c:397 +#: ../coreapi/callbacks.c:396 #, c-format msgid "Call answered by %s." msgstr "Appel répondu par %s." -#: ../coreapi/callbacks.c:412 +#: ../coreapi/callbacks.c:414 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:460 -#, fuzzy +#: ../coreapi/callbacks.c:463 msgid "We have been resumed." -msgstr "Reprise..." +msgstr "Appel repris." -#: ../coreapi/callbacks.c:469 +#: ../coreapi/callbacks.c:471 msgid "We are paused by other party." -msgstr "" +msgstr "L'appel a été mis en attente." -#: ../coreapi/callbacks.c:475 +#: ../coreapi/callbacks.c:487 #, fuzzy msgid "Call is updated by remote." msgstr "L'appel a été repris par le correspondant." -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:558 msgid "Call terminated." msgstr "Appel terminé." -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:586 msgid "User is busy." msgstr "Occupé..." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:587 msgid "User is temporarily unavailable." msgstr "L'usager est temporairement indisponible." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:558 +#: ../coreapi/callbacks.c:589 msgid "User does not want to be disturbed." msgstr "L'usager ne souhaite pas être dérangé" -#: ../coreapi/callbacks.c:559 +#: ../coreapi/callbacks.c:590 msgid "Call declined." msgstr "Appel décliné." -#: ../coreapi/callbacks.c:571 +#: ../coreapi/callbacks.c:603 msgid "No response." msgstr "Pas de réponse." -#: ../coreapi/callbacks.c:575 +#: ../coreapi/callbacks.c:607 msgid "Protocol error." msgstr "Erreur de protocole" -#: ../coreapi/callbacks.c:591 +#: ../coreapi/callbacks.c:623 msgid "Redirected" msgstr "Redirection" -#: ../coreapi/callbacks.c:627 +#: ../coreapi/callbacks.c:665 msgid "Incompatible media parameters." -msgstr "" +msgstr "Paramètres media incompatibles." -#: ../coreapi/callbacks.c:633 +#: ../coreapi/callbacks.c:677 msgid "Call failed." msgstr "L'appel a échoué." -#: ../coreapi/callbacks.c:737 +#: ../coreapi/callbacks.c:751 #, c-format msgid "Registration on %s successful." msgstr "Enregistrement sur %s effectué." -#: ../coreapi/callbacks.c:738 +#: ../coreapi/callbacks.c:752 #, c-format msgid "Unregistration on %s done." msgstr "Désenregistrement sur %s effectué." -#: ../coreapi/callbacks.c:758 +#: ../coreapi/callbacks.c:772 msgid "no response timeout" msgstr "Pas de réponse" -#: ../coreapi/callbacks.c:761 +#: ../coreapi/callbacks.c:775 #, c-format msgid "Registration on %s failed: %s" msgstr "Echec de l'enregistrement sur %s: %s" -#: ../coreapi/linphonecall.c:129 +#: ../coreapi/callbacks.c:785 +msgid "Service unavailable, retrying" +msgstr "" + +#: ../coreapi/linphonecall.c:142 #, c-format msgid "Authentication token is %s" msgstr "Le jeton d'authentification est %s" -#: ../coreapi/linphonecall.c:2355 +#: ../coreapi/linphonecall.c:2678 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "Vous avez manqué %i appel" msgstr[1] "Vous avez manqué %i appels" +#~ msgid "" +#~ "Could not parse given sip address. A sip url usually looks like sip:" +#~ "user@domain" +#~ msgstr "" +#~ "Adresse SIP mal formulée. Une address sip ressemble à " + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the pcm oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ "'modprobe snd-pcm-oss' as root to load it." +#~ msgstr "" +#~ "Votre ordinateur semble utiliser les pilotes sons ALSA.\n" +#~ "C'est en g��al le meilleur choix, cependant un module\n" +#~ "d'emulation oss est manquant et linphone en a besoin.\n" +#~ "Veuillez s'il vous plait executer la commande\n" +#~ "'modprobe snd-pcm-oss' en tant que root afin de le charger." + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the mixer oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ " 'modprobe snd-mixer-oss' as root to load it." +#~ msgstr "" +#~ "Votre ordinateur semble utiliser les pilotes sons ALSA. C'est en g��al " +#~ "le\n" +#~ "meilleur choix, cependant un module d'emulation est manquant et linphone " +#~ "en\n" +#~ "a besoin. Veuillez s'il vous plait executer la commande\n" +#~ "'modprobe snd-mixer-oss' en tant que root afin de le charger." + #~ msgid "Keypad" #~ msgstr "Clavier" @@ -1795,10 +2015,6 @@ msgstr[1] "Vous avez manqué %i appels" #~ msgid "Choosing a username" #~ msgstr "Choix du nom d'utilisateur" -#, fuzzy -#~ msgid "Confirmation" -#~ msgstr "Information sur le contact" - #~ msgid "Enable video" #~ msgstr "Activer la video" @@ -1818,9 +2034,6 @@ msgstr[1] "Vous avez manqué %i appels" #~ msgid "No common codecs" #~ msgstr "Pas de codecs commun" -#~ msgid "Authentication failure" -#~ msgstr "Echec d'authentification" - #~ msgid "" #~ "Pause all calls\n" #~ "and answer" diff --git a/po/he.po b/po/he.po index 32e51337c..bcbfa9161 100644 --- a/po/he.po +++ b/po/he.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linphone 3.5.99.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-08 16:59+0200\n" +"POT-Creation-Date: 2014-02-14 14:57+0100\n" "PO-Revision-Date: 2013-04-24 21:31+0200\n" "Last-Translator: Isratine Citizen \n" "Language-Team: Rahut Project \n" @@ -20,12 +20,12 @@ msgstr "" "X-Generator: Poedit 1.5.4\n" # צור קשר עם -#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:969 #, c-format msgid "Call %s" msgstr "התקשר אל %s" -#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:970 #, c-format msgid "Send text to %s" msgstr "שלח טקסט אל %s" @@ -100,48 +100,48 @@ msgid "Couldn't find pixmap file: %s" msgstr "לא ניתן למצוא קובץ ‫pixmap: ‫%s" # איש־קשר -#: ../gtk/chat.c:324 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:363 ../gtk/friendlist.c:919 msgid "Invalid sip contact !" msgstr "כתובת sip לא תקפה !" # cli -#: ../gtk/main.c:92 +#: ../gtk/main.c:102 #, fuzzy msgid "log to stdout some debug information while running." msgstr "רשום אל stdout מידע ניפוי שגיאות מסוים בזמן ביצוע." # cli -#: ../gtk/main.c:99 +#: ../gtk/main.c:109 #, fuzzy msgid "path to a file to write logs into." msgstr "נתיב אל קובץ שברצונך לרשום אליו את הרשומות." # cli -#: ../gtk/main.c:106 +#: ../gtk/main.c:116 #, fuzzy msgid "Start linphone with video disabled." msgstr "התחל את לינפון עם וידאו מנוטרל." # cli -#: ../gtk/main.c:113 +#: ../gtk/main.c:123 #, fuzzy msgid "Start only in the system tray, do not show the main interface." msgstr "התחל במגש המערכת בלבד, אל תציג את הממשק הראשי." # cli -#: ../gtk/main.c:120 +#: ../gtk/main.c:130 #, fuzzy msgid "address to call right now" msgstr "כתובת להתקשרות ברגע זה" # cli -#: ../gtk/main.c:127 +#: ../gtk/main.c:137 #, fuzzy msgid "if set automatically answer incoming calls" msgstr "באם אפשרות זו נקבעת ענה אוטומטית לקריאות נכנסות" # cli -#: ../gtk/main.c:134 +#: ../gtk/main.c:144 #, fuzzy msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" @@ -150,14 +150,20 @@ msgstr "" "ציין מדור העבודה (אמור להיות מבוסס על ההתקנה, למשל: c:\\Program Files" "\\Linphone)" -#: ../gtk/main.c:515 +# וידוא +#: ../gtk/main.c:151 +#, fuzzy +msgid "Configuration file" +msgstr "אימות" + +#: ../gtk/main.c:573 #, c-format msgid "Call with %s" msgstr "התקשרות באמצעות %s" # הקשר שלהם # אם התשובה -#: ../gtk/main.c:946 +#: ../gtk/main.c:1150 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -170,75 +176,75 @@ msgstr "" "שלך ?\n" "היה ותשובתך תהיה לא, אדם זה יהיה מסומן באופן זמני ברשימה השחורה." -#: ../gtk/main.c:1023 -#, c-format +#: ../gtk/main.c:1227 +#, fuzzy, c-format msgid "" "Please enter your password for username %s\n" -" at domain %s:" +" at realm %s:" msgstr "" "נא להזין את סיסמתך עבור שם משתמש %s\n" " בתחום %s:" # שיחה -#: ../gtk/main.c:1126 +#: ../gtk/main.c:1339 msgid "Call error" msgstr "שגיאת קריאה" # Conversation ended -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3189 +#: ../gtk/main.c:1342 ../coreapi/linphonecore.c:3408 msgid "Call ended" msgstr "שיחה הסתיימה" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:239 +#: ../gtk/main.c:1345 ../coreapi/linphonecore.c:250 msgid "Incoming call" msgstr "קריאה נכנסת" -#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 +#: ../gtk/main.c:1347 ../gtk/incall_view.c:508 ../gtk/main.ui.h:5 msgid "Answer" msgstr "לענות" # דחיה -#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1349 ../gtk/main.ui.h:6 msgid "Decline" msgstr "לדחות" # Conversation paused -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 msgid "Call paused" msgstr "שיחה הושהתה" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, c-format msgid "by %s" msgstr "על ידי %s" -#: ../gtk/main.c:1191 +#: ../gtk/main.c:1422 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "‏%s רוצה להתחיל וידאו. האם אתה מסכים ?" -#: ../gtk/main.c:1353 +#: ../gtk/main.c:1584 msgid "Website link" msgstr "קישור אתר רשת" # ‫Linphone - וידאופון במרשתת -#: ../gtk/main.c:1402 +#: ../gtk/main.c:1633 msgid "Linphone - a video internet phone" msgstr "‫Linphone - וידאופון אינטרנטי" # משתמטת -#: ../gtk/main.c:1494 +#: ../gtk/main.c:1725 #, c-format msgid "%s (Default)" msgstr "‫%s (ברירת מחדל)" -#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 +#: ../gtk/main.c:2061 ../coreapi/callbacks.c:827 #, c-format msgid "We are transferred to %s" msgstr "אנחנו מועברים אל %s" # קריאות שמע -#: ../gtk/main.c:1806 +#: ../gtk/main.c:2071 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -246,177 +252,178 @@ msgstr "" "לא אותרו כרטיסי קול במחשב זה.\n" "לא תהיה ביכולתך לשלוח או לקבל שיחות אודיו." -#: ../gtk/main.c:1911 +#: ../gtk/main.c:2207 msgid "A free SIP video-phone" msgstr "וידאופון SIP חופשי" -#: ../gtk/friendlist.c:469 +#: ../gtk/friendlist.c:505 msgid "Add to addressbook" msgstr "הוסף אל ספר כתובות" -#: ../gtk/friendlist.c:643 +#: ../gtk/friendlist.c:691 msgid "Presence status" msgstr "מצב נוכחות" -#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:709 ../gtk/propertybox.c:556 ../gtk/contact.ui.h:1 msgid "Name" msgstr "שם" -#: ../gtk/friendlist.c:673 +#: ../gtk/friendlist.c:721 msgid "Call" msgstr "קריאה" -#: ../gtk/friendlist.c:678 +#: ../gtk/friendlist.c:726 msgid "Chat" msgstr "שיחה" # a name or a number -#: ../gtk/friendlist.c:708 +#: ../gtk/friendlist.c:756 #, c-format msgid "Search in %s directory" msgstr "חיפוש במדור %s" -#: ../gtk/friendlist.c:924 +#: ../gtk/friendlist.c:971 #, c-format msgid "Edit contact '%s'" msgstr "ערוך איש קשר '%s'" -#: ../gtk/friendlist.c:925 +#: ../gtk/friendlist.c:972 #, c-format msgid "Delete contact '%s'" msgstr "מחק איש קשר '%s'" -#: ../gtk/friendlist.c:926 +#: ../gtk/friendlist.c:973 #, c-format msgid "Delete chat history of '%s'" msgstr "מחק היסטוריית שיחה של '%s'" -#: ../gtk/friendlist.c:977 +#: ../gtk/friendlist.c:1024 #, c-format msgid "Add new contact from %s directory" msgstr "הוסף איש קשר חדש מן מדור %s" # קצב תדר תדירות מהירות -#: ../gtk/propertybox.c:373 +#: ../gtk/propertybox.c:562 msgid "Rate (Hz)" msgstr "שיעור (הרץ)" -#: ../gtk/propertybox.c:379 +#: ../gtk/propertybox.c:568 msgid "Status" msgstr "מצב" # שיעור סיביות מינימלי -#: ../gtk/propertybox.c:385 -msgid "Min bitrate (kbit/s)" +#: ../gtk/propertybox.c:574 +#, fuzzy +msgid "Bitrate (kbit/s)" msgstr "קצב נתונים מינימלי (קי״ב/שנ׳)" -#: ../gtk/propertybox.c:392 +#: ../gtk/propertybox.c:581 msgid "Parameters" msgstr "פרמטרים" # מאופשר -#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:624 ../gtk/propertybox.c:767 msgid "Enabled" msgstr "מופעל" # מנוטרל -#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:626 ../gtk/propertybox.c:767 msgid "Disabled" msgstr "לא מופעל" -#: ../gtk/propertybox.c:624 +#: ../gtk/propertybox.c:813 msgid "Account" msgstr "חשבון" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:1057 msgid "English" msgstr "English" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:1058 msgid "French" msgstr "Français" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:1059 msgid "Swedish" msgstr "Svenska" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:1060 msgid "Italian" msgstr "Italiano" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:1061 msgid "Spanish" msgstr "Español" # português do Brasil -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:1062 msgid "Brazilian Portugese" msgstr "português brasileiro" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:1063 msgid "Polish" msgstr "Polski" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:1064 msgid "German" msgstr "Deutsch" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:1065 msgid "Russian" msgstr "Русский" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:1066 msgid "Japanese" msgstr "日本語" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:1067 msgid "Dutch" msgstr "Nederlands" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:1068 msgid "Hungarian" msgstr "Magyar" -#: ../gtk/propertybox.c:776 +#: ../gtk/propertybox.c:1069 msgid "Czech" msgstr "Česky" -#: ../gtk/propertybox.c:777 +#: ../gtk/propertybox.c:1070 msgid "Chinese" msgstr "中文" # 繁体字 -#: ../gtk/propertybox.c:778 +#: ../gtk/propertybox.c:1071 msgid "Traditional Chinese" msgstr "繁體字" -#: ../gtk/propertybox.c:779 +#: ../gtk/propertybox.c:1072 msgid "Norwegian" msgstr "norsk" -#: ../gtk/propertybox.c:780 +#: ../gtk/propertybox.c:1073 msgid "Hebrew" msgstr "עברית" -#: ../gtk/propertybox.c:781 +#: ../gtk/propertybox.c:1074 msgid "Serbian" msgstr "српски srpski" # selected הנבחרת -#: ../gtk/propertybox.c:848 +#: ../gtk/propertybox.c:1141 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "עליך לאתחל את לינפון כדי שהשפה החדשה תיכנס לתוקף." -#: ../gtk/propertybox.c:934 +#: ../gtk/propertybox.c:1219 msgid "None" msgstr "ללא" -#: ../gtk/propertybox.c:938 +#: ../gtk/propertybox.c:1223 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:944 +#: ../gtk/propertybox.c:1229 msgid "ZRTP" msgstr "" @@ -482,62 +489,66 @@ msgstr "כבר קיים חשבון linphone.org ברשותי וברצוני לע msgid "I have already a sip account and I just want to use it" msgstr "כבר קיים חשבון sip ברשותי וברצוני לעשות בו שימוש" -#: ../gtk/setupwizard.c:85 +#: ../gtk/setupwizard.c:46 +msgid "I want to specify a remote configuration URI" +msgstr "" + +#: ../gtk/setupwizard.c:89 msgid "Enter your linphone.org username" msgstr "הזן את שם משתמשך אצל linphone.org" -#: ../gtk/setupwizard.c:92 +#: ../gtk/setupwizard.c:96 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4 msgid "Username:" msgstr "שם משתמש:" -#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:98 ../gtk/password.ui.h:4 ../gtk/ldap.ui.h:5 msgid "Password:" msgstr "סיסמה:" -#: ../gtk/setupwizard.c:114 +#: ../gtk/setupwizard.c:118 msgid "Enter your account informations" msgstr "הזן את מידע חשבונך" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:125 msgid "Username*" msgstr "שם משתמש*" -#: ../gtk/setupwizard.c:122 +#: ../gtk/setupwizard.c:126 msgid "Password*" msgstr "סיסמה*" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:129 msgid "Domain*" msgstr "מתחם*" -#: ../gtk/setupwizard.c:126 +#: ../gtk/setupwizard.c:130 msgid "Proxy" msgstr "פרוקסי" # נדרשים -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:302 msgid "(*) Required fields" msgstr "(*) שדות חובה" -#: ../gtk/setupwizard.c:299 +#: ../gtk/setupwizard.c:303 msgid "Username: (*)" msgstr "שם משתמש: (*)" -#: ../gtk/setupwizard.c:301 +#: ../gtk/setupwizard.c:305 msgid "Password: (*)" msgstr "סיסמה: (*)" -#: ../gtk/setupwizard.c:303 +#: ../gtk/setupwizard.c:307 msgid "Email: (*)" msgstr "דוא״ל: (*)" -#: ../gtk/setupwizard.c:305 +#: ../gtk/setupwizard.c:309 msgid "Confirm your password: (*)" msgstr "אימות סיסמתך: (*)" # אינו בר־השגה # לשוב אחורה -#: ../gtk/setupwizard.c:369 +#: ../gtk/setupwizard.c:373 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." @@ -545,12 +556,12 @@ msgstr "" "שגיאה, חשבון לא אומת, שם משתמש כבר בשימוש או שרת לא ניתן להשגה.\n" "נא לחזור ולנסות שוב." -#: ../gtk/setupwizard.c:380 +#: ../gtk/setupwizard.c:384 msgid "Thank you. Your account is now configured and ready for use." msgstr "תודה לך. חשבונך מוגדר ומוכן לשימוש כעת." # לאחר מכן -#: ../gtk/setupwizard.c:388 +#: ../gtk/setupwizard.c:392 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" @@ -559,39 +570,44 @@ msgstr "" "נא לאמת את חשבונך באמצעות הקלקה על הקישור ששלחנו לך עתה באמצעות דוא״ל.\n" "אחרי כן נא לחזור לכאן וללחוץ על הלחצן 'קדימה'." +#: ../gtk/setupwizard.c:572 +#, fuzzy +msgid "SIP account configuration assistant" +msgstr "אשף הגדרת חשבון" + # Wizard אשף # סייע -#: ../gtk/setupwizard.c:564 +#: ../gtk/setupwizard.c:590 msgid "Welcome to the account setup assistant" msgstr "ברוך בואך אל אשף הגדרת החשבון" -#: ../gtk/setupwizard.c:569 +#: ../gtk/setupwizard.c:595 msgid "Account setup assistant" msgstr "אשף הגדרת חשבון" # שלב -#: ../gtk/setupwizard.c:575 +#: ../gtk/setupwizard.c:601 msgid "Configure your account (step 1/1)" msgstr "הגדרת חשבונך (צעד 1/1)" -#: ../gtk/setupwizard.c:580 +#: ../gtk/setupwizard.c:606 msgid "Enter your sip username (step 1/1)" msgstr "הזנת שם משתמש sip (צעד 1/1)" -#: ../gtk/setupwizard.c:584 +#: ../gtk/setupwizard.c:610 msgid "Enter account information (step 1/2)" msgstr "הזנת מידע חשבון (צעד 1/2)" # תקפות -#: ../gtk/setupwizard.c:593 +#: ../gtk/setupwizard.c:619 msgid "Validation (step 2/2)" msgstr "אימות (צעד 2/2)" -#: ../gtk/setupwizard.c:598 +#: ../gtk/setupwizard.c:624 msgid "Error" msgstr "שגיאה" -#: ../gtk/setupwizard.c:602 +#: ../gtk/setupwizard.c:628 msgid "Terminating" msgstr "מסיים כעת" @@ -657,7 +673,7 @@ msgstr "‏uPnP נכשלה" msgid "Direct or through server" msgstr "ישיר או דרך שרת" -#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:261 ../gtk/incall_view.c:272 #, c-format msgid "" "download: %f\n" @@ -666,117 +682,122 @@ msgstr "" "הורדה: %f\n" "העלאה: %f (קי״ב/שנ׳)" -#: ../gtk/incall_view.c:286 +#: ../gtk/incall_view.c:267 ../gtk/incall_view.c:268 +#, c-format +msgid "%ix%i" +msgstr "" + +#: ../gtk/incall_view.c:297 #, c-format msgid "%.3f seconds" msgstr "%.3f שניות" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:395 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "נתק" -#: ../gtk/incall_view.c:476 +#: ../gtk/incall_view.c:487 msgid "Calling..." msgstr "מתקשר כעת..." -#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:700 msgid "00::00::00" msgstr "‭00::00::00" -#: ../gtk/incall_view.c:490 +#: ../gtk/incall_view.c:501 msgid "Incoming call" msgstr "קריאה נכנסת" -#: ../gtk/incall_view.c:527 +#: ../gtk/incall_view.c:538 msgid "good" msgstr "טובה" # רגילה -#: ../gtk/incall_view.c:529 +#: ../gtk/incall_view.c:540 msgid "average" msgstr "ממוצעת" # weak חלשה חלושה רפויה רופפת -#: ../gtk/incall_view.c:531 +#: ../gtk/incall_view.c:542 msgid "poor" msgstr "דלה" -#: ../gtk/incall_view.c:533 +#: ../gtk/incall_view.c:544 msgid "very poor" msgstr "דלה מאוד" # רעה -#: ../gtk/incall_view.c:535 +#: ../gtk/incall_view.c:546 msgid "too bad" msgstr "גרועה מדי" -#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:547 ../gtk/incall_view.c:563 msgid "unavailable" msgstr "לא זמינה" # באמצעות -#: ../gtk/incall_view.c:651 +#: ../gtk/incall_view.c:662 msgid "Secured by SRTP" msgstr "מאובטחת על ידי SRTP" -#: ../gtk/incall_view.c:657 +#: ../gtk/incall_view.c:668 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "מאובטחת על ידי ZRTP - [אות אימות: %s]" # set or unset verification state of ZRTP SAS. -#: ../gtk/incall_view.c:663 +#: ../gtk/incall_view.c:674 msgid "Set unverified" msgstr "הגדר כלא מאומתת" -#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:674 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "הגדר כמאומתת" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In conference" msgstr "בשיחת ועידה" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In call" msgstr "בשיחה כעת" -#: ../gtk/incall_view.c:718 +#: ../gtk/incall_view.c:731 msgid "Paused call" msgstr "שיחה מושהית" # שעות %02i דקות %02i שניות %02i # Force LTR time format (hours::minutes::seconds) with LRO chatacter (U+202D) -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:744 #, c-format msgid "%02i::%02i::%02i" msgstr "‭%02i::%02i::%02i" -#: ../gtk/incall_view.c:748 +#: ../gtk/incall_view.c:762 msgid "Call ended." msgstr "שיחה הסתיימה." -#: ../gtk/incall_view.c:778 +#: ../gtk/incall_view.c:793 msgid "Transfer in progress" msgstr "העברה מצויה כעת בעיצומה" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:796 msgid "Transfer done." msgstr "העברה הסתיימה." -#: ../gtk/incall_view.c:784 +#: ../gtk/incall_view.c:799 msgid "Transfer failed." msgstr "העברה נכשלה." -#: ../gtk/incall_view.c:828 +#: ../gtk/incall_view.c:843 msgid "Resume" msgstr "חזור" -#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:850 ../gtk/main.ui.h:9 msgid "Pause" msgstr "השהה" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, c-format msgid "" "Recording into\n" @@ -785,15 +806,25 @@ msgstr "" "מקליט אל תוך\n" "%s %s" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 msgid "(Paused)" msgstr "(מושהה)" -#: ../gtk/loginframe.c:93 +#: ../gtk/loginframe.c:88 #, c-format msgid "Please enter login information for %s" msgstr "נא להזין מידע התחברות עבור %s" +#: ../gtk/config-fetching.c:57 +#, c-format +msgid "fetching from %s" +msgstr "" + +#: ../gtk/config-fetching.c:73 +#, c-format +msgid "Downloading of remote configuration from %s failed." +msgstr "" + # מתקשר Caller # זה ש: נתקשר או מתוקשר או הותקשר? #: ../gtk/main.ui.h:1 @@ -841,93 +872,95 @@ msgstr "אומדן איכות שיחה" msgid "_Options" msgstr "_אפשרויות" +# וידוא #: ../gtk/main.ui.h:18 +#, fuzzy +msgid "Set configuration URI" +msgstr "אימות" + +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "התחל תמיד וידאו" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "אפשר ראות-עצמית" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "_עזרה" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "הצג חלון ניפוי שגיאות" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "_עמוד הבית" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "בדיקת _עדכונים" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "אשף חשבון" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "כתובת SIP או מספר טלפון" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "התחל שיחה חדשה" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:28 msgid "Contacts" msgstr "אנשי קשר" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 -msgid "Add" -msgstr "הוסף" - -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 -msgid "Edit" -msgstr "ערוך" - -#: ../gtk/main.ui.h:30 +#: ../gtk/main.ui.h:29 msgid "Search" msgstr "חיפוש" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Add contacts from directory" msgstr "הוסף אנשי קשר מן מדור" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contact" msgstr "הוסף איש קשר" # קריאות אחרונות -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 msgid "Recent calls" msgstr "שיחות אחרונות" # הזהות הנוכחית שלי -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "My current identity:" msgstr "זהותי הנוכחית:" -#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:34 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "שם משתמש" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "סיסמה" # מרשתת -#: ../gtk/main.ui.h:37 +#: ../gtk/main.ui.h:36 msgid "Internet connection:" msgstr "חיבור אינטרנט:" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Automatically log me in" msgstr "חבר אותי אוטומטית" +#: ../gtk/main.ui.h:38 ../gtk/password.ui.h:3 +msgid "UserID" +msgstr "מזהה משתמש" + #: ../gtk/main.ui.h:39 msgid "Login information" msgstr "מידע התחברות" @@ -988,6 +1021,7 @@ msgid "" "pl: Robert Nasiadek \n" "cs: Petr Pisar \n" "hu: anonymous\n" +"he: Eli Zaretskii \n" msgstr "" #: ../gtk/contact.ui.h:2 @@ -1023,10 +1057,6 @@ msgstr "‫Linphone - נדרש אימות" msgid "Please enter the domain password" msgstr "נא להזין את סיסמת המתחם" -#: ../gtk/password.ui.h:3 -msgid "UserID" -msgstr "מזהה משתמש" - # קריאות #: ../gtk/call_logs.ui.h:1 msgid "Call history" @@ -1066,286 +1096,331 @@ msgid "Looks like sip:" msgstr "נראה כמו ‪sip:" #: ../gtk/sip_account.ui.h:7 -msgid "Route (optional):" -msgstr "ניתוב (רשות):" - -#: ../gtk/sip_account.ui.h:8 msgid "Registration duration (sec):" msgstr "משך רישום (בשניות):" +#: ../gtk/sip_account.ui.h:8 +#, fuzzy +msgid "Contact params (optional):" +msgstr "ניתוב (רשות):" + #: ../gtk/sip_account.ui.h:9 +msgid "Route (optional):" +msgstr "ניתוב (רשות):" + +# מוביל +#: ../gtk/sip_account.ui.h:10 +#, fuzzy +msgid "Transport" +msgstr "טרנספורט" + +#: ../gtk/sip_account.ui.h:11 msgid "Register" msgstr "רישום" -#: ../gtk/sip_account.ui.h:10 +#: ../gtk/sip_account.ui.h:12 msgid "Publish presence information" msgstr "פרסם מידע נוכחות" -#: ../gtk/sip_account.ui.h:11 +#: ../gtk/sip_account.ui.h:13 msgid "Configure a SIP account" msgstr "הגדרת חשבון ‫SIP" #: ../gtk/parameters.ui.h:1 +msgid "anonymous" +msgstr "" + +#: ../gtk/parameters.ui.h:2 +msgid "GSSAPI" +msgstr "" + +#: ../gtk/parameters.ui.h:3 +msgid "SASL" +msgstr "" + +#: ../gtk/parameters.ui.h:4 msgid "default soundcard" msgstr "כרטיס קול משתמט" -#: ../gtk/parameters.ui.h:2 +#: ../gtk/parameters.ui.h:5 msgid "a sound card" msgstr "כרטיס קול" -#: ../gtk/parameters.ui.h:3 +#: ../gtk/parameters.ui.h:6 msgid "default camera" msgstr "מצלמה משתמטת" -#: ../gtk/parameters.ui.h:4 +#: ../gtk/parameters.ui.h:7 msgid "CIF" msgstr "" -#: ../gtk/parameters.ui.h:5 +#: ../gtk/parameters.ui.h:8 msgid "Audio codecs" msgstr "קודקים של אודיו" -#: ../gtk/parameters.ui.h:6 +#: ../gtk/parameters.ui.h:9 msgid "Video codecs" msgstr "קודקים של וידאו" -#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:10 ../gtk/keypad.ui.h:5 msgid "C" msgstr "" -#: ../gtk/parameters.ui.h:8 +#: ../gtk/parameters.ui.h:11 msgid "SIP (UDP)" msgstr "‏SIP ‏(UDP)" -#: ../gtk/parameters.ui.h:9 +#: ../gtk/parameters.ui.h:12 msgid "SIP (TCP)" msgstr "‏SIP ‏(TCP)" -#: ../gtk/parameters.ui.h:10 +#: ../gtk/parameters.ui.h:13 msgid "SIP (TLS)" msgstr "‏SIP ‏(TLS)" -#: ../gtk/parameters.ui.h:11 +#: ../gtk/parameters.ui.h:14 msgid "Settings" msgstr "הגדרות" # שידור -#: ../gtk/parameters.ui.h:12 +#: ../gtk/parameters.ui.h:15 msgid "Set Maximum Transmission Unit:" msgstr "הגדר יחידת תמסורת מרבית:" -#: ../gtk/parameters.ui.h:13 +#: ../gtk/parameters.ui.h:16 msgid "Send DTMFs as SIP info" msgstr "שלח טזמ״תים (DTMFs) כמידע SIP" -#: ../gtk/parameters.ui.h:14 +#: ../gtk/parameters.ui.h:17 msgid "Use IPv6 instead of IPv4" msgstr "השתמש בפרוטוקול IPv6 במקום בפרוטוקול IPv4" # מוביל -#: ../gtk/parameters.ui.h:15 +#: ../gtk/parameters.ui.h:18 msgid "Transport" msgstr "טרנספורט" -#: ../gtk/parameters.ui.h:16 +#: ../gtk/parameters.ui.h:19 msgid "Media encryption type" msgstr "סוג הצפנת מדיה" -#: ../gtk/parameters.ui.h:17 +#: ../gtk/parameters.ui.h:20 msgid "Video RTP/UDP:" msgstr "וידאו RTP/UDP:" -#: ../gtk/parameters.ui.h:18 +#: ../gtk/parameters.ui.h:21 msgid "Audio RTP/UDP:" msgstr "אודיו RTP/UDP:" -#: ../gtk/parameters.ui.h:19 -msgid "DSCP fields" -msgstr "שדות DSCP" - -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:22 msgid "Fixed" msgstr "מקובע" -#: ../gtk/parameters.ui.h:21 -msgid "Tunnel" -msgstr "מינהור" - -#: ../gtk/parameters.ui.h:22 +#: ../gtk/parameters.ui.h:23 msgid "Media encryption is mandatory" msgstr "הצפנת מדיה הינה מנדטורית" -#: ../gtk/parameters.ui.h:23 +#: ../gtk/parameters.ui.h:24 +msgid "Tunnel" +msgstr "מינהור" + +#: ../gtk/parameters.ui.h:25 +msgid "DSCP fields" +msgstr "שדות DSCP" + +#: ../gtk/parameters.ui.h:26 +msgid "SIP/TCP port" +msgstr "" + +#: ../gtk/parameters.ui.h:27 +msgid "SIP/UDP port" +msgstr "" + +#: ../gtk/parameters.ui.h:28 msgid "Network protocol and ports" msgstr "פרוטוקולי רשת תקשורת ופורטים" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:29 msgid "Direct connection to the Internet" msgstr "חיבור ישיר אל האינטרנט" -#: ../gtk/parameters.ui.h:25 -msgid "Behind NAT / Firewall (specify gateway IP below)" +#: ../gtk/parameters.ui.h:30 +#, fuzzy +msgid "Behind NAT / Firewall (specify gateway IP )" msgstr "מאחורי NAT / חומת אש (ציון כתובת שער (Gateway IP) למטה)" -#: ../gtk/parameters.ui.h:26 -msgid "Public IP address:" -msgstr "כתובת IP פומבית:" - # ניצול STUN # שימוש ב־STUN # utilize -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:31 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "מאחורי NAT / חומת אש (בעזרת STUN לפתירה)" # שימוש ב־STUN # utilize -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:32 msgid "Behind NAT / Firewall (use ICE)" msgstr "מאחורי NAT / חומת אש (בעזרת ICE)" # שימוש ב־STUN # utilize -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:33 msgid "Behind NAT / Firewall (use uPnP)" msgstr "מאחורי NAT / חומת אש (בעזרת uPnP)" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:34 +msgid "Public IP address:" +msgstr "כתובת IP פומבית:" + +#: ../gtk/parameters.ui.h:35 msgid "Stun server:" msgstr "שרת STUN:" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:36 msgid "NAT and Firewall" msgstr "‫NAT וחומת אש" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:37 msgid "Network settings" msgstr "הגדרות רשת תקשורת" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:38 msgid "Ring sound:" msgstr "צליל צלצול:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:39 msgid "ALSA special device (optional):" msgstr "התקן ALSA מיוחד (רשות):" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:40 msgid "Capture device:" msgstr "התקן לכידה:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:41 msgid "Ring device:" msgstr "התקן צלצול:" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:42 msgid "Playback device:" msgstr "התקן פס קול:" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:43 msgid "Enable echo cancellation" msgstr "אפשר ביטול הד" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:44 msgid "Audio" msgstr "אודיו" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:45 msgid "Video input device:" msgstr "התקן קלט וידאו:" # רצויה -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:46 msgid "Prefered video resolution:" msgstr "רזולוציית וידאו מועדפת:" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:47 +#, fuzzy +msgid "Video output method:" +msgstr "התקן קלט וידאו:" + +#: ../gtk/parameters.ui.h:48 msgid "Video" msgstr "וידאו" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:49 msgid "Multimedia settings" msgstr "הגדרות מולטימדיה" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:50 msgid "This section defines your SIP address when not using a SIP account" msgstr "חלק זה מגדיר את כתובת ה־SIP כאשר אינך עושה שימוש בחשבון SIP" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:51 msgid "Your display name (eg: John Doe):" msgstr "שם התצוגה שלך (למשל: יורם יהודה):" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:52 msgid "Your username:" msgstr "שם המשתמש שלך:" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:53 msgid "Your resulting SIP address:" msgstr "כתובת SIP נובעת:" -#: ../gtk/parameters.ui.h:48 +#: ../gtk/parameters.ui.h:54 msgid "Default identity" msgstr "זהות משתמטת" -#: ../gtk/parameters.ui.h:49 +#: ../gtk/parameters.ui.h:55 msgid "Wizard" msgstr "אשף" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:56 +msgid "Add" +msgstr "הוסף" + +#: ../gtk/parameters.ui.h:57 +msgid "Edit" +msgstr "ערוך" + +#: ../gtk/parameters.ui.h:58 msgid "Remove" msgstr "הסר" # חשבונות מתווכים -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:59 msgid "Proxy accounts" msgstr "חשבונות Proxy" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:60 msgid "Erase all passwords" msgstr "מחק סיסמאות" -#: ../gtk/parameters.ui.h:55 +#: ../gtk/parameters.ui.h:61 msgid "Privacy" msgstr "פרטיות" -#: ../gtk/parameters.ui.h:56 +#: ../gtk/parameters.ui.h:62 msgid "Manage SIP Accounts" msgstr "ניהול חשבונות ‫SIP" -#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "אפשר" -#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "נטרל" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:65 msgid "Codecs" msgstr "קודקים" # ללא הגבלה -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:66 msgid "0 stands for \"unlimited\"" msgstr "0 מסמל \"בלי הגבלה\"" # does KiB mean kibibyte? -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:67 msgid "Upload speed limit in Kbit/sec:" msgstr "מגבלת מהירות העלאה בקי״ב/שנ׳:" # האם KiB זה kibibyte? # קי״ב (1024) אל מול ק״ב (1000) -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:68 msgid "Download speed limit in Kbit/sec:" msgstr "מגבלת מהירות הורדה בקי״ב/שנ׳:" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:69 msgid "Enable adaptive rate control" msgstr "אפשר בקרת קצב מסתגלת" # שיטה ניחוש -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:70 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." @@ -1355,31 +1430,55 @@ msgstr "" # פס רוחב # טווח תדרים -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:71 msgid "Bandwidth control" msgstr "בקרת רוחב פס" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:72 msgid "Codecs" msgstr "קודקים" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:73 msgid "Language" msgstr "שפה" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:74 msgid "Show advanced settings" msgstr "הצג הגדרות מתקדמות" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:75 msgid "Level" msgstr "רמה" -#: ../gtk/parameters.ui.h:70 +#: ../gtk/parameters.ui.h:76 msgid "User interface" msgstr "ממשק משתמש" -#: ../gtk/parameters.ui.h:71 +#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2 +#, fuzzy +msgid "Server address:" +msgstr "כתובת SIP Proxy:" + +#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3 +#, fuzzy +msgid "Authentication method:" +msgstr "כשל באימות" + +#: ../gtk/parameters.ui.h:80 +msgid "label" +msgstr "תוויות" + +# חשבונות מתווכים +#: ../gtk/parameters.ui.h:81 +#, fuzzy +msgid "LDAP Account setup" +msgstr "חשבונות Proxy" + +#: ../gtk/parameters.ui.h:82 +msgid "LDAP" +msgstr "" + +#: ../gtk/parameters.ui.h:83 msgid "Done" msgstr "סיום" @@ -1405,7 +1504,8 @@ msgid "Please wait" msgstr "נא להמתין" #: ../gtk/dscp_settings.ui.h:1 -msgid "Dscp settings" +#, fuzzy +msgid "DSCP settings" msgstr "הגדרות Dscp" #: ../gtk/dscp_settings.ui.h:2 @@ -1457,6 +1557,16 @@ msgid "Round trip time" msgstr "זמן הלוך ושוב" #: ../gtk/call_statistics.ui.h:9 +msgid "Video resolution received" +msgstr "" + +# רצויה +#: ../gtk/call_statistics.ui.h:10 +#, fuzzy +msgid "Video resolution sent" +msgstr "רזולוציית וידאו מועדפת:" + +#: ../gtk/call_statistics.ui.h:11 msgid "Call statistics and information" msgstr "סטטיסטיקות ומידע שיחה" @@ -1540,20 +1650,143 @@ msgstr "2 [דהו]" msgid "1" msgstr "" -#: ../coreapi/linphonecore.c:227 +#: ../gtk/ldap.ui.h:1 +#, fuzzy +msgid "LDAP Settings" +msgstr "הגדרות" + +#: ../gtk/ldap.ui.h:6 +msgid "Use TLS Connection" +msgstr "" + +#: ../gtk/ldap.ui.h:7 +#, fuzzy +msgid "Not yet available" +msgstr "‏uPnp לא זמינה" + +#: ../gtk/ldap.ui.h:8 +#, fuzzy +msgid "Connection" +msgstr "קודקים" + +#: ../gtk/ldap.ui.h:9 +msgid "Bind DN" +msgstr "" + +#: ../gtk/ldap.ui.h:10 +msgid "Authname" +msgstr "" + +#: ../gtk/ldap.ui.h:11 +msgid "Realm" +msgstr "" + +#: ../gtk/ldap.ui.h:12 +#, fuzzy +msgid "SASL" +msgstr "אודיו" + +#: ../gtk/ldap.ui.h:13 +msgid "Base object:" +msgstr "" + +#: ../gtk/ldap.ui.h:15 +#, no-c-format +msgid "Filter (%s for name):" +msgstr "" + +#: ../gtk/ldap.ui.h:16 +msgid "Name Attribute:" +msgstr "" + +#: ../gtk/ldap.ui.h:17 +#, fuzzy +msgid "SIP address attribute:" +msgstr "כתובת SIP או מספר טלפון" + +#: ../gtk/ldap.ui.h:18 +msgid "Attributes to query:" +msgstr "" + +# חיפוש מאן דהו +#: ../gtk/ldap.ui.h:19 +#, fuzzy +msgid "Search" +msgstr "חיפוש אחר מישהו" + +#: ../gtk/ldap.ui.h:20 +msgid "Timeout for search:" +msgstr "" + +#: ../gtk/ldap.ui.h:21 +msgid "Max results:" +msgstr "" + +#: ../gtk/ldap.ui.h:22 +msgid "Follow Aliases" +msgstr "" + +#: ../gtk/ldap.ui.h:23 +#, fuzzy +msgid "Miscellaneous" +msgstr "וידאו" + +#: ../gtk/ldap.ui.h:24 +msgid "ANONYMOUS" +msgstr "" + +#: ../gtk/ldap.ui.h:25 +msgid "SIMPLE" +msgstr "" + +#: ../gtk/ldap.ui.h:26 +msgid "DIGEST-MD5" +msgstr "" + +#: ../gtk/ldap.ui.h:27 +msgid "NTLM" +msgstr "" + +#: ../gtk/config-uri.ui.h:1 +msgid "Specifying a remote configuration URI" +msgstr "" + +#: ../gtk/config-uri.ui.h:2 +msgid "" +"This dialog allows to set an http or https address when configuration is to " +"be fetched at startup.\n" +"Please enter or modify the configuration URI below. After clicking OK, " +"Linphone will restart automatically in order to fetch and take into account " +"the new configuration. " +msgstr "" + +#: ../gtk/config-uri.ui.h:4 +msgid "https://" +msgstr "" + +#: ../gtk/provisioning-fetch.ui.h:1 +#, fuzzy +msgid "Configuring..." +msgstr "מתחבר כעת..." + +#: ../gtk/provisioning-fetch.ui.h:2 +msgid "Please wait while fetching configuration from server..." +msgstr "" + +#: ../coreapi/linphonecore.c:238 msgid "aborted" msgstr "ננטשה" -#: ../coreapi/linphonecore.c:230 +#: ../coreapi/linphonecore.c:241 msgid "completed" msgstr "הסתיימה" -#: ../coreapi/linphonecore.c:233 +#: ../coreapi/linphonecore.c:244 msgid "missed" msgstr "הוחמצה" # needs to be tested -#: ../coreapi/linphonecore.c:238 +#: ../coreapi/linphonecore.c:249 #, c-format msgid "" "%s at %s\n" @@ -1568,107 +1801,81 @@ msgstr "" "מצב: %s\n" "משך: %i mn %i sec\n" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:250 msgid "Outgoing call" msgstr "קריאה יוצאת" -#: ../coreapi/linphonecore.c:1312 +#: ../coreapi/linphonecore.c:1264 msgid "Ready" msgstr "מוכן" -#: ../coreapi/linphonecore.c:2184 +# וידוא +#: ../coreapi/linphonecore.c:1372 +#, fuzzy +msgid "Configuring" +msgstr "אימות" + +#: ../coreapi/linphonecore.c:2331 msgid "Looking for telephone number destination..." msgstr "מחפש כעת עבור יעד מספר טלפון..." -#: ../coreapi/linphonecore.c:2187 +#: ../coreapi/linphonecore.c:2334 msgid "Could not resolve this number." msgstr "לא ניתן לפתור את מספר זה." -# לרוב -#: ../coreapi/linphonecore.c:2231 -msgid "" -"Could not parse given sip address. A sip url usually looks like sip:" -"user@domain" -msgstr "" -"לא ניתן היה לפענח את הכתובת שניתנה. כתובת sip בדרך כלל נראית כך: sip:" -"user@domain" - -#: ../coreapi/linphonecore.c:2432 +#. must be known at that time +#: ../coreapi/linphonecore.c:2609 msgid "Contacting" msgstr "מתקשר כעת" -#: ../coreapi/linphonecore.c:2439 +#: ../coreapi/linphonecore.c:2616 msgid "Could not call" msgstr "לא ניתן להתקשר" # מספר השיחות המקבילות המרבי -#: ../coreapi/linphonecore.c:2549 +#: ../coreapi/linphonecore.c:2765 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "הגענו אל המספר המרבי של שיחות מקבילות, עמך הסליחה" -#: ../coreapi/linphonecore.c:2731 +#: ../coreapi/linphonecore.c:2952 msgid "is contacting you" msgstr "מתקשר/ת אליך" -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2953 msgid " and asked autoanswer." msgstr " ומבקש/ת מענה אוטומטי." -#: ../coreapi/linphonecore.c:2732 +#: ../coreapi/linphonecore.c:2953 msgid "." msgstr "" # פרמטרי קריאה -#: ../coreapi/linphonecore.c:2799 +#: ../coreapi/linphonecore.c:3020 msgid "Modifying call parameters..." msgstr "מתאים כעת פרמטרים של שיחה..." -#: ../coreapi/linphonecore.c:3138 +#: ../coreapi/linphonecore.c:3362 msgid "Connected." msgstr "מקושר." -#: ../coreapi/linphonecore.c:3166 +#: ../coreapi/linphonecore.c:3388 msgid "Call aborted" msgstr "קריאה בוטלה" -#: ../coreapi/linphonecore.c:3357 +#: ../coreapi/linphonecore.c:3581 msgid "Could not pause the call" msgstr "לא ניתן להשהות את השיחה" -#: ../coreapi/linphonecore.c:3362 +#: ../coreapi/linphonecore.c:3586 msgid "Pausing the current call..." msgstr "משהה כעת שיחה נוכחית..." -#: ../coreapi/misc.c:148 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the pcm oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -"'modprobe snd-pcm-oss' as root to load it." -msgstr "" -"נראה שמחשבך עושה שימוש במנהל התקן הקול ALSA.\n" -"זוהי הבחירה הטובה ביותר. אולם מודול ההדמיה (emulation module) של pcm oss\n" -"נעדר ולינפון זקוק לו. נא להריץ את הפקודה\n" -"‫'modprobe snd-pcm-oss' כמשתמש שורש (משתמש על) כדי להטעינו." - -#: ../coreapi/misc.c:151 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the mixer oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -" 'modprobe snd-mixer-oss' as root to load it." -msgstr "" -"נראה שמחשבך עושה שימוש במנהל התקן הקול ALSA.\n" -"זוהי הבחירה הטובה ביותר. אולם מודול ההדמיה (emulation module) של mixer oss\n" -"נעדר ולינפון זקוק לו. נא להריץ את הפקודה\n" -"‫'modprobe snd-mixer-oss' כמשתמש שורש (משתמש על) כדי להטעינו." - # במהלך (או) באמצע חיפוש... -#: ../coreapi/misc.c:496 +#: ../coreapi/misc.c:394 msgid "Stun lookup in progress..." msgstr "בדיקת STUN מצויה כעת בעיצומה..." -#: ../coreapi/misc.c:630 +#: ../coreapi/misc.c:576 msgid "ICE local candidates gathering in progress..." msgstr "צבירת מועמדים מקומיים של ICE מצויה כעת בעיצומה..." @@ -1722,10 +1929,15 @@ msgid "Pending" msgstr "בהמתנה" #: ../coreapi/friend.c:66 +#, fuzzy +msgid "Vacation" +msgstr "משך זמן" + +#: ../coreapi/friend.c:68 msgid "Unknown-bug" msgstr "תקלה לא מוכרת" -#: ../coreapi/proxy.c:204 +#: ../coreapi/proxy.c:209 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." @@ -1733,7 +1945,7 @@ msgstr "" "כתובת sip proxy שהזנת הינה שגויה, זו צריכה להתחיל עם‭\"sip:\" ‬ לאחר שם מארח." # כמו למשל -#: ../coreapi/proxy.c:210 +#: ../coreapi/proxy.c:215 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" @@ -1742,40 +1954,40 @@ msgstr "" "זו צריכה להיראות כמו sip:username@proxydomain, למשל sip:alice@example.net" # בשם כ־ -#: ../coreapi/proxy.c:1069 +#: ../coreapi/proxy.c:1125 #, c-format msgid "Could not login as %s" msgstr "לא ניתן להתחבר בזהות %s" -#: ../coreapi/callbacks.c:286 +#: ../coreapi/callbacks.c:289 msgid "Remote ringing." msgstr "צלצול מרוחק." -#: ../coreapi/callbacks.c:306 +#: ../coreapi/callbacks.c:305 msgid "Remote ringing..." msgstr "צלצול מרוחק..." # A SIP state -#: ../coreapi/callbacks.c:317 +#: ../coreapi/callbacks.c:316 msgid "Early media." msgstr "מדיה מוקדמת." -#: ../coreapi/callbacks.c:368 +#: ../coreapi/callbacks.c:367 #, c-format msgid "Call with %s is paused." msgstr "שיחה עם %s מושהית." -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:380 #, c-format msgid "Call answered by %s - on hold." msgstr "קריאה נענתה על ידי %s - בהמתנה." # renewed -#: ../coreapi/callbacks.c:392 +#: ../coreapi/callbacks.c:391 msgid "Call resumed." msgstr "קריאה חודשה." -#: ../coreapi/callbacks.c:397 +#: ../coreapi/callbacks.c:396 #, c-format msgid "Call answered by %s." msgstr "קריאה נענתה על ידי %s." @@ -1783,104 +1995,136 @@ msgstr "קריאה נענתה על ידי %s." # לא תואם # אי תאימות # אי התאמה -#: ../coreapi/callbacks.c:412 +#: ../coreapi/callbacks.c:414 msgid "Incompatible, check codecs or security settings..." msgstr "חוסר תאימות, בדוק קודקים או הגדרות אבטחה..." -#: ../coreapi/callbacks.c:460 +#: ../coreapi/callbacks.c:463 msgid "We have been resumed." msgstr "חזרנו." -#: ../coreapi/callbacks.c:469 +#: ../coreapi/callbacks.c:471 msgid "We are paused by other party." msgstr "אנו מושהים על ידי צד אחר." # באופן מרוחק -#: ../coreapi/callbacks.c:475 +#: ../coreapi/callbacks.c:487 msgid "Call is updated by remote." msgstr "שיחה עודכנה מרחוק." -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:558 msgid "Call terminated." msgstr "קריאה הסתיימה." -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:586 msgid "User is busy." msgstr "משתמש עסוק כעת." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:587 msgid "User is temporarily unavailable." msgstr "משתמש לא זמין זמנית." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:558 +#: ../coreapi/callbacks.c:589 msgid "User does not want to be disturbed." msgstr "משתמש לא מעוניין שיפריעו לו." -#: ../coreapi/callbacks.c:559 +#: ../coreapi/callbacks.c:590 msgid "Call declined." msgstr "קריאה סורבה." -#: ../coreapi/callbacks.c:571 +#: ../coreapi/callbacks.c:603 msgid "No response." msgstr "אין תגובה." -#: ../coreapi/callbacks.c:575 +#: ../coreapi/callbacks.c:607 msgid "Protocol error." msgstr "שגיאת פרוטוקול." -#: ../coreapi/callbacks.c:591 +#: ../coreapi/callbacks.c:623 msgid "Redirected" msgstr "מכוון מחדש" # לא תואם # אי תאימות # אי התאמה -#: ../coreapi/callbacks.c:627 +#: ../coreapi/callbacks.c:665 msgid "Incompatible media parameters." msgstr "פרמטריי מדיה חסרי תואמים." -#: ../coreapi/callbacks.c:633 +#: ../coreapi/callbacks.c:677 msgid "Call failed." msgstr "קריאה נכשלה." # הרשמה אצל %s הושלמה בהצלחה. -#: ../coreapi/callbacks.c:737 +#: ../coreapi/callbacks.c:751 #, c-format msgid "Registration on %s successful." msgstr "רישום אצל %s הושלם בהצלחה." -#: ../coreapi/callbacks.c:738 +#: ../coreapi/callbacks.c:752 #, c-format msgid "Unregistration on %s done." msgstr "אי רישום אצל %s סוים." # Pas de réponse # no response in defined time -#: ../coreapi/callbacks.c:758 +#: ../coreapi/callbacks.c:772 msgid "no response timeout" msgstr "אין היענות תוך זמן מוגדר" -#: ../coreapi/callbacks.c:761 +#: ../coreapi/callbacks.c:775 #, c-format msgid "Registration on %s failed: %s" msgstr "רישום אצל %s נכשל: %s" -#: ../coreapi/linphonecall.c:129 +#: ../coreapi/callbacks.c:785 +msgid "Service unavailable, retrying" +msgstr "" + +#: ../coreapi/linphonecall.c:142 #, c-format msgid "Authentication token is %s" msgstr "אות האימות הינה %s" # האם כדאי לחקות את הטלפונים הניידים? שיחות של נענו -#: ../coreapi/linphonecall.c:2319 +#: ../coreapi/linphonecall.c:2678 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "החמצת שיחה %i." msgstr[1] "החמצת %i שיחות." -#~ msgid "label" -#~ msgstr "תוויות" +# לרוב +#~ msgid "" +#~ "Could not parse given sip address. A sip url usually looks like sip:" +#~ "user@domain" +#~ msgstr "" +#~ "לא ניתן היה לפענח את הכתובת שניתנה. כתובת sip בדרך כלל נראית כך: sip:" +#~ "user@domain" + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the pcm oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ "'modprobe snd-pcm-oss' as root to load it." +#~ msgstr "" +#~ "נראה שמחשבך עושה שימוש במנהל התקן הקול ALSA.\n" +#~ "זוהי הבחירה הטובה ביותר. אולם מודול ההדמיה (emulation module) של pcm oss\n" +#~ "נעדר ולינפון זקוק לו. נא להריץ את הפקודה\n" +#~ "‫'modprobe snd-pcm-oss' כמשתמש שורש (משתמש על) כדי להטעינו." + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the mixer oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ " 'modprobe snd-mixer-oss' as root to load it." +#~ msgstr "" +#~ "נראה שמחשבך עושה שימוש במנהל התקן הקול ALSA.\n" +#~ "זוהי הבחירה הטובה ביותר. אולם מודול ההדמיה (emulation module) של mixer " +#~ "oss\n" +#~ "נעדר ולינפון זקוק לו. נא להריץ את הפקודה\n" +#~ "‫'modprobe snd-mixer-oss' כמשתמש שורש (משתמש על) כדי להטעינו." #~ msgid "by %s" #~ msgstr "מאת %s" @@ -1923,9 +2167,6 @@ msgstr[1] "החמצת %i שיחות." #~ msgid "No common codecs" #~ msgstr "אין קודקים משותפים" -#~ msgid "Authentication failure" -#~ msgstr "כשל באימות" - #~ msgid "Please choose a username:" #~ msgstr "נא לבחור שם משתמש:" @@ -1953,10 +2194,6 @@ msgstr[1] "החמצת %i שיחות." #~ msgid "Verifying" #~ msgstr "מאמת כעת" -# וידוא -#~ msgid "Confirmation" -#~ msgstr "אימות" - #~ msgid "Creating your account" #~ msgstr "חשבונך נוצר כעת" diff --git a/po/hu.po b/po/hu.po index 65bbb3e7b..fb2e08033 100644 --- a/po/hu.po +++ b/po/hu.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Linphone\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-24 14:04+0200\n" +"POT-Creation-Date: 2014-02-14 14:57+0100\n" "PO-Revision-Date: 2013-03-26 19:00+0100\n" "Last-Translator: Viktor \n" "Language-Team: \n" @@ -17,12 +17,12 @@ msgstr "" "X-Generator: Poedit 1.5.4\n" "Plural-Forms: nplurals=1; plural=1 == 1 ? 0 : 1;\n" -#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:969 #, c-format msgid "Call %s" msgstr "%s hívása" -#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:970 #, c-format msgid "Send text to %s" msgstr "Szöveg küldése a következőnek: %s" @@ -98,35 +98,35 @@ msgstr "én" msgid "Couldn't find pixmap file: %s" msgstr "Nemtalálható a pixmap fájl: %s" -#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:363 ../gtk/friendlist.c:919 msgid "Invalid sip contact !" msgstr "Érvénytelen sip partner !" -#: ../gtk/main.c:92 +#: ../gtk/main.c:102 msgid "log to stdout some debug information while running." msgstr "Futás közben némi hibakeresési információ az stdout-ra naplózása." -#: ../gtk/main.c:99 +#: ../gtk/main.c:109 msgid "path to a file to write logs into." msgstr "fájl elérési útja, melybe a naplók kerülnek." -#: ../gtk/main.c:106 +#: ../gtk/main.c:116 msgid "Start linphone with video disabled." msgstr "Linphone indítása, videó kikpacsolva. " -#: ../gtk/main.c:113 +#: ../gtk/main.c:123 msgid "Start only in the system tray, do not show the main interface." msgstr "Csak a tálcaikon indítása, ne mutassa a fő ablakot." -#: ../gtk/main.c:120 +#: ../gtk/main.c:130 msgid "address to call right now" msgstr "Cím azonnali híváshoz" -#: ../gtk/main.c:127 +#: ../gtk/main.c:137 msgid "if set automatically answer incoming calls" msgstr "Bekapcsolva automatikusan válaszol a bejövő hívásokra" -#: ../gtk/main.c:134 +#: ../gtk/main.c:144 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -134,12 +134,17 @@ msgstr "" "Adjon meg egy munkakönyvtárat (ennek az installációs könyvtárnak kéne " "lennie, pl. C:\\Program Files\\Linphone)" -#: ../gtk/main.c:515 +#: ../gtk/main.c:151 +#, fuzzy +msgid "Configuration file" +msgstr "Információk" + +#: ../gtk/main.c:573 #, c-format msgid "Call with %s" msgstr "Hívás %s -el" -#: ../gtk/main.c:946 +#: ../gtk/main.c:1150 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -152,68 +157,68 @@ msgstr "" "szeretné adni a partnerlistához?\n" "Ha nemmel válaszol, ez a személy átmenetileg tiltólistára kerül." -#: ../gtk/main.c:1023 -#, c-format +#: ../gtk/main.c:1227 +#, fuzzy, c-format msgid "" "Please enter your password for username %s\n" -" at domain %s:" +" at realm %s:" msgstr "" "Kérem, adja meg jelszavát a következő felhasználónévhez: %s\n" "tartomány %s:" -#: ../gtk/main.c:1126 +#: ../gtk/main.c:1339 msgid "Call error" msgstr "Hiba a hívás közben" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 +#: ../gtk/main.c:1342 ../coreapi/linphonecore.c:3408 msgid "Call ended" msgstr "Hívás vége" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 +#: ../gtk/main.c:1345 ../coreapi/linphonecore.c:250 msgid "Incoming call" msgstr "Beérkező hívás" -#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 +#: ../gtk/main.c:1347 ../gtk/incall_view.c:508 ../gtk/main.ui.h:5 msgid "Answer" msgstr "Hívás fogadása" -#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1349 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Elutasítás" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 msgid "Call paused" msgstr "Hívás várakoztatva" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, c-format msgid "by %s" msgstr "a következő által: %s" -#: ../gtk/main.c:1191 +#: ../gtk/main.c:1422 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "%s szerené elidítani a videót. Elfogadja?" -#: ../gtk/main.c:1353 +#: ../gtk/main.c:1584 msgid "Website link" msgstr "Internetes oldal" -#: ../gtk/main.c:1402 +#: ../gtk/main.c:1633 msgid "Linphone - a video internet phone" msgstr "Linphone - internetes videó telefon" -#: ../gtk/main.c:1494 +#: ../gtk/main.c:1725 #, c-format msgid "%s (Default)" msgstr "%s (Alapértelmezett)" -#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 +#: ../gtk/main.c:2061 ../coreapi/callbacks.c:827 #, c-format msgid "We are transferred to %s" msgstr "Át vagyunk irányítva ide: %s" -#: ../gtk/main.c:1806 +#: ../gtk/main.c:2071 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -221,171 +226,172 @@ msgstr "" "Hangkártya nincs érzékelve ezen a számítógépen.\n" "Nem fog tudni hang hívásokat küldeni vagy fogadni." -#: ../gtk/main.c:1911 +#: ../gtk/main.c:2207 msgid "A free SIP video-phone" msgstr "Egy ingyenes SIP video-telefon" -#: ../gtk/friendlist.c:469 +#: ../gtk/friendlist.c:505 msgid "Add to addressbook" msgstr "Hozzáadás címjegyzékhez" -#: ../gtk/friendlist.c:643 +#: ../gtk/friendlist.c:691 msgid "Presence status" msgstr "Jelenlét státusz" -#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:709 ../gtk/propertybox.c:556 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Név" -#: ../gtk/friendlist.c:673 +#: ../gtk/friendlist.c:721 msgid "Call" msgstr "Hivás" -#: ../gtk/friendlist.c:678 +#: ../gtk/friendlist.c:726 msgid "Chat" msgstr "Csevegés" -#: ../gtk/friendlist.c:708 +#: ../gtk/friendlist.c:756 #, c-format msgid "Search in %s directory" msgstr "Keresés ebben a könyvtárban: %s" -#: ../gtk/friendlist.c:924 +#: ../gtk/friendlist.c:971 #, c-format msgid "Edit contact '%s'" msgstr "Kapcsolatinformációk szerkesztése: '%s'" -#: ../gtk/friendlist.c:925 +#: ../gtk/friendlist.c:972 #, c-format msgid "Delete contact '%s'" msgstr "'%s' partner törlése" -#: ../gtk/friendlist.c:926 +#: ../gtk/friendlist.c:973 #, fuzzy, c-format msgid "Delete chat history of '%s'" msgstr "'%s' partner törlése" -#: ../gtk/friendlist.c:977 +#: ../gtk/friendlist.c:1024 #, c-format msgid "Add new contact from %s directory" msgstr "Új partner hozzáadása ebből a könyvtárból: %s" -#: ../gtk/propertybox.c:373 +#: ../gtk/propertybox.c:562 msgid "Rate (Hz)" msgstr "Érték (Hz)" -#: ../gtk/propertybox.c:379 +#: ../gtk/propertybox.c:568 msgid "Status" msgstr "Állapot" -#: ../gtk/propertybox.c:385 -msgid "Min bitrate (kbit/s)" +#: ../gtk/propertybox.c:574 +#, fuzzy +msgid "Bitrate (kbit/s)" msgstr "Min bitrate (kbit/s)" -#: ../gtk/propertybox.c:392 +#: ../gtk/propertybox.c:581 msgid "Parameters" msgstr "Paraméterek" -#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:624 ../gtk/propertybox.c:767 msgid "Enabled" msgstr "Engedélyezve" -#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:626 ../gtk/propertybox.c:767 msgid "Disabled" msgstr "Tiltva" -#: ../gtk/propertybox.c:624 +#: ../gtk/propertybox.c:813 msgid "Account" msgstr "Hozzáférés" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:1057 msgid "English" msgstr "angol" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:1058 msgid "French" msgstr "francia" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:1059 msgid "Swedish" msgstr "svéd" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:1060 msgid "Italian" msgstr "olasz" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:1061 msgid "Spanish" msgstr "spanyol" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:1062 msgid "Brazilian Portugese" msgstr "brazil-portugál" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:1063 msgid "Polish" msgstr "lengyel" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:1064 msgid "German" msgstr "német" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:1065 msgid "Russian" msgstr "orosz" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:1066 msgid "Japanese" msgstr "japán" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:1067 msgid "Dutch" msgstr "holland" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:1068 msgid "Hungarian" msgstr "magyar" -#: ../gtk/propertybox.c:776 +#: ../gtk/propertybox.c:1069 msgid "Czech" msgstr "cseh" -#: ../gtk/propertybox.c:777 +#: ../gtk/propertybox.c:1070 msgid "Chinese" msgstr "egyszerúsített kínai" -#: ../gtk/propertybox.c:778 +#: ../gtk/propertybox.c:1071 msgid "Traditional Chinese" msgstr "tradícionális kínai" -#: ../gtk/propertybox.c:779 +#: ../gtk/propertybox.c:1072 msgid "Norwegian" msgstr "norvég" -#: ../gtk/propertybox.c:780 +#: ../gtk/propertybox.c:1073 msgid "Hebrew" msgstr "héber" -#: ../gtk/propertybox.c:781 +#: ../gtk/propertybox.c:1074 msgid "Serbian" msgstr "" -#: ../gtk/propertybox.c:848 +#: ../gtk/propertybox.c:1141 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" "Újra kell indítania a linphone-t, hogy az új nyelv kiválasztása érvényre " "jusson. " -#: ../gtk/propertybox.c:934 +#: ../gtk/propertybox.c:1219 msgid "None" msgstr "Nincs" -#: ../gtk/propertybox.c:938 +#: ../gtk/propertybox.c:1223 msgid "SRTP" msgstr "SRTP" -#: ../gtk/propertybox.c:944 +#: ../gtk/propertybox.c:1229 msgid "ZRTP" msgstr "ZRTP" @@ -448,59 +454,63 @@ msgstr "Már rendelkezem linphone.org fiókkal, azt szeretném használni" msgid "I have already a sip account and I just want to use it" msgstr "Már rendelkezem sip fiókkal, azt szeretném használni" -#: ../gtk/setupwizard.c:85 +#: ../gtk/setupwizard.c:46 +msgid "I want to specify a remote configuration URI" +msgstr "" + +#: ../gtk/setupwizard.c:89 msgid "Enter your linphone.org username" msgstr "Adja meg linphone.org felhasználónevét" -#: ../gtk/setupwizard.c:92 +#: ../gtk/setupwizard.c:96 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4 msgid "Username:" msgstr "Felhasználónév:" -#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:98 ../gtk/password.ui.h:4 ../gtk/ldap.ui.h:5 msgid "Password:" msgstr "Jelszó:" -#: ../gtk/setupwizard.c:114 +#: ../gtk/setupwizard.c:118 msgid "Enter your account informations" msgstr "Írja be fiókinformációit" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:125 msgid "Username*" msgstr "Felhasználónév*" -#: ../gtk/setupwizard.c:122 +#: ../gtk/setupwizard.c:126 msgid "Password*" msgstr "Jelszó*" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:129 msgid "Domain*" msgstr "Tartomány" -#: ../gtk/setupwizard.c:126 +#: ../gtk/setupwizard.c:130 msgid "Proxy" msgstr "Proxy" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:302 msgid "(*) Required fields" msgstr "(*) Mező kitöltése szükséges" -#: ../gtk/setupwizard.c:299 +#: ../gtk/setupwizard.c:303 msgid "Username: (*)" msgstr "Felhasználónév: (*)" -#: ../gtk/setupwizard.c:301 +#: ../gtk/setupwizard.c:305 msgid "Password: (*)" msgstr "Jelszó: (*)" -#: ../gtk/setupwizard.c:303 +#: ../gtk/setupwizard.c:307 msgid "Email: (*)" msgstr "E-mail: (*)" -#: ../gtk/setupwizard.c:305 +#: ../gtk/setupwizard.c:309 msgid "Confirm your password: (*)" msgstr "Jelszó megerősítése: (*)" -#: ../gtk/setupwizard.c:369 +#: ../gtk/setupwizard.c:373 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." @@ -509,11 +519,11 @@ msgstr "" "vagy a kiszolgáló nem elérhető.\n" "Kérjük, lépjen vissza és próbálja újra." -#: ../gtk/setupwizard.c:380 +#: ../gtk/setupwizard.c:384 msgid "Thank you. Your account is now configured and ready for use." msgstr "Köszönjük! Az Ön fiókját beállítottuk és használatra kész." -#: ../gtk/setupwizard.c:388 +#: ../gtk/setupwizard.c:392 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" @@ -523,35 +533,40 @@ msgstr "" "hivatkozásra kattintva.\n" "Azután térjen vissza ide és kattintson a Következő gombra." -#: ../gtk/setupwizard.c:564 +#: ../gtk/setupwizard.c:572 +#, fuzzy +msgid "SIP account configuration assistant" +msgstr "Fiók beállítása varázsló" + +#: ../gtk/setupwizard.c:590 msgid "Welcome to the account setup assistant" msgstr "A fiók beállítása varázsló üdvözli Önt" -#: ../gtk/setupwizard.c:569 +#: ../gtk/setupwizard.c:595 msgid "Account setup assistant" msgstr "Fiók beállítása varázsló" -#: ../gtk/setupwizard.c:575 +#: ../gtk/setupwizard.c:601 msgid "Configure your account (step 1/1)" msgstr "Az Ön fiókjának beállítása (1/1 lépés)" -#: ../gtk/setupwizard.c:580 +#: ../gtk/setupwizard.c:606 msgid "Enter your sip username (step 1/1)" msgstr "Adja meg sip felhasználónevét (1/2 lépés)" -#: ../gtk/setupwizard.c:584 +#: ../gtk/setupwizard.c:610 msgid "Enter account information (step 1/2)" msgstr "Adja meg a fiókinformációt (1/2 lépés)" -#: ../gtk/setupwizard.c:593 +#: ../gtk/setupwizard.c:619 msgid "Validation (step 2/2)" msgstr "Érvényesítés (2/2 lépés)" -#: ../gtk/setupwizard.c:598 +#: ../gtk/setupwizard.c:624 msgid "Error" msgstr "Hiba" -#: ../gtk/setupwizard.c:602 +#: ../gtk/setupwizard.c:628 msgid "Terminating" msgstr "Befejezés" @@ -617,7 +632,7 @@ msgstr "uPnP nem sikerült" msgid "Direct or through server" msgstr "közvetlen vagy kiszolgálón keresztül" -#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:261 ../gtk/incall_view.c:272 #, c-format msgid "" "download: %f\n" @@ -626,110 +641,115 @@ msgstr "" "letöltés: %f\n" "feltöltés: %f (kbit/mp)" -#: ../gtk/incall_view.c:286 +#: ../gtk/incall_view.c:267 ../gtk/incall_view.c:268 +#, c-format +msgid "%ix%i" +msgstr "" + +#: ../gtk/incall_view.c:297 #, c-format msgid "%.3f seconds" msgstr "%.3f másodperc" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:395 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "Befejezés" -#: ../gtk/incall_view.c:476 +#: ../gtk/incall_view.c:487 msgid "Calling..." msgstr "Hívás folyamatban..." -#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:700 msgid "00::00::00" msgstr "00::00::00" -#: ../gtk/incall_view.c:490 +#: ../gtk/incall_view.c:501 msgid "Incoming call" msgstr "Beérkező hívás" -#: ../gtk/incall_view.c:527 +#: ../gtk/incall_view.c:538 msgid "good" msgstr "jó" -#: ../gtk/incall_view.c:529 +#: ../gtk/incall_view.c:540 msgid "average" msgstr "közepes" -#: ../gtk/incall_view.c:531 +#: ../gtk/incall_view.c:542 msgid "poor" msgstr "gyenge" -#: ../gtk/incall_view.c:533 +#: ../gtk/incall_view.c:544 msgid "very poor" msgstr "nagyon gyenge" -#: ../gtk/incall_view.c:535 +#: ../gtk/incall_view.c:546 msgid "too bad" msgstr "rossz" -#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:547 ../gtk/incall_view.c:563 msgid "unavailable" msgstr "nem elérhető" -#: ../gtk/incall_view.c:651 +#: ../gtk/incall_view.c:662 msgid "Secured by SRTP" msgstr "SRTP-vel titkosítva" -#: ../gtk/incall_view.c:657 +#: ../gtk/incall_view.c:668 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "ZRTP-vel titkosítva - [hitelesítési jel: %s]" -#: ../gtk/incall_view.c:663 +#: ../gtk/incall_view.c:674 msgid "Set unverified" msgstr "Beállítás ellenőrizetlenként" -#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:674 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "Beállítás ellenőrzöttként" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In conference" msgstr "Konferencián" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In call" msgstr "vonalban" -#: ../gtk/incall_view.c:718 +#: ../gtk/incall_view.c:731 msgid "Paused call" msgstr "Várakoztatott hívás" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:744 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i::%02i::%02i" -#: ../gtk/incall_view.c:748 +#: ../gtk/incall_view.c:762 msgid "Call ended." msgstr "Hívás vége." -#: ../gtk/incall_view.c:778 +#: ../gtk/incall_view.c:793 msgid "Transfer in progress" msgstr "Átvitel folyamatban" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:796 msgid "Transfer done." msgstr "Átvitel befejezve." -#: ../gtk/incall_view.c:784 +#: ../gtk/incall_view.c:799 msgid "Transfer failed." msgstr "Az átvitel sikertelen." -#: ../gtk/incall_view.c:828 +#: ../gtk/incall_view.c:843 msgid "Resume" msgstr "Visszatérés" -#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:850 ../gtk/main.ui.h:9 msgid "Pause" msgstr "Várakoztatás" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, c-format msgid "" "Recording into\n" @@ -738,15 +758,25 @@ msgstr "" "Felvétel a következőbe\n" "%s %s" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 msgid "(Paused)" msgstr "(Várakoztatva)" -#: ../gtk/loginframe.c:93 +#: ../gtk/loginframe.c:88 #, c-format msgid "Please enter login information for %s" msgstr "Kérem, adja meg a bejelentkezési információt %s -hoz" +#: ../gtk/config-fetching.c:57 +#, fuzzy, c-format +msgid "fetching from %s" +msgstr "Beérkező hívás" + +#: ../gtk/config-fetching.c:73 +#, c-format +msgid "Downloading of remote configuration from %s failed." +msgstr "" + #: ../gtk/main.ui.h:1 msgid "Callee name" msgstr "Hívott neve" @@ -792,89 +822,90 @@ msgid "_Options" msgstr "_Beállítások" #: ../gtk/main.ui.h:18 +#, fuzzy +msgid "Set configuration URI" +msgstr "Proxy/Regisztráció konfigurációs doboz" + +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "Videó indítása mindig" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "Saját nézet" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "_Segítség" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "Hibakeresési ablak mutatása" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "_Honlap" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "Frissítések keresése" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "Fiók varázsló" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "Adja meg a SIP címet vagy a telefonszámot:" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "Új hívás kezdeményezése" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:28 msgid "Contacts" msgstr "Partnerek" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 -msgid "Add" -msgstr "Hozzáadás" - -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 -msgid "Edit" -msgstr "Szerkesztés" - -#: ../gtk/main.ui.h:30 +#: ../gtk/main.ui.h:29 msgid "Search" msgstr "Keresés" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Add contacts from directory" msgstr "Partnerek hozzáadása könyvtárból" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contact" msgstr "Partner hozzáadása" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 msgid "Recent calls" msgstr "Legutóbbi hívások" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "My current identity:" msgstr "Jelenlegi identitásom:" -#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:34 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Felhasználónév" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Jelszó" -#: ../gtk/main.ui.h:37 +#: ../gtk/main.ui.h:36 msgid "Internet connection:" msgstr "Internet kapcsolat:" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Automatically log me in" msgstr "Jelentkeztessen be automatikusan" +#: ../gtk/main.ui.h:38 ../gtk/password.ui.h:3 +msgid "UserID" +msgstr "Felhasználó azonosító" + #: ../gtk/main.ui.h:39 msgid "Login information" msgstr "Bejelentkezési információ" @@ -922,6 +953,7 @@ msgstr "" "használja." #: ../gtk/about.ui.h:5 +#, fuzzy msgid "" "fr: Simon Morlat\n" "en: Simon Morlat and Delphine Perreau\n" @@ -934,6 +966,7 @@ msgid "" "pl: Robert Nasiadek \n" "cs: Petr Pisar \n" "hu: anonymous\n" +"he: Eli Zaretskii \n" msgstr "" "francia: Simon Morlat\n" "angol: Simon Morlat és Delphine Perreau\n" @@ -979,10 +1012,6 @@ msgstr "Linphone - Hitelesítés szükséges" msgid "Please enter the domain password" msgstr "Kérem adja meg a tartomány jelszavát" -#: ../gtk/password.ui.h:3 -msgid "UserID" -msgstr "Felhasználó azonosító" - #: ../gtk/call_logs.ui.h:1 msgid "Call history" msgstr "Híváselőzmények" @@ -1020,270 +1049,316 @@ msgid "Looks like sip:" msgstr "Így néz ki: sip:" #: ../gtk/sip_account.ui.h:7 -msgid "Route (optional):" -msgstr "Út (nem kötelező):" - -#: ../gtk/sip_account.ui.h:8 msgid "Registration duration (sec):" msgstr "Regisztrálási Időköz (mp):" +#: ../gtk/sip_account.ui.h:8 +#, fuzzy +msgid "Contact params (optional):" +msgstr "Út (nem kötelező):" + #: ../gtk/sip_account.ui.h:9 +msgid "Route (optional):" +msgstr "Út (nem kötelező):" + +#: ../gtk/sip_account.ui.h:10 +#, fuzzy +msgid "Transport" +msgstr "Átvitel" + +#: ../gtk/sip_account.ui.h:11 msgid "Register" msgstr "Regisztráció" -#: ../gtk/sip_account.ui.h:10 +#: ../gtk/sip_account.ui.h:12 msgid "Publish presence information" msgstr "Jelenléti információ közlése" -#: ../gtk/sip_account.ui.h:11 +#: ../gtk/sip_account.ui.h:13 msgid "Configure a SIP account" msgstr "SIP fiók beállítása" #: ../gtk/parameters.ui.h:1 +msgid "anonymous" +msgstr "" + +#: ../gtk/parameters.ui.h:2 +msgid "GSSAPI" +msgstr "" + +#: ../gtk/parameters.ui.h:3 +msgid "SASL" +msgstr "" + +#: ../gtk/parameters.ui.h:4 msgid "default soundcard" msgstr "alapértelmezett hangkártya" -#: ../gtk/parameters.ui.h:2 +#: ../gtk/parameters.ui.h:5 msgid "a sound card" msgstr "egy hangkártya" -#: ../gtk/parameters.ui.h:3 +#: ../gtk/parameters.ui.h:6 msgid "default camera" msgstr "alapértelmezett kamera" -#: ../gtk/parameters.ui.h:4 +#: ../gtk/parameters.ui.h:7 msgid "CIF" msgstr "CIF" -#: ../gtk/parameters.ui.h:5 +#: ../gtk/parameters.ui.h:8 msgid "Audio codecs" msgstr "Audió kódekek" -#: ../gtk/parameters.ui.h:6 +#: ../gtk/parameters.ui.h:9 msgid "Video codecs" msgstr "Videó kódekek" -#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:10 ../gtk/keypad.ui.h:5 msgid "C" msgstr "C" -#: ../gtk/parameters.ui.h:8 +#: ../gtk/parameters.ui.h:11 msgid "SIP (UDP)" msgstr "SIP (UDP)" -#: ../gtk/parameters.ui.h:9 +#: ../gtk/parameters.ui.h:12 msgid "SIP (TCP)" msgstr "SIP (TCP)" -#: ../gtk/parameters.ui.h:10 +#: ../gtk/parameters.ui.h:13 msgid "SIP (TLS)" msgstr "SIP (TLS)" -#: ../gtk/parameters.ui.h:11 +#: ../gtk/parameters.ui.h:14 msgid "Settings" msgstr "Beállítások" -#: ../gtk/parameters.ui.h:12 +#: ../gtk/parameters.ui.h:15 msgid "Set Maximum Transmission Unit:" msgstr "Maximum Továbbítási Egység beállítása:" -#: ../gtk/parameters.ui.h:13 +#: ../gtk/parameters.ui.h:16 msgid "Send DTMFs as SIP info" msgstr "DTMF küldése SIP infóként" -#: ../gtk/parameters.ui.h:14 +#: ../gtk/parameters.ui.h:17 msgid "Use IPv6 instead of IPv4" msgstr "IPv6 használata IPv4 helyett" -#: ../gtk/parameters.ui.h:15 +#: ../gtk/parameters.ui.h:18 msgid "Transport" msgstr "Átvitel" -#: ../gtk/parameters.ui.h:16 +#: ../gtk/parameters.ui.h:19 msgid "Media encryption type" msgstr "Média titkosítás típusa" -#: ../gtk/parameters.ui.h:17 +#: ../gtk/parameters.ui.h:20 msgid "Video RTP/UDP:" msgstr "Videó RTP/UDP:" -#: ../gtk/parameters.ui.h:18 +#: ../gtk/parameters.ui.h:21 msgid "Audio RTP/UDP:" msgstr "Audió RTP/UDP:" -#: ../gtk/parameters.ui.h:19 -msgid "DSCP fields" -msgstr "DSCP mezők" - -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:22 msgid "Fixed" msgstr "Javítva" -#: ../gtk/parameters.ui.h:21 -msgid "Tunnel" -msgstr "Alagút" - -#: ../gtk/parameters.ui.h:22 +#: ../gtk/parameters.ui.h:23 msgid "Media encryption is mandatory" msgstr "Média titkosítás kötelező" -#: ../gtk/parameters.ui.h:23 +#: ../gtk/parameters.ui.h:24 +msgid "Tunnel" +msgstr "Alagút" + +#: ../gtk/parameters.ui.h:25 +msgid "DSCP fields" +msgstr "DSCP mezők" + +#: ../gtk/parameters.ui.h:26 +#, fuzzy +msgid "SIP/TCP port" +msgstr "SIP port" + +#: ../gtk/parameters.ui.h:27 +#, fuzzy +msgid "SIP/UDP port" +msgstr "SIP port" + +#: ../gtk/parameters.ui.h:28 msgid "Network protocol and ports" msgstr "Hálózati protokoll és port" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:29 msgid "Direct connection to the Internet" msgstr "Közvetlen Internet kapcsolat" -#: ../gtk/parameters.ui.h:25 -msgid "Behind NAT / Firewall (specify gateway IP below)" +#: ../gtk/parameters.ui.h:30 +#, fuzzy +msgid "Behind NAT / Firewall (specify gateway IP )" msgstr "NAT / tűzfal mögött (adja meg az átjáró IP címét)" -#: ../gtk/parameters.ui.h:26 -msgid "Public IP address:" -msgstr "Publikus IP cím:" - -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:31 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "NAT / tűzfal mögött (STUN használata a feloldáshoz)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:32 msgid "Behind NAT / Firewall (use ICE)" msgstr "NAT / tűzfal mögött (ICE használata)" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:33 msgid "Behind NAT / Firewall (use uPnP)" msgstr "NAT / tűzfal mögött (uPnP használata)" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:34 +msgid "Public IP address:" +msgstr "Publikus IP cím:" + +#: ../gtk/parameters.ui.h:35 msgid "Stun server:" msgstr "STUN kiszolgáló:" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:36 msgid "NAT and Firewall" msgstr "NAT és tűzfal" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:37 msgid "Network settings" msgstr "Hálózati beállítások" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:38 msgid "Ring sound:" msgstr "Csengőhang:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:39 msgid "ALSA special device (optional):" msgstr "Különleges ALSA eszköz (nem kötelező):" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:40 msgid "Capture device:" msgstr "Felvevő hang eszköz:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:41 msgid "Ring device:" msgstr "Csengőhang eszköz:" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:42 msgid "Playback device:" msgstr "Lejátszó hang eszköz:" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:43 msgid "Enable echo cancellation" msgstr "Visszhang-elnyomás engedélyezése" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:44 msgid "Audio" msgstr "Audió" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:45 msgid "Video input device:" msgstr "Videó bemeneti eszköz:" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:46 msgid "Prefered video resolution:" msgstr "Kívánt videó felbontás:" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:47 +#, fuzzy +msgid "Video output method:" +msgstr "Videó bemeneti eszköz:" + +#: ../gtk/parameters.ui.h:48 msgid "Video" msgstr "Videó" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:49 msgid "Multimedia settings" msgstr "Multimédia beállítások" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:50 msgid "This section defines your SIP address when not using a SIP account" msgstr "Ez a rész határozza meg az Ön SIP címét, amikor nem használ SIP fiókot" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:51 msgid "Your display name (eg: John Doe):" msgstr "Az Ön megjelenített neve (pl. Kis József):" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:52 msgid "Your username:" msgstr "Az Ön felhasználóneve:" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:53 msgid "Your resulting SIP address:" msgstr "Az Ön így keletkezett SIP címe:" -#: ../gtk/parameters.ui.h:48 +#: ../gtk/parameters.ui.h:54 msgid "Default identity" msgstr "Alapértelmezett identitás" -#: ../gtk/parameters.ui.h:49 +#: ../gtk/parameters.ui.h:55 msgid "Wizard" msgstr "Varázsló" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:56 +msgid "Add" +msgstr "Hozzáadás" + +#: ../gtk/parameters.ui.h:57 +msgid "Edit" +msgstr "Szerkesztés" + +#: ../gtk/parameters.ui.h:58 msgid "Remove" msgstr "Eltávolítás" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:59 msgid "Proxy accounts" msgstr "Proxy fiókok" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:60 msgid "Erase all passwords" msgstr "Minden kulcsszó törlése" -#: ../gtk/parameters.ui.h:55 +#: ../gtk/parameters.ui.h:61 msgid "Privacy" msgstr "Titoktartás" -#: ../gtk/parameters.ui.h:56 +#: ../gtk/parameters.ui.h:62 msgid "Manage SIP Accounts" msgstr "SIP fiókok beállítása" -#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Engedélyezés" -#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Tiltás" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:65 msgid "Codecs" msgstr "Kódekek" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:66 msgid "0 stands for \"unlimited\"" msgstr "A 0 jelentése \"végtelen\"" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:67 msgid "Upload speed limit in Kbit/sec:" msgstr "Feltöltési sebesség korlát (kbit/mp):" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:68 msgid "Download speed limit in Kbit/sec:" msgstr "Letöltési sebesség korlát (kbit/mp):" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:69 msgid "Enable adaptive rate control" msgstr "Alkalmazkodó mérték-szabályozás engedélyezése" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:70 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." @@ -1291,31 +1366,54 @@ msgstr "" "Az alkalmazkodó mérték-szabályozás egy módszer, mely erőteljesen próbálja " "megállapítani a rendelkezésre álló sávszélességet hívás alatt." -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:71 msgid "Bandwidth control" msgstr "Sávszélesség szabályozása" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:72 msgid "Codecs" msgstr "Kódekek" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:73 msgid "Language" msgstr "Nyelv" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:74 msgid "Show advanced settings" msgstr "Haladó beállítások megjelenítése" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:75 msgid "Level" msgstr "Szint" -#: ../gtk/parameters.ui.h:70 +#: ../gtk/parameters.ui.h:76 msgid "User interface" msgstr "Felhasználói környezet" -#: ../gtk/parameters.ui.h:71 +#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2 +#, fuzzy +msgid "Server address:" +msgstr "Sip cím:" + +#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3 +#, fuzzy +msgid "Authentication method:" +msgstr "Hitelesítési információ" + +#: ../gtk/parameters.ui.h:80 +msgid "label" +msgstr "címke" + +#: ../gtk/parameters.ui.h:81 +#, fuzzy +msgid "LDAP Account setup" +msgstr "Proxy fiókok" + +#: ../gtk/parameters.ui.h:82 +msgid "LDAP" +msgstr "" + +#: ../gtk/parameters.ui.h:83 msgid "Done" msgstr "Kész" @@ -1340,7 +1438,8 @@ msgid "Please wait" msgstr "Kérem várjon" #: ../gtk/dscp_settings.ui.h:1 -msgid "Dscp settings" +#, fuzzy +msgid "DSCP settings" msgstr "DSCP beállítások" #: ../gtk/dscp_settings.ui.h:2 @@ -1392,6 +1491,15 @@ msgid "Round trip time" msgstr "Körbeérés ideje" #: ../gtk/call_statistics.ui.h:9 +msgid "Video resolution received" +msgstr "" + +#: ../gtk/call_statistics.ui.h:10 +#, fuzzy +msgid "Video resolution sent" +msgstr "Kívánt videó felbontás:" + +#: ../gtk/call_statistics.ui.h:11 msgid "Call statistics and information" msgstr "Hívási statisztika és információ" @@ -1475,19 +1583,142 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:228 +#: ../gtk/ldap.ui.h:1 +#, fuzzy +msgid "LDAP Settings" +msgstr "Beállítások" + +#: ../gtk/ldap.ui.h:6 +msgid "Use TLS Connection" +msgstr "" + +#: ../gtk/ldap.ui.h:7 +#, fuzzy +msgid "Not yet available" +msgstr "uPnP nem elérhető" + +#: ../gtk/ldap.ui.h:8 +#, fuzzy +msgid "Connection" +msgstr "Kódekek" + +#: ../gtk/ldap.ui.h:9 +msgid "Bind DN" +msgstr "" + +#: ../gtk/ldap.ui.h:10 +msgid "Authname" +msgstr "" + +#: ../gtk/ldap.ui.h:11 +#, fuzzy +msgid "Realm" +msgstr "tartomány:" + +#: ../gtk/ldap.ui.h:12 +#, fuzzy +msgid "SASL" +msgstr "Audió" + +#: ../gtk/ldap.ui.h:13 +msgid "Base object:" +msgstr "" + +#: ../gtk/ldap.ui.h:15 +#, no-c-format +msgid "Filter (%s for name):" +msgstr "" + +#: ../gtk/ldap.ui.h:16 +msgid "Name Attribute:" +msgstr "" + +#: ../gtk/ldap.ui.h:17 +#, fuzzy +msgid "SIP address attribute:" +msgstr "Sip cím:" + +#: ../gtk/ldap.ui.h:18 +msgid "Attributes to query:" +msgstr "" + +#: ../gtk/ldap.ui.h:19 +#, fuzzy +msgid "Search" +msgstr "Keres valakit" + +#: ../gtk/ldap.ui.h:20 +msgid "Timeout for search:" +msgstr "" + +#: ../gtk/ldap.ui.h:21 +msgid "Max results:" +msgstr "" + +#: ../gtk/ldap.ui.h:22 +msgid "Follow Aliases" +msgstr "" + +#: ../gtk/ldap.ui.h:23 +#, fuzzy +msgid "Miscellaneous" +msgstr "Videó" + +#: ../gtk/ldap.ui.h:24 +msgid "ANONYMOUS" +msgstr "" + +#: ../gtk/ldap.ui.h:25 +msgid "SIMPLE" +msgstr "" + +#: ../gtk/ldap.ui.h:26 +msgid "DIGEST-MD5" +msgstr "" + +#: ../gtk/ldap.ui.h:27 +msgid "NTLM" +msgstr "" + +#: ../gtk/config-uri.ui.h:1 +msgid "Specifying a remote configuration URI" +msgstr "" + +#: ../gtk/config-uri.ui.h:2 +msgid "" +"This dialog allows to set an http or https address when configuration is to " +"be fetched at startup.\n" +"Please enter or modify the configuration URI below. After clicking OK, " +"Linphone will restart automatically in order to fetch and take into account " +"the new configuration. " +msgstr "" + +#: ../gtk/config-uri.ui.h:4 +msgid "https://" +msgstr "" + +#: ../gtk/provisioning-fetch.ui.h:1 +#, fuzzy +msgid "Configuring..." +msgstr "Kapcsolódás..." + +#: ../gtk/provisioning-fetch.ui.h:2 +msgid "Please wait while fetching configuration from server..." +msgstr "" + +#: ../coreapi/linphonecore.c:238 msgid "aborted" msgstr "megszakítva" -#: ../coreapi/linphonecore.c:231 +#: ../coreapi/linphonecore.c:241 msgid "completed" msgstr "befejezve" -#: ../coreapi/linphonecore.c:234 +#: ../coreapi/linphonecore.c:244 msgid "missed" msgstr "elhibázva" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:249 #, c-format msgid "" "%s at %s\n" @@ -1502,102 +1733,77 @@ msgstr "" "Állapot: %s\n" "Időtartam: %i perc %i másodperc\n" -#: ../coreapi/linphonecore.c:240 +#: ../coreapi/linphonecore.c:250 msgid "Outgoing call" msgstr "Kimenő hívás" -#: ../coreapi/linphonecore.c:1321 +#: ../coreapi/linphonecore.c:1264 msgid "Ready" msgstr "Kész" -#: ../coreapi/linphonecore.c:2205 +#: ../coreapi/linphonecore.c:1372 +#, fuzzy +msgid "Configuring" +msgstr "Információk" + +#: ../coreapi/linphonecore.c:2331 msgid "Looking for telephone number destination..." msgstr "Telefonszám-cél keresése..." -#: ../coreapi/linphonecore.c:2208 +#: ../coreapi/linphonecore.c:2334 msgid "Could not resolve this number." msgstr "Nem sikkerült értelmezni a számot." -#: ../coreapi/linphonecore.c:2252 -msgid "" -"Could not parse given sip address. A sip url usually looks like sip:" -"user@domain" -msgstr "" -"Az adott szám nem értelmezhető. Egy sip cím általában így néz ki: user@domain" - -#: ../coreapi/linphonecore.c:2453 +#. must be known at that time +#: ../coreapi/linphonecore.c:2609 msgid "Contacting" msgstr "Kapcsolódás" -#: ../coreapi/linphonecore.c:2460 +#: ../coreapi/linphonecore.c:2616 msgid "Could not call" msgstr "Nem sikerült hívni" -#: ../coreapi/linphonecore.c:2570 +#: ../coreapi/linphonecore.c:2765 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Elnézést, elértük a egyidejű hívások maximális számát" -#: ../coreapi/linphonecore.c:2752 +#: ../coreapi/linphonecore.c:2952 msgid "is contacting you" msgstr "kapcsolatba lépett veled." -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid " and asked autoanswer." msgstr "és automatikus választ kért." -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2820 +#: ../coreapi/linphonecore.c:3020 msgid "Modifying call parameters..." msgstr "A hívási jellemzők módosítása..." -#: ../coreapi/linphonecore.c:3159 +#: ../coreapi/linphonecore.c:3362 msgid "Connected." msgstr "Kapcsolódva." -#: ../coreapi/linphonecore.c:3187 +#: ../coreapi/linphonecore.c:3388 msgid "Call aborted" msgstr "Hívás megszakítva" -#: ../coreapi/linphonecore.c:3378 +#: ../coreapi/linphonecore.c:3581 msgid "Could not pause the call" msgstr "Nem sikerült várakoztatni a hívást" -#: ../coreapi/linphonecore.c:3383 +#: ../coreapi/linphonecore.c:3586 msgid "Pausing the current call..." msgstr "Jelenlegi hívás várakoztatásának aktiválása..." -#: ../coreapi/misc.c:148 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the pcm oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -"'modprobe snd-pcm-oss' as root to load it." -msgstr "" -"A számítógéped úgy tűnik, hogy ALSA hangot használ.\n" -"Ez a legjobb választás. Mindazonáltal a pcm* OSS emuláció modulra\n" -" a linphone-nak szüksége van és ez hiányzik. Kérem futassa le a\n" -"'modprobe snd-pcm-oss' parancsot rendszergazdaként." - -#: ../coreapi/misc.c:151 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the mixer oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -" 'modprobe snd-mixer-oss' as root to load it." -msgstr "" -"A számítógéped úgy tűnik, hogy ALSA hangot használ.\n" -"Ez a legjobb választás. Mindazonáltal a mixer OSS emuláció modulra\n" -" a linphone-nak szüksége van és ez hiányzik. Kérem futassa le a\n" -"'modprobe snd-pcm-oss' parancsot rendszergazdaként." - -#: ../coreapi/misc.c:496 +#: ../coreapi/misc.c:394 msgid "Stun lookup in progress..." msgstr "Stun keresés folyamatban..." -#: ../coreapi/misc.c:630 +#: ../coreapi/misc.c:576 msgid "ICE local candidates gathering in progress..." msgstr "ICE helyi jelentkezők begyűjtése folyamatban..." @@ -1646,10 +1852,15 @@ msgid "Pending" msgstr "Függőben" #: ../coreapi/friend.c:66 +#, fuzzy +msgid "Vacation" +msgstr "Időtartam" + +#: ../coreapi/friend.c:68 msgid "Unknown-bug" msgstr "Ismeretlen programhiba" -#: ../coreapi/proxy.c:204 +#: ../coreapi/proxy.c:209 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." @@ -1657,7 +1868,7 @@ msgstr "" "Az Ön által megadott SIP proxy cím érvénytelen. \"sip:\"-tal kell kezdődnie, " "ezt egy hosztnév követi." -#: ../coreapi/proxy.c:210 +#: ../coreapi/proxy.c:215 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" @@ -1666,132 +1877,162 @@ msgstr "" "Így kéne kinéznie: sip:felhasznalonev@proxytartomany, például sip:" "aladar@pelda.hu" -#: ../coreapi/proxy.c:1069 +#: ../coreapi/proxy.c:1125 #, c-format msgid "Could not login as %s" msgstr "Nem sikerült belépni ezzel: %s" -#: ../coreapi/callbacks.c:286 +#: ../coreapi/callbacks.c:289 msgid "Remote ringing." msgstr "Távoli csengés." -#: ../coreapi/callbacks.c:306 +#: ../coreapi/callbacks.c:305 msgid "Remote ringing..." msgstr "Távoli csengés..." -#: ../coreapi/callbacks.c:317 +#: ../coreapi/callbacks.c:316 msgid "Early media." msgstr "Korai médiák." -#: ../coreapi/callbacks.c:368 +#: ../coreapi/callbacks.c:367 #, c-format msgid "Call with %s is paused." msgstr "A hívás a következővel: %s várakoztatva" -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:380 #, c-format msgid "Call answered by %s - on hold." msgstr "%s fogadta a hívást - várakoztatva." -#: ../coreapi/callbacks.c:392 +#: ../coreapi/callbacks.c:391 msgid "Call resumed." msgstr "Hívás visszatért" -#: ../coreapi/callbacks.c:397 +#: ../coreapi/callbacks.c:396 #, c-format msgid "Call answered by %s." msgstr "%s válaszolt a hívásra." -#: ../coreapi/callbacks.c:412 +#: ../coreapi/callbacks.c:414 msgid "Incompatible, check codecs or security settings..." msgstr "" "Nem kompatibilis, ellenőrizze a kódek- vagy a biztonsági beállításokat..." -#: ../coreapi/callbacks.c:460 +#: ../coreapi/callbacks.c:463 msgid "We have been resumed." msgstr "Visszatértünk." -#: ../coreapi/callbacks.c:469 +#: ../coreapi/callbacks.c:471 msgid "We are paused by other party." msgstr "Megállítva a másik fél által." -#: ../coreapi/callbacks.c:475 +#: ../coreapi/callbacks.c:487 msgid "Call is updated by remote." msgstr "A hívás távolról frissítve." -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:558 msgid "Call terminated." msgstr "A hívás befejezve." -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:586 msgid "User is busy." msgstr "A felhasználó foglalt." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:587 msgid "User is temporarily unavailable." msgstr "A felhasználó ideiglenesen nem elérhető" #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:558 +#: ../coreapi/callbacks.c:589 msgid "User does not want to be disturbed." msgstr "A felhasználó nem akarja, hogy zavarják." -#: ../coreapi/callbacks.c:559 +#: ../coreapi/callbacks.c:590 msgid "Call declined." msgstr "Hívás elutasítva" -#: ../coreapi/callbacks.c:571 +#: ../coreapi/callbacks.c:603 msgid "No response." msgstr "Nincs válasz." -#: ../coreapi/callbacks.c:575 +#: ../coreapi/callbacks.c:607 msgid "Protocol error." msgstr "Protokol hiba." -#: ../coreapi/callbacks.c:591 +#: ../coreapi/callbacks.c:623 msgid "Redirected" msgstr "Átirányítva" -#: ../coreapi/callbacks.c:627 +#: ../coreapi/callbacks.c:665 msgid "Incompatible media parameters." msgstr "Nem kompatibilis médiajellemzők." -#: ../coreapi/callbacks.c:633 +#: ../coreapi/callbacks.c:677 msgid "Call failed." msgstr "Nem sikerült a hívás." -#: ../coreapi/callbacks.c:737 +#: ../coreapi/callbacks.c:751 #, c-format msgid "Registration on %s successful." msgstr "A regisztáció a %s -n sikerült." -#: ../coreapi/callbacks.c:738 +#: ../coreapi/callbacks.c:752 #, c-format msgid "Unregistration on %s done." msgstr "A kiregisztrálás kész a következőn: %s ." -#: ../coreapi/callbacks.c:758 +#: ../coreapi/callbacks.c:772 msgid "no response timeout" msgstr "időtúllépés után nincs válasz" -#: ../coreapi/callbacks.c:761 +#: ../coreapi/callbacks.c:775 #, c-format msgid "Registration on %s failed: %s" msgstr "A regisztáció a %s -n nem sikerült: %s" -#: ../coreapi/linphonecall.c:129 +#: ../coreapi/callbacks.c:785 +msgid "Service unavailable, retrying" +msgstr "" + +#: ../coreapi/linphonecall.c:142 #, c-format msgid "Authentication token is %s" msgstr "Hitelesítési jel: %s" -#: ../coreapi/linphonecall.c:2355 +#: ../coreapi/linphonecall.c:2678 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "Van %i nem fogadott hivás." -#~ msgid "label" -#~ msgstr "címke" +#~ msgid "" +#~ "Could not parse given sip address. A sip url usually looks like sip:" +#~ "user@domain" +#~ msgstr "" +#~ "Az adott szám nem értelmezhető. Egy sip cím általában így néz ki: " +#~ "user@domain" + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the pcm oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ "'modprobe snd-pcm-oss' as root to load it." +#~ msgstr "" +#~ "A számítógéped úgy tűnik, hogy ALSA hangot használ.\n" +#~ "Ez a legjobb választás. Mindazonáltal a pcm* OSS emuláció modulra\n" +#~ " a linphone-nak szüksége van és ez hiányzik. Kérem futassa le a\n" +#~ "'modprobe snd-pcm-oss' parancsot rendszergazdaként." + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the mixer oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ " 'modprobe snd-mixer-oss' as root to load it." +#~ msgstr "" +#~ "A számítógéped úgy tűnik, hogy ALSA hangot használ.\n" +#~ "Ez a legjobb választás. Mindazonáltal a mixer OSS emuláció modulra\n" +#~ " a linphone-nak szüksége van és ez hiányzik. Kérem futassa le a\n" +#~ "'modprobe snd-pcm-oss' parancsot rendszergazdaként." #~ msgid "Chat with %s" #~ msgstr "Chat-elés %s -el" @@ -1800,18 +2041,10 @@ msgstr[0] "Van %i nem fogadott hivás." #~ msgid "Choosing a username" #~ msgstr "felhasználónév:" -#, fuzzy -#~ msgid "Confirmation" -#~ msgstr "Információk" - #, fuzzy #~ msgid "Enable video" #~ msgstr "Engedélyezve" -#, fuzzy -#~ msgid "Authentication failure" -#~ msgstr "Hitelesítési információ" - #, fuzzy #~ msgid "Unmute" #~ msgstr "Korlátlan" @@ -1861,10 +2094,6 @@ msgstr[0] "Van %i nem fogadott hivás." #~ "linphone mindig az IPv4-et használja. Frissítsd a konfigurációdat, ha " #~ "használni akarod az IPv6-ot" -#, fuzzy -#~ msgid "Incoming call from %s" -#~ msgstr "Beérkező hívás" - #, fuzzy #~ msgid "_Modes" #~ msgstr "Kodekek" @@ -1944,10 +2173,6 @@ msgstr[0] "Van %i nem fogadott hivás." #~ msgid "Closed" #~ msgstr "Lezárva" -#, fuzzy -#~ msgid "SIP address" -#~ msgstr "Sip cím:" - #, fuzzy #~ msgid "_View" #~ msgstr "Video" @@ -2185,9 +2410,6 @@ msgstr[0] "Van %i nem fogadott hivás." #~ msgid "It is strongly recommended to use port 5060." #~ msgstr "Erősen ajánlott az 5060-as port használata." -#~ msgid "SIP port" -#~ msgstr "SIP port" - #~ msgid "@" #~ msgstr "@" @@ -2231,9 +2453,6 @@ msgstr[0] "Van %i nem fogadott hivás." #~ msgid "None." #~ msgstr "Nincs." -#~ msgid "Proxy/Registrar configuration box" -#~ msgstr "Proxy/Regisztráció konfigurációs doboz" - #~ msgid "Send registration:" #~ msgstr "Regisztárció küldés:" @@ -2261,9 +2480,6 @@ msgstr[0] "Van %i nem fogadott hivás." #~ msgid "userid:" #~ msgstr "felhasználói azonosító:" -#~ msgid "realm:" -#~ msgstr "tartomány:" - #~ msgid "Text:" #~ msgstr "Szöveg:" diff --git a/po/it.po b/po/it.po index e7c8cfc13..7328350ac 100644 --- a/po/it.po +++ b/po/it.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Linphone 3.2.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-24 14:04+0200\n" +"POT-Creation-Date: 2014-02-14 14:57+0100\n" "PO-Revision-Date: 2002-10-15 HO:MI+ZONE\n" "Last-Translator: Matteo Piazza \n" "Language-Team: it \n" @@ -15,12 +15,12 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:969 #, c-format msgid "Call %s" msgstr "Chiamata %s" -#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:970 #, c-format msgid "Send text to %s" msgstr "Invia testo a %s" @@ -98,46 +98,51 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "" -#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:363 ../gtk/friendlist.c:919 msgid "Invalid sip contact !" msgstr "Contatto SIP non valido" -#: ../gtk/main.c:92 +#: ../gtk/main.c:102 msgid "log to stdout some debug information while running." msgstr "" -#: ../gtk/main.c:99 +#: ../gtk/main.c:109 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:106 +#: ../gtk/main.c:116 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:113 +#: ../gtk/main.c:123 msgid "Start only in the system tray, do not show the main interface." msgstr "" -#: ../gtk/main.c:120 +#: ../gtk/main.c:130 msgid "address to call right now" msgstr "" -#: ../gtk/main.c:127 +#: ../gtk/main.c:137 msgid "if set automatically answer incoming calls" msgstr "" -#: ../gtk/main.c:134 +#: ../gtk/main.c:144 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" -#: ../gtk/main.c:515 +#: ../gtk/main.c:151 +#, fuzzy +msgid "Configuration file" +msgstr "Informazioni" + +#: ../gtk/main.c:573 #, fuzzy, c-format msgid "Call with %s" msgstr "Chat con %s" -#: ../gtk/main.c:946 +#: ../gtk/main.c:1150 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -149,237 +154,238 @@ msgstr "" "veda il tuo stato o aggiungerlo alla tua lista dei contatti Se rispondi no " "questo utente sarà momentaneamente bloccato." -#: ../gtk/main.c:1023 -#, c-format +#: ../gtk/main.c:1227 +#, fuzzy, c-format msgid "" "Please enter your password for username %s\n" -" at domain %s:" +" at realm %s:" msgstr "Prego inserire la password per username %s e dominio %s" -#: ../gtk/main.c:1126 +#: ../gtk/main.c:1339 #, fuzzy msgid "Call error" msgstr "Cronologia" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 +#: ../gtk/main.c:1342 ../coreapi/linphonecore.c:3408 msgid "Call ended" msgstr "Chiamata terminata" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 +#: ../gtk/main.c:1345 ../coreapi/linphonecore.c:250 msgid "Incoming call" msgstr "Chimata in entrata" -#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 +#: ../gtk/main.c:1347 ../gtk/incall_view.c:508 ../gtk/main.ui.h:5 msgid "Answer" msgstr "" -#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1349 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Rifiuta" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy msgid "Call paused" msgstr "annullato" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy, c-format msgid "by %s" msgstr "Porte" -#: ../gtk/main.c:1191 +#: ../gtk/main.c:1422 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1353 +#: ../gtk/main.c:1584 msgid "Website link" msgstr "" -#: ../gtk/main.c:1402 +#: ../gtk/main.c:1633 msgid "Linphone - a video internet phone" msgstr "" -#: ../gtk/main.c:1494 +#: ../gtk/main.c:1725 #, c-format msgid "%s (Default)" msgstr "%s (Default)" -#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 +#: ../gtk/main.c:2061 ../coreapi/callbacks.c:827 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1806 +#: ../gtk/main.c:2071 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1911 +#: ../gtk/main.c:2207 msgid "A free SIP video-phone" msgstr "" -#: ../gtk/friendlist.c:469 +#: ../gtk/friendlist.c:505 msgid "Add to addressbook" msgstr "" -#: ../gtk/friendlist.c:643 +#: ../gtk/friendlist.c:691 msgid "Presence status" msgstr "Presenza" -#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:709 ../gtk/propertybox.c:556 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Nome" -#: ../gtk/friendlist.c:673 +#: ../gtk/friendlist.c:721 #, fuzzy msgid "Call" msgstr "Chiamata %s" -#: ../gtk/friendlist.c:678 +#: ../gtk/friendlist.c:726 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:708 +#: ../gtk/friendlist.c:756 #, c-format msgid "Search in %s directory" msgstr "Cerca contatti nella directory %s" -#: ../gtk/friendlist.c:924 +#: ../gtk/friendlist.c:971 #, c-format msgid "Edit contact '%s'" msgstr "Modifica contatto %s" -#: ../gtk/friendlist.c:925 +#: ../gtk/friendlist.c:972 #, c-format msgid "Delete contact '%s'" msgstr "Elimina contatto %s" -#: ../gtk/friendlist.c:926 +#: ../gtk/friendlist.c:973 #, fuzzy, c-format msgid "Delete chat history of '%s'" msgstr "Elimina contatto %s" -#: ../gtk/friendlist.c:977 +#: ../gtk/friendlist.c:1024 #, c-format msgid "Add new contact from %s directory" msgstr "Aggiungi nuovo contatto dalla directory %s" -#: ../gtk/propertybox.c:373 +#: ../gtk/propertybox.c:562 msgid "Rate (Hz)" msgstr "" -#: ../gtk/propertybox.c:379 +#: ../gtk/propertybox.c:568 msgid "Status" msgstr "Stato" -#: ../gtk/propertybox.c:385 -msgid "Min bitrate (kbit/s)" +#: ../gtk/propertybox.c:574 +#, fuzzy +msgid "Bitrate (kbit/s)" msgstr "Bitrate Min (kbit/s)" -#: ../gtk/propertybox.c:392 +#: ../gtk/propertybox.c:581 msgid "Parameters" msgstr "Parametri" -#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:624 ../gtk/propertybox.c:767 msgid "Enabled" msgstr "Attivato" -#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:626 ../gtk/propertybox.c:767 msgid "Disabled" msgstr "Disattivato" -#: ../gtk/propertybox.c:624 +#: ../gtk/propertybox.c:813 msgid "Account" msgstr "Account" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:1057 msgid "English" msgstr "Inglese" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:1058 msgid "French" msgstr "Francese" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:1059 msgid "Swedish" msgstr "Svedese" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:1060 msgid "Italian" msgstr "Italiano" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:1061 msgid "Spanish" msgstr "Spagnolo" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:1062 msgid "Brazilian Portugese" msgstr "" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:1063 msgid "Polish" msgstr "Polacco" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:1064 msgid "German" msgstr "Tedesco" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:1065 msgid "Russian" msgstr "Russo" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:1066 msgid "Japanese" msgstr "Giapponese" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:1067 msgid "Dutch" msgstr "Olandese" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:1068 msgid "Hungarian" msgstr "Ungherese" -#: ../gtk/propertybox.c:776 +#: ../gtk/propertybox.c:1069 msgid "Czech" msgstr "Ceco" -#: ../gtk/propertybox.c:777 +#: ../gtk/propertybox.c:1070 msgid "Chinese" msgstr "" -#: ../gtk/propertybox.c:778 +#: ../gtk/propertybox.c:1071 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:779 +#: ../gtk/propertybox.c:1072 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:780 +#: ../gtk/propertybox.c:1073 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:781 +#: ../gtk/propertybox.c:1074 msgid "Serbian" msgstr "" -#: ../gtk/propertybox.c:848 +#: ../gtk/propertybox.c:1141 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "Riavviare il software per utilizzare la nuova lingua selezionata" -#: ../gtk/propertybox.c:934 +#: ../gtk/propertybox.c:1219 msgid "None" msgstr "" -#: ../gtk/propertybox.c:938 +#: ../gtk/propertybox.c:1223 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:944 +#: ../gtk/propertybox.c:1229 msgid "ZRTP" msgstr "" @@ -446,109 +452,118 @@ msgstr "Ho gia un account e voglio usarlo" msgid "I have already a sip account and I just want to use it" msgstr "Ho gia un account e voglio usarlo" -#: ../gtk/setupwizard.c:85 +#: ../gtk/setupwizard.c:46 +msgid "I want to specify a remote configuration URI" +msgstr "" + +#: ../gtk/setupwizard.c:89 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:92 +#: ../gtk/setupwizard.c:96 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4 msgid "Username:" msgstr "Manuale utente" -#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:98 ../gtk/password.ui.h:4 ../gtk/ldap.ui.h:5 msgid "Password:" msgstr "Password:" -#: ../gtk/setupwizard.c:114 +#: ../gtk/setupwizard.c:118 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:125 #, fuzzy msgid "Username*" msgstr "Username" -#: ../gtk/setupwizard.c:122 +#: ../gtk/setupwizard.c:126 #, fuzzy msgid "Password*" msgstr "Password" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:129 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:126 +#: ../gtk/setupwizard.c:130 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:302 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:299 +#: ../gtk/setupwizard.c:303 #, fuzzy msgid "Username: (*)" msgstr "Manuale utente" -#: ../gtk/setupwizard.c:301 +#: ../gtk/setupwizard.c:305 #, fuzzy msgid "Password: (*)" msgstr "Password:" -#: ../gtk/setupwizard.c:303 +#: ../gtk/setupwizard.c:307 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:305 +#: ../gtk/setupwizard.c:309 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:369 +#: ../gtk/setupwizard.c:373 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:380 +#: ../gtk/setupwizard.c:384 msgid "Thank you. Your account is now configured and ready for use." msgstr "Grazie. Il tuo account è configurato e pronto all'uso" -#: ../gtk/setupwizard.c:388 +#: ../gtk/setupwizard.c:392 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:564 +#: ../gtk/setupwizard.c:572 +#, fuzzy +msgid "SIP account configuration assistant" +msgstr "Configuratore di account" + +#: ../gtk/setupwizard.c:590 msgid "Welcome to the account setup assistant" msgstr "Benvenuto nel configuratore di account" -#: ../gtk/setupwizard.c:569 +#: ../gtk/setupwizard.c:595 msgid "Account setup assistant" msgstr "Configuratore di account" -#: ../gtk/setupwizard.c:575 +#: ../gtk/setupwizard.c:601 #, fuzzy msgid "Configure your account (step 1/1)" msgstr "Configurazione SIP account" -#: ../gtk/setupwizard.c:580 +#: ../gtk/setupwizard.c:606 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:584 +#: ../gtk/setupwizard.c:610 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:593 +#: ../gtk/setupwizard.c:619 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:598 +#: ../gtk/setupwizard.c:624 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:602 +#: ../gtk/setupwizard.c:628 #, fuzzy msgid "Terminating" msgstr "Termina chiamata" @@ -619,137 +634,152 @@ msgstr "Filtro ICE" msgid "Direct or through server" msgstr "" -#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:261 ../gtk/incall_view.c:272 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:286 +#: ../gtk/incall_view.c:267 ../gtk/incall_view.c:268 +#, c-format +msgid "%ix%i" +msgstr "" + +#: ../gtk/incall_view.c:297 #, c-format msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:395 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:476 +#: ../gtk/incall_view.c:487 #, fuzzy msgid "Calling..." msgstr "Linguaggio" -#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:700 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:490 +#: ../gtk/incall_view.c:501 #, fuzzy msgid "Incoming call" msgstr "Chimata in entrata" -#: ../gtk/incall_view.c:527 +#: ../gtk/incall_view.c:538 msgid "good" msgstr "" -#: ../gtk/incall_view.c:529 +#: ../gtk/incall_view.c:540 msgid "average" msgstr "" -#: ../gtk/incall_view.c:531 +#: ../gtk/incall_view.c:542 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:533 +#: ../gtk/incall_view.c:544 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:535 +#: ../gtk/incall_view.c:546 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:547 ../gtk/incall_view.c:563 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:651 +#: ../gtk/incall_view.c:662 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:657 +#: ../gtk/incall_view.c:668 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:663 +#: ../gtk/incall_view.c:674 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:674 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 #, fuzzy msgid "In call" msgstr "In chiamata con" -#: ../gtk/incall_view.c:718 +#: ../gtk/incall_view.c:731 #, fuzzy msgid "Paused call" msgstr "Termina chiamata" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:744 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:748 +#: ../gtk/incall_view.c:762 msgid "Call ended." msgstr "Chiamata terminata." -#: ../gtk/incall_view.c:778 +#: ../gtk/incall_view.c:793 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:796 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:784 +#: ../gtk/incall_view.c:799 #, fuzzy msgid "Transfer failed." msgstr "Chiamata rifiutata" -#: ../gtk/incall_view.c:828 +#: ../gtk/incall_view.c:843 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:850 ../gtk/main.ui.h:9 msgid "Pause" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 msgid "(Paused)" msgstr "" -#: ../gtk/loginframe.c:93 +#: ../gtk/loginframe.c:88 #, c-format msgid "Please enter login information for %s" msgstr "Prego inserire le proprie credenziali di accesso per %s" +#: ../gtk/config-fetching.c:57 +#, fuzzy, c-format +msgid "fetching from %s" +msgstr "Chiamata proveniente da %s" + +#: ../gtk/config-fetching.c:73 +#, c-format +msgid "Downloading of remote configuration from %s failed." +msgstr "" + #: ../gtk/main.ui.h:1 #, fuzzy msgid "Callee name" @@ -796,95 +826,96 @@ msgid "_Options" msgstr "" #: ../gtk/main.ui.h:18 +#, fuzzy +msgid "Set configuration URI" +msgstr "Informazioni" + +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "Self-view abilitato" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 #, fuzzy msgid "Show debug window" msgstr "Linphone debug window" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 #, fuzzy msgid "Account assistant" msgstr "Configuratore di account" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "Indirizzo sip o numero." -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:28 #, fuzzy msgid "Contacts" msgstr "In connessione" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 -msgid "Add" -msgstr "Aggiungi" - -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 -msgid "Edit" -msgstr "Edita" - -#: ../gtk/main.ui.h:30 +#: ../gtk/main.ui.h:29 msgid "Search" msgstr "" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 #, fuzzy msgid "Add contacts from directory" msgstr "Aggiungi nuovo contatto dalla directory %s" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 #, fuzzy msgid "Add contact" msgstr "Trovato %i contatto" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Recent calls" msgstr "In chiamata" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "My current identity:" msgstr "Identità corrente" -#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:34 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Username" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Password" -#: ../gtk/main.ui.h:37 +#: ../gtk/main.ui.h:36 msgid "Internet connection:" msgstr "Connessione Internet:" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Automatically log me in" msgstr "Login Automatico" +#: ../gtk/main.ui.h:38 ../gtk/password.ui.h:3 +msgid "UserID" +msgstr "" + #: ../gtk/main.ui.h:39 msgid "Login information" msgstr "Credenziali di accesso" @@ -949,6 +980,7 @@ msgid "" "pl: Robert Nasiadek \n" "cs: Petr Pisar \n" "hu: anonymous\n" +"he: Eli Zaretskii \n" msgstr "" #: ../gtk/contact.ui.h:2 @@ -984,10 +1016,6 @@ msgstr "Linphone - Autenticazione richiesta" msgid "Please enter the domain password" msgstr "Prego inserire la password di dominio" -#: ../gtk/password.ui.h:3 -msgid "UserID" -msgstr "" - #: ../gtk/call_logs.ui.h:1 msgid "Call history" msgstr "Cronologia" @@ -1026,314 +1054,381 @@ msgid "Looks like sip:" msgstr "" #: ../gtk/sip_account.ui.h:7 -msgid "Route (optional):" -msgstr "Rotta (opzionale)" - -#: ../gtk/sip_account.ui.h:8 msgid "Registration duration (sec):" msgstr "Durata registrazione (sec)" +#: ../gtk/sip_account.ui.h:8 +#, fuzzy +msgid "Contact params (optional):" +msgstr "Rotta (opzionale)" + #: ../gtk/sip_account.ui.h:9 +msgid "Route (optional):" +msgstr "Rotta (opzionale)" + +#: ../gtk/sip_account.ui.h:10 +#, fuzzy +msgid "Transport" +msgstr "Transporto" + +#: ../gtk/sip_account.ui.h:11 msgid "Register" msgstr "" -#: ../gtk/sip_account.ui.h:10 +#: ../gtk/sip_account.ui.h:12 msgid "Publish presence information" msgstr "Pubblica stato della presenza" -#: ../gtk/sip_account.ui.h:11 +#: ../gtk/sip_account.ui.h:13 msgid "Configure a SIP account" msgstr "Configurazione SIP account" #: ../gtk/parameters.ui.h:1 +msgid "anonymous" +msgstr "" + +#: ../gtk/parameters.ui.h:2 +msgid "GSSAPI" +msgstr "" + +#: ../gtk/parameters.ui.h:3 +msgid "SASL" +msgstr "" + +#: ../gtk/parameters.ui.h:4 msgid "default soundcard" msgstr "default scheda audio" -#: ../gtk/parameters.ui.h:2 +#: ../gtk/parameters.ui.h:5 #, fuzzy msgid "a sound card" msgstr "una scheda audio\n" -#: ../gtk/parameters.ui.h:3 +#: ../gtk/parameters.ui.h:6 msgid "default camera" msgstr "default videocamera" -#: ../gtk/parameters.ui.h:4 +#: ../gtk/parameters.ui.h:7 msgid "CIF" msgstr "CIF" -#: ../gtk/parameters.ui.h:5 +#: ../gtk/parameters.ui.h:8 #, fuzzy msgid "Audio codecs" msgstr "" "Audio codecs\n" "Video codecs" -#: ../gtk/parameters.ui.h:6 +#: ../gtk/parameters.ui.h:9 #, fuzzy msgid "Video codecs" msgstr "" "Audio codecs\n" "Video codecs" -#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:10 ../gtk/keypad.ui.h:5 msgid "C" msgstr "C" -#: ../gtk/parameters.ui.h:8 +#: ../gtk/parameters.ui.h:11 #, fuzzy msgid "SIP (UDP)" msgstr "SIP (UDP)" -#: ../gtk/parameters.ui.h:9 +#: ../gtk/parameters.ui.h:12 #, fuzzy msgid "SIP (TCP)" msgstr "SIP (UDP)" -#: ../gtk/parameters.ui.h:10 +#: ../gtk/parameters.ui.h:13 #, fuzzy msgid "SIP (TLS)" msgstr "SIP (UDP)" -#: ../gtk/parameters.ui.h:11 +#: ../gtk/parameters.ui.h:14 msgid "Settings" msgstr "Preferenze" -#: ../gtk/parameters.ui.h:12 +#: ../gtk/parameters.ui.h:15 msgid "Set Maximum Transmission Unit:" msgstr "Imposta Maximum Transmission Unit:" -#: ../gtk/parameters.ui.h:13 +#: ../gtk/parameters.ui.h:16 msgid "Send DTMFs as SIP info" msgstr "Invia DTMF come SIP info" -#: ../gtk/parameters.ui.h:14 +#: ../gtk/parameters.ui.h:17 msgid "Use IPv6 instead of IPv4" msgstr "Usa IPv6 invece che IPv4" -#: ../gtk/parameters.ui.h:15 +#: ../gtk/parameters.ui.h:18 msgid "Transport" msgstr "Transporto" -#: ../gtk/parameters.ui.h:16 +#: ../gtk/parameters.ui.h:19 msgid "Media encryption type" msgstr "" -#: ../gtk/parameters.ui.h:17 +#: ../gtk/parameters.ui.h:20 msgid "Video RTP/UDP:" msgstr "Video RTP/UDP" -#: ../gtk/parameters.ui.h:18 +#: ../gtk/parameters.ui.h:21 msgid "Audio RTP/UDP:" msgstr "Audio RTP/UDP:" -#: ../gtk/parameters.ui.h:19 -msgid "DSCP fields" -msgstr "" - -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:22 msgid "Fixed" msgstr "" -#: ../gtk/parameters.ui.h:21 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:22 +#: ../gtk/parameters.ui.h:23 msgid "Media encryption is mandatory" msgstr "" -#: ../gtk/parameters.ui.h:23 +#: ../gtk/parameters.ui.h:24 +msgid "Tunnel" +msgstr "" + +#: ../gtk/parameters.ui.h:25 +msgid "DSCP fields" +msgstr "" + +#: ../gtk/parameters.ui.h:26 +msgid "SIP/TCP port" +msgstr "" + +#: ../gtk/parameters.ui.h:27 +msgid "SIP/UDP port" +msgstr "" + +#: ../gtk/parameters.ui.h:28 msgid "Network protocol and ports" msgstr "" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:29 msgid "Direct connection to the Internet" msgstr "Connessione diretta a internet" -#: ../gtk/parameters.ui.h:25 -msgid "Behind NAT / Firewall (specify gateway IP below)" +#: ../gtk/parameters.ui.h:30 +#, fuzzy +msgid "Behind NAT / Firewall (specify gateway IP )" msgstr "Dietro NAT / Firewall (IP del gateway)" -#: ../gtk/parameters.ui.h:26 -msgid "Public IP address:" -msgstr "Indirizzo ip pubblico:" - -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:31 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "Dietro NAT / Firewall (utilizza STUN)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:32 #, fuzzy msgid "Behind NAT / Firewall (use ICE)" msgstr "Dietro NAT / Firewall (utilizza STUN)" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:33 #, fuzzy msgid "Behind NAT / Firewall (use uPnP)" msgstr "Dietro NAT / Firewall (utilizza STUN)" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:34 +msgid "Public IP address:" +msgstr "Indirizzo ip pubblico:" + +#: ../gtk/parameters.ui.h:35 msgid "Stun server:" msgstr "Stun server:" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:36 msgid "NAT and Firewall" msgstr "NAT and Firewall" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:37 msgid "Network settings" msgstr "Impostazioni di rete" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:38 msgid "Ring sound:" msgstr "Suoneria:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:39 msgid "ALSA special device (optional):" msgstr "Dispositivo ALSA (optional):" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:40 msgid "Capture device:" msgstr "Dispositivo microfono:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:41 msgid "Ring device:" msgstr "Dispositivo squillo:" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:42 msgid "Playback device:" msgstr "Dispositivo uscita audio:" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:43 msgid "Enable echo cancellation" msgstr "Attiva cancellazione eco" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:44 msgid "Audio" msgstr "Audio" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:45 msgid "Video input device:" msgstr "Dispositivo Video:" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:46 msgid "Prefered video resolution:" msgstr "Risoluzione video preferita" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:47 +#, fuzzy +msgid "Video output method:" +msgstr "Dispositivo Video:" + +#: ../gtk/parameters.ui.h:48 msgid "Video" msgstr "Video" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:49 msgid "Multimedia settings" msgstr "Impostazioni multimediali" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:50 msgid "This section defines your SIP address when not using a SIP account" msgstr "" "questa sezione definisce il tuo indirizzo SIP se non hai account attivi" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:51 msgid "Your display name (eg: John Doe):" msgstr "Nome visualizzato (es: Mario Rossi):" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:52 msgid "Your username:" msgstr "Username" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:53 msgid "Your resulting SIP address:" msgstr "Il tuo indirizzo sip:" -#: ../gtk/parameters.ui.h:48 +#: ../gtk/parameters.ui.h:54 msgid "Default identity" msgstr "Identità di default" -#: ../gtk/parameters.ui.h:49 +#: ../gtk/parameters.ui.h:55 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:56 +msgid "Add" +msgstr "Aggiungi" + +#: ../gtk/parameters.ui.h:57 +msgid "Edit" +msgstr "Edita" + +#: ../gtk/parameters.ui.h:58 msgid "Remove" msgstr "Rimuovi" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:59 msgid "Proxy accounts" msgstr "Account proxy" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:60 msgid "Erase all passwords" msgstr "Cancella tutte le password" -#: ../gtk/parameters.ui.h:55 +#: ../gtk/parameters.ui.h:61 msgid "Privacy" msgstr "Privacy" -#: ../gtk/parameters.ui.h:56 +#: ../gtk/parameters.ui.h:62 msgid "Manage SIP Accounts" msgstr "Gestici SIP Account" -#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Attivato" -#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Disattivato" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:65 msgid "Codecs" msgstr "Codecs" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:66 msgid "0 stands for \"unlimited\"" msgstr "0 sta per illimitato" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:67 msgid "Upload speed limit in Kbit/sec:" msgstr "Velocità massima in upload Kbit/sec:" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:68 msgid "Download speed limit in Kbit/sec:" msgstr "Velocita massima in Dowload Kbit/sec" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:69 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:70 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:71 msgid "Bandwidth control" msgstr "Gestione banda" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:72 msgid "Codecs" msgstr "Codec" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:73 msgid "Language" msgstr "Linguaggio" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:74 msgid "Show advanced settings" msgstr "" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:75 #, fuzzy msgid "Level" msgstr "Linguaggio" -#: ../gtk/parameters.ui.h:70 +#: ../gtk/parameters.ui.h:76 msgid "User interface" msgstr "Interfaccia utente" -#: ../gtk/parameters.ui.h:71 +#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2 +#, fuzzy +msgid "Server address:" +msgstr "Indirizzi SIP" + +#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3 +#, fuzzy +msgid "Authentication method:" +msgstr "Linphone - Autenticazione richiesta" + +#: ../gtk/parameters.ui.h:80 +msgid "label" +msgstr "etichetta" + +#: ../gtk/parameters.ui.h:81 +#, fuzzy +msgid "LDAP Account setup" +msgstr "Account proxy" + +#: ../gtk/parameters.ui.h:82 +msgid "LDAP" +msgstr "" + +#: ../gtk/parameters.ui.h:83 msgid "Done" msgstr "Fatto" @@ -1359,7 +1454,7 @@ msgstr "Prego attendere" #: ../gtk/dscp_settings.ui.h:1 #, fuzzy -msgid "Dscp settings" +msgid "DSCP settings" msgstr "Preferenze" #: ../gtk/dscp_settings.ui.h:2 @@ -1420,6 +1515,15 @@ msgid "Round trip time" msgstr "" #: ../gtk/call_statistics.ui.h:9 +msgid "Video resolution received" +msgstr "" + +#: ../gtk/call_statistics.ui.h:10 +#, fuzzy +msgid "Video resolution sent" +msgstr "Risoluzione video preferita" + +#: ../gtk/call_statistics.ui.h:11 #, fuzzy msgid "Call statistics and information" msgstr "Contact informazioni" @@ -1505,19 +1609,140 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:228 +#: ../gtk/ldap.ui.h:1 +#, fuzzy +msgid "LDAP Settings" +msgstr "Preferenze" + +#: ../gtk/ldap.ui.h:6 +msgid "Use TLS Connection" +msgstr "" + +#: ../gtk/ldap.ui.h:7 +msgid "Not yet available" +msgstr "" + +#: ../gtk/ldap.ui.h:8 +#, fuzzy +msgid "Connection" +msgstr "Codecs" + +#: ../gtk/ldap.ui.h:9 +msgid "Bind DN" +msgstr "" + +#: ../gtk/ldap.ui.h:10 +msgid "Authname" +msgstr "" + +#: ../gtk/ldap.ui.h:11 +msgid "Realm" +msgstr "" + +#: ../gtk/ldap.ui.h:12 +#, fuzzy +msgid "SASL" +msgstr "Audio" + +#: ../gtk/ldap.ui.h:13 +msgid "Base object:" +msgstr "" + +#: ../gtk/ldap.ui.h:15 +#, no-c-format +msgid "Filter (%s for name):" +msgstr "" + +#: ../gtk/ldap.ui.h:16 +msgid "Name Attribute:" +msgstr "" + +#: ../gtk/ldap.ui.h:17 +#, fuzzy +msgid "SIP address attribute:" +msgstr "Indirizzi SIP" + +#: ../gtk/ldap.ui.h:18 +msgid "Attributes to query:" +msgstr "" + +#: ../gtk/ldap.ui.h:19 +#, fuzzy +msgid "Search" +msgstr "Cerca" + +#: ../gtk/ldap.ui.h:20 +msgid "Timeout for search:" +msgstr "" + +#: ../gtk/ldap.ui.h:21 +msgid "Max results:" +msgstr "" + +#: ../gtk/ldap.ui.h:22 +msgid "Follow Aliases" +msgstr "" + +#: ../gtk/ldap.ui.h:23 +#, fuzzy +msgid "Miscellaneous" +msgstr "Video" + +#: ../gtk/ldap.ui.h:24 +msgid "ANONYMOUS" +msgstr "" + +#: ../gtk/ldap.ui.h:25 +msgid "SIMPLE" +msgstr "" + +#: ../gtk/ldap.ui.h:26 +msgid "DIGEST-MD5" +msgstr "" + +#: ../gtk/ldap.ui.h:27 +msgid "NTLM" +msgstr "" + +#: ../gtk/config-uri.ui.h:1 +msgid "Specifying a remote configuration URI" +msgstr "" + +#: ../gtk/config-uri.ui.h:2 +msgid "" +"This dialog allows to set an http or https address when configuration is to " +"be fetched at startup.\n" +"Please enter or modify the configuration URI below. After clicking OK, " +"Linphone will restart automatically in order to fetch and take into account " +"the new configuration. " +msgstr "" + +#: ../gtk/config-uri.ui.h:4 +msgid "https://" +msgstr "" + +#: ../gtk/provisioning-fetch.ui.h:1 +#, fuzzy +msgid "Configuring..." +msgstr "In connessione..." + +#: ../gtk/provisioning-fetch.ui.h:2 +msgid "Please wait while fetching configuration from server..." +msgstr "" + +#: ../coreapi/linphonecore.c:238 msgid "aborted" msgstr "annullato" -#: ../coreapi/linphonecore.c:231 +#: ../coreapi/linphonecore.c:241 msgid "completed" msgstr "comletato" -#: ../coreapi/linphonecore.c:234 +#: ../coreapi/linphonecore.c:244 msgid "missed" msgstr "mancante" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:249 #, c-format msgid "" "%s at %s\n" @@ -1532,108 +1757,82 @@ msgstr "" "Stato: %s\n" "Durata: %i mn %i sec\n" -#: ../coreapi/linphonecore.c:240 +#: ../coreapi/linphonecore.c:250 msgid "Outgoing call" msgstr "Chiamata in uscita" -#: ../coreapi/linphonecore.c:1321 +#: ../coreapi/linphonecore.c:1264 msgid "Ready" msgstr "Pronto" -#: ../coreapi/linphonecore.c:2205 +#: ../coreapi/linphonecore.c:1372 +#, fuzzy +msgid "Configuring" +msgstr "Informazioni" + +#: ../coreapi/linphonecore.c:2331 msgid "Looking for telephone number destination..." msgstr "Ricerca numero destinazione..." -#: ../coreapi/linphonecore.c:2208 +#: ../coreapi/linphonecore.c:2334 msgid "Could not resolve this number." msgstr "Impossibile risolvere il numero." -#: ../coreapi/linphonecore.c:2252 -msgid "" -"Could not parse given sip address. A sip url usually looks like sip:" -"user@domain" -msgstr "" -"Errore nel formato del contatto sip. Usualmente un indirizzo appare sip:" -"user@domain" - -#: ../coreapi/linphonecore.c:2453 +#. must be known at that time +#: ../coreapi/linphonecore.c:2609 msgid "Contacting" msgstr "In connessione" -#: ../coreapi/linphonecore.c:2460 +#: ../coreapi/linphonecore.c:2616 #, fuzzy msgid "Could not call" msgstr "chiamata fallita" -#: ../coreapi/linphonecore.c:2570 +#: ../coreapi/linphonecore.c:2765 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2752 +#: ../coreapi/linphonecore.c:2952 #, fuzzy msgid "is contacting you" msgstr "ti sta conttatando." -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2820 +#: ../coreapi/linphonecore.c:3020 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:3159 +#: ../coreapi/linphonecore.c:3362 msgid "Connected." msgstr "Connessione" -#: ../coreapi/linphonecore.c:3187 +#: ../coreapi/linphonecore.c:3388 #, fuzzy msgid "Call aborted" msgstr "annullato" -#: ../coreapi/linphonecore.c:3378 +#: ../coreapi/linphonecore.c:3581 #, fuzzy msgid "Could not pause the call" msgstr "chiamata fallita" -#: ../coreapi/linphonecore.c:3383 +#: ../coreapi/linphonecore.c:3586 #, fuzzy msgid "Pausing the current call..." msgstr "Mostra chiamata corrente" -#: ../coreapi/misc.c:148 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the pcm oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -"'modprobe snd-pcm-oss' as root to load it." -msgstr "" -"Il tuo computer appare utlizzare il driver ALSA.\n" -"Questa è la scelta migliore. Tuttavia il modulo di emulazione pcm oss\n" -"è assente e linphone lo richede. Prego eseguire\n" -"'modprobe snd-pcm-oss' da utente root per caricarlo." - -#: ../coreapi/misc.c:151 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the mixer oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -" 'modprobe snd-mixer-oss' as root to load it." -msgstr "" -"Il tuo computer appare utlizzare il driver ALSA.\n" -"Questa è la scelta migliore. Tuttavia il modulo di emulazione mixer oss\n" -"è assente e linphone lo richede. Prego eseguire\n" -"'modprobe snd-mixer-oss' da utente root per caricarlo." - -#: ../coreapi/misc.c:496 +#: ../coreapi/misc.c:394 msgid "Stun lookup in progress..." msgstr "Ricerca Stun in progresso ..." -#: ../coreapi/misc.c:630 +#: ../coreapi/misc.c:576 msgid "ICE local candidates gathering in progress..." msgstr "" @@ -1682,10 +1881,15 @@ msgid "Pending" msgstr "Pendente" #: ../coreapi/friend.c:66 +#, fuzzy +msgid "Vacation" +msgstr "Durata" + +#: ../coreapi/friend.c:68 msgid "Unknown-bug" msgstr "Bug-sconosciuto" -#: ../coreapi/proxy.c:204 +#: ../coreapi/proxy.c:209 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." @@ -1693,7 +1897,7 @@ msgstr "" "L'indirizzo sip proxy utilizzato è invalido, deve iniziare con \"sip:\" " "seguito dall' hostaname." -#: ../coreapi/proxy.c:210 +#: ../coreapi/proxy.c:215 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" @@ -1701,136 +1905,166 @@ msgstr "" "L'identità sip utilizza è invalida.\n" "Dovrebbre essere sip:username@proxydomain, esempio: sip:alice@example.net" -#: ../coreapi/proxy.c:1069 +#: ../coreapi/proxy.c:1125 #, c-format msgid "Could not login as %s" msgstr "impossibile login come %s" -#: ../coreapi/callbacks.c:286 +#: ../coreapi/callbacks.c:289 msgid "Remote ringing." msgstr "" -#: ../coreapi/callbacks.c:306 +#: ../coreapi/callbacks.c:305 msgid "Remote ringing..." msgstr "" -#: ../coreapi/callbacks.c:317 +#: ../coreapi/callbacks.c:316 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:368 +#: ../coreapi/callbacks.c:367 #, fuzzy, c-format msgid "Call with %s is paused." msgstr "Chat con %s" -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:380 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:392 +#: ../coreapi/callbacks.c:391 #, fuzzy msgid "Call resumed." msgstr "Chiamata terminata" -#: ../coreapi/callbacks.c:397 +#: ../coreapi/callbacks.c:396 #, c-format msgid "Call answered by %s." msgstr "" -#: ../coreapi/callbacks.c:412 +#: ../coreapi/callbacks.c:414 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:460 +#: ../coreapi/callbacks.c:463 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:469 +#: ../coreapi/callbacks.c:471 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:475 +#: ../coreapi/callbacks.c:487 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:558 msgid "Call terminated." msgstr "Chiamata terminata." -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:586 msgid "User is busy." msgstr "Utente occupato" -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:587 msgid "User is temporarily unavailable." msgstr "Utente non disponibile" #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:558 +#: ../coreapi/callbacks.c:589 msgid "User does not want to be disturbed." msgstr "L'utente non vuole essere disturbato" -#: ../coreapi/callbacks.c:559 +#: ../coreapi/callbacks.c:590 msgid "Call declined." msgstr "Chiamata rifiutata" -#: ../coreapi/callbacks.c:571 +#: ../coreapi/callbacks.c:603 #, fuzzy msgid "No response." msgstr "timeout no risposta" -#: ../coreapi/callbacks.c:575 +#: ../coreapi/callbacks.c:607 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:591 +#: ../coreapi/callbacks.c:623 #, fuzzy msgid "Redirected" msgstr "Rediretto verso %s..." -#: ../coreapi/callbacks.c:627 +#: ../coreapi/callbacks.c:665 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:633 +#: ../coreapi/callbacks.c:677 #, fuzzy msgid "Call failed." msgstr "Chiamata rifiutata" -#: ../coreapi/callbacks.c:737 +#: ../coreapi/callbacks.c:751 #, c-format msgid "Registration on %s successful." msgstr "Registrazione su %s attiva" -#: ../coreapi/callbacks.c:738 +#: ../coreapi/callbacks.c:752 #, c-format msgid "Unregistration on %s done." msgstr "Unregistrazione su %s" -#: ../coreapi/callbacks.c:758 +#: ../coreapi/callbacks.c:772 msgid "no response timeout" msgstr "timeout no risposta" -#: ../coreapi/callbacks.c:761 +#: ../coreapi/callbacks.c:775 #, c-format msgid "Registration on %s failed: %s" msgstr "Registrazione su %s fallita: %s" -#: ../coreapi/linphonecall.c:129 +#: ../coreapi/callbacks.c:785 +msgid "Service unavailable, retrying" +msgstr "" + +#: ../coreapi/linphonecall.c:142 #, fuzzy, c-format msgid "Authentication token is %s" msgstr "Linphone - Autenticazione richiesta" -#: ../coreapi/linphonecall.c:2355 +#: ../coreapi/linphonecall.c:2678 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "" msgstr[1] "" -#~ msgid "label" -#~ msgstr "etichetta" +#~ msgid "" +#~ "Could not parse given sip address. A sip url usually looks like sip:" +#~ "user@domain" +#~ msgstr "" +#~ "Errore nel formato del contatto sip. Usualmente un indirizzo appare sip:" +#~ "user@domain" + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the pcm oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ "'modprobe snd-pcm-oss' as root to load it." +#~ msgstr "" +#~ "Il tuo computer appare utlizzare il driver ALSA.\n" +#~ "Questa è la scelta migliore. Tuttavia il modulo di emulazione pcm oss\n" +#~ "è assente e linphone lo richede. Prego eseguire\n" +#~ "'modprobe snd-pcm-oss' da utente root per caricarlo." + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the mixer oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ " 'modprobe snd-mixer-oss' as root to load it." +#~ msgstr "" +#~ "Il tuo computer appare utlizzare il driver ALSA.\n" +#~ "Questa è la scelta migliore. Tuttavia il modulo di emulazione mixer oss\n" +#~ "è assente e linphone lo richede. Prego eseguire\n" +#~ "'modprobe snd-mixer-oss' da utente root per caricarlo." #~ msgid "Chat with %s" #~ msgstr "Chat con %s" @@ -1859,9 +2093,6 @@ msgstr[1] "" #~ msgid "Verifying" #~ msgstr "Verifica" -#~ msgid "Confirmation" -#~ msgstr "Informazioni" - #~ msgid "Creating your account" #~ msgstr "Creazione account" @@ -1885,10 +2116,6 @@ msgstr[1] "" #~ "Registrati a FONICS\n" #~ "virtual network !" -#, fuzzy -#~ msgid "Authentication failure" -#~ msgstr "Linphone - Autenticazione richiesta" - #~ msgid "Unmute" #~ msgstr "" #~ "Attiva\n" @@ -2118,9 +2345,6 @@ msgstr[1] "" #~ msgid "Sound playback filter for MacOS X Core Audio drivers" #~ msgstr "Sound playback filter for MacOS X Core Audio drivers" -#~ msgid "Incoming call from %s" -#~ msgstr "Chiamata proveniente da %s" - #~ msgid "Assistant" #~ msgstr "Configuratore" @@ -2213,8 +2437,5 @@ msgstr[1] "" #~ msgid "Unknown" #~ msgstr "Sconosciuto" -#~ msgid "SIP address" -#~ msgstr "Indirizzi SIP" - #~ msgid "Bresilian" #~ msgstr "Brasiliano" diff --git a/po/ja.po b/po/ja.po index 56362238b..900fc6cc3 100644 --- a/po/ja.po +++ b/po/ja.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-24 14:04+0200\n" +"POT-Creation-Date: 2014-02-14 14:57+0100\n" "PO-Revision-Date: 2003-01-21 00:05+9000\n" "Last-Translator: YAMAGUCHI YOSHIYA \n" "Language-Team: \n" @@ -17,12 +17,12 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:969 #, c-format msgid "Call %s" msgstr "" -#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:970 #, c-format msgid "Send text to %s" msgstr "" @@ -96,46 +96,51 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "pixmapファイルが見つかりません %s" -#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:363 ../gtk/friendlist.c:919 msgid "Invalid sip contact !" msgstr "" -#: ../gtk/main.c:92 +#: ../gtk/main.c:102 msgid "log to stdout some debug information while running." msgstr "" -#: ../gtk/main.c:99 +#: ../gtk/main.c:109 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:106 +#: ../gtk/main.c:116 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:113 +#: ../gtk/main.c:123 msgid "Start only in the system tray, do not show the main interface." msgstr "" -#: ../gtk/main.c:120 +#: ../gtk/main.c:130 msgid "address to call right now" msgstr "" -#: ../gtk/main.c:127 +#: ../gtk/main.c:137 msgid "if set automatically answer incoming calls" msgstr "" -#: ../gtk/main.c:134 +#: ../gtk/main.c:144 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" -#: ../gtk/main.c:515 +#: ../gtk/main.c:151 +#, fuzzy +msgid "Configuration file" +msgstr "情報" + +#: ../gtk/main.c:573 #, c-format msgid "Call with %s" msgstr "" -#: ../gtk/main.c:946 +#: ../gtk/main.c:1150 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -144,242 +149,243 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1023 +#: ../gtk/main.c:1227 #, c-format msgid "" "Please enter your password for username %s\n" -" at domain %s:" +" at realm %s:" msgstr "" -#: ../gtk/main.c:1126 +#: ../gtk/main.c:1339 #, fuzzy msgid "Call error" msgstr "通話はキャンセルされました。" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 +#: ../gtk/main.c:1342 ../coreapi/linphonecore.c:3408 #, fuzzy msgid "Call ended" msgstr "通話は拒否されました。" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 +#: ../gtk/main.c:1345 ../coreapi/linphonecore.c:250 msgid "Incoming call" msgstr "" -#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 +#: ../gtk/main.c:1347 ../gtk/incall_view.c:508 ../gtk/main.ui.h:5 msgid "Answer" msgstr "" -#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1349 ../gtk/main.ui.h:6 #, fuzzy msgid "Decline" msgstr "ライン入力" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy msgid "Call paused" msgstr "通話はキャンセルされました。" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy, c-format msgid "by %s" msgstr "接続中" -#: ../gtk/main.c:1191 +#: ../gtk/main.c:1422 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1353 +#: ../gtk/main.c:1584 msgid "Website link" msgstr "" -#: ../gtk/main.c:1402 +#: ../gtk/main.c:1633 msgid "Linphone - a video internet phone" msgstr "" -#: ../gtk/main.c:1494 +#: ../gtk/main.c:1725 #, c-format msgid "%s (Default)" msgstr "" -#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 +#: ../gtk/main.c:2061 ../coreapi/callbacks.c:827 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1806 +#: ../gtk/main.c:2071 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1911 +#: ../gtk/main.c:2207 msgid "A free SIP video-phone" msgstr "" -#: ../gtk/friendlist.c:469 +#: ../gtk/friendlist.c:505 #, fuzzy msgid "Add to addressbook" msgstr "電話帳" -#: ../gtk/friendlist.c:643 +#: ../gtk/friendlist.c:691 #, fuzzy msgid "Presence status" msgstr "状態" -#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:709 ../gtk/propertybox.c:556 ../gtk/contact.ui.h:1 msgid "Name" msgstr "名前" -#: ../gtk/friendlist.c:673 +#: ../gtk/friendlist.c:721 #, fuzzy msgid "Call" msgstr "通話はキャンセルされました。" -#: ../gtk/friendlist.c:678 +#: ../gtk/friendlist.c:726 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:708 +#: ../gtk/friendlist.c:756 #, c-format msgid "Search in %s directory" msgstr "" -#: ../gtk/friendlist.c:924 +#: ../gtk/friendlist.c:971 #, fuzzy, c-format msgid "Edit contact '%s'" msgstr "(接続するための情報がありません!)" -#: ../gtk/friendlist.c:925 +#: ../gtk/friendlist.c:972 #, c-format msgid "Delete contact '%s'" msgstr "" -#: ../gtk/friendlist.c:926 +#: ../gtk/friendlist.c:973 #, c-format msgid "Delete chat history of '%s'" msgstr "" -#: ../gtk/friendlist.c:977 +#: ../gtk/friendlist.c:1024 #, c-format msgid "Add new contact from %s directory" msgstr "" -#: ../gtk/propertybox.c:373 +#: ../gtk/propertybox.c:562 msgid "Rate (Hz)" msgstr "" -#: ../gtk/propertybox.c:379 +#: ../gtk/propertybox.c:568 msgid "Status" msgstr "状態" -#: ../gtk/propertybox.c:385 -msgid "Min bitrate (kbit/s)" +#: ../gtk/propertybox.c:574 +#, fuzzy +msgid "Bitrate (kbit/s)" msgstr "最低限のビットレート (kbit/s)" -#: ../gtk/propertybox.c:392 +#: ../gtk/propertybox.c:581 msgid "Parameters" msgstr "パラメーター" -#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:624 ../gtk/propertybox.c:767 msgid "Enabled" msgstr "使用する" -#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:626 ../gtk/propertybox.c:767 msgid "Disabled" msgstr "使用しない" -#: ../gtk/propertybox.c:624 +#: ../gtk/propertybox.c:813 msgid "Account" msgstr "" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:1057 msgid "English" msgstr "" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:1058 msgid "French" msgstr "Français" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:1059 msgid "Swedish" msgstr "" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:1060 msgid "Italian" msgstr "" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:1061 msgid "Spanish" msgstr "" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:1062 msgid "Brazilian Portugese" msgstr "" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:1063 msgid "Polish" msgstr "" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:1064 msgid "German" msgstr "" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:1065 msgid "Russian" msgstr "" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:1066 msgid "Japanese" msgstr "日本語" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:1067 msgid "Dutch" msgstr "" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:1068 msgid "Hungarian" msgstr "Magyar" -#: ../gtk/propertybox.c:776 +#: ../gtk/propertybox.c:1069 msgid "Czech" msgstr "čeština" -#: ../gtk/propertybox.c:777 +#: ../gtk/propertybox.c:1070 msgid "Chinese" msgstr "简体中文" -#: ../gtk/propertybox.c:778 +#: ../gtk/propertybox.c:1071 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:779 +#: ../gtk/propertybox.c:1072 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:780 +#: ../gtk/propertybox.c:1073 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:781 +#: ../gtk/propertybox.c:1074 msgid "Serbian" msgstr "" -#: ../gtk/propertybox.c:848 +#: ../gtk/propertybox.c:1141 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" -#: ../gtk/propertybox.c:934 +#: ../gtk/propertybox.c:1219 #, fuzzy msgid "None" msgstr "ありません。" -#: ../gtk/propertybox.c:938 +#: ../gtk/propertybox.c:1223 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:944 +#: ../gtk/propertybox.c:1229 msgid "ZRTP" msgstr "" @@ -441,110 +447,118 @@ msgstr "" msgid "I have already a sip account and I just want to use it" msgstr "" -#: ../gtk/setupwizard.c:85 +#: ../gtk/setupwizard.c:46 +msgid "I want to specify a remote configuration URI" +msgstr "" + +#: ../gtk/setupwizard.c:89 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:92 +#: ../gtk/setupwizard.c:96 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4 #, fuzzy msgid "Username:" msgstr "ユーザーマニュアル" -#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:98 ../gtk/password.ui.h:4 ../gtk/ldap.ui.h:5 #, fuzzy msgid "Password:" msgstr "パスワード" -#: ../gtk/setupwizard.c:114 +#: ../gtk/setupwizard.c:118 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:125 #, fuzzy msgid "Username*" msgstr "ユーザーマニュアル" -#: ../gtk/setupwizard.c:122 +#: ../gtk/setupwizard.c:126 #, fuzzy msgid "Password*" msgstr "パスワード" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:129 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:126 +#: ../gtk/setupwizard.c:130 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:302 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:299 +#: ../gtk/setupwizard.c:303 #, fuzzy msgid "Username: (*)" msgstr "ユーザーマニュアル" -#: ../gtk/setupwizard.c:301 +#: ../gtk/setupwizard.c:305 #, fuzzy msgid "Password: (*)" msgstr "パスワード" -#: ../gtk/setupwizard.c:303 +#: ../gtk/setupwizard.c:307 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:305 +#: ../gtk/setupwizard.c:309 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:369 +#: ../gtk/setupwizard.c:373 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:380 +#: ../gtk/setupwizard.c:384 msgid "Thank you. Your account is now configured and ready for use." msgstr "" -#: ../gtk/setupwizard.c:388 +#: ../gtk/setupwizard.c:392 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:564 +#: ../gtk/setupwizard.c:572 +msgid "SIP account configuration assistant" +msgstr "" + +#: ../gtk/setupwizard.c:590 msgid "Welcome to the account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:569 +#: ../gtk/setupwizard.c:595 msgid "Account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:575 +#: ../gtk/setupwizard.c:601 msgid "Configure your account (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:580 +#: ../gtk/setupwizard.c:606 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:584 +#: ../gtk/setupwizard.c:610 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:593 +#: ../gtk/setupwizard.c:619 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:598 +#: ../gtk/setupwizard.c:624 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:602 +#: ../gtk/setupwizard.c:628 msgid "Terminating" msgstr "" @@ -613,138 +627,153 @@ msgstr "通話はキャンセルされました。" msgid "Direct or through server" msgstr "" -#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:261 ../gtk/incall_view.c:272 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:286 +#: ../gtk/incall_view.c:267 ../gtk/incall_view.c:268 +#, c-format +msgid "%ix%i" +msgstr "" + +#: ../gtk/incall_view.c:297 #, c-format msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:395 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:476 +#: ../gtk/incall_view.c:487 #, fuzzy msgid "Calling..." msgstr "接続中" -#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:700 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:490 +#: ../gtk/incall_view.c:501 #, fuzzy msgid "Incoming call" msgstr "接続中" -#: ../gtk/incall_view.c:527 +#: ../gtk/incall_view.c:538 msgid "good" msgstr "" -#: ../gtk/incall_view.c:529 +#: ../gtk/incall_view.c:540 msgid "average" msgstr "" -#: ../gtk/incall_view.c:531 +#: ../gtk/incall_view.c:542 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:533 +#: ../gtk/incall_view.c:544 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:535 +#: ../gtk/incall_view.c:546 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:547 ../gtk/incall_view.c:563 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:651 +#: ../gtk/incall_view.c:662 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:657 +#: ../gtk/incall_view.c:668 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:663 +#: ../gtk/incall_view.c:674 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:674 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 #, fuzzy msgid "In call" msgstr "接続中" -#: ../gtk/incall_view.c:718 +#: ../gtk/incall_view.c:731 #, fuzzy msgid "Paused call" msgstr "接続中" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:744 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:748 +#: ../gtk/incall_view.c:762 #, fuzzy msgid "Call ended." msgstr "通話は拒否されました。" -#: ../gtk/incall_view.c:778 +#: ../gtk/incall_view.c:793 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:796 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:784 +#: ../gtk/incall_view.c:799 #, fuzzy msgid "Transfer failed." msgstr "通話はキャンセルされました。" -#: ../gtk/incall_view.c:828 +#: ../gtk/incall_view.c:843 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:850 ../gtk/main.ui.h:9 msgid "Pause" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 msgid "(Paused)" msgstr "" -#: ../gtk/loginframe.c:93 +#: ../gtk/loginframe.c:88 #, c-format msgid "Please enter login information for %s" msgstr "" +#: ../gtk/config-fetching.c:57 +#, c-format +msgid "fetching from %s" +msgstr "" + +#: ../gtk/config-fetching.c:73 +#, c-format +msgid "Downloading of remote configuration from %s failed." +msgstr "" + #: ../gtk/main.ui.h:1 #, fuzzy msgid "Callee name" @@ -794,98 +823,99 @@ msgid "_Options" msgstr "" #: ../gtk/main.ui.h:18 +#, fuzzy +msgid "Set configuration URI" +msgstr "情報" + +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 #, fuzzy msgid "Enable self-view" msgstr "使用する" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 #, fuzzy msgid "SIP address or phone number:" msgstr "レジストラサーバーのSIPアドレス" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:28 #, fuzzy msgid "Contacts" msgstr "接続中" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 -msgid "Add" -msgstr "追加する" - -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 -msgid "Edit" -msgstr "" - -#: ../gtk/main.ui.h:30 +#: ../gtk/main.ui.h:29 msgid "Search" msgstr "" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 #, fuzzy msgid "Add contacts from directory" msgstr "コーデックの情報" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 #, fuzzy msgid "Add contact" msgstr "(接続するための情報がありません!)" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Recent calls" msgstr "接続中" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "My current identity:" msgstr "個人情報" -#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:34 ../gtk/tunnel_config.ui.h:7 #, fuzzy msgid "Username" msgstr "ユーザーマニュアル" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:8 #, fuzzy msgid "Password" msgstr "パスワード" -#: ../gtk/main.ui.h:37 +#: ../gtk/main.ui.h:36 msgid "Internet connection:" msgstr "" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Automatically log me in" msgstr "" +#: ../gtk/main.ui.h:38 ../gtk/password.ui.h:3 +msgid "UserID" +msgstr "" + #: ../gtk/main.ui.h:39 #, fuzzy msgid "Login information" @@ -948,6 +978,7 @@ msgid "" "pl: Robert Nasiadek \n" "cs: Petr Pisar \n" "hu: anonymous\n" +"he: Eli Zaretskii \n" msgstr "" #: ../gtk/contact.ui.h:2 @@ -985,10 +1016,6 @@ msgstr "コーデックの情報" msgid "Please enter the domain password" msgstr "" -#: ../gtk/password.ui.h:3 -msgid "UserID" -msgstr "" - #: ../gtk/call_logs.ui.h:1 msgid "Call history" msgstr "" @@ -1028,326 +1055,393 @@ msgid "Looks like sip:" msgstr "" #: ../gtk/sip_account.ui.h:7 -msgid "Route (optional):" -msgstr "" - -#: ../gtk/sip_account.ui.h:8 #, fuzzy msgid "Registration duration (sec):" msgstr "登録しました。" +#: ../gtk/sip_account.ui.h:8 +msgid "Contact params (optional):" +msgstr "" + #: ../gtk/sip_account.ui.h:9 -msgid "Register" +msgid "Route (optional):" msgstr "" #: ../gtk/sip_account.ui.h:10 #, fuzzy +msgid "Transport" +msgstr "接続中" + +#: ../gtk/sip_account.ui.h:11 +msgid "Register" +msgstr "" + +#: ../gtk/sip_account.ui.h:12 +#, fuzzy msgid "Publish presence information" msgstr "コーデックの情報" -#: ../gtk/sip_account.ui.h:11 +#: ../gtk/sip_account.ui.h:13 msgid "Configure a SIP account" msgstr "" #: ../gtk/parameters.ui.h:1 -msgid "default soundcard" +msgid "anonymous" msgstr "" #: ../gtk/parameters.ui.h:2 -msgid "a sound card" +msgid "GSSAPI" msgstr "" #: ../gtk/parameters.ui.h:3 -msgid "default camera" +msgid "SASL" msgstr "" #: ../gtk/parameters.ui.h:4 -msgid "CIF" +msgid "default soundcard" msgstr "" #: ../gtk/parameters.ui.h:5 +msgid "a sound card" +msgstr "" + +#: ../gtk/parameters.ui.h:6 +msgid "default camera" +msgstr "" + +#: ../gtk/parameters.ui.h:7 +msgid "CIF" +msgstr "" + +#: ../gtk/parameters.ui.h:8 #, fuzzy msgid "Audio codecs" msgstr "オーディオコーデックのプロパティー" -#: ../gtk/parameters.ui.h:6 +#: ../gtk/parameters.ui.h:9 #, fuzzy msgid "Video codecs" msgstr "オーディオコーデックのプロパティー" -#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:10 ../gtk/keypad.ui.h:5 msgid "C" msgstr "" -#: ../gtk/parameters.ui.h:8 +#: ../gtk/parameters.ui.h:11 msgid "SIP (UDP)" msgstr "" -#: ../gtk/parameters.ui.h:9 +#: ../gtk/parameters.ui.h:12 msgid "SIP (TCP)" msgstr "" -#: ../gtk/parameters.ui.h:10 +#: ../gtk/parameters.ui.h:13 msgid "SIP (TLS)" msgstr "" -#: ../gtk/parameters.ui.h:11 +#: ../gtk/parameters.ui.h:14 msgid "Settings" msgstr "" -#: ../gtk/parameters.ui.h:12 +#: ../gtk/parameters.ui.h:15 msgid "Set Maximum Transmission Unit:" msgstr "" -#: ../gtk/parameters.ui.h:13 +#: ../gtk/parameters.ui.h:16 msgid "Send DTMFs as SIP info" msgstr "" -#: ../gtk/parameters.ui.h:14 +#: ../gtk/parameters.ui.h:17 msgid "Use IPv6 instead of IPv4" msgstr "" -#: ../gtk/parameters.ui.h:15 +#: ../gtk/parameters.ui.h:18 #, fuzzy msgid "Transport" msgstr "接続中" -#: ../gtk/parameters.ui.h:16 +#: ../gtk/parameters.ui.h:19 msgid "Media encryption type" msgstr "" -#: ../gtk/parameters.ui.h:17 +#: ../gtk/parameters.ui.h:20 msgid "Video RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:18 +#: ../gtk/parameters.ui.h:21 msgid "Audio RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:19 -msgid "DSCP fields" -msgstr "" - -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:22 msgid "Fixed" msgstr "" -#: ../gtk/parameters.ui.h:21 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:22 +#: ../gtk/parameters.ui.h:23 msgid "Media encryption is mandatory" msgstr "" -#: ../gtk/parameters.ui.h:23 -msgid "Network protocol and ports" -msgstr "" - #: ../gtk/parameters.ui.h:24 -msgid "Direct connection to the Internet" +msgid "Tunnel" msgstr "" #: ../gtk/parameters.ui.h:25 -msgid "Behind NAT / Firewall (specify gateway IP below)" +msgid "DSCP fields" msgstr "" #: ../gtk/parameters.ui.h:26 #, fuzzy -msgid "Public IP address:" -msgstr "Sipアドレス:" +msgid "SIP/TCP port" +msgstr "SIPのポート" #: ../gtk/parameters.ui.h:27 -msgid "Behind NAT / Firewall (use STUN to resolve)" -msgstr "" +#, fuzzy +msgid "SIP/UDP port" +msgstr "SIPのポート" #: ../gtk/parameters.ui.h:28 -msgid "Behind NAT / Firewall (use ICE)" +msgid "Network protocol and ports" msgstr "" #: ../gtk/parameters.ui.h:29 -msgid "Behind NAT / Firewall (use uPnP)" +msgid "Direct connection to the Internet" msgstr "" #: ../gtk/parameters.ui.h:30 +msgid "Behind NAT / Firewall (specify gateway IP )" +msgstr "" + +#: ../gtk/parameters.ui.h:31 +msgid "Behind NAT / Firewall (use STUN to resolve)" +msgstr "" + +#: ../gtk/parameters.ui.h:32 +msgid "Behind NAT / Firewall (use ICE)" +msgstr "" + +#: ../gtk/parameters.ui.h:33 +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "" + +#: ../gtk/parameters.ui.h:34 +#, fuzzy +msgid "Public IP address:" +msgstr "Sipアドレス:" + +#: ../gtk/parameters.ui.h:35 #, fuzzy msgid "Stun server:" msgstr "使用するサウンドデバイス" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:36 #, fuzzy msgid "NAT and Firewall" msgstr "接続中" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:37 #, fuzzy msgid "Network settings" msgstr "ネットワーク" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:38 #, fuzzy msgid "Ring sound:" msgstr "録音する音源" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:39 msgid "ALSA special device (optional):" msgstr "" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:40 #, fuzzy msgid "Capture device:" msgstr "使用するサウンドデバイス" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:41 #, fuzzy msgid "Ring device:" msgstr "使用するサウンドデバイス" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:42 #, fuzzy msgid "Playback device:" msgstr "使用するサウンドデバイス" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:43 msgid "Enable echo cancellation" msgstr "" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:44 #, fuzzy msgid "Audio" msgstr "接続中" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:45 #, fuzzy msgid "Video input device:" msgstr "使用するサウンドデバイス" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:46 msgid "Prefered video resolution:" msgstr "" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:47 +#, fuzzy +msgid "Video output method:" +msgstr "使用するサウンドデバイス" + +#: ../gtk/parameters.ui.h:48 #, fuzzy msgid "Video" msgstr "接続中" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:49 msgid "Multimedia settings" msgstr "" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:50 msgid "This section defines your SIP address when not using a SIP account" msgstr "" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:51 msgid "Your display name (eg: John Doe):" msgstr "" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:52 #, fuzzy msgid "Your username:" msgstr "ユーザーマニュアル" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:53 #, fuzzy msgid "Your resulting SIP address:" msgstr "あなたのSIPアドレス" -#: ../gtk/parameters.ui.h:48 +#: ../gtk/parameters.ui.h:54 #, fuzzy msgid "Default identity" msgstr "個人情報" -#: ../gtk/parameters.ui.h:49 +#: ../gtk/parameters.ui.h:55 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:56 +msgid "Add" +msgstr "追加する" + +#: ../gtk/parameters.ui.h:57 +msgid "Edit" +msgstr "" + +#: ../gtk/parameters.ui.h:58 msgid "Remove" msgstr "削除する" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:59 #, fuzzy msgid "Proxy accounts" msgstr "接続中" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:60 msgid "Erase all passwords" msgstr "" -#: ../gtk/parameters.ui.h:55 +#: ../gtk/parameters.ui.h:61 #, fuzzy msgid "Privacy" msgstr "接続中" -#: ../gtk/parameters.ui.h:56 +#: ../gtk/parameters.ui.h:62 msgid "Manage SIP Accounts" msgstr "" -#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "使用する" -#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "使用しない" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:65 #, fuzzy msgid "Codecs" msgstr "接続中" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:66 msgid "0 stands for \"unlimited\"" msgstr "" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:67 msgid "Upload speed limit in Kbit/sec:" msgstr "" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:68 msgid "Download speed limit in Kbit/sec:" msgstr "" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:69 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:70 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:71 msgid "Bandwidth control" msgstr "" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:72 #, fuzzy msgid "Codecs" msgstr "コーデック" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:73 #, fuzzy msgid "Language" msgstr "接続中" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:74 msgid "Show advanced settings" msgstr "" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:75 #, fuzzy msgid "Level" msgstr "接続中" -#: ../gtk/parameters.ui.h:70 +#: ../gtk/parameters.ui.h:76 #, fuzzy msgid "User interface" msgstr "ユーザーマニュアル" -#: ../gtk/parameters.ui.h:71 +#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2 +#, fuzzy +msgid "Server address:" +msgstr "サーバーのアドレス" + +#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3 +#, fuzzy +msgid "Authentication method:" +msgstr "コーデックの情報" + +#: ../gtk/parameters.ui.h:80 +msgid "label" +msgstr "" + +#: ../gtk/parameters.ui.h:81 +#, fuzzy +msgid "LDAP Account setup" +msgstr "接続中" + +#: ../gtk/parameters.ui.h:82 +msgid "LDAP" +msgstr "" + +#: ../gtk/parameters.ui.h:83 #, fuzzy msgid "Done" msgstr "ありません。" @@ -1377,7 +1471,7 @@ msgstr "" #: ../gtk/dscp_settings.ui.h:1 #, fuzzy -msgid "Dscp settings" +msgid "DSCP settings" msgstr "ネットワーク" #: ../gtk/dscp_settings.ui.h:2 @@ -1432,6 +1526,14 @@ msgid "Round trip time" msgstr "サウンドのプロパティー" #: ../gtk/call_statistics.ui.h:9 +msgid "Video resolution received" +msgstr "" + +#: ../gtk/call_statistics.ui.h:10 +msgid "Video resolution sent" +msgstr "" + +#: ../gtk/call_statistics.ui.h:11 #, fuzzy msgid "Call statistics and information" msgstr "コーデックの情報" @@ -1516,19 +1618,141 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:228 +#: ../gtk/ldap.ui.h:1 +#, fuzzy +msgid "LDAP Settings" +msgstr "ネットワーク" + +#: ../gtk/ldap.ui.h:6 +msgid "Use TLS Connection" +msgstr "" + +#: ../gtk/ldap.ui.h:7 +#, fuzzy +msgid "Not yet available" +msgstr "特に情報はありません" + +#: ../gtk/ldap.ui.h:8 +#, fuzzy +msgid "Connection" +msgstr "接続中" + +#: ../gtk/ldap.ui.h:9 +msgid "Bind DN" +msgstr "" + +#: ../gtk/ldap.ui.h:10 +msgid "Authname" +msgstr "" + +#: ../gtk/ldap.ui.h:11 +msgid "Realm" +msgstr "" + +#: ../gtk/ldap.ui.h:12 +#, fuzzy +msgid "SASL" +msgstr "接続中" + +#: ../gtk/ldap.ui.h:13 +msgid "Base object:" +msgstr "" + +#: ../gtk/ldap.ui.h:15 +#, no-c-format +msgid "Filter (%s for name):" +msgstr "" + +#: ../gtk/ldap.ui.h:16 +msgid "Name Attribute:" +msgstr "" + +#: ../gtk/ldap.ui.h:17 +#, fuzzy +msgid "SIP address attribute:" +msgstr "アドレス" + +#: ../gtk/ldap.ui.h:18 +msgid "Attributes to query:" +msgstr "" + +#: ../gtk/ldap.ui.h:19 +#, fuzzy +msgid "Search" +msgstr "接続中" + +#: ../gtk/ldap.ui.h:20 +msgid "Timeout for search:" +msgstr "" + +#: ../gtk/ldap.ui.h:21 +msgid "Max results:" +msgstr "" + +#: ../gtk/ldap.ui.h:22 +msgid "Follow Aliases" +msgstr "" + +#: ../gtk/ldap.ui.h:23 +#, fuzzy +msgid "Miscellaneous" +msgstr "接続中" + +#: ../gtk/ldap.ui.h:24 +msgid "ANONYMOUS" +msgstr "" + +#: ../gtk/ldap.ui.h:25 +msgid "SIMPLE" +msgstr "" + +#: ../gtk/ldap.ui.h:26 +msgid "DIGEST-MD5" +msgstr "" + +#: ../gtk/ldap.ui.h:27 +msgid "NTLM" +msgstr "" + +#: ../gtk/config-uri.ui.h:1 +msgid "Specifying a remote configuration URI" +msgstr "" + +#: ../gtk/config-uri.ui.h:2 +msgid "" +"This dialog allows to set an http or https address when configuration is to " +"be fetched at startup.\n" +"Please enter or modify the configuration URI below. After clicking OK, " +"Linphone will restart automatically in order to fetch and take into account " +"the new configuration. " +msgstr "" + +#: ../gtk/config-uri.ui.h:4 +msgid "https://" +msgstr "" + +#: ../gtk/provisioning-fetch.ui.h:1 +#, fuzzy +msgid "Configuring..." +msgstr "コネクション" + +#: ../gtk/provisioning-fetch.ui.h:2 +msgid "Please wait while fetching configuration from server..." +msgstr "" + +#: ../coreapi/linphonecore.c:238 msgid "aborted" msgstr "" -#: ../coreapi/linphonecore.c:231 +#: ../coreapi/linphonecore.c:241 msgid "completed" msgstr "" -#: ../coreapi/linphonecore.c:234 +#: ../coreapi/linphonecore.c:244 msgid "missed" msgstr "" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:249 #, c-format msgid "" "%s at %s\n" @@ -1538,109 +1762,82 @@ msgid "" "Duration: %i mn %i sec\n" msgstr "" -#: ../coreapi/linphonecore.c:240 +#: ../coreapi/linphonecore.c:250 msgid "Outgoing call" msgstr "" -#: ../coreapi/linphonecore.c:1321 +#: ../coreapi/linphonecore.c:1264 #, fuzzy msgid "Ready" msgstr "準備完了。" -#: ../coreapi/linphonecore.c:2205 +#: ../coreapi/linphonecore.c:1372 +#, fuzzy +msgid "Configuring" +msgstr "情報" + +#: ../coreapi/linphonecore.c:2331 msgid "Looking for telephone number destination..." msgstr "" -#: ../coreapi/linphonecore.c:2208 +#: ../coreapi/linphonecore.c:2334 msgid "Could not resolve this number." msgstr "" -#: ../coreapi/linphonecore.c:2252 -#, fuzzy -msgid "" -"Could not parse given sip address. A sip url usually looks like sip:" -"user@domain" -msgstr "" -"SIPアドレスの形式エラーです。SIPアドレスは、のような" -"形式です。" - -#: ../coreapi/linphonecore.c:2453 +#. must be known at that time +#: ../coreapi/linphonecore.c:2609 #, fuzzy msgid "Contacting" msgstr "接続中" -#: ../coreapi/linphonecore.c:2460 +#: ../coreapi/linphonecore.c:2616 #, fuzzy msgid "Could not call" msgstr "pixmapファイルが見つかりません %s" -#: ../coreapi/linphonecore.c:2570 +#: ../coreapi/linphonecore.c:2765 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2752 +#: ../coreapi/linphonecore.c:2952 #, fuzzy msgid "is contacting you" msgstr "から電話です。" -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2820 +#: ../coreapi/linphonecore.c:3020 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:3159 +#: ../coreapi/linphonecore.c:3362 msgid "Connected." msgstr "接続しました。" -#: ../coreapi/linphonecore.c:3187 +#: ../coreapi/linphonecore.c:3388 #, fuzzy msgid "Call aborted" msgstr "通話はキャンセルされました。" -#: ../coreapi/linphonecore.c:3378 +#: ../coreapi/linphonecore.c:3581 msgid "Could not pause the call" msgstr "" -#: ../coreapi/linphonecore.c:3383 +#: ../coreapi/linphonecore.c:3586 msgid "Pausing the current call..." msgstr "" -#: ../coreapi/misc.c:148 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the pcm oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -"'modprobe snd-pcm-oss' as root to load it." -msgstr "" -"このコンピューターはALSAサウンドドライバーを使用しているようです。\n" -"それは最良の選択です。しかし、Linphoneが必要とする\n" -"pcm ossエミュレーションモジュールが見つかりません。\n" -"ロードするために、ルート権限で'modprobe snd-pcm-oss'を実行してください。" - -#: ../coreapi/misc.c:151 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the mixer oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -" 'modprobe snd-mixer-oss' as root to load it." -msgstr "" -"このコンピューターはALSAサウンドドライバーを使用しているようです。\n" -"それは最良の選択です。しかし、Linphoneが必要とする\n" -"mixer ossエミュレーションモジュールが見つかりません。\n" -"ロードするために、ルート権限で'modprobe snd-mixer-oss'を実行してください。" - -#: ../coreapi/misc.c:496 +#: ../coreapi/misc.c:394 msgid "Stun lookup in progress..." msgstr "" -#: ../coreapi/misc.c:630 +#: ../coreapi/misc.c:576 msgid "ICE local candidates gathering in progress..." msgstr "" @@ -1693,146 +1890,155 @@ msgid "Pending" msgstr "" #: ../coreapi/friend.c:66 +#, fuzzy +msgid "Vacation" +msgstr "情報" + +#: ../coreapi/friend.c:68 msgid "Unknown-bug" msgstr "" -#: ../coreapi/proxy.c:204 +#: ../coreapi/proxy.c:209 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "" -#: ../coreapi/proxy.c:210 +#: ../coreapi/proxy.c:215 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" -#: ../coreapi/proxy.c:1069 +#: ../coreapi/proxy.c:1125 #, fuzzy, c-format msgid "Could not login as %s" msgstr "pixmapファイルが見つかりません %s" -#: ../coreapi/callbacks.c:286 +#: ../coreapi/callbacks.c:289 #, fuzzy msgid "Remote ringing." msgstr "登録中……" -#: ../coreapi/callbacks.c:306 +#: ../coreapi/callbacks.c:305 #, fuzzy msgid "Remote ringing..." msgstr "登録中……" -#: ../coreapi/callbacks.c:317 +#: ../coreapi/callbacks.c:316 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:368 +#: ../coreapi/callbacks.c:367 #, c-format msgid "Call with %s is paused." msgstr "" -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:380 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:392 +#: ../coreapi/callbacks.c:391 #, fuzzy msgid "Call resumed." msgstr "通話は拒否されました。" -#: ../coreapi/callbacks.c:397 +#: ../coreapi/callbacks.c:396 #, fuzzy, c-format msgid "Call answered by %s." msgstr "" "電話をかける\n" "電話に出る" -#: ../coreapi/callbacks.c:412 +#: ../coreapi/callbacks.c:414 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:460 +#: ../coreapi/callbacks.c:463 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:469 +#: ../coreapi/callbacks.c:471 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:475 +#: ../coreapi/callbacks.c:487 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:558 #, fuzzy msgid "Call terminated." msgstr "通話は拒否されました。" -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:586 msgid "User is busy." msgstr "ユーザーはビジーです" -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:587 msgid "User is temporarily unavailable." msgstr "ユーザーは、今出られません。" #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:558 +#: ../coreapi/callbacks.c:589 msgid "User does not want to be disturbed." msgstr "ユーザーは手が離せないようです。" -#: ../coreapi/callbacks.c:559 +#: ../coreapi/callbacks.c:590 msgid "Call declined." msgstr "通話は拒否されました。" -#: ../coreapi/callbacks.c:571 +#: ../coreapi/callbacks.c:603 msgid "No response." msgstr "" -#: ../coreapi/callbacks.c:575 +#: ../coreapi/callbacks.c:607 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:591 +#: ../coreapi/callbacks.c:623 msgid "Redirected" msgstr "" -#: ../coreapi/callbacks.c:627 +#: ../coreapi/callbacks.c:665 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:633 +#: ../coreapi/callbacks.c:677 #, fuzzy msgid "Call failed." msgstr "通話はキャンセルされました。" -#: ../coreapi/callbacks.c:737 +#: ../coreapi/callbacks.c:751 #, fuzzy, c-format msgid "Registration on %s successful." msgstr "登録しました。" -#: ../coreapi/callbacks.c:738 +#: ../coreapi/callbacks.c:752 #, fuzzy, c-format msgid "Unregistration on %s done." msgstr "登録しました。" -#: ../coreapi/callbacks.c:758 +#: ../coreapi/callbacks.c:772 msgid "no response timeout" msgstr "" -#: ../coreapi/callbacks.c:761 +#: ../coreapi/callbacks.c:775 #, fuzzy, c-format msgid "Registration on %s failed: %s" msgstr "登録しました。" -#: ../coreapi/linphonecall.c:129 +#: ../coreapi/callbacks.c:785 +msgid "Service unavailable, retrying" +msgstr "" + +#: ../coreapi/linphonecall.c:142 #, fuzzy, c-format msgid "Authentication token is %s" msgstr "コーデックの情報" -#: ../coreapi/linphonecall.c:2355 +#: ../coreapi/linphonecall.c:2678 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -1840,17 +2046,39 @@ msgstr[0] "" msgstr[1] "" #, fuzzy -#~ msgid "Confirmation" -#~ msgstr "情報" +#~ msgid "" +#~ "Could not parse given sip address. A sip url usually looks like sip:" +#~ "user@domain" +#~ msgstr "" +#~ "SIPアドレスの形式エラーです。SIPアドレスは、のよ" +#~ "うな形式です。" + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the pcm oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ "'modprobe snd-pcm-oss' as root to load it." +#~ msgstr "" +#~ "このコンピューターはALSAサウンドドライバーを使用しているようです。\n" +#~ "それは最良の選択です。しかし、Linphoneが必要とする\n" +#~ "pcm ossエミュレーションモジュールが見つかりません。\n" +#~ "ロードするために、ルート権限で'modprobe snd-pcm-oss'を実行してください。" + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the mixer oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ " 'modprobe snd-mixer-oss' as root to load it." +#~ msgstr "" +#~ "このコンピューターはALSAサウンドドライバーを使用しているようです。\n" +#~ "それは最良の選択です。しかし、Linphoneが必要とする\n" +#~ "mixer ossエミュレーションモジュールが見つかりません。\n" +#~ "ロードするために、ルート権限で'modprobe snd-mixer-oss'を実行してください。" #, fuzzy #~ msgid "Enable video" #~ msgstr "使用する" -#, fuzzy -#~ msgid "Authentication failure" -#~ msgstr "コーデックの情報" - #, fuzzy #~ msgid "Contact list" #~ msgstr "接続中" @@ -1921,10 +2149,6 @@ msgstr[1] "" #~ msgid "Gone" #~ msgstr "ありません。" -#, fuzzy -#~ msgid "SIP address" -#~ msgstr "アドレス" - #, fuzzy #~ msgid "Display filters" #~ msgstr "表示される名前" @@ -2018,9 +2242,6 @@ msgstr[1] "" #~ msgid "It is strongly recommended to use port 5060." #~ msgstr "5060番ポートを使うことを強く推奨します。" -#~ msgid "SIP port" -#~ msgstr "SIPのポート" - #~ msgid "@" #~ msgstr "@" @@ -2075,10 +2296,6 @@ msgstr[1] "" #~ msgid "Communication ended." #~ msgstr "会話は終了しました。" -#, fuzzy -#~ msgid "Server address" -#~ msgstr "サーバーのアドレス" - #~ msgid "28k modem" #~ msgstr "28kのモデム" diff --git a/po/nb_NO.po b/po/nb_NO.po index 470e0d024..d6eeac5c0 100644 --- a/po/nb_NO.po +++ b/po/nb_NO.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-24 14:04+0200\n" +"POT-Creation-Date: 2014-02-14 14:57+0100\n" "PO-Revision-Date: 2011-04-05 01:56+0200\n" "Last-Translator: Øyvind Sæther \n" "Language-Team: Norwegian Bokmål \n" @@ -17,12 +17,12 @@ msgstr "" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:969 #, c-format msgid "Call %s" msgstr "Ring %s" -#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:970 #, c-format msgid "Send text to %s" msgstr "Send tekst til %s" @@ -98,35 +98,35 @@ msgstr "Skru mikrofonen av" msgid "Couldn't find pixmap file: %s" msgstr "Fant ikke pixmap fli: %s" -#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:363 ../gtk/friendlist.c:919 msgid "Invalid sip contact !" msgstr "Ugyldig SIP kontakt !" -#: ../gtk/main.c:92 +#: ../gtk/main.c:102 msgid "log to stdout some debug information while running." msgstr "skriv logg-informasjon under kjøring" -#: ../gtk/main.c:99 +#: ../gtk/main.c:109 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:106 +#: ../gtk/main.c:116 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:113 +#: ../gtk/main.c:123 msgid "Start only in the system tray, do not show the main interface." msgstr "Start skjult i systemkurven, ikke vis programbildet." -#: ../gtk/main.c:120 +#: ../gtk/main.c:130 msgid "address to call right now" msgstr "address som skal ringes nå" -#: ../gtk/main.c:127 +#: ../gtk/main.c:137 msgid "if set automatically answer incoming calls" msgstr "besvarer innkommende samtaler automatisk om valgt" -#: ../gtk/main.c:134 +#: ../gtk/main.c:144 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -134,12 +134,17 @@ msgstr "" "Spesifiser arbeidsmappe (bør være base for installasjonen, f.eks: c:" "\\Programfiler\\Linphone)" -#: ../gtk/main.c:515 +#: ../gtk/main.c:151 +#, fuzzy +msgid "Configuration file" +msgstr "Bekreftelse" + +#: ../gtk/main.c:573 #, c-format msgid "Call with %s" msgstr "Ring med %s" -#: ../gtk/main.c:946 +#: ../gtk/main.c:1150 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -152,70 +157,70 @@ msgstr "" "din kontaktliste?\n" "Hvis du svarer nei vil personen bli svartelyst midlertidig." -#: ../gtk/main.c:1023 -#, c-format +#: ../gtk/main.c:1227 +#, fuzzy, c-format msgid "" "Please enter your password for username %s\n" -" at domain %s:" +" at realm %s:" msgstr "" "Skriv inn ditt passord for brukernavn %s\n" " på domene %s:i>:" -#: ../gtk/main.c:1126 +#: ../gtk/main.c:1339 #, fuzzy msgid "Call error" msgstr "Samtalehistorikk" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 +#: ../gtk/main.c:1342 ../coreapi/linphonecore.c:3408 msgid "Call ended" msgstr "Samtale avsluttet" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 +#: ../gtk/main.c:1345 ../coreapi/linphonecore.c:250 msgid "Incoming call" msgstr "Innkommende samtale" -#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 +#: ../gtk/main.c:1347 ../gtk/incall_view.c:508 ../gtk/main.ui.h:5 msgid "Answer" msgstr "Svarer" -#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1349 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Avvis" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy msgid "Call paused" msgstr "Samtale avbrutt" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy, c-format msgid "by %s" msgstr "Porter" -#: ../gtk/main.c:1191 +#: ../gtk/main.c:1422 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1353 +#: ../gtk/main.c:1584 msgid "Website link" msgstr "Peker til nettsted" -#: ../gtk/main.c:1402 +#: ../gtk/main.c:1633 msgid "Linphone - a video internet phone" msgstr "Linphone - en video Internet telefon" -#: ../gtk/main.c:1494 +#: ../gtk/main.c:1725 #, c-format msgid "%s (Default)" msgstr "%s (Standard)" -#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 +#: ../gtk/main.c:2061 ../coreapi/callbacks.c:827 #, c-format msgid "We are transferred to %s" msgstr "Vi er overført til %s" -#: ../gtk/main.c:1806 +#: ../gtk/main.c:2071 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -223,170 +228,171 @@ msgstr "" "Klarte ikke å finne noe lydkort på denne datamaskinen.\n" "Du vil ikke kunne sende eller motta lydsamtaler." -#: ../gtk/main.c:1911 +#: ../gtk/main.c:2207 msgid "A free SIP video-phone" msgstr "En gratis SIP video-telefon" -#: ../gtk/friendlist.c:469 +#: ../gtk/friendlist.c:505 msgid "Add to addressbook" msgstr "" -#: ../gtk/friendlist.c:643 +#: ../gtk/friendlist.c:691 msgid "Presence status" msgstr "Tilstedestatus" -#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:709 ../gtk/propertybox.c:556 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Navn" -#: ../gtk/friendlist.c:673 +#: ../gtk/friendlist.c:721 #, fuzzy msgid "Call" msgstr "Ring %s" -#: ../gtk/friendlist.c:678 +#: ../gtk/friendlist.c:726 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:708 +#: ../gtk/friendlist.c:756 #, c-format msgid "Search in %s directory" msgstr "Søk i %s katalogen" -#: ../gtk/friendlist.c:924 +#: ../gtk/friendlist.c:971 #, c-format msgid "Edit contact '%s'" msgstr "Rediger kontakt '%s'" -#: ../gtk/friendlist.c:925 +#: ../gtk/friendlist.c:972 #, c-format msgid "Delete contact '%s'" msgstr "Slett kontakt '%s'" -#: ../gtk/friendlist.c:926 +#: ../gtk/friendlist.c:973 #, fuzzy, c-format msgid "Delete chat history of '%s'" msgstr "Slett kontakt '%s'" -#: ../gtk/friendlist.c:977 +#: ../gtk/friendlist.c:1024 #, c-format msgid "Add new contact from %s directory" msgstr "Legg til kontakt fra %s katalogen" -#: ../gtk/propertybox.c:373 +#: ../gtk/propertybox.c:562 msgid "Rate (Hz)" msgstr "Frekvens (Hz)" -#: ../gtk/propertybox.c:379 +#: ../gtk/propertybox.c:568 msgid "Status" msgstr "Status" -#: ../gtk/propertybox.c:385 -msgid "Min bitrate (kbit/s)" +#: ../gtk/propertybox.c:574 +#, fuzzy +msgid "Bitrate (kbit/s)" msgstr "Min. datahastighet (kbit/s)" -#: ../gtk/propertybox.c:392 +#: ../gtk/propertybox.c:581 msgid "Parameters" msgstr "Parametere" -#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:624 ../gtk/propertybox.c:767 msgid "Enabled" msgstr "På" -#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:626 ../gtk/propertybox.c:767 msgid "Disabled" msgstr "Av" -#: ../gtk/propertybox.c:624 +#: ../gtk/propertybox.c:813 msgid "Account" msgstr "Konto" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:1057 msgid "English" msgstr "Engelsk" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:1058 msgid "French" msgstr "Fransk" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:1059 msgid "Swedish" msgstr "Svensk" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:1060 msgid "Italian" msgstr "Italisensk" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:1061 msgid "Spanish" msgstr "Spansk" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:1062 msgid "Brazilian Portugese" msgstr "Portugisisk" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:1063 msgid "Polish" msgstr "Polsk" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:1064 msgid "German" msgstr "Tysk" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:1065 msgid "Russian" msgstr "Russisk" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:1066 msgid "Japanese" msgstr "Japansk" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:1067 msgid "Dutch" msgstr "Nederlandsk" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:1068 msgid "Hungarian" msgstr "Ungarsk" -#: ../gtk/propertybox.c:776 +#: ../gtk/propertybox.c:1069 msgid "Czech" msgstr "Tjekkisk" -#: ../gtk/propertybox.c:777 +#: ../gtk/propertybox.c:1070 msgid "Chinese" msgstr "Kinesisk" -#: ../gtk/propertybox.c:778 +#: ../gtk/propertybox.c:1071 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:779 +#: ../gtk/propertybox.c:1072 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:780 +#: ../gtk/propertybox.c:1073 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:781 +#: ../gtk/propertybox.c:1074 msgid "Serbian" msgstr "" -#: ../gtk/propertybox.c:848 +#: ../gtk/propertybox.c:1141 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "Du må restarte linphone for at det nye språkvalget skal iverksettes." -#: ../gtk/propertybox.c:934 +#: ../gtk/propertybox.c:1219 msgid "None" msgstr "" -#: ../gtk/propertybox.c:938 +#: ../gtk/propertybox.c:1223 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:944 +#: ../gtk/propertybox.c:1229 msgid "ZRTP" msgstr "" @@ -453,109 +459,118 @@ msgstr "Jeg har allerede en brukerkonto og vil bruke den." msgid "I have already a sip account and I just want to use it" msgstr "Jeg har allerede en brukerkonto og vil bruke den." -#: ../gtk/setupwizard.c:85 +#: ../gtk/setupwizard.c:46 +msgid "I want to specify a remote configuration URI" +msgstr "" + +#: ../gtk/setupwizard.c:89 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:92 +#: ../gtk/setupwizard.c:96 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4 msgid "Username:" msgstr "Brukernavn:" -#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:98 ../gtk/password.ui.h:4 ../gtk/ldap.ui.h:5 msgid "Password:" msgstr "Passord:" -#: ../gtk/setupwizard.c:114 +#: ../gtk/setupwizard.c:118 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:125 #, fuzzy msgid "Username*" msgstr "Brukernavn" -#: ../gtk/setupwizard.c:122 +#: ../gtk/setupwizard.c:126 #, fuzzy msgid "Password*" msgstr "Passord" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:129 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:126 +#: ../gtk/setupwizard.c:130 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:302 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:299 +#: ../gtk/setupwizard.c:303 #, fuzzy msgid "Username: (*)" msgstr "Brukernavn:" -#: ../gtk/setupwizard.c:301 +#: ../gtk/setupwizard.c:305 #, fuzzy msgid "Password: (*)" msgstr "Passord:" -#: ../gtk/setupwizard.c:303 +#: ../gtk/setupwizard.c:307 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:305 +#: ../gtk/setupwizard.c:309 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:369 +#: ../gtk/setupwizard.c:373 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:380 +#: ../gtk/setupwizard.c:384 msgid "Thank you. Your account is now configured and ready for use." msgstr "Takk. Ditt konto er nå satt opp og klart til bruk." -#: ../gtk/setupwizard.c:388 +#: ../gtk/setupwizard.c:392 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:564 +#: ../gtk/setupwizard.c:572 +#, fuzzy +msgid "SIP account configuration assistant" +msgstr "Brukerkontoveiviser" + +#: ../gtk/setupwizard.c:590 msgid "Welcome to the account setup assistant" msgstr "Velkommen til brukerkontoveiviseren" -#: ../gtk/setupwizard.c:569 +#: ../gtk/setupwizard.c:595 msgid "Account setup assistant" msgstr "Brukerkontoveiviser" -#: ../gtk/setupwizard.c:575 +#: ../gtk/setupwizard.c:601 #, fuzzy msgid "Configure your account (step 1/1)" msgstr "Konfigurer en SIP konto" -#: ../gtk/setupwizard.c:580 +#: ../gtk/setupwizard.c:606 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:584 +#: ../gtk/setupwizard.c:610 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:593 +#: ../gtk/setupwizard.c:619 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:598 +#: ../gtk/setupwizard.c:624 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:602 +#: ../gtk/setupwizard.c:628 #, fuzzy msgid "Terminating" msgstr "Lägg på" @@ -627,135 +642,150 @@ msgstr "ICE filter" msgid "Direct or through server" msgstr "" -#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:261 ../gtk/incall_view.c:272 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:286 +#: ../gtk/incall_view.c:267 ../gtk/incall_view.c:268 +#, c-format +msgid "%ix%i" +msgstr "" + +#: ../gtk/incall_view.c:297 #, c-format msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:395 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:476 +#: ../gtk/incall_view.c:487 msgid "Calling..." msgstr "Ringer..." -#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:700 msgid "00::00::00" msgstr "00:00:00" -#: ../gtk/incall_view.c:490 +#: ../gtk/incall_view.c:501 msgid "Incoming call" msgstr "Innkommende samtale" -#: ../gtk/incall_view.c:527 +#: ../gtk/incall_view.c:538 msgid "good" msgstr "" -#: ../gtk/incall_view.c:529 +#: ../gtk/incall_view.c:540 msgid "average" msgstr "" -#: ../gtk/incall_view.c:531 +#: ../gtk/incall_view.c:542 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:533 +#: ../gtk/incall_view.c:544 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:535 +#: ../gtk/incall_view.c:546 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:547 ../gtk/incall_view.c:563 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:651 +#: ../gtk/incall_view.c:662 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:657 +#: ../gtk/incall_view.c:668 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:663 +#: ../gtk/incall_view.c:674 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:674 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In call" msgstr "I samtale med" -#: ../gtk/incall_view.c:718 +#: ../gtk/incall_view.c:731 msgid "Paused call" msgstr "Pauset samtale" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:744 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i:%02i:%02i" -#: ../gtk/incall_view.c:748 +#: ../gtk/incall_view.c:762 msgid "Call ended." msgstr "Samtale avsluttet." -#: ../gtk/incall_view.c:778 +#: ../gtk/incall_view.c:793 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:796 #, fuzzy msgid "Transfer done." msgstr "Overfører" -#: ../gtk/incall_view.c:784 +#: ../gtk/incall_view.c:799 #, fuzzy msgid "Transfer failed." msgstr "Overfører" -#: ../gtk/incall_view.c:828 +#: ../gtk/incall_view.c:843 msgid "Resume" msgstr "Fortsett" -#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:850 ../gtk/main.ui.h:9 msgid "Pause" msgstr "Pause" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, fuzzy msgid "(Paused)" msgstr "Pause" -#: ../gtk/loginframe.c:93 +#: ../gtk/loginframe.c:88 #, c-format msgid "Please enter login information for %s" msgstr "Skriv inn påloggingsinformasjon for %s:" +#: ../gtk/config-fetching.c:57 +#, fuzzy, c-format +msgid "fetching from %s" +msgstr "Inkommande samtal från %s" + +#: ../gtk/config-fetching.c:73 +#, c-format +msgid "Downloading of remote configuration from %s failed." +msgstr "" + #: ../gtk/main.ui.h:1 #, fuzzy msgid "Callee name" @@ -802,91 +832,92 @@ msgid "_Options" msgstr "_Alternativer" #: ../gtk/main.ui.h:18 +#, fuzzy +msgid "Set configuration URI" +msgstr "Bekreftelse" + +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "Vis video av deg selv" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "_Hjelp" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "Vis avlusningsvindu" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "H_jemmeside" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "Sjekk _Oppdateringer" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 #, fuzzy msgid "Account assistant" msgstr "Brukerkontoveiviser" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "Sip adresse eller telefonnummer:" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "Start en ny samtale" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:28 msgid "Contacts" msgstr "Kontakter" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 -msgid "Add" -msgstr "Legg til" - -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 -msgid "Edit" -msgstr "Rediger" - -#: ../gtk/main.ui.h:30 +#: ../gtk/main.ui.h:29 msgid "Search" msgstr "Søk" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Add contacts from directory" msgstr "Legg til kontakter fra katalogen" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contact" msgstr "Legg til kontakt" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Recent calls" msgstr "I samtale" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "My current identity:" msgstr "Min nåværende identitet:" -#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:34 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Brukernavn" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Passord" -#: ../gtk/main.ui.h:37 +#: ../gtk/main.ui.h:36 msgid "Internet connection:" msgstr "Internet forbindelse:" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Automatically log me in" msgstr "Logg meg på automatisk" +#: ../gtk/main.ui.h:38 ../gtk/password.ui.h:3 +msgid "UserID" +msgstr "BrukerID" + #: ../gtk/main.ui.h:39 msgid "Login information" msgstr "Innlogginsinformasjon" @@ -934,6 +965,7 @@ msgstr "" "(rfc3261)." #: ../gtk/about.ui.h:5 +#, fuzzy msgid "" "fr: Simon Morlat\n" "en: Simon Morlat and Delphine Perreau\n" @@ -946,6 +978,7 @@ msgid "" "pl: Robert Nasiadek \n" "cs: Petr Pisar \n" "hu: anonymous\n" +"he: Eli Zaretskii \n" msgstr "" "fr: Simon Morlat\n" "en: Simon Morlat og Delphine Perreau\n" @@ -991,10 +1024,6 @@ msgstr "Linphone - Autorisering kreves" msgid "Please enter the domain password" msgstr "Skriv inn passordet for domenet" -#: ../gtk/password.ui.h:3 -msgid "UserID" -msgstr "BrukerID" - #: ../gtk/call_logs.ui.h:1 msgid "Call history" msgstr "Samtalehistorikk" @@ -1032,305 +1061,372 @@ msgid "Looks like sip:" msgstr "Ser ut som sip:" #: ../gtk/sip_account.ui.h:7 -msgid "Route (optional):" -msgstr "Route (valgfritt):" - -#: ../gtk/sip_account.ui.h:8 msgid "Registration duration (sec):" msgstr "Registreringsfrekvens (sek.):" +#: ../gtk/sip_account.ui.h:8 +#, fuzzy +msgid "Contact params (optional):" +msgstr "Route (valgfritt):" + #: ../gtk/sip_account.ui.h:9 +msgid "Route (optional):" +msgstr "Route (valgfritt):" + +#: ../gtk/sip_account.ui.h:10 +#, fuzzy +msgid "Transport" +msgstr "Transport" + +#: ../gtk/sip_account.ui.h:11 msgid "Register" msgstr "" -#: ../gtk/sip_account.ui.h:10 +#: ../gtk/sip_account.ui.h:12 msgid "Publish presence information" msgstr "Publiser tilstedestatus" -#: ../gtk/sip_account.ui.h:11 +#: ../gtk/sip_account.ui.h:13 msgid "Configure a SIP account" msgstr "Konfigurer en SIP konto" #: ../gtk/parameters.ui.h:1 +msgid "anonymous" +msgstr "" + +#: ../gtk/parameters.ui.h:2 +msgid "GSSAPI" +msgstr "" + +#: ../gtk/parameters.ui.h:3 +msgid "SASL" +msgstr "" + +#: ../gtk/parameters.ui.h:4 msgid "default soundcard" msgstr "standard lydkort" -#: ../gtk/parameters.ui.h:2 +#: ../gtk/parameters.ui.h:5 msgid "a sound card" msgstr "ett lydkort" -#: ../gtk/parameters.ui.h:3 +#: ../gtk/parameters.ui.h:6 msgid "default camera" msgstr "standard kamera" -#: ../gtk/parameters.ui.h:4 +#: ../gtk/parameters.ui.h:7 msgid "CIF" msgstr "CIF" -#: ../gtk/parameters.ui.h:5 +#: ../gtk/parameters.ui.h:8 msgid "Audio codecs" msgstr "Lyd kodek" -#: ../gtk/parameters.ui.h:6 +#: ../gtk/parameters.ui.h:9 msgid "Video codecs" msgstr "Video kodek" -#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:10 ../gtk/keypad.ui.h:5 msgid "C" msgstr "C" -#: ../gtk/parameters.ui.h:8 +#: ../gtk/parameters.ui.h:11 #, fuzzy msgid "SIP (UDP)" msgstr "SIP (UDP):" -#: ../gtk/parameters.ui.h:9 +#: ../gtk/parameters.ui.h:12 #, fuzzy msgid "SIP (TCP)" msgstr "SIP (TCP):" -#: ../gtk/parameters.ui.h:10 +#: ../gtk/parameters.ui.h:13 #, fuzzy msgid "SIP (TLS)" msgstr "SIP (TCP):" -#: ../gtk/parameters.ui.h:11 +#: ../gtk/parameters.ui.h:14 msgid "Settings" msgstr "Innstillinger" -#: ../gtk/parameters.ui.h:12 +#: ../gtk/parameters.ui.h:15 msgid "Set Maximum Transmission Unit:" msgstr "Velg MTU (Maximum Transmission Unit):" -#: ../gtk/parameters.ui.h:13 +#: ../gtk/parameters.ui.h:16 msgid "Send DTMFs as SIP info" msgstr "Send DTMF som SIP-info" -#: ../gtk/parameters.ui.h:14 +#: ../gtk/parameters.ui.h:17 msgid "Use IPv6 instead of IPv4" msgstr "Bruk IPv6 istedet for IPv4" -#: ../gtk/parameters.ui.h:15 +#: ../gtk/parameters.ui.h:18 msgid "Transport" msgstr "Transport" -#: ../gtk/parameters.ui.h:16 +#: ../gtk/parameters.ui.h:19 msgid "Media encryption type" msgstr "" -#: ../gtk/parameters.ui.h:17 +#: ../gtk/parameters.ui.h:20 msgid "Video RTP/UDP:" msgstr "Video RTP/UDP:" -#: ../gtk/parameters.ui.h:18 +#: ../gtk/parameters.ui.h:21 msgid "Audio RTP/UDP:" msgstr "Lyd RTP/UDP:" -#: ../gtk/parameters.ui.h:19 -msgid "DSCP fields" -msgstr "" - -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:22 msgid "Fixed" msgstr "" -#: ../gtk/parameters.ui.h:21 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:22 +#: ../gtk/parameters.ui.h:23 msgid "Media encryption is mandatory" msgstr "" -#: ../gtk/parameters.ui.h:23 +#: ../gtk/parameters.ui.h:24 +msgid "Tunnel" +msgstr "" + +#: ../gtk/parameters.ui.h:25 +msgid "DSCP fields" +msgstr "" + +#: ../gtk/parameters.ui.h:26 +msgid "SIP/TCP port" +msgstr "" + +#: ../gtk/parameters.ui.h:27 +msgid "SIP/UDP port" +msgstr "" + +#: ../gtk/parameters.ui.h:28 msgid "Network protocol and ports" msgstr "" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:29 msgid "Direct connection to the Internet" msgstr "Tilkoblet Internett direkte" -#: ../gtk/parameters.ui.h:25 -msgid "Behind NAT / Firewall (specify gateway IP below)" +#: ../gtk/parameters.ui.h:30 +#, fuzzy +msgid "Behind NAT / Firewall (specify gateway IP )" msgstr "Bak NAT / Brannmur (spesifiser gateway IP under)" -#: ../gtk/parameters.ui.h:26 -msgid "Public IP address:" -msgstr "Offentlig IP-addresse:" - -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:31 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "Bak NAT / Brannmur (bruk STUN for å avgjøre)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:32 #, fuzzy msgid "Behind NAT / Firewall (use ICE)" msgstr "Bak NAT / Brannmur (bruk STUN for å avgjøre)" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:33 #, fuzzy msgid "Behind NAT / Firewall (use uPnP)" msgstr "Bak NAT / Brannmur (bruk STUN for å avgjøre)" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:34 +msgid "Public IP address:" +msgstr "Offentlig IP-addresse:" + +#: ../gtk/parameters.ui.h:35 msgid "Stun server:" msgstr "STUN tjener:" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:36 msgid "NAT and Firewall" msgstr "NAT og Brannvegg" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:37 msgid "Network settings" msgstr "Nettverksinnstillinger" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:38 msgid "Ring sound:" msgstr "Ringelyd:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:39 msgid "ALSA special device (optional):" msgstr "Spesiell ALSA enhet (valgfritt):" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:40 msgid "Capture device:" msgstr "Mikrofonenhet:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:41 msgid "Ring device:" msgstr "Ringe-enhet:" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:42 msgid "Playback device:" msgstr "Avspillingsenhet:" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:43 msgid "Enable echo cancellation" msgstr "Bruk ekko-kansellering" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:44 msgid "Audio" msgstr "Lyd" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:45 msgid "Video input device:" msgstr "Videoenhet:" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:46 msgid "Prefered video resolution:" msgstr "Foretrukke video-oppløsning:" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:47 +#, fuzzy +msgid "Video output method:" +msgstr "Videoenhet:" + +#: ../gtk/parameters.ui.h:48 msgid "Video" msgstr "Video" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:49 msgid "Multimedia settings" msgstr "Multimediainnstillinger" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:50 msgid "This section defines your SIP address when not using a SIP account" msgstr "Denne seksjonen velger SIP-addresse når du ikke bruker en SIP-konto" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:51 msgid "Your display name (eg: John Doe):" msgstr "Vist navn (eks: Ola Nordmann):" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:52 msgid "Your username:" msgstr "Ditt brukernavn:" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:53 msgid "Your resulting SIP address:" msgstr "Din resulterende SIP addresse:" -#: ../gtk/parameters.ui.h:48 +#: ../gtk/parameters.ui.h:54 msgid "Default identity" msgstr "Standard identitet" -#: ../gtk/parameters.ui.h:49 +#: ../gtk/parameters.ui.h:55 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:56 +msgid "Add" +msgstr "Legg til" + +#: ../gtk/parameters.ui.h:57 +msgid "Edit" +msgstr "Rediger" + +#: ../gtk/parameters.ui.h:58 msgid "Remove" msgstr "Fjern" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:59 msgid "Proxy accounts" msgstr "Proxy kontoer" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:60 msgid "Erase all passwords" msgstr "Slett alle passord" -#: ../gtk/parameters.ui.h:55 +#: ../gtk/parameters.ui.h:61 msgid "Privacy" msgstr "Personvern" -#: ../gtk/parameters.ui.h:56 +#: ../gtk/parameters.ui.h:62 msgid "Manage SIP Accounts" msgstr "Behandle SIP-kontoer" -#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Aktiver" -#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Deaktiver" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:65 msgid "Codecs" msgstr "Kodeker" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:66 msgid "0 stands for \"unlimited\"" msgstr "0 betyr \"ubegrenset\"" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:67 msgid "Upload speed limit in Kbit/sec:" msgstr "Maks opplastningshastighet i Kbit/sek:" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:68 msgid "Download speed limit in Kbit/sec:" msgstr "Nedlastningsbegrensning i Kbit/sek:" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:69 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:70 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:71 msgid "Bandwidth control" msgstr "Båndbreddekontrol" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:72 msgid "Codecs" msgstr "Kodek" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:73 msgid "Language" msgstr "Språk" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:74 msgid "Show advanced settings" msgstr "Vis avanserte innstillinger" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:75 msgid "Level" msgstr "Nivå" -#: ../gtk/parameters.ui.h:70 +#: ../gtk/parameters.ui.h:76 msgid "User interface" msgstr "Brukergrensesnitt" -#: ../gtk/parameters.ui.h:71 +#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2 +#, fuzzy +msgid "Server address:" +msgstr "SIP Adress" + +#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3 +#, fuzzy +msgid "Authentication method:" +msgstr "Autorisering kreves" + +#: ../gtk/parameters.ui.h:80 +msgid "label" +msgstr "etikett" + +#: ../gtk/parameters.ui.h:81 +#, fuzzy +msgid "LDAP Account setup" +msgstr "Proxy kontoer" + +#: ../gtk/parameters.ui.h:82 +msgid "LDAP" +msgstr "" + +#: ../gtk/parameters.ui.h:83 msgid "Done" msgstr "Ferdig" @@ -1356,7 +1452,7 @@ msgstr "Vennligst vent" #: ../gtk/dscp_settings.ui.h:1 #, fuzzy -msgid "Dscp settings" +msgid "DSCP settings" msgstr "Innstillinger" #: ../gtk/dscp_settings.ui.h:2 @@ -1413,6 +1509,15 @@ msgid "Round trip time" msgstr "" #: ../gtk/call_statistics.ui.h:9 +msgid "Video resolution received" +msgstr "" + +#: ../gtk/call_statistics.ui.h:10 +#, fuzzy +msgid "Video resolution sent" +msgstr "Foretrukke video-oppløsning:" + +#: ../gtk/call_statistics.ui.h:11 #, fuzzy msgid "Call statistics and information" msgstr "Kontaktinformasjon" @@ -1498,19 +1603,140 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:228 +#: ../gtk/ldap.ui.h:1 +#, fuzzy +msgid "LDAP Settings" +msgstr "Innstillinger" + +#: ../gtk/ldap.ui.h:6 +msgid "Use TLS Connection" +msgstr "" + +#: ../gtk/ldap.ui.h:7 +msgid "Not yet available" +msgstr "" + +#: ../gtk/ldap.ui.h:8 +#, fuzzy +msgid "Connection" +msgstr "Kodeker" + +#: ../gtk/ldap.ui.h:9 +msgid "Bind DN" +msgstr "" + +#: ../gtk/ldap.ui.h:10 +msgid "Authname" +msgstr "" + +#: ../gtk/ldap.ui.h:11 +msgid "Realm" +msgstr "" + +#: ../gtk/ldap.ui.h:12 +#, fuzzy +msgid "SASL" +msgstr "Lyd" + +#: ../gtk/ldap.ui.h:13 +msgid "Base object:" +msgstr "" + +#: ../gtk/ldap.ui.h:15 +#, no-c-format +msgid "Filter (%s for name):" +msgstr "" + +#: ../gtk/ldap.ui.h:16 +msgid "Name Attribute:" +msgstr "" + +#: ../gtk/ldap.ui.h:17 +#, fuzzy +msgid "SIP address attribute:" +msgstr "SIP Adress" + +#: ../gtk/ldap.ui.h:18 +msgid "Attributes to query:" +msgstr "" + +#: ../gtk/ldap.ui.h:19 +#, fuzzy +msgid "Search" +msgstr "Søk noen" + +#: ../gtk/ldap.ui.h:20 +msgid "Timeout for search:" +msgstr "" + +#: ../gtk/ldap.ui.h:21 +msgid "Max results:" +msgstr "" + +#: ../gtk/ldap.ui.h:22 +msgid "Follow Aliases" +msgstr "" + +#: ../gtk/ldap.ui.h:23 +#, fuzzy +msgid "Miscellaneous" +msgstr "Video" + +#: ../gtk/ldap.ui.h:24 +msgid "ANONYMOUS" +msgstr "" + +#: ../gtk/ldap.ui.h:25 +msgid "SIMPLE" +msgstr "" + +#: ../gtk/ldap.ui.h:26 +msgid "DIGEST-MD5" +msgstr "" + +#: ../gtk/ldap.ui.h:27 +msgid "NTLM" +msgstr "" + +#: ../gtk/config-uri.ui.h:1 +msgid "Specifying a remote configuration URI" +msgstr "" + +#: ../gtk/config-uri.ui.h:2 +msgid "" +"This dialog allows to set an http or https address when configuration is to " +"be fetched at startup.\n" +"Please enter or modify the configuration URI below. After clicking OK, " +"Linphone will restart automatically in order to fetch and take into account " +"the new configuration. " +msgstr "" + +#: ../gtk/config-uri.ui.h:4 +msgid "https://" +msgstr "" + +#: ../gtk/provisioning-fetch.ui.h:1 +#, fuzzy +msgid "Configuring..." +msgstr "Tilknytter..." + +#: ../gtk/provisioning-fetch.ui.h:2 +msgid "Please wait while fetching configuration from server..." +msgstr "" + +#: ../coreapi/linphonecore.c:238 msgid "aborted" msgstr "avbrutt" -#: ../coreapi/linphonecore.c:231 +#: ../coreapi/linphonecore.c:241 msgid "completed" msgstr "Fullført" -#: ../coreapi/linphonecore.c:234 +#: ../coreapi/linphonecore.c:244 msgid "missed" msgstr "ubesvart" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:249 #, c-format msgid "" "%s at %s\n" @@ -1525,105 +1751,77 @@ msgstr "" "Status: %s\n" "Lengde: %i min %i sek\n" -#: ../coreapi/linphonecore.c:240 +#: ../coreapi/linphonecore.c:250 msgid "Outgoing call" msgstr "Utgående samtale" -#: ../coreapi/linphonecore.c:1321 +#: ../coreapi/linphonecore.c:1264 msgid "Ready" msgstr "Klar" -#: ../coreapi/linphonecore.c:2205 +#: ../coreapi/linphonecore.c:1372 +#, fuzzy +msgid "Configuring" +msgstr "Bekreftelse" + +#: ../coreapi/linphonecore.c:2331 msgid "Looking for telephone number destination..." msgstr "Ser etter telefonnummer for destinasjonen..." -#: ../coreapi/linphonecore.c:2208 +#: ../coreapi/linphonecore.c:2334 msgid "Could not resolve this number." msgstr "Kan ikke tilkoble dette nummeret." -#: ../coreapi/linphonecore.c:2252 -msgid "" -"Could not parse given sip address. A sip url usually looks like sip:" -"user@domain" -msgstr "" -"Klarer ikke å tolke angitt SIP-adresse. En SIP-adresse er vanligvis ut som " -"sip: brukernavn@domenenavn" - -#: ../coreapi/linphonecore.c:2453 +#. must be known at that time +#: ../coreapi/linphonecore.c:2609 msgid "Contacting" msgstr "Tilknytter" -#: ../coreapi/linphonecore.c:2460 +#: ../coreapi/linphonecore.c:2616 msgid "Could not call" msgstr "Kunne ikke ringe" -#: ../coreapi/linphonecore.c:2570 +#: ../coreapi/linphonecore.c:2765 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Beklager, du har nådd maksimalt antall samtidige samtaler" -#: ../coreapi/linphonecore.c:2752 +#: ../coreapi/linphonecore.c:2952 msgid "is contacting you" msgstr "Kontakter deg." -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid " and asked autoanswer." msgstr " og ba om autosvar." -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2820 +#: ../coreapi/linphonecore.c:3020 msgid "Modifying call parameters..." msgstr "Endrer ringeparametre..." -#: ../coreapi/linphonecore.c:3159 +#: ../coreapi/linphonecore.c:3362 msgid "Connected." msgstr "Tilkoblet" -#: ../coreapi/linphonecore.c:3187 +#: ../coreapi/linphonecore.c:3388 msgid "Call aborted" msgstr "Samtale avbrutt" -#: ../coreapi/linphonecore.c:3378 +#: ../coreapi/linphonecore.c:3581 msgid "Could not pause the call" msgstr "Kunne ikke pause samtalen" -#: ../coreapi/linphonecore.c:3383 +#: ../coreapi/linphonecore.c:3586 msgid "Pausing the current call..." msgstr "Pauser nåværende samtale" -#: ../coreapi/misc.c:148 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the pcm oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -"'modprobe snd-pcm-oss' as root to load it." -msgstr "" -"Din datamaskin ser ut til å bruke ALSA drivere for lyd.\n" -"Dette er det beste alternativet. Det ser ut til at pcm oss " -"emulasjonsmodulen\n" -"mangler og linphone trenger den. Vennligst kjør\n" -"'modprobe snd-pcm-oss' som root for å laste den." - -#: ../coreapi/misc.c:151 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the mixer oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -" 'modprobe snd-mixer-oss' as root to load it." -msgstr "" -"Din datamaskin ser ut til å bruke ALSA drivere for lyd.\n" -"Dette er det beste alternativet. Det ser ut til at mixermodulen for oss " -"emulering\n" -"mangler og linphone trenger den. Vennligst kjør\n" -"'modprobe snd-mixer-oss' som root for å laste den." - -#: ../coreapi/misc.c:496 +#: ../coreapi/misc.c:394 msgid "Stun lookup in progress..." msgstr "STUN oppslag pågår..." -#: ../coreapi/misc.c:630 +#: ../coreapi/misc.c:576 msgid "ICE local candidates gathering in progress..." msgstr "" @@ -1672,10 +1870,15 @@ msgid "Pending" msgstr "Pågående" #: ../coreapi/friend.c:66 +#, fuzzy +msgid "Vacation" +msgstr "Varighet" + +#: ../coreapi/friend.c:68 msgid "Unknown-bug" msgstr "Ukjent feil" -#: ../coreapi/proxy.c:204 +#: ../coreapi/proxy.c:209 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." @@ -1683,7 +1886,7 @@ msgstr "" "SIP proxy adressen du har angitt er ugyldig, den må begynne med \"sip:\" " "etterfult av vertsnavn." -#: ../coreapi/proxy.c:210 +#: ../coreapi/proxy.c:215 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" @@ -1691,134 +1894,166 @@ msgstr "" "SIP adressen du har angitt er feil. Adressen bør se ut som sip: " "brukernavn@domenenavn, f.eks sip:ola@eksempel.no" -#: ../coreapi/proxy.c:1069 +#: ../coreapi/proxy.c:1125 #, c-format msgid "Could not login as %s" msgstr "Ikke ikke logge inn som %s" -#: ../coreapi/callbacks.c:286 +#: ../coreapi/callbacks.c:289 msgid "Remote ringing." msgstr "Ringer hos motparten." -#: ../coreapi/callbacks.c:306 +#: ../coreapi/callbacks.c:305 #, fuzzy msgid "Remote ringing..." msgstr "Ringer hos motparten." -#: ../coreapi/callbacks.c:317 +#: ../coreapi/callbacks.c:316 msgid "Early media." msgstr "Tidlig media" -#: ../coreapi/callbacks.c:368 +#: ../coreapi/callbacks.c:367 #, c-format msgid "Call with %s is paused." msgstr "Samtalen med %s er pauset." -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:380 #, c-format msgid "Call answered by %s - on hold." msgstr "Samtale besvart av %s - på vent." -#: ../coreapi/callbacks.c:392 +#: ../coreapi/callbacks.c:391 msgid "Call resumed." msgstr "Samtale gjenopptatt." -#: ../coreapi/callbacks.c:397 +#: ../coreapi/callbacks.c:396 #, c-format msgid "Call answered by %s." msgstr "Samtale besvart av %s." -#: ../coreapi/callbacks.c:412 +#: ../coreapi/callbacks.c:414 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:460 +#: ../coreapi/callbacks.c:463 #, fuzzy msgid "We have been resumed." msgstr "Vi har blitt gjenopptatt..." -#: ../coreapi/callbacks.c:469 +#: ../coreapi/callbacks.c:471 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:475 +#: ../coreapi/callbacks.c:487 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:558 msgid "Call terminated." msgstr "Samtale avsluttet." -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:586 msgid "User is busy." msgstr "Brukeren er opptatt." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:587 msgid "User is temporarily unavailable." msgstr "Brukeren er midlertidig ikke tilgjengelig." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:558 +#: ../coreapi/callbacks.c:589 msgid "User does not want to be disturbed." msgstr "Brukeren vil ikke bli forstyrret." -#: ../coreapi/callbacks.c:559 +#: ../coreapi/callbacks.c:590 msgid "Call declined." msgstr "Samtale avvist." -#: ../coreapi/callbacks.c:571 +#: ../coreapi/callbacks.c:603 msgid "No response." msgstr "Ikke noe svar." -#: ../coreapi/callbacks.c:575 +#: ../coreapi/callbacks.c:607 msgid "Protocol error." msgstr "Protokollfeil." -#: ../coreapi/callbacks.c:591 +#: ../coreapi/callbacks.c:623 msgid "Redirected" msgstr "Omdirigert" -#: ../coreapi/callbacks.c:627 +#: ../coreapi/callbacks.c:665 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:633 +#: ../coreapi/callbacks.c:677 msgid "Call failed." msgstr "Samtale feilet." -#: ../coreapi/callbacks.c:737 +#: ../coreapi/callbacks.c:751 #, c-format msgid "Registration on %s successful." msgstr "Registrering hos %s lykkes." -#: ../coreapi/callbacks.c:738 +#: ../coreapi/callbacks.c:752 #, c-format msgid "Unregistration on %s done." msgstr "Avregistrering hos %s lykkes." -#: ../coreapi/callbacks.c:758 +#: ../coreapi/callbacks.c:772 msgid "no response timeout" msgstr "ingen svar innen angitt tid" -#: ../coreapi/callbacks.c:761 +#: ../coreapi/callbacks.c:775 #, c-format msgid "Registration on %s failed: %s" msgstr "Registrering hos %s mislykkes: %s" -#: ../coreapi/linphonecall.c:129 +#: ../coreapi/callbacks.c:785 +msgid "Service unavailable, retrying" +msgstr "" + +#: ../coreapi/linphonecall.c:142 #, fuzzy, c-format msgid "Authentication token is %s" msgstr "Autorisering kreves" -#: ../coreapi/linphonecall.c:2355 +#: ../coreapi/linphonecall.c:2678 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "Du har %i ubesvarte anrop." msgstr[1] "Du har %i missade samtal" -#~ msgid "label" -#~ msgstr "etikett" +#~ msgid "" +#~ "Could not parse given sip address. A sip url usually looks like sip:" +#~ "user@domain" +#~ msgstr "" +#~ "Klarer ikke å tolke angitt SIP-adresse. En SIP-adresse er vanligvis ut " +#~ "som sip: brukernavn@domenenavn" + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the pcm oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ "'modprobe snd-pcm-oss' as root to load it." +#~ msgstr "" +#~ "Din datamaskin ser ut til å bruke ALSA drivere for lyd.\n" +#~ "Dette er det beste alternativet. Det ser ut til at pcm oss " +#~ "emulasjonsmodulen\n" +#~ "mangler og linphone trenger den. Vennligst kjør\n" +#~ "'modprobe snd-pcm-oss' som root for å laste den." + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the mixer oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ " 'modprobe snd-mixer-oss' as root to load it." +#~ msgstr "" +#~ "Din datamaskin ser ut til å bruke ALSA drivere for lyd.\n" +#~ "Dette er det beste alternativet. Det ser ut til at mixermodulen for oss " +#~ "emulering\n" +#~ "mangler og linphone trenger den. Vennligst kjør\n" +#~ "'modprobe snd-mixer-oss' som root for å laste den." #~ msgid "Keypad" #~ msgstr "Tastatur" @@ -1850,9 +2085,6 @@ msgstr[1] "Du har %i missade samtal" #~ msgid "Verifying" #~ msgstr "Verifiserer" -#~ msgid "Confirmation" -#~ msgstr "Bekreftelse" - #~ msgid "Creating your account" #~ msgstr "Lager brukerkontoen din" @@ -1885,9 +2117,6 @@ msgstr[1] "Du har %i missade samtal" #~ msgid "No common codecs" #~ msgstr "Ingen felles kodek" -#~ msgid "Authentication failure" -#~ msgstr "Autorisering kreves" - #~ msgid "Windows" #~ msgstr "Vinduer" @@ -2157,9 +2386,6 @@ msgstr[1] "Du har %i missade samtal" #~ "Din dator er tilkoblet ett IPv6 nettverk. Linphone bruker IPv6 som " #~ "standard. Oppdater oppsettet om du vil bruke IPv6. " -#~ msgid "Incoming call from %s" -#~ msgstr "Inkommande samtal från %s" - #~ msgid "Assistant" #~ msgstr "Assistent" @@ -2256,9 +2482,6 @@ msgstr[1] "Du har %i missade samtal" #~ msgid "Unknown" #~ msgstr "Okänd" -#~ msgid "SIP address" -#~ msgstr "SIP Adress" - #~ msgid "Bresilian" #~ msgstr "Brasiliansk" diff --git a/po/nl.po b/po/nl.po index fcd4ca42b..26b7a31f5 100644 --- a/po/nl.po +++ b/po/nl.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: nl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-24 14:04+0200\n" +"POT-Creation-Date: 2014-02-14 14:57+0100\n" "PO-Revision-Date: 2007-09-05 10:40+0200\n" "Last-Translator: Hendrik-Jan Heins \n" "Language-Team: Nederlands \n" @@ -19,12 +19,12 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:969 #, fuzzy, c-format msgid "Call %s" msgstr "Oproepgeschiedenis" -#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:970 #, c-format msgid "Send text to %s" msgstr "" @@ -99,46 +99,51 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "Kon pixmap bestand %s niet vinden" -#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:363 ../gtk/friendlist.c:919 msgid "Invalid sip contact !" msgstr "" -#: ../gtk/main.c:92 +#: ../gtk/main.c:102 msgid "log to stdout some debug information while running." msgstr "" -#: ../gtk/main.c:99 +#: ../gtk/main.c:109 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:106 +#: ../gtk/main.c:116 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:113 +#: ../gtk/main.c:123 msgid "Start only in the system tray, do not show the main interface." msgstr "" -#: ../gtk/main.c:120 +#: ../gtk/main.c:130 msgid "address to call right now" msgstr "" -#: ../gtk/main.c:127 +#: ../gtk/main.c:137 msgid "if set automatically answer incoming calls" msgstr "" -#: ../gtk/main.c:134 +#: ../gtk/main.c:144 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" -#: ../gtk/main.c:515 +#: ../gtk/main.c:151 +#, fuzzy +msgid "Configuration file" +msgstr "Informatie" + +#: ../gtk/main.c:573 #, fuzzy, c-format msgid "Call with %s" msgstr "Chat met %s" -#: ../gtk/main.c:946 +#: ../gtk/main.c:1150 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -147,240 +152,241 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1023 +#: ../gtk/main.c:1227 #, c-format msgid "" "Please enter your password for username %s\n" -" at domain %s:" +" at realm %s:" msgstr "" -#: ../gtk/main.c:1126 +#: ../gtk/main.c:1339 #, fuzzy msgid "Call error" msgstr "Linphone - Oproepgeschiedenis" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 +#: ../gtk/main.c:1342 ../coreapi/linphonecore.c:3408 msgid "Call ended" msgstr "Oproep beeindigd" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 +#: ../gtk/main.c:1345 ../coreapi/linphonecore.c:250 msgid "Incoming call" msgstr "Inkomende oproep" -#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 +#: ../gtk/main.c:1347 ../gtk/incall_view.c:508 ../gtk/main.ui.h:5 msgid "Answer" msgstr "" -#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1349 ../gtk/main.ui.h:6 #, fuzzy msgid "Decline" msgstr "lijn" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy msgid "Call paused" msgstr "afgebroken" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy, c-format msgid "by %s" msgstr "Contactlijst" -#: ../gtk/main.c:1191 +#: ../gtk/main.c:1422 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1353 +#: ../gtk/main.c:1584 msgid "Website link" msgstr "" -#: ../gtk/main.c:1402 +#: ../gtk/main.c:1633 msgid "Linphone - a video internet phone" msgstr "" -#: ../gtk/main.c:1494 +#: ../gtk/main.c:1725 #, c-format msgid "%s (Default)" msgstr "" -#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 +#: ../gtk/main.c:2061 ../coreapi/callbacks.c:827 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1806 +#: ../gtk/main.c:2071 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1911 +#: ../gtk/main.c:2207 msgid "A free SIP video-phone" msgstr "Een Vrije SIP video-telefoon" -#: ../gtk/friendlist.c:469 +#: ../gtk/friendlist.c:505 #, fuzzy msgid "Add to addressbook" msgstr "Adresboek" -#: ../gtk/friendlist.c:643 +#: ../gtk/friendlist.c:691 msgid "Presence status" msgstr "Aanwezigheidsstatus" -#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:709 ../gtk/propertybox.c:556 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Naam" -#: ../gtk/friendlist.c:673 +#: ../gtk/friendlist.c:721 #, fuzzy msgid "Call" msgstr "Oproepgeschiedenis" -#: ../gtk/friendlist.c:678 +#: ../gtk/friendlist.c:726 #, fuzzy msgid "Chat" msgstr "Chat box" -#: ../gtk/friendlist.c:708 +#: ../gtk/friendlist.c:756 #, c-format msgid "Search in %s directory" msgstr "" -#: ../gtk/friendlist.c:924 +#: ../gtk/friendlist.c:971 #, fuzzy, c-format msgid "Edit contact '%s'" msgstr "Bewerk contactgegevens" -#: ../gtk/friendlist.c:925 +#: ../gtk/friendlist.c:972 #, c-format msgid "Delete contact '%s'" msgstr "" -#: ../gtk/friendlist.c:926 +#: ../gtk/friendlist.c:973 #, c-format msgid "Delete chat history of '%s'" msgstr "" -#: ../gtk/friendlist.c:977 +#: ../gtk/friendlist.c:1024 #, c-format msgid "Add new contact from %s directory" msgstr "" -#: ../gtk/propertybox.c:373 +#: ../gtk/propertybox.c:562 msgid "Rate (Hz)" msgstr "Frequentie (Hz)" -#: ../gtk/propertybox.c:379 +#: ../gtk/propertybox.c:568 msgid "Status" msgstr "Status" -#: ../gtk/propertybox.c:385 -msgid "Min bitrate (kbit/s)" +#: ../gtk/propertybox.c:574 +#, fuzzy +msgid "Bitrate (kbit/s)" msgstr "Minimale bitrate (kbit/s)" -#: ../gtk/propertybox.c:392 +#: ../gtk/propertybox.c:581 msgid "Parameters" msgstr "Parameters" -#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:624 ../gtk/propertybox.c:767 msgid "Enabled" msgstr "Aan" -#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:626 ../gtk/propertybox.c:767 msgid "Disabled" msgstr "Uit" -#: ../gtk/propertybox.c:624 +#: ../gtk/propertybox.c:813 msgid "Account" msgstr "Account" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:1057 msgid "English" msgstr "" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:1058 msgid "French" msgstr "" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:1059 msgid "Swedish" msgstr "" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:1060 msgid "Italian" msgstr "" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:1061 msgid "Spanish" msgstr "" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:1062 msgid "Brazilian Portugese" msgstr "" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:1063 msgid "Polish" msgstr "" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:1064 msgid "German" msgstr "" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:1065 msgid "Russian" msgstr "" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:1066 msgid "Japanese" msgstr "" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:1067 msgid "Dutch" msgstr "" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:1068 msgid "Hungarian" msgstr "" -#: ../gtk/propertybox.c:776 +#: ../gtk/propertybox.c:1069 msgid "Czech" msgstr "" -#: ../gtk/propertybox.c:777 +#: ../gtk/propertybox.c:1070 msgid "Chinese" msgstr "" -#: ../gtk/propertybox.c:778 +#: ../gtk/propertybox.c:1071 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:779 +#: ../gtk/propertybox.c:1072 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:780 +#: ../gtk/propertybox.c:1073 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:781 +#: ../gtk/propertybox.c:1074 msgid "Serbian" msgstr "" -#: ../gtk/propertybox.c:848 +#: ../gtk/propertybox.c:1141 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" -#: ../gtk/propertybox.c:934 +#: ../gtk/propertybox.c:1219 msgid "None" msgstr "Geen" -#: ../gtk/propertybox.c:938 +#: ../gtk/propertybox.c:1223 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:944 +#: ../gtk/propertybox.c:1229 msgid "ZRTP" msgstr "" @@ -442,110 +448,118 @@ msgstr "" msgid "I have already a sip account and I just want to use it" msgstr "" -#: ../gtk/setupwizard.c:85 +#: ../gtk/setupwizard.c:46 +msgid "I want to specify a remote configuration URI" +msgstr "" + +#: ../gtk/setupwizard.c:89 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:92 +#: ../gtk/setupwizard.c:96 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4 #, fuzzy msgid "Username:" msgstr "gebruikersnaam:" -#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:98 ../gtk/password.ui.h:4 ../gtk/ldap.ui.h:5 #, fuzzy msgid "Password:" msgstr "wachtwoord:" -#: ../gtk/setupwizard.c:114 +#: ../gtk/setupwizard.c:118 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:125 #, fuzzy msgid "Username*" msgstr "gebruikersnaam:" -#: ../gtk/setupwizard.c:122 +#: ../gtk/setupwizard.c:126 #, fuzzy msgid "Password*" msgstr "wachtwoord:" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:129 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:126 +#: ../gtk/setupwizard.c:130 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:302 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:299 +#: ../gtk/setupwizard.c:303 #, fuzzy msgid "Username: (*)" msgstr "gebruikersnaam:" -#: ../gtk/setupwizard.c:301 +#: ../gtk/setupwizard.c:305 #, fuzzy msgid "Password: (*)" msgstr "wachtwoord:" -#: ../gtk/setupwizard.c:303 +#: ../gtk/setupwizard.c:307 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:305 +#: ../gtk/setupwizard.c:309 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:369 +#: ../gtk/setupwizard.c:373 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:380 +#: ../gtk/setupwizard.c:384 msgid "Thank you. Your account is now configured and ready for use." msgstr "" -#: ../gtk/setupwizard.c:388 +#: ../gtk/setupwizard.c:392 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:564 +#: ../gtk/setupwizard.c:572 +msgid "SIP account configuration assistant" +msgstr "" + +#: ../gtk/setupwizard.c:590 msgid "Welcome to the account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:569 +#: ../gtk/setupwizard.c:595 msgid "Account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:575 +#: ../gtk/setupwizard.c:601 msgid "Configure your account (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:580 +#: ../gtk/setupwizard.c:606 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:584 +#: ../gtk/setupwizard.c:610 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:593 +#: ../gtk/setupwizard.c:619 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:598 +#: ../gtk/setupwizard.c:624 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:602 +#: ../gtk/setupwizard.c:628 msgid "Terminating" msgstr "" @@ -616,138 +630,153 @@ msgstr "Oproep geannuleerd." msgid "Direct or through server" msgstr "" -#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:261 ../gtk/incall_view.c:272 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:286 +#: ../gtk/incall_view.c:267 ../gtk/incall_view.c:268 +#, c-format +msgid "%ix%i" +msgstr "" + +#: ../gtk/incall_view.c:297 #, c-format msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:395 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:476 +#: ../gtk/incall_view.c:487 #, fuzzy msgid "Calling..." msgstr "Contactlijst" -#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:700 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:490 +#: ../gtk/incall_view.c:501 #, fuzzy msgid "Incoming call" msgstr "Inkomende oproep" -#: ../gtk/incall_view.c:527 +#: ../gtk/incall_view.c:538 msgid "good" msgstr "" -#: ../gtk/incall_view.c:529 +#: ../gtk/incall_view.c:540 msgid "average" msgstr "" -#: ../gtk/incall_view.c:531 +#: ../gtk/incall_view.c:542 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:533 +#: ../gtk/incall_view.c:544 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:535 +#: ../gtk/incall_view.c:546 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:547 ../gtk/incall_view.c:563 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:651 +#: ../gtk/incall_view.c:662 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:657 +#: ../gtk/incall_view.c:668 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:663 +#: ../gtk/incall_view.c:674 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:674 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 #, fuzzy msgid "In call" msgstr "Contactlijst" -#: ../gtk/incall_view.c:718 +#: ../gtk/incall_view.c:731 #, fuzzy msgid "Paused call" msgstr "Contactlijst" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:744 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:748 +#: ../gtk/incall_view.c:762 #, fuzzy msgid "Call ended." msgstr "Oproep beeindigd" -#: ../gtk/incall_view.c:778 +#: ../gtk/incall_view.c:793 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:796 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:784 +#: ../gtk/incall_view.c:799 #, fuzzy msgid "Transfer failed." msgstr "Oproep geannuleerd." -#: ../gtk/incall_view.c:828 +#: ../gtk/incall_view.c:843 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:850 ../gtk/main.ui.h:9 msgid "Pause" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 msgid "(Paused)" msgstr "" -#: ../gtk/loginframe.c:93 +#: ../gtk/loginframe.c:88 #, c-format msgid "Please enter login information for %s" msgstr "" +#: ../gtk/config-fetching.c:57 +#, fuzzy, c-format +msgid "fetching from %s" +msgstr "Inkomende oproep" + +#: ../gtk/config-fetching.c:73 +#, c-format +msgid "Downloading of remote configuration from %s failed." +msgstr "" + #: ../gtk/main.ui.h:1 #, fuzzy msgid "Callee name" @@ -797,101 +826,101 @@ msgid "_Options" msgstr "" #: ../gtk/main.ui.h:18 +#, fuzzy +msgid "Set configuration URI" +msgstr "Proxy/registratieserver registratieveld" + +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 #, fuzzy msgid "Enable self-view" msgstr "Video aan" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 #, fuzzy msgid "_Help" msgstr "Help" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 #, fuzzy msgid "SIP address or phone number:" msgstr "Geef het SIP adres of telefoonnummer in" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:28 #, fuzzy msgid "Contacts" msgstr "Verbinden" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 -#, fuzzy -msgid "Add" -msgstr "Adres" - -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 -msgid "Edit" -msgstr "Bewerken" - -#: ../gtk/main.ui.h:30 +#: ../gtk/main.ui.h:29 msgid "Search" msgstr "" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 #, fuzzy msgid "Add contacts from directory" msgstr "Contact informatie" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 #, fuzzy msgid "Add contact" msgstr "Bewerk contactgegevens" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Recent calls" msgstr "Inkomende oproep" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "My current identity:" msgstr "SIP-identiteit:" -#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:34 ../gtk/tunnel_config.ui.h:7 #, fuzzy msgid "Username" msgstr "gebruikersnaam:" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:8 #, fuzzy msgid "Password" msgstr "wachtwoord:" -#: ../gtk/main.ui.h:37 +#: ../gtk/main.ui.h:36 msgid "Internet connection:" msgstr "" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 #, fuzzy msgid "Automatically log me in" msgstr "Automatisch een geldige hostnaam raden" +#: ../gtk/main.ui.h:38 ../gtk/password.ui.h:3 +msgid "UserID" +msgstr "" + #: ../gtk/main.ui.h:39 #, fuzzy msgid "Login information" @@ -954,6 +983,7 @@ msgid "" "pl: Robert Nasiadek \n" "cs: Petr Pisar \n" "hu: anonymous\n" +"he: Eli Zaretskii \n" msgstr "" #: ../gtk/contact.ui.h:2 @@ -991,10 +1021,6 @@ msgstr "Authorisatie gevraagd" msgid "Please enter the domain password" msgstr "" -#: ../gtk/password.ui.h:3 -msgid "UserID" -msgstr "" - #: ../gtk/call_logs.ui.h:1 #, fuzzy msgid "Call history" @@ -1036,328 +1062,397 @@ msgid "Looks like sip:" msgstr "" #: ../gtk/sip_account.ui.h:7 -msgid "Route (optional):" -msgstr "Route (optioneel):" - -#: ../gtk/sip_account.ui.h:8 #, fuzzy msgid "Registration duration (sec):" msgstr "Registratieperiode:" +#: ../gtk/sip_account.ui.h:8 +#, fuzzy +msgid "Contact params (optional):" +msgstr "Route (optioneel):" + #: ../gtk/sip_account.ui.h:9 +msgid "Route (optional):" +msgstr "Route (optioneel):" + +#: ../gtk/sip_account.ui.h:10 +#, fuzzy +msgid "Transport" +msgstr "Contactlijst" + +#: ../gtk/sip_account.ui.h:11 msgid "Register" msgstr "" -#: ../gtk/sip_account.ui.h:10 +#: ../gtk/sip_account.ui.h:12 #, fuzzy msgid "Publish presence information" msgstr "Toon informatie over aanwezigheid:" -#: ../gtk/sip_account.ui.h:11 +#: ../gtk/sip_account.ui.h:13 msgid "Configure a SIP account" msgstr "" #: ../gtk/parameters.ui.h:1 -msgid "default soundcard" +msgid "anonymous" msgstr "" #: ../gtk/parameters.ui.h:2 -msgid "a sound card" +msgid "GSSAPI" msgstr "" #: ../gtk/parameters.ui.h:3 -msgid "default camera" +msgid "SASL" msgstr "" #: ../gtk/parameters.ui.h:4 -msgid "CIF" +msgid "default soundcard" msgstr "" #: ../gtk/parameters.ui.h:5 +msgid "a sound card" +msgstr "" + +#: ../gtk/parameters.ui.h:6 +msgid "default camera" +msgstr "" + +#: ../gtk/parameters.ui.h:7 +msgid "CIF" +msgstr "" + +#: ../gtk/parameters.ui.h:8 #, fuzzy msgid "Audio codecs" msgstr "Video codecs" -#: ../gtk/parameters.ui.h:6 +#: ../gtk/parameters.ui.h:9 #, fuzzy msgid "Video codecs" msgstr "Video codecs" -#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:10 ../gtk/keypad.ui.h:5 msgid "C" msgstr "" -#: ../gtk/parameters.ui.h:8 +#: ../gtk/parameters.ui.h:11 msgid "SIP (UDP)" msgstr "" -#: ../gtk/parameters.ui.h:9 +#: ../gtk/parameters.ui.h:12 msgid "SIP (TCP)" msgstr "" -#: ../gtk/parameters.ui.h:10 +#: ../gtk/parameters.ui.h:13 msgid "SIP (TLS)" msgstr "" -#: ../gtk/parameters.ui.h:11 +#: ../gtk/parameters.ui.h:14 msgid "Settings" msgstr "" -#: ../gtk/parameters.ui.h:12 +#: ../gtk/parameters.ui.h:15 msgid "Set Maximum Transmission Unit:" msgstr "" -#: ../gtk/parameters.ui.h:13 +#: ../gtk/parameters.ui.h:16 msgid "Send DTMFs as SIP info" msgstr "" -#: ../gtk/parameters.ui.h:14 +#: ../gtk/parameters.ui.h:17 msgid "Use IPv6 instead of IPv4" msgstr "" -#: ../gtk/parameters.ui.h:15 +#: ../gtk/parameters.ui.h:18 #, fuzzy msgid "Transport" msgstr "Contactlijst" -#: ../gtk/parameters.ui.h:16 +#: ../gtk/parameters.ui.h:19 msgid "Media encryption type" msgstr "" -#: ../gtk/parameters.ui.h:17 +#: ../gtk/parameters.ui.h:20 msgid "Video RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:18 +#: ../gtk/parameters.ui.h:21 msgid "Audio RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:19 -msgid "DSCP fields" -msgstr "" - -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:22 msgid "Fixed" msgstr "" -#: ../gtk/parameters.ui.h:21 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:22 +#: ../gtk/parameters.ui.h:23 msgid "Media encryption is mandatory" msgstr "" -#: ../gtk/parameters.ui.h:23 -msgid "Network protocol and ports" -msgstr "" - #: ../gtk/parameters.ui.h:24 -msgid "Direct connection to the Internet" +msgid "Tunnel" msgstr "" #: ../gtk/parameters.ui.h:25 -msgid "Behind NAT / Firewall (specify gateway IP below)" +msgid "DSCP fields" msgstr "" #: ../gtk/parameters.ui.h:26 #, fuzzy -msgid "Public IP address:" -msgstr "SIP-adres:" +msgid "SIP/TCP port" +msgstr "SIP-poort" #: ../gtk/parameters.ui.h:27 -msgid "Behind NAT / Firewall (use STUN to resolve)" -msgstr "" +#, fuzzy +msgid "SIP/UDP port" +msgstr "SIP-poort" #: ../gtk/parameters.ui.h:28 -msgid "Behind NAT / Firewall (use ICE)" +msgid "Network protocol and ports" msgstr "" #: ../gtk/parameters.ui.h:29 -msgid "Behind NAT / Firewall (use uPnP)" +msgid "Direct connection to the Internet" msgstr "" #: ../gtk/parameters.ui.h:30 +msgid "Behind NAT / Firewall (specify gateway IP )" +msgstr "" + +#: ../gtk/parameters.ui.h:31 +msgid "Behind NAT / Firewall (use STUN to resolve)" +msgstr "" + +#: ../gtk/parameters.ui.h:32 +msgid "Behind NAT / Firewall (use ICE)" +msgstr "" + +#: ../gtk/parameters.ui.h:33 +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "" + +#: ../gtk/parameters.ui.h:34 +#, fuzzy +msgid "Public IP address:" +msgstr "SIP-adres:" + +#: ../gtk/parameters.ui.h:35 #, fuzzy msgid "Stun server:" msgstr "Geluidsapparaat" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:36 #, fuzzy msgid "NAT and Firewall" msgstr "Contactlijst" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:37 #, fuzzy msgid "Network settings" msgstr "Netwerk" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:38 #, fuzzy msgid "Ring sound:" msgstr "Belgeluid:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:39 msgid "ALSA special device (optional):" msgstr "" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:40 #, fuzzy msgid "Capture device:" msgstr "Geluidsapparaat gebruiken:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:41 #, fuzzy msgid "Ring device:" msgstr "Geluidsapparaat gebruiken:" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:42 #, fuzzy msgid "Playback device:" msgstr "Geluidsapparaat gebruiken:" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:43 msgid "Enable echo cancellation" msgstr "" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:44 #, fuzzy msgid "Audio" msgstr "Contactlijst" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:45 #, fuzzy msgid "Video input device:" msgstr "Geluidsapparaat" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:46 msgid "Prefered video resolution:" msgstr "" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:47 +#, fuzzy +msgid "Video output method:" +msgstr "Geluidsapparaat" + +#: ../gtk/parameters.ui.h:48 #, fuzzy msgid "Video" msgstr "Contactlijst" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:49 msgid "Multimedia settings" msgstr "" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:50 msgid "This section defines your SIP address when not using a SIP account" msgstr "" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:51 msgid "Your display name (eg: John Doe):" msgstr "" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:52 #, fuzzy msgid "Your username:" msgstr "gebruikersnaam:" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:53 #, fuzzy msgid "Your resulting SIP address:" msgstr "Uw SIP-adres:" -#: ../gtk/parameters.ui.h:48 +#: ../gtk/parameters.ui.h:54 #, fuzzy msgid "Default identity" msgstr "SIP-identiteit:" -#: ../gtk/parameters.ui.h:49 +#: ../gtk/parameters.ui.h:55 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:56 +#, fuzzy +msgid "Add" +msgstr "Adres" + +#: ../gtk/parameters.ui.h:57 +msgid "Edit" +msgstr "Bewerken" + +#: ../gtk/parameters.ui.h:58 msgid "Remove" msgstr "Verwijderen" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:59 #, fuzzy msgid "Proxy accounts" msgstr "Contactlijst" -#: ../gtk/parameters.ui.h:54 -msgid "Erase all passwords" -msgstr "" - -#: ../gtk/parameters.ui.h:55 -#, fuzzy -msgid "Privacy" -msgstr "Contactlijst" - -#: ../gtk/parameters.ui.h:56 -msgid "Manage SIP Accounts" -msgstr "" - -#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 -msgid "Enable" -msgstr "Aan" - -#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 -msgid "Disable" -msgstr "Uit" - -#: ../gtk/parameters.ui.h:59 -#, fuzzy -msgid "Codecs" -msgstr "Contactlijst" - #: ../gtk/parameters.ui.h:60 -msgid "0 stands for \"unlimited\"" +msgid "Erase all passwords" msgstr "" #: ../gtk/parameters.ui.h:61 #, fuzzy +msgid "Privacy" +msgstr "Contactlijst" + +#: ../gtk/parameters.ui.h:62 +msgid "Manage SIP Accounts" +msgstr "" + +#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4 +msgid "Enable" +msgstr "Aan" + +#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5 +msgid "Disable" +msgstr "Uit" + +#: ../gtk/parameters.ui.h:65 +#, fuzzy +msgid "Codecs" +msgstr "Contactlijst" + +#: ../gtk/parameters.ui.h:66 +msgid "0 stands for \"unlimited\"" +msgstr "" + +#: ../gtk/parameters.ui.h:67 +#, fuzzy msgid "Upload speed limit in Kbit/sec:" msgstr "Upload bandbreedte (kbit/sec):" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:68 #, fuzzy msgid "Download speed limit in Kbit/sec:" msgstr "Download bandbreedte (kbit/sec):" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:69 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:70 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:71 msgid "Bandwidth control" msgstr "" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:72 #, fuzzy msgid "Codecs" msgstr "Codecs" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:73 #, fuzzy msgid "Language" msgstr "Contactlijst" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:74 msgid "Show advanced settings" msgstr "" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:75 #, fuzzy msgid "Level" msgstr "Contactlijst" -#: ../gtk/parameters.ui.h:70 +#: ../gtk/parameters.ui.h:76 #, fuzzy msgid "User interface" msgstr "gebruikersnaam:" -#: ../gtk/parameters.ui.h:71 +#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2 +#, fuzzy +msgid "Server address:" +msgstr "Serveradres" + +#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3 +#, fuzzy +msgid "Authentication method:" +msgstr "Authorisatie gegevens" + +#: ../gtk/parameters.ui.h:80 +msgid "label" +msgstr "" + +#: ../gtk/parameters.ui.h:81 +#, fuzzy +msgid "LDAP Account setup" +msgstr "Contactlijst" + +#: ../gtk/parameters.ui.h:82 +msgid "LDAP" +msgstr "" + +#: ../gtk/parameters.ui.h:83 #, fuzzy msgid "Done" msgstr "Weg" @@ -1387,7 +1482,7 @@ msgstr "" #: ../gtk/dscp_settings.ui.h:1 #, fuzzy -msgid "Dscp settings" +msgid "DSCP settings" msgstr "Netwerk" #: ../gtk/dscp_settings.ui.h:2 @@ -1443,6 +1538,14 @@ msgid "Round trip time" msgstr "Geluidseigenschappen" #: ../gtk/call_statistics.ui.h:9 +msgid "Video resolution received" +msgstr "" + +#: ../gtk/call_statistics.ui.h:10 +msgid "Video resolution sent" +msgstr "" + +#: ../gtk/call_statistics.ui.h:11 #, fuzzy msgid "Call statistics and information" msgstr "Contact informatie" @@ -1527,19 +1630,142 @@ msgstr "" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:228 +#: ../gtk/ldap.ui.h:1 +#, fuzzy +msgid "LDAP Settings" +msgstr "Netwerk" + +#: ../gtk/ldap.ui.h:6 +msgid "Use TLS Connection" +msgstr "" + +#: ../gtk/ldap.ui.h:7 +#, fuzzy +msgid "Not yet available" +msgstr "Geen informatie beschikbaar" + +#: ../gtk/ldap.ui.h:8 +#, fuzzy +msgid "Connection" +msgstr "Contactlijst" + +#: ../gtk/ldap.ui.h:9 +msgid "Bind DN" +msgstr "" + +#: ../gtk/ldap.ui.h:10 +msgid "Authname" +msgstr "" + +#: ../gtk/ldap.ui.h:11 +#, fuzzy +msgid "Realm" +msgstr "gebied:" + +#: ../gtk/ldap.ui.h:12 +#, fuzzy +msgid "SASL" +msgstr "Contactlijst" + +#: ../gtk/ldap.ui.h:13 +msgid "Base object:" +msgstr "" + +#: ../gtk/ldap.ui.h:15 +#, no-c-format +msgid "Filter (%s for name):" +msgstr "" + +#: ../gtk/ldap.ui.h:16 +msgid "Name Attribute:" +msgstr "" + +#: ../gtk/ldap.ui.h:17 +#, fuzzy +msgid "SIP address attribute:" +msgstr "Adres" + +#: ../gtk/ldap.ui.h:18 +msgid "Attributes to query:" +msgstr "" + +#: ../gtk/ldap.ui.h:19 +#, fuzzy +msgid "Search" +msgstr "Contactlijst" + +#: ../gtk/ldap.ui.h:20 +msgid "Timeout for search:" +msgstr "" + +#: ../gtk/ldap.ui.h:21 +msgid "Max results:" +msgstr "" + +#: ../gtk/ldap.ui.h:22 +msgid "Follow Aliases" +msgstr "" + +#: ../gtk/ldap.ui.h:23 +#, fuzzy +msgid "Miscellaneous" +msgstr "Contactlijst" + +#: ../gtk/ldap.ui.h:24 +msgid "ANONYMOUS" +msgstr "" + +#: ../gtk/ldap.ui.h:25 +msgid "SIMPLE" +msgstr "" + +#: ../gtk/ldap.ui.h:26 +msgid "DIGEST-MD5" +msgstr "" + +#: ../gtk/ldap.ui.h:27 +msgid "NTLM" +msgstr "" + +#: ../gtk/config-uri.ui.h:1 +msgid "Specifying a remote configuration URI" +msgstr "" + +#: ../gtk/config-uri.ui.h:2 +msgid "" +"This dialog allows to set an http or https address when configuration is to " +"be fetched at startup.\n" +"Please enter or modify the configuration URI below. After clicking OK, " +"Linphone will restart automatically in order to fetch and take into account " +"the new configuration. " +msgstr "" + +#: ../gtk/config-uri.ui.h:4 +msgid "https://" +msgstr "" + +#: ../gtk/provisioning-fetch.ui.h:1 +#, fuzzy +msgid "Configuring..." +msgstr "Verbinden" + +#: ../gtk/provisioning-fetch.ui.h:2 +msgid "Please wait while fetching configuration from server..." +msgstr "" + +#: ../coreapi/linphonecore.c:238 msgid "aborted" msgstr "afgebroken" -#: ../coreapi/linphonecore.c:231 +#: ../coreapi/linphonecore.c:241 msgid "completed" msgstr "voltooid" -#: ../coreapi/linphonecore.c:234 +#: ../coreapi/linphonecore.c:244 msgid "missed" msgstr "gemist" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:249 #, c-format msgid "" "%s at %s\n" @@ -1554,108 +1780,82 @@ msgstr "" "Status: %s\n" "Tijdsduur: %i mins %i secs\n" -#: ../coreapi/linphonecore.c:240 +#: ../coreapi/linphonecore.c:250 msgid "Outgoing call" msgstr "Uitgaande oproep" -#: ../coreapi/linphonecore.c:1321 +#: ../coreapi/linphonecore.c:1264 msgid "Ready" msgstr "Gereed." -#: ../coreapi/linphonecore.c:2205 +#: ../coreapi/linphonecore.c:1372 +#, fuzzy +msgid "Configuring" +msgstr "Informatie" + +#: ../coreapi/linphonecore.c:2331 msgid "Looking for telephone number destination..." msgstr "Zoekt de lokatie van het telefoonnummer..." -#: ../coreapi/linphonecore.c:2208 +#: ../coreapi/linphonecore.c:2334 msgid "Could not resolve this number." msgstr "Kon dit nummer niet vinden." -#: ../coreapi/linphonecore.c:2252 -msgid "" -"Could not parse given sip address. A sip url usually looks like sip:" -"user@domain" -msgstr "" -"Slecht geformuleerd SIP-adres. Een SIP-adres ziet er uit als sip:" -"gebruikersnaam@domeinnaam" - -#: ../coreapi/linphonecore.c:2453 +#. must be known at that time +#: ../coreapi/linphonecore.c:2609 msgid "Contacting" msgstr "Verbinden" -#: ../coreapi/linphonecore.c:2460 +#: ../coreapi/linphonecore.c:2616 #, fuzzy msgid "Could not call" msgstr "Kon niet oproepen" -#: ../coreapi/linphonecore.c:2570 +#: ../coreapi/linphonecore.c:2765 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2752 +#: ../coreapi/linphonecore.c:2952 #, fuzzy msgid "is contacting you" msgstr "belt u." -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2820 +#: ../coreapi/linphonecore.c:3020 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:3159 +#: ../coreapi/linphonecore.c:3362 msgid "Connected." msgstr "Verbonden." -#: ../coreapi/linphonecore.c:3187 +#: ../coreapi/linphonecore.c:3388 #, fuzzy msgid "Call aborted" msgstr "afgebroken" -#: ../coreapi/linphonecore.c:3378 +#: ../coreapi/linphonecore.c:3581 #, fuzzy msgid "Could not pause the call" msgstr "Kon niet oproepen" -#: ../coreapi/linphonecore.c:3383 +#: ../coreapi/linphonecore.c:3586 #, fuzzy msgid "Pausing the current call..." msgstr "Kon niet oproepen" -#: ../coreapi/misc.c:148 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the pcm oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -"'modprobe snd-pcm-oss' as root to load it." -msgstr "" -"Uw computer maakt schijnbaar gebruik van ALSA geluidsdrivers.\n" -"Dit is de beste keuze. Maar de pcm oss emulatie module mist\n" -"en linphone heeft deze nodig. Geeft u alstublieft het commando\n" -"'modprobe snd-pcm-oss' als root om de module te laden." - -#: ../coreapi/misc.c:151 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the mixer oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -" 'modprobe snd-mixer-oss' as root to load it." -msgstr "" -"Uw computer maakt schijnbaar gebruik van ALSA geluidsdrivers.\n" -"Dit is de beste keuze. Maar de mixer oss emulatie module mist\n" -"en linphone heeft deze nodig. Geeft u alstublieft het commando\n" -"'modprobe snd-mixer-oss' als root om de module te laden." - -#: ../coreapi/misc.c:496 +#: ../coreapi/misc.c:394 msgid "Stun lookup in progress..." msgstr "STUN adres wordt opgezocht..." -#: ../coreapi/misc.c:630 +#: ../coreapi/misc.c:576 msgid "ICE local candidates gathering in progress..." msgstr "" @@ -1709,152 +1909,190 @@ msgid "Pending" msgstr "" #: ../coreapi/friend.c:66 +#, fuzzy +msgid "Vacation" +msgstr "Informatie" + +#: ../coreapi/friend.c:68 msgid "Unknown-bug" msgstr "" -#: ../coreapi/proxy.c:204 +#: ../coreapi/proxy.c:209 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "" -#: ../coreapi/proxy.c:210 +#: ../coreapi/proxy.c:215 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" -#: ../coreapi/proxy.c:1069 +#: ../coreapi/proxy.c:1125 #, fuzzy, c-format msgid "Could not login as %s" msgstr "Kon pixmap bestand %s niet vinden" -#: ../coreapi/callbacks.c:286 +#: ../coreapi/callbacks.c:289 #, fuzzy msgid "Remote ringing." msgstr "Externe diensten" -#: ../coreapi/callbacks.c:306 +#: ../coreapi/callbacks.c:305 #, fuzzy msgid "Remote ringing..." msgstr "Externe diensten" -#: ../coreapi/callbacks.c:317 +#: ../coreapi/callbacks.c:316 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:368 +#: ../coreapi/callbacks.c:367 #, fuzzy, c-format msgid "Call with %s is paused." msgstr "Chat met %s" -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:380 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:392 +#: ../coreapi/callbacks.c:391 #, fuzzy msgid "Call resumed." msgstr "Oproep beeindigd" -#: ../coreapi/callbacks.c:397 +#: ../coreapi/callbacks.c:396 #, fuzzy, c-format msgid "Call answered by %s." msgstr "" "Oproepen of\n" "beantwoorden" -#: ../coreapi/callbacks.c:412 +#: ../coreapi/callbacks.c:414 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:460 +#: ../coreapi/callbacks.c:463 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:469 +#: ../coreapi/callbacks.c:471 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:475 +#: ../coreapi/callbacks.c:487 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:558 msgid "Call terminated." msgstr "Oproep beeindigd." -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:586 msgid "User is busy." msgstr "Gebruiker is bezet." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:587 msgid "User is temporarily unavailable." msgstr "Gebruiker is tijdelijk niet beschikbaar." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:558 +#: ../coreapi/callbacks.c:589 msgid "User does not want to be disturbed." msgstr "De gebruiker wenst niet gestoord te worden." -#: ../coreapi/callbacks.c:559 +#: ../coreapi/callbacks.c:590 msgid "Call declined." msgstr "Oproep geweigerd." -#: ../coreapi/callbacks.c:571 +#: ../coreapi/callbacks.c:603 msgid "No response." msgstr "" -#: ../coreapi/callbacks.c:575 +#: ../coreapi/callbacks.c:607 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:591 +#: ../coreapi/callbacks.c:623 #, fuzzy msgid "Redirected" msgstr "Doorgeschakeld naar %s..." -#: ../coreapi/callbacks.c:627 +#: ../coreapi/callbacks.c:665 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:633 +#: ../coreapi/callbacks.c:677 #, fuzzy msgid "Call failed." msgstr "Oproep geannuleerd." -#: ../coreapi/callbacks.c:737 +#: ../coreapi/callbacks.c:751 #, c-format msgid "Registration on %s successful." msgstr "Registratie op %s gelukt." -#: ../coreapi/callbacks.c:738 +#: ../coreapi/callbacks.c:752 #, fuzzy, c-format msgid "Unregistration on %s done." msgstr "Registratie op %s gelukt." -#: ../coreapi/callbacks.c:758 +#: ../coreapi/callbacks.c:772 msgid "no response timeout" msgstr "" -#: ../coreapi/callbacks.c:761 +#: ../coreapi/callbacks.c:775 #, fuzzy, c-format msgid "Registration on %s failed: %s" msgstr "Registratie op %s mislukt (time-out)." -#: ../coreapi/linphonecall.c:129 +#: ../coreapi/callbacks.c:785 +msgid "Service unavailable, retrying" +msgstr "" + +#: ../coreapi/linphonecall.c:142 #, fuzzy, c-format msgid "Authentication token is %s" msgstr "Authorisatie gegevens" -#: ../coreapi/linphonecall.c:2355 +#: ../coreapi/linphonecall.c:2678 #, fuzzy, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "U heeft %i oproep(en) gemist." msgstr[1] "U heeft %i oproep(en) gemist." +#~ msgid "" +#~ "Could not parse given sip address. A sip url usually looks like sip:" +#~ "user@domain" +#~ msgstr "" +#~ "Slecht geformuleerd SIP-adres. Een SIP-adres ziet er uit als sip:" +#~ "gebruikersnaam@domeinnaam" + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the pcm oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ "'modprobe snd-pcm-oss' as root to load it." +#~ msgstr "" +#~ "Uw computer maakt schijnbaar gebruik van ALSA geluidsdrivers.\n" +#~ "Dit is de beste keuze. Maar de pcm oss emulatie module mist\n" +#~ "en linphone heeft deze nodig. Geeft u alstublieft het commando\n" +#~ "'modprobe snd-pcm-oss' als root om de module te laden." + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the mixer oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ " 'modprobe snd-mixer-oss' as root to load it." +#~ msgstr "" +#~ "Uw computer maakt schijnbaar gebruik van ALSA geluidsdrivers.\n" +#~ "Dit is de beste keuze. Maar de mixer oss emulatie module mist\n" +#~ "en linphone heeft deze nodig. Geeft u alstublieft het commando\n" +#~ "'modprobe snd-mixer-oss' als root om de module te laden." + #~ msgid "Chat with %s" #~ msgstr "Chat met %s" @@ -1862,18 +2100,10 @@ msgstr[1] "U heeft %i oproep(en) gemist." #~ msgid "Choosing a username" #~ msgstr "gebruikersnaam:" -#, fuzzy -#~ msgid "Confirmation" -#~ msgstr "Informatie" - #, fuzzy #~ msgid "Enable video" #~ msgstr "Aan" -#, fuzzy -#~ msgid "Authentication failure" -#~ msgstr "Authorisatie gegevens" - #, fuzzy #~ msgid "Unmute" #~ msgstr "Ongelimiteerd" @@ -1923,10 +2153,6 @@ msgstr[1] "U heeft %i oproep(en) gemist." #~ "gebruikt linphone altijd IPv4. Wijzig uw configuratie wanneer u IPv6 wilt " #~ "gebruiken." -#, fuzzy -#~ msgid "Incoming call from %s" -#~ msgstr "Inkomende oproep" - #, fuzzy #~ msgid "_Modes" #~ msgstr "Codecs" @@ -2004,10 +2230,6 @@ msgstr[1] "U heeft %i oproep(en) gemist." #~ msgid "Closed" #~ msgstr "Gesloten" -#, fuzzy -#~ msgid "SIP address" -#~ msgstr "Adres" - #, fuzzy #~ msgid "_View" #~ msgstr "Video" @@ -2250,9 +2472,6 @@ msgstr[1] "U heeft %i oproep(en) gemist." #~ msgid "It is strongly recommended to use port 5060." #~ msgstr "Het wordt sterk aangeraden om poort 5060 te gebruiken." -#~ msgid "SIP port" -#~ msgstr "SIP-poort" - #~ msgid "@" #~ msgstr "@" @@ -2296,9 +2515,6 @@ msgstr[1] "U heeft %i oproep(en) gemist." #~ msgid "None." #~ msgstr "Geen." -#~ msgid "Proxy/Registrar configuration box" -#~ msgstr "Proxy/registratieserver registratieveld" - #~ msgid "Send registration:" #~ msgstr "Verstruur registratie:" @@ -2326,9 +2542,6 @@ msgstr[1] "U heeft %i oproep(en) gemist." #~ msgid "userid:" #~ msgstr "gebruikersID:" -#~ msgid "realm:" -#~ msgstr "gebied:" - #~ msgid "Text:" #~ msgstr "Tekst:" @@ -2386,9 +2599,6 @@ msgstr[1] "U heeft %i oproep(en) gemist." #~ msgid "Index" #~ msgstr "Index" -#~ msgid "Server address" -#~ msgstr "Serveradres" - #~ msgid "28k modem" #~ msgstr "28k modem" diff --git a/po/pl.po b/po/pl.po index 869f9b85e..fbcbdbd6d 100644 --- a/po/pl.po +++ b/po/pl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.7.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-24 14:04+0200\n" +"POT-Creation-Date: 2014-02-14 14:57+0100\n" "PO-Revision-Date: 2003-08-22 12:50+0200\n" "Last-Translator: Robert Nasiadek \n" "Language-Team: Polski \n" @@ -15,12 +15,12 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" -#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:969 #, c-format msgid "Call %s" msgstr "" -#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:970 #, c-format msgid "Send text to %s" msgstr "" @@ -94,46 +94,51 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "Nie można znaleźć pixmapy: %s" -#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:363 ../gtk/friendlist.c:919 msgid "Invalid sip contact !" msgstr "" -#: ../gtk/main.c:92 +#: ../gtk/main.c:102 msgid "log to stdout some debug information while running." msgstr "" -#: ../gtk/main.c:99 +#: ../gtk/main.c:109 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:106 +#: ../gtk/main.c:116 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:113 +#: ../gtk/main.c:123 msgid "Start only in the system tray, do not show the main interface." msgstr "" -#: ../gtk/main.c:120 +#: ../gtk/main.c:130 msgid "address to call right now" msgstr "" -#: ../gtk/main.c:127 +#: ../gtk/main.c:137 msgid "if set automatically answer incoming calls" msgstr "" -#: ../gtk/main.c:134 +#: ../gtk/main.c:144 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" -#: ../gtk/main.c:515 +#: ../gtk/main.c:151 +#, fuzzy +msgid "Configuration file" +msgstr "Informacja" + +#: ../gtk/main.c:573 #, c-format msgid "Call with %s" msgstr "" -#: ../gtk/main.c:946 +#: ../gtk/main.c:1150 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -142,242 +147,243 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1023 +#: ../gtk/main.c:1227 #, c-format msgid "" "Please enter your password for username %s\n" -" at domain %s:" +" at realm %s:" msgstr "" -#: ../gtk/main.c:1126 +#: ../gtk/main.c:1339 #, fuzzy msgid "Call error" msgstr "Połączenie odwołane." -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 +#: ../gtk/main.c:1342 ../coreapi/linphonecore.c:3408 #, fuzzy msgid "Call ended" msgstr "Rozmowa odrzucona." -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 +#: ../gtk/main.c:1345 ../coreapi/linphonecore.c:250 msgid "Incoming call" msgstr "" -#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 +#: ../gtk/main.c:1347 ../gtk/incall_view.c:508 ../gtk/main.ui.h:5 msgid "Answer" msgstr "" -#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1349 ../gtk/main.ui.h:6 #, fuzzy msgid "Decline" msgstr "linia" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy msgid "Call paused" msgstr "Połączenie odwołane." -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy, c-format msgid "by %s" msgstr "Dzwonie do " -#: ../gtk/main.c:1191 +#: ../gtk/main.c:1422 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1353 +#: ../gtk/main.c:1584 msgid "Website link" msgstr "" -#: ../gtk/main.c:1402 +#: ../gtk/main.c:1633 msgid "Linphone - a video internet phone" msgstr "" -#: ../gtk/main.c:1494 +#: ../gtk/main.c:1725 #, c-format msgid "%s (Default)" msgstr "" -#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 +#: ../gtk/main.c:2061 ../coreapi/callbacks.c:827 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1806 +#: ../gtk/main.c:2071 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1911 +#: ../gtk/main.c:2207 msgid "A free SIP video-phone" msgstr "" -#: ../gtk/friendlist.c:469 +#: ../gtk/friendlist.c:505 #, fuzzy msgid "Add to addressbook" msgstr "Książka adresowa" -#: ../gtk/friendlist.c:643 +#: ../gtk/friendlist.c:691 #, fuzzy msgid "Presence status" msgstr "Obecność" -#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:709 ../gtk/propertybox.c:556 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Nazwa" -#: ../gtk/friendlist.c:673 +#: ../gtk/friendlist.c:721 #, fuzzy msgid "Call" msgstr "Połączenie odwołane." -#: ../gtk/friendlist.c:678 +#: ../gtk/friendlist.c:726 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:708 +#: ../gtk/friendlist.c:756 #, c-format msgid "Search in %s directory" msgstr "" -#: ../gtk/friendlist.c:924 +#: ../gtk/friendlist.c:971 #, fuzzy, c-format msgid "Edit contact '%s'" msgstr "(Brak informacji kontaktowych !)" -#: ../gtk/friendlist.c:925 +#: ../gtk/friendlist.c:972 #, c-format msgid "Delete contact '%s'" msgstr "" -#: ../gtk/friendlist.c:926 +#: ../gtk/friendlist.c:973 #, c-format msgid "Delete chat history of '%s'" msgstr "" -#: ../gtk/friendlist.c:977 +#: ../gtk/friendlist.c:1024 #, c-format msgid "Add new contact from %s directory" msgstr "" -#: ../gtk/propertybox.c:373 +#: ../gtk/propertybox.c:562 msgid "Rate (Hz)" msgstr "Jakość (Hz)" -#: ../gtk/propertybox.c:379 +#: ../gtk/propertybox.c:568 msgid "Status" msgstr "Status" -#: ../gtk/propertybox.c:385 -msgid "Min bitrate (kbit/s)" +#: ../gtk/propertybox.c:574 +#, fuzzy +msgid "Bitrate (kbit/s)" msgstr "Min przepustowość (kbit/s)" -#: ../gtk/propertybox.c:392 +#: ../gtk/propertybox.c:581 msgid "Parameters" msgstr "Parametr" -#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:624 ../gtk/propertybox.c:767 msgid "Enabled" msgstr "Włączone" -#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:626 ../gtk/propertybox.c:767 msgid "Disabled" msgstr "Wyłączone" -#: ../gtk/propertybox.c:624 +#: ../gtk/propertybox.c:813 msgid "Account" msgstr "" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:1057 msgid "English" msgstr "" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:1058 msgid "French" msgstr "" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:1059 msgid "Swedish" msgstr "" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:1060 msgid "Italian" msgstr "" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:1061 msgid "Spanish" msgstr "" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:1062 msgid "Brazilian Portugese" msgstr "" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:1063 msgid "Polish" msgstr "" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:1064 msgid "German" msgstr "" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:1065 msgid "Russian" msgstr "" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:1066 msgid "Japanese" msgstr "" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:1067 msgid "Dutch" msgstr "" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:1068 msgid "Hungarian" msgstr "" -#: ../gtk/propertybox.c:776 +#: ../gtk/propertybox.c:1069 msgid "Czech" msgstr "" -#: ../gtk/propertybox.c:777 +#: ../gtk/propertybox.c:1070 msgid "Chinese" msgstr "" -#: ../gtk/propertybox.c:778 +#: ../gtk/propertybox.c:1071 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:779 +#: ../gtk/propertybox.c:1072 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:780 +#: ../gtk/propertybox.c:1073 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:781 +#: ../gtk/propertybox.c:1074 msgid "Serbian" msgstr "" -#: ../gtk/propertybox.c:848 +#: ../gtk/propertybox.c:1141 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" -#: ../gtk/propertybox.c:934 +#: ../gtk/propertybox.c:1219 #, fuzzy msgid "None" msgstr "Brak." -#: ../gtk/propertybox.c:938 +#: ../gtk/propertybox.c:1223 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:944 +#: ../gtk/propertybox.c:1229 msgid "ZRTP" msgstr "" @@ -439,110 +445,118 @@ msgstr "" msgid "I have already a sip account and I just want to use it" msgstr "" -#: ../gtk/setupwizard.c:85 +#: ../gtk/setupwizard.c:46 +msgid "I want to specify a remote configuration URI" +msgstr "" + +#: ../gtk/setupwizard.c:89 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:92 +#: ../gtk/setupwizard.c:96 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4 #, fuzzy msgid "Username:" msgstr "Podręcznik" -#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:98 ../gtk/password.ui.h:4 ../gtk/ldap.ui.h:5 #, fuzzy msgid "Password:" msgstr "Twoje hasło:" -#: ../gtk/setupwizard.c:114 +#: ../gtk/setupwizard.c:118 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:125 #, fuzzy msgid "Username*" msgstr "Podręcznik" -#: ../gtk/setupwizard.c:122 +#: ../gtk/setupwizard.c:126 #, fuzzy msgid "Password*" msgstr "Twoje hasło:" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:129 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:126 +#: ../gtk/setupwizard.c:130 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:302 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:299 +#: ../gtk/setupwizard.c:303 #, fuzzy msgid "Username: (*)" msgstr "Podręcznik" -#: ../gtk/setupwizard.c:301 +#: ../gtk/setupwizard.c:305 #, fuzzy msgid "Password: (*)" msgstr "Twoje hasło:" -#: ../gtk/setupwizard.c:303 +#: ../gtk/setupwizard.c:307 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:305 +#: ../gtk/setupwizard.c:309 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:369 +#: ../gtk/setupwizard.c:373 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:380 +#: ../gtk/setupwizard.c:384 msgid "Thank you. Your account is now configured and ready for use." msgstr "" -#: ../gtk/setupwizard.c:388 +#: ../gtk/setupwizard.c:392 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:564 +#: ../gtk/setupwizard.c:572 +msgid "SIP account configuration assistant" +msgstr "" + +#: ../gtk/setupwizard.c:590 msgid "Welcome to the account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:569 +#: ../gtk/setupwizard.c:595 msgid "Account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:575 +#: ../gtk/setupwizard.c:601 msgid "Configure your account (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:580 +#: ../gtk/setupwizard.c:606 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:584 +#: ../gtk/setupwizard.c:610 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:593 +#: ../gtk/setupwizard.c:619 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:598 +#: ../gtk/setupwizard.c:624 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:602 +#: ../gtk/setupwizard.c:628 msgid "Terminating" msgstr "" @@ -611,138 +625,153 @@ msgstr "Połączenie odwołane." msgid "Direct or through server" msgstr "" -#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:261 ../gtk/incall_view.c:272 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:286 +#: ../gtk/incall_view.c:267 ../gtk/incall_view.c:268 +#, c-format +msgid "%ix%i" +msgstr "" + +#: ../gtk/incall_view.c:297 #, c-format msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:395 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:476 +#: ../gtk/incall_view.c:487 #, fuzzy msgid "Calling..." msgstr "Dzwonie do " -#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:700 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:490 +#: ../gtk/incall_view.c:501 #, fuzzy msgid "Incoming call" msgstr "Dzwonie do " -#: ../gtk/incall_view.c:527 +#: ../gtk/incall_view.c:538 msgid "good" msgstr "" -#: ../gtk/incall_view.c:529 +#: ../gtk/incall_view.c:540 msgid "average" msgstr "" -#: ../gtk/incall_view.c:531 +#: ../gtk/incall_view.c:542 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:533 +#: ../gtk/incall_view.c:544 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:535 +#: ../gtk/incall_view.c:546 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:547 ../gtk/incall_view.c:563 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:651 +#: ../gtk/incall_view.c:662 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:657 +#: ../gtk/incall_view.c:668 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:663 +#: ../gtk/incall_view.c:674 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:674 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 #, fuzzy msgid "In call" msgstr "Dzwonie do " -#: ../gtk/incall_view.c:718 +#: ../gtk/incall_view.c:731 #, fuzzy msgid "Paused call" msgstr "Dzwonie do " -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:744 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:748 +#: ../gtk/incall_view.c:762 #, fuzzy msgid "Call ended." msgstr "Rozmowa odrzucona." -#: ../gtk/incall_view.c:778 +#: ../gtk/incall_view.c:793 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:796 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:784 +#: ../gtk/incall_view.c:799 #, fuzzy msgid "Transfer failed." msgstr "Połączenie odwołane." -#: ../gtk/incall_view.c:828 +#: ../gtk/incall_view.c:843 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:850 ../gtk/main.ui.h:9 msgid "Pause" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 msgid "(Paused)" msgstr "" -#: ../gtk/loginframe.c:93 +#: ../gtk/loginframe.c:88 #, c-format msgid "Please enter login information for %s" msgstr "" +#: ../gtk/config-fetching.c:57 +#, c-format +msgid "fetching from %s" +msgstr "" + +#: ../gtk/config-fetching.c:73 +#, c-format +msgid "Downloading of remote configuration from %s failed." +msgstr "" + #: ../gtk/main.ui.h:1 #, fuzzy msgid "Callee name" @@ -792,99 +821,99 @@ msgid "_Options" msgstr "" #: ../gtk/main.ui.h:18 +#, fuzzy +msgid "Set configuration URI" +msgstr "Informacja" + +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 #, fuzzy msgid "Enable self-view" msgstr "Włączone" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 #, fuzzy msgid "SIP address or phone number:" msgstr "Adres serwera rejestracji sip" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:28 #, fuzzy msgid "Contacts" msgstr "Dzwonie do " -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 -#, fuzzy -msgid "Add" -msgstr "Adres" - -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 -msgid "Edit" -msgstr "" - -#: ../gtk/main.ui.h:30 +#: ../gtk/main.ui.h:29 msgid "Search" msgstr "" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 #, fuzzy msgid "Add contacts from directory" msgstr "Informacje o kodeku" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 #, fuzzy msgid "Add contact" msgstr "(Brak informacji kontaktowych !)" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Recent calls" msgstr "Dzwonie do " -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "My current identity:" msgstr "Tożsamość" -#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:34 ../gtk/tunnel_config.ui.h:7 #, fuzzy msgid "Username" msgstr "Podręcznik" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:8 #, fuzzy msgid "Password" msgstr "Twoje hasło:" -#: ../gtk/main.ui.h:37 +#: ../gtk/main.ui.h:36 msgid "Internet connection:" msgstr "" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Automatically log me in" msgstr "" +#: ../gtk/main.ui.h:38 ../gtk/password.ui.h:3 +msgid "UserID" +msgstr "" + #: ../gtk/main.ui.h:39 #, fuzzy msgid "Login information" @@ -947,6 +976,7 @@ msgid "" "pl: Robert Nasiadek \n" "cs: Petr Pisar \n" "hu: anonymous\n" +"he: Eli Zaretskii \n" msgstr "" #: ../gtk/contact.ui.h:2 @@ -984,10 +1014,6 @@ msgstr "Informacje o kodeku" msgid "Please enter the domain password" msgstr "" -#: ../gtk/password.ui.h:3 -msgid "UserID" -msgstr "" - #: ../gtk/call_logs.ui.h:1 msgid "Call history" msgstr "" @@ -1027,326 +1053,394 @@ msgid "Looks like sip:" msgstr "" #: ../gtk/sip_account.ui.h:7 -msgid "Route (optional):" -msgstr "" - -#: ../gtk/sip_account.ui.h:8 #, fuzzy msgid "Registration duration (sec):" msgstr "Rejestracja powiodła się." +#: ../gtk/sip_account.ui.h:8 +msgid "Contact params (optional):" +msgstr "" + #: ../gtk/sip_account.ui.h:9 -msgid "Register" +msgid "Route (optional):" msgstr "" #: ../gtk/sip_account.ui.h:10 #, fuzzy +msgid "Transport" +msgstr "Dzwonie do " + +#: ../gtk/sip_account.ui.h:11 +msgid "Register" +msgstr "" + +#: ../gtk/sip_account.ui.h:12 +#, fuzzy msgid "Publish presence information" msgstr "Informacje o kodeku" -#: ../gtk/sip_account.ui.h:11 +#: ../gtk/sip_account.ui.h:13 msgid "Configure a SIP account" msgstr "" #: ../gtk/parameters.ui.h:1 -msgid "default soundcard" +msgid "anonymous" msgstr "" #: ../gtk/parameters.ui.h:2 -msgid "a sound card" +msgid "GSSAPI" msgstr "" #: ../gtk/parameters.ui.h:3 -msgid "default camera" +msgid "SASL" msgstr "" #: ../gtk/parameters.ui.h:4 -msgid "CIF" +msgid "default soundcard" msgstr "" #: ../gtk/parameters.ui.h:5 +msgid "a sound card" +msgstr "" + +#: ../gtk/parameters.ui.h:6 +msgid "default camera" +msgstr "" + +#: ../gtk/parameters.ui.h:7 +msgid "CIF" +msgstr "" + +#: ../gtk/parameters.ui.h:8 #, fuzzy msgid "Audio codecs" msgstr "Kodeki audio" -#: ../gtk/parameters.ui.h:6 +#: ../gtk/parameters.ui.h:9 #, fuzzy msgid "Video codecs" msgstr "Kodeki audio" -#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:10 ../gtk/keypad.ui.h:5 msgid "C" msgstr "" -#: ../gtk/parameters.ui.h:8 +#: ../gtk/parameters.ui.h:11 msgid "SIP (UDP)" msgstr "" -#: ../gtk/parameters.ui.h:9 +#: ../gtk/parameters.ui.h:12 msgid "SIP (TCP)" msgstr "" -#: ../gtk/parameters.ui.h:10 +#: ../gtk/parameters.ui.h:13 msgid "SIP (TLS)" msgstr "" -#: ../gtk/parameters.ui.h:11 +#: ../gtk/parameters.ui.h:14 msgid "Settings" msgstr "" -#: ../gtk/parameters.ui.h:12 +#: ../gtk/parameters.ui.h:15 msgid "Set Maximum Transmission Unit:" msgstr "" -#: ../gtk/parameters.ui.h:13 +#: ../gtk/parameters.ui.h:16 msgid "Send DTMFs as SIP info" msgstr "" -#: ../gtk/parameters.ui.h:14 +#: ../gtk/parameters.ui.h:17 msgid "Use IPv6 instead of IPv4" msgstr "" -#: ../gtk/parameters.ui.h:15 +#: ../gtk/parameters.ui.h:18 #, fuzzy msgid "Transport" msgstr "Dzwonie do " -#: ../gtk/parameters.ui.h:16 +#: ../gtk/parameters.ui.h:19 msgid "Media encryption type" msgstr "" -#: ../gtk/parameters.ui.h:17 +#: ../gtk/parameters.ui.h:20 msgid "Video RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:18 +#: ../gtk/parameters.ui.h:21 msgid "Audio RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:19 -msgid "DSCP fields" -msgstr "" - -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:22 msgid "Fixed" msgstr "" -#: ../gtk/parameters.ui.h:21 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:22 +#: ../gtk/parameters.ui.h:23 msgid "Media encryption is mandatory" msgstr "" -#: ../gtk/parameters.ui.h:23 -msgid "Network protocol and ports" -msgstr "" - #: ../gtk/parameters.ui.h:24 -msgid "Direct connection to the Internet" +msgid "Tunnel" msgstr "" #: ../gtk/parameters.ui.h:25 -msgid "Behind NAT / Firewall (specify gateway IP below)" +msgid "DSCP fields" msgstr "" #: ../gtk/parameters.ui.h:26 #, fuzzy -msgid "Public IP address:" -msgstr "Adres sip:" +msgid "SIP/TCP port" +msgstr "Port SIP" #: ../gtk/parameters.ui.h:27 -msgid "Behind NAT / Firewall (use STUN to resolve)" -msgstr "" +#, fuzzy +msgid "SIP/UDP port" +msgstr "Port SIP" #: ../gtk/parameters.ui.h:28 -msgid "Behind NAT / Firewall (use ICE)" +msgid "Network protocol and ports" msgstr "" #: ../gtk/parameters.ui.h:29 -msgid "Behind NAT / Firewall (use uPnP)" +msgid "Direct connection to the Internet" msgstr "" #: ../gtk/parameters.ui.h:30 +msgid "Behind NAT / Firewall (specify gateway IP )" +msgstr "" + +#: ../gtk/parameters.ui.h:31 +msgid "Behind NAT / Firewall (use STUN to resolve)" +msgstr "" + +#: ../gtk/parameters.ui.h:32 +msgid "Behind NAT / Firewall (use ICE)" +msgstr "" + +#: ../gtk/parameters.ui.h:33 +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "" + +#: ../gtk/parameters.ui.h:34 +#, fuzzy +msgid "Public IP address:" +msgstr "Adres sip:" + +#: ../gtk/parameters.ui.h:35 #, fuzzy msgid "Stun server:" msgstr "Dźwięk" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:36 #, fuzzy msgid "NAT and Firewall" msgstr "Dzwonie do " -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:37 #, fuzzy msgid "Network settings" msgstr "Sieć" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:38 #, fuzzy msgid "Ring sound:" msgstr "Źródło nagrywania:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:39 msgid "ALSA special device (optional):" msgstr "" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:40 #, fuzzy msgid "Capture device:" msgstr "Użyj tego urządzenia dźwięku:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:41 #, fuzzy msgid "Ring device:" msgstr "Użyj tego urządzenia dźwięku:" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:42 #, fuzzy msgid "Playback device:" msgstr "Użyj tego urządzenia dźwięku:" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:43 msgid "Enable echo cancellation" msgstr "" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:44 #, fuzzy msgid "Audio" msgstr "Dzwonie do " -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:45 #, fuzzy msgid "Video input device:" msgstr "Dźwięk" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:46 msgid "Prefered video resolution:" msgstr "" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:47 +#, fuzzy +msgid "Video output method:" +msgstr "Dźwięk" + +#: ../gtk/parameters.ui.h:48 #, fuzzy msgid "Video" msgstr "Dzwonie do " -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:49 msgid "Multimedia settings" msgstr "" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:50 msgid "This section defines your SIP address when not using a SIP account" msgstr "" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:51 msgid "Your display name (eg: John Doe):" msgstr "" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:52 #, fuzzy msgid "Your username:" msgstr "Podręcznik" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:53 #, fuzzy msgid "Your resulting SIP address:" msgstr "Twój adres sip:" -#: ../gtk/parameters.ui.h:48 +#: ../gtk/parameters.ui.h:54 #, fuzzy msgid "Default identity" msgstr "Tożsamość" -#: ../gtk/parameters.ui.h:49 +#: ../gtk/parameters.ui.h:55 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:56 +#, fuzzy +msgid "Add" +msgstr "Adres" + +#: ../gtk/parameters.ui.h:57 +msgid "Edit" +msgstr "" + +#: ../gtk/parameters.ui.h:58 msgid "Remove" msgstr "" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:59 #, fuzzy msgid "Proxy accounts" msgstr "Dzwonie do " -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:60 msgid "Erase all passwords" msgstr "" -#: ../gtk/parameters.ui.h:55 +#: ../gtk/parameters.ui.h:61 #, fuzzy msgid "Privacy" msgstr "Dzwonie do " -#: ../gtk/parameters.ui.h:56 +#: ../gtk/parameters.ui.h:62 msgid "Manage SIP Accounts" msgstr "" -#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Włączony" -#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Wyłącz" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:65 #, fuzzy msgid "Codecs" msgstr "Dzwonie do " -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:66 msgid "0 stands for \"unlimited\"" msgstr "" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:67 msgid "Upload speed limit in Kbit/sec:" msgstr "" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:68 msgid "Download speed limit in Kbit/sec:" msgstr "" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:69 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:70 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:71 msgid "Bandwidth control" msgstr "" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:72 #, fuzzy msgid "Codecs" msgstr "Kodeki" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:73 #, fuzzy msgid "Language" msgstr "Dzwonie do " -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:74 msgid "Show advanced settings" msgstr "" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:75 #, fuzzy msgid "Level" msgstr "Dzwonie do " -#: ../gtk/parameters.ui.h:70 +#: ../gtk/parameters.ui.h:76 #, fuzzy msgid "User interface" msgstr "Podręcznik" -#: ../gtk/parameters.ui.h:71 +#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2 +#, fuzzy +msgid "Server address:" +msgstr "Adres serwera:" + +#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3 +#, fuzzy +msgid "Authentication method:" +msgstr "Informacje o kodeku" + +#: ../gtk/parameters.ui.h:80 +msgid "label" +msgstr "" + +#: ../gtk/parameters.ui.h:81 +#, fuzzy +msgid "LDAP Account setup" +msgstr "Dzwonie do " + +#: ../gtk/parameters.ui.h:82 +msgid "LDAP" +msgstr "" + +#: ../gtk/parameters.ui.h:83 #, fuzzy msgid "Done" msgstr "Brak." @@ -1376,7 +1470,7 @@ msgstr "" #: ../gtk/dscp_settings.ui.h:1 #, fuzzy -msgid "Dscp settings" +msgid "DSCP settings" msgstr "Sieć" #: ../gtk/dscp_settings.ui.h:2 @@ -1431,6 +1525,14 @@ msgid "Round trip time" msgstr "Właściwości dźwięku" #: ../gtk/call_statistics.ui.h:9 +msgid "Video resolution received" +msgstr "" + +#: ../gtk/call_statistics.ui.h:10 +msgid "Video resolution sent" +msgstr "" + +#: ../gtk/call_statistics.ui.h:11 #, fuzzy msgid "Call statistics and information" msgstr "Informacje o kodeku" @@ -1515,19 +1617,141 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:228 +#: ../gtk/ldap.ui.h:1 +#, fuzzy +msgid "LDAP Settings" +msgstr "Sieć" + +#: ../gtk/ldap.ui.h:6 +msgid "Use TLS Connection" +msgstr "" + +#: ../gtk/ldap.ui.h:7 +#, fuzzy +msgid "Not yet available" +msgstr "Brak informacji" + +#: ../gtk/ldap.ui.h:8 +#, fuzzy +msgid "Connection" +msgstr "Dzwonie do " + +#: ../gtk/ldap.ui.h:9 +msgid "Bind DN" +msgstr "" + +#: ../gtk/ldap.ui.h:10 +msgid "Authname" +msgstr "" + +#: ../gtk/ldap.ui.h:11 +msgid "Realm" +msgstr "" + +#: ../gtk/ldap.ui.h:12 +#, fuzzy +msgid "SASL" +msgstr "Dzwonie do " + +#: ../gtk/ldap.ui.h:13 +msgid "Base object:" +msgstr "" + +#: ../gtk/ldap.ui.h:15 +#, no-c-format +msgid "Filter (%s for name):" +msgstr "" + +#: ../gtk/ldap.ui.h:16 +msgid "Name Attribute:" +msgstr "" + +#: ../gtk/ldap.ui.h:17 +#, fuzzy +msgid "SIP address attribute:" +msgstr "Adres" + +#: ../gtk/ldap.ui.h:18 +msgid "Attributes to query:" +msgstr "" + +#: ../gtk/ldap.ui.h:19 +#, fuzzy +msgid "Search" +msgstr "Dzwonie do " + +#: ../gtk/ldap.ui.h:20 +msgid "Timeout for search:" +msgstr "" + +#: ../gtk/ldap.ui.h:21 +msgid "Max results:" +msgstr "" + +#: ../gtk/ldap.ui.h:22 +msgid "Follow Aliases" +msgstr "" + +#: ../gtk/ldap.ui.h:23 +#, fuzzy +msgid "Miscellaneous" +msgstr "Dzwonie do " + +#: ../gtk/ldap.ui.h:24 +msgid "ANONYMOUS" +msgstr "" + +#: ../gtk/ldap.ui.h:25 +msgid "SIMPLE" +msgstr "" + +#: ../gtk/ldap.ui.h:26 +msgid "DIGEST-MD5" +msgstr "" + +#: ../gtk/ldap.ui.h:27 +msgid "NTLM" +msgstr "" + +#: ../gtk/config-uri.ui.h:1 +msgid "Specifying a remote configuration URI" +msgstr "" + +#: ../gtk/config-uri.ui.h:2 +msgid "" +"This dialog allows to set an http or https address when configuration is to " +"be fetched at startup.\n" +"Please enter or modify the configuration URI below. After clicking OK, " +"Linphone will restart automatically in order to fetch and take into account " +"the new configuration. " +msgstr "" + +#: ../gtk/config-uri.ui.h:4 +msgid "https://" +msgstr "" + +#: ../gtk/provisioning-fetch.ui.h:1 +#, fuzzy +msgid "Configuring..." +msgstr "Lącze" + +#: ../gtk/provisioning-fetch.ui.h:2 +msgid "Please wait while fetching configuration from server..." +msgstr "" + +#: ../coreapi/linphonecore.c:238 msgid "aborted" msgstr "" -#: ../coreapi/linphonecore.c:231 +#: ../coreapi/linphonecore.c:241 msgid "completed" msgstr "" -#: ../coreapi/linphonecore.c:234 +#: ../coreapi/linphonecore.c:244 msgid "missed" msgstr "" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:249 #, c-format msgid "" "%s at %s\n" @@ -1537,107 +1761,82 @@ msgid "" "Duration: %i mn %i sec\n" msgstr "" -#: ../coreapi/linphonecore.c:240 +#: ../coreapi/linphonecore.c:250 msgid "Outgoing call" msgstr "" -#: ../coreapi/linphonecore.c:1321 +#: ../coreapi/linphonecore.c:1264 #, fuzzy msgid "Ready" msgstr "Gotowy." -#: ../coreapi/linphonecore.c:2205 +#: ../coreapi/linphonecore.c:1372 +#, fuzzy +msgid "Configuring" +msgstr "Informacja" + +#: ../coreapi/linphonecore.c:2331 msgid "Looking for telephone number destination..." msgstr "" -#: ../coreapi/linphonecore.c:2208 +#: ../coreapi/linphonecore.c:2334 msgid "Could not resolve this number." msgstr "" -#: ../coreapi/linphonecore.c:2252 -#, fuzzy -msgid "" -"Could not parse given sip address. A sip url usually looks like sip:" -"user@domain" -msgstr "Nie poprawny adres sip. Adres sip wygląda tak " - -#: ../coreapi/linphonecore.c:2453 +#. must be known at that time +#: ../coreapi/linphonecore.c:2609 #, fuzzy msgid "Contacting" msgstr "Dzwonie do " -#: ../coreapi/linphonecore.c:2460 +#: ../coreapi/linphonecore.c:2616 #, fuzzy msgid "Could not call" msgstr "Nie można znaleźć pixmapy: %s" -#: ../coreapi/linphonecore.c:2570 +#: ../coreapi/linphonecore.c:2765 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2752 +#: ../coreapi/linphonecore.c:2952 #, fuzzy msgid "is contacting you" msgstr "dzwoni do Ciebie." -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2820 +#: ../coreapi/linphonecore.c:3020 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:3159 +#: ../coreapi/linphonecore.c:3362 msgid "Connected." msgstr "Połączony" -#: ../coreapi/linphonecore.c:3187 +#: ../coreapi/linphonecore.c:3388 #, fuzzy msgid "Call aborted" msgstr "Połączenie odwołane." -#: ../coreapi/linphonecore.c:3378 +#: ../coreapi/linphonecore.c:3581 msgid "Could not pause the call" msgstr "" -#: ../coreapi/linphonecore.c:3383 +#: ../coreapi/linphonecore.c:3586 msgid "Pausing the current call..." msgstr "" -#: ../coreapi/misc.c:148 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the pcm oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -"'modprobe snd-pcm-oss' as root to load it." -msgstr "" -"Używasz sterowników ALSA do dźwięku.\n" -"To jest najlepszy wybór. Jednak brakuje modułu emulacji pcm oss,\n" -"a Linphone go wymaga. Uruchom 'modprobe snd-pcm-oss' jako root,\n" -"aby go załadować" - -#: ../coreapi/misc.c:151 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the mixer oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -" 'modprobe snd-mixer-oss' as root to load it." -msgstr "" -"Używasz sterowników ALSA do dźwięku.\n" -"To jest najlepszy wybór. Jednak brakuje modułu emulacji mixera oss,\n" -"a Linphone go wymaga. Uruchom 'modprobe snd-mixer-oss' jako root,\n" -"aby go załadować" - -#: ../coreapi/misc.c:496 +#: ../coreapi/misc.c:394 msgid "Stun lookup in progress..." msgstr "" -#: ../coreapi/misc.c:630 +#: ../coreapi/misc.c:576 msgid "ICE local candidates gathering in progress..." msgstr "" @@ -1690,146 +1889,155 @@ msgid "Pending" msgstr "" #: ../coreapi/friend.c:66 +#, fuzzy +msgid "Vacation" +msgstr "Informacja" + +#: ../coreapi/friend.c:68 msgid "Unknown-bug" msgstr "" -#: ../coreapi/proxy.c:204 +#: ../coreapi/proxy.c:209 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "" -#: ../coreapi/proxy.c:210 +#: ../coreapi/proxy.c:215 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" -#: ../coreapi/proxy.c:1069 +#: ../coreapi/proxy.c:1125 #, fuzzy, c-format msgid "Could not login as %s" msgstr "Nie można znaleźć pixmapy: %s" -#: ../coreapi/callbacks.c:286 +#: ../coreapi/callbacks.c:289 #, fuzzy msgid "Remote ringing." msgstr "Rejestruje..." -#: ../coreapi/callbacks.c:306 +#: ../coreapi/callbacks.c:305 #, fuzzy msgid "Remote ringing..." msgstr "Rejestruje..." -#: ../coreapi/callbacks.c:317 +#: ../coreapi/callbacks.c:316 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:368 +#: ../coreapi/callbacks.c:367 #, c-format msgid "Call with %s is paused." msgstr "" -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:380 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:392 +#: ../coreapi/callbacks.c:391 #, fuzzy msgid "Call resumed." msgstr "Rozmowa odrzucona." -#: ../coreapi/callbacks.c:397 +#: ../coreapi/callbacks.c:396 #, fuzzy, c-format msgid "Call answered by %s." msgstr "" "Zadzwoń lub\n" "Odpowiedz" -#: ../coreapi/callbacks.c:412 +#: ../coreapi/callbacks.c:414 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:460 +#: ../coreapi/callbacks.c:463 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:469 +#: ../coreapi/callbacks.c:471 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:475 +#: ../coreapi/callbacks.c:487 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:558 #, fuzzy msgid "Call terminated." msgstr "Rozmowa odrzucona." -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:586 msgid "User is busy." msgstr "Osoba jest zajęta." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:587 msgid "User is temporarily unavailable." msgstr "Osoba jest tymczasowo niedostępna." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:558 +#: ../coreapi/callbacks.c:589 msgid "User does not want to be disturbed." msgstr "Osoba nie chce, aby jej przeszkadzać." -#: ../coreapi/callbacks.c:559 +#: ../coreapi/callbacks.c:590 msgid "Call declined." msgstr "Rozmowa odrzucona." -#: ../coreapi/callbacks.c:571 +#: ../coreapi/callbacks.c:603 msgid "No response." msgstr "" -#: ../coreapi/callbacks.c:575 +#: ../coreapi/callbacks.c:607 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:591 +#: ../coreapi/callbacks.c:623 msgid "Redirected" msgstr "" -#: ../coreapi/callbacks.c:627 +#: ../coreapi/callbacks.c:665 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:633 +#: ../coreapi/callbacks.c:677 #, fuzzy msgid "Call failed." msgstr "Połączenie odwołane." -#: ../coreapi/callbacks.c:737 +#: ../coreapi/callbacks.c:751 #, fuzzy, c-format msgid "Registration on %s successful." msgstr "Rejestracja powiodła się." -#: ../coreapi/callbacks.c:738 +#: ../coreapi/callbacks.c:752 #, fuzzy, c-format msgid "Unregistration on %s done." msgstr "Rejestracja powiodła się." -#: ../coreapi/callbacks.c:758 +#: ../coreapi/callbacks.c:772 msgid "no response timeout" msgstr "" -#: ../coreapi/callbacks.c:761 +#: ../coreapi/callbacks.c:775 #, fuzzy, c-format msgid "Registration on %s failed: %s" msgstr "Rejestracja powiodła się." -#: ../coreapi/linphonecall.c:129 +#: ../coreapi/callbacks.c:785 +msgid "Service unavailable, retrying" +msgstr "" + +#: ../coreapi/linphonecall.c:142 #, fuzzy, c-format msgid "Authentication token is %s" msgstr "Informacje o kodeku" -#: ../coreapi/linphonecall.c:2355 +#: ../coreapi/linphonecall.c:2678 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -1837,17 +2045,37 @@ msgstr[0] "" msgstr[1] "" #, fuzzy -#~ msgid "Confirmation" -#~ msgstr "Informacja" +#~ msgid "" +#~ "Could not parse given sip address. A sip url usually looks like sip:" +#~ "user@domain" +#~ msgstr "Nie poprawny adres sip. Adres sip wygląda tak " + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the pcm oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ "'modprobe snd-pcm-oss' as root to load it." +#~ msgstr "" +#~ "Używasz sterowników ALSA do dźwięku.\n" +#~ "To jest najlepszy wybór. Jednak brakuje modułu emulacji pcm oss,\n" +#~ "a Linphone go wymaga. Uruchom 'modprobe snd-pcm-oss' jako root,\n" +#~ "aby go załadować" + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the mixer oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ " 'modprobe snd-mixer-oss' as root to load it." +#~ msgstr "" +#~ "Używasz sterowników ALSA do dźwięku.\n" +#~ "To jest najlepszy wybór. Jednak brakuje modułu emulacji mixera oss,\n" +#~ "a Linphone go wymaga. Uruchom 'modprobe snd-mixer-oss' jako root,\n" +#~ "aby go załadować" #, fuzzy #~ msgid "Enable video" #~ msgstr "Włączone" -#, fuzzy -#~ msgid "Authentication failure" -#~ msgstr "Informacje o kodeku" - #, fuzzy #~ msgid "Contact list" #~ msgstr "Dzwonie do " @@ -1913,10 +2141,6 @@ msgstr[1] "" #~ msgid "Gone" #~ msgstr "Brak." -#, fuzzy -#~ msgid "SIP address" -#~ msgstr "Adres" - #, fuzzy #~ msgid "Display filters" #~ msgstr "Wyświetlana nazwa:" @@ -2021,9 +2245,6 @@ msgstr[1] "" #~ msgid "It is strongly recommended to use port 5060." #~ msgstr "Rekomendowane jest użycie portu 5060." -#~ msgid "SIP port" -#~ msgstr "Port SIP" - #~ msgid "@" #~ msgstr "@" @@ -2084,10 +2305,6 @@ msgstr[1] "" #~ msgid "Index" #~ msgstr "Indeks" -#, fuzzy -#~ msgid "Server address" -#~ msgstr "Adres serwera:" - #~ msgid "28k modem" #~ msgstr "Modem 28K" diff --git a/po/pt_BR.po b/po/pt_BR.po index 1ebd70a43..de51d73d7 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-1.1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-24 14:04+0200\n" +"POT-Creation-Date: 2014-02-14 14:57+0100\n" "PO-Revision-Date: 2006-07-11 23:30+0200\n" "Last-Translator: Rafael Caesar Lenzi \n" "Language-Team: pt_BR \n" @@ -17,12 +17,12 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:969 #, fuzzy, c-format msgid "Call %s" msgstr "Histórico de chamadas" -#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:970 #, c-format msgid "Send text to %s" msgstr "" @@ -97,46 +97,51 @@ msgstr "" msgid "Couldn't find pixmap file: %s" msgstr "Não é possível achar arquivo pixmap: %s" -#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:363 ../gtk/friendlist.c:919 msgid "Invalid sip contact !" msgstr "" -#: ../gtk/main.c:92 +#: ../gtk/main.c:102 msgid "log to stdout some debug information while running." msgstr "" -#: ../gtk/main.c:99 +#: ../gtk/main.c:109 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:106 +#: ../gtk/main.c:116 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:113 +#: ../gtk/main.c:123 msgid "Start only in the system tray, do not show the main interface." msgstr "" -#: ../gtk/main.c:120 +#: ../gtk/main.c:130 msgid "address to call right now" msgstr "" -#: ../gtk/main.c:127 +#: ../gtk/main.c:137 msgid "if set automatically answer incoming calls" msgstr "" -#: ../gtk/main.c:134 +#: ../gtk/main.c:144 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" -#: ../gtk/main.c:515 +#: ../gtk/main.c:151 +#, fuzzy +msgid "Configuration file" +msgstr "Informações" + +#: ../gtk/main.c:573 #, fuzzy, c-format msgid "Call with %s" msgstr "Bate-papo com %s" -#: ../gtk/main.c:946 +#: ../gtk/main.c:1150 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -145,242 +150,243 @@ msgid "" "If you answer no, this person will be temporarily blacklisted." msgstr "" -#: ../gtk/main.c:1023 +#: ../gtk/main.c:1227 #, c-format msgid "" "Please enter your password for username %s\n" -" at domain %s:" +" at realm %s:" msgstr "" -#: ../gtk/main.c:1126 +#: ../gtk/main.c:1339 #, fuzzy msgid "Call error" msgstr "Linphone - Histórico de chamadas" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 +#: ../gtk/main.c:1342 ../coreapi/linphonecore.c:3408 #, fuzzy msgid "Call ended" msgstr "Chamada cancelada." -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 +#: ../gtk/main.c:1345 ../coreapi/linphonecore.c:250 msgid "Incoming call" msgstr "Camadas recebidas" -#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 +#: ../gtk/main.c:1347 ../gtk/incall_view.c:508 ../gtk/main.ui.h:5 msgid "Answer" msgstr "" -#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1349 ../gtk/main.ui.h:6 #, fuzzy msgid "Decline" msgstr "linha" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy msgid "Call paused" msgstr "Abortado" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy, c-format msgid "by %s" msgstr "Contatando " -#: ../gtk/main.c:1191 +#: ../gtk/main.c:1422 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1353 +#: ../gtk/main.c:1584 msgid "Website link" msgstr "" -#: ../gtk/main.c:1402 +#: ../gtk/main.c:1633 msgid "Linphone - a video internet phone" msgstr "" -#: ../gtk/main.c:1494 +#: ../gtk/main.c:1725 #, c-format msgid "%s (Default)" msgstr "" -#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 +#: ../gtk/main.c:2061 ../coreapi/callbacks.c:827 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1806 +#: ../gtk/main.c:2071 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1911 +#: ../gtk/main.c:2207 msgid "A free SIP video-phone" msgstr "" -#: ../gtk/friendlist.c:469 +#: ../gtk/friendlist.c:505 #, fuzzy msgid "Add to addressbook" msgstr "Catálogo de endereços" -#: ../gtk/friendlist.c:643 +#: ../gtk/friendlist.c:691 msgid "Presence status" msgstr "Status de presença" -#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:709 ../gtk/propertybox.c:556 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Nome" -#: ../gtk/friendlist.c:673 +#: ../gtk/friendlist.c:721 #, fuzzy msgid "Call" msgstr "Histórico de chamadas" -#: ../gtk/friendlist.c:678 +#: ../gtk/friendlist.c:726 #, fuzzy msgid "Chat" msgstr "Sala de bate-papo" -#: ../gtk/friendlist.c:708 +#: ../gtk/friendlist.c:756 #, c-format msgid "Search in %s directory" msgstr "" -#: ../gtk/friendlist.c:924 +#: ../gtk/friendlist.c:971 #, fuzzy, c-format msgid "Edit contact '%s'" msgstr "Edicar informação de contato" -#: ../gtk/friendlist.c:925 +#: ../gtk/friendlist.c:972 #, c-format msgid "Delete contact '%s'" msgstr "" -#: ../gtk/friendlist.c:926 +#: ../gtk/friendlist.c:973 #, c-format msgid "Delete chat history of '%s'" msgstr "" -#: ../gtk/friendlist.c:977 +#: ../gtk/friendlist.c:1024 #, c-format msgid "Add new contact from %s directory" msgstr "" -#: ../gtk/propertybox.c:373 +#: ../gtk/propertybox.c:562 msgid "Rate (Hz)" msgstr "Taxa (Hz)" -#: ../gtk/propertybox.c:379 +#: ../gtk/propertybox.c:568 msgid "Status" msgstr "" -#: ../gtk/propertybox.c:385 -msgid "Min bitrate (kbit/s)" +#: ../gtk/propertybox.c:574 +#, fuzzy +msgid "Bitrate (kbit/s)" msgstr "Bitrate mínimo (kbits/s)" -#: ../gtk/propertybox.c:392 +#: ../gtk/propertybox.c:581 msgid "Parameters" msgstr "Parâmetros" -#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:624 ../gtk/propertybox.c:767 msgid "Enabled" msgstr "Ativado" -#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:626 ../gtk/propertybox.c:767 msgid "Disabled" msgstr "Desativado" -#: ../gtk/propertybox.c:624 +#: ../gtk/propertybox.c:813 #, fuzzy msgid "Account" msgstr "Aceitar" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:1057 msgid "English" msgstr "" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:1058 msgid "French" msgstr "" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:1059 msgid "Swedish" msgstr "" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:1060 msgid "Italian" msgstr "" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:1061 msgid "Spanish" msgstr "" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:1062 msgid "Brazilian Portugese" msgstr "" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:1063 msgid "Polish" msgstr "" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:1064 msgid "German" msgstr "" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:1065 msgid "Russian" msgstr "" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:1066 msgid "Japanese" msgstr "" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:1067 msgid "Dutch" msgstr "" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:1068 msgid "Hungarian" msgstr "" -#: ../gtk/propertybox.c:776 +#: ../gtk/propertybox.c:1069 msgid "Czech" msgstr "" -#: ../gtk/propertybox.c:777 +#: ../gtk/propertybox.c:1070 msgid "Chinese" msgstr "" -#: ../gtk/propertybox.c:778 +#: ../gtk/propertybox.c:1071 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:779 +#: ../gtk/propertybox.c:1072 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:780 +#: ../gtk/propertybox.c:1073 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:781 +#: ../gtk/propertybox.c:1074 msgid "Serbian" msgstr "" -#: ../gtk/propertybox.c:848 +#: ../gtk/propertybox.c:1141 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" -#: ../gtk/propertybox.c:934 +#: ../gtk/propertybox.c:1219 msgid "None" msgstr "Nenhum" -#: ../gtk/propertybox.c:938 +#: ../gtk/propertybox.c:1223 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:944 +#: ../gtk/propertybox.c:1229 msgid "ZRTP" msgstr "" @@ -442,110 +448,118 @@ msgstr "" msgid "I have already a sip account and I just want to use it" msgstr "" -#: ../gtk/setupwizard.c:85 +#: ../gtk/setupwizard.c:46 +msgid "I want to specify a remote configuration URI" +msgstr "" + +#: ../gtk/setupwizard.c:89 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:92 +#: ../gtk/setupwizard.c:96 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4 #, fuzzy msgid "Username:" msgstr "Usuário" -#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:98 ../gtk/password.ui.h:4 ../gtk/ldap.ui.h:5 #, fuzzy msgid "Password:" msgstr "Senha:" -#: ../gtk/setupwizard.c:114 +#: ../gtk/setupwizard.c:118 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:125 #, fuzzy msgid "Username*" msgstr "Usuário" -#: ../gtk/setupwizard.c:122 +#: ../gtk/setupwizard.c:126 #, fuzzy msgid "Password*" msgstr "Senha:" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:129 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:126 +#: ../gtk/setupwizard.c:130 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:302 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:299 +#: ../gtk/setupwizard.c:303 #, fuzzy msgid "Username: (*)" msgstr "Usuário" -#: ../gtk/setupwizard.c:301 +#: ../gtk/setupwizard.c:305 #, fuzzy msgid "Password: (*)" msgstr "Senha:" -#: ../gtk/setupwizard.c:303 +#: ../gtk/setupwizard.c:307 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:305 +#: ../gtk/setupwizard.c:309 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:369 +#: ../gtk/setupwizard.c:373 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:380 +#: ../gtk/setupwizard.c:384 msgid "Thank you. Your account is now configured and ready for use." msgstr "" -#: ../gtk/setupwizard.c:388 +#: ../gtk/setupwizard.c:392 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:564 +#: ../gtk/setupwizard.c:572 +msgid "SIP account configuration assistant" +msgstr "" + +#: ../gtk/setupwizard.c:590 msgid "Welcome to the account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:569 +#: ../gtk/setupwizard.c:595 msgid "Account setup assistant" msgstr "" -#: ../gtk/setupwizard.c:575 +#: ../gtk/setupwizard.c:601 msgid "Configure your account (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:580 +#: ../gtk/setupwizard.c:606 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:584 +#: ../gtk/setupwizard.c:610 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:593 +#: ../gtk/setupwizard.c:619 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:598 +#: ../gtk/setupwizard.c:624 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:602 +#: ../gtk/setupwizard.c:628 msgid "Terminating" msgstr "" @@ -615,138 +629,153 @@ msgstr "Histórico de chamadas" msgid "Direct or through server" msgstr "" -#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:261 ../gtk/incall_view.c:272 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:286 +#: ../gtk/incall_view.c:267 ../gtk/incall_view.c:268 +#, c-format +msgid "%ix%i" +msgstr "" + +#: ../gtk/incall_view.c:297 #, c-format msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:395 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:476 +#: ../gtk/incall_view.c:487 #, fuzzy msgid "Calling..." msgstr "Contatando " -#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:700 msgid "00::00::00" msgstr "" -#: ../gtk/incall_view.c:490 +#: ../gtk/incall_view.c:501 #, fuzzy msgid "Incoming call" msgstr "Camadas recebidas" -#: ../gtk/incall_view.c:527 +#: ../gtk/incall_view.c:538 msgid "good" msgstr "" -#: ../gtk/incall_view.c:529 +#: ../gtk/incall_view.c:540 msgid "average" msgstr "" -#: ../gtk/incall_view.c:531 +#: ../gtk/incall_view.c:542 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:533 +#: ../gtk/incall_view.c:544 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:535 +#: ../gtk/incall_view.c:546 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:547 ../gtk/incall_view.c:563 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:651 +#: ../gtk/incall_view.c:662 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:657 +#: ../gtk/incall_view.c:668 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:663 +#: ../gtk/incall_view.c:674 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:674 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 #, fuzzy msgid "In call" msgstr "Contatando " -#: ../gtk/incall_view.c:718 +#: ../gtk/incall_view.c:731 #, fuzzy msgid "Paused call" msgstr "Contatando " -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:744 #, c-format msgid "%02i::%02i::%02i" msgstr "" -#: ../gtk/incall_view.c:748 +#: ../gtk/incall_view.c:762 #, fuzzy msgid "Call ended." msgstr "Chamada cancelada." -#: ../gtk/incall_view.c:778 +#: ../gtk/incall_view.c:793 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:796 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:784 +#: ../gtk/incall_view.c:799 #, fuzzy msgid "Transfer failed." msgstr "Histórico de chamadas" -#: ../gtk/incall_view.c:828 +#: ../gtk/incall_view.c:843 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:850 ../gtk/main.ui.h:9 msgid "Pause" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 msgid "(Paused)" msgstr "" -#: ../gtk/loginframe.c:93 +#: ../gtk/loginframe.c:88 #, c-format msgid "Please enter login information for %s" msgstr "" +#: ../gtk/config-fetching.c:57 +#, fuzzy, c-format +msgid "fetching from %s" +msgstr "Camadas recebidas" + +#: ../gtk/config-fetching.c:73 +#, c-format +msgid "Downloading of remote configuration from %s failed." +msgstr "" + #: ../gtk/main.ui.h:1 #, fuzzy msgid "Callee name" @@ -796,99 +825,99 @@ msgid "_Options" msgstr "" #: ../gtk/main.ui.h:18 +#, fuzzy +msgid "Set configuration URI" +msgstr "Configuração de proxy/registrador" + +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 #, fuzzy msgid "Enable self-view" msgstr "Ativado" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:28 #, fuzzy msgid "Contacts" msgstr "Contatando " -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 -#, fuzzy -msgid "Add" -msgstr "Endereço" - -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 -msgid "Edit" -msgstr "Editar" - -#: ../gtk/main.ui.h:30 +#: ../gtk/main.ui.h:29 msgid "Search" msgstr "" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 #, fuzzy msgid "Add contacts from directory" msgstr "Informação de contato" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 #, fuzzy msgid "Add contact" msgstr "Edicar informação de contato" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Recent calls" msgstr "Camadas recebidas" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 #, fuzzy msgid "My current identity:" msgstr "Identificação SIP:" -#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:34 ../gtk/tunnel_config.ui.h:7 #, fuzzy msgid "Username" msgstr "Usuário" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:8 #, fuzzy msgid "Password" msgstr "Senha:" -#: ../gtk/main.ui.h:37 +#: ../gtk/main.ui.h:36 msgid "Internet connection:" msgstr "" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 #, fuzzy msgid "Automatically log me in" msgstr "Adquirir automaticamente um nome de servidor válido." +#: ../gtk/main.ui.h:38 ../gtk/password.ui.h:3 +msgid "UserID" +msgstr "" + #: ../gtk/main.ui.h:39 #, fuzzy msgid "Login information" @@ -950,6 +979,7 @@ msgid "" "pl: Robert Nasiadek \n" "cs: Petr Pisar \n" "hu: anonymous\n" +"he: Eli Zaretskii \n" msgstr "" #: ../gtk/contact.ui.h:2 @@ -987,10 +1017,6 @@ msgstr "Autenticação requerida" msgid "Please enter the domain password" msgstr "" -#: ../gtk/password.ui.h:3 -msgid "UserID" -msgstr "" - #: ../gtk/call_logs.ui.h:1 #, fuzzy msgid "Call history" @@ -1032,326 +1058,395 @@ msgid "Looks like sip:" msgstr "" #: ../gtk/sip_account.ui.h:7 -msgid "Route (optional):" -msgstr "Rota (opcional):" - -#: ../gtk/sip_account.ui.h:8 #, fuzzy msgid "Registration duration (sec):" msgstr "Período do registo:" +#: ../gtk/sip_account.ui.h:8 +#, fuzzy +msgid "Contact params (optional):" +msgstr "Rota (opcional):" + #: ../gtk/sip_account.ui.h:9 +msgid "Route (optional):" +msgstr "Rota (opcional):" + +#: ../gtk/sip_account.ui.h:10 +#, fuzzy +msgid "Transport" +msgstr "Contatando " + +#: ../gtk/sip_account.ui.h:11 msgid "Register" msgstr "" -#: ../gtk/sip_account.ui.h:10 +#: ../gtk/sip_account.ui.h:12 #, fuzzy msgid "Publish presence information" msgstr "Informar informação de presença" -#: ../gtk/sip_account.ui.h:11 +#: ../gtk/sip_account.ui.h:13 msgid "Configure a SIP account" msgstr "" #: ../gtk/parameters.ui.h:1 -msgid "default soundcard" +msgid "anonymous" msgstr "" #: ../gtk/parameters.ui.h:2 -msgid "a sound card" +msgid "GSSAPI" msgstr "" #: ../gtk/parameters.ui.h:3 -msgid "default camera" +msgid "SASL" msgstr "" #: ../gtk/parameters.ui.h:4 -msgid "CIF" +msgid "default soundcard" msgstr "" #: ../gtk/parameters.ui.h:5 +msgid "a sound card" +msgstr "" + +#: ../gtk/parameters.ui.h:6 +msgid "default camera" +msgstr "" + +#: ../gtk/parameters.ui.h:7 +msgid "CIF" +msgstr "" + +#: ../gtk/parameters.ui.h:8 #, fuzzy msgid "Audio codecs" msgstr "Codec's de áudio" -#: ../gtk/parameters.ui.h:6 +#: ../gtk/parameters.ui.h:9 #, fuzzy msgid "Video codecs" msgstr "Codec's de áudio" -#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:10 ../gtk/keypad.ui.h:5 msgid "C" msgstr "" -#: ../gtk/parameters.ui.h:8 +#: ../gtk/parameters.ui.h:11 msgid "SIP (UDP)" msgstr "" -#: ../gtk/parameters.ui.h:9 +#: ../gtk/parameters.ui.h:12 msgid "SIP (TCP)" msgstr "" -#: ../gtk/parameters.ui.h:10 +#: ../gtk/parameters.ui.h:13 msgid "SIP (TLS)" msgstr "" -#: ../gtk/parameters.ui.h:11 +#: ../gtk/parameters.ui.h:14 msgid "Settings" msgstr "" -#: ../gtk/parameters.ui.h:12 +#: ../gtk/parameters.ui.h:15 msgid "Set Maximum Transmission Unit:" msgstr "" -#: ../gtk/parameters.ui.h:13 +#: ../gtk/parameters.ui.h:16 msgid "Send DTMFs as SIP info" msgstr "" -#: ../gtk/parameters.ui.h:14 +#: ../gtk/parameters.ui.h:17 msgid "Use IPv6 instead of IPv4" msgstr "" -#: ../gtk/parameters.ui.h:15 +#: ../gtk/parameters.ui.h:18 #, fuzzy msgid "Transport" msgstr "Contatando " -#: ../gtk/parameters.ui.h:16 +#: ../gtk/parameters.ui.h:19 msgid "Media encryption type" msgstr "" -#: ../gtk/parameters.ui.h:17 +#: ../gtk/parameters.ui.h:20 msgid "Video RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:18 +#: ../gtk/parameters.ui.h:21 msgid "Audio RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:19 -msgid "DSCP fields" -msgstr "" - -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:22 msgid "Fixed" msgstr "" -#: ../gtk/parameters.ui.h:21 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:22 +#: ../gtk/parameters.ui.h:23 msgid "Media encryption is mandatory" msgstr "" -#: ../gtk/parameters.ui.h:23 -msgid "Network protocol and ports" -msgstr "" - #: ../gtk/parameters.ui.h:24 -msgid "Direct connection to the Internet" +msgid "Tunnel" msgstr "" #: ../gtk/parameters.ui.h:25 -msgid "Behind NAT / Firewall (specify gateway IP below)" +msgid "DSCP fields" msgstr "" #: ../gtk/parameters.ui.h:26 #, fuzzy -msgid "Public IP address:" -msgstr "Endereço sip:" +msgid "SIP/TCP port" +msgstr "Porta SIP" #: ../gtk/parameters.ui.h:27 -msgid "Behind NAT / Firewall (use STUN to resolve)" -msgstr "" +#, fuzzy +msgid "SIP/UDP port" +msgstr "Porta SIP" #: ../gtk/parameters.ui.h:28 -msgid "Behind NAT / Firewall (use ICE)" +msgid "Network protocol and ports" msgstr "" #: ../gtk/parameters.ui.h:29 -msgid "Behind NAT / Firewall (use uPnP)" +msgid "Direct connection to the Internet" msgstr "" #: ../gtk/parameters.ui.h:30 +msgid "Behind NAT / Firewall (specify gateway IP )" +msgstr "" + +#: ../gtk/parameters.ui.h:31 +msgid "Behind NAT / Firewall (use STUN to resolve)" +msgstr "" + +#: ../gtk/parameters.ui.h:32 +msgid "Behind NAT / Firewall (use ICE)" +msgstr "" + +#: ../gtk/parameters.ui.h:33 +msgid "Behind NAT / Firewall (use uPnP)" +msgstr "" + +#: ../gtk/parameters.ui.h:34 +#, fuzzy +msgid "Public IP address:" +msgstr "Endereço sip:" + +#: ../gtk/parameters.ui.h:35 #, fuzzy msgid "Stun server:" msgstr "Dispositivo de som" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:36 #, fuzzy msgid "NAT and Firewall" msgstr "Contatando " -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:37 #, fuzzy msgid "Network settings" msgstr "Rede" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:38 #, fuzzy msgid "Ring sound:" msgstr "Som do toque:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:39 msgid "ALSA special device (optional):" msgstr "" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:40 #, fuzzy msgid "Capture device:" msgstr "Dispositivo de captura de som:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:41 #, fuzzy msgid "Ring device:" msgstr "Dispositivo de som" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:42 #, fuzzy msgid "Playback device:" msgstr "Dispositivo de som:" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:43 msgid "Enable echo cancellation" msgstr "" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:44 #, fuzzy msgid "Audio" msgstr "Contatando " -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:45 #, fuzzy msgid "Video input device:" msgstr "Dispositivo de som" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:46 msgid "Prefered video resolution:" msgstr "" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:47 +#, fuzzy +msgid "Video output method:" +msgstr "Dispositivo de som" + +#: ../gtk/parameters.ui.h:48 #, fuzzy msgid "Video" msgstr "Contatando " -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:49 msgid "Multimedia settings" msgstr "" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:50 msgid "This section defines your SIP address when not using a SIP account" msgstr "" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:51 msgid "Your display name (eg: John Doe):" msgstr "" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:52 #, fuzzy msgid "Your username:" msgstr "Usuário" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:53 #, fuzzy msgid "Your resulting SIP address:" msgstr "Seu endereço SIP:" -#: ../gtk/parameters.ui.h:48 +#: ../gtk/parameters.ui.h:54 #, fuzzy msgid "Default identity" msgstr "Identificação SIP:" -#: ../gtk/parameters.ui.h:49 +#: ../gtk/parameters.ui.h:55 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:56 +#, fuzzy +msgid "Add" +msgstr "Endereço" + +#: ../gtk/parameters.ui.h:57 +msgid "Edit" +msgstr "Editar" + +#: ../gtk/parameters.ui.h:58 msgid "Remove" msgstr "Remover" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:59 #, fuzzy msgid "Proxy accounts" msgstr "Contatando " -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:60 msgid "Erase all passwords" msgstr "" -#: ../gtk/parameters.ui.h:55 +#: ../gtk/parameters.ui.h:61 #, fuzzy msgid "Privacy" msgstr "Contatando " -#: ../gtk/parameters.ui.h:56 +#: ../gtk/parameters.ui.h:62 msgid "Manage SIP Accounts" msgstr "" -#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Ativado" -#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Desativar" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:65 #, fuzzy msgid "Codecs" msgstr "Contatando " -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:66 msgid "0 stands for \"unlimited\"" msgstr "" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:67 msgid "Upload speed limit in Kbit/sec:" msgstr "" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:68 msgid "Download speed limit in Kbit/sec:" msgstr "" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:69 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:70 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:71 msgid "Bandwidth control" msgstr "" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:72 #, fuzzy msgid "Codecs" msgstr "Codec's de áudio" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:73 #, fuzzy msgid "Language" msgstr "Contatando " -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:74 msgid "Show advanced settings" msgstr "" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:75 #, fuzzy msgid "Level" msgstr "Contatando " -#: ../gtk/parameters.ui.h:70 +#: ../gtk/parameters.ui.h:76 #, fuzzy msgid "User interface" msgstr "Usuário" -#: ../gtk/parameters.ui.h:71 +#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2 +#, fuzzy +msgid "Server address:" +msgstr "Endereço do servidor" + +#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3 +#, fuzzy +msgid "Authentication method:" +msgstr "Informações de autenticação" + +#: ../gtk/parameters.ui.h:80 +msgid "label" +msgstr "" + +#: ../gtk/parameters.ui.h:81 +#, fuzzy +msgid "LDAP Account setup" +msgstr "Contatando " + +#: ../gtk/parameters.ui.h:82 +msgid "LDAP" +msgstr "" + +#: ../gtk/parameters.ui.h:83 #, fuzzy msgid "Done" msgstr "Nenhum" @@ -1380,7 +1475,7 @@ msgstr "" #: ../gtk/dscp_settings.ui.h:1 #, fuzzy -msgid "Dscp settings" +msgid "DSCP settings" msgstr "Rede" #: ../gtk/dscp_settings.ui.h:2 @@ -1436,6 +1531,14 @@ msgid "Round trip time" msgstr "Propriedades de som" #: ../gtk/call_statistics.ui.h:9 +msgid "Video resolution received" +msgstr "" + +#: ../gtk/call_statistics.ui.h:10 +msgid "Video resolution sent" +msgstr "" + +#: ../gtk/call_statistics.ui.h:11 #, fuzzy msgid "Call statistics and information" msgstr "Informação de contato" @@ -1520,19 +1623,141 @@ msgstr "" msgid "1" msgstr "" -#: ../coreapi/linphonecore.c:228 +#: ../gtk/ldap.ui.h:1 +#, fuzzy +msgid "LDAP Settings" +msgstr "Rede" + +#: ../gtk/ldap.ui.h:6 +msgid "Use TLS Connection" +msgstr "" + +#: ../gtk/ldap.ui.h:7 +#, fuzzy +msgid "Not yet available" +msgstr "Informações não disponíveis" + +#: ../gtk/ldap.ui.h:8 +#, fuzzy +msgid "Connection" +msgstr "Contatando " + +#: ../gtk/ldap.ui.h:9 +msgid "Bind DN" +msgstr "" + +#: ../gtk/ldap.ui.h:10 +msgid "Authname" +msgstr "" + +#: ../gtk/ldap.ui.h:11 +msgid "Realm" +msgstr "" + +#: ../gtk/ldap.ui.h:12 +#, fuzzy +msgid "SASL" +msgstr "Contatando " + +#: ../gtk/ldap.ui.h:13 +msgid "Base object:" +msgstr "" + +#: ../gtk/ldap.ui.h:15 +#, no-c-format +msgid "Filter (%s for name):" +msgstr "" + +#: ../gtk/ldap.ui.h:16 +msgid "Name Attribute:" +msgstr "" + +#: ../gtk/ldap.ui.h:17 +#, fuzzy +msgid "SIP address attribute:" +msgstr "Endereço" + +#: ../gtk/ldap.ui.h:18 +msgid "Attributes to query:" +msgstr "" + +#: ../gtk/ldap.ui.h:19 +#, fuzzy +msgid "Search" +msgstr "Contatando " + +#: ../gtk/ldap.ui.h:20 +msgid "Timeout for search:" +msgstr "" + +#: ../gtk/ldap.ui.h:21 +msgid "Max results:" +msgstr "" + +#: ../gtk/ldap.ui.h:22 +msgid "Follow Aliases" +msgstr "" + +#: ../gtk/ldap.ui.h:23 +#, fuzzy +msgid "Miscellaneous" +msgstr "Contatando " + +#: ../gtk/ldap.ui.h:24 +msgid "ANONYMOUS" +msgstr "" + +#: ../gtk/ldap.ui.h:25 +msgid "SIMPLE" +msgstr "" + +#: ../gtk/ldap.ui.h:26 +msgid "DIGEST-MD5" +msgstr "" + +#: ../gtk/ldap.ui.h:27 +msgid "NTLM" +msgstr "" + +#: ../gtk/config-uri.ui.h:1 +msgid "Specifying a remote configuration URI" +msgstr "" + +#: ../gtk/config-uri.ui.h:2 +msgid "" +"This dialog allows to set an http or https address when configuration is to " +"be fetched at startup.\n" +"Please enter or modify the configuration URI below. After clicking OK, " +"Linphone will restart automatically in order to fetch and take into account " +"the new configuration. " +msgstr "" + +#: ../gtk/config-uri.ui.h:4 +msgid "https://" +msgstr "" + +#: ../gtk/provisioning-fetch.ui.h:1 +#, fuzzy +msgid "Configuring..." +msgstr "Contatando " + +#: ../gtk/provisioning-fetch.ui.h:2 +msgid "Please wait while fetching configuration from server..." +msgstr "" + +#: ../coreapi/linphonecore.c:238 msgid "aborted" msgstr "Abortado" -#: ../coreapi/linphonecore.c:231 +#: ../coreapi/linphonecore.c:241 msgid "completed" msgstr "Competado" -#: ../coreapi/linphonecore.c:234 +#: ../coreapi/linphonecore.c:244 msgid "missed" msgstr "Perdido" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:249 #, fuzzy, c-format msgid "" "%s at %s\n" @@ -1546,98 +1771,82 @@ msgstr "" "Status: %s\n" "Duração: %i min %i seg\n" -#: ../coreapi/linphonecore.c:240 +#: ../coreapi/linphonecore.c:250 msgid "Outgoing call" msgstr "Chamadas efetuadas" -#: ../coreapi/linphonecore.c:1321 +#: ../coreapi/linphonecore.c:1264 #, fuzzy msgid "Ready" msgstr "Pronto." -#: ../coreapi/linphonecore.c:2205 +#: ../coreapi/linphonecore.c:1372 +#, fuzzy +msgid "Configuring" +msgstr "Informações" + +#: ../coreapi/linphonecore.c:2331 msgid "Looking for telephone number destination..." msgstr "Procurando por telefone de destino..." -#: ../coreapi/linphonecore.c:2208 +#: ../coreapi/linphonecore.c:2334 msgid "Could not resolve this number." msgstr "Não foi possível encontrar este número." -#: ../coreapi/linphonecore.c:2252 -msgid "" -"Could not parse given sip address. A sip url usually looks like sip:" -"user@domain" -msgstr "" - -#: ../coreapi/linphonecore.c:2453 +#. must be known at that time +#: ../coreapi/linphonecore.c:2609 #, fuzzy msgid "Contacting" msgstr "Contatando " -#: ../coreapi/linphonecore.c:2460 +#: ../coreapi/linphonecore.c:2616 #, fuzzy msgid "Could not call" msgstr "Não é possível achar arquivo pixmap: %s" -#: ../coreapi/linphonecore.c:2570 +#: ../coreapi/linphonecore.c:2765 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2752 +#: ../coreapi/linphonecore.c:2952 #, fuzzy msgid "is contacting you" msgstr "está chamado você." -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2820 +#: ../coreapi/linphonecore.c:3020 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:3159 +#: ../coreapi/linphonecore.c:3362 msgid "Connected." msgstr "Conectado." -#: ../coreapi/linphonecore.c:3187 +#: ../coreapi/linphonecore.c:3388 #, fuzzy msgid "Call aborted" msgstr "Abortado" -#: ../coreapi/linphonecore.c:3378 +#: ../coreapi/linphonecore.c:3581 msgid "Could not pause the call" msgstr "" -#: ../coreapi/linphonecore.c:3383 +#: ../coreapi/linphonecore.c:3586 msgid "Pausing the current call..." msgstr "" -#: ../coreapi/misc.c:148 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the pcm oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -"'modprobe snd-pcm-oss' as root to load it." -msgstr "" - -#: ../coreapi/misc.c:151 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the mixer oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -" 'modprobe snd-mixer-oss' as root to load it." -msgstr "" - -#: ../coreapi/misc.c:496 +#: ../coreapi/misc.c:394 msgid "Stun lookup in progress..." msgstr "" -#: ../coreapi/misc.c:630 +#: ../coreapi/misc.c:576 msgid "ICE local candidates gathering in progress..." msgstr "" @@ -1688,146 +1897,155 @@ msgid "Pending" msgstr "" #: ../coreapi/friend.c:66 +#, fuzzy +msgid "Vacation" +msgstr "Informações" + +#: ../coreapi/friend.c:68 msgid "Unknown-bug" msgstr "" -#: ../coreapi/proxy.c:204 +#: ../coreapi/proxy.c:209 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "" -#: ../coreapi/proxy.c:210 +#: ../coreapi/proxy.c:215 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" msgstr "" -#: ../coreapi/proxy.c:1069 +#: ../coreapi/proxy.c:1125 #, fuzzy, c-format msgid "Could not login as %s" msgstr "Não é possível achar arquivo pixmap: %s" -#: ../coreapi/callbacks.c:286 +#: ../coreapi/callbacks.c:289 #, fuzzy msgid "Remote ringing." msgstr "Serviços remotos" -#: ../coreapi/callbacks.c:306 +#: ../coreapi/callbacks.c:305 #, fuzzy msgid "Remote ringing..." msgstr "Serviços remotos" -#: ../coreapi/callbacks.c:317 +#: ../coreapi/callbacks.c:316 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:368 +#: ../coreapi/callbacks.c:367 #, fuzzy, c-format msgid "Call with %s is paused." msgstr "Bate-papo com %s" -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:380 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:392 +#: ../coreapi/callbacks.c:391 #, fuzzy msgid "Call resumed." msgstr "Chamada cancelada." -#: ../coreapi/callbacks.c:397 +#: ../coreapi/callbacks.c:396 #, fuzzy, c-format msgid "Call answered by %s." msgstr "" "Ligar ou\n" "atender" -#: ../coreapi/callbacks.c:412 +#: ../coreapi/callbacks.c:414 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:460 +#: ../coreapi/callbacks.c:463 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:469 +#: ../coreapi/callbacks.c:471 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:475 +#: ../coreapi/callbacks.c:487 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:558 msgid "Call terminated." msgstr "" -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:586 msgid "User is busy." msgstr "Usuário está ocupado." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:587 msgid "User is temporarily unavailable." msgstr "Usuário está temporáriamente indisponível." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:558 +#: ../coreapi/callbacks.c:589 msgid "User does not want to be disturbed." msgstr "" -#: ../coreapi/callbacks.c:559 +#: ../coreapi/callbacks.c:590 msgid "Call declined." msgstr "" -#: ../coreapi/callbacks.c:571 +#: ../coreapi/callbacks.c:603 msgid "No response." msgstr "" -#: ../coreapi/callbacks.c:575 +#: ../coreapi/callbacks.c:607 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:591 +#: ../coreapi/callbacks.c:623 #, fuzzy msgid "Redirected" msgstr "Redirecionado para %s..." -#: ../coreapi/callbacks.c:627 +#: ../coreapi/callbacks.c:665 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:633 +#: ../coreapi/callbacks.c:677 #, fuzzy msgid "Call failed." msgstr "Histórico de chamadas" -#: ../coreapi/callbacks.c:737 +#: ../coreapi/callbacks.c:751 #, fuzzy, c-format msgid "Registration on %s successful." msgstr "Registro em %s efetuado." -#: ../coreapi/callbacks.c:738 +#: ../coreapi/callbacks.c:752 #, fuzzy, c-format msgid "Unregistration on %s done." msgstr "Registro em %s efetuado." -#: ../coreapi/callbacks.c:758 +#: ../coreapi/callbacks.c:772 msgid "no response timeout" msgstr "" -#: ../coreapi/callbacks.c:761 +#: ../coreapi/callbacks.c:775 #, fuzzy, c-format msgid "Registration on %s failed: %s" msgstr "Registro falhou (tempo esgotado)." -#: ../coreapi/linphonecall.c:129 +#: ../coreapi/callbacks.c:785 +msgid "Service unavailable, retrying" +msgstr "" + +#: ../coreapi/linphonecall.c:142 #, fuzzy, c-format msgid "Authentication token is %s" msgstr "Informações de autenticação" -#: ../coreapi/linphonecall.c:2355 +#: ../coreapi/linphonecall.c:2678 #, fuzzy, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -1841,18 +2059,10 @@ msgstr[1] "Você perdeu %i ligação(ões)." #~ msgid "Choosing a username" #~ msgstr "Usuário" -#, fuzzy -#~ msgid "Confirmation" -#~ msgstr "Informações" - #, fuzzy #~ msgid "Enable video" #~ msgstr "Ativado" -#, fuzzy -#~ msgid "Authentication failure" -#~ msgstr "Informações de autenticação" - #, fuzzy #~ msgid "Contact list" #~ msgstr "Contatando " @@ -1894,10 +2104,6 @@ msgstr[1] "Você perdeu %i ligação(ões)." #~ "linphone sempre usa IPv4. Por favor atualize sua configuração se deseja " #~ "usar IPv6" -#, fuzzy -#~ msgid "Incoming call from %s" -#~ msgstr "Camadas recebidas" - #~ msgid "Accept" #~ msgstr "Aceitar" @@ -1928,10 +2134,6 @@ msgstr[1] "Você perdeu %i ligação(ões)." #~ msgid "Gone" #~ msgstr "Nenhum" -#, fuzzy -#~ msgid "SIP address" -#~ msgstr "Endereço" - #, fuzzy #~ msgid "_Properties" #~ msgstr "Propriedades RTP:" @@ -2064,9 +2266,6 @@ msgstr[1] "Você perdeu %i ligação(ões)." #~ msgid "It is strongly recommended to use port 5060." #~ msgstr "É altamente recomendavel usar a porta 5060." -#~ msgid "SIP port" -#~ msgstr "Porta SIP" - #~ msgid "Identity" #~ msgstr "Identificação" @@ -2092,9 +2291,6 @@ msgstr[1] "Você perdeu %i ligação(ões)." #~ msgid "None." #~ msgstr "Nenhum" -#~ msgid "Proxy/Registrar configuration box" -#~ msgstr "Configuração de proxy/registrador" - #~ msgid "Send registration:" #~ msgstr "Enviar registro:" @@ -2128,9 +2324,6 @@ msgstr[1] "Você perdeu %i ligação(ões)." #~ msgid "Index" #~ msgstr "Índice" -#~ msgid "Server address" -#~ msgstr "Endereço do servidor" - #~ msgid "28k modem" #~ msgstr "Modem 28k" diff --git a/po/ru.po b/po/ru.po index 0c81d472b..cd4da5d08 100644 --- a/po/ru.po +++ b/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.7.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-24 14:04+0200\n" +"POT-Creation-Date: 2014-02-14 14:57+0100\n" "PO-Revision-Date: 2010-01-22 18:43+0300\n" "Last-Translator: Maxim Prokopyev \n" "Language-Team: Russian \n" @@ -17,12 +17,12 @@ msgstr "" "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" -#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:969 #, c-format msgid "Call %s" msgstr "Набрать %s" -#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:970 #, c-format msgid "Send text to %s" msgstr "Послать текст к %s" @@ -105,37 +105,37 @@ msgstr "Я" msgid "Couldn't find pixmap file: %s" msgstr "Невозможно найти графический файл: %s" -#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:363 ../gtk/friendlist.c:919 msgid "Invalid sip contact !" msgstr "Неверный sip-контакт!" -#: ../gtk/main.c:92 +#: ../gtk/main.c:102 msgid "log to stdout some debug information while running." msgstr "" "Вывод некоторой отладочной информации на устройство стандартного вывода во " "время работы" -#: ../gtk/main.c:99 +#: ../gtk/main.c:109 msgid "path to a file to write logs into." msgstr "путь к файлу для записи журнала работы." -#: ../gtk/main.c:106 +#: ../gtk/main.c:116 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:113 +#: ../gtk/main.c:123 msgid "Start only in the system tray, do not show the main interface." msgstr "Запускать только в системном лотке, не показывая главное окно" -#: ../gtk/main.c:120 +#: ../gtk/main.c:130 msgid "address to call right now" msgstr "адрес для звонка" -#: ../gtk/main.c:127 +#: ../gtk/main.c:137 msgid "if set automatically answer incoming calls" msgstr "автоматически принимать входящие вызовы, если включено" -#: ../gtk/main.c:134 +#: ../gtk/main.c:144 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -143,12 +143,17 @@ msgstr "" "Укажите рабочий каталог (должен содержать установленные файлы приложения, " "например: c:\\Program Files\\Linphone)" -#: ../gtk/main.c:515 +#: ../gtk/main.c:151 +#, fuzzy +msgid "Configuration file" +msgstr "Подтверждение" + +#: ../gtk/main.c:573 #, c-format msgid "Call with %s" msgstr "Чат с %s" -#: ../gtk/main.c:946 +#: ../gtk/main.c:1150 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -161,68 +166,68 @@ msgstr "" "его(её) в свой контактный лист?\n" "Если вы ответите Нет, этот человек будет временно заблокирован." -#: ../gtk/main.c:1023 -#, c-format +#: ../gtk/main.c:1227 +#, fuzzy, c-format msgid "" "Please enter your password for username %s\n" -" at domain %s:" +" at realm %s:" msgstr "" "Пожалуйста, введите пароль для пользователя %s\n" " в домене %s:" -#: ../gtk/main.c:1126 +#: ../gtk/main.c:1339 msgid "Call error" msgstr "Ошибка вызова" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 +#: ../gtk/main.c:1342 ../coreapi/linphonecore.c:3408 msgid "Call ended" msgstr "Разговор окончен" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 +#: ../gtk/main.c:1345 ../coreapi/linphonecore.c:250 msgid "Incoming call" msgstr "Входящий вызов" -#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 +#: ../gtk/main.c:1347 ../gtk/incall_view.c:508 ../gtk/main.ui.h:5 msgid "Answer" msgstr "Ответить" -#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1349 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Отклонить" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 msgid "Call paused" msgstr "Вызов приостановлен" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy, c-format msgid "by %s" msgstr "Порты" -#: ../gtk/main.c:1191 +#: ../gtk/main.c:1422 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1353 +#: ../gtk/main.c:1584 msgid "Website link" msgstr "Ссылка на сайт" -#: ../gtk/main.c:1402 +#: ../gtk/main.c:1633 msgid "Linphone - a video internet phone" msgstr "Linphone - видео-телефон для интернета" -#: ../gtk/main.c:1494 +#: ../gtk/main.c:1725 #, c-format msgid "%s (Default)" msgstr "%s (По умолчанию)" -#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 +#: ../gtk/main.c:2061 ../coreapi/callbacks.c:827 #, c-format msgid "We are transferred to %s" msgstr "Мы переведены на %s" -#: ../gtk/main.c:1806 +#: ../gtk/main.c:2071 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -230,172 +235,173 @@ msgstr "" "На этом компьютере не обнаружено ни одной звуковой карты.\n" "Вы не сможете совершать или принимать аудио-вызовы." -#: ../gtk/main.c:1911 +#: ../gtk/main.c:2207 msgid "A free SIP video-phone" msgstr "Свободный SIP видео-телефон" -#: ../gtk/friendlist.c:469 +#: ../gtk/friendlist.c:505 msgid "Add to addressbook" msgstr "Добавить в адресную книгу" -#: ../gtk/friendlist.c:643 +#: ../gtk/friendlist.c:691 msgid "Presence status" msgstr "Статус присутствия" -#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:709 ../gtk/propertybox.c:556 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Имя" -#: ../gtk/friendlist.c:673 +#: ../gtk/friendlist.c:721 msgid "Call" msgstr "Вызов" -#: ../gtk/friendlist.c:678 +#: ../gtk/friendlist.c:726 #, fuzzy msgid "Chat" msgstr "Комната чата" -#: ../gtk/friendlist.c:708 +#: ../gtk/friendlist.c:756 #, c-format msgid "Search in %s directory" msgstr "Поиск в директории %s" -#: ../gtk/friendlist.c:924 +#: ../gtk/friendlist.c:971 #, c-format msgid "Edit contact '%s'" msgstr "Редактировать контакт '%s'" -#: ../gtk/friendlist.c:925 +#: ../gtk/friendlist.c:972 #, c-format msgid "Delete contact '%s'" msgstr "Удалить контакт '%s'" -#: ../gtk/friendlist.c:926 +#: ../gtk/friendlist.c:973 #, fuzzy, c-format msgid "Delete chat history of '%s'" msgstr "Удалить контакт '%s'" -#: ../gtk/friendlist.c:977 +#: ../gtk/friendlist.c:1024 #, c-format msgid "Add new contact from %s directory" msgstr "Добавить новый контакт из директории '%s'" -#: ../gtk/propertybox.c:373 +#: ../gtk/propertybox.c:562 msgid "Rate (Hz)" msgstr "Частота (Гц)" -#: ../gtk/propertybox.c:379 +#: ../gtk/propertybox.c:568 msgid "Status" msgstr "Статус" -#: ../gtk/propertybox.c:385 -msgid "Min bitrate (kbit/s)" +#: ../gtk/propertybox.c:574 +#, fuzzy +msgid "Bitrate (kbit/s)" msgstr "Минимальный битрейт (кбит/с)" -#: ../gtk/propertybox.c:392 +#: ../gtk/propertybox.c:581 msgid "Parameters" msgstr "Параметры" -#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:624 ../gtk/propertybox.c:767 msgid "Enabled" msgstr "Включен" -#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:626 ../gtk/propertybox.c:767 msgid "Disabled" msgstr "Отключен" -#: ../gtk/propertybox.c:624 +#: ../gtk/propertybox.c:813 msgid "Account" msgstr "Учетная запись" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:1057 msgid "English" msgstr "Английский" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:1058 msgid "French" msgstr "Французский" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:1059 msgid "Swedish" msgstr "Шведский" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:1060 msgid "Italian" msgstr "Итальянский" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:1061 msgid "Spanish" msgstr "Испанский" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:1062 msgid "Brazilian Portugese" msgstr "Бразильский португальский" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:1063 msgid "Polish" msgstr "Польский" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:1064 msgid "German" msgstr "Немецкий" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:1065 msgid "Russian" msgstr "Русский" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:1066 msgid "Japanese" msgstr "Японский" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:1067 msgid "Dutch" msgstr "Нидерландский" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:1068 msgid "Hungarian" msgstr "Венгерский" -#: ../gtk/propertybox.c:776 +#: ../gtk/propertybox.c:1069 msgid "Czech" msgstr "Чешский" -#: ../gtk/propertybox.c:777 +#: ../gtk/propertybox.c:1070 msgid "Chinese" msgstr "Китайский" -#: ../gtk/propertybox.c:778 +#: ../gtk/propertybox.c:1071 msgid "Traditional Chinese" msgstr "Традиционный китайский" -#: ../gtk/propertybox.c:779 +#: ../gtk/propertybox.c:1072 msgid "Norwegian" msgstr "Норвежский" -#: ../gtk/propertybox.c:780 +#: ../gtk/propertybox.c:1073 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:781 +#: ../gtk/propertybox.c:1074 msgid "Serbian" msgstr "" -#: ../gtk/propertybox.c:848 +#: ../gtk/propertybox.c:1141 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" "Вы должны перезапустить Linphone для того, чтобы языковые настройки вступили " "в силу." -#: ../gtk/propertybox.c:934 +#: ../gtk/propertybox.c:1219 msgid "None" msgstr "Нет" -#: ../gtk/propertybox.c:938 +#: ../gtk/propertybox.c:1223 msgid "SRTP" msgstr "SRTP" -#: ../gtk/propertybox.c:944 +#: ../gtk/propertybox.c:1229 msgid "ZRTP" msgstr "ZRTP" @@ -461,59 +467,63 @@ msgstr "" msgid "I have already a sip account and I just want to use it" msgstr "У меня уже есть учётная запись SIP и я хочу использовать её" -#: ../gtk/setupwizard.c:85 +#: ../gtk/setupwizard.c:46 +msgid "I want to specify a remote configuration URI" +msgstr "" + +#: ../gtk/setupwizard.c:89 msgid "Enter your linphone.org username" msgstr "Введите ваше имя пользователя на linphone.org" -#: ../gtk/setupwizard.c:92 +#: ../gtk/setupwizard.c:96 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4 msgid "Username:" msgstr "Имя пользователя:" -#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:98 ../gtk/password.ui.h:4 ../gtk/ldap.ui.h:5 msgid "Password:" msgstr "Пароль:" -#: ../gtk/setupwizard.c:114 +#: ../gtk/setupwizard.c:118 msgid "Enter your account informations" msgstr "Введите информацию о вашей учётной записи" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:125 msgid "Username*" msgstr "Имя пользователя*" -#: ../gtk/setupwizard.c:122 +#: ../gtk/setupwizard.c:126 msgid "Password*" msgstr "Пароль*" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:129 msgid "Domain*" msgstr "Домен*" -#: ../gtk/setupwizard.c:126 +#: ../gtk/setupwizard.c:130 msgid "Proxy" msgstr "Прокси" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:302 msgid "(*) Required fields" msgstr "(*) Обязательные поля" -#: ../gtk/setupwizard.c:299 +#: ../gtk/setupwizard.c:303 msgid "Username: (*)" msgstr "Имя пользователя: (*)" -#: ../gtk/setupwizard.c:301 +#: ../gtk/setupwizard.c:305 msgid "Password: (*)" msgstr "Пароль: (*)" -#: ../gtk/setupwizard.c:303 +#: ../gtk/setupwizard.c:307 msgid "Email: (*)" msgstr "Email: (*)" -#: ../gtk/setupwizard.c:305 +#: ../gtk/setupwizard.c:309 msgid "Confirm your password: (*)" msgstr "Подтвердите ваш пароль: (*)" -#: ../gtk/setupwizard.c:369 +#: ../gtk/setupwizard.c:373 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." @@ -522,11 +532,11 @@ msgstr "" "сервер недоступен.\n" "Вернитесь и попробуйте ещё раз." -#: ../gtk/setupwizard.c:380 +#: ../gtk/setupwizard.c:384 msgid "Thank you. Your account is now configured and ready for use." msgstr "Спасибо! Учетная запись успешно настроена и готова к использованию." -#: ../gtk/setupwizard.c:388 +#: ../gtk/setupwizard.c:392 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" @@ -536,35 +546,40 @@ msgstr "" "только что выслали вам на электронную почту.\n" "Затем вернитесь и нажмите на кнопку Далее." -#: ../gtk/setupwizard.c:564 +#: ../gtk/setupwizard.c:572 +#, fuzzy +msgid "SIP account configuration assistant" +msgstr "Помощник настройки учётной записи" + +#: ../gtk/setupwizard.c:590 msgid "Welcome to the account setup assistant" msgstr "Добро пожаловать в помощник настройки учётной записи" -#: ../gtk/setupwizard.c:569 +#: ../gtk/setupwizard.c:595 msgid "Account setup assistant" msgstr "Помощник настройки учётной записи" -#: ../gtk/setupwizard.c:575 +#: ../gtk/setupwizard.c:601 msgid "Configure your account (step 1/1)" msgstr "Настройте свою учётную запись (шаг 1/1)" -#: ../gtk/setupwizard.c:580 +#: ../gtk/setupwizard.c:606 msgid "Enter your sip username (step 1/1)" msgstr "Введите ваше имя пользователя SIP (шаг 1/1)" -#: ../gtk/setupwizard.c:584 +#: ../gtk/setupwizard.c:610 msgid "Enter account information (step 1/2)" msgstr "Введи информация об учётной записи (шаг 1/2)" -#: ../gtk/setupwizard.c:593 +#: ../gtk/setupwizard.c:619 msgid "Validation (step 2/2)" msgstr "Проверка (шаг 2/2)" -#: ../gtk/setupwizard.c:598 +#: ../gtk/setupwizard.c:624 msgid "Error" msgstr "Ошибка" -#: ../gtk/setupwizard.c:602 +#: ../gtk/setupwizard.c:628 msgid "Terminating" msgstr "Завершение" @@ -636,135 +651,150 @@ msgstr "ICE фильтр" msgid "Direct or through server" msgstr "" -#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:261 ../gtk/incall_view.c:272 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:286 +#: ../gtk/incall_view.c:267 ../gtk/incall_view.c:268 +#, c-format +msgid "%ix%i" +msgstr "" + +#: ../gtk/incall_view.c:297 #, fuzzy, c-format msgid "%.3f seconds" msgstr "%i секунда" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:395 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:476 +#: ../gtk/incall_view.c:487 msgid "Calling..." msgstr "Вызов..." -#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:700 msgid "00::00::00" msgstr "00::00::00" -#: ../gtk/incall_view.c:490 +#: ../gtk/incall_view.c:501 msgid "Incoming call" msgstr "Входящий вызов" -#: ../gtk/incall_view.c:527 +#: ../gtk/incall_view.c:538 msgid "good" msgstr "хорошее" -#: ../gtk/incall_view.c:529 +#: ../gtk/incall_view.c:540 msgid "average" msgstr "среднее" -#: ../gtk/incall_view.c:531 +#: ../gtk/incall_view.c:542 msgid "poor" msgstr "плохое" -#: ../gtk/incall_view.c:533 +#: ../gtk/incall_view.c:544 msgid "very poor" msgstr "очень плохое" -#: ../gtk/incall_view.c:535 +#: ../gtk/incall_view.c:546 msgid "too bad" msgstr "слишком плохое" -#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:547 ../gtk/incall_view.c:563 msgid "unavailable" msgstr "недоступно" -#: ../gtk/incall_view.c:651 +#: ../gtk/incall_view.c:662 msgid "Secured by SRTP" msgstr "Защищено SRTP" -#: ../gtk/incall_view.c:657 +#: ../gtk/incall_view.c:668 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "Защищено ZRTP - [токен: %s]" -#: ../gtk/incall_view.c:663 +#: ../gtk/incall_view.c:674 msgid "Set unverified" msgstr "Не проверен" -#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:674 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "Проверен" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In conference" msgstr "В конференции" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In call" msgstr "Соединен с" -#: ../gtk/incall_view.c:718 +#: ../gtk/incall_view.c:731 msgid "Paused call" msgstr "Приостановленный вызов" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:744 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i::%02i::%02i" -#: ../gtk/incall_view.c:748 +#: ../gtk/incall_view.c:762 msgid "Call ended." msgstr "Звонок закончен." -#: ../gtk/incall_view.c:778 +#: ../gtk/incall_view.c:793 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:796 #, fuzzy msgid "Transfer done." msgstr "Перевести" -#: ../gtk/incall_view.c:784 +#: ../gtk/incall_view.c:799 #, fuzzy msgid "Transfer failed." msgstr "Перевести" -#: ../gtk/incall_view.c:828 +#: ../gtk/incall_view.c:843 msgid "Resume" msgstr "Продолжить" -#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:850 ../gtk/main.ui.h:9 msgid "Pause" msgstr "Пауза" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, fuzzy msgid "(Paused)" msgstr "Пауза" -#: ../gtk/loginframe.c:93 +#: ../gtk/loginframe.c:88 #, c-format msgid "Please enter login information for %s" msgstr "Введите информацию для входа %s" +#: ../gtk/config-fetching.c:57 +#, fuzzy, c-format +msgid "fetching from %s" +msgstr "Входящий звонок от %s" + +#: ../gtk/config-fetching.c:73 +#, c-format +msgid "Downloading of remote configuration from %s failed." +msgstr "" + #: ../gtk/main.ui.h:1 msgid "Callee name" msgstr "Имя вызываемого абонента" @@ -811,89 +841,90 @@ msgid "_Options" msgstr "_Настройки" #: ../gtk/main.ui.h:18 +#, fuzzy +msgid "Set configuration URI" +msgstr "Прокси/Регистратор конфигуратор" + +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "Включить своё видео" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "_Помощь" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "Показать окно отладки" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "_Домашняя страница" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "Проверить _Обновления" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 msgid "Account assistant" msgstr "Помощник настройки учётной записи" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "SIP-адрес или номер телефона:" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "Совершить новый вызов" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:28 msgid "Contacts" msgstr "Контакты" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 -msgid "Add" -msgstr "Добавить" - -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 -msgid "Edit" -msgstr "Редактировать" - -#: ../gtk/main.ui.h:30 +#: ../gtk/main.ui.h:29 msgid "Search" msgstr "Поиск" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Add contacts from directory" msgstr "Добавить контакты из директории" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contact" msgstr "Добавить контакт" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 msgid "Recent calls" msgstr "Недавние вызовы" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "My current identity:" msgstr "Мой текущий идентификатор:" -#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:34 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Имя пользователя" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Пароль" -#: ../gtk/main.ui.h:37 +#: ../gtk/main.ui.h:36 msgid "Internet connection:" msgstr "Интернет-соединение:" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Automatically log me in" msgstr "Входить автоматически" +#: ../gtk/main.ui.h:38 ../gtk/password.ui.h:3 +msgid "UserID" +msgstr "UserID" + #: ../gtk/main.ui.h:39 msgid "Login information" msgstr "Информация для входа" @@ -940,6 +971,7 @@ msgstr "" "Видео-телефон для интернета, использующий стандартный протокол SIP (rfc3261)." #: ../gtk/about.ui.h:5 +#, fuzzy msgid "" "fr: Simon Morlat\n" "en: Simon Morlat and Delphine Perreau\n" @@ -952,6 +984,7 @@ msgid "" "pl: Robert Nasiadek \n" "cs: Petr Pisar \n" "hu: anonymous\n" +"he: Eli Zaretskii \n" msgstr "" "fr: Simon Morlat\n" "en: Simon Morlat and Delphine Perreau\n" @@ -997,10 +1030,6 @@ msgstr "Linphone - Необходима аутентификация" msgid "Please enter the domain password" msgstr "Введите пароль" -#: ../gtk/password.ui.h:3 -msgid "UserID" -msgstr "UserID" - #: ../gtk/call_logs.ui.h:1 msgid "Call history" msgstr "История звонков" @@ -1038,274 +1067,320 @@ msgid "Looks like sip:" msgstr "Похоже на sip:" #: ../gtk/sip_account.ui.h:7 -msgid "Route (optional):" -msgstr "Маршрут (необязательно):" - -#: ../gtk/sip_account.ui.h:8 msgid "Registration duration (sec):" msgstr "Продолжительность регистрации (сек):" +#: ../gtk/sip_account.ui.h:8 +#, fuzzy +msgid "Contact params (optional):" +msgstr "Маршрут (необязательно):" + #: ../gtk/sip_account.ui.h:9 +msgid "Route (optional):" +msgstr "Маршрут (необязательно):" + +#: ../gtk/sip_account.ui.h:10 +#, fuzzy +msgid "Transport" +msgstr "Транспорт" + +#: ../gtk/sip_account.ui.h:11 msgid "Register" msgstr "Зарегистрироваться" -#: ../gtk/sip_account.ui.h:10 +#: ../gtk/sip_account.ui.h:12 msgid "Publish presence information" msgstr "Опубликовывать статус присутствия" -#: ../gtk/sip_account.ui.h:11 +#: ../gtk/sip_account.ui.h:13 msgid "Configure a SIP account" msgstr "Настроить учётную запись SIP" #: ../gtk/parameters.ui.h:1 +msgid "anonymous" +msgstr "" + +#: ../gtk/parameters.ui.h:2 +msgid "GSSAPI" +msgstr "" + +#: ../gtk/parameters.ui.h:3 +msgid "SASL" +msgstr "" + +#: ../gtk/parameters.ui.h:4 msgid "default soundcard" msgstr "звуковая карта по умолчанию" -#: ../gtk/parameters.ui.h:2 +#: ../gtk/parameters.ui.h:5 msgid "a sound card" msgstr "звуковая карта" -#: ../gtk/parameters.ui.h:3 +#: ../gtk/parameters.ui.h:6 msgid "default camera" msgstr "камера по умолчаию" -#: ../gtk/parameters.ui.h:4 +#: ../gtk/parameters.ui.h:7 msgid "CIF" msgstr "CIF" -#: ../gtk/parameters.ui.h:5 +#: ../gtk/parameters.ui.h:8 msgid "Audio codecs" msgstr "Аудио кодеки" -#: ../gtk/parameters.ui.h:6 +#: ../gtk/parameters.ui.h:9 msgid "Video codecs" msgstr "Видео кодеки" -#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:10 ../gtk/keypad.ui.h:5 msgid "C" msgstr "C" -#: ../gtk/parameters.ui.h:8 +#: ../gtk/parameters.ui.h:11 msgid "SIP (UDP)" msgstr "SIP (UDP)" -#: ../gtk/parameters.ui.h:9 +#: ../gtk/parameters.ui.h:12 msgid "SIP (TCP)" msgstr "SIP (TCP)" -#: ../gtk/parameters.ui.h:10 +#: ../gtk/parameters.ui.h:13 msgid "SIP (TLS)" msgstr "SIP (TLS)" -#: ../gtk/parameters.ui.h:11 +#: ../gtk/parameters.ui.h:14 msgid "Settings" msgstr "Настройки" -#: ../gtk/parameters.ui.h:12 +#: ../gtk/parameters.ui.h:15 msgid "Set Maximum Transmission Unit:" msgstr "Установить MTU:" -#: ../gtk/parameters.ui.h:13 +#: ../gtk/parameters.ui.h:16 msgid "Send DTMFs as SIP info" msgstr "Отправлять DTFM как SIP Info" -#: ../gtk/parameters.ui.h:14 +#: ../gtk/parameters.ui.h:17 msgid "Use IPv6 instead of IPv4" msgstr "Использовать IPv6 вместо IPv4" -#: ../gtk/parameters.ui.h:15 +#: ../gtk/parameters.ui.h:18 msgid "Transport" msgstr "Транспорт" -#: ../gtk/parameters.ui.h:16 +#: ../gtk/parameters.ui.h:19 msgid "Media encryption type" msgstr "Тип шифрования потока" -#: ../gtk/parameters.ui.h:17 +#: ../gtk/parameters.ui.h:20 msgid "Video RTP/UDP:" msgstr "Видео RTP/UDP:" -#: ../gtk/parameters.ui.h:18 +#: ../gtk/parameters.ui.h:21 msgid "Audio RTP/UDP:" msgstr "Аудио RTP/UDP:" -#: ../gtk/parameters.ui.h:19 -msgid "DSCP fields" -msgstr "" - -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:22 msgid "Fixed" msgstr "" -#: ../gtk/parameters.ui.h:21 -msgid "Tunnel" -msgstr "Туннель" - -#: ../gtk/parameters.ui.h:22 +#: ../gtk/parameters.ui.h:23 #, fuzzy msgid "Media encryption is mandatory" msgstr "Тип шифрования потока" -#: ../gtk/parameters.ui.h:23 +#: ../gtk/parameters.ui.h:24 +msgid "Tunnel" +msgstr "Туннель" + +#: ../gtk/parameters.ui.h:25 +msgid "DSCP fields" +msgstr "" + +#: ../gtk/parameters.ui.h:26 +#, fuzzy +msgid "SIP/TCP port" +msgstr "SIP порт" + +#: ../gtk/parameters.ui.h:27 +#, fuzzy +msgid "SIP/UDP port" +msgstr "SIP порт" + +#: ../gtk/parameters.ui.h:28 msgid "Network protocol and ports" msgstr "Протокол и порты" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:29 msgid "Direct connection to the Internet" msgstr "Прямое подключение к Интернету" -#: ../gtk/parameters.ui.h:25 -msgid "Behind NAT / Firewall (specify gateway IP below)" +#: ../gtk/parameters.ui.h:30 +#, fuzzy +msgid "Behind NAT / Firewall (specify gateway IP )" msgstr "За NAT / брандмауэром (укажите IP-адрес шлюза ниже)" -#: ../gtk/parameters.ui.h:26 -msgid "Public IP address:" -msgstr "Внешний IP-адрес:" - -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:31 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "За NAT / брандмауэром (использовать STUN)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:32 #, fuzzy msgid "Behind NAT / Firewall (use ICE)" msgstr "За NAT / брандмауэром (использовать STUN)" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:33 #, fuzzy msgid "Behind NAT / Firewall (use uPnP)" msgstr "За NAT / брандмауэром (использовать STUN)" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:34 +msgid "Public IP address:" +msgstr "Внешний IP-адрес:" + +#: ../gtk/parameters.ui.h:35 msgid "Stun server:" msgstr "Сервер STUN:" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:36 msgid "NAT and Firewall" msgstr "NAT и брандмауэр" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:37 msgid "Network settings" msgstr "Настройки сети" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:38 msgid "Ring sound:" msgstr "Звук звонка:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:39 msgid "ALSA special device (optional):" msgstr "Специальное устройство ALSA (необязательно):" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:40 msgid "Capture device:" msgstr "Устройство захвата:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:41 msgid "Ring device:" msgstr "Устройство звонка:" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:42 msgid "Playback device:" msgstr "Устройство воспроизведения:" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:43 msgid "Enable echo cancellation" msgstr "Включить подавление эхо" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:44 msgid "Audio" msgstr "Звук" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:45 msgid "Video input device:" msgstr "Устройство захвата видео:" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:46 msgid "Prefered video resolution:" msgstr "Предпочтительное разрешение видео:" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:47 +#, fuzzy +msgid "Video output method:" +msgstr "Устройство захвата видео:" + +#: ../gtk/parameters.ui.h:48 msgid "Video" msgstr "Видео" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:49 msgid "Multimedia settings" msgstr "Настройки мультимедиа" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:50 msgid "This section defines your SIP address when not using a SIP account" msgstr "" "Эта секция устанавливает ваш SIP-адрес, когда вы не используете SIP-аккаунт" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:51 msgid "Your display name (eg: John Doe):" msgstr "Отображаемое имя (напр.: Иван Сидоров):" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:52 msgid "Your username:" msgstr "Имя пользователя:" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:53 msgid "Your resulting SIP address:" msgstr "Результирующий SIP-адрес:" -#: ../gtk/parameters.ui.h:48 +#: ../gtk/parameters.ui.h:54 msgid "Default identity" msgstr "Идентификатор по умолчанию" -#: ../gtk/parameters.ui.h:49 +#: ../gtk/parameters.ui.h:55 msgid "Wizard" msgstr "Мастер" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:56 +msgid "Add" +msgstr "Добавить" + +#: ../gtk/parameters.ui.h:57 +msgid "Edit" +msgstr "Редактировать" + +#: ../gtk/parameters.ui.h:58 msgid "Remove" msgstr "Удалить" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:59 msgid "Proxy accounts" msgstr "Учетные записи прокси" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:60 msgid "Erase all passwords" msgstr "Стереть все пароли" -#: ../gtk/parameters.ui.h:55 +#: ../gtk/parameters.ui.h:61 msgid "Privacy" msgstr "Конфеденциальность" -#: ../gtk/parameters.ui.h:56 +#: ../gtk/parameters.ui.h:62 msgid "Manage SIP Accounts" msgstr "Управление учётными записями SIP" -#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Включить" -#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Выключить" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:65 msgid "Codecs" msgstr "Кодеки" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:66 msgid "0 stands for \"unlimited\"" msgstr "0 означает \"безлимитный\"" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:67 msgid "Upload speed limit in Kbit/sec:" msgstr "Ограничение исходящего потока в кбит/сек:" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:68 msgid "Download speed limit in Kbit/sec:" msgstr "Ограничение скорости входящего потока в кбит/сек" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:69 msgid "Enable adaptive rate control" msgstr "Включить адаптивный контроль скорости" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:70 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." @@ -1313,31 +1388,54 @@ msgstr "" "Адаптивное управление скоростью - это техника, позволяющая динамически " "определять доступную пропускную способность сети во время звонка." -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:71 msgid "Bandwidth control" msgstr "Управление скоростью сети" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:72 msgid "Codecs" msgstr "Кодеки" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:73 msgid "Language" msgstr "Язык" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:74 msgid "Show advanced settings" msgstr "Показывать расширенные настройки" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:75 msgid "Level" msgstr "Уровень" -#: ../gtk/parameters.ui.h:70 +#: ../gtk/parameters.ui.h:76 msgid "User interface" msgstr "Интерфейс пользователя" -#: ../gtk/parameters.ui.h:71 +#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2 +#, fuzzy +msgid "Server address:" +msgstr "Server-Adresse:" + +#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3 +#, fuzzy +msgid "Authentication method:" +msgstr "Ошибка аутентификации" + +#: ../gtk/parameters.ui.h:80 +msgid "label" +msgstr "метка" + +#: ../gtk/parameters.ui.h:81 +#, fuzzy +msgid "LDAP Account setup" +msgstr "Учетные записи прокси" + +#: ../gtk/parameters.ui.h:82 +msgid "LDAP" +msgstr "" + +#: ../gtk/parameters.ui.h:83 msgid "Done" msgstr "Готово" @@ -1363,7 +1461,7 @@ msgstr "Подождите" #: ../gtk/dscp_settings.ui.h:1 #, fuzzy -msgid "Dscp settings" +msgid "DSCP settings" msgstr "Настройки" #: ../gtk/dscp_settings.ui.h:2 @@ -1423,6 +1521,15 @@ msgid "Round trip time" msgstr "Настройки звука" #: ../gtk/call_statistics.ui.h:9 +msgid "Video resolution received" +msgstr "" + +#: ../gtk/call_statistics.ui.h:10 +#, fuzzy +msgid "Video resolution sent" +msgstr "Предпочтительное разрешение видео:" + +#: ../gtk/call_statistics.ui.h:11 #, fuzzy msgid "Call statistics and information" msgstr "Контактная информация" @@ -1508,19 +1615,142 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:228 +#: ../gtk/ldap.ui.h:1 +#, fuzzy +msgid "LDAP Settings" +msgstr "Настройки" + +#: ../gtk/ldap.ui.h:6 +msgid "Use TLS Connection" +msgstr "" + +#: ../gtk/ldap.ui.h:7 +#, fuzzy +msgid "Not yet available" +msgstr "недоступно" + +#: ../gtk/ldap.ui.h:8 +#, fuzzy +msgid "Connection" +msgstr "Кодеки" + +#: ../gtk/ldap.ui.h:9 +msgid "Bind DN" +msgstr "" + +#: ../gtk/ldap.ui.h:10 +msgid "Authname" +msgstr "" + +#: ../gtk/ldap.ui.h:11 +#, fuzzy +msgid "Realm" +msgstr "Название:" + +#: ../gtk/ldap.ui.h:12 +#, fuzzy +msgid "SASL" +msgstr "Звук" + +#: ../gtk/ldap.ui.h:13 +msgid "Base object:" +msgstr "" + +#: ../gtk/ldap.ui.h:15 +#, no-c-format +msgid "Filter (%s for name):" +msgstr "" + +#: ../gtk/ldap.ui.h:16 +msgid "Name Attribute:" +msgstr "" + +#: ../gtk/ldap.ui.h:17 +#, fuzzy +msgid "SIP address attribute:" +msgstr "SIP-адрес" + +#: ../gtk/ldap.ui.h:18 +msgid "Attributes to query:" +msgstr "" + +#: ../gtk/ldap.ui.h:19 +#, fuzzy +msgid "Search" +msgstr "Найти кого-нибудь" + +#: ../gtk/ldap.ui.h:20 +msgid "Timeout for search:" +msgstr "" + +#: ../gtk/ldap.ui.h:21 +msgid "Max results:" +msgstr "" + +#: ../gtk/ldap.ui.h:22 +msgid "Follow Aliases" +msgstr "" + +#: ../gtk/ldap.ui.h:23 +#, fuzzy +msgid "Miscellaneous" +msgstr "Разное" + +#: ../gtk/ldap.ui.h:24 +msgid "ANONYMOUS" +msgstr "" + +#: ../gtk/ldap.ui.h:25 +msgid "SIMPLE" +msgstr "" + +#: ../gtk/ldap.ui.h:26 +msgid "DIGEST-MD5" +msgstr "" + +#: ../gtk/ldap.ui.h:27 +msgid "NTLM" +msgstr "" + +#: ../gtk/config-uri.ui.h:1 +msgid "Specifying a remote configuration URI" +msgstr "" + +#: ../gtk/config-uri.ui.h:2 +msgid "" +"This dialog allows to set an http or https address when configuration is to " +"be fetched at startup.\n" +"Please enter or modify the configuration URI below. After clicking OK, " +"Linphone will restart automatically in order to fetch and take into account " +"the new configuration. " +msgstr "" + +#: ../gtk/config-uri.ui.h:4 +msgid "https://" +msgstr "" + +#: ../gtk/provisioning-fetch.ui.h:1 +#, fuzzy +msgid "Configuring..." +msgstr "Подключение..." + +#: ../gtk/provisioning-fetch.ui.h:2 +msgid "Please wait while fetching configuration from server..." +msgstr "" + +#: ../coreapi/linphonecore.c:238 msgid "aborted" msgstr "отмененный" -#: ../coreapi/linphonecore.c:231 +#: ../coreapi/linphonecore.c:241 msgid "completed" msgstr "завершённый" -#: ../coreapi/linphonecore.c:234 +#: ../coreapi/linphonecore.c:244 msgid "missed" msgstr "пропущенный" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:249 #, c-format msgid "" "%s at %s\n" @@ -1535,105 +1765,77 @@ msgstr "" "Статус: %s\n" "Длительность: %i мин %i сек\n" -#: ../coreapi/linphonecore.c:240 +#: ../coreapi/linphonecore.c:250 msgid "Outgoing call" msgstr "Исходящий звонок" -#: ../coreapi/linphonecore.c:1321 +#: ../coreapi/linphonecore.c:1264 msgid "Ready" msgstr "Готов" -#: ../coreapi/linphonecore.c:2205 +#: ../coreapi/linphonecore.c:1372 +#, fuzzy +msgid "Configuring" +msgstr "Подтверждение" + +#: ../coreapi/linphonecore.c:2331 msgid "Looking for telephone number destination..." msgstr "Поиск адреса для телефонного номера..." -#: ../coreapi/linphonecore.c:2208 +#: ../coreapi/linphonecore.c:2334 msgid "Could not resolve this number." msgstr "Не могу найти этот номер." -#: ../coreapi/linphonecore.c:2252 -msgid "" -"Could not parse given sip address. A sip url usually looks like sip:" -"user@domain" -msgstr "" -"Не могу опознать sip адрес. SIP-URL обычно выглядит как sip:" -"username@domainname" - -#: ../coreapi/linphonecore.c:2453 +#. must be known at that time +#: ../coreapi/linphonecore.c:2609 msgid "Contacting" msgstr "Соединение" -#: ../coreapi/linphonecore.c:2460 +#: ../coreapi/linphonecore.c:2616 msgid "Could not call" msgstr "Не удалось позвонить" -#: ../coreapi/linphonecore.c:2570 +#: ../coreapi/linphonecore.c:2765 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Извините, мы превысили максимальное количество одновременных вызовов" -#: ../coreapi/linphonecore.c:2752 +#: ../coreapi/linphonecore.c:2952 msgid "is contacting you" msgstr "пытается связаться с вами" -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid " and asked autoanswer." msgstr " и ответил автоответчик." -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2820 +#: ../coreapi/linphonecore.c:3020 msgid "Modifying call parameters..." msgstr "Изменение параметров вызова..." -#: ../coreapi/linphonecore.c:3159 +#: ../coreapi/linphonecore.c:3362 msgid "Connected." msgstr "Соединён." -#: ../coreapi/linphonecore.c:3187 +#: ../coreapi/linphonecore.c:3388 msgid "Call aborted" msgstr "Вызов отменён" -#: ../coreapi/linphonecore.c:3378 +#: ../coreapi/linphonecore.c:3581 msgid "Could not pause the call" msgstr "Не удалось приостановить вызов" -#: ../coreapi/linphonecore.c:3383 +#: ../coreapi/linphonecore.c:3586 msgid "Pausing the current call..." msgstr "Приостановление текущего вызова..." -#: ../coreapi/misc.c:148 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the pcm oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -"'modprobe snd-pcm-oss' as root to load it." -msgstr "" -"Ваш компьютер использует звуковой драйвер ALSA.\n" -"Это лучший выбор. Однако, модуль эмуляции PCM OSS\n" -"не найден, а он нужен для linphone.\n" -"Пожалуйста, выполните от имени пользователя root команду 'modprobe snd-pcm-" -"oss', чтобы загрузить его." - -#: ../coreapi/misc.c:151 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the mixer oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -" 'modprobe snd-mixer-oss' as root to load it." -msgstr "" -"Ваш компьютер использует звуковой драйвер ALSA.\n" -"Это лучший выбор. Однако, модуль микшера OSS\n" -"не найден, а он нужен для linphone.\n" -"Пожалуйста, выполните от имени пользователя root команду 'modprobe snd-pcm-" -"oss' чтобы загрузить его." - -#: ../coreapi/misc.c:496 +#: ../coreapi/misc.c:394 msgid "Stun lookup in progress..." msgstr "Идет поиск Stun..." -#: ../coreapi/misc.c:630 +#: ../coreapi/misc.c:576 msgid "ICE local candidates gathering in progress..." msgstr "" @@ -1682,10 +1884,15 @@ msgid "Pending" msgstr "В ожидании" #: ../coreapi/friend.c:66 +#, fuzzy +msgid "Vacation" +msgstr "Продолжительность" + +#: ../coreapi/friend.c:68 msgid "Unknown-bug" msgstr "Неизвестная ошибка" -#: ../coreapi/proxy.c:204 +#: ../coreapi/proxy.c:209 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." @@ -1693,7 +1900,7 @@ msgstr "" "Введеный адрес SIP-прокси является недействительным, он должен выглядеть как " "\"sip:имя_хоста\"" -#: ../coreapi/proxy.c:210 +#: ../coreapi/proxy.c:215 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" @@ -1702,128 +1909,132 @@ msgstr "" "Они должны выглядеть как sip:username@proxydomain, например such as sip:" "alice@example.net" -#: ../coreapi/proxy.c:1069 +#: ../coreapi/proxy.c:1125 #, c-format msgid "Could not login as %s" msgstr "Невозможно зайти как %s" -#: ../coreapi/callbacks.c:286 +#: ../coreapi/callbacks.c:289 msgid "Remote ringing." msgstr "Абонент вызывается." -#: ../coreapi/callbacks.c:306 +#: ../coreapi/callbacks.c:305 msgid "Remote ringing..." msgstr "Абонент вызывается..." -#: ../coreapi/callbacks.c:317 +#: ../coreapi/callbacks.c:316 msgid "Early media." msgstr "Гудки." -#: ../coreapi/callbacks.c:368 +#: ../coreapi/callbacks.c:367 #, c-format msgid "Call with %s is paused." msgstr "Вызов %s приостановлен." -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:380 #, c-format msgid "Call answered by %s - on hold." msgstr "Вызов отвечен %s - в ожидании." -#: ../coreapi/callbacks.c:392 +#: ../coreapi/callbacks.c:391 msgid "Call resumed." msgstr "Разговор продолжен." -#: ../coreapi/callbacks.c:397 +#: ../coreapi/callbacks.c:396 #, c-format msgid "Call answered by %s." msgstr "Вызов отвечен %s." -#: ../coreapi/callbacks.c:412 +#: ../coreapi/callbacks.c:414 #, fuzzy msgid "Incompatible, check codecs or security settings..." msgstr "Несовместимо, проверьте кодеки..." -#: ../coreapi/callbacks.c:460 +#: ../coreapi/callbacks.c:463 #, fuzzy msgid "We have been resumed." msgstr "Наш вызов продолжен..." -#: ../coreapi/callbacks.c:469 +#: ../coreapi/callbacks.c:471 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:475 +#: ../coreapi/callbacks.c:487 #, fuzzy msgid "Call is updated by remote." msgstr "Вызов обновлён вызываемым абонентом..." -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:558 msgid "Call terminated." msgstr "Звонок прерван." -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:586 msgid "User is busy." msgstr "Пользователь занят." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:587 msgid "User is temporarily unavailable." msgstr "Пользователь временно недоступен." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:558 +#: ../coreapi/callbacks.c:589 msgid "User does not want to be disturbed." msgstr "Абонент не хочет отвечать." -#: ../coreapi/callbacks.c:559 +#: ../coreapi/callbacks.c:590 msgid "Call declined." msgstr "Звонок отклонён." -#: ../coreapi/callbacks.c:571 +#: ../coreapi/callbacks.c:603 msgid "No response." msgstr "Нет ответа." -#: ../coreapi/callbacks.c:575 +#: ../coreapi/callbacks.c:607 msgid "Protocol error." msgstr "Ошибка протокола." -#: ../coreapi/callbacks.c:591 +#: ../coreapi/callbacks.c:623 msgid "Redirected" msgstr "Переадресован" -#: ../coreapi/callbacks.c:627 +#: ../coreapi/callbacks.c:665 #, fuzzy msgid "Incompatible media parameters." msgstr "Несовместимо, проверьте кодеки..." -#: ../coreapi/callbacks.c:633 +#: ../coreapi/callbacks.c:677 msgid "Call failed." msgstr "Не удалось совершить вызов." -#: ../coreapi/callbacks.c:737 +#: ../coreapi/callbacks.c:751 #, c-format msgid "Registration on %s successful." msgstr "Регистрация на %s прошла успешно." -#: ../coreapi/callbacks.c:738 +#: ../coreapi/callbacks.c:752 #, c-format msgid "Unregistration on %s done." msgstr "Отмена регистрации на %s завершена." -#: ../coreapi/callbacks.c:758 +#: ../coreapi/callbacks.c:772 msgid "no response timeout" msgstr "время ожидания истекло" -#: ../coreapi/callbacks.c:761 +#: ../coreapi/callbacks.c:775 #, c-format msgid "Registration on %s failed: %s" msgstr "Регистрация на %s не удалась: %s" -#: ../coreapi/linphonecall.c:129 +#: ../coreapi/callbacks.c:785 +msgid "Service unavailable, retrying" +msgstr "" + +#: ../coreapi/linphonecall.c:142 #, c-format msgid "Authentication token is %s" msgstr "Аутентификационный токен: %s" -#: ../coreapi/linphonecall.c:2355 +#: ../coreapi/linphonecall.c:2678 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -1831,8 +2042,36 @@ msgstr[0] "У вас пропущен %i звонок." msgstr[1] "У вас пропущено %i звонка." msgstr[2] "У вас пропущено %i звонков." -#~ msgid "label" -#~ msgstr "метка" +#~ msgid "" +#~ "Could not parse given sip address. A sip url usually looks like sip:" +#~ "user@domain" +#~ msgstr "" +#~ "Не могу опознать sip адрес. SIP-URL обычно выглядит как sip:" +#~ "username@domainname" + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the pcm oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ "'modprobe snd-pcm-oss' as root to load it." +#~ msgstr "" +#~ "Ваш компьютер использует звуковой драйвер ALSA.\n" +#~ "Это лучший выбор. Однако, модуль эмуляции PCM OSS\n" +#~ "не найден, а он нужен для linphone.\n" +#~ "Пожалуйста, выполните от имени пользователя root команду 'modprobe snd-" +#~ "pcm-oss', чтобы загрузить его." + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the mixer oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ " 'modprobe snd-mixer-oss' as root to load it." +#~ msgstr "" +#~ "Ваш компьютер использует звуковой драйвер ALSA.\n" +#~ "Это лучший выбор. Однако, модуль микшера OSS\n" +#~ "не найден, а он нужен для linphone.\n" +#~ "Пожалуйста, выполните от имени пользователя root команду 'modprobe snd-" +#~ "pcm-oss' чтобы загрузить его." #~ msgid "by %s" #~ msgstr "со стороны: %s" @@ -1871,9 +2110,6 @@ msgstr[2] "У вас пропущено %i звонков." #~ msgid "No common codecs" #~ msgstr "Нет общих кодеков" -#~ msgid "Authentication failure" -#~ msgstr "Ошибка аутентификации" - #~ msgid "Please choose a username:" #~ msgstr "Выберите имя пользователя:" @@ -1898,9 +2134,6 @@ msgstr[2] "У вас пропущено %i звонков." #~ msgid "Verifying" #~ msgstr "Проверка" -#~ msgid "Confirmation" -#~ msgstr "Подтверждение" - #~ msgid "Creating your account" #~ msgstr "Создание аккаунта" @@ -2038,9 +2271,6 @@ msgstr[2] "У вас пропущено %i звонков." #~ "Ваш компьютер подключен по IPv6. Linphone по умолчанию использует IPv4. " #~ "Пожалуйста, обновите настройки если хотите использовать IPv6." -#~ msgid "Incoming call from %s" -#~ msgstr "Входящий звонок от %s" - #~ msgid "Assistant" #~ msgstr "Помощник" @@ -2153,9 +2383,6 @@ msgstr[2] "У вас пропущено %i звонков." #~ msgid "gtk-find" #~ msgstr "Найти" -#~ msgid "SIP address" -#~ msgstr "SIP-адрес" - #~ msgid "_View" #~ msgstr "_Вид" @@ -2187,9 +2414,6 @@ msgstr[2] "У вас пропущено %i звонков." #~ msgid "Use the supplied stun server above and do as best as possible" #~ msgstr "Использовать доступный Stun сервер и делать так хорошо как возможно" -#~ msgid "Miscelaneous" -#~ msgstr "Разное" - #~ msgid "Go" #~ msgstr "Старт" @@ -2416,9 +2640,6 @@ msgstr[2] "У вас пропущено %i звонков." #~ msgid "It is strongly recommended to use port 5060." #~ msgstr "Рекомендуется использовать порт 5060." -#~ msgid "SIP port" -#~ msgstr "SIP порт" - #~ msgid "@" #~ msgstr "@" @@ -2466,9 +2687,6 @@ msgstr[2] "У вас пропущено %i звонков." #~ msgid "None." #~ msgstr "Нет." -#~ msgid "Proxy/Registrar configuration box" -#~ msgstr "Прокси/Регистратор конфигуратор" - #~ msgid "Send registration:" #~ msgstr "Отправить регистрацию:" @@ -2496,9 +2714,6 @@ msgstr[2] "У вас пропущено %i звонков." #~ msgid "userid:" #~ msgstr "ID пользователя:" -#~ msgid "realm:" -#~ msgstr "Название:" - #~ msgid "Linphone - Call history" #~ msgstr "Linphone - История звонков" @@ -2560,10 +2775,6 @@ msgstr[2] "У вас пропущено %i звонков." #~ msgid "Firewall 's external ip address (in dot notations):" #~ msgstr "IP-Adresse des Firewall (in Punktnotation)" -#, fuzzy -#~ msgid "Server address" -#~ msgstr "Server-Adresse:" - #~ msgid "28k modem" #~ msgstr "28K Modem" diff --git a/po/sr.po b/po/sr.po index d0b470f95..46e362a45 100644 --- a/po/sr.po +++ b/po/sr.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 0.7.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-24 14:04+0200\n" +"POT-Creation-Date: 2014-02-14 14:57+0100\n" "PO-Revision-Date: 2013-02-11 19:03+0200\n" "Last-Translator: Мирослав Николић \n" "Language-Team: Serbian \n" @@ -16,12 +16,12 @@ msgstr "" "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:969 #, c-format msgid "Call %s" msgstr "Позови „%s“" -#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:970 #, c-format msgid "Send text to %s" msgstr "Пошаљи текст за %s" @@ -106,35 +106,35 @@ msgstr "Ја" msgid "Couldn't find pixmap file: %s" msgstr "Не могу да пронађем датотеку сличице: %s" -#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:363 ../gtk/friendlist.c:919 msgid "Invalid sip contact !" msgstr "Неисправан сип контакт !" -#: ../gtk/main.c:92 +#: ../gtk/main.c:102 msgid "log to stdout some debug information while running." msgstr "бележи у стандардни излаз неке податке за уклањање грешака док ради." -#: ../gtk/main.c:99 +#: ../gtk/main.c:109 msgid "path to a file to write logs into." msgstr "путања до датотеке за уписивање бележака." -#: ../gtk/main.c:106 +#: ../gtk/main.c:116 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:113 +#: ../gtk/main.c:123 msgid "Start only in the system tray, do not show the main interface." msgstr "Покреће се само у системској фиоци, не приказује главно сучеље." -#: ../gtk/main.c:120 +#: ../gtk/main.c:130 msgid "address to call right now" msgstr "адреса за позивање управо сада" -#: ../gtk/main.c:127 +#: ../gtk/main.c:137 msgid "if set automatically answer incoming calls" msgstr "ако је подешено сам ће се јављати на долазне позиве" -#: ../gtk/main.c:134 +#: ../gtk/main.c:144 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -142,12 +142,17 @@ msgstr "" "Наводи радни директоријум (треба да буде основа инсталације, нпр: c:" "\\Program Files\\Linphone)" -#: ../gtk/main.c:515 +#: ../gtk/main.c:151 +#, fuzzy +msgid "Configuration file" +msgstr "Потврђујем" + +#: ../gtk/main.c:573 #, c-format msgid "Call with %s" msgstr "Позив са корисником %s" -#: ../gtk/main.c:946 +#: ../gtk/main.c:1150 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -160,68 +165,68 @@ msgstr "" "на ваш списак пријатеља ?\n" "Ако одговорите са не, ова особа ће привремено бити стављена на црни списак." -#: ../gtk/main.c:1023 -#, c-format +#: ../gtk/main.c:1227 +#, fuzzy, c-format msgid "" "Please enter your password for username %s\n" -" at domain %s:" +" at realm %s:" msgstr "" "Унесите вашу лозинку за корисничко име %s\n" " на домену %s:" -#: ../gtk/main.c:1126 +#: ../gtk/main.c:1339 msgid "Call error" msgstr "Грешка позива" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 +#: ../gtk/main.c:1342 ../coreapi/linphonecore.c:3408 msgid "Call ended" msgstr "Позив је завршен" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 +#: ../gtk/main.c:1345 ../coreapi/linphonecore.c:250 msgid "Incoming call" msgstr "Долазни позив" -#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 +#: ../gtk/main.c:1347 ../gtk/incall_view.c:508 ../gtk/main.ui.h:5 msgid "Answer" msgstr "Јави се" -#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1349 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Одбиј" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 msgid "Call paused" msgstr "Позив је заустављен" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy, c-format msgid "by %s" msgstr "Кодеци" -#: ../gtk/main.c:1191 +#: ../gtk/main.c:1422 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1353 +#: ../gtk/main.c:1584 msgid "Website link" msgstr "Веза веб сајта" -#: ../gtk/main.c:1402 +#: ../gtk/main.c:1633 msgid "Linphone - a video internet phone" msgstr "Линфон — интернет телефон са снимком" -#: ../gtk/main.c:1494 +#: ../gtk/main.c:1725 #, c-format msgid "%s (Default)" msgstr "%s (основно)" -#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 +#: ../gtk/main.c:2061 ../coreapi/callbacks.c:827 #, c-format msgid "We are transferred to %s" msgstr "Преселили смо се на %s" -#: ../gtk/main.c:1806 +#: ../gtk/main.c:2071 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -229,170 +234,171 @@ msgstr "" "Ниједна звучна картица није откривен ана овом рачунару.\n" "Нећете бити у могућности да шаљете или да примате звучне позиве." -#: ../gtk/main.c:1911 +#: ../gtk/main.c:2207 msgid "A free SIP video-phone" msgstr "Слободан СИП телефон са снимком" -#: ../gtk/friendlist.c:469 +#: ../gtk/friendlist.c:505 msgid "Add to addressbook" msgstr "Додајте у адресар" -#: ../gtk/friendlist.c:643 +#: ../gtk/friendlist.c:691 msgid "Presence status" msgstr "Стање присуства" -#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:709 ../gtk/propertybox.c:556 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Име" -#: ../gtk/friendlist.c:673 +#: ../gtk/friendlist.c:721 msgid "Call" msgstr "Позови" -#: ../gtk/friendlist.c:678 +#: ../gtk/friendlist.c:726 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:708 +#: ../gtk/friendlist.c:756 #, c-format msgid "Search in %s directory" msgstr "Тражи у директоријуму „%s“" -#: ../gtk/friendlist.c:924 +#: ../gtk/friendlist.c:971 #, c-format msgid "Edit contact '%s'" msgstr "Уредите контакт „%s“" -#: ../gtk/friendlist.c:925 +#: ../gtk/friendlist.c:972 #, c-format msgid "Delete contact '%s'" msgstr "Обришите контакт „%s“" -#: ../gtk/friendlist.c:926 +#: ../gtk/friendlist.c:973 #, fuzzy, c-format msgid "Delete chat history of '%s'" msgstr "Обришите контакт „%s“" -#: ../gtk/friendlist.c:977 +#: ../gtk/friendlist.c:1024 #, c-format msgid "Add new contact from %s directory" msgstr "Додајте нови контакт из директоријума „%s“" -#: ../gtk/propertybox.c:373 +#: ../gtk/propertybox.c:562 msgid "Rate (Hz)" msgstr "Проток (Hz)" -#: ../gtk/propertybox.c:379 +#: ../gtk/propertybox.c:568 msgid "Status" msgstr "Стање" -#: ../gtk/propertybox.c:385 -msgid "Min bitrate (kbit/s)" +#: ../gtk/propertybox.c:574 +#, fuzzy +msgid "Bitrate (kbit/s)" msgstr "Најмањи проток бита (kbit/s)" -#: ../gtk/propertybox.c:392 +#: ../gtk/propertybox.c:581 msgid "Parameters" msgstr "Параметри" -#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:624 ../gtk/propertybox.c:767 msgid "Enabled" msgstr "Укључено" -#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:626 ../gtk/propertybox.c:767 msgid "Disabled" msgstr "Искључено" -#: ../gtk/propertybox.c:624 +#: ../gtk/propertybox.c:813 msgid "Account" msgstr "Налог" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:1057 msgid "English" msgstr "Енглески" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:1058 msgid "French" msgstr "Француски" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:1059 msgid "Swedish" msgstr "Шведски" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:1060 msgid "Italian" msgstr "Италијански" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:1061 msgid "Spanish" msgstr "Шпански" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:1062 msgid "Brazilian Portugese" msgstr "Бразилски португалски" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:1063 msgid "Polish" msgstr "Пољски" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:1064 msgid "German" msgstr "Немачки" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:1065 msgid "Russian" msgstr "Руски" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:1066 msgid "Japanese" msgstr "Јапански" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:1067 msgid "Dutch" msgstr "Холандски" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:1068 msgid "Hungarian" msgstr "Мађарски" -#: ../gtk/propertybox.c:776 +#: ../gtk/propertybox.c:1069 msgid "Czech" msgstr "Чешки" -#: ../gtk/propertybox.c:777 +#: ../gtk/propertybox.c:1070 msgid "Chinese" msgstr "Кинески" -#: ../gtk/propertybox.c:778 +#: ../gtk/propertybox.c:1071 msgid "Traditional Chinese" msgstr "Традиционални кинески" -#: ../gtk/propertybox.c:779 +#: ../gtk/propertybox.c:1072 msgid "Norwegian" msgstr "Норвешки" -#: ../gtk/propertybox.c:780 +#: ../gtk/propertybox.c:1073 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:781 +#: ../gtk/propertybox.c:1074 msgid "Serbian" msgstr "" -#: ../gtk/propertybox.c:848 +#: ../gtk/propertybox.c:1141 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "" "Трба поново да покренете линфон да би нови изабрани језик ступио на снагу." -#: ../gtk/propertybox.c:934 +#: ../gtk/propertybox.c:1219 msgid "None" msgstr "Ништа" -#: ../gtk/propertybox.c:938 +#: ../gtk/propertybox.c:1223 msgid "SRTP" msgstr "СРТП" -#: ../gtk/propertybox.c:944 +#: ../gtk/propertybox.c:1229 msgid "ZRTP" msgstr "ЗРТП" @@ -461,109 +467,118 @@ msgstr "Већ имам један налог и желим да га корис msgid "I have already a sip account and I just want to use it" msgstr "Већ имам један налог и желим да га користим" -#: ../gtk/setupwizard.c:85 +#: ../gtk/setupwizard.c:46 +msgid "I want to specify a remote configuration URI" +msgstr "" + +#: ../gtk/setupwizard.c:89 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:92 +#: ../gtk/setupwizard.c:96 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4 msgid "Username:" msgstr "Корисничко име:" -#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:98 ../gtk/password.ui.h:4 ../gtk/ldap.ui.h:5 msgid "Password:" msgstr "Лозинка:" -#: ../gtk/setupwizard.c:114 +#: ../gtk/setupwizard.c:118 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:125 #, fuzzy msgid "Username*" msgstr "Корисничко име" -#: ../gtk/setupwizard.c:122 +#: ../gtk/setupwizard.c:126 #, fuzzy msgid "Password*" msgstr "Лозинка" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:129 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:126 +#: ../gtk/setupwizard.c:130 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:302 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:299 +#: ../gtk/setupwizard.c:303 #, fuzzy msgid "Username: (*)" msgstr "Корисничко име:" -#: ../gtk/setupwizard.c:301 +#: ../gtk/setupwizard.c:305 #, fuzzy msgid "Password: (*)" msgstr "Лозинка:" -#: ../gtk/setupwizard.c:303 +#: ../gtk/setupwizard.c:307 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:305 +#: ../gtk/setupwizard.c:309 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:369 +#: ../gtk/setupwizard.c:373 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:380 +#: ../gtk/setupwizard.c:384 msgid "Thank you. Your account is now configured and ready for use." msgstr "Хвала вам. Ваш налог је сада подешен и спреман за употребу." -#: ../gtk/setupwizard.c:388 +#: ../gtk/setupwizard.c:392 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:564 +#: ../gtk/setupwizard.c:572 +#, fuzzy +msgid "SIP account configuration assistant" +msgstr "Помоћник подешавања налога" + +#: ../gtk/setupwizard.c:590 msgid "Welcome to the account setup assistant" msgstr "Добродошли у помоћника подешавања налога" -#: ../gtk/setupwizard.c:569 +#: ../gtk/setupwizard.c:595 msgid "Account setup assistant" msgstr "Помоћник подешавања налога" -#: ../gtk/setupwizard.c:575 +#: ../gtk/setupwizard.c:601 #, fuzzy msgid "Configure your account (step 1/1)" msgstr "Подесите СИП налог" -#: ../gtk/setupwizard.c:580 +#: ../gtk/setupwizard.c:606 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:584 +#: ../gtk/setupwizard.c:610 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:593 +#: ../gtk/setupwizard.c:619 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:598 +#: ../gtk/setupwizard.c:624 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:602 +#: ../gtk/setupwizard.c:628 msgid "Terminating" msgstr "" @@ -635,135 +650,150 @@ msgstr "Позив није успео." msgid "Direct or through server" msgstr "" -#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:261 ../gtk/incall_view.c:272 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:286 +#: ../gtk/incall_view.c:267 ../gtk/incall_view.c:268 +#, c-format +msgid "%ix%i" +msgstr "" + +#: ../gtk/incall_view.c:297 #, fuzzy, c-format msgid "%.3f seconds" msgstr "%i секунда" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:395 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:476 +#: ../gtk/incall_view.c:487 msgid "Calling..." msgstr "Позивам..." -#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:700 msgid "00::00::00" msgstr "00::00::00" -#: ../gtk/incall_view.c:490 +#: ../gtk/incall_view.c:501 msgid "Incoming call" msgstr "Долазни позив" -#: ../gtk/incall_view.c:527 +#: ../gtk/incall_view.c:538 msgid "good" msgstr "добро" -#: ../gtk/incall_view.c:529 +#: ../gtk/incall_view.c:540 msgid "average" msgstr "просечно" -#: ../gtk/incall_view.c:531 +#: ../gtk/incall_view.c:542 msgid "poor" msgstr "оскудно" -#: ../gtk/incall_view.c:533 +#: ../gtk/incall_view.c:544 msgid "very poor" msgstr "јадно" -#: ../gtk/incall_view.c:535 +#: ../gtk/incall_view.c:546 msgid "too bad" msgstr "много лоше" -#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:547 ../gtk/incall_view.c:563 msgid "unavailable" msgstr "недоступно" -#: ../gtk/incall_view.c:651 +#: ../gtk/incall_view.c:662 msgid "Secured by SRTP" msgstr "Осигурано СРТП-ом" -#: ../gtk/incall_view.c:657 +#: ../gtk/incall_view.c:668 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "Осигурано ЗРТП-ом [потврђивање идентитета: %s]" -#: ../gtk/incall_view.c:663 +#: ../gtk/incall_view.c:674 msgid "Set unverified" msgstr "Непроверено подешавање" -#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:674 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "Проверено подешавање" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In conference" msgstr "На конференцији" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In call" msgstr "У позиву" -#: ../gtk/incall_view.c:718 +#: ../gtk/incall_view.c:731 msgid "Paused call" msgstr "Заустављен позив" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:744 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i::%02i::%02i" -#: ../gtk/incall_view.c:748 +#: ../gtk/incall_view.c:762 msgid "Call ended." msgstr "Позив је завршен." -#: ../gtk/incall_view.c:778 +#: ../gtk/incall_view.c:793 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:796 #, fuzzy msgid "Transfer done." msgstr "Пребаци" -#: ../gtk/incall_view.c:784 +#: ../gtk/incall_view.c:799 #, fuzzy msgid "Transfer failed." msgstr "Пребаци" -#: ../gtk/incall_view.c:828 +#: ../gtk/incall_view.c:843 msgid "Resume" msgstr "Настави" -#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:850 ../gtk/main.ui.h:9 msgid "Pause" msgstr "Застани" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, fuzzy msgid "(Paused)" msgstr "Застани" -#: ../gtk/loginframe.c:93 +#: ../gtk/loginframe.c:88 #, c-format msgid "Please enter login information for %s" msgstr "Унесите податке пријављивања за %s" +#: ../gtk/config-fetching.c:57 +#, c-format +msgid "fetching from %s" +msgstr "" + +#: ../gtk/config-fetching.c:73 +#, c-format +msgid "Downloading of remote configuration from %s failed." +msgstr "" + #: ../gtk/main.ui.h:1 msgid "Callee name" msgstr "Име позивника" @@ -810,90 +840,91 @@ msgid "_Options" msgstr "_Могућности" #: ../gtk/main.ui.h:18 +#, fuzzy +msgid "Set configuration URI" +msgstr "Потврђујем" + +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "Укључи самовиђење" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "По_моћ" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "Прикажи прозорче прочишћавања" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "_Матична страница" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "Провери _ажурирања" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 #, fuzzy msgid "Account assistant" msgstr "Помоћник подешавања налога" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "СИП адреса или број телефона:" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "Започните нови позив" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:28 msgid "Contacts" msgstr "Пријатељи" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 -msgid "Add" -msgstr "Додај" - -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 -msgid "Edit" -msgstr "Уреди" - -#: ../gtk/main.ui.h:30 +#: ../gtk/main.ui.h:29 msgid "Search" msgstr "Тражи" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Add contacts from directory" msgstr "Додај пријатеље из директоријума" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contact" msgstr "Додај пријатеља" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 msgid "Recent calls" msgstr "Скорашњи позиви" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "My current identity:" msgstr "Мој тренутни идентитет:" -#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:34 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Корисничко име" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Лозинка" -#: ../gtk/main.ui.h:37 +#: ../gtk/main.ui.h:36 msgid "Internet connection:" msgstr "Интернет веза:" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Automatically log me in" msgstr "Сам ме пријави" +#: ../gtk/main.ui.h:38 ../gtk/password.ui.h:3 +msgid "UserID" +msgstr "ИБ корисника" + #: ../gtk/main.ui.h:39 msgid "Login information" msgstr "Подаци пријављивања" @@ -940,6 +971,7 @@ msgstr "" "Интернет телефон са снимком који користи уобичајени СИП (rfc3261) протокол." #: ../gtk/about.ui.h:5 +#, fuzzy msgid "" "fr: Simon Morlat\n" "en: Simon Morlat and Delphine Perreau\n" @@ -952,6 +984,7 @@ msgid "" "pl: Robert Nasiadek \n" "cs: Petr Pisar \n" "hu: anonymous\n" +"he: Eli Zaretskii \n" msgstr "" "fr: Simon Morlat\n" "en: Simon Morlat and Delphine Perreau\n" @@ -997,10 +1030,6 @@ msgstr "Линфон — Потребно је потврђивање идент msgid "Please enter the domain password" msgstr "Унесите лозинку домена" -#: ../gtk/password.ui.h:3 -msgid "UserID" -msgstr "ИБ корисника" - #: ../gtk/call_logs.ui.h:1 msgid "Call history" msgstr "Историјат позива" @@ -1038,273 +1067,317 @@ msgid "Looks like sip:" msgstr "Изгледа као „sip:<назив посредника>" #: ../gtk/sip_account.ui.h:7 -msgid "Route (optional):" -msgstr "Рута (изборно):" - -#: ../gtk/sip_account.ui.h:8 msgid "Registration duration (sec):" msgstr "Трајање уписа (сек):" +#: ../gtk/sip_account.ui.h:8 +#, fuzzy +msgid "Contact params (optional):" +msgstr "Рута (изборно):" + #: ../gtk/sip_account.ui.h:9 +msgid "Route (optional):" +msgstr "Рута (изборно):" + +#: ../gtk/sip_account.ui.h:10 +#, fuzzy +msgid "Transport" +msgstr "Пренос" + +#: ../gtk/sip_account.ui.h:11 msgid "Register" msgstr "Упиши се" -#: ../gtk/sip_account.ui.h:10 +#: ../gtk/sip_account.ui.h:12 msgid "Publish presence information" msgstr "Објави податке о присуству" -#: ../gtk/sip_account.ui.h:11 +#: ../gtk/sip_account.ui.h:13 msgid "Configure a SIP account" msgstr "Подесите СИП налог" #: ../gtk/parameters.ui.h:1 +msgid "anonymous" +msgstr "" + +#: ../gtk/parameters.ui.h:2 +msgid "GSSAPI" +msgstr "" + +#: ../gtk/parameters.ui.h:3 +msgid "SASL" +msgstr "" + +#: ../gtk/parameters.ui.h:4 msgid "default soundcard" msgstr "основна звучна картица" -#: ../gtk/parameters.ui.h:2 +#: ../gtk/parameters.ui.h:5 msgid "a sound card" msgstr "звучна картица" -#: ../gtk/parameters.ui.h:3 +#: ../gtk/parameters.ui.h:6 msgid "default camera" msgstr "основна камера" -#: ../gtk/parameters.ui.h:4 +#: ../gtk/parameters.ui.h:7 msgid "CIF" msgstr "ЦИФ" -#: ../gtk/parameters.ui.h:5 +#: ../gtk/parameters.ui.h:8 msgid "Audio codecs" msgstr "Звучни кодеци" -#: ../gtk/parameters.ui.h:6 +#: ../gtk/parameters.ui.h:9 msgid "Video codecs" msgstr "Кодеци снимка" -#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:10 ../gtk/keypad.ui.h:5 msgid "C" msgstr "В" -#: ../gtk/parameters.ui.h:8 +#: ../gtk/parameters.ui.h:11 msgid "SIP (UDP)" msgstr "СИП (УДП)" -#: ../gtk/parameters.ui.h:9 +#: ../gtk/parameters.ui.h:12 msgid "SIP (TCP)" msgstr "СИП (ТЦП)" -#: ../gtk/parameters.ui.h:10 +#: ../gtk/parameters.ui.h:13 msgid "SIP (TLS)" msgstr "СИП (ТЛС)" -#: ../gtk/parameters.ui.h:11 +#: ../gtk/parameters.ui.h:14 msgid "Settings" msgstr "Подешавања" -#: ../gtk/parameters.ui.h:12 +#: ../gtk/parameters.ui.h:15 msgid "Set Maximum Transmission Unit:" msgstr "Подеси јединицу највећег преноса:" -#: ../gtk/parameters.ui.h:13 +#: ../gtk/parameters.ui.h:16 msgid "Send DTMFs as SIP info" msgstr "Пошаљи ДТМФ као СИП податке" -#: ../gtk/parameters.ui.h:14 +#: ../gtk/parameters.ui.h:17 msgid "Use IPv6 instead of IPv4" msgstr "Користи ИПв6 уместо ИПв4" -#: ../gtk/parameters.ui.h:15 +#: ../gtk/parameters.ui.h:18 msgid "Transport" msgstr "Пренос" -#: ../gtk/parameters.ui.h:16 +#: ../gtk/parameters.ui.h:19 msgid "Media encryption type" msgstr "Врста шифровања медија" -#: ../gtk/parameters.ui.h:17 +#: ../gtk/parameters.ui.h:20 msgid "Video RTP/UDP:" msgstr "РТП/УДП снимка:" -#: ../gtk/parameters.ui.h:18 +#: ../gtk/parameters.ui.h:21 msgid "Audio RTP/UDP:" msgstr "РТП/УДП звука:" -#: ../gtk/parameters.ui.h:19 -msgid "DSCP fields" -msgstr "" - -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:22 msgid "Fixed" msgstr "" -#: ../gtk/parameters.ui.h:21 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:22 +#: ../gtk/parameters.ui.h:23 #, fuzzy msgid "Media encryption is mandatory" msgstr "Врста шифровања медија" -#: ../gtk/parameters.ui.h:23 +#: ../gtk/parameters.ui.h:24 +msgid "Tunnel" +msgstr "" + +#: ../gtk/parameters.ui.h:25 +msgid "DSCP fields" +msgstr "" + +#: ../gtk/parameters.ui.h:26 +msgid "SIP/TCP port" +msgstr "" + +#: ../gtk/parameters.ui.h:27 +msgid "SIP/UDP port" +msgstr "" + +#: ../gtk/parameters.ui.h:28 msgid "Network protocol and ports" msgstr "Мрежни протокол и прикључници" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:29 msgid "Direct connection to the Internet" msgstr "Непосредна веза на Интернет" -#: ../gtk/parameters.ui.h:25 -msgid "Behind NAT / Firewall (specify gateway IP below)" +#: ../gtk/parameters.ui.h:30 +#, fuzzy +msgid "Behind NAT / Firewall (specify gateway IP )" msgstr "Иза НАТ-а / мрежне баријере (испод наведите ИП мрежног пролаза)" -#: ../gtk/parameters.ui.h:26 -msgid "Public IP address:" -msgstr "Јавна ИП адреса:" - -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:31 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "Иза НАТ-а / мрежне баријере (користите СТУН за решавање)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:32 #, fuzzy msgid "Behind NAT / Firewall (use ICE)" msgstr "Иза НАТ-а / мрежне баријере (користите СТУН за решавање)" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:33 #, fuzzy msgid "Behind NAT / Firewall (use uPnP)" msgstr "Иза НАТ-а / мрежне баријере (користите СТУН за решавање)" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:34 +msgid "Public IP address:" +msgstr "Јавна ИП адреса:" + +#: ../gtk/parameters.ui.h:35 msgid "Stun server:" msgstr "Стун сервер:" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:36 msgid "NAT and Firewall" msgstr "НАТ и мрежна баријера" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:37 msgid "Network settings" msgstr "Подешавања мреже" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:38 msgid "Ring sound:" msgstr "Звук звона:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:39 msgid "ALSA special device (optional):" msgstr "АЛСА-ин посебни уређај (изборно):" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:40 msgid "Capture device:" msgstr "Уређај за снимање:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:41 msgid "Ring device:" msgstr "Уређај за звоно:" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:42 msgid "Playback device:" msgstr "Уређај за пуштање:" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:43 msgid "Enable echo cancellation" msgstr "Укључи поништавање одјека" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:44 msgid "Audio" msgstr "Звук" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:45 msgid "Video input device:" msgstr "Улазни уређај снимка:" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:46 msgid "Prefered video resolution:" msgstr "Жељена резолуција снимка:" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:47 +#, fuzzy +msgid "Video output method:" +msgstr "Улазни уређај снимка:" + +#: ../gtk/parameters.ui.h:48 msgid "Video" msgstr "Снимак" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:49 msgid "Multimedia settings" msgstr "Подешавања мултимедија" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:50 msgid "This section defines your SIP address when not using a SIP account" msgstr "Овај одељак одређује вашу СИП адресу када не користите СИП налог" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:51 msgid "Your display name (eg: John Doe):" msgstr "Ваше приказано име (нпр: Пера Перић):" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:52 msgid "Your username:" msgstr "Ваше корисничко име:" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:53 msgid "Your resulting SIP address:" msgstr "Ваша резултирајућа СИП адреса:" -#: ../gtk/parameters.ui.h:48 +#: ../gtk/parameters.ui.h:54 msgid "Default identity" msgstr "Основни идентитет" -#: ../gtk/parameters.ui.h:49 +#: ../gtk/parameters.ui.h:55 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:56 +msgid "Add" +msgstr "Додај" + +#: ../gtk/parameters.ui.h:57 +msgid "Edit" +msgstr "Уреди" + +#: ../gtk/parameters.ui.h:58 msgid "Remove" msgstr "Уклони" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:59 msgid "Proxy accounts" msgstr "Посреднички налози" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:60 msgid "Erase all passwords" msgstr "Обриши све лозинке" -#: ../gtk/parameters.ui.h:55 +#: ../gtk/parameters.ui.h:61 msgid "Privacy" msgstr "Приватност" -#: ../gtk/parameters.ui.h:56 +#: ../gtk/parameters.ui.h:62 msgid "Manage SIP Accounts" msgstr "Управљај СИП налозима" -#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Укључи" -#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Искључи" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:65 msgid "Codecs" msgstr "Кодеци" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:66 msgid "0 stands for \"unlimited\"" msgstr "0 значи „неограничено“" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:67 msgid "Upload speed limit in Kbit/sec:" msgstr "Ограничење брзине слања у Kb/s:" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:68 msgid "Download speed limit in Kbit/sec:" msgstr "Ограничење брзине преузимања у Kb/s:" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:69 msgid "Enable adaptive rate control" msgstr "Укључи прилагодљиво управљање протоком" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:70 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." @@ -1312,31 +1385,54 @@ msgstr "" "Прилагодљиво управљање протоком је техника за променљиво погађање " "доступног пропусног опсега за време позива." -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:71 msgid "Bandwidth control" msgstr "Управљање пропусним опсегом" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:72 msgid "Codecs" msgstr "Kодеци" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:73 msgid "Language" msgstr "Језик" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:74 msgid "Show advanced settings" msgstr "Прикажи напредна подешавања" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:75 msgid "Level" msgstr "Ниво" -#: ../gtk/parameters.ui.h:70 +#: ../gtk/parameters.ui.h:76 msgid "User interface" msgstr "Корисничко сучеље" -#: ../gtk/parameters.ui.h:71 +#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2 +#, fuzzy +msgid "Server address:" +msgstr "Адреса СИП посредника:" + +#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3 +#, fuzzy +msgid "Authentication method:" +msgstr "Потврђивање идентитета није успело" + +#: ../gtk/parameters.ui.h:80 +msgid "label" +msgstr "натпис" + +#: ../gtk/parameters.ui.h:81 +#, fuzzy +msgid "LDAP Account setup" +msgstr "Посреднички налози" + +#: ../gtk/parameters.ui.h:82 +msgid "LDAP" +msgstr "" + +#: ../gtk/parameters.ui.h:83 msgid "Done" msgstr "Готово" @@ -1362,7 +1458,7 @@ msgstr "Молим сачекајте" #: ../gtk/dscp_settings.ui.h:1 #, fuzzy -msgid "Dscp settings" +msgid "DSCP settings" msgstr "Подешавања" #: ../gtk/dscp_settings.ui.h:2 @@ -1418,6 +1514,15 @@ msgid "Round trip time" msgstr "" #: ../gtk/call_statistics.ui.h:9 +msgid "Video resolution received" +msgstr "" + +#: ../gtk/call_statistics.ui.h:10 +#, fuzzy +msgid "Video resolution sent" +msgstr "Жељена резолуција снимка:" + +#: ../gtk/call_statistics.ui.h:11 #, fuzzy msgid "Call statistics and information" msgstr "Подаци о пријатељу" @@ -1503,19 +1608,141 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:228 +#: ../gtk/ldap.ui.h:1 +#, fuzzy +msgid "LDAP Settings" +msgstr "Подешавања" + +#: ../gtk/ldap.ui.h:6 +msgid "Use TLS Connection" +msgstr "" + +#: ../gtk/ldap.ui.h:7 +#, fuzzy +msgid "Not yet available" +msgstr "недоступно" + +#: ../gtk/ldap.ui.h:8 +#, fuzzy +msgid "Connection" +msgstr "Кодеци" + +#: ../gtk/ldap.ui.h:9 +msgid "Bind DN" +msgstr "" + +#: ../gtk/ldap.ui.h:10 +msgid "Authname" +msgstr "" + +#: ../gtk/ldap.ui.h:11 +msgid "Realm" +msgstr "" + +#: ../gtk/ldap.ui.h:12 +#, fuzzy +msgid "SASL" +msgstr "Звук" + +#: ../gtk/ldap.ui.h:13 +msgid "Base object:" +msgstr "" + +#: ../gtk/ldap.ui.h:15 +#, no-c-format +msgid "Filter (%s for name):" +msgstr "" + +#: ../gtk/ldap.ui.h:16 +msgid "Name Attribute:" +msgstr "" + +#: ../gtk/ldap.ui.h:17 +#, fuzzy +msgid "SIP address attribute:" +msgstr "СИП адреса или број телефона:" + +#: ../gtk/ldap.ui.h:18 +msgid "Attributes to query:" +msgstr "" + +#: ../gtk/ldap.ui.h:19 +#, fuzzy +msgid "Search" +msgstr "Потражите неког" + +#: ../gtk/ldap.ui.h:20 +msgid "Timeout for search:" +msgstr "" + +#: ../gtk/ldap.ui.h:21 +msgid "Max results:" +msgstr "" + +#: ../gtk/ldap.ui.h:22 +msgid "Follow Aliases" +msgstr "" + +#: ../gtk/ldap.ui.h:23 +#, fuzzy +msgid "Miscellaneous" +msgstr "Снимак" + +#: ../gtk/ldap.ui.h:24 +msgid "ANONYMOUS" +msgstr "" + +#: ../gtk/ldap.ui.h:25 +msgid "SIMPLE" +msgstr "" + +#: ../gtk/ldap.ui.h:26 +msgid "DIGEST-MD5" +msgstr "" + +#: ../gtk/ldap.ui.h:27 +msgid "NTLM" +msgstr "" + +#: ../gtk/config-uri.ui.h:1 +msgid "Specifying a remote configuration URI" +msgstr "" + +#: ../gtk/config-uri.ui.h:2 +msgid "" +"This dialog allows to set an http or https address when configuration is to " +"be fetched at startup.\n" +"Please enter or modify the configuration URI below. After clicking OK, " +"Linphone will restart automatically in order to fetch and take into account " +"the new configuration. " +msgstr "" + +#: ../gtk/config-uri.ui.h:4 +msgid "https://" +msgstr "" + +#: ../gtk/provisioning-fetch.ui.h:1 +#, fuzzy +msgid "Configuring..." +msgstr "Повезујем се..." + +#: ../gtk/provisioning-fetch.ui.h:2 +msgid "Please wait while fetching configuration from server..." +msgstr "" + +#: ../coreapi/linphonecore.c:238 msgid "aborted" msgstr "прекинути" -#: ../coreapi/linphonecore.c:231 +#: ../coreapi/linphonecore.c:241 msgid "completed" msgstr "завршени" -#: ../coreapi/linphonecore.c:234 +#: ../coreapi/linphonecore.c:244 msgid "missed" msgstr "пропуштени" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:249 #, c-format msgid "" "%s at %s\n" @@ -1530,103 +1757,77 @@ msgstr "" "Стање: %s\n" "Трајање: %i мин %i сек\n" -#: ../coreapi/linphonecore.c:240 +#: ../coreapi/linphonecore.c:250 msgid "Outgoing call" msgstr "Одлазни позив" -#: ../coreapi/linphonecore.c:1321 +#: ../coreapi/linphonecore.c:1264 msgid "Ready" msgstr "Спреман" -#: ../coreapi/linphonecore.c:2205 +#: ../coreapi/linphonecore.c:1372 +#, fuzzy +msgid "Configuring" +msgstr "Потврђујем" + +#: ../coreapi/linphonecore.c:2331 msgid "Looking for telephone number destination..." msgstr "Тражим одредиште телефонског броја..." -#: ../coreapi/linphonecore.c:2208 +#: ../coreapi/linphonecore.c:2334 msgid "Could not resolve this number." msgstr "Не могу да решим овај број." -#: ../coreapi/linphonecore.c:2252 -msgid "" -"Could not parse given sip address. A sip url usually looks like sip:" -"user@domain" -msgstr "" -"Не могу да обрадим дату сип адресу. Сип адреса обично изгледа као „sip:" -"корисник@домен“" - -#: ../coreapi/linphonecore.c:2453 +#. must be known at that time +#: ../coreapi/linphonecore.c:2609 msgid "Contacting" msgstr "Ступам у везу" -#: ../coreapi/linphonecore.c:2460 +#: ../coreapi/linphonecore.c:2616 msgid "Could not call" msgstr "Не могу да позовем" -#: ../coreapi/linphonecore.c:2570 +#: ../coreapi/linphonecore.c:2765 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "Извините, достигли смо највећи број истовремених позива" -#: ../coreapi/linphonecore.c:2752 +#: ../coreapi/linphonecore.c:2952 msgid "is contacting you" msgstr "вам се обраћа" -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid " and asked autoanswer." msgstr " и затражени само-одговор." -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2820 +#: ../coreapi/linphonecore.c:3020 msgid "Modifying call parameters..." msgstr "Мењам параметре позива..." -#: ../coreapi/linphonecore.c:3159 +#: ../coreapi/linphonecore.c:3362 msgid "Connected." msgstr "Повезан сам." -#: ../coreapi/linphonecore.c:3187 +#: ../coreapi/linphonecore.c:3388 msgid "Call aborted" msgstr "Позив је прекинут" -#: ../coreapi/linphonecore.c:3378 +#: ../coreapi/linphonecore.c:3581 msgid "Could not pause the call" msgstr "Не могу да зауставим позив" -#: ../coreapi/linphonecore.c:3383 +#: ../coreapi/linphonecore.c:3586 msgid "Pausing the current call..." msgstr "Заустављам тренутни позив..." -#: ../coreapi/misc.c:148 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the pcm oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -"'modprobe snd-pcm-oss' as root to load it." -msgstr "" -"Изгледа да ваш рачунар користи АЛСА управљачке програме за звук.\n" -"То је најбољи избор. Међутим недостаје пцм осс модул\n" -"за емулацију а потребан је линфону. Молим извршите\n" -"„modprobe snd-pcm-oss“ као администратор да га учитате." - -#: ../coreapi/misc.c:151 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the mixer oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -" 'modprobe snd-mixer-oss' as root to load it." -msgstr "" -"Изгледа да ваш рачунар користи АЛСА управљачке програме за звук.\n" -"То је најбољи избор. Међутим недостаје миксер осс модул\n" -"за емулацију а потребан је линфону. Молим извршите\n" -"„modprobe snd-mixer-oss“ као администратор да га учитате." - -#: ../coreapi/misc.c:496 +#: ../coreapi/misc.c:394 msgid "Stun lookup in progress..." msgstr "У току је тражење стуна..." -#: ../coreapi/misc.c:630 +#: ../coreapi/misc.c:576 msgid "ICE local candidates gathering in progress..." msgstr "" @@ -1675,10 +1876,15 @@ msgid "Pending" msgstr "На чекању" #: ../coreapi/friend.c:66 +#, fuzzy +msgid "Vacation" +msgstr "Трајање" + +#: ../coreapi/friend.c:68 msgid "Unknown-bug" msgstr "Непозната грешка" -#: ../coreapi/proxy.c:204 +#: ../coreapi/proxy.c:209 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." @@ -1686,7 +1892,7 @@ msgstr "" "Адреса сип посредника коју сте унели је неисправна, мора почети на „sip:“ за " "којим следи назив домаћина." -#: ../coreapi/proxy.c:210 +#: ../coreapi/proxy.c:215 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" @@ -1695,126 +1901,130 @@ msgstr "" "Треба да изгледа као „sip:корисник@домен-посредника, као што је „sip:" "alice@example.net“" -#: ../coreapi/proxy.c:1069 +#: ../coreapi/proxy.c:1125 #, c-format msgid "Could not login as %s" msgstr "Не могу да се пријавим као %s" -#: ../coreapi/callbacks.c:286 +#: ../coreapi/callbacks.c:289 msgid "Remote ringing." msgstr "Удаљено звоњење." -#: ../coreapi/callbacks.c:306 +#: ../coreapi/callbacks.c:305 msgid "Remote ringing..." msgstr "Удаљено звоњење..." -#: ../coreapi/callbacks.c:317 +#: ../coreapi/callbacks.c:316 msgid "Early media." msgstr "Ранији медиј." -#: ../coreapi/callbacks.c:368 +#: ../coreapi/callbacks.c:367 #, c-format msgid "Call with %s is paused." msgstr "Позив са „%s“ је заустављен." -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:380 #, c-format msgid "Call answered by %s - on hold." msgstr "Позив на који је одговорио „%s“ — на чекању." -#: ../coreapi/callbacks.c:392 +#: ../coreapi/callbacks.c:391 msgid "Call resumed." msgstr "Позив је настављен." -#: ../coreapi/callbacks.c:397 +#: ../coreapi/callbacks.c:396 #, c-format msgid "Call answered by %s." msgstr "На позив је одговорио „%s“." -#: ../coreapi/callbacks.c:412 +#: ../coreapi/callbacks.c:414 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:460 +#: ../coreapi/callbacks.c:463 #, fuzzy msgid "We have been resumed." msgstr "Позив нам је настављен..." -#: ../coreapi/callbacks.c:469 +#: ../coreapi/callbacks.c:471 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:475 +#: ../coreapi/callbacks.c:487 #, fuzzy msgid "Call is updated by remote." msgstr "Позив је ажуриран удаљеним..." -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:558 msgid "Call terminated." msgstr "Позив је завршен." -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:586 msgid "User is busy." msgstr "Корисник је заузет." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:587 msgid "User is temporarily unavailable." msgstr "Корисник је привремено недоступан." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:558 +#: ../coreapi/callbacks.c:589 msgid "User does not want to be disturbed." msgstr "Корисник не жели да буде узнемираван." -#: ../coreapi/callbacks.c:559 +#: ../coreapi/callbacks.c:590 msgid "Call declined." msgstr "Позив је одбијен." -#: ../coreapi/callbacks.c:571 +#: ../coreapi/callbacks.c:603 msgid "No response." msgstr "Нема одговора." -#: ../coreapi/callbacks.c:575 +#: ../coreapi/callbacks.c:607 msgid "Protocol error." msgstr "Грешка у протоколу." -#: ../coreapi/callbacks.c:591 +#: ../coreapi/callbacks.c:623 msgid "Redirected" msgstr "Преусмерен" -#: ../coreapi/callbacks.c:627 +#: ../coreapi/callbacks.c:665 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:633 +#: ../coreapi/callbacks.c:677 msgid "Call failed." msgstr "Позив није успео." -#: ../coreapi/callbacks.c:737 +#: ../coreapi/callbacks.c:751 #, c-format msgid "Registration on %s successful." msgstr "Уписивање на „%s“ је успело." -#: ../coreapi/callbacks.c:738 +#: ../coreapi/callbacks.c:752 #, c-format msgid "Unregistration on %s done." msgstr "Исписивање са „%s“ је обављено." -#: ../coreapi/callbacks.c:758 +#: ../coreapi/callbacks.c:772 msgid "no response timeout" msgstr "нема ограничења одговора" -#: ../coreapi/callbacks.c:761 +#: ../coreapi/callbacks.c:775 #, c-format msgid "Registration on %s failed: %s" msgstr "Уписивање на „%s“ није успело: %s" -#: ../coreapi/linphonecall.c:129 +#: ../coreapi/callbacks.c:785 +msgid "Service unavailable, retrying" +msgstr "" + +#: ../coreapi/linphonecall.c:142 #, c-format msgid "Authentication token is %s" msgstr "Симбол потврђивања идентитета је „%s“" -#: ../coreapi/linphonecall.c:2355 +#: ../coreapi/linphonecall.c:2678 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -1823,8 +2033,34 @@ msgstr[1] "Пропустили сте %i позива." msgstr[2] "Пропустили сте %i позива." msgstr[3] "Пропустили сте један позив." -#~ msgid "label" -#~ msgstr "натпис" +#~ msgid "" +#~ "Could not parse given sip address. A sip url usually looks like sip:" +#~ "user@domain" +#~ msgstr "" +#~ "Не могу да обрадим дату сип адресу. Сип адреса обично изгледа као „sip:" +#~ "корисник@домен“" + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the pcm oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ "'modprobe snd-pcm-oss' as root to load it." +#~ msgstr "" +#~ "Изгледа да ваш рачунар користи АЛСА управљачке програме за звук.\n" +#~ "То је најбољи избор. Међутим недостаје пцм осс модул\n" +#~ "за емулацију а потребан је линфону. Молим извршите\n" +#~ "„modprobe snd-pcm-oss“ као администратор да га учитате." + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the mixer oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ " 'modprobe snd-mixer-oss' as root to load it." +#~ msgstr "" +#~ "Изгледа да ваш рачунар користи АЛСА управљачке програме за звук.\n" +#~ "То је најбољи избор. Међутим недостаје миксер осс модул\n" +#~ "за емулацију а потребан је линфону. Молим извршите\n" +#~ "„modprobe snd-mixer-oss“ као администратор да га учитате." #~ msgid "Chat with %s" #~ msgstr "Ћаскајте са „%s“" @@ -1856,9 +2092,6 @@ msgstr[3] "Пропустили сте један позив." #~ msgid "Verifying" #~ msgstr "Проверавам" -#~ msgid "Confirmation" -#~ msgstr "Потврђујем" - #~ msgid "Creating your account" #~ msgstr "Правим ваш налог" @@ -1892,6 +2125,3 @@ msgstr[3] "Пропустили сте један позив." #~ msgid "No common codecs" #~ msgstr "Нема познатих кодека" - -#~ msgid "Authentication failure" -#~ msgstr "Потврђивање идентитета није успело" diff --git a/po/sv.po b/po/sv.po index c814f86c4..7d5421323 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-24 14:04+0200\n" +"POT-Creation-Date: 2014-02-14 14:57+0100\n" "PO-Revision-Date: 2009-02-17 15:22+0100\n" "Last-Translator: Emmanuel Frécon \n" "Language-Team: SWEDISH \n" @@ -16,12 +16,12 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:969 #, c-format msgid "Call %s" msgstr "Ringer %s" -#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:970 #, c-format msgid "Send text to %s" msgstr "Skicka text till %s" @@ -97,35 +97,35 @@ msgstr "Mikrofon av" msgid "Couldn't find pixmap file: %s" msgstr "Kunde inte hitta pixmap filen: %s" -#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:363 ../gtk/friendlist.c:919 msgid "Invalid sip contact !" msgstr "ogiltig SIP kontakt!" -#: ../gtk/main.c:92 +#: ../gtk/main.c:102 msgid "log to stdout some debug information while running." msgstr "skriv loggning information under körning" -#: ../gtk/main.c:99 +#: ../gtk/main.c:109 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:106 +#: ../gtk/main.c:116 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:113 +#: ../gtk/main.c:123 msgid "Start only in the system tray, do not show the main interface." msgstr "Starta ikonifierat, visa inte huvudfönstret" -#: ../gtk/main.c:120 +#: ../gtk/main.c:130 msgid "address to call right now" msgstr "Samtalsmottagare" -#: ../gtk/main.c:127 +#: ../gtk/main.c:137 msgid "if set automatically answer incoming calls" msgstr "Om på, besvara automatisk alla inkommande samtal" -#: ../gtk/main.c:134 +#: ../gtk/main.c:144 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" @@ -133,12 +133,17 @@ msgstr "" "Välj en arbetskatalog som ska vara basen för installationen, såsom C:" "\\Program\\Linphone" -#: ../gtk/main.c:515 +#: ../gtk/main.c:151 +#, fuzzy +msgid "Configuration file" +msgstr "Bekräftelse" + +#: ../gtk/main.c:573 #, c-format msgid "Call with %s" msgstr "Samtal med %s" -#: ../gtk/main.c:946 +#: ../gtk/main.c:1150 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -151,239 +156,240 @@ msgstr "" "henne till din kontaktlista?\n" "Om du svarar nej, personen kommer att vara bannlyst." -#: ../gtk/main.c:1023 -#, c-format +#: ../gtk/main.c:1227 +#, fuzzy, c-format msgid "" "Please enter your password for username %s\n" -" at domain %s:" +" at realm %s:" msgstr "" "Mata in ditt lösenord för användaren %s\n" "vid domänen %s:" -#: ../gtk/main.c:1126 +#: ../gtk/main.c:1339 #, fuzzy msgid "Call error" msgstr "Samtalshistorik" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 +#: ../gtk/main.c:1342 ../coreapi/linphonecore.c:3408 msgid "Call ended" msgstr "Samtalet slut" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 +#: ../gtk/main.c:1345 ../coreapi/linphonecore.c:250 msgid "Incoming call" msgstr "Inkommande samtal" -#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 +#: ../gtk/main.c:1347 ../gtk/incall_view.c:508 ../gtk/main.ui.h:5 msgid "Answer" msgstr "" -#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1349 ../gtk/main.ui.h:6 msgid "Decline" msgstr "Avböj" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy msgid "Call paused" msgstr "avbrytade" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy, c-format msgid "by %s" msgstr "Portar" -#: ../gtk/main.c:1191 +#: ../gtk/main.c:1422 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1353 +#: ../gtk/main.c:1584 msgid "Website link" msgstr "Webbsajt" -#: ../gtk/main.c:1402 +#: ../gtk/main.c:1633 msgid "Linphone - a video internet phone" msgstr "Linphone - en video Internet telefon" -#: ../gtk/main.c:1494 +#: ../gtk/main.c:1725 #, c-format msgid "%s (Default)" msgstr "%s (Default)" -#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 +#: ../gtk/main.c:2061 ../coreapi/callbacks.c:827 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1806 +#: ../gtk/main.c:2071 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." msgstr "" -#: ../gtk/main.c:1911 +#: ../gtk/main.c:2207 msgid "A free SIP video-phone" msgstr "En gratis SIP video-telefon" -#: ../gtk/friendlist.c:469 +#: ../gtk/friendlist.c:505 msgid "Add to addressbook" msgstr "" -#: ../gtk/friendlist.c:643 +#: ../gtk/friendlist.c:691 msgid "Presence status" msgstr "Närvarostatus" -#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:709 ../gtk/propertybox.c:556 ../gtk/contact.ui.h:1 msgid "Name" msgstr "Namn" -#: ../gtk/friendlist.c:673 +#: ../gtk/friendlist.c:721 #, fuzzy msgid "Call" msgstr "Ringer %s" -#: ../gtk/friendlist.c:678 +#: ../gtk/friendlist.c:726 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:708 +#: ../gtk/friendlist.c:756 #, c-format msgid "Search in %s directory" msgstr "Sök i %s katalogen" -#: ../gtk/friendlist.c:924 +#: ../gtk/friendlist.c:971 #, c-format msgid "Edit contact '%s'" msgstr "Ändra kontakt '%s'" -#: ../gtk/friendlist.c:925 +#: ../gtk/friendlist.c:972 #, c-format msgid "Delete contact '%s'" msgstr "Ta bort kontakt '%s'" -#: ../gtk/friendlist.c:926 +#: ../gtk/friendlist.c:973 #, fuzzy, c-format msgid "Delete chat history of '%s'" msgstr "Ta bort kontakt '%s'" -#: ../gtk/friendlist.c:977 +#: ../gtk/friendlist.c:1024 #, c-format msgid "Add new contact from %s directory" msgstr "Lägg till kontakt ifrån %s katalogen" -#: ../gtk/propertybox.c:373 +#: ../gtk/propertybox.c:562 msgid "Rate (Hz)" msgstr "Frekvens (Hz)" -#: ../gtk/propertybox.c:379 +#: ../gtk/propertybox.c:568 msgid "Status" msgstr "Status" -#: ../gtk/propertybox.c:385 -msgid "Min bitrate (kbit/s)" +#: ../gtk/propertybox.c:574 +#, fuzzy +msgid "Bitrate (kbit/s)" msgstr "Min. datahastighet (kbit/s)" -#: ../gtk/propertybox.c:392 +#: ../gtk/propertybox.c:581 msgid "Parameters" msgstr "Parametrar" -#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:624 ../gtk/propertybox.c:767 msgid "Enabled" msgstr "På" -#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:626 ../gtk/propertybox.c:767 msgid "Disabled" msgstr "Av" -#: ../gtk/propertybox.c:624 +#: ../gtk/propertybox.c:813 msgid "Account" msgstr "Konto" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:1057 msgid "English" msgstr "Engelska" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:1058 msgid "French" msgstr "Fransk" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:1059 msgid "Swedish" msgstr "Svenska" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:1060 msgid "Italian" msgstr "Italiensk" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:1061 msgid "Spanish" msgstr "Spanska" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:1062 msgid "Brazilian Portugese" msgstr "Portugisiska" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:1063 msgid "Polish" msgstr "Polska" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:1064 msgid "German" msgstr "Tyska" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:1065 msgid "Russian" msgstr "Ryska" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:1066 msgid "Japanese" msgstr "Japanska" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:1067 msgid "Dutch" msgstr "Nederländksa" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:1068 msgid "Hungarian" msgstr "Hungerska" -#: ../gtk/propertybox.c:776 +#: ../gtk/propertybox.c:1069 msgid "Czech" msgstr "Tjekiska" -#: ../gtk/propertybox.c:777 +#: ../gtk/propertybox.c:1070 msgid "Chinese" msgstr "Kinesiska" -#: ../gtk/propertybox.c:778 +#: ../gtk/propertybox.c:1071 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:779 +#: ../gtk/propertybox.c:1072 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:780 +#: ../gtk/propertybox.c:1073 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:781 +#: ../gtk/propertybox.c:1074 msgid "Serbian" msgstr "" -#: ../gtk/propertybox.c:848 +#: ../gtk/propertybox.c:1141 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "Du behöver starta om programmet för att det nya språket ska synas." -#: ../gtk/propertybox.c:934 +#: ../gtk/propertybox.c:1219 msgid "None" msgstr "" -#: ../gtk/propertybox.c:938 +#: ../gtk/propertybox.c:1223 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:944 +#: ../gtk/propertybox.c:1229 msgid "ZRTP" msgstr "" @@ -450,109 +456,118 @@ msgstr "Jag har redan ett konto och vill bara använda det." msgid "I have already a sip account and I just want to use it" msgstr "Jag har redan ett konto och vill bara använda det." -#: ../gtk/setupwizard.c:85 +#: ../gtk/setupwizard.c:46 +msgid "I want to specify a remote configuration URI" +msgstr "" + +#: ../gtk/setupwizard.c:89 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:92 +#: ../gtk/setupwizard.c:96 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4 msgid "Username:" msgstr "Användarnamn:" -#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:98 ../gtk/password.ui.h:4 ../gtk/ldap.ui.h:5 msgid "Password:" msgstr "Lösenord:" -#: ../gtk/setupwizard.c:114 +#: ../gtk/setupwizard.c:118 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:125 #, fuzzy msgid "Username*" msgstr "Användarnamn" -#: ../gtk/setupwizard.c:122 +#: ../gtk/setupwizard.c:126 #, fuzzy msgid "Password*" msgstr "Lösenord" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:129 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:126 +#: ../gtk/setupwizard.c:130 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:302 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:299 +#: ../gtk/setupwizard.c:303 #, fuzzy msgid "Username: (*)" msgstr "Användarnamn:" -#: ../gtk/setupwizard.c:301 +#: ../gtk/setupwizard.c:305 #, fuzzy msgid "Password: (*)" msgstr "Lösenord:" -#: ../gtk/setupwizard.c:303 +#: ../gtk/setupwizard.c:307 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:305 +#: ../gtk/setupwizard.c:309 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:369 +#: ../gtk/setupwizard.c:373 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:380 +#: ../gtk/setupwizard.c:384 msgid "Thank you. Your account is now configured and ready for use." msgstr "Tack. Ditt konto är nu konfigurerad och färdig att användas." -#: ../gtk/setupwizard.c:388 +#: ../gtk/setupwizard.c:392 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:564 +#: ../gtk/setupwizard.c:572 +#, fuzzy +msgid "SIP account configuration assistant" +msgstr "Kontoinstallationsassistenten" + +#: ../gtk/setupwizard.c:590 msgid "Welcome to the account setup assistant" msgstr "Välkommen till kontoinstallationsassistenten" -#: ../gtk/setupwizard.c:569 +#: ../gtk/setupwizard.c:595 msgid "Account setup assistant" msgstr "Kontoinstallationsassistenten" -#: ../gtk/setupwizard.c:575 +#: ../gtk/setupwizard.c:601 #, fuzzy msgid "Configure your account (step 1/1)" msgstr "Konfigurera ett SIP konto" -#: ../gtk/setupwizard.c:580 +#: ../gtk/setupwizard.c:606 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:584 +#: ../gtk/setupwizard.c:610 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:593 +#: ../gtk/setupwizard.c:619 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:598 +#: ../gtk/setupwizard.c:624 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:602 +#: ../gtk/setupwizard.c:628 #, fuzzy msgid "Terminating" msgstr "Lägg på" @@ -623,136 +638,151 @@ msgstr "Samtalet avböjdes." msgid "Direct or through server" msgstr "" -#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:261 ../gtk/incall_view.c:272 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:286 +#: ../gtk/incall_view.c:267 ../gtk/incall_view.c:268 +#, c-format +msgid "%ix%i" +msgstr "" + +#: ../gtk/incall_view.c:297 #, c-format msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:395 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:476 +#: ../gtk/incall_view.c:487 msgid "Calling..." msgstr "Ringer..." -#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:700 msgid "00::00::00" msgstr "00:00:00" -#: ../gtk/incall_view.c:490 +#: ../gtk/incall_view.c:501 #, fuzzy msgid "Incoming call" msgstr "Inkommande samtal" -#: ../gtk/incall_view.c:527 +#: ../gtk/incall_view.c:538 msgid "good" msgstr "" -#: ../gtk/incall_view.c:529 +#: ../gtk/incall_view.c:540 msgid "average" msgstr "" -#: ../gtk/incall_view.c:531 +#: ../gtk/incall_view.c:542 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:533 +#: ../gtk/incall_view.c:544 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:535 +#: ../gtk/incall_view.c:546 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:547 ../gtk/incall_view.c:563 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:651 +#: ../gtk/incall_view.c:662 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:657 +#: ../gtk/incall_view.c:668 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:663 +#: ../gtk/incall_view.c:674 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:674 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 #, fuzzy msgid "In call" msgstr "I samtal med" -#: ../gtk/incall_view.c:718 +#: ../gtk/incall_view.c:731 #, fuzzy msgid "Paused call" msgstr "Lägg på" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:744 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i:%02i:%02i" -#: ../gtk/incall_view.c:748 +#: ../gtk/incall_view.c:762 msgid "Call ended." msgstr "Samtalet slut." -#: ../gtk/incall_view.c:778 +#: ../gtk/incall_view.c:793 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:796 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:784 +#: ../gtk/incall_view.c:799 #, fuzzy msgid "Transfer failed." msgstr "Samtalet avböjdes." -#: ../gtk/incall_view.c:828 +#: ../gtk/incall_view.c:843 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:850 ../gtk/main.ui.h:9 msgid "Pause" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 msgid "(Paused)" msgstr "" -#: ../gtk/loginframe.c:93 +#: ../gtk/loginframe.c:88 #, c-format msgid "Please enter login information for %s" msgstr "Mata in ditt lösenord för domänen %s:" +#: ../gtk/config-fetching.c:57 +#, fuzzy, c-format +msgid "fetching from %s" +msgstr "Inkommande samtal från %s" + +#: ../gtk/config-fetching.c:73 +#, c-format +msgid "Downloading of remote configuration from %s failed." +msgstr "" + #: ../gtk/main.ui.h:1 #, fuzzy msgid "Callee name" @@ -799,96 +829,97 @@ msgid "_Options" msgstr "" #: ../gtk/main.ui.h:18 +#, fuzzy +msgid "Set configuration URI" +msgstr "Bekräftelse" + +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "Själv bild" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 #, fuzzy msgid "Show debug window" msgstr "Linphone debug fönster" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 #, fuzzy msgid "_Homepage" msgstr "Hemsidan" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 #, fuzzy msgid "Check _Updates" msgstr "Letar efter uppdateringar" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 #, fuzzy msgid "Account assistant" msgstr "Kontoinstallationsassistenten" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "Användarnamn" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:28 #, fuzzy msgid "Contacts" msgstr "Kontaktar" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 -msgid "Add" -msgstr "Lägg till" - -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 -msgid "Edit" -msgstr "Editera" - -#: ../gtk/main.ui.h:30 +#: ../gtk/main.ui.h:29 msgid "Search" msgstr "Sök" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Add contacts from directory" msgstr "Lägg till kontakt ifrån katalogen" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 #, fuzzy msgid "Add contact" msgstr "Hittat kontakt %i" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Recent calls" msgstr "I samtal" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "My current identity:" msgstr "Min nuvarande identitet" -#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:34 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "Användarnamn" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "Lösenord" -#: ../gtk/main.ui.h:37 +#: ../gtk/main.ui.h:36 msgid "Internet connection:" msgstr "Internet förbindelse:" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Automatically log me in" msgstr "Logga mig automatiskt" +#: ../gtk/main.ui.h:38 ../gtk/password.ui.h:3 +msgid "UserID" +msgstr "AnvändarID" + #: ../gtk/main.ui.h:39 msgid "Login information" msgstr "Login information" @@ -953,6 +984,7 @@ msgid "" "pl: Robert Nasiadek \n" "cs: Petr Pisar \n" "hu: anonymous\n" +"he: Eli Zaretskii \n" msgstr "" #: ../gtk/contact.ui.h:2 @@ -988,10 +1020,6 @@ msgstr "Linphone - Autentisering krävs" msgid "Please enter the domain password" msgstr "Mata in lösenordet för domänen" -#: ../gtk/password.ui.h:3 -msgid "UserID" -msgstr "AnvändarID" - #: ../gtk/call_logs.ui.h:1 msgid "Call history" msgstr "Samtalshistorik" @@ -1030,310 +1058,377 @@ msgid "Looks like sip:" msgstr "" #: ../gtk/sip_account.ui.h:7 -msgid "Route (optional):" -msgstr "Route (tillval):" - -#: ../gtk/sip_account.ui.h:8 msgid "Registration duration (sec):" msgstr "Registreringsfrekvens (sek.):" +#: ../gtk/sip_account.ui.h:8 +#, fuzzy +msgid "Contact params (optional):" +msgstr "Route (tillval):" + #: ../gtk/sip_account.ui.h:9 +msgid "Route (optional):" +msgstr "Route (tillval):" + +#: ../gtk/sip_account.ui.h:10 +#, fuzzy +msgid "Transport" +msgstr "Transport" + +#: ../gtk/sip_account.ui.h:11 msgid "Register" msgstr "" -#: ../gtk/sip_account.ui.h:10 +#: ../gtk/sip_account.ui.h:12 msgid "Publish presence information" msgstr "Publicera närvaro information" -#: ../gtk/sip_account.ui.h:11 +#: ../gtk/sip_account.ui.h:13 msgid "Configure a SIP account" msgstr "Konfigurera ett SIP konto" #: ../gtk/parameters.ui.h:1 +msgid "anonymous" +msgstr "" + +#: ../gtk/parameters.ui.h:2 +msgid "GSSAPI" +msgstr "" + +#: ../gtk/parameters.ui.h:3 +msgid "SASL" +msgstr "" + +#: ../gtk/parameters.ui.h:4 msgid "default soundcard" msgstr "default ljudkort" -#: ../gtk/parameters.ui.h:2 +#: ../gtk/parameters.ui.h:5 #, fuzzy msgid "a sound card" msgstr "ett ljud kort\n" -#: ../gtk/parameters.ui.h:3 +#: ../gtk/parameters.ui.h:6 msgid "default camera" msgstr "default kamera" -#: ../gtk/parameters.ui.h:4 +#: ../gtk/parameters.ui.h:7 msgid "CIF" msgstr "" -#: ../gtk/parameters.ui.h:5 +#: ../gtk/parameters.ui.h:8 #, fuzzy msgid "Audio codecs" msgstr "" "Audio codecs\n" "Video codecs" -#: ../gtk/parameters.ui.h:6 +#: ../gtk/parameters.ui.h:9 #, fuzzy msgid "Video codecs" msgstr "" "Audio codecs\n" "Video codecs" -#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:10 ../gtk/keypad.ui.h:5 msgid "C" msgstr "" -#: ../gtk/parameters.ui.h:8 +#: ../gtk/parameters.ui.h:11 msgid "SIP (UDP)" msgstr "" -#: ../gtk/parameters.ui.h:9 +#: ../gtk/parameters.ui.h:12 msgid "SIP (TCP)" msgstr "" -#: ../gtk/parameters.ui.h:10 +#: ../gtk/parameters.ui.h:13 msgid "SIP (TLS)" msgstr "" -#: ../gtk/parameters.ui.h:11 +#: ../gtk/parameters.ui.h:14 msgid "Settings" msgstr "Inställningar" -#: ../gtk/parameters.ui.h:12 +#: ../gtk/parameters.ui.h:15 msgid "Set Maximum Transmission Unit:" msgstr "Välj MTU (Maximum Transmission Unit):" -#: ../gtk/parameters.ui.h:13 +#: ../gtk/parameters.ui.h:16 msgid "Send DTMFs as SIP info" msgstr "Kicka DTMF koder som SIP info" -#: ../gtk/parameters.ui.h:14 +#: ../gtk/parameters.ui.h:17 msgid "Use IPv6 instead of IPv4" msgstr "Använd IPv6 istället av IPv4" -#: ../gtk/parameters.ui.h:15 +#: ../gtk/parameters.ui.h:18 msgid "Transport" msgstr "Transport" -#: ../gtk/parameters.ui.h:16 +#: ../gtk/parameters.ui.h:19 msgid "Media encryption type" msgstr "" -#: ../gtk/parameters.ui.h:17 +#: ../gtk/parameters.ui.h:20 msgid "Video RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:18 +#: ../gtk/parameters.ui.h:21 msgid "Audio RTP/UDP:" msgstr "" -#: ../gtk/parameters.ui.h:19 -msgid "DSCP fields" -msgstr "" - -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:22 msgid "Fixed" msgstr "" -#: ../gtk/parameters.ui.h:21 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:22 +#: ../gtk/parameters.ui.h:23 msgid "Media encryption is mandatory" msgstr "" -#: ../gtk/parameters.ui.h:23 +#: ../gtk/parameters.ui.h:24 +msgid "Tunnel" +msgstr "" + +#: ../gtk/parameters.ui.h:25 +msgid "DSCP fields" +msgstr "" + +#: ../gtk/parameters.ui.h:26 +msgid "SIP/TCP port" +msgstr "" + +#: ../gtk/parameters.ui.h:27 +msgid "SIP/UDP port" +msgstr "" + +#: ../gtk/parameters.ui.h:28 msgid "Network protocol and ports" msgstr "" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:29 msgid "Direct connection to the Internet" msgstr "Direkt förbindelse till Internet" -#: ../gtk/parameters.ui.h:25 -msgid "Behind NAT / Firewall (specify gateway IP below)" +#: ../gtk/parameters.ui.h:30 +#, fuzzy +msgid "Behind NAT / Firewall (specify gateway IP )" msgstr "Bakom en NAT / brandvägg (specificera gatewap IP adress nedan)" -#: ../gtk/parameters.ui.h:26 -msgid "Public IP address:" -msgstr "Publik IP adress:" - -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:31 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "Bakom en NAT / brandvägg (använd STUN för att avgöra adressen)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:32 #, fuzzy msgid "Behind NAT / Firewall (use ICE)" msgstr "Bakom en NAT / brandvägg (använd STUN för att avgöra adressen)" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:33 #, fuzzy msgid "Behind NAT / Firewall (use uPnP)" msgstr "Bakom en NAT / brandvägg (använd STUN för att avgöra adressen)" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:34 +msgid "Public IP address:" +msgstr "Publik IP adress:" + +#: ../gtk/parameters.ui.h:35 msgid "Stun server:" msgstr "STUN server:" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:36 msgid "NAT and Firewall" msgstr "NAT och Brandvägg" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:37 msgid "Network settings" msgstr "Nätverksinställningar" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:38 msgid "Ring sound:" msgstr "Ring signal:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:39 msgid "ALSA special device (optional):" msgstr "ALSA speciell enhet (tillval):" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:40 msgid "Capture device:" msgstr "Mikrofon enhet:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:41 msgid "Ring device:" msgstr "Ringning enhet:" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:42 msgid "Playback device:" msgstr "Uppspelningsenhet:" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:43 msgid "Enable echo cancellation" msgstr "Tillåta ekokancellering" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:44 msgid "Audio" msgstr "Audio" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:45 msgid "Video input device:" msgstr "Video ingångsenhet:" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:46 msgid "Prefered video resolution:" msgstr "Video upplösning:" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:47 +#, fuzzy +msgid "Video output method:" +msgstr "Video ingångsenhet:" + +#: ../gtk/parameters.ui.h:48 msgid "Video" msgstr "Video" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:49 msgid "Multimedia settings" msgstr "Multimedia inställningar" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:50 msgid "This section defines your SIP address when not using a SIP account" msgstr "" "Denna sektion specificerar din SIP adress när du inte använder ett SIP konto" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:51 msgid "Your display name (eg: John Doe):" msgstr "Ditt synliga namn, e.g. Kalle Karlsson:" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:52 msgid "Your username:" msgstr "Ditt användarnamn:" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:53 msgid "Your resulting SIP address:" msgstr "Din SIP adress:" -#: ../gtk/parameters.ui.h:48 +#: ../gtk/parameters.ui.h:54 msgid "Default identity" msgstr "Default identitet" -#: ../gtk/parameters.ui.h:49 +#: ../gtk/parameters.ui.h:55 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:56 +msgid "Add" +msgstr "Lägg till" + +#: ../gtk/parameters.ui.h:57 +msgid "Edit" +msgstr "Editera" + +#: ../gtk/parameters.ui.h:58 msgid "Remove" msgstr "Ta bort" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:59 msgid "Proxy accounts" msgstr "Proxy konton" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:60 msgid "Erase all passwords" msgstr "Glöm alla lösenord" -#: ../gtk/parameters.ui.h:55 +#: ../gtk/parameters.ui.h:61 msgid "Privacy" msgstr "Integritet" -#: ../gtk/parameters.ui.h:56 +#: ../gtk/parameters.ui.h:62 msgid "Manage SIP Accounts" msgstr "Hantera SIP konton" -#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "Möjliggör" -#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "Inaktivera" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:65 msgid "Codecs" msgstr "Codecs" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:66 msgid "0 stands for \"unlimited\"" msgstr "0 står för \"utan begränsning\"" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:67 msgid "Upload speed limit in Kbit/sec:" msgstr "Max upstream bandbreddshastighet i kbit/sek:" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:68 msgid "Download speed limit in Kbit/sec:" msgstr "Max downstream bandbreddshastighet i kbit/sek:" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:69 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:70 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:71 msgid "Bandwidth control" msgstr "Bandbreddskontroll" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:72 msgid "Codecs" msgstr "Codecs" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:73 msgid "Language" msgstr "Språk" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:74 msgid "Show advanced settings" msgstr "Visa avancerade inställningar" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:75 msgid "Level" msgstr "Nivå" -#: ../gtk/parameters.ui.h:70 +#: ../gtk/parameters.ui.h:76 msgid "User interface" msgstr "Användarinterface" -#: ../gtk/parameters.ui.h:71 +#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2 +#, fuzzy +msgid "Server address:" +msgstr "SIP Adress" + +#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3 +#, fuzzy +msgid "Authentication method:" +msgstr "Linphone - Autentisering krävs" + +#: ../gtk/parameters.ui.h:80 +msgid "label" +msgstr "etikett" + +#: ../gtk/parameters.ui.h:81 +#, fuzzy +msgid "LDAP Account setup" +msgstr "Proxy konton" + +#: ../gtk/parameters.ui.h:82 +msgid "LDAP" +msgstr "" + +#: ../gtk/parameters.ui.h:83 msgid "Done" msgstr "Klar" @@ -1359,7 +1454,7 @@ msgstr "Vänta" #: ../gtk/dscp_settings.ui.h:1 #, fuzzy -msgid "Dscp settings" +msgid "DSCP settings" msgstr "Inställningar" #: ../gtk/dscp_settings.ui.h:2 @@ -1418,6 +1513,15 @@ msgid "Round trip time" msgstr "" #: ../gtk/call_statistics.ui.h:9 +msgid "Video resolution received" +msgstr "" + +#: ../gtk/call_statistics.ui.h:10 +#, fuzzy +msgid "Video resolution sent" +msgstr "Video upplösning:" + +#: ../gtk/call_statistics.ui.h:11 #, fuzzy msgid "Call statistics and information" msgstr "Kontakt information" @@ -1503,19 +1607,140 @@ msgstr "" msgid "1" msgstr "" -#: ../coreapi/linphonecore.c:228 +#: ../gtk/ldap.ui.h:1 +#, fuzzy +msgid "LDAP Settings" +msgstr "Inställningar" + +#: ../gtk/ldap.ui.h:6 +msgid "Use TLS Connection" +msgstr "" + +#: ../gtk/ldap.ui.h:7 +msgid "Not yet available" +msgstr "" + +#: ../gtk/ldap.ui.h:8 +#, fuzzy +msgid "Connection" +msgstr "Codecs" + +#: ../gtk/ldap.ui.h:9 +msgid "Bind DN" +msgstr "" + +#: ../gtk/ldap.ui.h:10 +msgid "Authname" +msgstr "" + +#: ../gtk/ldap.ui.h:11 +msgid "Realm" +msgstr "" + +#: ../gtk/ldap.ui.h:12 +#, fuzzy +msgid "SASL" +msgstr "Audio" + +#: ../gtk/ldap.ui.h:13 +msgid "Base object:" +msgstr "" + +#: ../gtk/ldap.ui.h:15 +#, no-c-format +msgid "Filter (%s for name):" +msgstr "" + +#: ../gtk/ldap.ui.h:16 +msgid "Name Attribute:" +msgstr "" + +#: ../gtk/ldap.ui.h:17 +#, fuzzy +msgid "SIP address attribute:" +msgstr "SIP Adress" + +#: ../gtk/ldap.ui.h:18 +msgid "Attributes to query:" +msgstr "" + +#: ../gtk/ldap.ui.h:19 +#, fuzzy +msgid "Search" +msgstr "Sök efter kontakter" + +#: ../gtk/ldap.ui.h:20 +msgid "Timeout for search:" +msgstr "" + +#: ../gtk/ldap.ui.h:21 +msgid "Max results:" +msgstr "" + +#: ../gtk/ldap.ui.h:22 +msgid "Follow Aliases" +msgstr "" + +#: ../gtk/ldap.ui.h:23 +#, fuzzy +msgid "Miscellaneous" +msgstr "Video" + +#: ../gtk/ldap.ui.h:24 +msgid "ANONYMOUS" +msgstr "" + +#: ../gtk/ldap.ui.h:25 +msgid "SIMPLE" +msgstr "" + +#: ../gtk/ldap.ui.h:26 +msgid "DIGEST-MD5" +msgstr "" + +#: ../gtk/ldap.ui.h:27 +msgid "NTLM" +msgstr "" + +#: ../gtk/config-uri.ui.h:1 +msgid "Specifying a remote configuration URI" +msgstr "" + +#: ../gtk/config-uri.ui.h:2 +msgid "" +"This dialog allows to set an http or https address when configuration is to " +"be fetched at startup.\n" +"Please enter or modify the configuration URI below. After clicking OK, " +"Linphone will restart automatically in order to fetch and take into account " +"the new configuration. " +msgstr "" + +#: ../gtk/config-uri.ui.h:4 +msgid "https://" +msgstr "" + +#: ../gtk/provisioning-fetch.ui.h:1 +#, fuzzy +msgid "Configuring..." +msgstr "Kontaktar" + +#: ../gtk/provisioning-fetch.ui.h:2 +msgid "Please wait while fetching configuration from server..." +msgstr "" + +#: ../coreapi/linphonecore.c:238 msgid "aborted" msgstr "avbrytade" -#: ../coreapi/linphonecore.c:231 +#: ../coreapi/linphonecore.c:241 msgid "completed" msgstr "avslutade" -#: ../coreapi/linphonecore.c:234 +#: ../coreapi/linphonecore.c:244 msgid "missed" msgstr "missade" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:249 #, c-format msgid "" "%s at %s\n" @@ -1530,108 +1755,82 @@ msgstr "" "Status: %s\n" "Längd: %i min %i sek\n" -#: ../coreapi/linphonecore.c:240 +#: ../coreapi/linphonecore.c:250 msgid "Outgoing call" msgstr "Utgående samtal" -#: ../coreapi/linphonecore.c:1321 +#: ../coreapi/linphonecore.c:1264 msgid "Ready" msgstr "Redo" -#: ../coreapi/linphonecore.c:2205 +#: ../coreapi/linphonecore.c:1372 +#, fuzzy +msgid "Configuring" +msgstr "Bekräftelse" + +#: ../coreapi/linphonecore.c:2331 msgid "Looking for telephone number destination..." msgstr "Leta efter telefonnummer för destinationen..." -#: ../coreapi/linphonecore.c:2208 +#: ../coreapi/linphonecore.c:2334 msgid "Could not resolve this number." msgstr "Kan inte nå dett nummer." -#: ../coreapi/linphonecore.c:2252 -msgid "" -"Could not parse given sip address. A sip url usually looks like sip:" -"user@domain" -msgstr "" -"Kan inte förstå angiven SIP adress. En SIP adress vanligen ser ut som sip:" -"användare@domänen" - -#: ../coreapi/linphonecore.c:2453 +#. must be known at that time +#: ../coreapi/linphonecore.c:2609 msgid "Contacting" msgstr "Kontaktar" -#: ../coreapi/linphonecore.c:2460 +#: ../coreapi/linphonecore.c:2616 #, fuzzy msgid "Could not call" msgstr "Kunde inte ringa" -#: ../coreapi/linphonecore.c:2570 +#: ../coreapi/linphonecore.c:2765 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2752 +#: ../coreapi/linphonecore.c:2952 #, fuzzy msgid "is contacting you" msgstr "kontaktar dig." -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid " and asked autoanswer." msgstr "" -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid "." msgstr "" -#: ../coreapi/linphonecore.c:2820 +#: ../coreapi/linphonecore.c:3020 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:3159 +#: ../coreapi/linphonecore.c:3362 msgid "Connected." msgstr "Kopplad" -#: ../coreapi/linphonecore.c:3187 +#: ../coreapi/linphonecore.c:3388 #, fuzzy msgid "Call aborted" msgstr "avbrytade" -#: ../coreapi/linphonecore.c:3378 +#: ../coreapi/linphonecore.c:3581 #, fuzzy msgid "Could not pause the call" msgstr "Kunde inte ringa" -#: ../coreapi/linphonecore.c:3383 +#: ../coreapi/linphonecore.c:3586 #, fuzzy msgid "Pausing the current call..." msgstr "Nuvarande samtal" -#: ../coreapi/misc.c:148 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the pcm oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -"'modprobe snd-pcm-oss' as root to load it." -msgstr "" -"Din dator verkar använda ALSA drivrutiner för ljud.\n" -"Detta är det bästa valet. Dock PCM OSS emuleringsmodulen\n" -"saknas och linphone behöver ha det. Var god exekvera\n" -"'modprobe snd-pcm-oss' som root för att ladda in den." - -#: ../coreapi/misc.c:151 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the mixer oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -" 'modprobe snd-mixer-oss' as root to load it." -msgstr "" -"Din dator verkar använda ALSA drivrutiner för ljud.\n" -"Detta är det bästa valet. Dock OSS mixer emuleringsmodulen\n" -"saknas och linphone behöver ha det. Var god exekvera\n" -"'modprobe snd-mixer-oss' som root för att ladda in den." - -#: ../coreapi/misc.c:496 +#: ../coreapi/misc.c:394 msgid "Stun lookup in progress..." msgstr "STUN uppslagning pågår..." -#: ../coreapi/misc.c:630 +#: ../coreapi/misc.c:576 msgid "ICE local candidates gathering in progress..." msgstr "" @@ -1680,10 +1879,15 @@ msgid "Pending" msgstr "Pågående" #: ../coreapi/friend.c:66 +#, fuzzy +msgid "Vacation" +msgstr "Förlopp" + +#: ../coreapi/friend.c:68 msgid "Unknown-bug" msgstr "Okänd bug" -#: ../coreapi/proxy.c:204 +#: ../coreapi/proxy.c:209 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." @@ -1691,7 +1895,7 @@ msgstr "" "SIP proxy adressen som du matade in är inte rätt, adressen måste starta med " "\"sip:\", följd av ett hostnamn" -#: ../coreapi/proxy.c:210 +#: ../coreapi/proxy.c:215 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" @@ -1699,137 +1903,167 @@ msgstr "" "SIP adressen som du matade in är inte rätt. Adressen borde se ut som sip:" "namn@domän, såsom sip:peter@exempel.se" -#: ../coreapi/proxy.c:1069 +#: ../coreapi/proxy.c:1125 #, c-format msgid "Could not login as %s" msgstr "Kunde inte logga in som %s" -#: ../coreapi/callbacks.c:286 +#: ../coreapi/callbacks.c:289 msgid "Remote ringing." msgstr "Ringer hos motparten." -#: ../coreapi/callbacks.c:306 +#: ../coreapi/callbacks.c:305 #, fuzzy msgid "Remote ringing..." msgstr "Ringer hos motparten." -#: ../coreapi/callbacks.c:317 +#: ../coreapi/callbacks.c:316 msgid "Early media." msgstr "Tidig media" -#: ../coreapi/callbacks.c:368 +#: ../coreapi/callbacks.c:367 #, fuzzy, c-format msgid "Call with %s is paused." msgstr "Samtal med %s" -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:380 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:392 +#: ../coreapi/callbacks.c:391 #, fuzzy msgid "Call resumed." msgstr "Samtalet slut" -#: ../coreapi/callbacks.c:397 +#: ../coreapi/callbacks.c:396 #, c-format msgid "Call answered by %s." msgstr "" -#: ../coreapi/callbacks.c:412 +#: ../coreapi/callbacks.c:414 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:460 +#: ../coreapi/callbacks.c:463 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:469 +#: ../coreapi/callbacks.c:471 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:475 +#: ../coreapi/callbacks.c:487 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:558 msgid "Call terminated." msgstr "Samtalet slut." -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:586 msgid "User is busy." msgstr "Användare upptagen." -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:587 msgid "User is temporarily unavailable." msgstr "Användaren temporärt inte tillgänglig." #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:558 +#: ../coreapi/callbacks.c:589 msgid "User does not want to be disturbed." msgstr "Användaren vill inte bli störd." -#: ../coreapi/callbacks.c:559 +#: ../coreapi/callbacks.c:590 msgid "Call declined." msgstr "Samtalet avböjdes." -#: ../coreapi/callbacks.c:571 +#: ../coreapi/callbacks.c:603 #, fuzzy msgid "No response." msgstr "Inget svar inom angiven tid" -#: ../coreapi/callbacks.c:575 +#: ../coreapi/callbacks.c:607 msgid "Protocol error." msgstr "" -#: ../coreapi/callbacks.c:591 +#: ../coreapi/callbacks.c:623 #, fuzzy msgid "Redirected" msgstr "Omdirigerat till %s..." -#: ../coreapi/callbacks.c:627 +#: ../coreapi/callbacks.c:665 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:633 +#: ../coreapi/callbacks.c:677 #, fuzzy msgid "Call failed." msgstr "Samtalet avböjdes." -#: ../coreapi/callbacks.c:737 +#: ../coreapi/callbacks.c:751 #, c-format msgid "Registration on %s successful." msgstr "Registrering hos %s lyckades." -#: ../coreapi/callbacks.c:738 +#: ../coreapi/callbacks.c:752 #, c-format msgid "Unregistration on %s done." msgstr "Avregistrering hos %s lyckades." -#: ../coreapi/callbacks.c:758 +#: ../coreapi/callbacks.c:772 msgid "no response timeout" msgstr "Inget svar inom angiven tid" -#: ../coreapi/callbacks.c:761 +#: ../coreapi/callbacks.c:775 #, c-format msgid "Registration on %s failed: %s" msgstr "Registrering hos %s mislyckades: %s" -#: ../coreapi/linphonecall.c:129 +#: ../coreapi/callbacks.c:785 +msgid "Service unavailable, retrying" +msgstr "" + +#: ../coreapi/linphonecall.c:142 #, fuzzy, c-format msgid "Authentication token is %s" msgstr "Linphone - Autentisering krävs" -#: ../coreapi/linphonecall.c:2355 +#: ../coreapi/linphonecall.c:2678 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "Du har %i missat samtal" msgstr[1] "Du har %i missade samtal" -#~ msgid "label" -#~ msgstr "etikett" +#~ msgid "" +#~ "Could not parse given sip address. A sip url usually looks like sip:" +#~ "user@domain" +#~ msgstr "" +#~ "Kan inte förstå angiven SIP adress. En SIP adress vanligen ser ut som sip:" +#~ "användare@domänen" + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the pcm oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ "'modprobe snd-pcm-oss' as root to load it." +#~ msgstr "" +#~ "Din dator verkar använda ALSA drivrutiner för ljud.\n" +#~ "Detta är det bästa valet. Dock PCM OSS emuleringsmodulen\n" +#~ "saknas och linphone behöver ha det. Var god exekvera\n" +#~ "'modprobe snd-pcm-oss' som root för att ladda in den." + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the mixer oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ " 'modprobe snd-mixer-oss' as root to load it." +#~ msgstr "" +#~ "Din dator verkar använda ALSA drivrutiner för ljud.\n" +#~ "Detta är det bästa valet. Dock OSS mixer emuleringsmodulen\n" +#~ "saknas och linphone behöver ha det. Var god exekvera\n" +#~ "'modprobe snd-mixer-oss' som root för att ladda in den." #~ msgid "Chat with %s" #~ msgstr "Chatta med %s" @@ -1858,9 +2092,6 @@ msgstr[1] "Du har %i missade samtal" #~ msgid "Verifying" #~ msgstr "Verifierar" -#~ msgid "Confirmation" -#~ msgstr "Bekräftelse" - #~ msgid "Creating your account" #~ msgstr "Skapar ditt konto" @@ -1887,10 +2118,6 @@ msgstr[1] "Du har %i missade samtal" #~ "Registrera hos FONICS\n" #~ "virtuella nätverk!" -#, fuzzy -#~ msgid "Authentication failure" -#~ msgstr "Linphone - Autentisering krävs" - #~ msgid "Unmute" #~ msgstr "Mikrofon på" @@ -2115,9 +2342,6 @@ msgstr[1] "Du har %i missade samtal" #~ "Din dator verkar vara kopplad till ett IPv6 nätverk. Default, använder " #~ "linphone IPv4. Uppdatera din konfiguration om du vill använda IPv6." -#~ msgid "Incoming call from %s" -#~ msgstr "Inkommande samtal från %s" - #~ msgid "Assistant" #~ msgstr "Assistent" @@ -2214,9 +2438,6 @@ msgstr[1] "Du har %i missade samtal" #~ msgid "Unknown" #~ msgstr "Okänd" -#~ msgid "SIP address" -#~ msgstr "SIP Adress" - #~ msgid "Bresilian" #~ msgstr "Brasiliansk" diff --git a/po/zh_CN.po b/po/zh_CN.po index 0d21351a8..f55f87dfd 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 3.3.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-24 14:04+0200\n" +"POT-Creation-Date: 2014-02-14 14:57+0100\n" "PO-Revision-Date: 2011-01-08 23:51+0800\n" "Last-Translator: Aron Xu \n" "Language-Team: Chinese (simplified) \n" @@ -18,12 +18,12 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:969 #, c-format msgid "Call %s" msgstr "呼叫 %s" -#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:970 #, c-format msgid "Send text to %s" msgstr "发送消息给 %s" @@ -97,46 +97,51 @@ msgstr "静音" msgid "Couldn't find pixmap file: %s" msgstr "无法打开位图文件:%s" -#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:363 ../gtk/friendlist.c:919 msgid "Invalid sip contact !" msgstr "无效的 SIP 联系人!" -#: ../gtk/main.c:92 +#: ../gtk/main.c:102 msgid "log to stdout some debug information while running." msgstr "运行时向标准输出记录调试信息。" -#: ../gtk/main.c:99 +#: ../gtk/main.c:109 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:106 +#: ../gtk/main.c:116 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:113 +#: ../gtk/main.c:123 msgid "Start only in the system tray, do not show the main interface." msgstr "启动到系统托盘,不显示主界面。" -#: ../gtk/main.c:120 +#: ../gtk/main.c:130 msgid "address to call right now" msgstr "现在呼叫的地址" -#: ../gtk/main.c:127 +#: ../gtk/main.c:137 msgid "if set automatically answer incoming calls" msgstr "是否设置呼叫自动应答" -#: ../gtk/main.c:134 +#: ../gtk/main.c:144 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "指定工作目录(应为安装目录例如 C:\\Program Files\\Linphone)" -#: ../gtk/main.c:515 +#: ../gtk/main.c:151 +#, fuzzy +msgid "Configuration file" +msgstr "确认" + +#: ../gtk/main.c:573 #, c-format msgid "Call with %s" msgstr "与 %s 通话" -#: ../gtk/main.c:946 +#: ../gtk/main.c:1150 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -148,68 +153,68 @@ msgstr "" "您是否允许他看到您的在线状态或者将它加为您的联系人允许?\n" "如果您回答否,则会将该人临时性的放入黑名单" -#: ../gtk/main.c:1023 -#, c-format +#: ../gtk/main.c:1227 +#, fuzzy, c-format msgid "" "Please enter your password for username %s\n" -" at domain %s:" +" at realm %s:" msgstr "请输入 %s@%s 的密码:" -#: ../gtk/main.c:1126 +#: ../gtk/main.c:1339 #, fuzzy msgid "Call error" msgstr "呼叫历史" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 +#: ../gtk/main.c:1342 ../coreapi/linphonecore.c:3408 msgid "Call ended" msgstr "呼叫结束" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 +#: ../gtk/main.c:1345 ../coreapi/linphonecore.c:250 msgid "Incoming call" msgstr "呼入" -#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 +#: ../gtk/main.c:1347 ../gtk/incall_view.c:508 ../gtk/main.ui.h:5 msgid "Answer" msgstr "" -#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1349 ../gtk/main.ui.h:6 msgid "Decline" msgstr "拒绝" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy msgid "Call paused" msgstr "中断" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy, c-format msgid "by %s" msgstr "端口" -#: ../gtk/main.c:1191 +#: ../gtk/main.c:1422 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1353 +#: ../gtk/main.c:1584 msgid "Website link" msgstr "网站" -#: ../gtk/main.c:1402 +#: ../gtk/main.c:1633 msgid "Linphone - a video internet phone" msgstr "Linphone - 互联网视频电话" -#: ../gtk/main.c:1494 +#: ../gtk/main.c:1725 #, c-format msgid "%s (Default)" msgstr "%s (默认)" -#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 +#: ../gtk/main.c:2061 ../coreapi/callbacks.c:827 #, c-format msgid "We are transferred to %s" msgstr "" -#: ../gtk/main.c:1806 +#: ../gtk/main.c:2071 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -217,170 +222,171 @@ msgstr "" "未在此计算机上检测到声卡。\n" "您无法发送或接收音频呼叫。" -#: ../gtk/main.c:1911 +#: ../gtk/main.c:2207 msgid "A free SIP video-phone" msgstr "免费的 SIP 视频电话" -#: ../gtk/friendlist.c:469 +#: ../gtk/friendlist.c:505 msgid "Add to addressbook" msgstr "" -#: ../gtk/friendlist.c:643 +#: ../gtk/friendlist.c:691 msgid "Presence status" msgstr "在线状态" -#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:709 ../gtk/propertybox.c:556 ../gtk/contact.ui.h:1 msgid "Name" msgstr "名称" -#: ../gtk/friendlist.c:673 +#: ../gtk/friendlist.c:721 #, fuzzy msgid "Call" msgstr "呼叫 %s" -#: ../gtk/friendlist.c:678 +#: ../gtk/friendlist.c:726 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:708 +#: ../gtk/friendlist.c:756 #, c-format msgid "Search in %s directory" msgstr "在 %s 目录中查找 " -#: ../gtk/friendlist.c:924 +#: ../gtk/friendlist.c:971 #, c-format msgid "Edit contact '%s'" msgstr "编辑联系人 %s" -#: ../gtk/friendlist.c:925 +#: ../gtk/friendlist.c:972 #, c-format msgid "Delete contact '%s'" msgstr "删除联系人 %s" -#: ../gtk/friendlist.c:926 +#: ../gtk/friendlist.c:973 #, fuzzy, c-format msgid "Delete chat history of '%s'" msgstr "删除联系人 %s" -#: ../gtk/friendlist.c:977 +#: ../gtk/friendlist.c:1024 #, c-format msgid "Add new contact from %s directory" msgstr "从 %s 目录增加联系人 " -#: ../gtk/propertybox.c:373 +#: ../gtk/propertybox.c:562 msgid "Rate (Hz)" msgstr "采样率(Hz)" -#: ../gtk/propertybox.c:379 +#: ../gtk/propertybox.c:568 msgid "Status" msgstr "状态" -#: ../gtk/propertybox.c:385 -msgid "Min bitrate (kbit/s)" +#: ../gtk/propertybox.c:574 +#, fuzzy +msgid "Bitrate (kbit/s)" msgstr "最小比特率(kbit/s)" -#: ../gtk/propertybox.c:392 +#: ../gtk/propertybox.c:581 msgid "Parameters" msgstr "参数" -#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:624 ../gtk/propertybox.c:767 msgid "Enabled" msgstr "启用" -#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:626 ../gtk/propertybox.c:767 msgid "Disabled" msgstr "禁用" -#: ../gtk/propertybox.c:624 +#: ../gtk/propertybox.c:813 msgid "Account" msgstr "帐户" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:1057 msgid "English" msgstr "英语" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:1058 msgid "French" msgstr "法语" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:1059 msgid "Swedish" msgstr "瑞典语" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:1060 msgid "Italian" msgstr "意大利语" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:1061 msgid "Spanish" msgstr "西班牙语" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:1062 msgid "Brazilian Portugese" msgstr "巴西葡萄牙语" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:1063 msgid "Polish" msgstr "波兰语" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:1064 msgid "German" msgstr "德语" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:1065 msgid "Russian" msgstr "俄语" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:1066 msgid "Japanese" msgstr "日语" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:1067 msgid "Dutch" msgstr "荷兰语" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:1068 msgid "Hungarian" msgstr "匈牙利语" -#: ../gtk/propertybox.c:776 +#: ../gtk/propertybox.c:1069 msgid "Czech" msgstr "捷克语" -#: ../gtk/propertybox.c:777 +#: ../gtk/propertybox.c:1070 msgid "Chinese" msgstr "中文" -#: ../gtk/propertybox.c:778 +#: ../gtk/propertybox.c:1071 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:779 +#: ../gtk/propertybox.c:1072 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:780 +#: ../gtk/propertybox.c:1073 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:781 +#: ../gtk/propertybox.c:1074 msgid "Serbian" msgstr "" -#: ../gtk/propertybox.c:848 +#: ../gtk/propertybox.c:1141 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "您需要重启 linphone 以使语言选择生效。" -#: ../gtk/propertybox.c:934 +#: ../gtk/propertybox.c:1219 msgid "None" msgstr "" -#: ../gtk/propertybox.c:938 +#: ../gtk/propertybox.c:1223 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:944 +#: ../gtk/propertybox.c:1229 msgid "ZRTP" msgstr "" @@ -446,109 +452,118 @@ msgstr "我已经有一个帐户,并想使用原来的帐户" msgid "I have already a sip account and I just want to use it" msgstr "我已经有一个帐户,并想使用原来的帐户" -#: ../gtk/setupwizard.c:85 +#: ../gtk/setupwizard.c:46 +msgid "I want to specify a remote configuration URI" +msgstr "" + +#: ../gtk/setupwizard.c:89 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:92 +#: ../gtk/setupwizard.c:96 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4 msgid "Username:" msgstr "用户名:" -#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:98 ../gtk/password.ui.h:4 ../gtk/ldap.ui.h:5 msgid "Password:" msgstr "密码:" -#: ../gtk/setupwizard.c:114 +#: ../gtk/setupwizard.c:118 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:125 #, fuzzy msgid "Username*" msgstr "用户名" -#: ../gtk/setupwizard.c:122 +#: ../gtk/setupwizard.c:126 #, fuzzy msgid "Password*" msgstr "密码" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:129 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:126 +#: ../gtk/setupwizard.c:130 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:302 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:299 +#: ../gtk/setupwizard.c:303 #, fuzzy msgid "Username: (*)" msgstr "用户名:" -#: ../gtk/setupwizard.c:301 +#: ../gtk/setupwizard.c:305 #, fuzzy msgid "Password: (*)" msgstr "密码:" -#: ../gtk/setupwizard.c:303 +#: ../gtk/setupwizard.c:307 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:305 +#: ../gtk/setupwizard.c:309 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:369 +#: ../gtk/setupwizard.c:373 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:380 +#: ../gtk/setupwizard.c:384 msgid "Thank you. Your account is now configured and ready for use." msgstr "谢谢,您的帐户已经配置完毕,可以使用。" -#: ../gtk/setupwizard.c:388 +#: ../gtk/setupwizard.c:392 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:564 +#: ../gtk/setupwizard.c:572 +#, fuzzy +msgid "SIP account configuration assistant" +msgstr "帐户设置向导" + +#: ../gtk/setupwizard.c:590 msgid "Welcome to the account setup assistant" msgstr "欢迎使用帐户设置向导" -#: ../gtk/setupwizard.c:569 +#: ../gtk/setupwizard.c:595 msgid "Account setup assistant" msgstr "帐户设置向导" -#: ../gtk/setupwizard.c:575 +#: ../gtk/setupwizard.c:601 #, fuzzy msgid "Configure your account (step 1/1)" msgstr "配置 SIP 帐户" -#: ../gtk/setupwizard.c:580 +#: ../gtk/setupwizard.c:606 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:584 +#: ../gtk/setupwizard.c:610 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:593 +#: ../gtk/setupwizard.c:619 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:598 +#: ../gtk/setupwizard.c:624 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:602 +#: ../gtk/setupwizard.c:628 #, fuzzy msgid "Terminating" msgstr "终止呼叫" @@ -620,136 +635,151 @@ msgstr "ICE 过滤器" msgid "Direct or through server" msgstr "" -#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:261 ../gtk/incall_view.c:272 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:286 +#: ../gtk/incall_view.c:267 ../gtk/incall_view.c:268 +#, c-format +msgid "%ix%i" +msgstr "" + +#: ../gtk/incall_view.c:297 #, c-format msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:395 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:476 +#: ../gtk/incall_view.c:487 msgid "Calling..." msgstr "正在呼叫..." -#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:700 msgid "00::00::00" msgstr "00::00::00" -#: ../gtk/incall_view.c:490 +#: ../gtk/incall_view.c:501 #, fuzzy msgid "Incoming call" msgstr "呼入" -#: ../gtk/incall_view.c:527 +#: ../gtk/incall_view.c:538 msgid "good" msgstr "" -#: ../gtk/incall_view.c:529 +#: ../gtk/incall_view.c:540 msgid "average" msgstr "" -#: ../gtk/incall_view.c:531 +#: ../gtk/incall_view.c:542 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:533 +#: ../gtk/incall_view.c:544 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:535 +#: ../gtk/incall_view.c:546 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:547 ../gtk/incall_view.c:563 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:651 +#: ../gtk/incall_view.c:662 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:657 +#: ../gtk/incall_view.c:668 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:663 +#: ../gtk/incall_view.c:674 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:674 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 #, fuzzy msgid "In call" msgstr "正在呼叫" -#: ../gtk/incall_view.c:718 +#: ../gtk/incall_view.c:731 #, fuzzy msgid "Paused call" msgstr "正在呼叫" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:744 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i::%02i::%02i" -#: ../gtk/incall_view.c:748 +#: ../gtk/incall_view.c:762 msgid "Call ended." msgstr "通话结束。" -#: ../gtk/incall_view.c:778 +#: ../gtk/incall_view.c:793 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:796 msgid "Transfer done." msgstr "" -#: ../gtk/incall_view.c:784 +#: ../gtk/incall_view.c:799 #, fuzzy msgid "Transfer failed." msgstr "呼叫失败。" -#: ../gtk/incall_view.c:828 +#: ../gtk/incall_view.c:843 msgid "Resume" msgstr "" -#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:850 ../gtk/main.ui.h:9 msgid "Pause" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 msgid "(Paused)" msgstr "" -#: ../gtk/loginframe.c:93 +#: ../gtk/loginframe.c:88 #, c-format msgid "Please enter login information for %s" msgstr "请输入 %s 的登录信息" +#: ../gtk/config-fetching.c:57 +#, fuzzy, c-format +msgid "fetching from %s" +msgstr "来自 %s 的呼叫" + +#: ../gtk/config-fetching.c:73 +#, c-format +msgid "Downloading of remote configuration from %s failed." +msgstr "" + #: ../gtk/main.ui.h:1 #, fuzzy msgid "Callee name" @@ -796,95 +826,96 @@ msgid "_Options" msgstr "" #: ../gtk/main.ui.h:18 +#, fuzzy +msgid "Set configuration URI" +msgstr "确认" + +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "启用自视" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 #, fuzzy msgid "Show debug window" msgstr "Linphone 调试窗口" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 #, fuzzy msgid "_Homepage" msgstr "主页" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 #, fuzzy msgid "Check _Updates" msgstr "检查更新" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 #, fuzzy msgid "Account assistant" msgstr "帐户设置向导" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "SIP 地址或电话号码:" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:28 msgid "Contacts" msgstr "联系人" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 -msgid "Add" -msgstr "添加" - -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 -msgid "Edit" -msgstr "编辑" - -#: ../gtk/main.ui.h:30 +#: ../gtk/main.ui.h:29 msgid "Search" msgstr "搜索" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Add contacts from directory" msgstr "从目录增加联系人" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 #, fuzzy msgid "Add contact" msgstr "找到 %i 联系方式" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Recent calls" msgstr "呼入" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "My current identity:" msgstr "当前地址:" -#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:34 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "用户名" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "密码" -#: ../gtk/main.ui.h:37 +#: ../gtk/main.ui.h:36 msgid "Internet connection:" msgstr "网络连接:" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Automatically log me in" msgstr "自动登录" +#: ../gtk/main.ui.h:38 ../gtk/password.ui.h:3 +msgid "UserID" +msgstr "用户 ID" + #: ../gtk/main.ui.h:39 msgid "Login information" msgstr "登录信息" @@ -936,6 +967,7 @@ msgid "An internet video phone using the standard SIP (rfc3261) protocol." msgstr "一个采用标准 SIP (rfc3261) 协议的互联网视频电话" #: ../gtk/about.ui.h:5 +#, fuzzy msgid "" "fr: Simon Morlat\n" "en: Simon Morlat and Delphine Perreau\n" @@ -948,6 +980,7 @@ msgid "" "pl: Robert Nasiadek \n" "cs: Petr Pisar \n" "hu: anonymous\n" +"he: Eli Zaretskii \n" msgstr "" "fr: Simon Morlat\n" "en: Simon Morlat and Delphine Perreau\n" @@ -995,10 +1028,6 @@ msgstr "Linphone - 需要认证" msgid "Please enter the domain password" msgstr "请输入密码" -#: ../gtk/password.ui.h:3 -msgid "UserID" -msgstr "用户 ID" - #: ../gtk/call_logs.ui.h:1 msgid "Call history" msgstr "呼叫历史" @@ -1037,312 +1066,379 @@ msgid "Looks like sip:" msgstr "类似于 sip:<代理主机名>" #: ../gtk/sip_account.ui.h:7 -msgid "Route (optional):" -msgstr "路由(可选):" - -#: ../gtk/sip_account.ui.h:8 msgid "Registration duration (sec):" msgstr "注册间隔(秒):" +#: ../gtk/sip_account.ui.h:8 +#, fuzzy +msgid "Contact params (optional):" +msgstr "路由(可选):" + #: ../gtk/sip_account.ui.h:9 +msgid "Route (optional):" +msgstr "路由(可选):" + +#: ../gtk/sip_account.ui.h:10 +#, fuzzy +msgid "Transport" +msgstr "传输协议" + +#: ../gtk/sip_account.ui.h:11 msgid "Register" msgstr "" -#: ../gtk/sip_account.ui.h:10 +#: ../gtk/sip_account.ui.h:12 msgid "Publish presence information" msgstr "发布在线状态" -#: ../gtk/sip_account.ui.h:11 +#: ../gtk/sip_account.ui.h:13 msgid "Configure a SIP account" msgstr "配置 SIP 帐户" #: ../gtk/parameters.ui.h:1 +msgid "anonymous" +msgstr "" + +#: ../gtk/parameters.ui.h:2 +msgid "GSSAPI" +msgstr "" + +#: ../gtk/parameters.ui.h:3 +msgid "SASL" +msgstr "" + +#: ../gtk/parameters.ui.h:4 msgid "default soundcard" msgstr "默认声卡" -#: ../gtk/parameters.ui.h:2 +#: ../gtk/parameters.ui.h:5 #, fuzzy msgid "a sound card" msgstr "声卡\n" -#: ../gtk/parameters.ui.h:3 +#: ../gtk/parameters.ui.h:6 msgid "default camera" msgstr "默认摄像头" -#: ../gtk/parameters.ui.h:4 +#: ../gtk/parameters.ui.h:7 msgid "CIF" msgstr "CIF" -#: ../gtk/parameters.ui.h:5 +#: ../gtk/parameters.ui.h:8 #, fuzzy msgid "Audio codecs" msgstr "" "音频编解码器\n" "视频编解码器" -#: ../gtk/parameters.ui.h:6 +#: ../gtk/parameters.ui.h:9 #, fuzzy msgid "Video codecs" msgstr "" "音频编解码器\n" "视频编解码器" -#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:10 ../gtk/keypad.ui.h:5 msgid "C" msgstr "C" -#: ../gtk/parameters.ui.h:8 +#: ../gtk/parameters.ui.h:11 #, fuzzy msgid "SIP (UDP)" msgstr "SIP (UDP):" -#: ../gtk/parameters.ui.h:9 +#: ../gtk/parameters.ui.h:12 #, fuzzy msgid "SIP (TCP)" msgstr "SIP (UDP):" -#: ../gtk/parameters.ui.h:10 +#: ../gtk/parameters.ui.h:13 #, fuzzy msgid "SIP (TLS)" msgstr "SIP (UDP):" -#: ../gtk/parameters.ui.h:11 +#: ../gtk/parameters.ui.h:14 msgid "Settings" msgstr "设置" -#: ../gtk/parameters.ui.h:12 +#: ../gtk/parameters.ui.h:15 msgid "Set Maximum Transmission Unit:" msgstr "设置最大传输单元(MTU):" -#: ../gtk/parameters.ui.h:13 +#: ../gtk/parameters.ui.h:16 msgid "Send DTMFs as SIP info" msgstr "以 SIP 消息发送 DTMF" -#: ../gtk/parameters.ui.h:14 +#: ../gtk/parameters.ui.h:17 msgid "Use IPv6 instead of IPv4" msgstr "使用 IPv6 而非 IPv4" -#: ../gtk/parameters.ui.h:15 +#: ../gtk/parameters.ui.h:18 msgid "Transport" msgstr "传输协议" -#: ../gtk/parameters.ui.h:16 +#: ../gtk/parameters.ui.h:19 msgid "Media encryption type" msgstr "" -#: ../gtk/parameters.ui.h:17 +#: ../gtk/parameters.ui.h:20 msgid "Video RTP/UDP:" msgstr "视频 RTP/UDP:" -#: ../gtk/parameters.ui.h:18 +#: ../gtk/parameters.ui.h:21 msgid "Audio RTP/UDP:" msgstr "音频 RTP/UDP:" -#: ../gtk/parameters.ui.h:19 -msgid "DSCP fields" -msgstr "" - -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:22 msgid "Fixed" msgstr "" -#: ../gtk/parameters.ui.h:21 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:22 +#: ../gtk/parameters.ui.h:23 msgid "Media encryption is mandatory" msgstr "" -#: ../gtk/parameters.ui.h:23 +#: ../gtk/parameters.ui.h:24 +msgid "Tunnel" +msgstr "" + +#: ../gtk/parameters.ui.h:25 +msgid "DSCP fields" +msgstr "" + +#: ../gtk/parameters.ui.h:26 +msgid "SIP/TCP port" +msgstr "" + +#: ../gtk/parameters.ui.h:27 +msgid "SIP/UDP port" +msgstr "" + +#: ../gtk/parameters.ui.h:28 msgid "Network protocol and ports" msgstr "" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:29 msgid "Direct connection to the Internet" msgstr "直接连接到互联网" -#: ../gtk/parameters.ui.h:25 -msgid "Behind NAT / Firewall (specify gateway IP below)" +#: ../gtk/parameters.ui.h:30 +#, fuzzy +msgid "Behind NAT / Firewall (specify gateway IP )" msgstr "在 NAT 或防火墙后(填写网关 IP)" -#: ../gtk/parameters.ui.h:26 -msgid "Public IP address:" -msgstr "公网 IP 地址:" - -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:31 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "在 NAT 或防火墙后(使用 STUN 解决)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:32 #, fuzzy msgid "Behind NAT / Firewall (use ICE)" msgstr "在 NAT 或防火墙后(使用 STUN 解决)" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:33 #, fuzzy msgid "Behind NAT / Firewall (use uPnP)" msgstr "在 NAT 或防火墙后(使用 STUN 解决)" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:34 +msgid "Public IP address:" +msgstr "公网 IP 地址:" + +#: ../gtk/parameters.ui.h:35 msgid "Stun server:" msgstr "Stun 服务器:" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:36 msgid "NAT and Firewall" msgstr "NAT 及防火墙" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:37 msgid "Network settings" msgstr "网络设置" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:38 msgid "Ring sound:" msgstr "铃声文件:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:39 msgid "ALSA special device (optional):" msgstr "ALSA 特殊设备(可选):" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:40 msgid "Capture device:" msgstr "录音设备:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:41 msgid "Ring device:" msgstr "响铃设备:" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:42 msgid "Playback device:" msgstr "回放设备:" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:43 msgid "Enable echo cancellation" msgstr "启用回声抑制" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:44 msgid "Audio" msgstr "音频" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:45 msgid "Video input device:" msgstr "视频输入设备:" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:46 msgid "Prefered video resolution:" msgstr "视频分辨率:" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:47 +#, fuzzy +msgid "Video output method:" +msgstr "视频输入设备:" + +#: ../gtk/parameters.ui.h:48 msgid "Video" msgstr "视频" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:49 msgid "Multimedia settings" msgstr "音视频设置" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:50 msgid "This section defines your SIP address when not using a SIP account" msgstr "该段在您不使用SIP帐户时的SIP地址" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:51 msgid "Your display name (eg: John Doe):" msgstr "您的显示名:" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:52 msgid "Your username:" msgstr "您的用户名:" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:53 msgid "Your resulting SIP address:" msgstr "您的 SIP 地址结果:" -#: ../gtk/parameters.ui.h:48 +#: ../gtk/parameters.ui.h:54 msgid "Default identity" msgstr "默认帐户" -#: ../gtk/parameters.ui.h:49 +#: ../gtk/parameters.ui.h:55 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:56 +msgid "Add" +msgstr "添加" + +#: ../gtk/parameters.ui.h:57 +msgid "Edit" +msgstr "编辑" + +#: ../gtk/parameters.ui.h:58 msgid "Remove" msgstr "移除" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:59 msgid "Proxy accounts" msgstr "代理帐户" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:60 msgid "Erase all passwords" msgstr "清除所有密码" -#: ../gtk/parameters.ui.h:55 +#: ../gtk/parameters.ui.h:61 msgid "Privacy" msgstr "隐私" -#: ../gtk/parameters.ui.h:56 +#: ../gtk/parameters.ui.h:62 msgid "Manage SIP Accounts" msgstr "SIP 帐户管理" -#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "启用" -#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "禁用" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:65 msgid "Codecs" msgstr "编解码器" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:66 msgid "0 stands for \"unlimited\"" msgstr "0 表示 “没有限制”" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:67 msgid "Upload speed limit in Kbit/sec:" msgstr "上传速率限制 kbit/s:" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:68 msgid "Download speed limit in Kbit/sec:" msgstr "下载速率限制 kbit/s:" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:69 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:70 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:71 msgid "Bandwidth control" msgstr "带宽控制" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:72 msgid "Codecs" msgstr "编解码器" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:73 msgid "Language" msgstr "语言" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:74 msgid "Show advanced settings" msgstr "显示高级设置" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:75 msgid "Level" msgstr "级别" -#: ../gtk/parameters.ui.h:70 +#: ../gtk/parameters.ui.h:76 msgid "User interface" msgstr "用户界面" -#: ../gtk/parameters.ui.h:71 +#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2 +#, fuzzy +msgid "Server address:" +msgstr "SIP 代理地址:" + +#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3 +#, fuzzy +msgid "Authentication method:" +msgstr "Linphone - 需要认证" + +#: ../gtk/parameters.ui.h:80 +msgid "label" +msgstr "标签" + +#: ../gtk/parameters.ui.h:81 +#, fuzzy +msgid "LDAP Account setup" +msgstr "代理帐户" + +#: ../gtk/parameters.ui.h:82 +msgid "LDAP" +msgstr "" + +#: ../gtk/parameters.ui.h:83 msgid "Done" msgstr "完成" @@ -1368,7 +1464,7 @@ msgstr "请稍候" #: ../gtk/dscp_settings.ui.h:1 #, fuzzy -msgid "Dscp settings" +msgid "DSCP settings" msgstr "设置" #: ../gtk/dscp_settings.ui.h:2 @@ -1429,6 +1525,15 @@ msgid "Round trip time" msgstr "" #: ../gtk/call_statistics.ui.h:9 +msgid "Video resolution received" +msgstr "" + +#: ../gtk/call_statistics.ui.h:10 +#, fuzzy +msgid "Video resolution sent" +msgstr "视频分辨率:" + +#: ../gtk/call_statistics.ui.h:11 #, fuzzy msgid "Call statistics and information" msgstr "联系人信息" @@ -1514,19 +1619,140 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:228 +#: ../gtk/ldap.ui.h:1 +#, fuzzy +msgid "LDAP Settings" +msgstr "设置" + +#: ../gtk/ldap.ui.h:6 +msgid "Use TLS Connection" +msgstr "" + +#: ../gtk/ldap.ui.h:7 +msgid "Not yet available" +msgstr "" + +#: ../gtk/ldap.ui.h:8 +#, fuzzy +msgid "Connection" +msgstr "编解码器" + +#: ../gtk/ldap.ui.h:9 +msgid "Bind DN" +msgstr "" + +#: ../gtk/ldap.ui.h:10 +msgid "Authname" +msgstr "" + +#: ../gtk/ldap.ui.h:11 +msgid "Realm" +msgstr "" + +#: ../gtk/ldap.ui.h:12 +#, fuzzy +msgid "SASL" +msgstr "音频" + +#: ../gtk/ldap.ui.h:13 +msgid "Base object:" +msgstr "" + +#: ../gtk/ldap.ui.h:15 +#, no-c-format +msgid "Filter (%s for name):" +msgstr "" + +#: ../gtk/ldap.ui.h:16 +msgid "Name Attribute:" +msgstr "" + +#: ../gtk/ldap.ui.h:17 +#, fuzzy +msgid "SIP address attribute:" +msgstr "SIP 地址或电话号码:" + +#: ../gtk/ldap.ui.h:18 +msgid "Attributes to query:" +msgstr "" + +#: ../gtk/ldap.ui.h:19 +#, fuzzy +msgid "Search" +msgstr "找人" + +#: ../gtk/ldap.ui.h:20 +msgid "Timeout for search:" +msgstr "" + +#: ../gtk/ldap.ui.h:21 +msgid "Max results:" +msgstr "" + +#: ../gtk/ldap.ui.h:22 +msgid "Follow Aliases" +msgstr "" + +#: ../gtk/ldap.ui.h:23 +#, fuzzy +msgid "Miscellaneous" +msgstr "视频" + +#: ../gtk/ldap.ui.h:24 +msgid "ANONYMOUS" +msgstr "" + +#: ../gtk/ldap.ui.h:25 +msgid "SIMPLE" +msgstr "" + +#: ../gtk/ldap.ui.h:26 +msgid "DIGEST-MD5" +msgstr "" + +#: ../gtk/ldap.ui.h:27 +msgid "NTLM" +msgstr "" + +#: ../gtk/config-uri.ui.h:1 +msgid "Specifying a remote configuration URI" +msgstr "" + +#: ../gtk/config-uri.ui.h:2 +msgid "" +"This dialog allows to set an http or https address when configuration is to " +"be fetched at startup.\n" +"Please enter or modify the configuration URI below. After clicking OK, " +"Linphone will restart automatically in order to fetch and take into account " +"the new configuration. " +msgstr "" + +#: ../gtk/config-uri.ui.h:4 +msgid "https://" +msgstr "" + +#: ../gtk/provisioning-fetch.ui.h:1 +#, fuzzy +msgid "Configuring..." +msgstr "正在连接..." + +#: ../gtk/provisioning-fetch.ui.h:2 +msgid "Please wait while fetching configuration from server..." +msgstr "" + +#: ../coreapi/linphonecore.c:238 msgid "aborted" msgstr "中断" -#: ../coreapi/linphonecore.c:231 +#: ../coreapi/linphonecore.c:241 msgid "completed" msgstr "完成" -#: ../coreapi/linphonecore.c:234 +#: ../coreapi/linphonecore.c:244 msgid "missed" msgstr "丢失" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:249 #, c-format msgid "" "%s at %s\n" @@ -1541,104 +1767,80 @@ msgstr "" "状态:%s\n" "状态:%i 分 %i 秒\n" -#: ../coreapi/linphonecore.c:240 +#: ../coreapi/linphonecore.c:250 msgid "Outgoing call" msgstr "呼出" -#: ../coreapi/linphonecore.c:1321 +#: ../coreapi/linphonecore.c:1264 msgid "Ready" msgstr "就绪" -#: ../coreapi/linphonecore.c:2205 +#: ../coreapi/linphonecore.c:1372 +#, fuzzy +msgid "Configuring" +msgstr "确认" + +#: ../coreapi/linphonecore.c:2331 msgid "Looking for telephone number destination..." msgstr "查询电话号码目的地..." -#: ../coreapi/linphonecore.c:2208 +#: ../coreapi/linphonecore.c:2334 msgid "Could not resolve this number." msgstr "该号码无法解析。" -#: ../coreapi/linphonecore.c:2252 -msgid "" -"Could not parse given sip address. A sip url usually looks like sip:" -"user@domain" -msgstr "" -"无法解析给定的 SIP 地址,SIP 地址应有如下格式:\n" -"sip:用户名@域名" - -#: ../coreapi/linphonecore.c:2453 +#. must be known at that time +#: ../coreapi/linphonecore.c:2609 msgid "Contacting" msgstr "联系中" -#: ../coreapi/linphonecore.c:2460 +#: ../coreapi/linphonecore.c:2616 #, fuzzy msgid "Could not call" msgstr "无法呼叫" -#: ../coreapi/linphonecore.c:2570 +#: ../coreapi/linphonecore.c:2765 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "" -#: ../coreapi/linphonecore.c:2752 +#: ../coreapi/linphonecore.c:2952 msgid "is contacting you" msgstr "正在联系您" -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid " and asked autoanswer." msgstr " 并询问了自动回答。" -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2820 +#: ../coreapi/linphonecore.c:3020 msgid "Modifying call parameters..." msgstr "" -#: ../coreapi/linphonecore.c:3159 +#: ../coreapi/linphonecore.c:3362 msgid "Connected." msgstr "已连接。" -#: ../coreapi/linphonecore.c:3187 +#: ../coreapi/linphonecore.c:3388 #, fuzzy msgid "Call aborted" msgstr "中断" -#: ../coreapi/linphonecore.c:3378 +#: ../coreapi/linphonecore.c:3581 #, fuzzy msgid "Could not pause the call" msgstr "无法呼叫" -#: ../coreapi/linphonecore.c:3383 +#: ../coreapi/linphonecore.c:3586 msgid "Pausing the current call..." msgstr "" -#: ../coreapi/misc.c:148 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the pcm oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -"'modprobe snd-pcm-oss' as root to load it." -msgstr "" -"您的计算机正使用 ALSA 声音驱动。\n" -"ALSA 是最佳选择,然而 Linphone 必须的 PCM OSS 模拟模块缺失。\n" -"请以 root 用户运行 modprobe snd-pcm-oss 载入它。" - -#: ../coreapi/misc.c:151 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the mixer oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -" 'modprobe snd-mixer-oss' as root to load it." -msgstr "" -"您的计算机正使用 ALSA 声音驱动。\n" -"ALSA 是最佳选择,然而 Linphone 必须的 Mixer OSS 模拟模块缺失。\n" -"请以 root 用户运行 modprobe snd-mixer-oss 载入它。" - -#: ../coreapi/misc.c:496 +#: ../coreapi/misc.c:394 msgid "Stun lookup in progress..." msgstr "正在进行 Stun 查找..." -#: ../coreapi/misc.c:630 +#: ../coreapi/misc.c:576 msgid "ICE local candidates gathering in progress..." msgstr "" @@ -1687,16 +1889,21 @@ msgid "Pending" msgstr "挂起" #: ../coreapi/friend.c:66 +#, fuzzy +msgid "Vacation" +msgstr "通话时间" + +#: ../coreapi/friend.c:68 msgid "Unknown-bug" msgstr "未知错误" -#: ../coreapi/proxy.c:204 +#: ../coreapi/proxy.c:209 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "您输入的 SIP 代理地址无效,它必须是以“sip:”开头,并紧随一个主机名。" -#: ../coreapi/proxy.c:210 +#: ../coreapi/proxy.c:215 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" @@ -1704,133 +1911,161 @@ msgstr "" "您输入的地址无效。\n" "它应具有“sip:用户名@代理域”的形式,例如 sip:alice@example.net" -#: ../coreapi/proxy.c:1069 +#: ../coreapi/proxy.c:1125 #, c-format msgid "Could not login as %s" msgstr "无法登录为 %s" -#: ../coreapi/callbacks.c:286 +#: ../coreapi/callbacks.c:289 msgid "Remote ringing." msgstr "响铃。" -#: ../coreapi/callbacks.c:306 +#: ../coreapi/callbacks.c:305 #, fuzzy msgid "Remote ringing..." msgstr "响铃。" -#: ../coreapi/callbacks.c:317 +#: ../coreapi/callbacks.c:316 msgid "Early media." msgstr "" -#: ../coreapi/callbacks.c:368 +#: ../coreapi/callbacks.c:367 #, fuzzy, c-format msgid "Call with %s is paused." msgstr "与 %s 通话" -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:380 #, c-format msgid "Call answered by %s - on hold." msgstr "" -#: ../coreapi/callbacks.c:392 +#: ../coreapi/callbacks.c:391 #, fuzzy msgid "Call resumed." msgstr "呼叫结束" -#: ../coreapi/callbacks.c:397 +#: ../coreapi/callbacks.c:396 #, c-format msgid "Call answered by %s." msgstr "" -#: ../coreapi/callbacks.c:412 +#: ../coreapi/callbacks.c:414 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:460 +#: ../coreapi/callbacks.c:463 msgid "We have been resumed." msgstr "" -#: ../coreapi/callbacks.c:469 +#: ../coreapi/callbacks.c:471 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:475 +#: ../coreapi/callbacks.c:487 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:558 msgid "Call terminated." msgstr "通话结束。" -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:586 msgid "User is busy." msgstr "被叫正忙。" -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:587 msgid "User is temporarily unavailable." msgstr "您呼叫的用户暂时无法接通。" #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:558 +#: ../coreapi/callbacks.c:589 msgid "User does not want to be disturbed." msgstr "用户已开启免打扰功能。" -#: ../coreapi/callbacks.c:559 +#: ../coreapi/callbacks.c:590 msgid "Call declined." msgstr "呼叫被拒绝。" -#: ../coreapi/callbacks.c:571 +#: ../coreapi/callbacks.c:603 msgid "No response." msgstr "没有响应。" -#: ../coreapi/callbacks.c:575 +#: ../coreapi/callbacks.c:607 msgid "Protocol error." msgstr "协议错误。" -#: ../coreapi/callbacks.c:591 +#: ../coreapi/callbacks.c:623 msgid "Redirected" msgstr "已重定向" -#: ../coreapi/callbacks.c:627 +#: ../coreapi/callbacks.c:665 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:633 +#: ../coreapi/callbacks.c:677 msgid "Call failed." msgstr "呼叫失败。" -#: ../coreapi/callbacks.c:737 +#: ../coreapi/callbacks.c:751 #, c-format msgid "Registration on %s successful." msgstr "成功注册到 %s" -#: ../coreapi/callbacks.c:738 +#: ../coreapi/callbacks.c:752 #, c-format msgid "Unregistration on %s done." msgstr "已在 %s 解除注册。" -#: ../coreapi/callbacks.c:758 +#: ../coreapi/callbacks.c:772 msgid "no response timeout" msgstr "没有响应,超时" -#: ../coreapi/callbacks.c:761 +#: ../coreapi/callbacks.c:775 #, c-format msgid "Registration on %s failed: %s" msgstr "注册到 %s 失败: %s" -#: ../coreapi/linphonecall.c:129 +#: ../coreapi/callbacks.c:785 +msgid "Service unavailable, retrying" +msgstr "" + +#: ../coreapi/linphonecall.c:142 #, fuzzy, c-format msgid "Authentication token is %s" msgstr "Linphone - 需要认证" -#: ../coreapi/linphonecall.c:2355 +#: ../coreapi/linphonecall.c:2678 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "您错过了 %i 个呼叫。" -#~ msgid "label" -#~ msgstr "标签" +#~ msgid "" +#~ "Could not parse given sip address. A sip url usually looks like sip:" +#~ "user@domain" +#~ msgstr "" +#~ "无法解析给定的 SIP 地址,SIP 地址应有如下格式:\n" +#~ "sip:用户名@域名" + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the pcm oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ "'modprobe snd-pcm-oss' as root to load it." +#~ msgstr "" +#~ "您的计算机正使用 ALSA 声音驱动。\n" +#~ "ALSA 是最佳选择,然而 Linphone 必须的 PCM OSS 模拟模块缺失。\n" +#~ "请以 root 用户运行 modprobe snd-pcm-oss 载入它。" + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the mixer oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ " 'modprobe snd-mixer-oss' as root to load it." +#~ msgstr "" +#~ "您的计算机正使用 ALSA 声音驱动。\n" +#~ "ALSA 是最佳选择,然而 Linphone 必须的 Mixer OSS 模拟模块缺失。\n" +#~ "请以 root 用户运行 modprobe snd-mixer-oss 载入它。" #~ msgid "Keypad" #~ msgstr "数字键盘" @@ -1862,9 +2097,6 @@ msgstr[0] "您错过了 %i 个呼叫。" #~ msgid "Verifying" #~ msgstr "验证中" -#~ msgid "Confirmation" -#~ msgstr "确认" - #~ msgid "Creating your account" #~ msgstr "正在创建您的帐户" @@ -1894,10 +2126,6 @@ msgstr[0] "您错过了 %i 个呼叫。" #~ msgid "No common codecs" #~ msgstr "未找到常用编解码器" -#, fuzzy -#~ msgid "Authentication failure" -#~ msgstr "Linphone - 需要认证" - #~ msgid "Unmute" #~ msgstr "取消静音" @@ -2111,9 +2339,6 @@ msgstr[0] "您错过了 %i 个呼叫。" #~ msgid "Sound playback filter for MacOS X Core Audio drivers" #~ msgstr "MacOS X 核心声音驱动音频回放过滤器" -#~ msgid "Incoming call from %s" -#~ msgstr "来自 %s 的呼叫" - #~ msgid "Assistant" #~ msgstr "配置向导" diff --git a/po/zh_TW.po b/po/zh_TW.po index 26a086150..52db94544 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone 3.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-04-24 14:04+0200\n" +"POT-Creation-Date: 2014-02-14 14:57+0100\n" "PO-Revision-Date: 2011-04-06 21:24+0800\n" "Last-Translator: Chao-Hsiung Liao \n" "Language-Team: \n" @@ -17,12 +17,12 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:922 +#: ../gtk/calllogs.c:139 ../gtk/friendlist.c:969 #, c-format msgid "Call %s" msgstr "播打給 %s" -#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:923 +#: ../gtk/calllogs.c:140 ../gtk/friendlist.c:970 #, c-format msgid "Send text to %s" msgstr "傳送文字給 %s" @@ -96,47 +96,52 @@ msgstr "靜音" msgid "Couldn't find pixmap file: %s" msgstr "找不到 pixmap 檔:%s" -#: ../gtk/chat.c:336 ../gtk/friendlist.c:872 +#: ../gtk/chat.c:363 ../gtk/friendlist.c:919 msgid "Invalid sip contact !" msgstr "無效的 sip 連絡人!" -#: ../gtk/main.c:92 +#: ../gtk/main.c:102 msgid "log to stdout some debug information while running." msgstr "執行時將一些除錯資訊記錄到標準輸出。" -#: ../gtk/main.c:99 +#: ../gtk/main.c:109 msgid "path to a file to write logs into." msgstr "" -#: ../gtk/main.c:106 +#: ../gtk/main.c:116 msgid "Start linphone with video disabled." msgstr "" -#: ../gtk/main.c:113 +#: ../gtk/main.c:123 msgid "Start only in the system tray, do not show the main interface." msgstr "只在系統匣啟動,不要顯示主要介面。" -#: ../gtk/main.c:120 +#: ../gtk/main.c:130 msgid "address to call right now" msgstr "現在要打電話的位址" -#: ../gtk/main.c:127 +#: ../gtk/main.c:137 msgid "if set automatically answer incoming calls" msgstr "如啟用此項,將會自動接聽來電" -#: ../gtk/main.c:134 +#: ../gtk/main.c:144 msgid "" "Specifiy a working directory (should be the base of the installation, eg: c:" "\\Program Files\\Linphone)" msgstr "" "指定一個工作目錄(應該為安裝的根目錄,例如:c:\\Program Files\\Linphone)" -#: ../gtk/main.c:515 +#: ../gtk/main.c:151 +#, fuzzy +msgid "Configuration file" +msgstr "確認" + +#: ../gtk/main.c:573 #, c-format msgid "Call with %s" msgstr "和 %s 通話" -#: ../gtk/main.c:946 +#: ../gtk/main.c:1150 #, c-format msgid "" "%s would like to add you to his contact list.\n" @@ -148,70 +153,70 @@ msgstr "" "您是否要允許他看見您的上線狀態或將他加入您的連絡人清單?\n" "如果您回答否,這個人會被暫時列入黑名單。" -#: ../gtk/main.c:1023 -#, c-format +#: ../gtk/main.c:1227 +#, fuzzy, c-format msgid "" "Please enter your password for username %s\n" -" at domain %s:" +" at realm %s:" msgstr "" "請輸入您使用者名稱 %s\n" "於網域 %s 的密碼:" -#: ../gtk/main.c:1126 +#: ../gtk/main.c:1339 #, fuzzy msgid "Call error" msgstr "通話紀錄" -#: ../gtk/main.c:1129 ../coreapi/linphonecore.c:3210 +#: ../gtk/main.c:1342 ../coreapi/linphonecore.c:3408 msgid "Call ended" msgstr "通話已結束" -#: ../gtk/main.c:1132 ../coreapi/linphonecore.c:240 +#: ../gtk/main.c:1345 ../coreapi/linphonecore.c:250 msgid "Incoming call" msgstr "來電" -#: ../gtk/main.c:1134 ../gtk/incall_view.c:497 ../gtk/main.ui.h:5 +#: ../gtk/main.c:1347 ../gtk/incall_view.c:508 ../gtk/main.ui.h:5 msgid "Answer" msgstr "接聽" -#: ../gtk/main.c:1136 ../gtk/main.ui.h:6 +#: ../gtk/main.c:1349 ../gtk/main.ui.h:6 msgid "Decline" msgstr "拒接" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy msgid "Call paused" msgstr "通話已放棄" -#: ../gtk/main.c:1142 +#: ../gtk/main.c:1355 #, fuzzy, c-format msgid "by %s" msgstr "連接埠" -#: ../gtk/main.c:1191 +#: ../gtk/main.c:1422 #, c-format msgid "%s proposed to start video. Do you accept ?" msgstr "" -#: ../gtk/main.c:1353 +#: ../gtk/main.c:1584 msgid "Website link" msgstr "網站連結" -#: ../gtk/main.c:1402 +#: ../gtk/main.c:1633 msgid "Linphone - a video internet phone" msgstr "Linphone - 網路視訊電話" -#: ../gtk/main.c:1494 +#: ../gtk/main.c:1725 #, c-format msgid "%s (Default)" msgstr "%s (預設值)" -#: ../gtk/main.c:1796 ../coreapi/callbacks.c:810 +#: ../gtk/main.c:2061 ../coreapi/callbacks.c:827 #, c-format msgid "We are transferred to %s" msgstr "我們被轉接到 %s" -#: ../gtk/main.c:1806 +#: ../gtk/main.c:2071 msgid "" "No sound cards have been detected on this computer.\n" "You won't be able to send or receive audio calls." @@ -219,170 +224,171 @@ msgstr "" "在這臺電腦中偵測不到音效卡。\n" "您將無法傳送或接收語音電話。" -#: ../gtk/main.c:1911 +#: ../gtk/main.c:2207 msgid "A free SIP video-phone" msgstr "自由的 SIP 視訊電話" -#: ../gtk/friendlist.c:469 +#: ../gtk/friendlist.c:505 msgid "Add to addressbook" msgstr "" -#: ../gtk/friendlist.c:643 +#: ../gtk/friendlist.c:691 msgid "Presence status" msgstr "上線狀態" -#: ../gtk/friendlist.c:661 ../gtk/propertybox.c:367 ../gtk/contact.ui.h:1 +#: ../gtk/friendlist.c:709 ../gtk/propertybox.c:556 ../gtk/contact.ui.h:1 msgid "Name" msgstr "名稱" -#: ../gtk/friendlist.c:673 +#: ../gtk/friendlist.c:721 #, fuzzy msgid "Call" msgstr "播打給 %s" -#: ../gtk/friendlist.c:678 +#: ../gtk/friendlist.c:726 msgid "Chat" msgstr "" -#: ../gtk/friendlist.c:708 +#: ../gtk/friendlist.c:756 #, c-format msgid "Search in %s directory" msgstr "在 %s 目錄中搜尋" -#: ../gtk/friendlist.c:924 +#: ../gtk/friendlist.c:971 #, c-format msgid "Edit contact '%s'" msgstr "編輯連絡人「%s」" -#: ../gtk/friendlist.c:925 +#: ../gtk/friendlist.c:972 #, c-format msgid "Delete contact '%s'" msgstr "刪除連絡人「%s」" -#: ../gtk/friendlist.c:926 +#: ../gtk/friendlist.c:973 #, fuzzy, c-format msgid "Delete chat history of '%s'" msgstr "刪除連絡人「%s」" -#: ../gtk/friendlist.c:977 +#: ../gtk/friendlist.c:1024 #, c-format msgid "Add new contact from %s directory" msgstr "從 %s 目錄加入新的連絡人" -#: ../gtk/propertybox.c:373 +#: ../gtk/propertybox.c:562 msgid "Rate (Hz)" msgstr "頻率 (Hz)" -#: ../gtk/propertybox.c:379 +#: ../gtk/propertybox.c:568 msgid "Status" msgstr "狀態" -#: ../gtk/propertybox.c:385 -msgid "Min bitrate (kbit/s)" +#: ../gtk/propertybox.c:574 +#, fuzzy +msgid "Bitrate (kbit/s)" msgstr "最小頻寬 (kbit/s)" -#: ../gtk/propertybox.c:392 +#: ../gtk/propertybox.c:581 msgid "Parameters" msgstr "參數" -#: ../gtk/propertybox.c:435 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:624 ../gtk/propertybox.c:767 msgid "Enabled" msgstr "已啟用" -#: ../gtk/propertybox.c:437 ../gtk/propertybox.c:578 +#: ../gtk/propertybox.c:626 ../gtk/propertybox.c:767 msgid "Disabled" msgstr "已停用" -#: ../gtk/propertybox.c:624 +#: ../gtk/propertybox.c:813 msgid "Account" msgstr "帳號" -#: ../gtk/propertybox.c:764 +#: ../gtk/propertybox.c:1057 msgid "English" msgstr "英語" -#: ../gtk/propertybox.c:765 +#: ../gtk/propertybox.c:1058 msgid "French" msgstr "法語" -#: ../gtk/propertybox.c:766 +#: ../gtk/propertybox.c:1059 msgid "Swedish" msgstr "瑞典語" -#: ../gtk/propertybox.c:767 +#: ../gtk/propertybox.c:1060 msgid "Italian" msgstr "義大利語" -#: ../gtk/propertybox.c:768 +#: ../gtk/propertybox.c:1061 msgid "Spanish" msgstr "西班牙語" -#: ../gtk/propertybox.c:769 +#: ../gtk/propertybox.c:1062 msgid "Brazilian Portugese" msgstr "巴西葡萄牙語" -#: ../gtk/propertybox.c:770 +#: ../gtk/propertybox.c:1063 msgid "Polish" msgstr "波蘭語" -#: ../gtk/propertybox.c:771 +#: ../gtk/propertybox.c:1064 msgid "German" msgstr "德語" -#: ../gtk/propertybox.c:772 +#: ../gtk/propertybox.c:1065 msgid "Russian" msgstr "俄語" -#: ../gtk/propertybox.c:773 +#: ../gtk/propertybox.c:1066 msgid "Japanese" msgstr "日語" -#: ../gtk/propertybox.c:774 +#: ../gtk/propertybox.c:1067 msgid "Dutch" msgstr "荷蘭語" -#: ../gtk/propertybox.c:775 +#: ../gtk/propertybox.c:1068 msgid "Hungarian" msgstr "匈牙利語" -#: ../gtk/propertybox.c:776 +#: ../gtk/propertybox.c:1069 msgid "Czech" msgstr "捷克語" -#: ../gtk/propertybox.c:777 +#: ../gtk/propertybox.c:1070 msgid "Chinese" msgstr "中文" -#: ../gtk/propertybox.c:778 +#: ../gtk/propertybox.c:1071 msgid "Traditional Chinese" msgstr "" -#: ../gtk/propertybox.c:779 +#: ../gtk/propertybox.c:1072 msgid "Norwegian" msgstr "" -#: ../gtk/propertybox.c:780 +#: ../gtk/propertybox.c:1073 msgid "Hebrew" msgstr "" -#: ../gtk/propertybox.c:781 +#: ../gtk/propertybox.c:1074 msgid "Serbian" msgstr "" -#: ../gtk/propertybox.c:848 +#: ../gtk/propertybox.c:1141 msgid "" "You need to restart linphone for the new language selection to take effect." msgstr "您需要重新啟動 linphone 才能讓新選擇的語言生效。" -#: ../gtk/propertybox.c:934 +#: ../gtk/propertybox.c:1219 msgid "None" msgstr "" -#: ../gtk/propertybox.c:938 +#: ../gtk/propertybox.c:1223 msgid "SRTP" msgstr "" -#: ../gtk/propertybox.c:944 +#: ../gtk/propertybox.c:1229 msgid "ZRTP" msgstr "" @@ -448,109 +454,118 @@ msgstr "我已經有帳號,並且要使用這個帳號" msgid "I have already a sip account and I just want to use it" msgstr "我已經有帳號,並且要使用這個帳號" -#: ../gtk/setupwizard.c:85 +#: ../gtk/setupwizard.c:46 +msgid "I want to specify a remote configuration URI" +msgstr "" + +#: ../gtk/setupwizard.c:89 msgid "Enter your linphone.org username" msgstr "" -#: ../gtk/setupwizard.c:92 +#: ../gtk/setupwizard.c:96 ../gtk/parameters.ui.h:79 ../gtk/ldap.ui.h:4 msgid "Username:" msgstr "使用者名稱:" -#: ../gtk/setupwizard.c:94 ../gtk/password.ui.h:4 +#: ../gtk/setupwizard.c:98 ../gtk/password.ui.h:4 ../gtk/ldap.ui.h:5 msgid "Password:" msgstr "密碼: " -#: ../gtk/setupwizard.c:114 +#: ../gtk/setupwizard.c:118 msgid "Enter your account informations" msgstr "" -#: ../gtk/setupwizard.c:121 +#: ../gtk/setupwizard.c:125 #, fuzzy msgid "Username*" msgstr "使用者名稱" -#: ../gtk/setupwizard.c:122 +#: ../gtk/setupwizard.c:126 #, fuzzy msgid "Password*" msgstr "密碼" -#: ../gtk/setupwizard.c:125 +#: ../gtk/setupwizard.c:129 msgid "Domain*" msgstr "" -#: ../gtk/setupwizard.c:126 +#: ../gtk/setupwizard.c:130 msgid "Proxy" msgstr "" -#: ../gtk/setupwizard.c:298 +#: ../gtk/setupwizard.c:302 msgid "(*) Required fields" msgstr "" -#: ../gtk/setupwizard.c:299 +#: ../gtk/setupwizard.c:303 #, fuzzy msgid "Username: (*)" msgstr "使用者名稱:" -#: ../gtk/setupwizard.c:301 +#: ../gtk/setupwizard.c:305 #, fuzzy msgid "Password: (*)" msgstr "密碼: " -#: ../gtk/setupwizard.c:303 +#: ../gtk/setupwizard.c:307 msgid "Email: (*)" msgstr "" -#: ../gtk/setupwizard.c:305 +#: ../gtk/setupwizard.c:309 msgid "Confirm your password: (*)" msgstr "" -#: ../gtk/setupwizard.c:369 +#: ../gtk/setupwizard.c:373 msgid "" "Error, account not validated, username already used or server unreachable.\n" "Please go back and try again." msgstr "" -#: ../gtk/setupwizard.c:380 +#: ../gtk/setupwizard.c:384 msgid "Thank you. Your account is now configured and ready for use." msgstr "謝謝您。您的帳號已設定完成並且可以使用。" -#: ../gtk/setupwizard.c:388 +#: ../gtk/setupwizard.c:392 msgid "" "Please validate your account by clicking on the link we just sent you by " "email.\n" "Then come back here and press Next button." msgstr "" -#: ../gtk/setupwizard.c:564 +#: ../gtk/setupwizard.c:572 +#, fuzzy +msgid "SIP account configuration assistant" +msgstr "帳號設定助理" + +#: ../gtk/setupwizard.c:590 msgid "Welcome to the account setup assistant" msgstr "歡迎使用帳號設定助理" -#: ../gtk/setupwizard.c:569 +#: ../gtk/setupwizard.c:595 msgid "Account setup assistant" msgstr "帳號設定助理" -#: ../gtk/setupwizard.c:575 +#: ../gtk/setupwizard.c:601 #, fuzzy msgid "Configure your account (step 1/1)" msgstr "設定 SIP 帳號" -#: ../gtk/setupwizard.c:580 +#: ../gtk/setupwizard.c:606 msgid "Enter your sip username (step 1/1)" msgstr "" -#: ../gtk/setupwizard.c:584 +#: ../gtk/setupwizard.c:610 msgid "Enter account information (step 1/2)" msgstr "" -#: ../gtk/setupwizard.c:593 +#: ../gtk/setupwizard.c:619 msgid "Validation (step 2/2)" msgstr "" -#: ../gtk/setupwizard.c:598 +#: ../gtk/setupwizard.c:624 msgid "Error" msgstr "" -#: ../gtk/setupwizard.c:602 +#: ../gtk/setupwizard.c:628 msgid "Terminating" msgstr "" @@ -621,135 +636,150 @@ msgstr "ICE 過濾器" msgid "Direct or through server" msgstr "" -#: ../gtk/incall_view.c:259 ../gtk/incall_view.c:265 +#: ../gtk/incall_view.c:261 ../gtk/incall_view.c:272 #, c-format msgid "" "download: %f\n" "upload: %f (kbit/s)" msgstr "" -#: ../gtk/incall_view.c:286 +#: ../gtk/incall_view.c:267 ../gtk/incall_view.c:268 +#, c-format +msgid "%ix%i" +msgstr "" + +#: ../gtk/incall_view.c:297 #, c-format msgid "%.3f seconds" msgstr "" -#: ../gtk/incall_view.c:384 ../gtk/main.ui.h:12 +#: ../gtk/incall_view.c:395 ../gtk/main.ui.h:12 msgid "Hang up" msgstr "" -#: ../gtk/incall_view.c:476 +#: ../gtk/incall_view.c:487 msgid "Calling..." msgstr "播打..." -#: ../gtk/incall_view.c:479 ../gtk/incall_view.c:689 +#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:700 msgid "00::00::00" msgstr "00::00::00" -#: ../gtk/incall_view.c:490 +#: ../gtk/incall_view.c:501 msgid "Incoming call" msgstr "來電" -#: ../gtk/incall_view.c:527 +#: ../gtk/incall_view.c:538 msgid "good" msgstr "" -#: ../gtk/incall_view.c:529 +#: ../gtk/incall_view.c:540 msgid "average" msgstr "" -#: ../gtk/incall_view.c:531 +#: ../gtk/incall_view.c:542 msgid "poor" msgstr "" -#: ../gtk/incall_view.c:533 +#: ../gtk/incall_view.c:544 msgid "very poor" msgstr "" -#: ../gtk/incall_view.c:535 +#: ../gtk/incall_view.c:546 msgid "too bad" msgstr "" -#: ../gtk/incall_view.c:536 ../gtk/incall_view.c:552 +#: ../gtk/incall_view.c:547 ../gtk/incall_view.c:563 msgid "unavailable" msgstr "" -#: ../gtk/incall_view.c:651 +#: ../gtk/incall_view.c:662 msgid "Secured by SRTP" msgstr "" -#: ../gtk/incall_view.c:657 +#: ../gtk/incall_view.c:668 #, c-format msgid "Secured by ZRTP - [auth token: %s]" msgstr "" -#: ../gtk/incall_view.c:663 +#: ../gtk/incall_view.c:674 msgid "Set unverified" msgstr "" -#: ../gtk/incall_view.c:663 ../gtk/main.ui.h:4 +#: ../gtk/incall_view.c:674 ../gtk/main.ui.h:4 msgid "Set verified" msgstr "" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In conference" msgstr "" -#: ../gtk/incall_view.c:684 +#: ../gtk/incall_view.c:695 msgid "In call" msgstr "通話中" -#: ../gtk/incall_view.c:718 +#: ../gtk/incall_view.c:731 msgid "Paused call" msgstr "暫停通話" -#: ../gtk/incall_view.c:731 +#: ../gtk/incall_view.c:744 #, c-format msgid "%02i::%02i::%02i" msgstr "%02i::%02i::%02i" -#: ../gtk/incall_view.c:748 +#: ../gtk/incall_view.c:762 msgid "Call ended." msgstr "通話結束。" -#: ../gtk/incall_view.c:778 +#: ../gtk/incall_view.c:793 msgid "Transfer in progress" msgstr "" -#: ../gtk/incall_view.c:781 +#: ../gtk/incall_view.c:796 #, fuzzy msgid "Transfer done." msgstr "轉接" -#: ../gtk/incall_view.c:784 +#: ../gtk/incall_view.c:799 #, fuzzy msgid "Transfer failed." msgstr "轉接" -#: ../gtk/incall_view.c:828 +#: ../gtk/incall_view.c:843 msgid "Resume" msgstr "繼續" -#: ../gtk/incall_view.c:835 ../gtk/main.ui.h:9 +#: ../gtk/incall_view.c:850 ../gtk/main.ui.h:9 msgid "Pause" msgstr "暫停" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, c-format msgid "" "Recording into\n" "%s %s" msgstr "" -#: ../gtk/incall_view.c:900 +#: ../gtk/incall_view.c:915 #, fuzzy msgid "(Paused)" msgstr "暫停" -#: ../gtk/loginframe.c:93 +#: ../gtk/loginframe.c:88 #, c-format msgid "Please enter login information for %s" msgstr "請輸入 %s 的 登入資訊" +#: ../gtk/config-fetching.c:57 +#, c-format +msgid "fetching from %s" +msgstr "" + +#: ../gtk/config-fetching.c:73 +#, c-format +msgid "Downloading of remote configuration from %s failed." +msgstr "" + #: ../gtk/main.ui.h:1 #, fuzzy msgid "Callee name" @@ -796,91 +826,92 @@ msgid "_Options" msgstr "選項(_O)" #: ../gtk/main.ui.h:18 +#, fuzzy +msgid "Set configuration URI" +msgstr "確認" + +#: ../gtk/main.ui.h:19 msgid "Always start video" msgstr "" -#: ../gtk/main.ui.h:19 +#: ../gtk/main.ui.h:20 msgid "Enable self-view" msgstr "啟用自拍檢視" -#: ../gtk/main.ui.h:20 +#: ../gtk/main.ui.h:21 msgid "_Help" msgstr "求助(_H)" -#: ../gtk/main.ui.h:21 +#: ../gtk/main.ui.h:22 msgid "Show debug window" msgstr "顯示除錯視窗" -#: ../gtk/main.ui.h:22 +#: ../gtk/main.ui.h:23 msgid "_Homepage" msgstr "官方網頁(_H)" -#: ../gtk/main.ui.h:23 +#: ../gtk/main.ui.h:24 msgid "Check _Updates" msgstr "檢查更新(_U)" -#: ../gtk/main.ui.h:24 +#: ../gtk/main.ui.h:25 #, fuzzy msgid "Account assistant" msgstr "帳號設定助理" -#: ../gtk/main.ui.h:25 +#: ../gtk/main.ui.h:26 msgid "SIP address or phone number:" msgstr "SIP 位址或電話號碼:" -#: ../gtk/main.ui.h:26 +#: ../gtk/main.ui.h:27 msgid "Initiate a new call" msgstr "打出新電話" -#: ../gtk/main.ui.h:27 +#: ../gtk/main.ui.h:28 msgid "Contacts" msgstr "連絡人" -#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:50 -msgid "Add" -msgstr "加入" - -#: ../gtk/main.ui.h:29 ../gtk/parameters.ui.h:51 -msgid "Edit" -msgstr "編輯" - -#: ../gtk/main.ui.h:30 +#: ../gtk/main.ui.h:29 msgid "Search" msgstr "搜尋" -#: ../gtk/main.ui.h:31 +#: ../gtk/main.ui.h:30 msgid "Add contacts from directory" msgstr "從目錄加入連絡人" -#: ../gtk/main.ui.h:32 +#: ../gtk/main.ui.h:31 msgid "Add contact" msgstr "加入聯絡人" -#: ../gtk/main.ui.h:33 +#: ../gtk/main.ui.h:32 #, fuzzy msgid "Recent calls" msgstr "通話中" -#: ../gtk/main.ui.h:34 +#: ../gtk/main.ui.h:33 msgid "My current identity:" msgstr "我目前的使用者識別:" -#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:7 +#: ../gtk/main.ui.h:34 ../gtk/tunnel_config.ui.h:7 msgid "Username" msgstr "使用者名稱" -#: ../gtk/main.ui.h:36 ../gtk/tunnel_config.ui.h:8 +#: ../gtk/main.ui.h:35 ../gtk/tunnel_config.ui.h:8 msgid "Password" msgstr "密碼" -#: ../gtk/main.ui.h:37 +#: ../gtk/main.ui.h:36 msgid "Internet connection:" msgstr "網路連線:" -#: ../gtk/main.ui.h:38 +#: ../gtk/main.ui.h:37 msgid "Automatically log me in" msgstr "將我自動登入" +#: ../gtk/main.ui.h:38 ../gtk/password.ui.h:3 +msgid "UserID" +msgstr "使用者ID" + #: ../gtk/main.ui.h:39 msgid "Login information" msgstr "登入資訊" @@ -926,6 +957,7 @@ msgid "An internet video phone using the standard SIP (rfc3261) protocol." msgstr "使用標準 SIP (rfc3261) 通訊協定的網路視訊電話。" #: ../gtk/about.ui.h:5 +#, fuzzy msgid "" "fr: Simon Morlat\n" "en: Simon Morlat and Delphine Perreau\n" @@ -938,6 +970,7 @@ msgid "" "pl: Robert Nasiadek \n" "cs: Petr Pisar \n" "hu: anonymous\n" +"he: Eli Zaretskii \n" msgstr "" "fr: Simon Morlat\n" "en: Simon Morlat and Delphine Perreau\n" @@ -983,10 +1016,6 @@ msgstr "Linphone - 需要驗證" msgid "Please enter the domain password" msgstr "請輸入這個網域的密碼" -#: ../gtk/password.ui.h:3 -msgid "UserID" -msgstr "使用者ID" - #: ../gtk/call_logs.ui.h:1 msgid "Call history" msgstr "通話紀錄" @@ -1024,305 +1053,372 @@ msgid "Looks like sip:" msgstr "看起來像 sip:" #: ../gtk/sip_account.ui.h:7 -msgid "Route (optional):" -msgstr "路由 (選擇性):" - -#: ../gtk/sip_account.ui.h:8 msgid "Registration duration (sec):" msgstr "註冊時間 (秒):" +#: ../gtk/sip_account.ui.h:8 +#, fuzzy +msgid "Contact params (optional):" +msgstr "路由 (選擇性):" + #: ../gtk/sip_account.ui.h:9 +msgid "Route (optional):" +msgstr "路由 (選擇性):" + +#: ../gtk/sip_account.ui.h:10 +#, fuzzy +msgid "Transport" +msgstr "傳輸" + +#: ../gtk/sip_account.ui.h:11 msgid "Register" msgstr "" -#: ../gtk/sip_account.ui.h:10 +#: ../gtk/sip_account.ui.h:12 msgid "Publish presence information" msgstr "發布上線資訊" -#: ../gtk/sip_account.ui.h:11 +#: ../gtk/sip_account.ui.h:13 msgid "Configure a SIP account" msgstr "設定 SIP 帳號" #: ../gtk/parameters.ui.h:1 +msgid "anonymous" +msgstr "" + +#: ../gtk/parameters.ui.h:2 +msgid "GSSAPI" +msgstr "" + +#: ../gtk/parameters.ui.h:3 +msgid "SASL" +msgstr "" + +#: ../gtk/parameters.ui.h:4 msgid "default soundcard" msgstr "預設的音效卡" -#: ../gtk/parameters.ui.h:2 +#: ../gtk/parameters.ui.h:5 msgid "a sound card" msgstr "音效卡" -#: ../gtk/parameters.ui.h:3 +#: ../gtk/parameters.ui.h:6 msgid "default camera" msgstr "預設的攝影機" -#: ../gtk/parameters.ui.h:4 +#: ../gtk/parameters.ui.h:7 msgid "CIF" msgstr "CIF" -#: ../gtk/parameters.ui.h:5 +#: ../gtk/parameters.ui.h:8 msgid "Audio codecs" msgstr "音訊編碼解碼器" -#: ../gtk/parameters.ui.h:6 +#: ../gtk/parameters.ui.h:9 msgid "Video codecs" msgstr "視訊編碼解碼器" -#: ../gtk/parameters.ui.h:7 ../gtk/keypad.ui.h:5 +#: ../gtk/parameters.ui.h:10 ../gtk/keypad.ui.h:5 msgid "C" msgstr "C" -#: ../gtk/parameters.ui.h:8 +#: ../gtk/parameters.ui.h:11 #, fuzzy msgid "SIP (UDP)" msgstr "SIP (UDP):" -#: ../gtk/parameters.ui.h:9 +#: ../gtk/parameters.ui.h:12 #, fuzzy msgid "SIP (TCP)" msgstr "SIP (TCP):" -#: ../gtk/parameters.ui.h:10 +#: ../gtk/parameters.ui.h:13 #, fuzzy msgid "SIP (TLS)" msgstr "SIP (TCP):" -#: ../gtk/parameters.ui.h:11 +#: ../gtk/parameters.ui.h:14 msgid "Settings" msgstr "設定值" -#: ../gtk/parameters.ui.h:12 +#: ../gtk/parameters.ui.h:15 msgid "Set Maximum Transmission Unit:" msgstr "設定最大傳輸單位:" -#: ../gtk/parameters.ui.h:13 +#: ../gtk/parameters.ui.h:16 msgid "Send DTMFs as SIP info" msgstr "傳送 DTMFs 為 SIP 資訊" -#: ../gtk/parameters.ui.h:14 +#: ../gtk/parameters.ui.h:17 msgid "Use IPv6 instead of IPv4" msgstr "使用 IPv6 代替 IPv4" -#: ../gtk/parameters.ui.h:15 +#: ../gtk/parameters.ui.h:18 msgid "Transport" msgstr "傳輸" -#: ../gtk/parameters.ui.h:16 +#: ../gtk/parameters.ui.h:19 msgid "Media encryption type" msgstr "" -#: ../gtk/parameters.ui.h:17 +#: ../gtk/parameters.ui.h:20 msgid "Video RTP/UDP:" msgstr "視訊 RTP/UDP:" -#: ../gtk/parameters.ui.h:18 +#: ../gtk/parameters.ui.h:21 msgid "Audio RTP/UDP:" msgstr "音效 RTP/UDP:" -#: ../gtk/parameters.ui.h:19 -msgid "DSCP fields" -msgstr "" - -#: ../gtk/parameters.ui.h:20 +#: ../gtk/parameters.ui.h:22 msgid "Fixed" msgstr "" -#: ../gtk/parameters.ui.h:21 -msgid "Tunnel" -msgstr "" - -#: ../gtk/parameters.ui.h:22 +#: ../gtk/parameters.ui.h:23 msgid "Media encryption is mandatory" msgstr "" -#: ../gtk/parameters.ui.h:23 +#: ../gtk/parameters.ui.h:24 +msgid "Tunnel" +msgstr "" + +#: ../gtk/parameters.ui.h:25 +msgid "DSCP fields" +msgstr "" + +#: ../gtk/parameters.ui.h:26 +msgid "SIP/TCP port" +msgstr "" + +#: ../gtk/parameters.ui.h:27 +msgid "SIP/UDP port" +msgstr "" + +#: ../gtk/parameters.ui.h:28 msgid "Network protocol and ports" msgstr "" -#: ../gtk/parameters.ui.h:24 +#: ../gtk/parameters.ui.h:29 msgid "Direct connection to the Internet" msgstr "直接連線到網際網路" -#: ../gtk/parameters.ui.h:25 -msgid "Behind NAT / Firewall (specify gateway IP below)" +#: ../gtk/parameters.ui.h:30 +#, fuzzy +msgid "Behind NAT / Firewall (specify gateway IP )" msgstr "在 NAT / 防火牆之後 (在下面指定閘道器 IP)" -#: ../gtk/parameters.ui.h:26 -msgid "Public IP address:" -msgstr "公共 IP 地址:" - -#: ../gtk/parameters.ui.h:27 +#: ../gtk/parameters.ui.h:31 msgid "Behind NAT / Firewall (use STUN to resolve)" msgstr "在 NAT / 防火牆之後 (使用 STUN 解析)" -#: ../gtk/parameters.ui.h:28 +#: ../gtk/parameters.ui.h:32 #, fuzzy msgid "Behind NAT / Firewall (use ICE)" msgstr "在 NAT / 防火牆之後 (使用 STUN 解析)" -#: ../gtk/parameters.ui.h:29 +#: ../gtk/parameters.ui.h:33 #, fuzzy msgid "Behind NAT / Firewall (use uPnP)" msgstr "在 NAT / 防火牆之後 (使用 STUN 解析)" -#: ../gtk/parameters.ui.h:30 +#: ../gtk/parameters.ui.h:34 +msgid "Public IP address:" +msgstr "公共 IP 地址:" + +#: ../gtk/parameters.ui.h:35 msgid "Stun server:" msgstr "Stun 伺服器:" -#: ../gtk/parameters.ui.h:31 +#: ../gtk/parameters.ui.h:36 msgid "NAT and Firewall" msgstr "NAT 與防火牆" -#: ../gtk/parameters.ui.h:32 +#: ../gtk/parameters.ui.h:37 msgid "Network settings" msgstr "網路設定值" -#: ../gtk/parameters.ui.h:33 +#: ../gtk/parameters.ui.h:38 msgid "Ring sound:" msgstr "鈴聲音效:" -#: ../gtk/parameters.ui.h:34 +#: ../gtk/parameters.ui.h:39 msgid "ALSA special device (optional):" msgstr "ALSA 特殊裝置 (選擇性):" -#: ../gtk/parameters.ui.h:35 +#: ../gtk/parameters.ui.h:40 msgid "Capture device:" msgstr "捕捉裝置:" -#: ../gtk/parameters.ui.h:36 +#: ../gtk/parameters.ui.h:41 msgid "Ring device:" msgstr "響鈴裝置:" -#: ../gtk/parameters.ui.h:37 +#: ../gtk/parameters.ui.h:42 msgid "Playback device:" msgstr "播放裝置" -#: ../gtk/parameters.ui.h:38 +#: ../gtk/parameters.ui.h:43 msgid "Enable echo cancellation" msgstr "啟用回音消除" -#: ../gtk/parameters.ui.h:39 +#: ../gtk/parameters.ui.h:44 msgid "Audio" msgstr "音效" -#: ../gtk/parameters.ui.h:40 +#: ../gtk/parameters.ui.h:45 msgid "Video input device:" msgstr "視訊輸入裝置:" -#: ../gtk/parameters.ui.h:41 +#: ../gtk/parameters.ui.h:46 msgid "Prefered video resolution:" msgstr "偏好的視訊解析度:" -#: ../gtk/parameters.ui.h:42 +#: ../gtk/parameters.ui.h:47 +#, fuzzy +msgid "Video output method:" +msgstr "視訊輸入裝置:" + +#: ../gtk/parameters.ui.h:48 msgid "Video" msgstr "視訊" -#: ../gtk/parameters.ui.h:43 +#: ../gtk/parameters.ui.h:49 msgid "Multimedia settings" msgstr "多媒體設定值" -#: ../gtk/parameters.ui.h:44 +#: ../gtk/parameters.ui.h:50 msgid "This section defines your SIP address when not using a SIP account" msgstr "這一區在不使用 SIP 帳號時定義您的 SIP 位址" -#: ../gtk/parameters.ui.h:45 +#: ../gtk/parameters.ui.h:51 msgid "Your display name (eg: John Doe):" msgstr "您的顯示名稱 (例如: John Doe):" -#: ../gtk/parameters.ui.h:46 +#: ../gtk/parameters.ui.h:52 msgid "Your username:" msgstr "您的使用者名稱:" -#: ../gtk/parameters.ui.h:47 +#: ../gtk/parameters.ui.h:53 msgid "Your resulting SIP address:" msgstr "您組成的 SIP 位址:" -#: ../gtk/parameters.ui.h:48 +#: ../gtk/parameters.ui.h:54 msgid "Default identity" msgstr "預設身分識別" -#: ../gtk/parameters.ui.h:49 +#: ../gtk/parameters.ui.h:55 msgid "Wizard" msgstr "" -#: ../gtk/parameters.ui.h:52 +#: ../gtk/parameters.ui.h:56 +msgid "Add" +msgstr "加入" + +#: ../gtk/parameters.ui.h:57 +msgid "Edit" +msgstr "編輯" + +#: ../gtk/parameters.ui.h:58 msgid "Remove" msgstr "移除" -#: ../gtk/parameters.ui.h:53 +#: ../gtk/parameters.ui.h:59 msgid "Proxy accounts" msgstr "代理伺服器帳號" -#: ../gtk/parameters.ui.h:54 +#: ../gtk/parameters.ui.h:60 msgid "Erase all passwords" msgstr "消除所有的密碼" -#: ../gtk/parameters.ui.h:55 +#: ../gtk/parameters.ui.h:61 msgid "Privacy" msgstr "隱私" -#: ../gtk/parameters.ui.h:56 +#: ../gtk/parameters.ui.h:62 msgid "Manage SIP Accounts" msgstr "管理 SIP 帳號" -#: ../gtk/parameters.ui.h:57 ../gtk/tunnel_config.ui.h:4 +#: ../gtk/parameters.ui.h:63 ../gtk/tunnel_config.ui.h:4 msgid "Enable" msgstr "啟用" -#: ../gtk/parameters.ui.h:58 ../gtk/tunnel_config.ui.h:5 +#: ../gtk/parameters.ui.h:64 ../gtk/tunnel_config.ui.h:5 msgid "Disable" msgstr "停用" -#: ../gtk/parameters.ui.h:59 +#: ../gtk/parameters.ui.h:65 msgid "Codecs" msgstr "編碼解碼器" -#: ../gtk/parameters.ui.h:60 +#: ../gtk/parameters.ui.h:66 msgid "0 stands for \"unlimited\"" msgstr "0 表示「不限制」" -#: ../gtk/parameters.ui.h:61 +#: ../gtk/parameters.ui.h:67 msgid "Upload speed limit in Kbit/sec:" msgstr "上傳速度限制於 Kbit/sec:" -#: ../gtk/parameters.ui.h:62 +#: ../gtk/parameters.ui.h:68 msgid "Download speed limit in Kbit/sec:" msgstr "下載速度限制於 Kbit/sec:" -#: ../gtk/parameters.ui.h:63 +#: ../gtk/parameters.ui.h:69 msgid "Enable adaptive rate control" msgstr "" -#: ../gtk/parameters.ui.h:64 +#: ../gtk/parameters.ui.h:70 msgid "" "Adaptive rate control is a technique to dynamically guess the available " "bandwidth during a call." msgstr "" -#: ../gtk/parameters.ui.h:65 +#: ../gtk/parameters.ui.h:71 msgid "Bandwidth control" msgstr "頻寬控制" -#: ../gtk/parameters.ui.h:66 +#: ../gtk/parameters.ui.h:72 msgid "Codecs" msgstr "編碼解碼器" -#: ../gtk/parameters.ui.h:67 +#: ../gtk/parameters.ui.h:73 msgid "Language" msgstr "語言" -#: ../gtk/parameters.ui.h:68 +#: ../gtk/parameters.ui.h:74 msgid "Show advanced settings" msgstr "顯示進階設定值" -#: ../gtk/parameters.ui.h:69 +#: ../gtk/parameters.ui.h:75 msgid "Level" msgstr "級數" -#: ../gtk/parameters.ui.h:70 +#: ../gtk/parameters.ui.h:76 msgid "User interface" msgstr "使用者介面" -#: ../gtk/parameters.ui.h:71 +#: ../gtk/parameters.ui.h:77 ../gtk/ldap.ui.h:2 +#, fuzzy +msgid "Server address:" +msgstr "SIP 代理位址:" + +#: ../gtk/parameters.ui.h:78 ../gtk/ldap.ui.h:3 +#, fuzzy +msgid "Authentication method:" +msgstr "驗證失敗" + +#: ../gtk/parameters.ui.h:80 +msgid "label" +msgstr "標籤" + +#: ../gtk/parameters.ui.h:81 +#, fuzzy +msgid "LDAP Account setup" +msgstr "代理伺服器帳號" + +#: ../gtk/parameters.ui.h:82 +msgid "LDAP" +msgstr "" + +#: ../gtk/parameters.ui.h:83 msgid "Done" msgstr "完成" @@ -1348,7 +1444,7 @@ msgstr "請稍候" #: ../gtk/dscp_settings.ui.h:1 #, fuzzy -msgid "Dscp settings" +msgid "DSCP settings" msgstr "設定值" #: ../gtk/dscp_settings.ui.h:2 @@ -1404,6 +1500,15 @@ msgid "Round trip time" msgstr "" #: ../gtk/call_statistics.ui.h:9 +msgid "Video resolution received" +msgstr "" + +#: ../gtk/call_statistics.ui.h:10 +#, fuzzy +msgid "Video resolution sent" +msgstr "偏好的視訊解析度:" + +#: ../gtk/call_statistics.ui.h:11 #, fuzzy msgid "Call statistics and information" msgstr "連絡人資訊" @@ -1489,19 +1594,140 @@ msgstr "2" msgid "1" msgstr "1" -#: ../coreapi/linphonecore.c:228 +#: ../gtk/ldap.ui.h:1 +#, fuzzy +msgid "LDAP Settings" +msgstr "設定值" + +#: ../gtk/ldap.ui.h:6 +msgid "Use TLS Connection" +msgstr "" + +#: ../gtk/ldap.ui.h:7 +msgid "Not yet available" +msgstr "" + +#: ../gtk/ldap.ui.h:8 +#, fuzzy +msgid "Connection" +msgstr "編碼解碼器" + +#: ../gtk/ldap.ui.h:9 +msgid "Bind DN" +msgstr "" + +#: ../gtk/ldap.ui.h:10 +msgid "Authname" +msgstr "" + +#: ../gtk/ldap.ui.h:11 +msgid "Realm" +msgstr "" + +#: ../gtk/ldap.ui.h:12 +#, fuzzy +msgid "SASL" +msgstr "音效" + +#: ../gtk/ldap.ui.h:13 +msgid "Base object:" +msgstr "" + +#: ../gtk/ldap.ui.h:15 +#, no-c-format +msgid "Filter (%s for name):" +msgstr "" + +#: ../gtk/ldap.ui.h:16 +msgid "Name Attribute:" +msgstr "" + +#: ../gtk/ldap.ui.h:17 +#, fuzzy +msgid "SIP address attribute:" +msgstr "SIP 位址或電話號碼:" + +#: ../gtk/ldap.ui.h:18 +msgid "Attributes to query:" +msgstr "" + +#: ../gtk/ldap.ui.h:19 +#, fuzzy +msgid "Search" +msgstr "搜尋某人" + +#: ../gtk/ldap.ui.h:20 +msgid "Timeout for search:" +msgstr "" + +#: ../gtk/ldap.ui.h:21 +msgid "Max results:" +msgstr "" + +#: ../gtk/ldap.ui.h:22 +msgid "Follow Aliases" +msgstr "" + +#: ../gtk/ldap.ui.h:23 +#, fuzzy +msgid "Miscellaneous" +msgstr "視訊" + +#: ../gtk/ldap.ui.h:24 +msgid "ANONYMOUS" +msgstr "" + +#: ../gtk/ldap.ui.h:25 +msgid "SIMPLE" +msgstr "" + +#: ../gtk/ldap.ui.h:26 +msgid "DIGEST-MD5" +msgstr "" + +#: ../gtk/ldap.ui.h:27 +msgid "NTLM" +msgstr "" + +#: ../gtk/config-uri.ui.h:1 +msgid "Specifying a remote configuration URI" +msgstr "" + +#: ../gtk/config-uri.ui.h:2 +msgid "" +"This dialog allows to set an http or https address when configuration is to " +"be fetched at startup.\n" +"Please enter or modify the configuration URI below. After clicking OK, " +"Linphone will restart automatically in order to fetch and take into account " +"the new configuration. " +msgstr "" + +#: ../gtk/config-uri.ui.h:4 +msgid "https://" +msgstr "" + +#: ../gtk/provisioning-fetch.ui.h:1 +#, fuzzy +msgid "Configuring..." +msgstr "連線中..." + +#: ../gtk/provisioning-fetch.ui.h:2 +msgid "Please wait while fetching configuration from server..." +msgstr "" + +#: ../coreapi/linphonecore.c:238 msgid "aborted" msgstr "已放棄" -#: ../coreapi/linphonecore.c:231 +#: ../coreapi/linphonecore.c:241 msgid "completed" msgstr "已完成" -#: ../coreapi/linphonecore.c:234 +#: ../coreapi/linphonecore.c:244 msgid "missed" msgstr "未接" -#: ../coreapi/linphonecore.c:239 +#: ../coreapi/linphonecore.c:249 #, c-format msgid "" "%s at %s\n" @@ -1516,101 +1742,77 @@ msgstr "" "狀態:%s\n" "持續時間:%i 分 %i 秒\n" -#: ../coreapi/linphonecore.c:240 +#: ../coreapi/linphonecore.c:250 msgid "Outgoing call" msgstr "去電" -#: ../coreapi/linphonecore.c:1321 +#: ../coreapi/linphonecore.c:1264 msgid "Ready" msgstr "準備就緒" -#: ../coreapi/linphonecore.c:2205 +#: ../coreapi/linphonecore.c:1372 +#, fuzzy +msgid "Configuring" +msgstr "確認" + +#: ../coreapi/linphonecore.c:2331 msgid "Looking for telephone number destination..." msgstr "尋找電話號碼目的端..." -#: ../coreapi/linphonecore.c:2208 +#: ../coreapi/linphonecore.c:2334 msgid "Could not resolve this number." msgstr "無法解析這個號碼。" -#: ../coreapi/linphonecore.c:2252 -msgid "" -"Could not parse given sip address. A sip url usually looks like sip:" -"user@domain" -msgstr "無法解析指定的 sip 位址。sip 網址通常看起來像 sip:user@domain" - -#: ../coreapi/linphonecore.c:2453 +#. must be known at that time +#: ../coreapi/linphonecore.c:2609 msgid "Contacting" msgstr "正在連絡" -#: ../coreapi/linphonecore.c:2460 +#: ../coreapi/linphonecore.c:2616 msgid "Could not call" msgstr "無法通話" -#: ../coreapi/linphonecore.c:2570 +#: ../coreapi/linphonecore.c:2765 msgid "Sorry, we have reached the maximum number of simultaneous calls" msgstr "抱歉,我們已達瀏同步通話的最大數目" -#: ../coreapi/linphonecore.c:2752 +#: ../coreapi/linphonecore.c:2952 msgid "is contacting you" msgstr "正在連絡您" -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid " and asked autoanswer." msgstr "並要求自動接聽。" -#: ../coreapi/linphonecore.c:2753 +#: ../coreapi/linphonecore.c:2953 msgid "." msgstr "." -#: ../coreapi/linphonecore.c:2820 +#: ../coreapi/linphonecore.c:3020 msgid "Modifying call parameters..." msgstr "修改通話參數..." -#: ../coreapi/linphonecore.c:3159 +#: ../coreapi/linphonecore.c:3362 msgid "Connected." msgstr "已連線。" -#: ../coreapi/linphonecore.c:3187 +#: ../coreapi/linphonecore.c:3388 msgid "Call aborted" msgstr "通話已放棄" -#: ../coreapi/linphonecore.c:3378 +#: ../coreapi/linphonecore.c:3581 msgid "Could not pause the call" msgstr "無法暫停通話" -#: ../coreapi/linphonecore.c:3383 +#: ../coreapi/linphonecore.c:3586 msgid "Pausing the current call..." msgstr "暫停目前的通話..." -#: ../coreapi/misc.c:148 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the pcm oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -"'modprobe snd-pcm-oss' as root to load it." -msgstr "" -"您的電腦似乎是使用 ALSA 音效驅動程式。\n" -"這是最好的選擇。然而缺少了 pcm oss 模擬模組\n" -"而 linphone 需要它。請以 root 執行\n" -"'modprobe snd-pcm-oss' 載入它。" - -#: ../coreapi/misc.c:151 -msgid "" -"Your computer appears to be using ALSA sound drivers.\n" -"This is the best choice. However the mixer oss emulation module\n" -"is missing and linphone needs it. Please execute\n" -" 'modprobe snd-mixer-oss' as root to load it." -msgstr "" -"您的電腦似乎是使用 ALSA 音效驅動程式。\n" -"這是最好的選擇。然而缺少了 mixer oss 模擬模組\n" -"而 linphone 需要它。請以 root 執行\n" -"'modprobe snd-mixer-oss' 載入它。" - -#: ../coreapi/misc.c:496 +#: ../coreapi/misc.c:394 msgid "Stun lookup in progress..." msgstr "正在進行 Stun 搜尋..." -#: ../coreapi/misc.c:630 +#: ../coreapi/misc.c:576 msgid "ICE local candidates gathering in progress..." msgstr "" @@ -1659,17 +1861,22 @@ msgid "Pending" msgstr "等待中" #: ../coreapi/friend.c:66 +#, fuzzy +msgid "Vacation" +msgstr "時間長度" + +#: ../coreapi/friend.c:68 msgid "Unknown-bug" msgstr "不明錯誤" -#: ../coreapi/proxy.c:204 +#: ../coreapi/proxy.c:209 msgid "" "The sip proxy address you entered is invalid, it must start with \"sip:\" " "followed by a hostname." msgstr "" "您輸入的 sip 代理位址是無效的,它必須要以「sip:」開頭,後面接主機名稱。" -#: ../coreapi/proxy.c:210 +#: ../coreapi/proxy.c:215 msgid "" "The sip identity you entered is invalid.\n" "It should look like sip:username@proxydomain, such as sip:alice@example.net" @@ -1677,132 +1884,160 @@ msgstr "" "您輸入的 sip 身分是無效的。\n" "它應該看起來像 sip:使用者名稱@代理網域,像是 sip:alice@example.net" -#: ../coreapi/proxy.c:1069 +#: ../coreapi/proxy.c:1125 #, c-format msgid "Could not login as %s" msgstr "無法以 %s 登入" -#: ../coreapi/callbacks.c:286 +#: ../coreapi/callbacks.c:289 msgid "Remote ringing." msgstr "遠端響鈴。" -#: ../coreapi/callbacks.c:306 +#: ../coreapi/callbacks.c:305 msgid "Remote ringing..." msgstr "遠端響鈴..." -#: ../coreapi/callbacks.c:317 +#: ../coreapi/callbacks.c:316 msgid "Early media." msgstr "早期媒體。" -#: ../coreapi/callbacks.c:368 +#: ../coreapi/callbacks.c:367 #, c-format msgid "Call with %s is paused." msgstr "和 %s 的通話已暫停。" -#: ../coreapi/callbacks.c:381 +#: ../coreapi/callbacks.c:380 #, c-format msgid "Call answered by %s - on hold." msgstr "通話由 %s 接聽 - 保留中。" -#: ../coreapi/callbacks.c:392 +#: ../coreapi/callbacks.c:391 msgid "Call resumed." msgstr "通話已繼續。" -#: ../coreapi/callbacks.c:397 +#: ../coreapi/callbacks.c:396 #, c-format msgid "Call answered by %s." msgstr "通話由 %s 接聽。" -#: ../coreapi/callbacks.c:412 +#: ../coreapi/callbacks.c:414 msgid "Incompatible, check codecs or security settings..." msgstr "" -#: ../coreapi/callbacks.c:460 +#: ../coreapi/callbacks.c:463 #, fuzzy msgid "We have been resumed." msgstr "我們要繼續了..." -#: ../coreapi/callbacks.c:469 +#: ../coreapi/callbacks.c:471 msgid "We are paused by other party." msgstr "" -#: ../coreapi/callbacks.c:475 +#: ../coreapi/callbacks.c:487 msgid "Call is updated by remote." msgstr "" -#: ../coreapi/callbacks.c:544 +#: ../coreapi/callbacks.c:558 msgid "Call terminated." msgstr "通話已終止。" -#: ../coreapi/callbacks.c:555 +#: ../coreapi/callbacks.c:586 msgid "User is busy." msgstr "使用者現正忙碌。" -#: ../coreapi/callbacks.c:556 +#: ../coreapi/callbacks.c:587 msgid "User is temporarily unavailable." msgstr "使用者暫時無法聯繫。" #. char *retrymsg=_("%s. Retry after %i minute(s)."); -#: ../coreapi/callbacks.c:558 +#: ../coreapi/callbacks.c:589 msgid "User does not want to be disturbed." msgstr "使用者不想要被打擾。" -#: ../coreapi/callbacks.c:559 +#: ../coreapi/callbacks.c:590 msgid "Call declined." msgstr "通話被拒接。" -#: ../coreapi/callbacks.c:571 +#: ../coreapi/callbacks.c:603 msgid "No response." msgstr "沒有回應。" -#: ../coreapi/callbacks.c:575 +#: ../coreapi/callbacks.c:607 msgid "Protocol error." msgstr "通訊協定錯誤。" -#: ../coreapi/callbacks.c:591 +#: ../coreapi/callbacks.c:623 msgid "Redirected" msgstr "已重新導向" -#: ../coreapi/callbacks.c:627 +#: ../coreapi/callbacks.c:665 msgid "Incompatible media parameters." msgstr "" -#: ../coreapi/callbacks.c:633 +#: ../coreapi/callbacks.c:677 msgid "Call failed." msgstr "通話失敗。" -#: ../coreapi/callbacks.c:737 +#: ../coreapi/callbacks.c:751 #, c-format msgid "Registration on %s successful." msgstr "在 %s 註冊成功。" -#: ../coreapi/callbacks.c:738 +#: ../coreapi/callbacks.c:752 #, c-format msgid "Unregistration on %s done." msgstr "在 %s 取消註冊完成。" -#: ../coreapi/callbacks.c:758 +#: ../coreapi/callbacks.c:772 msgid "no response timeout" msgstr "沒有回應逾時" -#: ../coreapi/callbacks.c:761 +#: ../coreapi/callbacks.c:775 #, c-format msgid "Registration on %s failed: %s" msgstr "在 %s 註冊失敗:%s" -#: ../coreapi/linphonecall.c:129 +#: ../coreapi/callbacks.c:785 +msgid "Service unavailable, retrying" +msgstr "" + +#: ../coreapi/linphonecall.c:142 #, fuzzy, c-format msgid "Authentication token is %s" msgstr "驗證失敗" -#: ../coreapi/linphonecall.c:2355 +#: ../coreapi/linphonecall.c:2678 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." msgstr[0] "您有 %i 通未接來電。" -#~ msgid "label" -#~ msgstr "標籤" +#~ msgid "" +#~ "Could not parse given sip address. A sip url usually looks like sip:" +#~ "user@domain" +#~ msgstr "無法解析指定的 sip 位址。sip 網址通常看起來像 sip:user@domain" + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the pcm oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ "'modprobe snd-pcm-oss' as root to load it." +#~ msgstr "" +#~ "您的電腦似乎是使用 ALSA 音效驅動程式。\n" +#~ "這是最好的選擇。然而缺少了 pcm oss 模擬模組\n" +#~ "而 linphone 需要它。請以 root 執行\n" +#~ "'modprobe snd-pcm-oss' 載入它。" + +#~ msgid "" +#~ "Your computer appears to be using ALSA sound drivers.\n" +#~ "This is the best choice. However the mixer oss emulation module\n" +#~ "is missing and linphone needs it. Please execute\n" +#~ " 'modprobe snd-mixer-oss' as root to load it." +#~ msgstr "" +#~ "您的電腦似乎是使用 ALSA 音效驅動程式。\n" +#~ "這是最好的選擇。然而缺少了 mixer oss 模擬模組\n" +#~ "而 linphone 需要它。請以 root 執行\n" +#~ "'modprobe snd-mixer-oss' 載入它。" #~ msgid "Keypad" #~ msgstr "撥號盤" @@ -1834,9 +2069,6 @@ msgstr[0] "您有 %i 通未接來電。" #~ msgid "Verifying" #~ msgstr "檢驗中" -#~ msgid "Confirmation" -#~ msgstr "確認" - #~ msgid "Creating your account" #~ msgstr "正在建立您的帳號" @@ -1869,9 +2101,6 @@ msgstr[0] "您有 %i 通未接來電。" #~ msgid "No common codecs" #~ msgstr "沒有通用的編碼解碼器" -#~ msgid "Authentication failure" -#~ msgstr "驗證失敗" - #~ msgid "Windows" #~ msgstr "視窗" diff --git a/share/CMakeLists.txt b/share/CMakeLists.txt new file mode 100644 index 000000000..8d15a6f5c --- /dev/null +++ b/share/CMakeLists.txt @@ -0,0 +1,17 @@ +install(FILES archived-rootca.pem + RENAME rootca.pem + COMPONENT COMP_liblinphone + DESTINATION share/linphone + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) + +install(FILES ringback.wav + COMPONENT COMP_liblinphone + DESTINATION share/sounds/linphone + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) + +add_subdirectory(rings) + +install(FILES ../mediastreamer2/src/voip/nowebcamCIF.jpg + COMPONENT COMP_liblinphone + DESTINATION share/images + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) diff --git a/share/Makefile.am b/share/Makefile.am index 85c1ab11b..f0df44261 100644 --- a/share/Makefile.am +++ b/share/Makefile.am @@ -1,7 +1,7 @@ SUBDIRS=C fr it ja cs xml -LINPHONE_SOUNDS=ringback.wav hello8000.wav hello16000.wav +LINPHONE_SOUNDS=ringback.wav hello8000.wav hello16000.wav incoming_chat.wav LINPHONE_RINGS=rings/orig.wav \ rings/oldphone.wav \ rings/oldphone-mono.wav \ @@ -23,7 +23,7 @@ ring_DATA=$(LINPHONE_RINGS) #to be compliant with freedesktop.org: linphone_fddir= $(datadir)/applications -linphone_fd_DATA= linphone.desktop +linphone_fd_DATA= linphone.desktop audio-assistant.desktop pkgconfigdir=$(libdir)/pkgconfig @@ -43,9 +43,10 @@ rootca.pem: cp -f $(srcdir)/archived-rootca.pem $(builddir)/rootca.pem ; \ fi -EXTRA_DIST = $(LINPHONE_SOUNDS) \ +EXTRA_DIST = $(LINPHONE_SOUNDS) \ $(LINPHONE_RINGS) \ - linphone.desktop.in \ + linphone.desktop.in \ + audio-assistant.desktop.in \ linphone.pc.in \ Makefile.inc \ archived-rootca.pem diff --git a/share/audio-assistant.desktop.in b/share/audio-assistant.desktop.in new file mode 100644 index 000000000..5e164ca2b --- /dev/null +++ b/share/audio-assistant.desktop.in @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Audio assistant +Comment=Linphone audio assistant +Comment[fr]=Assistant audio de Linphone. +Type=Application +Exec=linphone --run-audio-assistant +Icon=/usr/local/share/pixmaps/linphone/linphone.png +Terminal=false +Categories=Network;Telephony; \ No newline at end of file diff --git a/share/incoming_chat.wav b/share/incoming_chat.wav new file mode 100644 index 000000000..99a2e7dfc Binary files /dev/null and b/share/incoming_chat.wav differ diff --git a/share/rings/CMakeLists.txt b/share/rings/CMakeLists.txt new file mode 100644 index 000000000..cf359bb4e --- /dev/null +++ b/share/rings/CMakeLists.txt @@ -0,0 +1,4 @@ +install(FILES oldphone.wav toy-mono.wav + COMPONENT COMP_liblinphone + DESTINATION share/sounds/linphone/rings + PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) diff --git a/tester/Makefile.am b/tester/Makefile.am index e81c85d97..3896dc77c 100644 --- a/tester/Makefile.am +++ b/tester/Makefile.am @@ -1,40 +1,47 @@ -EXTRA_DIST= empty_rc laure_rc marie_early_rc marie_no_sdp_rc marie_rc multi_account_lrc pauline_alt_rc \ - pauline_rc pauline_wild_rc tester_hosts sounds images certificates +EXTRA_DIST= tester_hosts sounds images certificates rcfiles if BUILD_CUNIT_TESTS -noinst_PROGRAMS=liblinphone_tester +# there are 2 targets: liblinphonetester.la and the executable liblinphone_tester -liblinphone_tester_SOURCES= liblinphone_tester.c liblinphone_tester.h\ +liblinphonedir = $(includedir)/linphone +liblinphone_HEADERS = liblinphone_tester.h + +lib_LTLIBRARIES = liblinphonetester.la + +liblinphonetester_la_SOURCES = tester.c \ setup_tester.c \ register_tester.c \ message_tester.c \ call_tester.c \ presence_tester.c \ upnp_tester.c \ - eventapi_tester.c + eventapi_tester.c \ + flexisip_tester.c \ + stun_tester.c \ + remote_provisioning_tester.c -#liblinphone_tester_CFLAGS=$(CUNIT_CFLAGS) +AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/coreapi +AM_CFLAGS = $(STRICT_OPTIONS) -DIN_LINPHONE $(ORTP_CFLAGS) $(MEDIASTREAMER_CFLAGS) $(CUNIT_CFLAGS) $(BELLESIP_CFLAGS) $(LIBXML2_CFLAGS) -#liblinphone_tester_LDFLAGS=$(CUNIT_LIBS) +if !BUILD_IOS +noinst_PROGRAMS = liblinphone_tester -AM_CPPFLAGS=-I$(top_srcdir)/include -I$(top_srcdir)/coreapi +liblinphone_tester_SOURCES = liblinphone_tester.c +liblinphone_tester_LDADD = $(top_builddir)/coreapi/liblinphone.la liblinphonetester.la $(SIPSTACK_LIBS) $(LIBXML2_LIBS) $(CUNIT_LIBS) -LDADD=$(top_builddir)/coreapi/liblinphone.la +endif -AM_LDFLAGS=$(CUNIT_LIBS) - -AM_CFLAGS=$(STRICT_OPTIONS) -DIN_LINPHONE $(ORTP_CFLAGS) $(MEDIASTREAMER_CFLAGS) $(CUNIT_CFLAGS) test: liblinphone_tester ./liblinphone_tester --config $(abs_srcdir) -else +else !BUILD_CUNIT_TESTS test: @echo "CUnit must be installed to be able to run the tests!" -endif +endif !BUILD_CUNIT_TESTS diff --git a/tester/call_tester.c b/tester/call_tester.c index b166cb86e..facec8769 100644 --- a/tester/call_tester.c +++ b/tester/call_tester.c @@ -1,10 +1,10 @@ /* - belle-sip - SIP (RFC3261) library. - Copyright (C) 2010 Belledonne Communications SARL + liblinphone_tester - liblinphone test suite + Copyright (C) 2013 Belledonne Communications SARL This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or + the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -16,6 +16,7 @@ along with this program. If not, see . */ + #include #include "CUnit/Basic.h" #include "linphonecore.h" @@ -23,6 +24,7 @@ #include "private.h" #include "liblinphone_tester.h" +static void call_base(LinphoneMediaEncryption mode, bool_t enable_video,bool_t enable_relay,LinphoneFirewallPolicy policy); void call_state_changed(LinphoneCore *lc, LinphoneCall *call, LinphoneCallState cstate, const char *msg){ char* to=linphone_address_as_string(linphone_call_get_call_log(call)->to); @@ -58,7 +60,22 @@ void call_state_changed(LinphoneCore *lc, LinphoneCall *call, LinphoneCallState CU_FAIL("unexpected event");break; } } - +void linphone_call_encryption_changed(LinphoneCore *lc, LinphoneCall *call, bool_t on, const char *authentication_token) { + char* to=linphone_address_as_string(linphone_call_get_call_log(call)->to); + char* from=linphone_address_as_string(linphone_call_get_call_log(call)->from); + stats* counters; + ms_message(" %s call from [%s] to [%s], is now [%s]",linphone_call_get_call_log(call)->dir==LinphoneCallIncoming?"Incoming":"Outgoing" + ,from + ,to + ,(on?"encrypted":"unencrypted")); + ms_free(to); + ms_free(from); + counters = get_stats(lc); + if (on) + counters->number_of_LinphoneCallEncryptedOn++; + else + counters->number_of_LinphoneCallEncryptedOff++; +} void linphone_transfer_state_changed(LinphoneCore *lc, LinphoneCall *transfered, LinphoneCallState new_call_state) { char* to=linphone_address_as_string(linphone_call_get_call_log(transfered)->to); char* from=linphone_address_as_string(linphone_call_get_call_log(transfered)->from); @@ -95,13 +112,18 @@ static void linphone_call_cb(LinphoneCall *call,void * user_data) { } #endif -static void check_rtcp(LinphoneCoreManager* caller, LinphoneCoreManager* callee) { +void liblinphone_tester_check_rtcp(LinphoneCoreManager* caller, LinphoneCoreManager* callee) { LinphoneCall *c1,*c2; int i; int dummy=0; c1=linphone_core_get_current_call(caller->lc); c2=linphone_core_get_current_call(callee->lc); + + CU_ASSERT_PTR_NOT_NULL(c1); + CU_ASSERT_PTR_NOT_NULL(c2); + + if (!c1 || !c2) return; for (i=0; i<24 /*=12s need at least one exchange of SR to maybe 10s*/; i++) { if (linphone_call_get_audio_stats(c1)->round_trip_delay >0.0 @@ -168,7 +190,7 @@ bool_t call_with_params(LinphoneCoreManager* caller_mgr CU_ASSERT_PTR_NOT_NULL(linphone_core_get_current_call_remote_address(callee_mgr->lc)); - if (!linphone_core_get_current_call_remote_address(callee_mgr->lc)) + if(!linphone_core_get_current_call(caller_mgr->lc) || !linphone_core_get_current_call(callee_mgr->lc) || !linphone_core_get_current_call_remote_address(callee_mgr->lc)) return 0; else { LinphoneAddress* callee_from=linphone_address_clone(caller_mgr->identity); @@ -192,12 +214,19 @@ bool_t call_with_params(LinphoneCoreManager* caller_mgr && wait_for(callee_mgr->lc,caller_mgr->lc,&callee_mgr->stat.number_of_LinphoneCallStreamsRunning,initial_callee.number_of_LinphoneCallStreamsRunning+1); - if (linphone_core_get_media_encryption(caller_mgr->lc) - && linphone_core_get_media_encryption(callee_mgr->lc)) { + if (linphone_core_get_media_encryption(caller_mgr->lc) != LinphoneMediaEncryptionNone + && linphone_core_get_media_encryption(callee_mgr->lc) != LinphoneMediaEncryptionNone) { + /*wait for encryption to be on, in case of zrtp, it can take a few seconds*/ + if (linphone_core_get_media_encryption(caller_mgr->lc) == LinphoneMediaEncryptionZRTP) + wait_for(callee_mgr->lc,caller_mgr->lc,&caller_mgr->stat.number_of_LinphoneCallEncryptedOn,initial_caller.number_of_LinphoneCallEncryptedOn+1); + if (linphone_core_get_media_encryption(callee_mgr->lc) == LinphoneMediaEncryptionZRTP) + wait_for(callee_mgr->lc,caller_mgr->lc,&callee_mgr->stat.number_of_LinphoneCallEncryptedOn,initial_callee.number_of_LinphoneCallEncryptedOn+1); + { const LinphoneCallParams* call_param = linphone_call_get_current_params(linphone_core_get_current_call(callee_mgr->lc)); CU_ASSERT_EQUAL(linphone_call_params_get_media_encryption(call_param),linphone_core_get_media_encryption(caller_mgr->lc)); call_param = linphone_call_get_current_params(linphone_core_get_current_call(caller_mgr->lc)); CU_ASSERT_EQUAL(linphone_call_params_get_media_encryption(call_param),linphone_core_get_media_encryption(caller_mgr->lc)); + } } return result; } @@ -214,7 +243,7 @@ static void simple_call(void) { LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); CU_ASSERT_TRUE(call(pauline,marie)); - check_rtcp(marie,pauline); + liblinphone_tester_check_rtcp(marie,pauline); linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline); @@ -331,9 +360,9 @@ static void call_failed_because_of_codecs(void) { linphone_call_ref(out_call); CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallOutgoingInit,1)); - /*flexisip will retain the 415 until the "urgent reply" timeout arrives.*/ + /*flexisip will retain the 488 until the "urgent reply" timeout arrives.*/ CU_ASSERT_TRUE(wait_for_until(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallError,1,6000)); - CU_ASSERT_EQUAL(linphone_call_get_reason(out_call),LinphoneReasonMedia); + CU_ASSERT_EQUAL(linphone_call_get_reason(out_call),LinphoneReasonNotAcceptable); CU_ASSERT_EQUAL(marie->stat.number_of_LinphoneCallIncomingReceived,0); linphone_call_unref(out_call); @@ -349,7 +378,7 @@ static void call_with_dns_time_out(void) { linphone_core_set_sip_transports(marie->lc,&transport); linphone_core_iterate(marie->lc); sal_set_dns_timeout(marie->lc->sal,0); - linphone_core_invite(marie->lc,"sip:toto@toto.com"); + linphone_core_invite(marie->lc,"\"t\x8et\x8e\" sip:toto@toto.com"); /*just to use non ascii values*/ for(i=0;i<10;i++){ ms_usleep(200000); linphone_core_iterate(marie->lc); @@ -472,9 +501,11 @@ static void call_terminated_by_caller(void) { } static void call_with_no_sdp(void) { - LinphoneCoreManager* marie = linphone_core_manager_new( "marie_no_sdp_rc"); + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); + linphone_core_enable_sdp_200_ack(marie->lc,TRUE); + CU_ASSERT_TRUE(call(marie,pauline)); /*just to sleep*/ linphone_core_terminate_all_calls(pauline->lc); @@ -508,28 +539,52 @@ static bool_t check_ice(LinphoneCoreManager* caller, LinphoneCoreManager* callee } ms_usleep(50000); } + + /*make sure encryption mode are preserved*/ + if (c1) { + const LinphoneCallParams* call_param = linphone_call_get_current_params(c1); + CU_ASSERT_EQUAL(linphone_call_params_get_media_encryption(call_param),linphone_core_get_media_encryption(caller->lc)); + } + if (c2) { + const LinphoneCallParams* call_param = linphone_call_get_current_params(c2); + CU_ASSERT_EQUAL(linphone_call_params_get_media_encryption(call_param),linphone_core_get_media_encryption(callee->lc)); + } + return success; } -static void call_with_ice(void) { +static void _call_with_ice(bool_t caller_with_ice, bool_t callee_with_ice, bool_t random_ports) { LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); - linphone_core_set_firewall_policy(marie->lc,LinphonePolicyUseIce); - linphone_core_set_stun_server(marie->lc,"stun.linphone.org"); - linphone_core_set_firewall_policy(pauline->lc,LinphonePolicyUseIce); - linphone_core_set_stun_server(pauline->lc,"stun.linphone.org"); + if (callee_with_ice){ + linphone_core_set_firewall_policy(marie->lc,LinphonePolicyUseIce); + linphone_core_set_stun_server(marie->lc,"stun.linphone.org"); + } + if (caller_with_ice){ + linphone_core_set_firewall_policy(pauline->lc,LinphonePolicyUseIce); + linphone_core_set_stun_server(pauline->lc,"stun.linphone.org"); + } + + if (random_ports){ + linphone_core_set_audio_port(marie->lc,-1); + linphone_core_set_video_port(marie->lc,-1); + linphone_core_set_audio_port(pauline->lc,-1); + linphone_core_set_video_port(pauline->lc,-1); + } CU_ASSERT_TRUE(call(pauline,marie)); - CU_ASSERT_TRUE(check_ice(pauline,marie,LinphoneIceStateHostConnection)); - /*wait for the ICE reINVITE to complete*/ - CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallStreamsRunning,2)); - CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneCallStreamsRunning,2)); + if (callee_with_ice && caller_with_ice) { + check_ice(pauline,marie,LinphoneIceStateHostConnection); + /*wait for the ICE reINVITE to complete*/ + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallStreamsRunning,2)); + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneCallStreamsRunning,2)); - check_rtcp(marie,pauline); - - + CU_ASSERT_TRUE(check_ice(pauline,marie,LinphoneIceStateHostConnection)); + } + + liblinphone_tester_check_rtcp(marie,pauline); /*then close the call*/ linphone_core_terminate_all_calls(pauline->lc); CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallEnd,1)); @@ -539,13 +594,34 @@ static void call_with_ice(void) { linphone_core_manager_destroy(pauline); } +static void call_with_ice(void){ + _call_with_ice(TRUE,TRUE,FALSE); +} + +static void call_with_ice_random_ports(void){ + _call_with_ice(TRUE,TRUE,TRUE); +} + +static void ice_to_not_ice(void){ + _call_with_ice(TRUE,FALSE,FALSE); +} + +static void not_ice_to_ice(void){ + _call_with_ice(FALSE,TRUE,FALSE); +} + static void call_with_custom_headers(void) { LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); - LinphoneCall *c1,*c2; + LinphoneCall *call_marie,*call_pauline; LinphoneCallParams *params; - const LinphoneCallParams *remote_params; + const LinphoneCallParams *marie_remote_params; const char *hvalue; + char *pauline_remote_contact_header, + *pauline_remote_contact, + *marie_remote_contact, + *marie_remote_contact_header; + char* tmp=linphone_address_as_string_uri_only(marie->identity); char tmp2[256]; snprintf(tmp2,sizeof(tmp2),"%s?uriHeader=myUriHeader",tmp); @@ -561,22 +637,41 @@ static void call_with_custom_headers(void) { CU_ASSERT_TRUE(call_with_caller_params(pauline,marie,params)); linphone_call_params_destroy(params); - c1=linphone_core_get_current_call(marie->lc); - c2=linphone_core_get_current_call(pauline->lc); + call_marie=linphone_core_get_current_call(marie->lc); + call_pauline=linphone_core_get_current_call(pauline->lc); - CU_ASSERT_PTR_NOT_NULL(c1); - CU_ASSERT_PTR_NOT_NULL(c2); + CU_ASSERT_PTR_NOT_NULL(call_marie); + CU_ASSERT_PTR_NOT_NULL(call_pauline); - remote_params=linphone_call_get_remote_params(c1); - hvalue=linphone_call_params_get_custom_header(remote_params,"Weather"); + marie_remote_params=linphone_call_get_remote_params(call_marie); + hvalue=linphone_call_params_get_custom_header(marie_remote_params,"Weather"); CU_ASSERT_PTR_NOT_NULL(hvalue); CU_ASSERT_STRING_EQUAL(hvalue,"bad"); - hvalue=linphone_call_params_get_custom_header(remote_params,"uriHeader"); + hvalue=linphone_call_params_get_custom_header(marie_remote_params,"uriHeader"); CU_ASSERT_PTR_NOT_NULL(hvalue); CU_ASSERT_STRING_EQUAL(hvalue,"myUriHeader"); - CU_ASSERT_PTR_NOT_NULL(linphone_call_get_remote_contact(c1)); - + + // FIXME: we have to strdup because successive calls to get_remote_params erase the returned const char*!! + pauline_remote_contact = ms_strdup(linphone_call_get_remote_contact(call_pauline)); + pauline_remote_contact_header = ms_strdup(linphone_call_params_get_custom_header(linphone_call_get_remote_params(call_pauline), "Contact")); + + marie_remote_contact = ms_strdup(linphone_call_get_remote_contact(call_marie)); + marie_remote_contact_header = ms_strdup(linphone_call_params_get_custom_header(marie_remote_params, "Contact")); + + CU_ASSERT_PTR_NOT_NULL(pauline_remote_contact); + CU_ASSERT_PTR_NOT_NULL(pauline_remote_contact_header); + CU_ASSERT_PTR_NOT_NULL(marie_remote_contact); + CU_ASSERT_PTR_NOT_NULL(marie_remote_contact_header); + CU_ASSERT_STRING_EQUAL(pauline_remote_contact,pauline_remote_contact_header); + CU_ASSERT_STRING_EQUAL(marie_remote_contact,marie_remote_contact_header); + + ms_free(pauline_remote_contact); + ms_free(pauline_remote_contact_header); + ms_free(marie_remote_contact); + ms_free(marie_remote_contact_header); + + /*just to sleep*/ linphone_core_terminate_all_calls(pauline->lc); CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallEnd,1)); @@ -656,6 +751,15 @@ static bool_t add_video(LinphoneCoreManager* caller,LinphoneCoreManager* callee) LinphoneVideoPolicy caller_policy; LinphoneCallParams* callee_params; LinphoneCall* call_obj; + stats initial_caller_stat=caller->stat; + stats initial_callee_stat=callee->stat; + + if (linphone_call_get_state(linphone_core_get_current_call(callee->lc)) != LinphoneCallStreamsRunning + || linphone_call_get_state(linphone_core_get_current_call(caller->lc)) != LinphoneCallStreamsRunning ) { + ms_warning("bad state for adding video"); + return FALSE; + } + caller_policy.automatically_accept=TRUE; caller_policy.automatically_initiate=TRUE; linphone_core_enable_video_capture(callee->lc, TRUE); @@ -663,29 +767,45 @@ static bool_t add_video(LinphoneCoreManager* caller,LinphoneCoreManager* callee) linphone_core_enable_video_capture(caller->lc, TRUE); linphone_core_enable_video_display(caller->lc, FALSE); linphone_core_set_video_policy(caller->lc,&caller_policy); - stats initial_caller_stat=caller->stat; - stats initial_callee_stat=callee->stat; - call_obj = linphone_core_get_current_call(callee->lc); - callee_params = linphone_call_params_copy(linphone_call_get_current_params(call_obj)); - /*add video*/ - linphone_call_params_enable_video(callee_params,TRUE); - linphone_core_update_call(callee->lc,call_obj,callee_params); - CU_ASSERT_TRUE(wait_for(caller->lc,callee->lc,&caller->stat.number_of_LinphoneCallUpdatedByRemote,initial_caller_stat.number_of_LinphoneCallUpdatedByRemote+1)); - CU_ASSERT_TRUE(wait_for(caller->lc,callee->lc,&callee->stat.number_of_LinphoneCallUpdating,initial_callee_stat.number_of_LinphoneCallUpdating+1)); - CU_ASSERT_TRUE(wait_for(caller->lc,callee->lc,&callee->stat.number_of_LinphoneCallStreamsRunning,initial_callee_stat.number_of_LinphoneCallStreamsRunning+1)); - CU_ASSERT_TRUE(wait_for(caller->lc,callee->lc,&caller->stat.number_of_LinphoneCallStreamsRunning,initial_caller_stat.number_of_LinphoneCallStreamsRunning+1)); - CU_ASSERT_TRUE(linphone_call_params_video_enabled(linphone_call_get_current_params(linphone_core_get_current_call(callee->lc)))); - CU_ASSERT_TRUE(linphone_call_params_video_enabled(linphone_call_get_current_params(linphone_core_get_current_call(caller->lc)))); + if ((call_obj = linphone_core_get_current_call(callee->lc))) { + callee_params = linphone_call_params_copy(linphone_call_get_current_params(call_obj)); + /*add video*/ + linphone_call_params_enable_video(callee_params,TRUE); + linphone_core_update_call(callee->lc,call_obj,callee_params); - linphone_call_set_next_video_frame_decoded_callback(call_obj,linphone_call_cb,callee->lc); - /*send vfu*/ - linphone_call_send_vfu_request(call_obj); - return wait_for(caller->lc,callee->lc,&callee->stat.number_of_IframeDecoded,initial_callee_stat.number_of_IframeDecoded+1); + CU_ASSERT_TRUE(wait_for(caller->lc,callee->lc,&caller->stat.number_of_LinphoneCallUpdatedByRemote,initial_caller_stat.number_of_LinphoneCallUpdatedByRemote+1)); + CU_ASSERT_TRUE(wait_for(caller->lc,callee->lc,&callee->stat.number_of_LinphoneCallUpdating,initial_callee_stat.number_of_LinphoneCallUpdating+1)); + CU_ASSERT_TRUE(wait_for(caller->lc,callee->lc,&callee->stat.number_of_LinphoneCallStreamsRunning,initial_callee_stat.number_of_LinphoneCallStreamsRunning+1)); + CU_ASSERT_TRUE(wait_for(caller->lc,callee->lc,&caller->stat.number_of_LinphoneCallStreamsRunning,initial_caller_stat.number_of_LinphoneCallStreamsRunning+1)); + CU_ASSERT_TRUE(linphone_call_params_video_enabled(linphone_call_get_current_params(linphone_core_get_current_call(callee->lc)))); + CU_ASSERT_TRUE(linphone_call_params_video_enabled(linphone_call_get_current_params(linphone_core_get_current_call(caller->lc)))); + if (linphone_core_get_media_encryption(caller->lc) != LinphoneMediaEncryptionNone + && linphone_core_get_media_encryption(callee->lc) != LinphoneMediaEncryptionNone) { + /*wait for encryption to be on, in case of zrtp, it can take a few seconds*/ + if (linphone_core_get_media_encryption(caller->lc) == LinphoneMediaEncryptionZRTP) + wait_for(callee->lc,caller->lc,&caller->stat.number_of_LinphoneCallEncryptedOn,initial_caller_stat.number_of_LinphoneCallEncryptedOn+1); + if (linphone_core_get_media_encryption(callee->lc) == LinphoneMediaEncryptionZRTP) + wait_for(callee->lc,caller->lc,&callee->stat.number_of_LinphoneCallEncryptedOn,initial_callee_stat.number_of_LinphoneCallEncryptedOn+1); + + { + const LinphoneCallParams* call_param = linphone_call_get_current_params(linphone_core_get_current_call(callee->lc)); + CU_ASSERT_EQUAL(linphone_call_params_get_media_encryption(call_param),linphone_core_get_media_encryption(caller->lc)); + call_param = linphone_call_get_current_params(linphone_core_get_current_call(caller->lc)); + CU_ASSERT_EQUAL(linphone_call_params_get_media_encryption(call_param),linphone_core_get_media_encryption(caller->lc)); + } + } + + linphone_call_set_next_video_frame_decoded_callback(call_obj,linphone_call_cb,callee->lc); + /*send vfu*/ + linphone_call_send_vfu_request(call_obj); + return wait_for(caller->lc,callee->lc,&callee->stat.number_of_IframeDecoded,initial_callee_stat.number_of_IframeDecoded+1); + } else return 0; } + static void call_with_video_added(void) { LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); @@ -701,7 +821,26 @@ static void call_with_video_added(void) { linphone_core_manager_destroy(pauline); } +static void call_with_video_added_random_ports(void) { + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); + + linphone_core_set_audio_port(marie->lc,-1); + linphone_core_set_video_port(marie->lc,-1); + linphone_core_set_audio_port(pauline->lc,-1); + linphone_core_set_video_port(pauline->lc,-1); + + CU_ASSERT_TRUE(call(pauline,marie)); + CU_ASSERT_TRUE(add_video(pauline,marie)); + /*just to sleep*/ + linphone_core_terminate_all_calls(pauline->lc); + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallEnd,1)); + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneCallEnd,1)); + + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(pauline); +} static void call_with_declined_video(void) { LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); @@ -757,38 +896,47 @@ static void video_call(void) { marie_call=linphone_core_get_current_call(marie->lc); pauline_call=linphone_core_get_current_call(pauline->lc); - CU_ASSERT_TRUE(linphone_call_log_video_enabled(linphone_call_get_call_log(marie_call))); - CU_ASSERT_TRUE(linphone_call_log_video_enabled(linphone_call_get_call_log(pauline_call))); + if (marie_call && pauline_call ) { + CU_ASSERT_TRUE(linphone_call_log_video_enabled(linphone_call_get_call_log(marie_call))); + CU_ASSERT_TRUE(linphone_call_log_video_enabled(linphone_call_get_call_log(pauline_call))); - /*check video path*/ - linphone_call_set_next_video_frame_decoded_callback(marie_call,linphone_call_cb,marie->lc); - linphone_call_send_vfu_request(marie_call); - CU_ASSERT_TRUE( wait_for(marie->lc,pauline->lc,&marie->stat.number_of_IframeDecoded,1)); + /*check video path*/ + linphone_call_set_next_video_frame_decoded_callback(marie_call,linphone_call_cb,marie->lc); + linphone_call_send_vfu_request(marie_call); + CU_ASSERT_TRUE( wait_for(marie->lc,pauline->lc,&marie->stat.number_of_IframeDecoded,1)); - check_rtcp(marie,pauline); + liblinphone_tester_check_rtcp(marie,pauline); - linphone_core_terminate_all_calls(pauline->lc); - CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallEnd,1)); - CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneCallEnd,1)); + linphone_core_terminate_all_calls(pauline->lc); + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallEnd,1)); + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneCallEnd,1)); + } linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline); } #endif /*VIDEO_ENABLED*/ -static void call_with_media_relay(void) { +static void _call_with_media_relay(bool_t random_ports) { LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); linphone_core_set_user_agent(marie->lc,"Natted Linphone",NULL); linphone_core_set_user_agent(pauline->lc,"Natted Linphone",NULL); + + if (random_ports){ + linphone_core_set_audio_port(marie->lc,-1); + linphone_core_set_video_port(marie->lc,-1); + linphone_core_set_audio_port(pauline->lc,-1); + linphone_core_set_video_port(pauline->lc,-1); + } + CU_ASSERT_TRUE(call(pauline,marie)); - check_rtcp(pauline,marie); - + liblinphone_tester_check_rtcp(pauline,marie); + #ifdef VIDEO_ENABLED CU_ASSERT_TRUE(add_video(pauline,marie)); - check_rtcp(pauline,marie); + liblinphone_tester_check_rtcp(pauline,marie); #endif - /*just to sleep*/ linphone_core_terminate_all_calls(pauline->lc); CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallEnd,1)); @@ -796,7 +944,14 @@ static void call_with_media_relay(void) { linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline); +} +static void call_with_media_relay(void) { + _call_with_media_relay(FALSE); +} + +static void call_with_media_relay_random_ports(void) { + _call_with_media_relay(TRUE); } static void call_with_privacy(void) { @@ -854,8 +1009,150 @@ static void call_with_privacy(void) { linphone_core_manager_destroy(pauline); } +/*this ones makes call with privacy without previous registration*/ +static void call_with_privacy2(void) { + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* pauline = linphone_core_manager_new2( "pauline_rc",FALSE); + LinphoneCall *c1,*c2; + LinphoneCallParams *params; + LinphoneProxyConfig* pauline_proxy; + params=linphone_core_create_default_call_parameters(pauline->lc); + linphone_call_params_set_privacy(params,LinphonePrivacyId); + + linphone_core_get_default_proxy(pauline->lc,&pauline_proxy); + linphone_proxy_config_edit(pauline_proxy); + linphone_proxy_config_enable_register(pauline_proxy,FALSE); + linphone_proxy_config_done(pauline_proxy); + + CU_ASSERT_TRUE(call_with_caller_params(pauline,marie,params)); + linphone_call_params_destroy(params); + + c1=linphone_core_get_current_call(pauline->lc); + c2=linphone_core_get_current_call(marie->lc); + + CU_ASSERT_PTR_NOT_NULL(c1); + CU_ASSERT_PTR_NOT_NULL(c2); + + /*make sure local identity is unchanged*/ + CU_ASSERT_TRUE(linphone_address_weak_equal(linphone_call_log_get_from(linphone_call_get_call_log(c1)),pauline->identity)); + + /*make sure remote identity is hidden*/ + CU_ASSERT_FALSE(linphone_address_weak_equal(linphone_call_get_remote_address(c2),pauline->identity)); + + CU_ASSERT_EQUAL(linphone_call_params_get_privacy(linphone_call_get_current_params(c2)),LinphonePrivacyId); + + /*just to sleep*/ + linphone_core_terminate_all_calls(pauline->lc); + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallEnd,1)); + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneCallEnd,1)); + + /*test proxy config privacy*/ + linphone_proxy_config_set_privacy(pauline_proxy,LinphonePrivacyId); + + CU_ASSERT_TRUE(call(pauline,marie)); + c1=linphone_core_get_current_call(pauline->lc); + c2=linphone_core_get_current_call(marie->lc); + + CU_ASSERT_PTR_NOT_NULL(c1); + CU_ASSERT_PTR_NOT_NULL(c2); + + /*make sure remote identity is hidden*/ + CU_ASSERT_FALSE(linphone_address_weak_equal(linphone_call_get_remote_address(c2),pauline->identity)); + + CU_ASSERT_EQUAL(linphone_call_params_get_privacy(linphone_call_get_current_params(c2)),LinphonePrivacyId); + /*just to sleep*/ + linphone_core_terminate_all_calls(pauline->lc); + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallEnd,2)); + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneCallEnd,2)); + + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(pauline); +} + +static void call_waiting_indication_with_param(bool_t enable_caller_privacy) { + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); + LinphoneCoreManager* laure = linphone_core_manager_new( "laure_rc"); + char hellopath[256]; + MSList *iterator; + LinphoneCall* pauline_called_by_marie; + LinphoneCall* pauline_called_by_laure=NULL; + LinphoneCallParams *laure_params=linphone_core_create_default_call_parameters(laure->lc); + LinphoneCallParams *marie_params=linphone_core_create_default_call_parameters(marie->lc); + + if (enable_caller_privacy) + linphone_call_params_set_privacy(marie_params,LinphonePrivacyId); + + MSList* lcs=ms_list_append(NULL,marie->lc); + lcs=ms_list_append(lcs,pauline->lc); + lcs=ms_list_append(lcs,laure->lc); + + CU_ASSERT_TRUE(call_with_caller_params(marie,pauline,marie_params)); + pauline_called_by_marie=linphone_core_get_current_call(pauline->lc); + /*use playfile for callee to avoid locking on capture card*/ + linphone_core_use_files (laure->lc,TRUE); + snprintf(hellopath,sizeof(hellopath), "%s/sounds/hello8000.wav", liblinphone_tester_file_prefix); + linphone_core_set_play_file(laure->lc,hellopath); + if (enable_caller_privacy) + linphone_call_params_set_privacy(laure_params,LinphonePrivacyId); + + CU_ASSERT_PTR_NOT_NULL(linphone_core_invite_address_with_params(laure->lc,pauline->identity,laure_params)); + + CU_ASSERT_TRUE(wait_for(laure->lc + ,pauline->lc + ,&pauline->stat.number_of_LinphoneCallIncomingReceived + ,2)); + + CU_ASSERT_EQUAL(laure->stat.number_of_LinphoneCallOutgoingProgress,1); + + + CU_ASSERT_TRUE(wait_for(laure->lc + ,pauline->lc + ,&laure->stat.number_of_LinphoneCallOutgoingRinging + ,1)); + + for (iterator=(MSList *)linphone_core_get_calls(pauline->lc);iterator!=NULL;iterator=iterator->next) { + LinphoneCall *call=(LinphoneCall *)iterator->data; + if (call != pauline_called_by_marie) { + /*fine, this is the call waiting*/ + linphone_core_accept_call(pauline->lc,pauline_called_by_laure=call); + } + } + + CU_ASSERT_TRUE(wait_for(laure->lc + ,pauline->lc + ,&laure->stat.number_of_LinphoneCallConnected + ,1)); + + CU_ASSERT_TRUE(wait_for(pauline->lc + ,marie->lc + ,&marie->stat.number_of_LinphoneCallPausedByRemote + ,1)); + + if (pauline_called_by_laure && enable_caller_privacy ) + CU_ASSERT_EQUAL(linphone_call_params_get_privacy(linphone_call_get_current_params(pauline_called_by_laure)),LinphonePrivacyId); + + linphone_core_terminate_all_calls(pauline->lc); + + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallEnd,1,2000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallEnd,1,2000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&laure->stat.number_of_LinphoneCallEnd,1,2000)); + + + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(pauline); + linphone_core_manager_destroy(laure); + ms_list_free(lcs); +} +static void call_waiting_indication(void) { + call_waiting_indication_with_param(FALSE); +} + +static void call_waiting_indication_with_privacy(void) { + call_waiting_indication_with_param(TRUE); +} static void simple_conference(void) { LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); @@ -916,29 +1213,18 @@ static void simple_conference(void) { } -static void srtp_call(void) { - LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); - LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); - if (linphone_core_media_encryption_supported(marie->lc,LinphoneMediaEncryptionSRTP)) { - linphone_core_set_media_encryption(marie->lc,LinphoneMediaEncryptionSRTP); - linphone_core_set_media_encryption(pauline->lc,LinphoneMediaEncryptionSRTP); - - CU_ASSERT_TRUE(call(pauline,marie)); - - CU_ASSERT_EQUAL(linphone_core_get_media_encryption(marie->lc),LinphoneMediaEncryptionSRTP); - CU_ASSERT_EQUAL(linphone_core_get_media_encryption(pauline->lc),LinphoneMediaEncryptionSRTP); - - /*just to sleep*/ - linphone_core_terminate_all_calls(marie->lc); - CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallEnd,1)); - CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneCallEnd,1)); - } else { - ms_warning ("not tested because srtp not available"); - } - linphone_core_manager_destroy(marie); - linphone_core_manager_destroy(pauline); +static void srtp_call() { + call_base(LinphoneMediaEncryptionSRTP,FALSE,FALSE,LinphonePolicyNoFirewall); } + +static void zrtp_call() { + call_base(LinphoneMediaEncryptionZRTP,FALSE,FALSE,LinphonePolicyNoFirewall); +} +static void zrtp_video_call() { + call_base(LinphoneMediaEncryptionZRTP,TRUE,FALSE,LinphonePolicyNoFirewall); +} + static void call_with_declined_srtp(void) { LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); @@ -957,43 +1243,72 @@ static void call_with_declined_srtp(void) { linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline); } -#ifdef VIDEO_ENABLED -static void srtp_video_ice_call(void) { - int i=0; -#else -static void srtp_ice_call(void) { -#endif + +static void call_base(LinphoneMediaEncryption mode, bool_t enable_video,bool_t enable_relay,LinphoneFirewallPolicy policy) { LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); + if (enable_relay) { + linphone_core_set_user_agent(marie->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(pauline->lc,"Natted Linphone",NULL); + } + if (linphone_core_media_encryption_supported(marie->lc,mode)) { + linphone_core_set_media_encryption(marie->lc,mode); + linphone_core_set_media_encryption(pauline->lc,mode); - if (linphone_core_media_encryption_supported(marie->lc,LinphoneMediaEncryptionSRTP)) { - linphone_core_set_media_encryption(marie->lc,LinphoneMediaEncryptionSRTP); - linphone_core_set_media_encryption(pauline->lc,LinphoneMediaEncryptionSRTP); - - linphone_core_set_firewall_policy(marie->lc,LinphonePolicyUseIce); + linphone_core_set_firewall_policy(marie->lc,policy); linphone_core_set_stun_server(marie->lc,"stun.linphone.org"); - linphone_core_set_firewall_policy(pauline->lc,LinphonePolicyUseIce); + linphone_core_set_firewall_policy(pauline->lc,policy); linphone_core_set_stun_server(pauline->lc,"stun.linphone.org"); CU_ASSERT_TRUE(call(pauline,marie)); + if (linphone_core_get_media_encryption(pauline->lc) == LinphoneMediaEncryptionZRTP + && linphone_core_get_media_encryption(pauline->lc) == LinphoneMediaEncryptionZRTP) { + /*wait for SAS*/ + int i; + for (i=0;i<10;i++) { + if (linphone_call_get_authentication_token(linphone_core_get_current_call(pauline->lc)) + && + linphone_call_get_authentication_token(linphone_core_get_current_call(marie->lc))) { + /*check SAS*/ + CU_ASSERT_STRING_EQUAL(linphone_call_get_authentication_token(linphone_core_get_current_call(pauline->lc)) + ,linphone_call_get_authentication_token(linphone_core_get_current_call(marie->lc))); + liblinphone_tester_check_rtcp(pauline,marie); + break; + } + linphone_core_iterate(marie->lc); + linphone_core_iterate(pauline->lc); + ms_usleep(200000); + } - CU_ASSERT_TRUE(check_ice(pauline,marie,LinphoneIceStateHostConnection)); -#ifdef VIDEO_ENABLED - for (i=0;i<100;i++) { /*fixme to workaround a crash*/ - ms_usleep(20000); - linphone_core_iterate(marie->lc); - linphone_core_iterate(pauline->lc); } - add_video(pauline,marie); + if (policy == LinphonePolicyUseIce) + CU_ASSERT_TRUE(check_ice(pauline,marie,LinphoneIceStateHostConnection)); +#ifdef VIDEO_ENABLED + if (enable_video) { + int i=0; + if (linphone_core_video_supported(marie->lc)) { + for (i=0;i<100;i++) { /*fixme to workaround a crash*/ + ms_usleep(20000); + linphone_core_iterate(marie->lc); + linphone_core_iterate(pauline->lc); + } - CU_ASSERT_TRUE(check_ice(pauline,marie,LinphoneIceStateHostConnection)); - check_rtcp(marie,pauline); - /*wait for ice to found the direct path*/ - CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_IframeDecoded,1)); + add_video(pauline,marie); + if (policy == LinphonePolicyUseIce) + CU_ASSERT_TRUE(check_ice(pauline,marie,LinphoneIceStateHostConnection)); + + liblinphone_tester_check_rtcp(marie,pauline); + /*wait for ice to found the direct path*/ + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_IframeDecoded,1)); + } else { + ms_warning ("not tested because video not available"); + } + + } #endif - + /*just to sleep*/ linphone_core_terminate_all_calls(marie->lc); @@ -1006,6 +1321,25 @@ static void srtp_ice_call(void) { linphone_core_manager_destroy(pauline); } +#ifdef VIDEO_ENABLED +static void srtp_video_ice_call(void) { + call_base(LinphoneMediaEncryptionSRTP,TRUE,FALSE,LinphonePolicyUseIce); +} +static void zrtp_video_ice_call(void) { + call_base(LinphoneMediaEncryptionZRTP,TRUE,FALSE,LinphonePolicyUseIce); +} +#endif + +static void srtp_ice_call(void) { + call_base(LinphoneMediaEncryptionSRTP,FALSE,FALSE,LinphonePolicyUseIce); +} + +static void zrtp_ice_call(void) { + call_base(LinphoneMediaEncryptionZRTP,FALSE,FALSE,LinphonePolicyUseIce); +} +static void zrtp_ice_call_with_relay(void) { + call_base(LinphoneMediaEncryptionZRTP,FALSE,TRUE,LinphonePolicyUseIce); +} static void early_media_call(void) { LinphoneCoreManager* marie = linphone_core_manager_new( "marie_early_rc"); @@ -1015,100 +1349,163 @@ static void early_media_call(void) { CU_ASSERT_EQUAL(marie->stat.number_of_LinphoneCallIncomingEarlyMedia,1); CU_ASSERT_EQUAL(pauline->stat.number_of_LinphoneCallOutgoingEarlyMedia,1); + + wait_for_until(pauline->lc,marie->lc,NULL,0,1000); + + /*added because a bug related to early-media caused the Connected state to be reached two times*/ + CU_ASSERT_EQUAL(marie->stat.number_of_LinphoneCallConnected,1); + /*just to sleep*/ linphone_core_terminate_all_calls(marie->lc); CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallEnd,1)); CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneCallEnd,1)); + + linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline); } -static void early_media_call_forking(void) { - LinphoneCoreManager* marie1 = linphone_core_manager_new("marie_early_rc"); - LinphoneCoreManager* marie2 = linphone_core_manager_new("marie_early_rc"); +static void early_media_call_with_ringing(void){ + char hellopath[256]; + LinphoneCoreManager* marie = linphone_core_manager_new("marie_rc"); LinphoneCoreManager* pauline = linphone_core_manager_new("pauline_rc"); - MSList *lcs=NULL; - LinphoneCallParams *params=linphone_core_create_default_call_parameters(pauline->lc); - LinphoneVideoPolicy pol; - LinphoneCall *marie1_call; - LinphoneCall *marie2_call; - LinphoneCall *pauline_call; - int dummy=0; - char ringbackpath[256]; - snprintf(ringbackpath,sizeof(ringbackpath), "%s/sounds/hello8000.wav" /*use hello because rinback is too short*/, liblinphone_tester_file_prefix); - - pol.automatically_accept=1; - pol.automatically_initiate=1; - - linphone_core_set_user_agent(marie1->lc,"Natted Linphone",NULL); - linphone_core_set_user_agent(marie2->lc,"Natted Linphone",NULL); - linphone_core_set_user_agent(pauline->lc,"Natted Linphone",NULL); - - linphone_core_enable_video(pauline->lc,TRUE,TRUE); - - linphone_core_enable_video(marie1->lc,TRUE,TRUE); - linphone_core_set_video_policy(marie1->lc,&pol); - /*use playfile for marie1 to avoid locking on capture card*/ - linphone_core_use_files (marie1->lc,TRUE); - linphone_core_set_play_file(marie1->lc,ringbackpath); + MSList* lcs = NULL; + LinphoneCall* marie_call; + lcs = ms_list_append(lcs,marie->lc); + lcs = ms_list_append(lcs,pauline->lc); + /* + Marie calls Pauline, and after the call has rung, transitions to an early_media session + */ - linphone_core_enable_video(marie2->lc,TRUE,TRUE); - linphone_core_set_video_policy(marie2->lc,&pol); - linphone_core_set_audio_port_range(marie2->lc,40200,40300); - linphone_core_set_video_port_range(marie2->lc,40400,40500); - /*use playfile for marie2 to avoid locking on capture card*/ - linphone_core_use_files (marie2->lc,TRUE); - linphone_core_set_play_file(marie2->lc,ringbackpath); - - - lcs=ms_list_append(lcs,marie1->lc); - lcs=ms_list_append(lcs,marie2->lc); - lcs=ms_list_append(lcs,pauline->lc); + /*use playfile for callee to avoid locking on capture card*/ + linphone_core_use_files (pauline->lc,TRUE); + snprintf(hellopath,sizeof(hellopath), "%s/sounds/hello8000.wav", liblinphone_tester_file_prefix); + linphone_core_set_play_file(pauline->lc,hellopath); - linphone_call_params_enable_early_media_sending(params,TRUE); - linphone_call_params_enable_video(params,TRUE); - - linphone_core_invite_address_with_params(pauline->lc,marie1->identity,params); - linphone_call_params_destroy(params); + marie_call = linphone_core_invite_address(marie->lc, pauline->identity); + + CU_ASSERT_TRUE(wait_for_list(lcs, &pauline->stat.number_of_LinphoneCallIncomingReceived,1,3000)); + CU_ASSERT_TRUE(wait_for_list(lcs, &marie->stat.number_of_LinphoneCallOutgoingRinging,1,1000)); + + + /* send a 183 to initiate the early media */ + + linphone_core_accept_early_media(pauline->lc, linphone_core_get_current_call(pauline->lc)); + + CU_ASSERT_TRUE( wait_for_list(lcs, &pauline->stat.number_of_LinphoneCallIncomingEarlyMedia,1,2000) ); + CU_ASSERT_TRUE( wait_for_list(lcs, &marie->stat.number_of_LinphoneCallOutgoingEarlyMedia,1,2000) ); + + liblinphone_tester_check_rtcp(marie, pauline); + + linphone_core_accept_call(pauline->lc, linphone_core_get_current_call(pauline->lc)); + + CU_ASSERT_TRUE(wait_for_list(lcs, &marie->stat.number_of_LinphoneCallStreamsRunning, 1,1000)); + + CU_ASSERT_EQUAL(marie_call, linphone_core_get_current_call(marie->lc)); + + liblinphone_tester_check_rtcp(marie, pauline); - CU_ASSERT_TRUE(wait_for_list(lcs, &marie1->stat.number_of_LinphoneCallIncomingEarlyMedia,1,1000)); - CU_ASSERT_TRUE(wait_for_list(lcs, &marie2->stat.number_of_LinphoneCallIncomingEarlyMedia,1,1000)); - CU_ASSERT_TRUE(wait_for_list(lcs, &pauline->stat.number_of_LinphoneCallOutgoingEarlyMedia,1,1000)); - - pauline_call=linphone_core_get_current_call(pauline->lc); - marie1_call=linphone_core_get_current_call(marie1->lc); - marie2_call=linphone_core_get_current_call(marie2->lc); - - /*wait a bit that streams are established*/ - wait_for_list(lcs,&dummy,1,3000); - CU_ASSERT_TRUE(linphone_call_get_audio_stats(pauline_call)->download_bandwidth>70); - CU_ASSERT_TRUE(linphone_call_get_audio_stats(marie1_call)->download_bandwidth>70); - CU_ASSERT_TRUE(linphone_call_get_audio_stats(marie2_call)->download_bandwidth>70); - - linphone_core_accept_call(marie1->lc,linphone_core_get_current_call(marie1->lc)); - CU_ASSERT_TRUE(wait_for_list(lcs,&marie1->stat.number_of_LinphoneCallStreamsRunning,1,1000)); - CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallStreamsRunning,1,1000)); - - /*marie2 should get her call terminated*/ - CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneCallEnd,1,1000)); - - /*wait a bit that streams are established*/ - wait_for_list(lcs,&dummy,1,1000); - CU_ASSERT_TRUE(linphone_call_get_audio_stats(pauline_call)->download_bandwidth>71); - CU_ASSERT_TRUE(linphone_call_get_audio_stats(marie1_call)->download_bandwidth>71); - linphone_core_terminate_all_calls(pauline->lc); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallEnd,1,1000)); - CU_ASSERT_TRUE(wait_for_list(lcs,&marie1->stat.number_of_LinphoneCallEnd,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallEnd,1,1000)); + ms_list_free(lcs); - linphone_core_manager_destroy(marie1); - linphone_core_manager_destroy(marie2); + + linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline); } +static void early_media_call_with_update_base(bool_t media_change){ + char hellopath[256]; + LinphoneCoreManager* marie = linphone_core_manager_new("marie_rc"); + LinphoneCoreManager* pauline = linphone_core_manager_new("pauline_rc"); + MSList* lcs = NULL; + LinphoneCall *marie_call, *pauline_call; + LinphoneCallParams *pauline_params; + + lcs = ms_list_append(lcs,marie->lc); + lcs = ms_list_append(lcs,pauline->lc); + if (media_change) { + disable_all_codecs_except_one(marie->lc,"pcmu"); + disable_all_codecs_except_one(pauline->lc,"pcmu"); + + } + /* + Marie calls Pauline, and after the call has rung, transitions to an early_media session + */ + + /*use playfile for callee to avoid locking on capture card*/ + linphone_core_use_files (pauline->lc,TRUE); + snprintf(hellopath,sizeof(hellopath), "%s/sounds/hello8000.wav", liblinphone_tester_file_prefix); + linphone_core_set_play_file(pauline->lc,hellopath); + + marie_call = linphone_core_invite_address(marie->lc, pauline->identity); + + CU_ASSERT_TRUE(wait_for_list(lcs, &pauline->stat.number_of_LinphoneCallIncomingReceived,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs, &marie->stat.number_of_LinphoneCallOutgoingRinging,1,1000)); + /* send a 183 to initiate the early media */ + linphone_core_accept_early_media(pauline->lc, linphone_core_get_current_call(pauline->lc)); + CU_ASSERT_TRUE( wait_for_list(lcs, &pauline->stat.number_of_LinphoneCallIncomingEarlyMedia,1,2000) ); + CU_ASSERT_TRUE( wait_for_list(lcs, &marie->stat.number_of_LinphoneCallOutgoingEarlyMedia,1,2000) ); + + pauline_call = linphone_core_get_current_call(pauline->lc); + pauline_params = linphone_call_params_copy(linphone_call_get_current_params(pauline_call)); + + if (media_change) { + disable_all_codecs_except_one(marie->lc,"pcma"); + disable_all_codecs_except_one(pauline->lc,"pcma"); + } + #define UPDATED_SESSION_NAME "nouveau nom de session" + + linphone_call_params_set_session_name(pauline_params,UPDATED_SESSION_NAME); + linphone_core_update_call(pauline->lc, pauline_call, pauline_params); + + /*just to wait 2s*/ + liblinphone_tester_check_rtcp(marie, pauline); + wait_for_list(lcs, &marie->stat.number_of_LinphoneCallUpdatedByRemote,100000,2000); + + CU_ASSERT_STRING_EQUAL( linphone_call_params_get_session_name(linphone_call_get_remote_params(marie_call)) + , UPDATED_SESSION_NAME); + + linphone_core_accept_call(pauline->lc, linphone_core_get_current_call(pauline->lc)); + + CU_ASSERT_TRUE(wait_for_list(lcs, &marie->stat.number_of_LinphoneCallStreamsRunning, 1,1000)); + + CU_ASSERT_EQUAL(marie->stat.number_of_LinphoneCallOutgoingEarlyMedia,1); + CU_ASSERT_EQUAL(marie->stat.number_of_LinphoneCallStreamsRunning,1); + CU_ASSERT_EQUAL(marie->stat.number_of_LinphoneCallConnected,1); + + CU_ASSERT_EQUAL(pauline->stat.number_of_LinphoneCallIncomingEarlyMedia,1); + CU_ASSERT_EQUAL(pauline->stat.number_of_LinphoneCallStreamsRunning,1); + CU_ASSERT_EQUAL(pauline->stat.number_of_LinphoneCallConnected,1); + CU_ASSERT_EQUAL(pauline->stat.number_of_LinphoneCallUpdating,1); + + liblinphone_tester_check_rtcp(marie, pauline); + + linphone_core_terminate_all_calls(pauline->lc); + + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallEnd,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallEnd,1,1000)); + + + ms_list_free(lcs); + + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(pauline); +} + +static void early_media_call_with_session_update(void){ + early_media_call_with_update_base(FALSE); +} + +static void early_media_call_with_codec_update(void){ + early_media_call_with_update_base(TRUE); +} + static void simple_call_transfer(void) { LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); @@ -1240,6 +1637,12 @@ static void unattended_call_transfer_with_error(void) { /*the error must be reported back to marie*/ CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneTransferCallError,1,2000)); + /*and pauline should resume the call automatically*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallResuming,1,2000)); + + /*and call should be resumed*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallStreamsRunning,1,2000)); + linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline); ms_list_free(lcs); @@ -1388,6 +1791,101 @@ static void call_established_with_rejected_reinvite(void) { linphone_core_manager_destroy(pauline); } +static void call_established_with_rejected_incoming_reinvite(void) { + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); + + CU_ASSERT_TRUE(call(pauline,marie)); + + /*wait for ACK to be transmitted before going to reINVITE*/ + wait_for_until(marie->lc,pauline->lc,NULL,0,1000); + + linphone_core_enable_payload_type(pauline->lc,linphone_core_find_payload_type(pauline->lc,"PCMU",8000,1),FALSE); /*disable PCMU*/ + linphone_core_enable_payload_type(pauline->lc,linphone_core_find_payload_type(pauline->lc,"PCMA",8000,1),TRUE); /*enable PCMA*/ + + linphone_core_update_call(marie->lc + ,linphone_core_get_current_call(marie->lc) + ,linphone_call_get_current_params(linphone_core_get_current_call(marie->lc))); + + + CU_ASSERT_TRUE(wait_for(marie->lc,pauline->lc,&marie->stat.number_of_LinphoneCallUpdating,1)); + CU_ASSERT_TRUE(wait_for(marie->lc,pauline->lc,&marie->stat.number_of_LinphoneCallStreamsRunning,2)); + + CU_ASSERT_EQUAL(linphone_call_get_reason(linphone_core_get_current_call(marie->lc)),LinphoneReasonNotAcceptable); + + CU_ASSERT_EQUAL(pauline->stat.number_of_LinphoneCallStreamsRunning,1); + check_call_state(pauline,LinphoneCallStreamsRunning); + check_call_state(marie,LinphoneCallStreamsRunning); + + /*just to sleep*/ + linphone_core_terminate_all_calls(pauline->lc); + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallEnd,1)); + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneCallEnd,1)); + + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(pauline); +} + +static void call_redirect(void){ + char hellopath[256]; + LinphoneCoreManager* marie = linphone_core_manager_new("marie_rc"); + LinphoneCoreManager* pauline = linphone_core_manager_new("pauline_rc"); + LinphoneCoreManager* laure = linphone_core_manager_new("laure_rc"); + MSList* lcs = NULL; + char *margaux_url = NULL; + LinphoneCall* marie_call; + + lcs = ms_list_append(lcs,marie->lc); + lcs = ms_list_append(lcs,pauline->lc); + lcs = ms_list_append(lcs,laure->lc); + /* + Marie calls Pauline, which will redirect the call to Laure via a 302 + */ + + /*use playfile for callee to avoid locking on capture card*/ + linphone_core_use_files (pauline->lc,TRUE); + linphone_core_use_files (laure->lc,TRUE); + snprintf(hellopath,sizeof(hellopath), "%s/sounds/hello8000.wav", liblinphone_tester_file_prefix); + linphone_core_set_play_file(pauline->lc,hellopath); + linphone_core_set_play_file(laure->lc,hellopath); + + marie_call = linphone_core_invite_address(marie->lc, pauline->identity); + + CU_ASSERT_TRUE(wait_for_list(lcs, &pauline->stat.number_of_LinphoneCallIncomingReceived,1,1000)); + + margaux_url = linphone_address_as_string(laure->identity); + linphone_core_redirect_call(pauline->lc, linphone_core_get_current_call(pauline->lc), margaux_url); + ms_free(margaux_url); + + /* laure should be ringing now */ + CU_ASSERT_TRUE(wait_for_list(lcs, &laure->stat.number_of_LinphoneCallIncomingReceived,1,6000)); + /* pauline should have ended the call */ + CU_ASSERT_TRUE(wait_for_list(lcs, &pauline->stat.number_of_LinphoneCallEnd,1,1000)); + /* the call should still be ringing on marie's side */ + CU_ASSERT_TRUE(wait_for_list(lcs, &marie->stat.number_of_LinphoneCallOutgoingRinging, 1,1000)); + + linphone_core_accept_call(laure->lc, linphone_core_get_current_call(laure->lc)); + + CU_ASSERT_TRUE(wait_for_list(lcs, &marie->stat.number_of_LinphoneCallStreamsRunning, 1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs, &laure->stat.number_of_LinphoneCallStreamsRunning, 1,1000)); + + CU_ASSERT_EQUAL(marie_call, linphone_core_get_current_call(marie->lc)); + + liblinphone_tester_check_rtcp(marie, laure); + + linphone_core_terminate_all_calls(laure->lc); + + CU_ASSERT_TRUE(wait_for_list(lcs,&laure->stat.number_of_LinphoneCallEnd,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallEnd,1,1000)); + + ms_list_free(lcs); + + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(pauline); + linphone_core_manager_destroy(laure); + +} + static void call_established_with_rejected_reinvite_with_error(void) { LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); @@ -1400,13 +1898,13 @@ static void call_established_with_rejected_reinvite_with_error(void) { sal_enable_unconditional_answer(marie->lc->sal,TRUE); linphone_core_update_call( pauline->lc - ,linphone_core_get_current_call(pauline->lc) - ,linphone_call_get_current_params(linphone_core_get_current_call(pauline->lc))); + ,linphone_core_get_current_call(pauline->lc) + ,linphone_call_get_current_params(linphone_core_get_current_call(pauline->lc))); CU_ASSERT_TRUE(wait_for(marie->lc,pauline->lc,&pauline->stat.number_of_LinphoneCallStreamsRunning,2)); - CU_ASSERT_EQUAL(linphone_call_get_reason(linphone_core_get_current_call(pauline->lc)),LinphoneReasonNone); /*might be change later*/ + CU_ASSERT_EQUAL(linphone_call_get_reason(linphone_core_get_current_call(pauline->lc)),LinphoneReasonTemporarilyUnavailable); /*might be change later*/ CU_ASSERT_EQUAL(marie->stat.number_of_LinphoneCallStreamsRunning,1); check_call_state(pauline,LinphoneCallStreamsRunning); @@ -1421,6 +1919,55 @@ static void call_established_with_rejected_reinvite_with_error(void) { linphone_core_manager_destroy(pauline); } +static void call_rejected_because_wrong_credentials_with_params(const char* user_agent,bool_t enable_auth_req_cb) { + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + LinphoneAuthInfo* good_auth_info=linphone_auth_info_clone((LinphoneAuthInfo*)(linphone_core_get_auth_info_list(marie->lc)->data)); + LinphoneAuthInfo* wrong_auth_info=linphone_auth_info_clone(good_auth_info); + bool_t result=FALSE; + linphone_auth_info_set_passwd(wrong_auth_info,"passecretdutout"); + linphone_core_clear_all_auth_info(marie->lc); + + if (user_agent) { + linphone_core_set_user_agent(marie->lc,user_agent,NULL); + } + if (!enable_auth_req_cb) { + marie->lc->vtable.auth_info_requested=NULL; + linphone_core_add_auth_info(marie->lc,wrong_auth_info); + } + + CU_ASSERT_PTR_NOT_NULL(linphone_core_invite_address(marie->lc,marie->identity)); + + result=wait_for(marie->lc,marie->lc,&marie->stat.number_of_auth_info_requested,1); + + if (enable_auth_req_cb) { + CU_ASSERT_TRUE(result); + /*automatically re-inititae the call*/ + linphone_core_add_auth_info(marie->lc,wrong_auth_info); + } + + CU_ASSERT_TRUE(wait_for(marie->lc,marie->lc,&marie->stat.number_of_LinphoneCallError,1)); + if (enable_auth_req_cb) { + CU_ASSERT_EQUAL(marie->stat.number_of_auth_info_requested,2); + } + /*to make sure unregister will work*/ + linphone_core_clear_all_auth_info(marie->lc); + linphone_core_add_auth_info(marie->lc,good_auth_info); + + linphone_core_manager_destroy(marie); +} + +static void call_rejected_because_wrong_credentials() { + call_rejected_because_wrong_credentials_with_params(NULL,TRUE); +} + +static void call_rejected_without_403_because_wrong_credentials() { + call_rejected_because_wrong_credentials_with_params("tester-no-403",TRUE); +} + +static void call_rejected_without_403_because_wrong_credentials_no_auth_req_cb() { + call_rejected_because_wrong_credentials_with_params("tester-no-403",FALSE); +} + #ifdef VIDEO_ENABLED #endif @@ -1434,34 +1981,53 @@ test_t call_tests[] = { { "Call failed because of codecs", call_failed_because_of_codecs }, { "Simple call", simple_call }, { "Call with media relay", call_with_media_relay}, + { "Call with media relay (random ports)", call_with_media_relay_random_ports}, { "Simple call compatibility mode", simple_call_compatibility_mode }, { "Early-media call", early_media_call }, - { "Early-media call forking", early_media_call_forking }, + { "Early-media call with ringing", early_media_call_with_ringing }, + { "Early-media call with updated media session", early_media_call_with_session_update}, + { "Early-media call with updated codec", early_media_call_with_codec_update}, { "Call terminated by caller", call_terminated_by_caller }, { "Call without SDP", call_with_no_sdp}, { "Call paused resumed", call_paused_resumed }, { "Call paused resumed from callee", call_paused_resumed_from_callee }, { "SRTP call", srtp_call }, + { "ZRTP call",zrtp_call}, + { "ZRTP video call",zrtp_video_call}, { "SRTP call with declined srtp", call_with_declined_srtp }, #ifdef VIDEO_ENABLED { "Simple video call",video_call}, { "SRTP ice video call", srtp_video_ice_call }, + { "ZRTP ice video call", zrtp_video_ice_call }, { "Call with video added", call_with_video_added }, + { "Call with video added (random ports)", call_with_video_added_random_ports }, { "Call with video declined",call_with_declined_video}, -#else - { "SRTP ice call", srtp_ice_call }, #endif + { "SRTP ice call", srtp_ice_call }, + { "ZRTP ice call", zrtp_ice_call }, + { "ZRTP ice call with relay", zrtp_ice_call_with_relay}, { "Call with privacy", call_with_privacy }, + { "Call with privacy 2", call_with_privacy2 }, + { "Call rejected because of wrong credential", call_rejected_because_wrong_credentials}, + { "Call rejected without 403 because of wrong credential", call_rejected_without_403_because_wrong_credentials}, + { "Call rejected without 403 because of wrong credential and no auth req cb", call_rejected_without_403_because_wrong_credentials_no_auth_req_cb}, + { "Call waiting indication", call_waiting_indication }, + { "Call waiting indication with privacy", call_waiting_indication_with_privacy }, { "Simple conference", simple_conference }, { "Simple call transfer", simple_call_transfer }, { "Unattended call transfer", unattended_call_transfer }, { "Unattended call transfer with error", unattended_call_transfer_with_error }, { "Call transfer existing call outgoing call", call_transfer_existing_call_outgoing_call }, { "Call with ICE", call_with_ice }, + { "Call with ICE (random ports)", call_with_ice_random_ports }, + { "Call from ICE to not ICE",ice_to_not_ice}, + { "Call from not ICE to ICE",not_ice_to_ice}, { "Call with custom headers",call_with_custom_headers}, { "Call established with rejected INFO",call_established_with_rejected_info}, { "Call established with rejected RE-INVITE",call_established_with_rejected_reinvite}, - { "Call established with rejected RE-INVITE in error", call_established_with_rejected_reinvite_with_error} + { "Call established with rejected incoming RE-INVITE", call_established_with_rejected_incoming_reinvite }, + { "Call established with rejected RE-INVITE in error", call_established_with_rejected_reinvite_with_error}, + { "Call redirected by callee", call_redirect} }; test_suite_t call_test_suite = { diff --git a/tester/certificates/cn/cafile.pem b/tester/certificates/cn/cafile.pem index 2fd957d39..43437333b 100644 --- a/tester/certificates/cn/cafile.pem +++ b/tester/certificates/cn/cafile.pem @@ -18,3 +18,29 @@ axGKc0DjiJPypU/NsAf4Yu0nOnY8pHqJJCB0AWVoAPM7vGYPWpeH7LSdGZLuT9eK FUWGJhPnkrnklmBdVB0l7qXYjR5uf766HDkoDxuLhNifow3IYvsS+L2Y6puRQb9w HLMDE29mBDl0WyoX3h0yR0EiAO15V9A7I10= -----END CERTIFICATE----- + +UTN USERFirst Hardware Root CA, used for *.linphone.org +============================== +-----BEGIN CERTIFICATE----- +MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd +BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx +OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0 +eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz +ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI +wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd +tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8 +i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf +Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw +gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF +lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF +UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF +BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM +//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW +XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2 +lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn +iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67 +nfhmqA== +-----END CERTIFICATE----- diff --git a/tester/eventapi_tester.c b/tester/eventapi_tester.c index 811bad527..9ed221667 100644 --- a/tester/eventapi_tester.c +++ b/tester/eventapi_tester.c @@ -1,10 +1,10 @@ /* - belle-sip - SIP (RFC3261) library. - Copyright (C) 2010 Belledonne Communications SARL + liblinphone_tester - liblinphone test suite + Copyright (C) 2013 Belledonne Communications SARL This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or + the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -16,6 +16,7 @@ along with this program. If not, see . */ + #include #include "CUnit/Basic.h" #include "linphonecore.h" @@ -28,6 +29,14 @@ static const char *subscribe_content="blabla"; static const char *notify_content="blabla"; +const char *liblinphone_tester_get_subscribe_content(void){ + return subscribe_content; +} + +const char *liblinphone_tester_get_notify_content(void){ + return notify_content; +} + void linphone_notify_received(LinphoneCore *lc, LinphoneEvent *lev, const char *eventname, const LinphoneContent *content){ CU_ASSERT_PTR_NOT_NULL_FATAL(content); CU_ASSERT_TRUE(strcmp(notify_content,(const char*)content->data)==0); @@ -50,12 +59,13 @@ void linphone_subscription_state_change(LinphoneCore *lc, LinphoneEvent *lev, Li break; case LinphoneSubscriptionIncomingReceived: counters->number_of_LinphoneSubscriptionIncomingReceived++; + mgr->lev=lev; if (!mgr->decline_subscribe) linphone_event_accept_subscription(lev); else linphone_event_deny_subscription(lev, LinphoneReasonDeclined); break; - case LinphoneSubscriptionOutoingInit: + case LinphoneSubscriptionOutgoingInit: counters->number_of_LinphoneSubscriptionOutgoingInit++; break; case LinphoneSubscriptionPending: @@ -76,6 +86,10 @@ void linphone_subscription_state_change(LinphoneCore *lc, LinphoneEvent *lev, Li counters->number_of_LinphoneSubscriptionError++; mgr->lev=NULL; break; + case LinphoneSubscriptionExpiring: + counters->number_of_LinphoneSubscriptionExpiring++; + mgr->lev=NULL; + break; } } @@ -83,7 +97,11 @@ void linphone_publish_state_changed(LinphoneCore *lc, LinphoneEvent *ev, Linphon stats* counters = get_stats(lc); switch(state){ case LinphonePublishProgress: counters->number_of_LinphonePublishProgress++; break; - case LinphonePublishOk: counters->number_of_LinphonePublishOk++; break; + case LinphonePublishOk: + /*make sure custom header access API is working*/ + CU_ASSERT_PTR_NOT_NULL(linphone_event_get_custom_header(ev,"From")); + counters->number_of_LinphonePublishOk++; + break; case LinphonePublishError: counters->number_of_LinphonePublishError++; break; case LinphonePublishExpiring: counters->number_of_LinphonePublishExpiring++; break; case LinphonePublishCleared: counters->number_of_LinphonePublishCleared++;break; @@ -97,6 +115,8 @@ static void subscribe_test_declined(void) { LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); LinphoneContent content={0}; + LinphoneEvent *lev; + const LinphoneErrorInfo *ei; MSList* lcs=ms_list_append(NULL,marie->lc); lcs=ms_list_append(lcs,pauline->lc); @@ -108,29 +128,44 @@ static void subscribe_test_declined(void) { pauline->decline_subscribe=TRUE; - linphone_core_subscribe(marie->lc,pauline->identity,"dodo",600,&content); + lev=linphone_core_subscribe(marie->lc,pauline->identity,"dodo",600,&content); + linphone_event_ref(lev); CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneSubscriptionOutgoingInit,1,1000)); CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneSubscriptionIncomingReceived,1,1000)); CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneSubscriptionError,1,21000));/*yes flexisip may wait 20 secs in case of forking*/ + ei=linphone_event_get_error_info(lev); + CU_ASSERT_PTR_NOT_NULL(ei); + if (ei){ + CU_ASSERT_EQUAL(linphone_error_info_get_protocol_code(ei),603); + CU_ASSERT_PTR_NOT_NULL(linphone_error_info_get_phrase(ei)); + } CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneSubscriptionTerminated,1,1000)); + linphone_event_unref(lev); linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline); } +typedef enum RefreshTestType{ + NoRefresh, + AutoRefresh, + ManualRefresh +}RefreshTestType; -static void subscribe_test_with_args(bool_t terminated_by_subscriber, bool_t test_refreshing) { +static void subscribe_test_with_args(bool_t terminated_by_subscriber, RefreshTestType refresh_type) { LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); LinphoneContent content={0}; LinphoneEvent *lev; - int expires= test_refreshing ? 4 : 600; + int expires= refresh_type!=NoRefresh ? 4 : 600; MSList* lcs=ms_list_append(NULL,marie->lc); - lcs=ms_list_append(lcs,pauline->lc); + if (refresh_type==ManualRefresh){ + lp_config_set_int(marie->lc->config,"sip","refresh_generic_subscribe",0); + } content.type="application"; content.subtype="somexml"; @@ -147,9 +182,73 @@ static void subscribe_test_with_args(bool_t terminated_by_subscriber, bool_t tes /*make sure marie receives first notification before terminating*/ CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_NotifyReceived,1,1000)); - if (test_refreshing){ + if (refresh_type==AutoRefresh){ wait_for_list(lcs,NULL,0,6000); CU_ASSERT_TRUE(linphone_event_get_subscription_state(pauline->lev)==LinphoneSubscriptionActive); + }else if (refresh_type==ManualRefresh){ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneSubscriptionExpiring,1,4000)); + linphone_event_update_subscribe(lev,NULL); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneSubscriptionActive,2,2000)); + } + + if (terminated_by_subscriber){ + linphone_event_terminate(lev); + }else{ + CU_ASSERT_PTR_NOT_NULL_FATAL(pauline->lev); + linphone_event_terminate(pauline->lev); + } + + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneSubscriptionTerminated,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneSubscriptionTerminated,1,1000)); + + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(pauline); +} + +static void subscribe_test_with_args2(bool_t terminated_by_subscriber, RefreshTestType refresh_type) { + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); + LinphoneContent content={0}; + LinphoneEvent *lev; + int expires= refresh_type!=NoRefresh ? 4 : 600; + MSList* lcs=ms_list_append(NULL,marie->lc); + + lcs=ms_list_append(lcs,pauline->lc); + + if (refresh_type==ManualRefresh){ + lp_config_set_int(marie->lc->config,"sip","refresh_generic_subscribe",0); + } + + content.type="application"; + content.subtype="somexml"; + content.data=(char*)subscribe_content; + content.size=strlen(subscribe_content); + + lev=linphone_core_create_subscribe(marie->lc,pauline->identity,"dodo",expires); + linphone_event_add_custom_header(lev,"My-Header","pouet"); + linphone_event_add_custom_header(lev,"My-Header2","pimpon"); + linphone_event_send_subscribe(lev,&content); + + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneSubscriptionOutgoingInit,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneSubscriptionIncomingReceived,1,1000)); + + /*check good receipt of custom headers*/ + CU_ASSERT_STRING_EQUAL(linphone_event_get_custom_header(pauline->lev,"My-Header"),"pouet"); + CU_ASSERT_STRING_EQUAL(linphone_event_get_custom_header(pauline->lev,"My-Header2"),"pimpon"); + + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneSubscriptionActive,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneSubscriptionActive,1,1000)); + + /*make sure marie receives first notification before terminating*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_NotifyReceived,1,1000)); + + if (refresh_type==AutoRefresh){ + wait_for_list(lcs,NULL,0,6000); + CU_ASSERT_TRUE(linphone_event_get_subscription_state(pauline->lev)==LinphoneSubscriptionActive); + }else if (refresh_type==ManualRefresh){ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneSubscriptionExpiring,1,4000)); + linphone_event_update_subscribe(lev,NULL); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneSubscriptionActive,2,2000)); } if (terminated_by_subscriber){ @@ -167,21 +266,29 @@ static void subscribe_test_with_args(bool_t terminated_by_subscriber, bool_t tes } static void subscribe_test_terminated_by_subscriber(void){ - subscribe_test_with_args(TRUE,FALSE); + subscribe_test_with_args(TRUE,NoRefresh); } static void subscribe_test_terminated_by_notifier(void){ - subscribe_test_with_args(FALSE,FALSE); + subscribe_test_with_args(FALSE,NoRefresh); } /* Caution: this test does not really check that the subscribe are refreshed, because the core is not managing the expiration of * unrefreshed subscribe dialogs. So it is just checking that it is not crashing. */ static void subscribe_test_refreshed(void){ - subscribe_test_with_args(TRUE,TRUE); + subscribe_test_with_args(TRUE,AutoRefresh); } -static void publish_test_with_args(bool_t refresh){ +static void subscribe_test_with_custom_header(void){ + subscribe_test_with_args2(TRUE,NoRefresh); +} + +static void subscribe_test_manually_refreshed(void){ + subscribe_test_with_args(TRUE,ManualRefresh); +} + +static void publish_test_with_args(bool_t refresh, int expires){ LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); LinphoneContent content={0}; @@ -195,26 +302,28 @@ static void publish_test_with_args(bool_t refresh){ content.data=(char*)subscribe_content; content.size=strlen(subscribe_content); - lp_config_set_int(marie->lc->config,"sip","refresh_generic_publish",!refresh); + lp_config_set_int(marie->lc->config,"sip","refresh_generic_publish",refresh); - lev=linphone_core_publish(marie->lc,pauline->identity,"dodo",5,&content); + lev=linphone_core_create_publish(marie->lc,pauline->identity,"dodo",expires); + linphone_event_add_custom_header(lev,"CustomHeader","someValue"); + linphone_event_send_publish(lev,&content); linphone_event_ref(lev); CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphonePublishProgress,1,1000)); - CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphonePublishOk,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphonePublishOk,1,3000)); if (!refresh){ CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphonePublishExpiring,1,5000)); linphone_event_update_publish(lev,&content); CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphonePublishProgress,1,1000)); - CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphonePublishOk,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphonePublishOk,1,3000)); }else{ } linphone_event_terminate(lev); - CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphonePublishCleared,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphonePublishCleared,1,3000)); linphone_event_unref(lev); @@ -223,19 +332,26 @@ static void publish_test_with_args(bool_t refresh){ } static void publish_test(){ - publish_test_with_args(TRUE); + publish_test_with_args(TRUE,5); } static void publish_no_auto_test(){ - publish_test_with_args(FALSE); + publish_test_with_args(FALSE,5); +} + +static void publish_without_expires(){ + publish_test_with_args(TRUE,-1); } test_t event_tests[] = { { "Subscribe declined" , subscribe_test_declined }, { "Subscribe terminated by subscriber", subscribe_test_terminated_by_subscriber }, + { "Subscribe with custom headers", subscribe_test_with_custom_header }, { "Subscribe refreshed", subscribe_test_refreshed }, + { "Subscribe manually refreshed", subscribe_test_manually_refreshed }, { "Subscribe terminated by notifier", subscribe_test_terminated_by_notifier }, { "Publish", publish_test }, + { "Publish without expires", publish_without_expires }, { "Publish without automatic refresh",publish_no_auto_test } }; diff --git a/tester/flexisip.conf b/tester/flexisip.conf index b4d39a5c0..48f4a054b 100755 --- a/tester/flexisip.conf +++ b/tester/flexisip.conf @@ -86,9 +86,6 @@ ban-duration=60 # Default value: 20 packets-limit=20 -# Maximal amount of simultaneous connections to accept. -# Default value: 1000 -maximum-connections=1000 ## ## The NatHelper module executes small tasks to make SIP work smoothly @@ -123,12 +120,15 @@ contact-verified-param=verified # Default value: false enabled=true + +no-403=user-agent contains 'tester-no-403' + # A request/response enters module if the boolean filter evaluates # to true. Ex: from.uri.domain contains 'sip.linphone.org', from.uri.domain # in 'a.org b.org c.org', (to.uri.domain in 'a.org b.org c.org') # && (user-agent == 'Linphone v2') # Default value: -filter= from.uri.domain contains 'sip.example.org' || from.uri.domain contains 'auth.example.org' || from.uri.domain contains 'auth1.example.org' || from.uri.domain contains 'auth2.example.org' +filter= from.uri.domain contains 'sip.example.org' || from.uri.domain contains 'auth.example.org' || from.uri.domain contains 'auth1.example.org' || from.uri.domain contains 'auth2.example.org' || from.uri.domain contains 'anonymous.invalid' # List of whitespace separated domain names to challenge. Others # are denied. @@ -259,7 +259,10 @@ stateful=true # Fork invites to late registers # Default value: false -fork-late=false +fork-late=true + +call-fork-timeout=20 + # Only forward one response of forked invite to the caller # Default value: true @@ -272,7 +275,7 @@ fork-no-global-decline=false # Maximum duration for delivering a message (text) # Default value: 3600 -message-delivery-timeout=3600 +message-delivery-timeout=60 ## ## The Registrar module accepts REGISTERs for domains it manages, ## and store the address of record in order to route other requests @@ -293,7 +296,7 @@ filter= # List of whitelist separated domain names to be managed by the # registrar. # Default value: localhost -reg-domains=localhost sip.example.org sipopen.example.org auth1.example.org sip2.linphone.org +reg-domains=localhost sip.example.org sipopen.example.org auth1.example.org sip2.linphone.org client.example.org # Maximum number of registered contacts of an address of record. # Default value: 15 @@ -301,12 +304,12 @@ max-contacts-by-aor=15 # List of contact uri parameters that can be used to identify a # user's device. -# Default value: line -unique-id-parameters=line +# Default value: +sip.instance +#unique-id-parameters= # Maximum expire time for a REGISTER, in seconds. # Default value: 86400 -max-expires=86400 +max-expires=60 # Minimum expire time for a REGISTER, in seconds. # Default value: 60 @@ -345,59 +348,7 @@ generated-contact-route= # Default value: generated-contact-expected-realm= -## -## This module performs push notifications -## -[module::PushNotification] -# Indicate whether the module is activated. -# Default value: false -enabled=false -# A request/response enters module if the boolean filter evaluates -# to true. Ex: from.uri.domain contains 'sip.linphone.org', from.uri.domain -# in 'a.org b.org c.org', (to.uri.domain in 'a.org b.org c.org') -# && (user-agent == 'Linphone v2') -# Default value: -filter= - -# Number of second to wait before sending a push notification to -# device(if <=0 then disabled) -# Default value: 5 -timeout=5 - -# Maximum number of notifications queued for each client -# Default value: 10 -max-queue-size=10 - -# Enable push notification for apple devices -# Default value: true -apple=true - -# Path to directory where to find Apple Push Notification service -# certificates. They should bear the appid of the application, suffixed -# by the release mode and .pem extension. For example: org.linphone.dev.pem -# org.linphone.prod.pem com.somephone.dev.pem etc... The files should -# be .pem format, and made of certificate followed by private key. -# Default value: /etc/flexisip/apn -apple-certificate-dir=/etc/flexisip/apn - -# Enable push notification for android devices -# Default value: true -google=true - -# List of couple projectId:ApiKey for each android project which -# support push notifications -# Default value: -google-projects-api-keys= - -## -## The purpose of the ContactRouteInserter module is to masquerade -## the contact header of incoming registers that are not handled -## locally (think about flexisip used as a SBC gateway) in such a -## way that it is then possible to route back outgoing invites to -## the original address. It is a kind of similar mechanism as Record-Route, -## but for REGISTER. -## [module::ContactRouteInserter] # Indicate whether the module is activated. # Default value: true diff --git a/tester/flexisip_tester.c b/tester/flexisip_tester.c new file mode 100644 index 000000000..1a75cdd97 --- /dev/null +++ b/tester/flexisip_tester.c @@ -0,0 +1,633 @@ +/* + liblinphone_tester - liblinphone test suite + Copyright (C) 2013 Belledonne Communications SARL + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include +#include "CUnit/Basic.h" +#include "linphonecore.h" +#include "lpconfig.h" +#include "private.h" +#include "liblinphone_tester.h" + +static void subscribe_forking(void) { + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_tcp_rc"); + LinphoneCoreManager* pauline2 = linphone_core_manager_new( "pauline_tcp_rc"); + LinphoneContent content={0}; + LinphoneEvent *lev; + int expires= 600; + MSList* lcs=ms_list_append(NULL,marie->lc); + + lcs=ms_list_append(lcs,pauline->lc); + lcs=ms_list_append(lcs,pauline2->lc); + + content.type="application"; + content.subtype="somexml"; + content.data=(char*)liblinphone_tester_get_subscribe_content(); + content.size=strlen(liblinphone_tester_get_subscribe_content()); + + lev=linphone_core_subscribe(marie->lc,pauline->identity,"dodo",expires,&content); + + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneSubscriptionOutgoingInit,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneSubscriptionIncomingReceived,1,3000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline2->stat.number_of_LinphoneSubscriptionIncomingReceived,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneSubscriptionActive,1,1000)); + + /*make sure marie receives first notification before terminating*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_NotifyReceived,1,1000)); + + linphone_event_terminate(lev); + + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(pauline); + linphone_core_manager_destroy(pauline2); + ms_list_free(lcs); +} + +static void message_forking(void) { + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_tcp_rc"); + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* marie2 = linphone_core_manager_new( "marie_rc"); + MSList* lcs=ms_list_append(NULL,marie->lc); + char* to = linphone_address_as_string(marie->identity); + LinphoneChatRoom* chat_room = linphone_core_create_chat_room(pauline->lc,to); + LinphoneChatMessage* message = linphone_chat_room_create_message(chat_room,"Bli bli bli \n blu"); + + lcs=ms_list_append(lcs,pauline->lc); + lcs=ms_list_append(lcs,marie2->lc); + + linphone_chat_room_send_message2(chat_room,message,liblinphone_tester_chat_message_state_change,pauline->lc); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneMessageReceived,1,3000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneMessageReceived,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneMessageDelivered,1,1000)); + CU_ASSERT_EQUAL(pauline->stat.number_of_LinphoneMessageInProgress,1); + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(marie2); + linphone_core_manager_destroy(pauline); + ms_free(to); + ms_list_free(lcs); +} + +static void message_forking_with_unreachable_recipients(void) { + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_tcp_rc"); + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* marie2 = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* marie3 = linphone_core_manager_new( "marie_rc"); + MSList* lcs=ms_list_append(NULL,marie->lc); + char* to = linphone_address_as_string(marie->identity); + LinphoneChatRoom* chat_room = linphone_core_create_chat_room(pauline->lc,to); + LinphoneChatMessage* message = linphone_chat_room_create_message(chat_room,"Bli bli bli \n blu"); + + lcs=ms_list_append(lcs,pauline->lc); + lcs=ms_list_append(lcs,marie2->lc); + lcs=ms_list_append(lcs,marie3->lc); + + /*marie2 and marie3 go offline*/ + linphone_core_set_network_reachable(marie2->lc,FALSE); + linphone_core_set_network_reachable(marie3->lc,FALSE); + + linphone_chat_room_send_message2(chat_room,message,liblinphone_tester_chat_message_state_change,pauline->lc); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneMessageReceived,1,3000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneMessageDelivered,1,1000)); + CU_ASSERT_EQUAL(pauline->stat.number_of_LinphoneMessageInProgress,1); + CU_ASSERT_TRUE( marie2->stat.number_of_LinphoneMessageReceived==0); + CU_ASSERT_TRUE( marie3->stat.number_of_LinphoneMessageReceived==0); + /*marie 2 goes online */ + linphone_core_set_network_reachable(marie2->lc,TRUE); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneMessageReceived,1,3000)); + + /*wait a long time so that all transactions are expired*/ + wait_for_list(lcs,NULL,0,32000); + + /*marie 3 goes online now*/ + linphone_core_set_network_reachable(marie3->lc,TRUE); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie3->stat.number_of_LinphoneMessageReceived,1,3000)); + + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(marie2); + linphone_core_manager_destroy(pauline); + ms_free(to); + ms_list_free(lcs); +} + +static void message_forking_with_all_recipients_unreachable(void) { + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_tcp_rc"); + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* marie2 = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* marie3 = linphone_core_manager_new( "marie_rc"); + MSList* lcs=ms_list_append(NULL,marie->lc); + char* to = linphone_address_as_string(marie->identity); + LinphoneChatRoom* chat_room = linphone_core_create_chat_room(pauline->lc,to); + LinphoneChatMessage* message = linphone_chat_room_create_message(chat_room,"Bli bli bli \n blu"); + + lcs=ms_list_append(lcs,pauline->lc); + lcs=ms_list_append(lcs,marie2->lc); + lcs=ms_list_append(lcs,marie3->lc); + + /*All marie's device go offline*/ + linphone_core_set_network_reachable(marie->lc,FALSE); + linphone_core_set_network_reachable(marie2->lc,FALSE); + linphone_core_set_network_reachable(marie3->lc,FALSE); + + linphone_chat_room_send_message2(chat_room,message,liblinphone_tester_chat_message_state_change,pauline->lc); + + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneMessageInProgress,1,1000)); + /*flexisip will accept the message with 202 after 16 seconds*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneMessageDelivered,1,18000)); + CU_ASSERT_TRUE( marie->stat.number_of_LinphoneMessageReceived==0); + CU_ASSERT_TRUE( marie2->stat.number_of_LinphoneMessageReceived==0); + CU_ASSERT_TRUE( marie3->stat.number_of_LinphoneMessageReceived==0); + + /*marie 1 goes online */ + linphone_core_set_network_reachable(marie->lc,TRUE); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneMessageReceived,1,3000)); + + /*marie 2 goes online */ + linphone_core_set_network_reachable(marie2->lc,TRUE); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneMessageReceived,1,3000)); + + /*wait a long time so that all transactions are expired*/ + wait_for_list(lcs,NULL,0,32000); + + /*marie 3 goes online now*/ + linphone_core_set_network_reachable(marie3->lc,TRUE); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie3->stat.number_of_LinphoneMessageReceived,1,3000)); + + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(marie2); + linphone_core_manager_destroy(pauline); + ms_free(to); + ms_list_free(lcs); +} + +static void call_forking(void){ + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_tcp_rc"); + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* marie2 = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* marie3 = linphone_core_manager_new( "marie_rc"); + MSList* lcs=ms_list_append(NULL,pauline->lc); + + lcs=ms_list_append(lcs,marie->lc); + lcs=ms_list_append(lcs,marie2->lc); + lcs=ms_list_append(lcs,marie3->lc); + + linphone_core_set_user_agent(marie->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(marie2->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(marie3->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(pauline->lc,"Natted Linphone",NULL); + + linphone_core_invite_address(pauline->lc,marie->identity); + /*pauline should hear ringback*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallOutgoingRinging,1,3000)); + /*all devices from Marie should be ringing*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallIncomingReceived,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneCallIncomingReceived,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie3->stat.number_of_LinphoneCallIncomingReceived,1,1000)); + + /*marie accepts the call on its first device*/ + linphone_core_accept_call(marie->lc,linphone_core_get_current_call(marie->lc)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallConnected,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallStreamsRunning,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallConnected,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallStreamsRunning,1,1000)); + + /*other devices should stop ringing*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneCallEnd,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie3->stat.number_of_LinphoneCallEnd,1,1000)); + + linphone_core_terminate_call(pauline->lc,linphone_core_get_current_call(pauline->lc)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallEnd,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallEnd,1,1000)); + + linphone_core_manager_destroy(pauline); + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(marie2); + linphone_core_manager_destroy(marie3); + ms_list_free(lcs); +} + +static void call_forking_with_urgent_reply(void){ + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_tcp_rc"); + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* marie2 = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* marie3 = linphone_core_manager_new( "marie_rc"); + MSList* lcs=ms_list_append(NULL,pauline->lc); + + lcs=ms_list_append(lcs,marie->lc); + lcs=ms_list_append(lcs,marie2->lc); + lcs=ms_list_append(lcs,marie3->lc); + + linphone_core_set_user_agent(marie->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(marie2->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(marie3->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(pauline->lc,"Natted Linphone",NULL); + + CU_ASSERT_TRUE(linphone_core_media_encryption_supported(pauline->lc,LinphoneMediaEncryptionSRTP)); + linphone_core_set_media_encryption(pauline->lc,LinphoneMediaEncryptionSRTP); + linphone_core_set_network_reachable(marie2->lc,FALSE); + linphone_core_set_network_reachable(marie3->lc,FALSE); + + linphone_core_invite_address(pauline->lc,marie->identity); + /*pauline should hear ringback, after 5 seconds, when it will retry without SRTP*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallOutgoingRinging,1,9000)); + /*Marie should be ringing*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallIncomingReceived,1,1000)); + + /*marie accepts the call on its first device*/ + linphone_core_accept_call(marie->lc,linphone_core_get_current_call(marie->lc)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallConnected,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallStreamsRunning,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallConnected,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallStreamsRunning,1,1000)); + + linphone_core_terminate_call(pauline->lc,linphone_core_get_current_call(pauline->lc)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallEnd,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallEnd,1,1000)); + + linphone_core_manager_destroy(pauline); + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(marie2); + linphone_core_manager_destroy(marie3); + ms_list_free(lcs); +} + +static void call_forking_cancelled(void){ + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_tcp_rc"); + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* marie2 = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* marie3 = linphone_core_manager_new( "marie_rc"); + MSList* lcs=ms_list_append(NULL,pauline->lc); + + lcs=ms_list_append(lcs,marie->lc); + lcs=ms_list_append(lcs,marie2->lc); + lcs=ms_list_append(lcs,marie3->lc); + + linphone_core_set_user_agent(marie->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(marie2->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(marie3->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(pauline->lc,"Natted Linphone",NULL); + + linphone_core_invite_address(pauline->lc,marie->identity); + /*pauline should hear ringback*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallOutgoingRinging,1,3000)); + /*all devices from Marie should be ringing*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallIncomingReceived,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneCallIncomingReceived,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie3->stat.number_of_LinphoneCallIncomingReceived,1,1000)); + + /*pauline finally cancels the call*/ + linphone_core_terminate_call(pauline->lc,linphone_core_get_current_call(pauline->lc)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallEnd,1,1000)); + + /*all devices should stop ringing*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallEnd,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneCallEnd,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie3->stat.number_of_LinphoneCallEnd,1,1000)); + + linphone_core_manager_destroy(pauline); + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(marie2); + linphone_core_manager_destroy(marie3); + ms_list_free(lcs); +} + +static void call_forking_declined(bool_t declined_globaly){ + char hellopath[256]; + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_tcp_rc"); + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* marie2 = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* marie3 = linphone_core_manager_new( "marie_rc"); + MSList* lcs=ms_list_append(NULL,pauline->lc); + + lcs=ms_list_append(lcs,marie->lc); + lcs=ms_list_append(lcs,marie2->lc); + lcs=ms_list_append(lcs,marie3->lc); + + linphone_core_set_user_agent(marie->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(marie2->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(marie3->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(pauline->lc,"Natted Linphone",NULL); + + /*use playfile for callee to avoid locking on capture card*/ + linphone_core_use_files (pauline->lc,TRUE); + snprintf(hellopath,sizeof(hellopath), "%s/sounds/hello8000.wav", liblinphone_tester_file_prefix); + linphone_core_set_play_file(pauline->lc,hellopath); + + linphone_core_invite_address(pauline->lc,marie->identity); + /*pauline should hear ringback*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallOutgoingRinging,1,3000)); + /*all devices from Marie should be ringing*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallIncomingReceived,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneCallIncomingReceived,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie3->stat.number_of_LinphoneCallIncomingReceived,1,1000)); + + /*marie1 finally declines the call*/ + linphone_core_decline_call(marie->lc,linphone_core_get_current_call(marie->lc), + declined_globaly ? LinphoneReasonDeclined : LinphoneReasonBusy + ); + + if (declined_globaly){ + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallEnd,1,1000)); + /*all devices should stop ringing*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallEnd,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneCallEnd,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie3->stat.number_of_LinphoneCallEnd,1,1000)); + }else{ + /*pauline should continue ringing and be able to hear a call taken by marie2 */ + linphone_core_accept_call(marie2->lc, linphone_core_get_current_call(marie2->lc)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallStreamsRunning,1,2000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneCallStreamsRunning,1,2000)); + liblinphone_tester_check_rtcp(pauline,marie2); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallEnd,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie3->stat.number_of_LinphoneCallEnd,1,1000)); + linphone_core_terminate_call(marie2->lc,linphone_core_get_current_call(marie2->lc)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneCallEnd,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallEnd,1,1000)); + } + + linphone_core_manager_destroy(pauline); + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(marie2); + linphone_core_manager_destroy(marie3); + ms_list_free(lcs); +} + +static void call_forking_declined_globaly(void){ + call_forking_declined(TRUE); +} + +static void call_forking_declined_localy(void){ + call_forking_declined(FALSE); +} + +static void call_forking_with_push_notification_single(void){ + char hellopath[256]; + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_tcp_rc"); + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + + linphone_core_set_user_agent(marie->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(pauline->lc,"Natted Linphone",NULL); + + MSList* lcs=ms_list_append(NULL,pauline->lc); + + lcs=ms_list_append(lcs,marie->lc); + + /*unfortunately marie gets unreachable due to crappy 3G operator or iOS bug...*/ + linphone_core_set_network_reachable(marie->lc,FALSE); + + /*use playfile for callee to avoid locking on capture card*/ + linphone_core_use_files (pauline->lc,TRUE); + snprintf(hellopath,sizeof(hellopath), "%s/sounds/hello8000.wav", liblinphone_tester_file_prefix); + linphone_core_set_play_file(pauline->lc,hellopath); + + linphone_core_invite_address(pauline->lc,marie->identity); + + /*the server is expected to send a push notification to marie, this will wake up linphone, that will reconnect:*/ + linphone_core_set_network_reachable(marie->lc,TRUE); + + /*Marie shall receive the call immediately*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallIncomingReceived,1,5000)); + /*pauline should hear ringback as well*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallOutgoingRinging,1,1000)); + + /*marie accepts the call*/ + linphone_core_accept_call(marie->lc,linphone_core_get_current_call(marie->lc)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallConnected,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallStreamsRunning,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallConnected,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallStreamsRunning,1,1000)); + + liblinphone_tester_check_rtcp(pauline,marie); + + linphone_core_terminate_call(pauline->lc,linphone_core_get_current_call(pauline->lc)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallEnd,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallEnd,1,1000)); + + linphone_core_manager_destroy(pauline); + linphone_core_manager_destroy(marie); + ms_list_free(lcs); +} + +static void call_forking_with_push_notification_multiple(void){ + char hellopath[256]; + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_tcp_rc"); + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* marie2 = linphone_core_manager_new( "marie_rc"); + + MSList* lcs=ms_list_append(NULL,pauline->lc); + + lcs=ms_list_append(lcs,marie->lc); + lcs=ms_list_append(lcs,marie2->lc); + + linphone_core_set_user_agent(marie->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(marie2->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(pauline->lc,"Natted Linphone",NULL); + + /*unfortunately marie gets unreachable due to crappy 3G operator or iOS bug...*/ + linphone_core_set_network_reachable(marie2->lc,FALSE); + + /*use playfile for callee to avoid locking on capture card*/ + snprintf(hellopath,sizeof(hellopath), "%s/sounds/hello8000.wav", liblinphone_tester_file_prefix); + linphone_core_use_files (marie->lc,TRUE); + linphone_core_set_play_file(marie->lc,hellopath); + linphone_core_use_files (marie2->lc,TRUE); + linphone_core_set_play_file(marie2->lc,hellopath); + + linphone_core_invite_address(pauline->lc,marie->identity); + + /*marie1 will ring*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallIncomingReceived,1,5000)); + /*pauline should hear ringback as well*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallOutgoingRinging,1,1000)); + + /*the server is expected to send a push notification to marie2, this will wake up linphone, that will reconnect:*/ + linphone_core_set_network_reachable(marie2->lc,TRUE); + + /*Marie shall receive the call immediately*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneCallIncomingReceived,1,5000)); + + /*marie2 accepts the call*/ + linphone_core_accept_call(marie2->lc,linphone_core_get_current_call(marie2->lc)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallConnected,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallStreamsRunning,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneCallConnected,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneCallStreamsRunning,1,1000)); + + /*call to marie1 should be cancelled*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallEnd,1,1000)); + + liblinphone_tester_check_rtcp(pauline,marie2); + + linphone_core_terminate_call(pauline->lc,linphone_core_get_current_call(pauline->lc)); + + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallEnd,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneCallEnd,1,1000)); + + linphone_core_manager_destroy(pauline); + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(marie2); +} + +void call_forking_not_responded(void){ + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_tcp_rc"); + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* marie2 = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* marie3 = linphone_core_manager_new( "marie_rc"); + MSList* lcs=ms_list_append(NULL,pauline->lc); + + lcs=ms_list_append(lcs,marie->lc); + lcs=ms_list_append(lcs,marie2->lc); + lcs=ms_list_append(lcs,marie3->lc); + + linphone_core_set_user_agent(marie->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(marie2->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(marie3->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(pauline->lc,"Natted Linphone",NULL); + + linphone_core_invite_address(pauline->lc,marie->identity); + /*pauline should hear ringback*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallOutgoingRinging,1,3000)); + /*all devices from Marie should be ringing*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallIncomingReceived,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneCallIncomingReceived,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie3->stat.number_of_LinphoneCallIncomingReceived,1,1000)); + + /*nobody answers, flexisip should close the call after XX seconds*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallError,1,22000)); + /*all devices should stop ringing*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallEnd,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneCallEnd,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie3->stat.number_of_LinphoneCallEnd,1,1000)); + + linphone_core_manager_destroy(pauline); + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(marie2); + linphone_core_manager_destroy(marie3); + ms_list_free(lcs); +} + +static void early_media_call_forking(void) { + LinphoneCoreManager* marie1 = linphone_core_manager_new("marie_early_rc"); + LinphoneCoreManager* marie2 = linphone_core_manager_new("marie_early_rc"); + LinphoneCoreManager* pauline = linphone_core_manager_new("pauline_tcp_rc"); + MSList *lcs=NULL; + LinphoneCallParams *params=linphone_core_create_default_call_parameters(pauline->lc); + LinphoneVideoPolicy pol; + LinphoneCall *marie1_call; + LinphoneCall *marie2_call; + LinphoneCall *pauline_call; + int dummy=0; + char ringbackpath[256]; + snprintf(ringbackpath,sizeof(ringbackpath), "%s/sounds/hello8000.wav" /*use hello because rinback is too short*/, liblinphone_tester_file_prefix); + + pol.automatically_accept=1; + pol.automatically_initiate=1; + + linphone_core_set_user_agent(marie1->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(marie2->lc,"Natted Linphone",NULL); + linphone_core_set_user_agent(pauline->lc,"Natted Linphone",NULL); + + linphone_core_enable_video(pauline->lc,TRUE,TRUE); + + linphone_core_enable_video(marie1->lc,TRUE,TRUE); + linphone_core_set_video_policy(marie1->lc,&pol); + /*use playfile for marie1 to avoid locking on capture card*/ + linphone_core_use_files (marie1->lc,TRUE); + linphone_core_set_play_file(marie1->lc,ringbackpath); + + linphone_core_enable_video(marie2->lc,TRUE,TRUE); + linphone_core_set_video_policy(marie2->lc,&pol); + linphone_core_set_audio_port_range(marie2->lc,40200,40300); + linphone_core_set_video_port_range(marie2->lc,40400,40500); + /*use playfile for marie2 to avoid locking on capture card*/ + linphone_core_use_files (marie2->lc,TRUE); + linphone_core_set_play_file(marie2->lc,ringbackpath); + + + lcs=ms_list_append(lcs,marie1->lc); + lcs=ms_list_append(lcs,marie2->lc); + lcs=ms_list_append(lcs,pauline->lc); + + linphone_call_params_enable_early_media_sending(params,TRUE); + linphone_call_params_enable_video(params,TRUE); + + linphone_core_invite_address_with_params(pauline->lc,marie1->identity,params); + linphone_call_params_destroy(params); + + CU_ASSERT_TRUE(wait_for_list(lcs, &marie1->stat.number_of_LinphoneCallIncomingEarlyMedia,1,3000)); + CU_ASSERT_TRUE(wait_for_list(lcs, &marie2->stat.number_of_LinphoneCallIncomingEarlyMedia,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs, &pauline->stat.number_of_LinphoneCallOutgoingEarlyMedia,1,1000)); + + pauline_call=linphone_core_get_current_call(pauline->lc); + marie1_call=linphone_core_get_current_call(marie1->lc); + marie2_call=linphone_core_get_current_call(marie2->lc); + + /*wait a bit that streams are established*/ + wait_for_list(lcs,&dummy,1,3000); + CU_ASSERT_TRUE(linphone_call_get_audio_stats(pauline_call)->download_bandwidth>70); + CU_ASSERT_TRUE(linphone_call_get_audio_stats(marie1_call)->download_bandwidth>70); + CU_ASSERT_TRUE(linphone_call_get_audio_stats(marie2_call)->download_bandwidth>70); + + linphone_core_accept_call(marie1->lc,linphone_core_get_current_call(marie1->lc)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie1->stat.number_of_LinphoneCallStreamsRunning,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallStreamsRunning,1,1000)); + + /*marie2 should get her call terminated*/ + CU_ASSERT_TRUE(wait_for_list(lcs,&marie2->stat.number_of_LinphoneCallEnd,1,1000)); + + /*wait a bit that streams are established*/ + wait_for_list(lcs,&dummy,1,1000); + CU_ASSERT_TRUE(linphone_call_get_audio_stats(pauline_call)->download_bandwidth>71); + CU_ASSERT_TRUE(linphone_call_get_audio_stats(marie1_call)->download_bandwidth>71); + + linphone_core_terminate_all_calls(pauline->lc); + CU_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallEnd,1,1000)); + CU_ASSERT_TRUE(wait_for_list(lcs,&marie1->stat.number_of_LinphoneCallEnd,1,1000)); + + ms_list_free(lcs); + linphone_core_manager_destroy(marie1); + linphone_core_manager_destroy(marie2); + linphone_core_manager_destroy(pauline); +} + + +test_t flexisip_tests[] = { + { "Subscribe forking", subscribe_forking }, + { "Message forking", message_forking }, + { "Message forking with unreachable recipients", message_forking_with_unreachable_recipients }, + { "Message forking with all recipients unreachable", message_forking_with_all_recipients_unreachable}, + { "Call forking", call_forking }, + { "Call forking cancelled", call_forking_cancelled }, + { "Call forking declined globaly", call_forking_declined_globaly }, + { "Call forking declined localy", call_forking_declined_localy }, + { "Call forking with urgent reply", call_forking_with_urgent_reply }, + { "Call forking with push notification (single)", call_forking_with_push_notification_single }, + { "Call forking with push notification (multiple)", call_forking_with_push_notification_multiple }, + { "Call forking not responded", call_forking_not_responded }, + { "Early-media call forking", early_media_call_forking }, +}; + + +test_suite_t flexisip_test_suite = { + "Flexisip", + NULL, + NULL, + sizeof(flexisip_tests) / sizeof(flexisip_tests[0]), + flexisip_tests +}; + + diff --git a/tester/liblinphone_tester.c b/tester/liblinphone_tester.c index 1df32f237..f47a556b9 100644 --- a/tester/liblinphone_tester.c +++ b/tester/liblinphone_tester.c @@ -1,20 +1,21 @@ /* - belle-sip - SIP (RFC3261) library. - Copyright (C) 2010 Belledonne Communications SARL + liblinphone_tester - liblinphone test suite + Copyright (C) 2013 Belledonne Communications SARL - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ #include #include "CUnit/Basic.h" #include "linphonecore.h" @@ -24,359 +25,18 @@ #include "CUnit/CUCurses.h" #endif -static LinphoneCore* configure_lc_from(LinphoneCoreVTable* v_table, const char* path, const char* file); - -static test_suite_t **test_suite = NULL; -static int nb_test_suites = 0; - - -#if HAVE_CU_CURSES -static unsigned char curses = 0; -#endif - - - -const char* test_domain="sipopen.example.org"; -const char* auth_domain="sip.example.org"; -const char* test_username="liblinphone_tester"; -const char* test_password="secret"; -const char* test_route="sip2.linphone.org"; - -#if WINAPI_FAMILY_PHONE_APP -const char *liblinphone_tester_file_prefix="Assets"; -#else -const char *liblinphone_tester_file_prefix="."; -#endif - -const char *userhostsfile = "tester_hosts"; - #ifdef ANDROID + extern void AndroidPrintf(FILE *stream, const char *fmt, ...); -#define fprintf(file, fmt, ...) AndroidPrintf(file, fmt, ##__VA_ARGS__) -#endif +#define fprintf(file, fmt, ...) AndroidPrintf(file, fmt, ##__VA_ARGS__) - -LinphoneAddress * create_linphone_address(const char * domain) { - LinphoneAddress *addr = linphone_address_new(NULL); - CU_ASSERT_PTR_NOT_NULL_FATAL(addr); - linphone_address_set_username(addr,test_username); - CU_ASSERT_STRING_EQUAL(test_username,linphone_address_get_username(addr)); - if (!domain) domain= test_route; - linphone_address_set_domain(addr,domain); - CU_ASSERT_STRING_EQUAL(domain,linphone_address_get_domain(addr)); - linphone_address_set_display_name(addr, NULL); - linphone_address_set_display_name(addr, "Mr Tester"); - CU_ASSERT_STRING_EQUAL("Mr Tester",linphone_address_get_display_name(addr)); - return addr; -} - -void auth_info_requested(LinphoneCore *lc, const char *realm, const char *username, const char *domain) { - stats* counters; - LinphoneAuthInfo *info; - ms_message("Auth info requested for user id [%s] at realm [%s]\n" - ,username - ,realm); - counters = get_stats(lc); - counters->number_of_auth_info_requested++; - info=linphone_auth_info_new(test_username,NULL,test_password,NULL,realm,domain); /*create authentication structure from identity*/ - linphone_core_add_auth_info(lc,info); /*add authentication info to LinphoneCore*/ - -} - - - -void reset_counters( stats* counters) { - memset(counters,0,sizeof(stats)); -} - -static LinphoneCore* configure_lc_from(LinphoneCoreVTable* v_table, const char* path, const char* file) { - LinphoneCore* lc; - char filepath[256]={0}; - char ringpath[256]={0}; - char ringbackpath[256]={0}; - char rootcapath[256]={0}; - char dnsuserhostspath[256]={0}; - char nowebcampath[256]={0}; - - if (path==NULL) path="."; - - if (file){ - sprintf(filepath, "%s/%s", path, file); - CU_ASSERT_TRUE_FATAL(ortp_file_exist(filepath)==0); - } - - lc = linphone_core_new(v_table,NULL,*filepath!='\0' ? filepath : NULL,NULL); - - sal_enable_test_features(lc->sal,TRUE); - snprintf(rootcapath, sizeof(rootcapath), "%s/certificates/cn/cafile.pem", path); - linphone_core_set_root_ca(lc,rootcapath); - - sprintf(dnsuserhostspath, "%s/%s", path, userhostsfile); - sal_set_dns_user_hosts_file(lc->sal, dnsuserhostspath); - - snprintf(ringpath,sizeof(ringpath), "%s/sounds/oldphone.wav",path); - snprintf(ringbackpath,sizeof(ringbackpath), "%s/sounds/ringback.wav", path); - linphone_core_set_ring(lc, ringpath); - linphone_core_set_ringback(lc, ringbackpath); - - snprintf(nowebcampath, sizeof(nowebcampath), "%s/images/nowebcamCIF.jpg", path); - linphone_core_set_static_picture(lc,nowebcampath); - return lc; -} - - -bool_t wait_for_until(LinphoneCore* lc_1, LinphoneCore* lc_2,int* counter,int value,int timout) { - MSList* lcs=NULL; - bool_t result; - if (lc_1) - lcs=ms_list_append(lcs,lc_1); - if (lc_2) - lcs=ms_list_append(lcs,lc_2); - result=wait_for_list(lcs,counter,value,timout); - ms_list_free(lcs); - return result; -} -bool_t wait_for(LinphoneCore* lc_1, LinphoneCore* lc_2,int* counter,int value) { - return wait_for_until(lc_1, lc_2,counter,value,2000); -} -bool_t wait_for_list(MSList* lcs,int* counter,int value,int timeout_ms) { - int retry=0; - MSList* iterator; - while ((counter==NULL || *counternext) { - linphone_core_iterate((LinphoneCore*)(iterator->data)); - } - ms_usleep(100000); - } - if(counter && *counternext) { - linphone_core_enable_payload_type(lc,(PayloadType*)codecs_it->data,0); - } - if((pt = linphone_core_find_payload_type(lc,type,rate,1))) { - linphone_core_enable_payload_type(lc,pt, enable); - } - ms_list_free(codecs); -} - -static void enable_codec(LinphoneCore* lc,const char* type,int rate) { - set_codec_enable(lc,type,rate,TRUE); -} -stats * get_stats(LinphoneCore *lc){ - LinphoneCoreManager *manager=(LinphoneCoreManager *)linphone_core_get_user_data(lc); - return &manager->stat; -} - -LinphoneCoreManager *get_manager(LinphoneCore *lc){ - LinphoneCoreManager *manager=(LinphoneCoreManager *)linphone_core_get_user_data(lc); - return manager; -} - -LinphoneCoreManager* linphone_core_manager_new2(const char* rc_file, int check_for_proxies) { - LinphoneCoreManager* mgr= ms_new0(LinphoneCoreManager,1); - LinphoneProxyConfig* proxy; - int proxy_count; - int retry=0; - - mgr->v_table.registration_state_changed=registration_state_changed; - mgr->v_table.auth_info_requested=auth_info_requested; - mgr->v_table.call_state_changed=call_state_changed; - mgr->v_table.text_received=text_message_received; - mgr->v_table.message_received=message_received; - mgr->v_table.new_subscription_requested=new_subscription_requested; - mgr->v_table.notify_presence_received=notify_presence_received; - mgr->v_table.transfer_state_changed=linphone_transfer_state_changed; - mgr->v_table.info_received=info_message_received; - mgr->v_table.subscription_state_changed=linphone_subscription_state_change; - mgr->v_table.notify_received=linphone_notify_received; - mgr->v_table.publish_state_changed=linphone_publish_state_changed; - mgr->lc=configure_lc_from(&mgr->v_table, liblinphone_tester_file_prefix, rc_file); - linphone_core_set_user_data(mgr->lc,mgr); - reset_counters(&mgr->stat); - /*CU_ASSERT_EQUAL(ms_list_size(linphone_core_get_proxy_config_list(lc)),proxy_count);*/ - if (check_for_proxies && rc_file) /**/ - proxy_count=ms_list_size(linphone_core_get_proxy_config_list(mgr->lc)); - else - proxy_count=0; - - while (mgr->stat.number_of_LinphoneRegistrationOk2?(proxy_count-2)*10:0))) { - linphone_core_iterate(mgr->lc); - ms_usleep(100000); - } - CU_ASSERT_EQUAL(mgr->stat.number_of_LinphoneRegistrationOk,proxy_count); - enable_codec(mgr->lc,"PCMU",8000); - - linphone_core_get_default_proxy(mgr->lc,&proxy); - if (proxy) { - mgr->identity = linphone_address_new(linphone_proxy_config_get_identity(proxy)); - linphone_address_clean(mgr->identity); - } - return mgr; -} - -LinphoneCoreManager* linphone_core_manager_new( const char* rc_file) { - return linphone_core_manager_new2(rc_file, TRUE); -} - -void linphone_core_manager_stop(LinphoneCoreManager *mgr){ - if (mgr->lc) { - linphone_core_destroy(mgr->lc); - mgr->lc=NULL; - } -} - -void linphone_core_manager_destroy(LinphoneCoreManager* mgr) { - if (mgr->lc) linphone_core_destroy(mgr->lc); - if (mgr->identity) linphone_address_destroy(mgr->identity); - ms_free(mgr); -} - - -static void add_test_suite(test_suite_t *suite) { - if (test_suite == NULL) { - test_suite = (test_suite_t **)malloc(10 * sizeof(test_suite_t *)); - } - test_suite[nb_test_suites] = suite; - nb_test_suites++; - if ((nb_test_suites % 10) == 0) { - test_suite = (test_suite_t **)realloc(test_suite, (nb_test_suites + 10) * sizeof(test_suite_t *)); - } -} - -static int run_test_suite(test_suite_t *suite) { - int i; - - CU_pSuite pSuite = CU_add_suite(suite->name, suite->init_func, suite->cleanup_func); - - for (i = 0; i < suite->nb_tests; i++) { - if (NULL == CU_add_test(pSuite, suite->tests[i].name, suite->tests[i].func)) { - return CU_get_error(); - } - } - - return 0; -} - -static int test_suite_index(const char *suite_name) { - int i; - - for (i = 0; i < liblinphone_tester_nb_test_suites(); i++) { - if ((strcmp(suite_name, test_suite[i]->name) == 0) && (strlen(suite_name) == strlen(test_suite[i]->name))) { - return i; - } - } - - return -1; -} - -static int test_index(const char *suite_name, const char *test_name) { - int j,i; - - j = test_suite_index(suite_name); - if(j != -1) { - for (i = 0; i < test_suite[j]->nb_tests; i++) { - if ((strcmp(test_name, test_suite[j]->tests[i].name) == 0) && (strlen(test_name) == strlen(test_suite[j]->tests[i].name))) { - return i; - } - } - } - - return -1; -} - -int liblinphone_tester_nb_test_suites(void) { - return nb_test_suites; -} - -int liblinphone_tester_nb_tests(const char *suite_name) { - int i = test_suite_index(suite_name); - if (i < 0) return 0; - return test_suite[i]->nb_tests; -} - -const char * liblinphone_tester_test_suite_name(int suite_index) { - if (suite_index >= liblinphone_tester_nb_test_suites()) return NULL; - return test_suite[suite_index]->name; -} - -const char * liblinphone_tester_test_name(const char *suite_name, int test_index) { - int suite_index = test_suite_index(suite_name); - if ((suite_index < 0) || (suite_index >= liblinphone_tester_nb_test_suites())) return NULL; - if (test_index >= test_suite[suite_index]->nb_tests) return NULL; - return test_suite[suite_index]->tests[test_index].name; -} - -void liblinphone_tester_init(void) { - add_test_suite(&setup_test_suite); - add_test_suite(®ister_test_suite); - add_test_suite(&call_test_suite); - add_test_suite(&message_test_suite); - add_test_suite(&presence_test_suite); -#ifdef UPNP - add_test_suite(&upnp_test_suite); -#endif - add_test_suite(&event_test_suite); -} - -void liblinphone_tester_uninit(void) { - if (test_suite != NULL) { - free(test_suite); - test_suite = NULL; - nb_test_suites = 0; - } -} - -int liblinphone_tester_run_tests(const char *suite_name, const char *test_name) { - int i; - int ret; - /* initialize the CUnit test registry */ - if (CUE_SUCCESS != CU_initialize_registry()) - return CU_get_error(); - - for (i = 0; i < liblinphone_tester_nb_test_suites(); i++) { - run_test_suite(test_suite[i]); - } - - if (suite_name){ - CU_pSuite suite; - CU_basic_set_mode(CU_BRM_VERBOSE); - suite=CU_get_suite_by_name(suite_name, CU_get_registry()); - if (test_name) { - CU_pTest test=CU_get_test_by_name(test_name, suite); - CU_ErrorCode err= CU_basic_run_test(suite, test); - if (err != CUE_SUCCESS) ms_error("CU_basic_run_test error %d", err); - } else - CU_basic_run_suite(suite); - } else - { -#if HAVE_CU_CURSES - if (curses) { - /* Run tests using the CUnit curses interface */ - CU_curses_run_tests(); - } - else -#endif - { - /* Run all tests using the CUnit Basic interface */ - CU_basic_set_mode(CU_BRM_VERBOSE); - CU_basic_run_tests(); - } - } - - ret=CU_get_number_of_tests_failed()!=0; - CU_cleanup_registry(); - return ret; -} - -#ifdef ANDROID #include +#include +#include +#define CALLBACK_BUFFER_SIZE 1024 +static JNIEnv *current_env = NULL; +static jobject current_obj = 0; static const char* LogDomain = "liblinphone_tester"; void linphone_android_log_handler(int prio, const char *fmt, va_list args) { @@ -402,122 +62,15 @@ void linphone_android_log_handler(int prio, const char *fmt, va_list args) { static void linphone_android_ortp_log_handler(OrtpLogLevel lev, const char *fmt, va_list args) { int prio; switch(lev){ - case ORTP_DEBUG: prio = ANDROID_LOG_DEBUG; break; - case ORTP_MESSAGE: prio = ANDROID_LOG_INFO; break; - case ORTP_WARNING: prio = ANDROID_LOG_WARN; break; - case ORTP_ERROR: prio = ANDROID_LOG_ERROR; break; - case ORTP_FATAL: prio = ANDROID_LOG_FATAL; break; - default: prio = ANDROID_LOG_DEFAULT; break; + case ORTP_DEBUG: prio = ANDROID_LOG_DEBUG; break; + case ORTP_MESSAGE: prio = ANDROID_LOG_INFO; break; + case ORTP_WARNING: prio = ANDROID_LOG_WARN; break; + case ORTP_ERROR: prio = ANDROID_LOG_ERROR; break; + case ORTP_FATAL: prio = ANDROID_LOG_FATAL; break; + default: prio = ANDROID_LOG_DEFAULT; break; } linphone_android_log_handler(prio, fmt, args); } -#endif - -void helper(const char *name) { - fprintf(stderr,"%s \t--help\n" - "\t\t\t--verbose\n" - "\t\t\t--silent\n" - "\t\t\t--list-suites\n" - "\t\t\t--list-tests \n" - "\t\t\t--config \n" - "\t\t\t--domain \n" - "\t\t\t--auth-domain \n" - "\t\t\t--suite \n" - "\t\t\t--test \n" -#if HAVE_CU_CURSES - "\t\t\t--curses\n" -#endif - , name); -} - -#define CHECK_ARG(argument, index, argc) \ - if(index >= argc) { \ - fprintf(stderr, "Missing argument for \"%s\"\n", argument); \ - return -1; \ - } \ - -#ifndef WINAPI_FAMILY_PHONE_APP -int main (int argc, char *argv[]) { - int i,j; - int ret; - const char *suite_name=NULL; - const char *test_name=NULL; - - liblinphone_tester_init(); - - for(i=1;i -#include -#define CALLBACK_BUFFER_SIZE 1024 -static JNIEnv *current_env = NULL; -static jobject current_obj = 0; void cunit_android_trace_handler(int level, const char *fmt, va_list args) { char buffer[CALLBACK_BUFFER_SIZE]; @@ -532,8 +85,6 @@ void cunit_android_trace_handler(int level, const char *fmt, va_list args) { (*env)->DeleteLocalRef(env,javaString); } -JNIEXPORT - JNIEXPORT jint JNICALL Java_org_linphone_tester_Tester_run(JNIEnv *env, jobject obj, jobjectArray stringArray) { int i, ret; int argc = (*env)->GetArrayLength(env, stringArray); @@ -557,5 +108,123 @@ JNIEXPORT jint JNICALL Java_org_linphone_tester_Tester_run(JNIEnv *env, jobject free(argv); return ret; } + +#endif /* ANDROID */ + +#ifdef __QNX__ +static void liblinphone_tester_qnx_log_handler(OrtpLogLevel lev, const char *fmt, va_list args) { + ortp_qnx_log_handler("liblinphone_tester", lev, fmt, args); +} +#endif /* __QNX__ */ + + +void helper(const char *name) { + fprintf(stderr,"%s \t--help\n" + "\t\t\t--verbose\n" + "\t\t\t--silent\n" + "\t\t\t--list-suites\n" + "\t\t\t--list-tests \n" + "\t\t\t--config \n" + "\t\t\t--domain \n" + "\t\t\t--auth-domain \n" + "\t\t\t--suite \n" + "\t\t\t--test \n" + "\t\t\t--dns-hosts \n" +#if HAVE_CU_CURSES + "\t\t\t--curses\n" +#endif + , name); +} + +#define CHECK_ARG(argument, index, argc) \ +if(index >= argc) { \ +fprintf(stderr, "Missing argument for \"%s\"\n", argument); \ +return -1; \ +} \ + +#ifndef WINAPI_FAMILY_PHONE_APP + + +int main (int argc, char *argv[]) +{ + int i,j; + int ret; + const char *suite_name=NULL; + const char *test_name=NULL; + +#if defined(ANDROID) + linphone_core_set_log_handler(linphone_android_ortp_log_handler); +#elif defined(__QNX__) + linphone_core_set_log_handler(liblinphone_tester_qnx_log_handler); +#else + linphone_core_set_log_file(NULL); #endif + liblinphone_tester_init(); + + for(i=1;i. + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + #ifndef LIBLINPHONE_TESTER_H_ #define LIBLINPHONE_TESTER_H_ @@ -52,27 +53,32 @@ extern test_suite_t message_test_suite; extern test_suite_t presence_test_suite; extern test_suite_t upnp_test_suite; extern test_suite_t event_test_suite; +extern test_suite_t flexisip_test_suite; +extern test_suite_t stun_test_suite; +extern test_suite_t remote_provisioning_test_suite; extern int liblinphone_tester_nb_test_suites(void); extern int liblinphone_tester_nb_tests(const char *suite_name); extern const char * liblinphone_tester_test_suite_name(int suite_index); +extern int liblinphone_tester_test_suite_index(const char *suite_name); extern const char * liblinphone_tester_test_name(const char *suite_name, int test_index); +extern int liblinphone_tester_test_index(const char *suite_name, const char *test_name); extern void liblinphone_tester_init(void); extern void liblinphone_tester_uninit(void); extern int liblinphone_tester_run_tests(const char *suite_name, const char *test_name); - #ifdef __cplusplus }; #endif -const char* test_domain; -const char* auth_domain; -const char* test_username; -const char* test_password; -const char* test_route; +extern const char* test_domain; +extern const char* auth_domain; +extern const char* test_username; +extern const char* test_password; +extern const char* test_route; +extern const char* userhostsfile; typedef struct _stats { @@ -117,7 +123,8 @@ typedef struct _stats { int number_of_LinphoneMessageInProgress; int number_of_LinphoneMessageDelivered; int number_of_LinphoneMessageNotDelivered; - + int number_of_LinphoneIsComposingActiveReceived; + int number_of_LinphoneIsComposingIdleReceived; int number_of_IframeDecoded; @@ -153,7 +160,7 @@ typedef struct _stats { int number_of_LinphonePresenceActivityWorking; int number_of_LinphonePresenceActivityWorship; const LinphonePresenceModel *last_received_presence; - + int number_of_inforeceived; LinphoneInfoMessage* last_received_info_message; @@ -163,12 +170,20 @@ typedef struct _stats { int number_of_LinphoneSubscriptionActive; int number_of_LinphoneSubscriptionTerminated; int number_of_LinphoneSubscriptionError; + int number_of_LinphoneSubscriptionExpiring; int number_of_LinphonePublishProgress; int number_of_LinphonePublishOk; int number_of_LinphonePublishExpiring; int number_of_LinphonePublishError; int number_of_LinphonePublishCleared; + + int number_of_LinphoneConfiguringSkipped; + int number_of_LinphoneConfiguringFailed; + int number_of_LinphoneConfiguringSuccessful; + + int number_of_LinphoneCallEncryptedOn; + int number_of_LinphoneCallEncryptedOff; }stats; typedef struct _LinphoneCoreManager { @@ -193,12 +208,14 @@ void linphone_transfer_state_changed(LinphoneCore *lc, LinphoneCall *transfered, void notify_presence_received(LinphoneCore *lc, LinphoneFriend * lf); void text_message_received(LinphoneCore *lc, LinphoneChatRoom *room, const LinphoneAddress *from_address, const char *message); void message_received(LinphoneCore *lc, LinphoneChatRoom *room, LinphoneChatMessage* message); +void is_composing_received(LinphoneCore *lc, LinphoneChatRoom *room); void info_message_received(LinphoneCore *lc, LinphoneCall *call, const LinphoneInfoMessage *msg); void new_subscription_requested(LinphoneCore *lc, LinphoneFriend *lf, const char *url); -void auth_info_requested(LinphoneCore *lc, const char *realm, const char *username, const char *domain); void linphone_subscription_state_change(LinphoneCore *lc, LinphoneEvent *ev, LinphoneSubscriptionState state); void linphone_publish_state_changed(LinphoneCore *lc, LinphoneEvent *ev, LinphonePublishState state); void linphone_notify_received(LinphoneCore *lc, LinphoneEvent *lev, const char *eventname, const LinphoneContent *content); +void linphone_configuration_status(LinphoneCore *lc, LinphoneConfiguringState status, const char *message); +void linphone_call_encryption_changed(LinphoneCore *lc, LinphoneCall *call, bool_t on, const char *authentication_token); LinphoneAddress * create_linphone_address(const char * domain); bool_t wait_for(LinphoneCore* lc_1, LinphoneCore* lc_2,int* counter,int value); @@ -208,6 +225,12 @@ bool_t wait_for_until(LinphoneCore* lc_1, LinphoneCore* lc_2,int* counter,int va bool_t call(LinphoneCoreManager* caller_mgr,LinphoneCoreManager* callee_mgr); stats * get_stats(LinphoneCore *lc); LinphoneCoreManager *get_manager(LinphoneCore *lc); +const char *liblinphone_tester_get_subscribe_content(void); +const char *liblinphone_tester_get_notify_content(void); +void liblinphone_tester_chat_message_state_change(LinphoneChatMessage* msg,LinphoneChatMessageState state,void* ud); +void liblinphone_tester_check_rtcp(LinphoneCoreManager* caller, LinphoneCoreManager* callee); +void liblinphone_tester_clock_start(MSTimeSpec *start); +bool_t liblinphone_tester_clock_elapsed(const MSTimeSpec *start, int value_ms); #endif /* LIBLINPHONE_TESTER_H_ */ diff --git a/tester/local_tester_hosts b/tester/local_tester_hosts new file mode 100644 index 000000000..de1edc48c --- /dev/null +++ b/tester/local_tester_hosts @@ -0,0 +1 @@ +127.0.0.1 sip2.linphone.org sip.example.org sipopen.example.org auth.example.org auth1.example.org auth2.example.org altname.linphone.org sip.wildcard1.linphone.org altname.wildcard2.linphone.org diff --git a/tester/marie_xml b/tester/marie_xml new file mode 100644 index 000000000..5818930ba --- /dev/null +++ b/tester/marie_xml @@ -0,0 +1,50 @@ + + +
+ -1 + -1 + -1 + 0 + 0 + 0 + 1 +
+
+ marie + marie + secret + sip.example.org +
+
+ sip.example.org;transport=tcp + sip.example.org;transport=tcp;lr + sip:marie@sip.example.org + 3600 + 1 + 0 + 0 +
+
+ "Paupoche" <sip:pauline@sip.example.org> + accept + 0 +
+
+ 8070 + 9072 +
+
+ 0 + 0 + 0 + vga + 0 + 0 + 0 + 0 + StaticImage: Static picture +
+
+ 0 #to not overload cpu in case of VG +
+
diff --git a/tester/message_tester.c b/tester/message_tester.c index c3001c226..8568492d4 100644 --- a/tester/message_tester.c +++ b/tester/message_tester.c @@ -1,10 +1,10 @@ /* - belle-sip - SIP (RFC3261) library. - Copyright (C) 2010 Belledonne Communications SARL + liblinphone_tester - liblinphone test suite + Copyright (C) 2013 Belledonne Communications SARL This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or + the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -16,6 +16,7 @@ along with this program. If not, see . */ + #include #include "CUnit/Basic.h" #include "linphonecore.h" @@ -32,19 +33,30 @@ void text_message_received(LinphoneCore *lc, LinphoneChatRoom *room, const Linph void message_received(LinphoneCore *lc, LinphoneChatRoom *room, LinphoneChatMessage* message) { char* from=linphone_address_as_string(linphone_chat_message_get_from(message)); stats* counters; - ms_message("Message from [%s] is [%s] , external URL [%s]",from - ,linphone_chat_message_get_text(message) - ,linphone_chat_message_get_external_body_url(message)); + const char *text=linphone_chat_message_get_text(message); + const char *external_body_url=linphone_chat_message_get_external_body_url(message); + ms_message("Message from [%s] is [%s] , external URL [%s]",from?from:"" + ,text?text:"" + ,external_body_url?external_body_url:""); ms_free(from); counters = get_stats(lc); counters->number_of_LinphoneMessageReceived++; if (linphone_chat_message_get_external_body_url(message)) { - counters->number_of_LinphoneMessageExtBodyReceived++; - CU_ASSERT_STRING_EQUAL(linphone_chat_message_get_external_body_url(message),message_external_body_url); + counters->number_of_LinphoneMessageExtBodyReceived++; + CU_ASSERT_STRING_EQUAL(linphone_chat_message_get_external_body_url(message),message_external_body_url); } } -void linphone_chat_message_state_change(LinphoneChatMessage* msg,LinphoneChatMessageState state,void* ud) { +void is_composing_received(LinphoneCore *lc, LinphoneChatRoom *room) { + stats *counters = get_stats(lc); + if (room->remote_is_composing == LinphoneIsComposingActive) { + counters->number_of_LinphoneIsComposingActiveReceived++; + } else { + counters->number_of_LinphoneIsComposingIdleReceived++; + } +} + +void liblinphone_tester_chat_message_state_change(LinphoneChatMessage* msg,LinphoneChatMessageState state,void* ud) { LinphoneCore* lc=(LinphoneCore*)ud; stats* counters = get_stats(lc); ms_message("Message [%s] [%s]",linphone_chat_message_get_text(msg),linphone_chat_message_state_to_string(state)); @@ -82,6 +94,63 @@ static void text_message(void) { linphone_core_manager_destroy(pauline); } +static void text_message_within_dialog(void) { + LinphoneCoreManager* marie = linphone_core_manager_new("marie_rc"); + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); + + lp_config_set_int(pauline->lc->config,"sip","chat_use_call_dialogs",1); + + char* to = linphone_address_as_string(marie->identity); + LinphoneChatRoom* chat_room = linphone_core_create_chat_room(pauline->lc,to); + ms_free(to); + + CU_ASSERT_TRUE(call(marie,pauline)); + + linphone_chat_room_send_message(chat_room,"Bla bla bla bla"); + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneMessageReceived,1)); + + CU_ASSERT_PTR_NOT_NULL(linphone_core_get_chat_room(marie->lc,pauline->identity)); + + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(pauline); +} + +static LinphoneAuthInfo* text_message_with_credential_from_auth_cb_auth_info; +static void text_message_with_credential_from_auth_cb_auth_info_requested(LinphoneCore *lc, const char *realm, const char *username, const char *domain) { + stats* counters; + ms_message("text_message_with_credential_from_auth_cb:Auth info requested for user id [%s] at realm [%s]\n" + ,username + ,realm); + counters = get_stats(lc); + counters->number_of_auth_info_requested++; + linphone_core_add_auth_info(lc,text_message_with_credential_from_auth_cb_auth_info); /*add stored authentication info to LinphoneCore*/ +} + + +static void text_message_with_credential_from_auth_cb(void) { + LinphoneCoreManager* marie = linphone_core_manager_new("marie_rc"); + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); + text_message_with_credential_from_auth_cb_auth_info=linphone_auth_info_clone((LinphoneAuthInfo*)(linphone_core_get_auth_info_list(marie->lc)->data)); + + /*to force cb to be called*/ + linphone_core_clear_all_auth_info(marie->lc); + marie->lc->vtable.auth_info_requested=text_message_with_credential_from_auth_cb_auth_info_requested; + + char* to = linphone_address_as_string(marie->identity); + LinphoneChatRoom* chat_room = linphone_core_create_chat_room(pauline->lc,to); + ms_free(to); + + + linphone_chat_room_send_message(chat_room,"Bla bla bla bla"); + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneMessageReceived,1)); + CU_ASSERT_EQUAL(marie->stat.number_of_LinphoneMessageReceivedLegacy,1); + + CU_ASSERT_PTR_NOT_NULL(linphone_core_get_chat_room(marie->lc,pauline->identity)); + + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(pauline); +} + static void text_message_with_privacy(void) { LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); @@ -149,7 +218,7 @@ static void text_message_with_ack(void) { char* to = linphone_address_as_string(marie->identity); LinphoneChatRoom* chat_room = linphone_core_create_chat_room(pauline->lc,to); LinphoneChatMessage* message = linphone_chat_room_create_message(chat_room,"Bli bli bli \n blu"); - linphone_chat_room_send_message2(chat_room,message,linphone_chat_message_state_change,pauline->lc); + linphone_chat_room_send_message2(chat_room,message,liblinphone_tester_chat_message_state_change,pauline->lc); CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneMessageReceived,1)); CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneMessageDelivered,1)); CU_ASSERT_EQUAL(pauline->stat.number_of_LinphoneMessageInProgress,1); @@ -164,7 +233,7 @@ static void text_message_with_external_body(void) { LinphoneChatRoom* chat_room = linphone_core_create_chat_room(pauline->lc,to); LinphoneChatMessage* message = linphone_chat_room_create_message(chat_room,"Bli bli bli \n blu"); linphone_chat_message_set_external_body_url(message,message_external_body_url="http://www.linphone.org"); - linphone_chat_room_send_message2(chat_room,message,linphone_chat_message_state_change,pauline->lc); + linphone_chat_room_send_message2(chat_room,message,liblinphone_tester_chat_message_state_change,pauline->lc); CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneMessageReceived,1)); CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneMessageDelivered,1)); @@ -183,7 +252,7 @@ static void text_message_with_send_error(void) { LinphoneChatMessage* message = linphone_chat_room_create_message(chat_room,"Bli bli bli \n blu"); /*simultate a network error*/ sal_set_send_error(marie->lc->sal, -1); - linphone_chat_room_send_message2(chat_room,message,linphone_chat_message_state_change,marie->lc); + linphone_chat_room_send_message2(chat_room,message,liblinphone_tester_chat_message_state_change,marie->lc); CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneMessageNotDelivered,1)); /*CU_ASSERT_EQUAL(marie->stat.number_of_LinphoneMessageInProgress,1);*/ @@ -194,6 +263,25 @@ static void text_message_with_send_error(void) { linphone_core_manager_destroy(pauline); } +static void text_message_denied(void) { + LinphoneCoreManager* marie = linphone_core_manager_new("marie_rc"); + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); + char* to = linphone_address_as_string(pauline->identity); + LinphoneChatRoom* chat_room = linphone_core_create_chat_room(marie->lc,to); + LinphoneChatMessage* message = linphone_chat_room_create_message(chat_room,"Bli bli bli \n blu"); + + /*pauline doesn't want to be disturbed*/ + linphone_core_disable_chat(pauline->lc,LinphoneReasonDoNotDisturb); + + linphone_chat_room_send_message2(chat_room,message,liblinphone_tester_chat_message_state_change,marie->lc); + + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneMessageNotDelivered,1)); + CU_ASSERT_EQUAL(pauline->stat.number_of_LinphoneMessageReceived,0); + + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(pauline); +} + static const char *info_content="blabla"; void info_message_received(LinphoneCore *lc, LinphoneCall* call, const LinphoneInfoMessage *msg){ @@ -264,15 +352,37 @@ static void info_message_with_body(){ info_message_with_args(TRUE); } +static void is_composing_notification(void) { + LinphoneCoreManager* marie = linphone_core_manager_new("marie_rc"); + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); + char* to = linphone_address_as_string(marie->identity); + LinphoneChatRoom* chat_room = linphone_core_create_chat_room(pauline->lc, to); + int dummy = 0; + + ms_free(to); + linphone_chat_room_compose(chat_room); + wait_for_until(pauline->lc, marie->lc, &dummy, 1, 1500); /*just to sleep while iterating*/ + linphone_chat_room_send_message(chat_room, "Composing a message"); + CU_ASSERT_TRUE(wait_for(pauline->lc, marie->lc, &marie->stat.number_of_LinphoneIsComposingActiveReceived, 1)); + CU_ASSERT_TRUE(wait_for(pauline->lc, marie->lc, &marie->stat.number_of_LinphoneIsComposingIdleReceived, 2)); + + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(pauline); +} + test_t message_tests[] = { { "Text message", text_message }, + { "Text message within call's dialog", text_message_within_dialog}, + { "Text message with credentials from auth info cb", text_message_with_credential_from_auth_cb}, { "Text message with privacy", text_message_with_privacy }, { "Text message compatibility mode", text_message_compatibility_mode }, { "Text message with ack", text_message_with_ack }, { "Text message with send error", text_message_with_send_error }, { "Text message with external body", text_message_with_external_body }, + { "Text message denied", text_message_denied }, { "Info message", info_message }, - { "Info message with body", info_message_with_body } + { "Info message with body", info_message_with_body }, + { "IsComposing notification", is_composing_notification } }; test_suite_t message_test_suite = { diff --git a/tester/presence_tester.c b/tester/presence_tester.c index 9f3f009f1..57b638c34 100644 --- a/tester/presence_tester.c +++ b/tester/presence_tester.c @@ -1,10 +1,10 @@ /* - belle-sip - SIP (RFC3261) library. - Copyright (C) 2010 Belledonne Communications SARL + liblinphone_tester - liblinphone test suite + Copyright (C) 2013 Belledonne Communications SARL This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or + the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -226,6 +226,8 @@ static void unsubscribe_while_subscribing(void) { linphone_core_manager_destroy(marie); } +#if 0 +/* the core no longer changes the presence status when a call is ongoing, this is left to the application*/ static void call_with_presence(void) { LinphoneCoreManager* marie = presence_linphone_core_manager_new("marie"); LinphoneCoreManager* pauline = presence_linphone_core_manager_new("pauline"); @@ -247,6 +249,8 @@ static void call_with_presence(void) { linphone_core_manager_destroy(pauline); } +#endif + static void presence_information(void) { const char *bike_description = "Riding my bike"; const char *vacation_note = "I'm on vacation until July 4th"; @@ -336,7 +340,7 @@ static void presence_information(void) { test_t presence_tests[] = { { "Simple Subscribe", simple_subscribe }, { "Simple Publish", simple_publish }, - { "Call with presence", call_with_presence }, + /*{ "Call with presence", call_with_presence },*/ { "Unsubscribe while subscribing", unsubscribe_while_subscribing }, { "Presence information", presence_information }, { "App managed presence failure", subscribe_failure_handle_by_app }, diff --git a/tester/empty_rc b/tester/rcfiles/empty_rc similarity index 100% rename from tester/empty_rc rename to tester/rcfiles/empty_rc diff --git a/tester/laure_rc b/tester/rcfiles/laure_rc similarity index 100% rename from tester/laure_rc rename to tester/rcfiles/laure_rc diff --git a/tester/marie_early_rc b/tester/rcfiles/marie_early_rc similarity index 100% rename from tester/marie_early_rc rename to tester/rcfiles/marie_early_rc diff --git a/tester/marie_rc b/tester/rcfiles/marie_rc similarity index 84% rename from tester/marie_rc rename to tester/rcfiles/marie_rc index d5b7d7c87..7b7645800 100644 --- a/tester/marie_rc +++ b/tester/rcfiles/marie_rc @@ -1,10 +1,11 @@ [sip] -sip_port=5082 -sip_tcp_port=5082 -sip_tls_port=5083 +sip_port=-1 +sip_tcp_port=-1 +sip_tls_port=-1 default_proxy=0 ping_with_options=0 register_only_when_network_is_up=0 +composing_idle_timeout=1 [auth_info_0] username=marie @@ -44,4 +45,4 @@ automatically_accept=0 device=StaticImage: Static picture [sound] -echocancellation=0 #to not overload cpu in case of VG \ No newline at end of file +echocancellation=0 #to not overload cpu in case of VG diff --git a/tester/rcfiles/marie_remote_404_rc b/tester/rcfiles/marie_remote_404_rc new file mode 100644 index 000000000..a47d68ce7 --- /dev/null +++ b/tester/rcfiles/marie_remote_404_rc @@ -0,0 +1,2 @@ +[misc] +config-uri=http://smtp.linphone.org/marie_404 diff --git a/tester/rcfiles/marie_remote_default_values_rc b/tester/rcfiles/marie_remote_default_values_rc new file mode 100644 index 000000000..ec5e4f633 --- /dev/null +++ b/tester/rcfiles/marie_remote_default_values_rc @@ -0,0 +1,2 @@ +[misc] +config-uri=http://smtp.linphone.org/marie_default diff --git a/tester/rcfiles/marie_remote_https_rc b/tester/rcfiles/marie_remote_https_rc new file mode 100644 index 000000000..cc5343c30 --- /dev/null +++ b/tester/rcfiles/marie_remote_https_rc @@ -0,0 +1,2 @@ +[misc] +config-uri=https://smtp.linphone.org/marie_xml diff --git a/tester/rcfiles/marie_remote_invalid_rc b/tester/rcfiles/marie_remote_invalid_rc new file mode 100644 index 000000000..3d4dca248 --- /dev/null +++ b/tester/rcfiles/marie_remote_invalid_rc @@ -0,0 +1,2 @@ +[misc] +config-uri=http://smtp.linphone.org/marie_invalid diff --git a/tester/rcfiles/marie_remote_localfile2_rc b/tester/rcfiles/marie_remote_localfile2_rc new file mode 100644 index 000000000..d41ca4c8d --- /dev/null +++ b/tester/rcfiles/marie_remote_localfile2_rc @@ -0,0 +1,11 @@ + + +
+ 0 + 1 +
+
+ 1 + 1 +
+
diff --git a/tester/rcfiles/marie_remote_localfile_android_rc b/tester/rcfiles/marie_remote_localfile_android_rc new file mode 100644 index 000000000..ef0a321ce --- /dev/null +++ b/tester/rcfiles/marie_remote_localfile_android_rc @@ -0,0 +1,3 @@ +[misc] +config-uri=file:///data/data/org.linphone.tester/files/config_files/rcfiles/marie_remote_localfile2_rc + diff --git a/tester/rcfiles/marie_remote_localfile_rc b/tester/rcfiles/marie_remote_localfile_rc new file mode 100644 index 000000000..b2f947607 --- /dev/null +++ b/tester/rcfiles/marie_remote_localfile_rc @@ -0,0 +1,3 @@ +[misc] +config-uri=file://./rcfiles/marie_remote_localfile2_rc + diff --git a/tester/rcfiles/marie_remote_rc b/tester/rcfiles/marie_remote_rc new file mode 100644 index 000000000..c581e0995 --- /dev/null +++ b/tester/rcfiles/marie_remote_rc @@ -0,0 +1,2 @@ +[misc] +config-uri=http://smtp.linphone.org/marie_xml diff --git a/tester/rcfiles/marie_transient_remote_rc b/tester/rcfiles/marie_transient_remote_rc new file mode 100644 index 000000000..138da3cc1 --- /dev/null +++ b/tester/rcfiles/marie_transient_remote_rc @@ -0,0 +1,2 @@ +[misc] +config-uri=http://smtp.linphone.org/marie_transient_xml diff --git a/tester/multi_account_lrc b/tester/rcfiles/multi_account_rc similarity index 100% rename from tester/multi_account_lrc rename to tester/rcfiles/multi_account_rc diff --git a/tester/pauline_alt_rc b/tester/rcfiles/pauline_alt_rc similarity index 100% rename from tester/pauline_alt_rc rename to tester/rcfiles/pauline_alt_rc diff --git a/tester/pauline_rc b/tester/rcfiles/pauline_rc similarity index 84% rename from tester/pauline_rc rename to tester/rcfiles/pauline_rc index 204486f66..09669b72c 100644 --- a/tester/pauline_rc +++ b/tester/rcfiles/pauline_rc @@ -1,10 +1,11 @@ [sip] -sip_port=5072 -sip_tcp_port=5072 -sip_tls_port=5073 +sip_port=-1 +sip_tcp_port=-1 +sip_tls_port=-1 default_proxy=0 ping_with_options=0 register_only_when_network_is_up=0 +composing_idle_timeout=1 [auth_info_0] username=pauline @@ -43,4 +44,4 @@ automatically_accept=0 device=StaticImage: Static picture [sound] -echocancellation=0 #to not overload cpu in case of VG \ No newline at end of file +echocancellation=0 #to not overload cpu in case of VG diff --git a/tester/marie_no_sdp_rc b/tester/rcfiles/pauline_tcp_rc similarity index 55% rename from tester/marie_no_sdp_rc rename to tester/rcfiles/pauline_tcp_rc index 50a740dca..809c1ace6 100644 --- a/tester/marie_no_sdp_rc +++ b/tester/rcfiles/pauline_tcp_rc @@ -1,37 +1,36 @@ [sip] -sip_port=5082 -sip_tcp_port=5082 -sip_tls_port=5083 +sip_port=-1 +sip_tcp_port=-1 +sip_tls_port=-1 default_proxy=0 ping_with_options=0 register_only_when_network_is_up=0 -sdp_200_ack=1 +composing_idle_timeout=1 [auth_info_0] -username=marie -userid=marie +username=pauline +userid=pauline passwd=secret realm=sip.example.org [proxy_0] -reg_proxy=sip.example.org;transport=tcp -reg_route=sip.example.org;transport=tcp;lr -reg_identity=sip:marie@sip.example.org +reg_proxy=sip2.linphone.org;transport=tcp +reg_route=sip2.linphone.org;transport=tcp +reg_identity=sip:pauline@sip.example.org reg_expires=3600 reg_sendregister=1 publish=0 dial_escape_plus=0 -[friend_0] -url="Paupoche" -pol=accept -subscribe=0 - +#[friend_0] +#url="Mariette" +#pol=accept +#subscribe=0 [rtp] -audio_rtp_port=8070 -video_rtp_port=8072 +audio_rtp_port=8090 +video_rtp_port=9092 [video] display=0 diff --git a/tester/pauline_wild_rc b/tester/rcfiles/pauline_wild_rc similarity index 100% rename from tester/pauline_wild_rc rename to tester/rcfiles/pauline_wild_rc diff --git a/tester/rcfiles/stun_rc b/tester/rcfiles/stun_rc new file mode 100644 index 000000000..954a83b6c --- /dev/null +++ b/tester/rcfiles/stun_rc @@ -0,0 +1,2 @@ + [net] + firewall_policy=2 diff --git a/tester/upnp_rc b/tester/rcfiles/upnp_rc similarity index 100% rename from tester/upnp_rc rename to tester/rcfiles/upnp_rc diff --git a/tester/register_tester.c b/tester/register_tester.c index 9531c1447..0798bd61f 100644 --- a/tester/register_tester.c +++ b/tester/register_tester.c @@ -4,7 +4,7 @@ This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or + the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -22,6 +22,26 @@ #include "private.h" #include "liblinphone_tester.h" +static void auth_info_requested2(LinphoneCore *lc, const char *realm, const char *username, const char *domain) { + stats* counters; + + ms_message("Auth info requested for user id [%s] at realm [%s]\n" + ,username + ,realm); + counters = get_stats(lc); + counters->number_of_auth_info_requested++; + +} + +static void auth_info_requested(LinphoneCore *lc, const char *realm, const char *username, const char *domain) { + LinphoneAuthInfo *info; + auth_info_requested2(lc,realm,username,domain); + info=linphone_auth_info_new(test_username,NULL,test_password,NULL,realm,domain); /*create authentication structure from identity*/ + linphone_core_add_auth_info(lc,info); /*add authentication info to LinphoneCore*/ +} + + + static LinphoneCoreManager* create_lcm_with_auth(unsigned int with_auth) { LinphoneCoreManager* mgr=linphone_core_manager_new(NULL); @@ -108,7 +128,8 @@ static void register_with_refresh_base_3(LinphoneCore* lc linphone_core_add_auth_info(lc,info); /*add authentication info to LinphoneCore*/ } } - if (linphone_proxy_config_get_error(proxy_cfg) == LinphoneReasonBadCredentials) + if (linphone_proxy_config_get_error(proxy_cfg) == LinphoneReasonBadCredentials + || (counters->number_of_auth_info_requested>2 &&linphone_proxy_config_get_error(proxy_cfg) == LinphoneReasonUnauthorized)) /*no need to continue if auth cannot be found*/ break; /*no need to continue*/ ms_usleep(100000); } @@ -261,6 +282,8 @@ static void authenticated_register_with_no_initial_credentials(){ mgr = linphone_core_manager_new(NULL); + mgr->lc->vtable.auth_info_requested=auth_info_requested; + counters= get_stats(mgr->lc); counters->number_of_auth_info_requested=0; register_with_refresh(mgr,FALSE,auth_domain,route); @@ -268,14 +291,6 @@ static void authenticated_register_with_no_initial_credentials(){ linphone_core_manager_destroy(mgr); } -static void auth_info_requested2(LinphoneCore *lc, const char *realm, const char *username, const char *domain) { - stats* counters; - ms_message("Auth info requested for user id [%s] at realm [%s]\n" - ,username - ,realm); - counters = get_stats(lc); - counters->number_of_auth_info_requested++; -} static void authenticated_register_with_late_credentials(){ LinphoneCoreManager *mgr; @@ -286,7 +301,7 @@ static void authenticated_register_with_late_credentials(){ sprintf(route,"sip:%s",test_route); mgr = linphone_core_manager_new(NULL); - mgr->lc->vtable.auth_info_requested=auth_info_requested2; + counters = get_stats(mgr->lc); register_with_refresh_base_2(mgr->lc,FALSE,auth_domain,route,TRUE,transport); CU_ASSERT_EQUAL(counters->number_of_auth_info_requested,1); @@ -299,14 +314,14 @@ static void authenticated_register_with_wrong_late_credentials(){ LCSipTransports transport = {5070,5070,0,5071}; char route[256]; const char* saved_test_passwd=test_password; - char* wrong_passwd="mot de pass tout pourrit"; + char* wrong_passwd="mot de pass tout pourri"; test_password=wrong_passwd; sprintf(route,"sip:%s",test_route); mgr = linphone_core_manager_new(NULL); - mgr->lc->vtable.auth_info_requested=auth_info_requested2; + counters = get_stats(mgr->lc); register_with_refresh_base_3(mgr->lc,FALSE,auth_domain,route,TRUE,transport,LinphoneRegistrationFailed); CU_ASSERT_EQUAL(counters->number_of_auth_info_requested,2); @@ -317,8 +332,7 @@ static void authenticated_register_with_wrong_late_credentials(){ linphone_core_manager_destroy(mgr); } -static void authenticated_register_with_wrong_credentials(){ - LinphoneCoreManager *mgr; +static void authenticated_register_with_wrong_credentials_with_params_base(const char* user_agent,LinphoneCoreManager *mgr) { stats* counters; LCSipTransports transport = {5070,5070,0,5071}; LinphoneAuthInfo *info=linphone_auth_info_new(test_username,NULL,"wrong passwd",NULL,auth_domain,NULL); /*create authentication structure from identity*/ @@ -326,18 +340,67 @@ static void authenticated_register_with_wrong_credentials(){ sprintf(route,"sip:%s",test_route); - mgr=linphone_core_manager_new(NULL); mgr->lc->vtable.auth_info_requested=auth_info_requested2; - + + sal_set_refresher_retry_after(mgr->lc->sal,500); + if (user_agent) { + linphone_core_set_user_agent(mgr->lc,user_agent,NULL); + } linphone_core_add_auth_info(mgr->lc,info); /*add wrong authentication info to LinphoneCore*/ counters = get_stats(mgr->lc); - register_with_refresh_base_3(mgr->lc,TRUE,auth_domain,route,TRUE,transport,LinphoneRegistrationFailed); - CU_ASSERT_EQUAL(counters->number_of_auth_info_requested,1); + register_with_refresh_base_3(mgr->lc,TRUE,auth_domain,route,FALSE,transport,LinphoneRegistrationFailed); + //CU_ASSERT_EQUAL(counters->number_of_auth_info_requested,3); register_with_refresh_base_3 does not alow to precisely check number of number_of_auth_info_requested + /*wait for retry*/ + CU_ASSERT_TRUE(wait_for(mgr->lc,mgr->lc,&counters->number_of_auth_info_requested,4)); + CU_ASSERT_EQUAL(counters->number_of_LinphoneRegistrationFailed,1); + + /*check the detailed error info */ + if (!user_agent || strcmp(user_agent,"tester-no-403")!=0){ + LinphoneProxyConfig *cfg=NULL; + linphone_core_get_default_proxy(mgr->lc,&cfg); + CU_ASSERT_PTR_NOT_NULL(cfg); + if (cfg){ + const LinphoneErrorInfo *ei=linphone_proxy_config_get_error_info(cfg); + const char *phrase=linphone_error_info_get_phrase(ei); + CU_ASSERT_PTR_NOT_NULL(phrase); + if (phrase) CU_ASSERT_TRUE(strcmp(phrase,"Forbidden")==0); + CU_ASSERT_EQUAL(linphone_error_info_get_protocol_code(ei),403); + CU_ASSERT_PTR_NULL(linphone_error_info_get_details(ei)); + } + + } + } +static void authenticated_register_with_wrong_credentials_with_params(const char* user_agent) { + LinphoneCoreManager *mgr = linphone_core_manager_new(NULL); + authenticated_register_with_wrong_credentials_with_params_base(user_agent,mgr); linphone_core_manager_destroy(mgr); } +static void authenticated_register_with_wrong_credentials() { + authenticated_register_with_wrong_credentials_with_params(NULL); +} +static void authenticated_register_with_wrong_credentials_2() { + LinphoneCoreManager *mgr = linphone_core_manager_new(NULL); + stats* counters = get_stats(mgr->lc); + int current_in_progress; + LinphoneProxyConfig* proxy; + authenticated_register_with_wrong_credentials_with_params_base(NULL,mgr); + + linphone_core_get_default_proxy(mgr->lc,&proxy); + /*Make sure registration attempts are stopped*/ + linphone_proxy_config_edit(proxy); + linphone_proxy_config_enable_register(proxy,FALSE); + linphone_proxy_config_done(proxy); + current_in_progress=counters->number_of_LinphoneRegistrationProgress; + CU_ASSERT_FALSE(wait_for(mgr->lc,mgr->lc,&counters->number_of_LinphoneRegistrationProgress,current_in_progress+1)); + + linphone_core_manager_destroy(mgr); +} +static void authenticated_register_with_wrong_credentials_without_403() { + authenticated_register_with_wrong_credentials_with_params("tester-no-403"); +} static LinphoneCoreManager* configure_lcm(void) { - LinphoneCoreManager *mgr=linphone_core_manager_new( "multi_account_lrc"); + LinphoneCoreManager *mgr=linphone_core_manager_new( "multi_account_rc"); stats *counters=&mgr->stat; CU_ASSERT_TRUE(wait_for(mgr->lc,mgr->lc,&counters->number_of_LinphoneRegistrationOk,ms_list_size(linphone_core_get_proxy_config_list(mgr->lc)))); return mgr; @@ -459,7 +522,7 @@ static void io_recv_error_late_recovery(){ int number_of_udp_proxy=0; MSList* lcs; - mgr=linphone_core_manager_new2( "multi_account_lrc",FALSE); /*to make sure iterates are not call yet*/ + mgr=linphone_core_manager_new2( "multi_account_rc",FALSE); /*to make sure iterates are not call yet*/ lc=mgr->lc; sal_set_refresher_retry_after(lc->sal,1000); counters=&mgr->stat; @@ -481,7 +544,7 @@ static void io_recv_error_late_recovery(){ sal_set_recv_error(lc->sal, 1); /*reset*/ sal_set_send_error(lc->sal, 0); - CU_ASSERT_TRUE(wait_for_list(lcs=ms_list_append(NULL,lc),&counters->number_of_LinphoneRegistrationOk,register_ok-number_of_udp_proxy +register_ok,sal_get_refresher_retry_after(lc->sal)+1000)); + CU_ASSERT_TRUE(wait_for_list(lcs=ms_list_append(NULL,lc),&counters->number_of_LinphoneRegistrationOk,register_ok-number_of_udp_proxy +register_ok,sal_get_refresher_retry_after(lc->sal)+3000)); linphone_core_manager_destroy(mgr); } @@ -504,11 +567,17 @@ static void io_recv_error_without_active_register(){ for (proxys=ms_list_copy(linphone_core_get_proxy_config_list(lc));proxys!=NULL;proxys=proxys->next) { LinphoneProxyConfig* proxy_cfg=(LinphoneProxyConfig*)proxys->data; linphone_proxy_config_edit(proxy_cfg); + } + ms_list_free(proxys); + /*wait for unregistrations*/ + CU_ASSERT_TRUE(wait_for(lc,lc,&counters->number_of_LinphoneRegistrationCleared,register_ok /*because 1 udp*/)); + + for (proxys=ms_list_copy(linphone_core_get_proxy_config_list(lc));proxys!=NULL;proxys=proxys->next) { + LinphoneProxyConfig* proxy_cfg=(LinphoneProxyConfig*)proxys->data; linphone_proxy_config_enable_register(proxy_cfg,FALSE); linphone_proxy_config_done(proxy_cfg); } ms_list_free(proxys); - CU_ASSERT_TRUE(wait_for(lc,lc,&counters->number_of_LinphoneRegistrationCleared,register_ok /*because 1 udp*/)); sal_set_recv_error(lc->sal, 0); @@ -545,6 +614,7 @@ static void tls_certificate_failure(){ linphone_core_destroy(mgr->lc); } +/*the purpose of this test is to check that will not block the proxy config during SSL handshake for entire life in case of mistaken configuration*/ static void tls_with_non_tls_server(){ LinphoneCoreManager *mgr; LinphoneProxyConfig* proxy_cfg; @@ -554,6 +624,7 @@ static void tls_with_non_tls_server(){ mgr=linphone_core_manager_new2( "marie_rc", 0); lc=mgr->lc; + sal_set_transport_timeout(lc->sal,3000); linphone_core_get_default_proxy(lc,&proxy_cfg); linphone_proxy_config_edit(proxy_cfg); addr=linphone_address_new(linphone_proxy_config_get_addr(proxy_cfg)); @@ -562,9 +633,7 @@ static void tls_with_non_tls_server(){ linphone_proxy_config_set_server_addr(proxy_cfg,tmp); linphone_proxy_config_done(proxy_cfg); linphone_address_destroy(addr); - /* FIXME http://git.linphone.org/mantis/view.php?id=758 - CU_ASSERT_TRUE(wait_for(lc,lc,&mgr->stat.number_of_LinphoneRegistrationFailed,1)); - */ + CU_ASSERT_TRUE(wait_for_until(lc,lc,&mgr->stat.number_of_LinphoneRegistrationFailed,1,5000)); linphone_core_manager_destroy(mgr); } @@ -611,6 +680,8 @@ test_t register_tests[] = { { "Ha1 authenticated register", ha1_authenticated_register }, { "Digest auth without initial credentials", authenticated_register_with_no_initial_credentials }, { "Digest auth with wrong credentials", authenticated_register_with_wrong_credentials }, + { "Digest auth with wrong credentials, check if registration attempts are stopped", authenticated_register_with_wrong_credentials_2 }, + { "Digest auth with wrong credentials without 403", authenticated_register_with_wrong_credentials_without_403}, { "Authenticated register with wrong late credentials", authenticated_register_with_wrong_late_credentials}, { "Authenticated register with late credentials", authenticated_register_with_late_credentials }, { "Register with refresh", simple_register_with_refresh }, diff --git a/tester/remote_provisioning_tester.c b/tester/remote_provisioning_tester.c new file mode 100644 index 000000000..365673ff6 --- /dev/null +++ b/tester/remote_provisioning_tester.c @@ -0,0 +1,126 @@ +/* + liblinphone_tester - liblinphone test suite + Copyright (C) 2013 Belledonne Communications SARL + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include +#include "CUnit/Basic.h" +#include "linphonecore.h" +#include "private.h" +#include "liblinphone_tester.h" + +void linphone_configuration_status(LinphoneCore *lc, LinphoneConfiguringState status, const char *message) { + ms_message("Configuring state = %i with message %s", status, message?message:""); + + stats* counters = get_stats(lc); + if (status == LinphoneConfiguringSkipped) { + counters->number_of_LinphoneConfiguringSkipped++; + } else if (status == LinphoneConfiguringFailed) { + counters->number_of_LinphoneConfiguringFailed++; + } else if (status == LinphoneConfiguringSuccessful) { + counters->number_of_LinphoneConfiguringSuccessful++; + } +} + +static void remote_provisioning_skipped(void) { + LinphoneCoreManager* marie = linphone_core_manager_new2("marie_rc", FALSE); + CU_ASSERT_TRUE(wait_for(marie->lc,NULL,&marie->stat.number_of_LinphoneConfiguringSkipped,1)); + linphone_core_manager_destroy(marie); +} + +static void remote_provisioning_http(void) { + LinphoneCoreManager* marie = linphone_core_manager_new2("marie_remote_rc", FALSE); + CU_ASSERT_TRUE(wait_for(marie->lc,NULL,&marie->stat.number_of_LinphoneConfiguringSuccessful,1)); + CU_ASSERT_TRUE(wait_for(marie->lc,NULL,&marie->stat.number_of_LinphoneRegistrationOk,1)); + linphone_core_manager_destroy(marie); +} + +static void remote_provisioning_transient(void) { + LinphoneCoreManager* marie = linphone_core_manager_new2("marie_transient_remote_rc", FALSE); + CU_ASSERT_TRUE(wait_for(marie->lc,NULL,&marie->stat.number_of_LinphoneConfiguringSuccessful,1)); + CU_ASSERT_TRUE(wait_for(marie->lc,NULL,&marie->stat.number_of_LinphoneRegistrationOk,1)); + CU_ASSERT_TRUE(linphone_core_is_provisioning_transient(marie->lc) == TRUE); + CU_ASSERT_TRUE(linphone_core_get_provisioning_uri(marie->lc) == NULL); + linphone_core_manager_destroy(marie); +} + +static void remote_provisioning_https(void) { + LinphoneCoreManager* marie = linphone_core_manager_new2("marie_remote_https_rc", FALSE); + CU_ASSERT_TRUE(wait_for(marie->lc,NULL,&marie->stat.number_of_LinphoneConfiguringSuccessful,1)); + CU_ASSERT_TRUE(wait_for(marie->lc,NULL,&marie->stat.number_of_LinphoneRegistrationOk,1)); + linphone_core_manager_destroy(marie); +} + +static void remote_provisioning_not_found(void) { + LinphoneCoreManager* marie = linphone_core_manager_new2("marie_remote_404_rc", FALSE); + CU_ASSERT_TRUE(wait_for(marie->lc,NULL,&marie->stat.number_of_LinphoneConfiguringFailed,1)); + linphone_core_manager_destroy(marie); +} + +static void remote_provisioning_invalid(void) { + LinphoneCoreManager* marie = linphone_core_manager_new2("marie_remote_invalid_rc", FALSE); + CU_ASSERT_TRUE(wait_for(marie->lc,NULL,&marie->stat.number_of_LinphoneConfiguringFailed,1)); + linphone_core_manager_destroy(marie); +} + +static void remote_provisioning_default_values(void) { + LinphoneProxyConfig *lpc; + LinphoneCoreManager* marie = linphone_core_manager_new2("marie_remote_default_values_rc", FALSE); + CU_ASSERT_TRUE(wait_for(marie->lc,NULL,&marie->stat.number_of_LinphoneConfiguringSuccessful,1)); + lpc = linphone_core_create_proxy_config(marie->lc); + CU_ASSERT_TRUE(lpc->reg_sendregister == TRUE); + CU_ASSERT_TRUE(lpc->expires == 604800); + CU_ASSERT_TRUE(strcmp(lpc->reg_proxy, "") == 0); + CU_ASSERT_TRUE(strcmp(lpc->reg_route, "") == 0); + CU_ASSERT_TRUE(strcmp(lpc->reg_identity, "sip:?@sip.linphone.org") == 0); + linphone_core_manager_destroy(marie); +} + +static void remote_provisioning_file(void) { + LinphoneCoreManager* marie; + const LpConfig* conf; +#if ANDROID + marie = linphone_core_manager_new2("marie_remote_localfile_android_rc", FALSE); +#else + marie = linphone_core_manager_new2("marie_remote_localfile_rc", FALSE); +#endif + CU_ASSERT_TRUE(wait_for(marie->lc,NULL,&marie->stat.number_of_LinphoneConfiguringSuccessful,1)); + + conf = linphone_core_get_config( marie->lc ); + CU_ASSERT_EQUAL( lp_config_get_int(conf,"misc","tester_file_ok", 0), 1 ); + + linphone_core_manager_destroy(marie); +} + + +test_t remote_provisioning_tests[] = { + { "Remote provisioning skipped", remote_provisioning_skipped }, + { "Remote provisioning successful behind http", remote_provisioning_http }, + { "Remote provisioning successful behind https", remote_provisioning_https }, + { "Remote provisioning 404 not found", remote_provisioning_not_found }, + { "Remote provisioning invalid", remote_provisioning_invalid }, + { "Remote provisioning transient successful", remote_provisioning_transient }, + { "Remote provisioning default values", remote_provisioning_default_values }, + { "Remote provisioning from file", remote_provisioning_file } +}; + +test_suite_t remote_provisioning_test_suite = { + "RemoteProvisioning", + NULL, + NULL, + sizeof(remote_provisioning_tests) / sizeof(remote_provisioning_tests[0]), + remote_provisioning_tests +}; diff --git a/tester/setup_tester.c b/tester/setup_tester.c index 7a5bac9c9..dc30e058e 100644 --- a/tester/setup_tester.c +++ b/tester/setup_tester.c @@ -1,19 +1,19 @@ /* - belle-sip - SIP (RFC3261) library. - Copyright (C) 2010 Belledonne Communications SARL + liblinphone_tester - liblinphone test suite + Copyright (C) 2013 Belledonne Communications SARL - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see . + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include @@ -47,8 +47,7 @@ static void core_sip_transport_test(void) { CU_ASSERT_PTR_NOT_NULL_FATAL(lc); linphone_core_get_sip_transports(lc,&tr); CU_ASSERT_EQUAL(tr.udp_port,5060); /*default config*/ - CU_ASSERT_EQUAL(tr.tcp_port,0); /*default config*/ - CU_ASSERT_EQUAL(tr.tls_port,0); /*default config*/ + CU_ASSERT_EQUAL(tr.tcp_port,5060); /*default config*/ tr.udp_port=LC_SIP_TRANSPORT_RANDOM; tr.tcp_port=LC_SIP_TRANSPORT_RANDOM; @@ -58,8 +57,7 @@ static void core_sip_transport_test(void) { linphone_core_get_sip_transports(lc,&tr); CU_ASSERT_NOT_EQUAL(tr.udp_port,5060); /*default config*/ - CU_ASSERT_NOT_EQUAL(tr.tcp_port,0); /*default config*/ - CU_ASSERT_NOT_EQUAL(tr.tls_port,0); /*default config*/ + CU_ASSERT_NOT_EQUAL(tr.tcp_port,5060); /*default config*/ CU_ASSERT_EQUAL(lp_config_get_int(linphone_core_get_config(lc),"sip","sip_port",-2),LC_SIP_TRANSPORT_RANDOM); CU_ASSERT_EQUAL(lp_config_get_int(linphone_core_get_config(lc),"sip","sip_tcp_port",-2),LC_SIP_TRANSPORT_RANDOM); @@ -74,7 +72,7 @@ static void linphone_interpret_url_test() LinphoneCore* lc; const char* sips_address = "sips:margaux@sip.linphone.org"; LinphoneAddress* address; - + memset ( &v_table,0,sizeof ( v_table ) ); lc = linphone_core_new ( &v_table,NULL,NULL,NULL ); CU_ASSERT_PTR_NOT_NULL_FATAL ( lc ); @@ -91,12 +89,29 @@ static void linphone_interpret_url_test() linphone_core_destroy ( lc ); } +static void linphone_lpconfig_from_buffer(){ + + static const char* buffer = "[buffer]\ntest=ok"; + static const char* buffer_linebreaks = "[buffer_linebreaks]\n\n\n\r\n\n\r\ntest=ok"; + LpConfig* conf; + + conf = lp_config_new_from_buffer(buffer); + CU_ASSERT_STRING_EQUAL(lp_config_get_string(conf,"buffer","test",""),"ok"); + lp_config_destroy(conf); + + conf = lp_config_new_from_buffer(buffer_linebreaks); + CU_ASSERT_STRING_EQUAL(lp_config_get_string(conf,"buffer_linebreaks","test",""),"ok"); + lp_config_destroy(conf); + +} + test_t setup_tests[] = { { "Linphone Address", linphone_address_test }, { "Linphone core init/uninit", core_init_test }, { "Linphone random transport port",core_sip_transport_test}, - { "Linphone interpret url", linphone_interpret_url_test } + { "Linphone interpret url", linphone_interpret_url_test }, + { "LPConfig from buffer", linphone_lpconfig_from_buffer } }; test_suite_t setup_test_suite = { diff --git a/tester/stun_tester.c b/tester/stun_tester.c new file mode 100644 index 000000000..d19650f06 --- /dev/null +++ b/tester/stun_tester.c @@ -0,0 +1,120 @@ +/* + belle-sip - SIP (RFC3261) library. + Copyright (C) 2014 Belledonne Communications SARL + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include +#include "CUnit/Basic.h" +#include "linphonecore.h" +#include "private.h" +#include "liblinphone_tester.h" +#include "ortp/stun.h" +#include "ortp/port.h" + + +static const char* stun_address = "stun.linphone.org"; + + +static int test_stun_encode( char*buffer, size_t len, bool_t expect_fail ) +{ + StunAtrString username; + StunAtrString password; + StunMessage req; + memset(&req, 0, sizeof(StunMessage)); + memset(&username,0,sizeof(username)); + memset(&password,0,sizeof(password)); + stunBuildReqSimple( &req, &username, TRUE , TRUE , 11); + len = stunEncodeMessage( &req, buffer, len, &password); + if (len<=0){ + if( expect_fail ) + ms_message("Fail to encode stun message (EXPECTED).\n"); + else + ms_error("Fail to encode stun message.\n"); + return -1; + } + return len; +} + + +static void linphone_stun_test_encode() +{ + char smallBuff[12]; + size_t smallLen = 12; + char bigBuff[STUN_MAX_MESSAGE_SIZE]; + size_t bigLen = STUN_MAX_MESSAGE_SIZE; + + size_t len = test_stun_encode(smallBuff, smallLen, TRUE); + CU_ASSERT(len == -1); + + len = test_stun_encode(bigBuff, bigLen, TRUE); + CU_ASSERT(len > 0); + ms_message("STUN message encoded in %zu bytes", len); +} + + +static void linphone_stun_test_grab_ip() +{ + LinphoneCoreManager* lc_stun = linphone_core_manager_new2( "stun_rc", FALSE); + LinphoneCall dummy_call; + int ping_time; + int tmp=0; + + memset(&dummy_call, 0, sizeof(LinphoneCall)); + dummy_call.media_ports[0].rtp_port = 7078; + dummy_call.media_ports[1].rtp_port = 9078; + + linphone_core_set_stun_server(lc_stun->lc, stun_address); + CU_ASSERT_STRING_EQUAL(stun_address, linphone_core_get_stun_server(lc_stun->lc)); + + wait_for(lc_stun->lc,lc_stun->lc,&tmp,1); + + ping_time = linphone_core_run_stun_tests(lc_stun->lc, &dummy_call); + CU_ASSERT(ping_time != -1); + + ms_message("Round trip to STUN: %d ms", ping_time); + + CU_ASSERT( dummy_call.ac.addr[0] != '\0'); + CU_ASSERT( dummy_call.ac.port != 0); +#ifdef VIDEO_ENABLED + CU_ASSERT( dummy_call.vc.addr[0] != '\0'); + CU_ASSERT( dummy_call.vc.port != 0); +#endif + + ms_message("STUN test result: local audio port maps to %s:%i", + dummy_call.ac.addr, + dummy_call.ac.port); +#ifdef VIDEO_ENABLED + ms_message("STUN test result: local video port maps to %s:%i", + dummy_call.vc.addr, + dummy_call.vc.port); +#endif + + linphone_core_manager_destroy(lc_stun); +} + + +test_t stun_tests[] = { + { "Basic Stun test (Ping/public IP)", linphone_stun_test_grab_ip }, + { "STUN encode buffer protection", linphone_stun_test_encode }, +}; + +test_suite_t stun_test_suite = { + "Stun", + NULL, + NULL, + sizeof(stun_tests) / sizeof(stun_tests[0]), + stun_tests +}; diff --git a/tester/tester.c b/tester/tester.c new file mode 100644 index 000000000..2d734b074 --- /dev/null +++ b/tester/tester.c @@ -0,0 +1,389 @@ +/* + tester - liblinphone test suite + Copyright (C) 2013 Belledonne Communications SARL + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ + +#include +#include "CUnit/Basic.h" +#include "linphonecore.h" +#include "private.h" +#include "liblinphone_tester.h" +#if HAVE_CU_CURSES +#include "CUnit/CUCurses.h" +#endif + +static LinphoneCore* configure_lc_from(LinphoneCoreVTable* v_table, const char* path, const char* file, void* user_data); + +static test_suite_t **test_suite = NULL; +static int nb_test_suites = 0; + + +#if HAVE_CU_CURSES +static unsigned char curses = 0; +#endif + +const char* test_domain="sipopen.example.org"; +const char* auth_domain="sip.example.org"; +const char* test_username="liblinphone_tester"; +const char* test_password="secret"; +const char* test_route="sip2.linphone.org"; + +#if WINAPI_FAMILY_PHONE_APP +const char *liblinphone_tester_file_prefix="Assets"; +#elif defined(__QNX__) +const char *liblinphone_tester_file_prefix="./app/native/assets/"; +#else +const char *liblinphone_tester_file_prefix="."; +#endif + +const char *userhostsfile = "tester_hosts"; + +void liblinphone_tester_clock_start(MSTimeSpec *start){ + ms_get_cur_time(start); +} + +bool_t liblinphone_tester_clock_elapsed(const MSTimeSpec *start, int value_ms){ + MSTimeSpec current; + ms_get_cur_time(¤t); + if ((((current.tv_sec-start->tv_sec)*1000LL) + ((current.tv_nsec-start->tv_nsec)/1000000LL))>=value_ms) + return TRUE; + return FALSE; +} + +LinphoneAddress * create_linphone_address(const char * domain) { + LinphoneAddress *addr = linphone_address_new(NULL); + CU_ASSERT_PTR_NOT_NULL_FATAL(addr); + linphone_address_set_username(addr,test_username); + CU_ASSERT_STRING_EQUAL(test_username,linphone_address_get_username(addr)); + if (!domain) domain= test_route; + linphone_address_set_domain(addr,domain); + CU_ASSERT_STRING_EQUAL(domain,linphone_address_get_domain(addr)); + linphone_address_set_display_name(addr, NULL); + linphone_address_set_display_name(addr, "Mr Tester"); + CU_ASSERT_STRING_EQUAL("Mr Tester",linphone_address_get_display_name(addr)); + return addr; +} + +static void auth_info_requested(LinphoneCore *lc, const char *realm, const char *username, const char *domain) { + stats* counters; + ms_message("Auth info requested for user id [%s] at realm [%s]\n" + ,username + ,realm); + counters = get_stats(lc); + counters->number_of_auth_info_requested++; +} + + + +void reset_counters( stats* counters) { + memset(counters,0,sizeof(stats)); +} + +static LinphoneCore* configure_lc_from(LinphoneCoreVTable* v_table, const char* path, const char* file, void* user_data) { + LinphoneCore* lc; + char filepath[256]={0}; + char ringpath[256]={0}; + char ringbackpath[256]={0}; + char rootcapath[256]={0}; + char dnsuserhostspath[256]={0}; + char nowebcampath[256]={0}; + + if (path==NULL) path="."; + + if (file){ + sprintf(filepath, "%s/%s", path, file); + CU_ASSERT_TRUE_FATAL(ortp_file_exist(filepath)==0); + } + + lc = linphone_core_new(v_table,NULL,*filepath!='\0' ? filepath : NULL, user_data); + + sal_enable_test_features(lc->sal,TRUE); + snprintf(rootcapath, sizeof(rootcapath), "%s/certificates/cn/cafile.pem", path); + linphone_core_set_root_ca(lc,rootcapath); + + sprintf(dnsuserhostspath, "%s/%s", path, userhostsfile); + sal_set_dns_user_hosts_file(lc->sal, dnsuserhostspath); + + snprintf(ringpath,sizeof(ringpath), "%s/sounds/oldphone.wav",path); + snprintf(ringbackpath,sizeof(ringbackpath), "%s/sounds/ringback.wav", path); + linphone_core_set_ring(lc, ringpath); + linphone_core_set_ringback(lc, ringbackpath); + + snprintf(nowebcampath, sizeof(nowebcampath), "%s/images/nowebcamCIF.jpg", path); + linphone_core_set_static_picture(lc,nowebcampath); + return lc; +} + + +bool_t wait_for_until(LinphoneCore* lc_1, LinphoneCore* lc_2,int* counter,int value,int timout) { + MSList* lcs=NULL; + bool_t result; + if (lc_1) + lcs=ms_list_append(lcs,lc_1); + if (lc_2) + lcs=ms_list_append(lcs,lc_2); + result=wait_for_list(lcs,counter,value,timout); + ms_list_free(lcs); + return result; +} + +bool_t wait_for(LinphoneCore* lc_1, LinphoneCore* lc_2,int* counter,int value) { + return wait_for_until(lc_1, lc_2,counter,value,3000); +} + +bool_t wait_for_list(MSList* lcs,int* counter,int value,int timeout_ms) { + MSList* iterator; + MSTimeSpec start; + + liblinphone_tester_clock_start(&start); + while ((counter==NULL || *counternext) { + linphone_core_iterate((LinphoneCore*)(iterator->data)); + } + ms_usleep(100000); + } + if(counter && *counternext) { + linphone_core_enable_payload_type(lc,(PayloadType*)codecs_it->data,0); + } + if((pt = linphone_core_find_payload_type(lc,type,rate,1))) { + linphone_core_enable_payload_type(lc,pt, enable); + } + ms_list_free(codecs); +} + +static void enable_codec(LinphoneCore* lc,const char* type,int rate) { + set_codec_enable(lc,type,rate,TRUE); +} +stats * get_stats(LinphoneCore *lc){ + LinphoneCoreManager *manager=(LinphoneCoreManager *)linphone_core_get_user_data(lc); + return &manager->stat; +} + +LinphoneCoreManager *get_manager(LinphoneCore *lc){ + LinphoneCoreManager *manager=(LinphoneCoreManager *)linphone_core_get_user_data(lc); + return manager; +} + +LinphoneCoreManager* linphone_core_manager_new2(const char* rc_file, int check_for_proxies) { + LinphoneCoreManager* mgr= ms_new0(LinphoneCoreManager,1); + LinphoneProxyConfig* proxy; + char *rc_path = NULL; + int proxy_count; + + mgr->v_table.registration_state_changed=registration_state_changed; + mgr->v_table.auth_info_requested=auth_info_requested; + mgr->v_table.call_state_changed=call_state_changed; + mgr->v_table.text_received=text_message_received; + mgr->v_table.message_received=message_received; + mgr->v_table.is_composing_received=is_composing_received; + mgr->v_table.new_subscription_requested=new_subscription_requested; + mgr->v_table.notify_presence_received=notify_presence_received; + mgr->v_table.transfer_state_changed=linphone_transfer_state_changed; + mgr->v_table.info_received=info_message_received; + mgr->v_table.subscription_state_changed=linphone_subscription_state_change; + mgr->v_table.notify_received=linphone_notify_received; + mgr->v_table.publish_state_changed=linphone_publish_state_changed; + mgr->v_table.configuring_status=linphone_configuration_status; + mgr->v_table.call_encryption_changed=linphone_call_encryption_changed; + + reset_counters(&mgr->stat); + if (rc_file) rc_path = ms_strdup_printf("rcfiles/%s", rc_file); + mgr->lc=configure_lc_from(&mgr->v_table, liblinphone_tester_file_prefix, rc_path, mgr); + /*CU_ASSERT_EQUAL(ms_list_size(linphone_core_get_proxy_config_list(lc)),proxy_count);*/ + if (check_for_proxies && rc_file) /**/ + proxy_count=ms_list_size(linphone_core_get_proxy_config_list(mgr->lc)); + else + proxy_count=0; + + if (proxy_count) + wait_for_until(mgr->lc,NULL,&mgr->stat.number_of_LinphoneRegistrationOk,proxy_count,5000*proxy_count); + CU_ASSERT_EQUAL(mgr->stat.number_of_LinphoneRegistrationOk,proxy_count); + enable_codec(mgr->lc,"PCMU",8000); + + linphone_core_get_default_proxy(mgr->lc,&proxy); + if (proxy) { + mgr->identity = linphone_address_new(linphone_proxy_config_get_identity(proxy)); + linphone_address_clean(mgr->identity); + } + if (rc_path) ms_free(rc_path); + return mgr; +} + +LinphoneCoreManager* linphone_core_manager_new( const char* rc_file) { + return linphone_core_manager_new2(rc_file, TRUE); +} + +void linphone_core_manager_stop(LinphoneCoreManager *mgr){ + if (mgr->lc) { + linphone_core_destroy(mgr->lc); + mgr->lc=NULL; + } +} + +void linphone_core_manager_destroy(LinphoneCoreManager* mgr) { + if (mgr->lc) linphone_core_destroy(mgr->lc); + if (mgr->identity) linphone_address_destroy(mgr->identity); + ms_free(mgr); +} + + +static void add_test_suite(test_suite_t *suite) { + if (test_suite == NULL) { + test_suite = (test_suite_t **)malloc(10 * sizeof(test_suite_t *)); + } + test_suite[nb_test_suites] = suite; + nb_test_suites++; + if ((nb_test_suites % 10) == 0) { + test_suite = (test_suite_t **)realloc(test_suite, (nb_test_suites + 10) * sizeof(test_suite_t *)); + } +} + +static int run_test_suite(test_suite_t *suite) { + int i; + + CU_pSuite pSuite = CU_add_suite(suite->name, suite->init_func, suite->cleanup_func); + + for (i = 0; i < suite->nb_tests; i++) { + if (NULL == CU_add_test(pSuite, suite->tests[i].name, suite->tests[i].func)) { + return CU_get_error(); + } + } + + return 0; +} + +int liblinphone_tester_test_suite_index(const char *suite_name) { + int i; + + for (i = 0; i < liblinphone_tester_nb_test_suites(); i++) { + if ((strcmp(suite_name, test_suite[i]->name) == 0) && (strlen(suite_name) == strlen(test_suite[i]->name))) { + return i; + } + } + + return -1; +} + +int liblinphone_tester_test_index(const char *suite_name, const char *test_name) { + int j,i; + + j = liblinphone_tester_test_suite_index(suite_name); + if(j != -1) { + for (i = 0; i < test_suite[j]->nb_tests; i++) { + if ((strcmp(test_name, test_suite[j]->tests[i].name) == 0) && (strlen(test_name) == strlen(test_suite[j]->tests[i].name))) { + return i; + } + } + } + + return -1; +} + +int liblinphone_tester_nb_test_suites(void) { + return nb_test_suites; +} + +int liblinphone_tester_nb_tests(const char *suite_name) { + int i = liblinphone_tester_test_suite_index(suite_name); + if (i < 0) return 0; + return test_suite[i]->nb_tests; +} + +const char * liblinphone_tester_test_suite_name(int suite_index) { + if (suite_index >= liblinphone_tester_nb_test_suites()) return NULL; + return test_suite[suite_index]->name; +} + +const char * liblinphone_tester_test_name(const char *suite_name, int test_index) { + int suite_index = liblinphone_tester_test_suite_index(suite_name); + if ((suite_index < 0) || (suite_index >= liblinphone_tester_nb_test_suites())) return NULL; + if (test_index >= test_suite[suite_index]->nb_tests) return NULL; + return test_suite[suite_index]->tests[test_index].name; +} + +void liblinphone_tester_init(void) { + add_test_suite(&setup_test_suite); + add_test_suite(®ister_test_suite); + add_test_suite(&call_test_suite); + add_test_suite(&message_test_suite); + add_test_suite(&presence_test_suite); +#ifdef UPNP + add_test_suite(&upnp_test_suite); +#endif + add_test_suite(&stun_test_suite); + add_test_suite(&event_test_suite); + add_test_suite(&flexisip_test_suite); + add_test_suite(&remote_provisioning_test_suite); +} + +void liblinphone_tester_uninit(void) { + if (test_suite != NULL) { + free(test_suite); + test_suite = NULL; + nb_test_suites = 0; + } +} + +int liblinphone_tester_run_tests(const char *suite_name, const char *test_name) { + int i; + int ret; + /* initialize the CUnit test registry */ + if (CUE_SUCCESS != CU_initialize_registry()) + return CU_get_error(); + + for (i = 0; i < liblinphone_tester_nb_test_suites(); i++) { + run_test_suite(test_suite[i]); + } + + if (suite_name){ + CU_pSuite suite; + CU_basic_set_mode(CU_BRM_VERBOSE); + suite=CU_get_suite_by_name(suite_name, CU_get_registry()); + if (test_name) { + CU_pTest test=CU_get_test_by_name(test_name, suite); + CU_ErrorCode err= CU_basic_run_test(suite, test); + if (err != CUE_SUCCESS) ms_error("CU_basic_run_test error %d", err); + } else + CU_basic_run_suite(suite); + } else + { +#if HAVE_CU_CURSES + if (curses) { + /* Run tests using the CUnit curses interface */ + CU_curses_run_tests(); + } + else +#endif + { + /* Run all tests using the CUnit Basic interface */ + CU_basic_set_mode(CU_BRM_VERBOSE); + CU_basic_run_tests(); + } + } + + ret=CU_get_number_of_tests_failed()!=0; + CU_cleanup_registry(); + return ret; +} + diff --git a/tester/upnp_tester.c b/tester/upnp_tester.c index 8b1d13e1d..04b5b865b 100644 --- a/tester/upnp_tester.c +++ b/tester/upnp_tester.c @@ -1,10 +1,10 @@ /* - belle-sip - SIP (RFC3261) library. - Copyright (C) 2010 Belledonne Communications SARL + liblinphone_tester - liblinphone test suite + Copyright (C) 2013 Belledonne Communications SARL This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or + the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, diff --git a/tools/Makefile.am b/tools/Makefile.am index 5ef2535ad..d993aa591 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -18,29 +18,6 @@ EXTRA_DIST=xml2lpc_jni.cc lpc2xml_jni.cc if BUILD_TOOLS -lib_LTLIBRARIES=libxml2lpc.la liblpc2xml.la - -libxml2lpc_la_SOURCES=\ - xml2lpc.c \ - xml2lpc.h - -liblpc2xml_la_SOURCES=\ - lpc2xml.c \ - lpc2xml.h - -libxml2lpc_la_CFLAGS=$(COMMON_CFLAGS) -libxml2lpc_la_LIBADD=\ - $(top_builddir)/coreapi/liblinphone.la \ - $(LIBXML2_LIBS) - -liblpc2xml_la_CFLAGS=$(COMMON_CFLAGS) -liblpc2xml_la_LIBADD=\ - $(top_builddir)/coreapi/liblinphone.la \ - $(LIBXML2_LIBS) - -libxml2lpc_la_LDFLAGS=-no-undefined -liblpc2xml_la_LDFLAGS=-no-undefined - bin_PROGRAMS=xml2lpc_test lpc2xml_test lp-gen-wrappers xml2lpc_test_SOURCES=\ @@ -51,13 +28,11 @@ lpc2xml_test_SOURCES=\ xml2lpc_test_CFLAGS=$(COMMON_CFLAGS) xml2lpc_test_LDADD=\ - $(top_builddir)/coreapi/liblinphone.la \ - libxml2lpc.la + $(top_builddir)/coreapi/liblinphone.la lpc2xml_test_CFLAGS=$(COMMON_CFLAGS) lpc2xml_test_LDADD=\ - $(top_builddir)/coreapi/liblinphone.la \ - liblpc2xml.la + $(top_builddir)/coreapi/liblinphone.la lp_gen_wrappers_SOURCES=genwrappers.cc \ software-desc.cc software-desc.hh \